019bab3b-aa09-7136-8249-3b5f5266a02c
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 38233 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38234 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38235 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38236 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38237 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38238 | detector.run | complete | 1 / 3 | 3 months ago |
| 38239 | validation.fork | complete | 1 / 3 | 3 months ago |
| 38913 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 38914 | tool.slither | complete | 1 / 2 | 3 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-mjpjqk_1) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-mjpjqk_1) BoringVault.enter(address,ERC20,uint256,address,uint256) (src/base/BoringVault.sol#74-85) uses arbitrary from in transferFrom: asset.safeTransferFrom(from,address(this),assetAmount) (src/base/BoringVault.sol#79) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#arbitrary-from-in-transferfrom FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#71-158) performs a multiplication on the result of a division: - x = xxRound_rpow_asm_0 / scalar (lib/solmate/src/utils/FixedPointMathLib.sol#129) - zx_rpow_asm_0 = z * x (lib/solmate/src/utils/FixedPointMathLib.sol#134) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply Auth.transferOwnership(address).newOwner (lib/solmate/src/auth/Auth.sol#48) lacks a zero-check on : - owner = newOwner (lib/solmate/src/auth/Auth.sol#49) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation ERC20.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (lib/solmate/src/tokens/ERC20.sol#116-160) uses timestamp for comparisons Dangerous comparisons: - require(bool,string)(deadline >= block.timestamp,PERMIT_DEADLINE_EXPIRED) (lib/solmate/src/tokens/ERC20.sol#125) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp LowLevelCall.callNoReturn(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#19-23) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#20-22) LowLevelCall.callReturn64Bytes(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#38-48) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#43-47) LowLevelCall.staticcallNoReturn(address,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#51-55) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#52-54) LowLevelCall.staticcallReturn64Bytes(address,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#62-71) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#66-70) LowLevelCall.delegatecallNoReturn(address,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#74-78) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#75-77) LowLevelCall.delegatecallReturn64Bytes(address,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#85-94) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#89-93) LowLevelCall.returnDataSize() (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#97-101) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#98-100) LowLevelCall.returnData() (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#104-111) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#105-110) LowLevelCall.bubbleRevert() (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#114-120) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#115-119) LowLevelCall.bubbleRevert(bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#122-126) uses assembly - INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#123-125) FixedPointMathLib.mulDivDown(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#36-51) uses assembly - INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#42-50) FixedPointMathLib.mulDivUp(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#53-69) uses assembly - INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#59-68) FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#71-158) uses assembly - INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#77-157) FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses assembly - INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#166-226) FixedPointMathLib.unsafeMod(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#229-236) uses assembly - INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#231-235) FixedPointMathLib.unsafeDiv(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#238-245) uses assembly - INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#240-244) FixedPointMathLib.unsafeDivUp(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#247-254) uses assembly - INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#249-253) SafeTransferLib.safeTransferETH(address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#15-25) uses assembly - INLINE ASM (lib/solmate/src/utils/SafeTransferLib.sol#19-22) SafeTransferLib.safeTransferFrom(ERC20,address,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#31-63) uses assembly - INLINE ASM (lib/solmate/src/utils/SafeTransferLib.sol#40-60) SafeTransferLib.safeTransfer(ERC20,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#65-95) uses assembly - INLINE ASM (lib/solmate/src/utils/SafeTransferLib.sol#73-92) SafeTransferLib.safeApprove(ERC20,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#97-127) uses assembly - INLINE ASM (lib/solmate/src/utils/SafeTransferLib.sol#105-124) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage 6 different versions of Solidity are used: - Version constraint >=0.6.2 is used by: ->=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol#4) - Version constraint ^0.8.20 is used by: -^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol#4) -^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol#4) -^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4) -^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Errors.sol#4) -^0.8.20 (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#4) -^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#4) - Version constraint >=0.5.0 is used by: ->=0.5.0 (lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol#4) - Version constraint >=0.4.16 is used by: ->=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4) - Version constraint >=0.8.0 is used by: ->=0.8.0 (lib/solmate/src/auth/Auth.sol#2) ->=0.8.0 (lib/solmate/src/tokens/ERC20.sol#2) ->=0.8.0 (lib/solmate/src/utils/FixedPointMathLib.sol#2) ->=0.8.0 (lib/solmate/src/utils/SafeTransferLib.sol#2) - Version constraint 0.8.21 is used by: -0.8.21 (src/base/BoringVault.sol#2) -0.8.21 (src/interfaces/BeforeTransferHook.sol#2) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - MissingSideEffectsOnSelectorAccess - AbiReencodingHeadOverflowWithStaticArrayCleanup - DirtyBytesArrayToStorage - NestedCalldataArrayAbiReencodingSizeValidation - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - MissingEscapingInFormatting - ArraySliceDynamicallyEncodedBaseType - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow. It is used by: - >=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol#4) Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - VerbatimInvalidDeduplication - FullInlinerNonExpressionSplitArgumentEvaluationOrder - MissingSideEffectsOnSelectorAccess. It is used by: - ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol#4) - ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol#4) - ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4) - ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Errors.sol#4) - ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#4) - ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#4) Version constraint >=0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - DirtyBytesArrayToStorage - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - privateCanBeOverridden - SignedArrayStorageCopy - ABIEncoderV2StorageArrayWithMultiSlotElement - DynamicConstructorArgumentsClippedABIV2 - UninitializedFunctionPointerInConstructor - IncorrectEventSignatureInLibraries - ABIEncoderV2PackedStorage. It is used by: - >=0.5.0 (lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol#4) Version constraint >=0.4.16 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - DirtyBytesArrayToStorage - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - privateCanBeOverridden - SignedArrayStorageCopy - ABIEncoderV2StorageArrayWithMultiSlotElement - DynamicConstructorArgumentsClippedABIV2 - UninitializedFunctionPointerInConstructor_0.4.x - IncorrectEventSignatureInLibraries_0.4.x - ExpExponentCleanup - NestedArrayFunctionCallDecoder - ZeroFunctionSelector. It is used by: - >=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4) Version constraint >=0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - FullInlinerNonExpressionSplitArgumentEvaluationOrder - MissingSideEffectsOnSelectorAccess - AbiReencodingHeadOverflowWithStaticArrayCleanup - DirtyBytesArrayToStorage - DataLocationChangeInInternalOverride - NestedCalldataArrayAbiReencodingSizeValidation - SignedImmutables - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching. It is used by: - >=0.8.0 (lib/solmate/src/auth/Auth.sol#2) - >=0.8.0 (lib/solmate/src/tokens/ERC20.sol#2) - >=0.8.0 (lib/solmate/src/utils/FixedPointMathLib.sol#2) - >=0.8.0 (lib/solmate/src/utils/SafeTransferLib.sol#2) Version constraint 0.8.21 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - VerbatimInvalidDeduplication. It is used by: - 0.8.21 (src/base/BoringVault.sol#2) - 0.8.21 (src/interfaces/BeforeTransferHook.sol#2) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity Function ERC20.DOMAIN_SEPARATOR() (lib/solmate/src/tokens/ERC20.sol#162-164) is not in mixedCase Variable ERC20.INITIAL_CHAIN_ID (lib/solmate/src/tokens/ERC20.sol#41) is not in mixedCase Variable ERC20.INITIAL_DOMAIN_SEPARATOR (lib/solmate/src/tokens/ERC20.sol#43) is not in mixedCase Parameter BoringVault.setBeforeTransferHook(address)._hook (src/base/BoringVault.sol#113) is not in mixedCase Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits: - ! y_sqrt_asm_0 < 0x10000000000000000000000000000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#176-179) FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits: - ! y_sqrt_asm_0 < 0x1000000000000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#180-183) FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits: - ! y_sqrt_asm_0 < 0x10000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#184-187) FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits: - ! y_sqrt_asm_0 < 0x1000000 (lib/solmate/src/utils/FixedPointMathLib.sol#188-191) SafeTransferLib.safeTransferFrom(ERC20,address,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#31-63) uses literals with too many digits: - mstore(uint256,uint256)(freeMemoryPointer_safeTransferFrom_asm_0,0x23b872dd00000000000000000000000000000000000000000000000000000000) (lib/solmate/src/utils/SafeTransferLib.sol#45) SafeTransferLib.safeTransfer(ERC20,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#65-95) uses literals with too many digits: - mstore(uint256,uint256)(freeMemoryPointer_safeTransfer_asm_0,0xa9059cbb00000000000000000000000000000000000000000000000000000000) (lib/solmate/src/utils/SafeTransferLib.sol#78) SafeTransferLib.safeApprove(ERC20,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#97-127) uses literals with too many digits: - mstore(uint256,uint256)(freeMemoryPointer_safeApprove_asm_0,0x095ea7b300000000000000000000000000000000000000000000000000000000) (lib/solmate/src/utils/SafeTransferLib.sol#110) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits . analyzed (16 contracts with 100 detectors), 43 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.8.21",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.8.21",
"install_stderr": null,
"install_stdout": "Installing solc '0.8.21'...\nVersion '0.8.21' installed."
},
"solc_args": "--base-path /tmp/slither-mjpjqk_1 --include-path /tmp/slither-mjpjqk_1/lib --include-path /tmp/slither-mjpjqk_1/lib/solmate --include-path /tmp/slither-mjpjqk_1/lib/openzeppelin-contracts --allow-paths /tmp/slither-mjpjqk_1,/tmp/slither-mjpjqk_1/lib,/tmp/slither-mjpjqk_1/lib/openzeppelin-contracts,/tmp/slither-mjpjqk_1/lib/solmate,/tmp/slither-mjpjqk_1/src",
"remappings": [
"@solmate/=lib/solmate/src/",
"@forge-std/=lib/forge-std/src/",
"@ds-test/=lib/forge-std/lib/ds-test/src/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"@openzeppelin/=lib/openzeppelin-contracts/",
"@ccip/=lib/ccip/",
"@oapp-auth/=lib/OAppAuth/src/",
"@devtools-oapp-evm/=lib/OAppAuth/lib/devtools/packages/oapp-evm/contracts/oapp/",
"@layerzerolabs/lz-evm-messagelib-v2/=lib/OAppAuth/node_modules/@layerzerolabs/lz-evm-messagelib-v2/",
"@layerzerolabs/lz-evm-protocol-v2/=lib/OAppAuth/lib/LayerZero-V2/packages/layerzero-v2/evm/protocol/",
"@layerzerolabs/oapp-evm/=lib/OAppAuth/lib/devtools/packages/oapp-evm/",
"@lz-oapp-evm/=lib/OAppAuth/lib/LayerZero-V2/packages/layerzero-v2/evm/oapp/contracts/oapp/",
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"LayerZero-V2/=lib/OAppAuth/lib/",
"OAppAuth/=lib/OAppAuth/",
"ccip/=lib/ccip/contracts/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"halmos-cheatcodes/=lib/OAppAuth/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"solidity-bytes-utils/=lib/OAppAuth/node_modules/solidity-bytes-utils/",
"solmate/=lib/solmate/",
"src/=src/"
],
"source_files": [
"src/base/BoringVault.sol",
"lib/openzeppelin-contracts/contracts/utils/Address.sol",
"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol",
"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol",
"lib/solmate/src/utils/FixedPointMathLib.sol",
"lib/solmate/src/utils/SafeTransferLib.sol",
"lib/solmate/src/tokens/ERC20.sol",
"src/interfaces/BeforeTransferHook.sol",
"lib/solmate/src/auth/Auth.sol",
"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol",
"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol",
"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol",
"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 43,
"workspace_hash": "10e946ad9d316b92f3566590a7b346b2748dc89829e7c52f551892da9d1422e2",
"duration_seconds": 1.0743212699890137,
"solc_version_requested": "0.8.21"
}
{"no_findings":true,"summary":"Reviewed first-party sources in AUDIT_BUNDLE.txt and did not identify exploitable vulnerabilities within the specified focus areas given the existing requiresAuth gating.","findings":[]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-8tv2qahx
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bab4b-c6bf-79a3-8b2c-5ed6f0c94981
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Reading AUDIT_BUNDLE.txt**
exec
/bin/bash -lc ls in /tmp/codex-8tv2qahx succeeded in 7ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
lib
src
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-8tv2qahx succeeded in 16ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: src/base/BoringVault.sol
================================================================================
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.21;
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";
import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";
import {FixedPointMathLib} from "@solmate/utils/FixedPointMathLib.sol";
import {SafeTransferLib} from "@solmate/utils/SafeTransferLib.sol";
import {ERC20} from "@solmate/tokens/ERC20.sol";
import {BeforeTransferHook} from "src/interfaces/BeforeTransferHook.sol";
import {Auth, Authority} from "@solmate/auth/Auth.sol";
contract BoringVault is ERC20, Auth, ERC721Holder, ERC1155Holder {
using Address for address;
thinking
**Analyzing reentrancy and access control risks**
I'm checking for reentrancy vulnerabilities around token transfers and hooks, considering ERC777 callbacks and the use of requiresAuth for sensitive actions. The access control appears robust, mitigating typical risks, though potential recursion in hooks if set maliciously is possible but not a vulnerability since the owner controls it. Management functions may revert on mismatched input lengths but don't pose security issues. Overall, no critical vulnerabilities stand out here, so I'll prepare a JSON output reflecting no findings and a brief summary.
codex
{"no_findings":true,"summary":"Reviewed first-party sources in AUDIT_BUNDLE.txt and did not identify exploitable vulnerabilities within the specified focus areas given the existing requiresAuth gating.","findings":[]}
tokens used
6,615
{
"codex": {
"ran_at": "2026-01-11T04:24:06.309669+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 13,
"import_count": 14,
"first_party_contracts_count": 2
},
"summary": "Reviewed first-party sources in AUDIT_BUNDLE.txt and did not identify exploitable vulnerabilities within the specified focus areas given the existing requiresAuth gating.",
"raw_final": {
"summary": "Reviewed first-party sources in AUDIT_BUNDLE.txt and did not identify exploitable vulnerabilities within the specified focus areas given the existing requiresAuth gating.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x017e 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x7ecebe00 00000018: GT 00000019: PUSH2 0x00cd 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xbc197c81 00000023: GT 00000024: PUSH2 0x0087 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xdd62ed3e 0000002e: GT 0000002f: PUSH2 0x0062 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xdd62ed3e 00000039: EQ 0000003a: PUSH2 0x04cd 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xf23a6e61 00000044: EQ 00000045: PUSH2 0x0503 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xf2fde38b 0000004f: EQ 00000050: PUSH2 0x052e 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xf6e715d0 0000005a: EQ 0000005b: PUSH2 0x054d 0000005e: JUMPI 0000005f: PUSH0 00000060: DUP1 00000061: REVERT 00000062: JUMPDEST 00000063: DUP1 00000064: PUSH4 0xbc197c81 00000069: EQ 0000006a: PUSH2 0x0464 0000006d: JUMPI 0000006e: DUP1 0000006f: PUSH4 0xbf7e214f 00000074: EQ 00000075: PUSH2 0x048f 00000078: JUMPI 00000079: DUP1 0000007a: PUSH4 0xd505accf 0000007f: EQ 00000080: PUSH2 0x04ae 00000083: JUMPI 00000084: PUSH0 00000085: DUP1 00000086: REVERT 00000087: JUMPDEST 00000088: DUP1 00000089: PUSH4 0x7ecebe00 0000008e: EQ 0000008f: PUSH2 0x0391 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0x7f5a7c7b 00000099: EQ 0000009a: PUSH2 0x03bc 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0x8929565f 000000a4: EQ 000000a5: PUSH2 0x03f3 000000a8: JUMPI 000000a9: DUP1 000000aa: PUSH4 0x8da5cb5b 000000af: EQ 000000b0: PUSH2 0x0412 000000b3: JUMPI 000000b4: DUP1 000000b5: PUSH4 0x95d89b41 000000ba: EQ 000000bb: PUSH2 0x0431 000000be: JUMPI 000000bf: DUP1 000000c0: PUSH4 0xa9059cbb 000000c5: EQ 000000c6: PUSH2 0x0445 000000c9: JUMPI 000000ca: PUSH0 000000cb: DUP1 000000cc: REVERT 000000cd: JUMPDEST 000000ce: DUP1 000000cf: PUSH4 0x224d8703 000000d4: GT 000000d5: PUSH2 0x0138 000000d8: JUMPI 000000d9: DUP1 000000da: PUSH4 0x3644e515 000000df: GT 000000e0: PUSH2 0x0113 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0x3644e515 000000ea: EQ 000000eb: PUSH2 0x0314 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0x39d6ba32 000000f5: EQ 000000f6: PUSH2 0x0328 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0x70a08231 00000100: EQ 00000101: PUSH2 0x0347 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0x7a9e5e4b 0000010b: EQ 0000010c: PUSH2 0x0372 0000010f: JUMPI 00000110: PUSH0 00000111: DUP1 00000112: REVERT 00000113: JUMPDEST 00000114: DUP1 00000115: PUSH4 0x224d8703 0000011a: EQ 0000011b: PUSH2 0x0284 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x23b872dd 00000125: EQ 00000126: PUSH2 0x02b0 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x313ce567 00000130: EQ 00000131: PUSH2 0x02cf 00000134: JUMPI 00000135: PUSH0 00000136: DUP1 00000137: REVERT 00000138: JUMPDEST 00000139: DUP1 0000013a: PUSH4 0x01ffc9a7 0000013f: EQ 00000140: PUSH2 0x0189 00000143: JUMPI 00000144: DUP1 00000145: PUSH4 0x06fdde03 0000014a: EQ 0000014b: PUSH2 0x01bd 0000014e: JUMPI 0000014f: DUP1 00000150: PUSH4 0x095ea7b3 00000155: EQ 00000156: PUSH2 0x01de 00000159: JUMPI 0000015a: DUP1 0000015b: PUSH4 0x150b7a02 00000160: EQ 00000161: PUSH2 0x01fd 00000164: JUMPI 00000165: DUP1 00000166: PUSH4 0x18160ddd 0000016b: EQ 0000016c: PUSH2 0x0240 0000016f: JUMPI 00000170: DUP1 00000171: PUSH4 0x18457e61 00000176: EQ 00000177: PUSH2 0x0263 0000017a: JUMPI 0000017b: PUSH0 0000017c: DUP1 0000017d: REVERT 0000017e: JUMPDEST 0000017f: CALLDATASIZE 00000180: PUSH2 0x0185 00000183: JUMPI 00000184: STOP 00000185: JUMPDEST 00000186: PUSH0 00000187: DUP1 00000188: REVERT 00000189: JUMPDEST 0000018a: CALLVALUE 0000018b: DUP1 0000018c: ISZERO 0000018d: PUSH2 0x0194 00000190: JUMPI 00000191: PUSH0 00000192: DUP1 00000193: REVERT 00000194: JUMPDEST 00000195: POP 00000196: PUSH2 0x01a8 00000199: PUSH2 0x01a3 0000019c: CALLDATASIZE 0000019d: PUSH1 0x04 0000019f: PUSH2 0x147e 000001a2: JUMP 000001a3: JUMPDEST 000001a4: PUSH2 0x056c 000001a7: JUMP 000001a8: JUMPDEST 000001a9: PUSH1 0x40 000001ab: MLOAD 000001ac: SWAP1 000001ad: ISZERO 000001ae: ISZERO 000001af: DUP2 000001b0: MSTORE 000001b1: PUSH1 0x20 000001b3: ADD 000001b4: JUMPDEST 000001b5: PUSH1 0x40 000001b7: MLOAD 000001b8: DUP1 000001b9: SWAP2 000001ba: SUB 000001bb: SWAP1 000001bc: RETURN 000001bd: JUMPDEST 000001be: CALLVALUE 000001bf: DUP1 000001c0: ISZERO 000001c1: PUSH2 0x01c8 000001c4: JUMPI 000001c5: PUSH0 000001c6: DUP1 000001c7: REVERT 000001c8: JUMPDEST 000001c9: POP 000001ca: PUSH2 0x01d1 000001cd: PUSH2 0x05a2 000001d0: JUMP 000001d1: JUMPDEST 000001d2: PUSH1 0x40 000001d4: MLOAD 000001d5: PUSH2 0x01b4 000001d8: SWAP2 000001d9: SWAP1 000001da: PUSH2 0x14f2 000001dd: JUMP 000001de: JUMPDEST 000001df: CALLVALUE 000001e0: DUP1 000001e1: ISZERO 000001e2: PUSH2 0x01e9 000001e5: JUMPI 000001e6: PUSH0 000001e7: DUP1 000001e8: REVERT 000001e9: JUMPDEST 000001ea: POP 000001eb: PUSH2 0x01a8 000001ee: PUSH2 0x01f8 000001f1: CALLDATASIZE 000001f2: PUSH1 0x04 000001f4: PUSH2 0x1518 000001f7: JUMP 000001f8: JUMPDEST 000001f9: PUSH2 0x062d 000001fc: JUMP 000001fd: JUMPDEST 000001fe: CALLVALUE 000001ff: DUP1 00000200: ISZERO 00000201: PUSH2 0x0208 00000204: JUMPI 00000205: PUSH0 00000206: DUP1 00000207: REVERT 00000208: JUMPDEST 00000209: POP 0000020a: PUSH2 0x0227 0000020d: PUSH2 0x0217 00000210: CALLDATASIZE 00000211: PUSH1 0x04 00000213: PUSH2 0x15f3 00000216: JUMP 00000217: JUMPDEST 00000218: PUSH4 0x0a85bd01 0000021d: PUSH1 0xe1 0000021f: SHL 00000220: SWAP5 00000221: SWAP4 00000222: POP 00000223: POP 00000224: POP 00000225: POP 00000226: JUMP 00000227: JUMPDEST 00000228: PUSH1 0x40 0000022a: MLOAD 0000022b: PUSH1 0x01 0000022d: PUSH1 0x01 0000022f: PUSH1 0xe0 00000231: SHL 00000232: SUB 00000233: NOT 00000234: SWAP1 00000235: SWAP2 00000236: AND 00000237: DUP2 00000238: MSTORE 00000239: PUSH1 0x20 0000023b: ADD 0000023c: PUSH2 0x01b4 0000023f: JUMP 00000240: JUMPDEST 00000241: CALLVALUE 00000242: DUP1 00000243: ISZERO 00000244: PUSH2 0x024b 00000247: JUMPI 00000248: PUSH0 00000249: DUP1 0000024a: REVERT 0000024b: JUMPDEST 0000024c: POP 0000024d: PUSH2 0x0255 00000250: PUSH1 0x02 00000252: SLOAD 00000253: DUP2 00000254: JUMP 00000255: JUMPDEST 00000256: PUSH1 0x40 00000258: MLOAD 00000259: SWAP1 0000025a: DUP2 0000025b: MSTORE 0000025c: PUSH1 0x20 0000025e: ADD 0000025f: PUSH2 0x01b4 00000262: JUMP 00000263: JUMPDEST 00000264: CALLVALUE 00000265: DUP1 00000266: ISZERO 00000267: PUSH2 0x026e 0000026a: JUMPI 0000026b: PUSH0 0000026c: DUP1 0000026d: REVERT 0000026e: JUMPDEST 0000026f: POP 00000270: PUSH2 0x0282 00000273: PUSH2 0x027d 00000276: CALLDATASIZE 00000277: PUSH1 0x04 00000279: PUSH2 0x165b 0000027c: JUMP 0000027d: JUMPDEST 0000027e: PUSH2 0x0698 00000281: JUMP 00000282: JUMPDEST 00000283: STOP 00000284: JUMPDEST 00000285: CALLVALUE 00000286: DUP1 00000287: ISZERO 00000288: PUSH2 0x028f 0000028b: JUMPI 0000028c: PUSH0 0000028d: DUP1 0000028e: REVERT 0000028f: JUMPDEST 00000290: POP 00000291: PUSH2 0x02a3 00000294: PUSH2 0x029e 00000297: CALLDATASIZE 00000298: PUSH1 0x04 0000029a: PUSH2 0x16fa 0000029d: JUMP 0000029e: JUMPDEST 0000029f: PUSH2 0x075d 000002a2: JUMP 000002a3: JUMPDEST 000002a4: PUSH1 0x40 000002a6: MLOAD 000002a7: PUSH2 0x01b4 000002aa: SWAP2 000002ab: SWAP1 000002ac: PUSH2 0x178d 000002af: JUMP 000002b0: JUMPDEST 000002b1: CALLVALUE 000002b2: DUP1 000002b3: ISZERO 000002b4: PUSH2 0x02bb 000002b7: JUMPI 000002b8: PUSH0 000002b9: DUP1 000002ba: REVERT 000002bb: JUMPDEST 000002bc: POP 000002bd: PUSH2 0x01a8 000002c0: PUSH2 0x02ca 000002c3: CALLDATASIZE 000002c4: PUSH1 0x04 000002c6: PUSH2 0x17ed 000002c9: JUMP 000002ca: JUMPDEST 000002cb: PUSH2 0x08d1 000002ce: JUMP 000002cf: JUMPDEST 000002d0: CALLVALUE 000002d1: DUP1 000002d2: ISZERO 000002d3: PUSH2 0x02da 000002d6: JUMPI 000002d7: PUSH0 000002d8: DUP1 000002d9: REVERT 000002da: JUMPDEST 000002db: POP 000002dc: PUSH2 0x0302 000002df: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000012 00000300: DUP2 00000301: JUMP 00000302: JUMPDEST 00000303: PUSH1 0x40 00000305: MLOAD 00000306: PUSH1 0xff 00000308: SWAP1 00000309: SWAP2 0000030a: AND 0000030b: DUP2 0000030c: MSTORE 0000030d: PUSH1 0x20 0000030f: ADD 00000310: PUSH2 0x01b4 00000313: JUMP 00000314: JUMPDEST 00000315: CALLVALUE 00000316: DUP1 00000317: ISZERO 00000318: PUSH2 0x031f 0000031b: JUMPI 0000031c: PUSH0 0000031d: DUP1 0000031e: REVERT 0000031f: JUMPDEST 00000320: POP 00000321: PUSH2 0x0255 00000324: PUSH2 0x08f1 00000327: JUMP 00000328: JUMPDEST 00000329: CALLVALUE 0000032a: DUP1 0000032b: ISZERO 0000032c: PUSH2 0x0333 0000032f: JUMPI 00000330: PUSH0 00000331: DUP1 00000332: REVERT 00000333: JUMPDEST 00000334: POP 00000335: PUSH2 0x0282 00000338: PUSH2 0x0342 0000033b: CALLDATASIZE 0000033c: PUSH1 0x04 0000033e: PUSH2 0x165b 00000341: JUMP 00000342: JUMPDEST 00000343: PUSH2 0x094b 00000346: JUMP 00000347: JUMPDEST 00000348: CALLVALUE 00000349: DUP1 0000034a: ISZERO 0000034b: PUSH2 0x0352 0000034e: JUMPI 0000034f: PUSH0 00000350: DUP1 00000351: REVERT 00000352: JUMPDEST 00000353: POP 00000354: PUSH2 0x0255 00000357: PUSH2 0x0361 0000035a: CALLDATASIZE 0000035b: PUSH1 0x04 0000035d: PUSH2 0x182b 00000360: JUMP 00000361: JUMPDEST 00000362: PUSH1 0x03 00000364: PUSH1 0x20 00000366: MSTORE 00000367: PUSH0 00000368: SWAP1 00000369: DUP2 0000036a: MSTORE 0000036b: PUSH1 0x40 0000036d: SWAP1 0000036e: KECCAK256 0000036f: SLOAD 00000370: DUP2 00000371: JUMP 00000372: JUMPDEST 00000373: CALLVALUE 00000374: DUP1 00000375: ISZERO 00000376: PUSH2 0x037d 00000379: JUMPI 0000037a: PUSH0 0000037b: DUP1 0000037c: REVERT 0000037d: JUMPDEST 0000037e: POP 0000037f: PUSH2 0x0282 00000382: PUSH2 0x038c 00000385: CALLDATASIZE 00000386: PUSH1 0x04 00000388: PUSH2 0x182b 0000038b: JUMP 0000038c: JUMPDEST 0000038d: PUSH2 0x09f9 00000390: JUMP 00000391: JUMPDEST 00000392: CALLVALUE 00000393: DUP1 00000394: ISZERO 00000395: PUSH2 0x039c 00000398: JUMPI 00000399: PUSH0 0000039a: DUP1 0000039b: REVERT 0000039c: JUMPDEST 0000039d: POP 0000039e: PUSH2 0x0255 000003a1: PUSH2 0x03ab 000003a4: CALLDATASIZE 000003a5: PUSH1 0x04 000003a7: PUSH2 0x182b 000003aa: JUMP 000003ab: JUMPDEST 000003ac: PUSH1 0x05 000003ae: PUSH1 0x20 000003b0: MSTORE 000003b1: PUSH0 000003b2: SWAP1 000003b3: DUP2 000003b4: MSTORE 000003b5: PUSH1 0x40 000003b7: SWAP1 000003b8: KECCAK256 000003b9: SLOAD 000003ba: DUP2 000003bb: JUMP 000003bc: JUMPDEST 000003bd: CALLVALUE 000003be: DUP1 000003bf: ISZERO 000003c0: PUSH2 0x03c7 000003c3: JUMPI 000003c4: PUSH0 000003c5: DUP1 000003c6: REVERT 000003c7: JUMPDEST 000003c8: POP 000003c9: PUSH1 0x08 000003cb: SLOAD 000003cc: PUSH2 0x03db 000003cf: SWAP1 000003d0: PUSH1 0x01 000003d2: PUSH1 0x01 000003d4: PUSH1 0xa0 000003d6: SHL 000003d7: SUB 000003d8: AND 000003d9: DUP2 000003da: JUMP 000003db: JUMPDEST 000003dc: PUSH1 0x40 000003de: MLOAD 000003df: PUSH1 0x01 000003e1: PUSH1 0x01 000003e3: PUSH1 0xa0 000003e5: SHL 000003e6: SUB 000003e7: SWAP1 000003e8: SWAP2 000003e9: AND 000003ea: DUP2 000003eb: MSTORE 000003ec: PUSH1 0x20 000003ee: ADD 000003ef: PUSH2 0x01b4 000003f2: JUMP 000003f3: JUMPDEST 000003f4: CALLVALUE 000003f5: DUP1 000003f6: ISZERO 000003f7: PUSH2 0x03fe 000003fa: JUMPI 000003fb: PUSH0 000003fc: DUP1 000003fd: REVERT 000003fe: JUMPDEST 000003ff: POP 00000400: PUSH2 0x0282 00000403: PUSH2 0x040d 00000406: CALLDATASIZE 00000407: PUSH1 0x04 00000409: PUSH2 0x182b 0000040c: JUMP 0000040d: JUMPDEST 0000040e: PUSH2 0x0ade 00000411: JUMP 00000412: JUMPDEST 00000413: CALLVALUE 00000414: DUP1 00000415: ISZERO 00000416: PUSH2 0x041d 00000419: JUMPI 0000041a: PUSH0 0000041b: DUP1 0000041c: REVERT 0000041d: JUMPDEST 0000041e: POP 0000041f: PUSH1 0x06 00000421: SLOAD 00000422: PUSH2 0x03db 00000425: SWAP1 00000426: PUSH1 0x01 00000428: PUSH1 0x01 0000042a: PUSH1 0xa0 0000042c: SHL 0000042d: SUB 0000042e: AND 0000042f: DUP2 00000430: JUMP 00000431: JUMPDEST 00000432: CALLVALUE 00000433: DUP1 00000434: ISZERO 00000435: PUSH2 0x043c 00000438: JUMPI 00000439: PUSH0 0000043a: DUP1 0000043b: REVERT 0000043c: JUMPDEST 0000043d: POP 0000043e: PUSH2 0x01d1 00000441: PUSH2 0x0b31 00000444: JUMP 00000445: JUMPDEST 00000446: CALLVALUE 00000447: DUP1 00000448: ISZERO 00000449: PUSH2 0x0450 0000044c: JUMPI 0000044d: PUSH0 0000044e: DUP1 0000044f: REVERT 00000450: JUMPDEST 00000451: POP 00000452: PUSH2 0x01a8 00000455: PUSH2 0x045f 00000458: CALLDATASIZE 00000459: PUSH1 0x04 0000045b: PUSH2 0x1518 0000045e: JUMP 0000045f: JUMPDEST 00000460: PUSH2 0x0b3e 00000463: JUMP 00000464: JUMPDEST 00000465: CALLVALUE 00000466: DUP1 00000467: ISZERO 00000468: PUSH2 0x046f 0000046b: JUMPI 0000046c: PUSH0 0000046d: DUP1 0000046e: REVERT 0000046f: JUMPDEST 00000470: POP 00000471: PUSH2 0x0227 00000474: PUSH2 0x047e 00000477: CALLDATASIZE 00000478: PUSH1 0x04 0000047a: PUSH2 0x18c3 0000047d: JUMP 0000047e: JUMPDEST 0000047f: PUSH4 0xbc197c81 00000484: PUSH1 0xe0 00000486: SHL 00000487: SWAP6 00000488: SWAP5 00000489: POP 0000048a: POP 0000048b: POP 0000048c: POP 0000048d: POP 0000048e: JUMP 0000048f: JUMPDEST 00000490: CALLVALUE 00000491: DUP1 00000492: ISZERO 00000493: PUSH2 0x049a 00000496: JUMPI 00000497: PUSH0 00000498: DUP1 00000499: REVERT 0000049a: JUMPDEST 0000049b: POP 0000049c: PUSH1 0x07 0000049e: SLOAD 0000049f: PUSH2 0x03db 000004a2: SWAP1 000004a3: PUSH1 0x01 000004a5: PUSH1 0x01 000004a7: PUSH1 0xa0 000004a9: SHL 000004aa: SUB 000004ab: AND 000004ac: DUP2 000004ad: JUMP 000004ae: JUMPDEST 000004af: CALLVALUE 000004b0: DUP1 000004b1: ISZERO 000004b2: PUSH2 0x04b9 000004b5: JUMPI 000004b6: PUSH0 000004b7: DUP1 000004b8: REVERT 000004b9: JUMPDEST 000004ba: POP 000004bb: PUSH2 0x0282 000004be: PUSH2 0x04c8 000004c1: CALLDATASIZE 000004c2: PUSH1 0x04 000004c4: PUSH2 0x196a 000004c7: JUMP 000004c8: JUMPDEST 000004c9: PUSH2 0x0b53 000004cc: JUMP 000004cd: JUMPDEST 000004ce: CALLVALUE 000004cf: DUP1 000004d0: ISZERO 000004d1: PUSH2 0x04d8 000004d4: JUMPI 000004d5: PUSH0 000004d6: DUP1 000004d7: REVERT 000004d8: JUMPDEST 000004d9: POP 000004da: PUSH2 0x0255 000004dd: PUSH2 0x04e7 000004e0: CALLDATASIZE 000004e1: PUSH1 0x04 000004e3: PUSH2 0x19db 000004e6: JUMP 000004e7: JUMPDEST 000004e8: PUSH1 0x04 000004ea: PUSH1 0x20 000004ec: SWAP1 000004ed: DUP2 000004ee: MSTORE 000004ef: PUSH0 000004f0: SWAP3 000004f1: DUP4 000004f2: MSTORE 000004f3: PUSH1 0x40 000004f5: DUP1 000004f6: DUP5 000004f7: KECCAK256 000004f8: SWAP1 000004f9: SWAP2 000004fa: MSTORE 000004fb: SWAP1 000004fc: DUP3 000004fd: MSTORE 000004fe: SWAP1 000004ff: KECCAK256 00000500: SLOAD 00000501: DUP2 00000502: JUMP 00000503: JUMPDEST 00000504: CALLVALUE 00000505: DUP1 00000506: ISZERO 00000507: PUSH2 0x050e 0000050a: JUMPI 0000050b: PUSH0 0000050c: DUP1 0000050d: REVERT 0000050e: JUMPDEST 0000050f: POP 00000510: PUSH2 0x0227 00000513: PUSH2 0x051d 00000516: CALLDATASIZE 00000517: PUSH1 0x04 00000519: PUSH2 0x1a12 0000051c: JUMP 0000051d: JUMPDEST 0000051e: PUSH4 0xf23a6e61 00000523: PUSH1 0xe0 00000525: SHL 00000526: SWAP6 00000527: SWAP5 00000528: POP 00000529: POP 0000052a: POP 0000052b: POP 0000052c: POP 0000052d: JUMP 0000052e: JUMPDEST 0000052f: CALLVALUE 00000530: DUP1 00000531: ISZERO 00000532: PUSH2 0x0539 00000535: JUMPI 00000536: PUSH0 00000537: DUP1 00000538: REVERT 00000539: JUMPDEST 0000053a: POP 0000053b: PUSH2 0x0282 0000053e: PUSH2 0x0548 00000541: CALLDATASIZE 00000542: PUSH1 0x04 00000544: PUSH2 0x182b 00000547: JUMP 00000548: JUMPDEST 00000549: PUSH2 0x0d91 0000054c: JUMP 0000054d: JUMPDEST 0000054e: CALLVALUE 0000054f: DUP1 00000550: ISZERO 00000551: PUSH2 0x0558 00000554: JUMPI 00000555: PUSH0 00000556: DUP1 00000557: REVERT 00000558: JUMPDEST 00000559: POP 0000055a: PUSH2 0x01d1 0000055d: PUSH2 0x0567 00000560: CALLDATASIZE 00000561: PUSH1 0x04 00000563: PUSH2 0x1a76 00000566: JUMP 00000567: JUMPDEST 00000568: PUSH2 0x0e0d 0000056b: JUMP 0000056c: JUMPDEST 0000056d: PUSH0 0000056e: PUSH1 0x01 00000570: PUSH1 0x01 00000572: PUSH1 0xe0 00000574: SHL 00000575: SUB 00000576: NOT 00000577: DUP3 00000578: AND 00000579: PUSH4 0x02711897 0000057e: PUSH1 0xe5 00000580: SHL 00000581: EQ 00000582: DUP1 00000583: PUSH2 0x059c 00000586: JUMPI 00000587: POP 00000588: PUSH4 0x01ffc9a7 0000058d: PUSH1 0xe0 0000058f: SHL 00000590: PUSH1 0x01 00000592: PUSH1 0x01 00000594: PUSH1 0xe0 00000596: SHL 00000597: SUB 00000598: NOT 00000599: DUP4 0000059a: AND 0000059b: EQ 0000059c: JUMPDEST 0000059d: SWAP3 0000059e: SWAP2 0000059f: POP 000005a0: POP 000005a1: JUMP 000005a2: JUMPDEST 000005a3: PUSH0 000005a4: DUP1 000005a5: SLOAD 000005a6: PUSH2 0x05ae 000005a9: SWAP1 000005aa: PUSH2 0x1afa 000005ad: JUMP 000005ae: JUMPDEST 000005af: DUP1 000005b0: PUSH1 0x1f 000005b2: ADD 000005b3: PUSH1 0x20 000005b5: DUP1 000005b6: SWAP2 000005b7: DIV 000005b8: MUL 000005b9: PUSH1 0x20 000005bb: ADD 000005bc: PUSH1 0x40 000005be: MLOAD 000005bf: SWAP1 000005c0: DUP2 000005c1: ADD 000005c2: PUSH1 0x40 000005c4: MSTORE 000005c5: DUP1 000005c6: SWAP3 000005c7: SWAP2 000005c8: SWAP1 000005c9: DUP2 000005ca: DUP2 000005cb: MSTORE 000005cc: PUSH1 0x20 000005ce: ADD 000005cf: DUP3 000005d0: DUP1 000005d1: SLOAD 000005d2: PUSH2 0x05da 000005d5: SWAP1 000005d6: PUSH2 0x1afa 000005d9: JUMP 000005da: JUMPDEST 000005db: DUP1 000005dc: ISZERO 000005dd: PUSH2 0x0625 000005e0: JUMPI 000005e1: DUP1 000005e2: PUSH1 0x1f 000005e4: LT 000005e5: PUSH2 0x05fc 000005e8: JUMPI 000005e9: PUSH2 0x0100 000005ec: DUP1 000005ed: DUP4 000005ee: SLOAD 000005ef: DIV 000005f0: MUL 000005f1: DUP4 000005f2: MSTORE 000005f3: SWAP2 000005f4: PUSH1 0x20 000005f6: ADD 000005f7: SWAP2 000005f8: PUSH2 0x0625 000005fb: JUMP 000005fc: JUMPDEST 000005fd: DUP3 000005fe: ADD 000005ff: SWAP2 00000600: SWAP1 00000601: PUSH0 00000602: MSTORE 00000603: PUSH1 0x20 00000605: PUSH0 00000606: KECCAK256 00000607: SWAP1 00000608: JUMPDEST 00000609: DUP2 0000060a: SLOAD 0000060b: DUP2 0000060c: MSTORE 0000060d: SWAP1 0000060e: PUSH1 0x01 00000610: ADD 00000611: SWAP1 00000612: PUSH1 0x20 00000614: ADD 00000615: DUP1 00000616: DUP4 00000617: GT 00000618: PUSH2 0x0608 0000061b: JUMPI 0000061c: DUP3 0000061d: SWAP1 0000061e: SUB 0000061f: PUSH1 0x1f 00000621: AND 00000622: DUP3 00000623: ADD 00000624: SWAP2 00000625: JUMPDEST 00000626: POP 00000627: POP 00000628: POP 00000629: POP 0000062a: POP 0000062b: DUP2 0000062c: JUMP 0000062d: JUMPDEST 0000062e: CALLER 0000062f: PUSH0 00000630: DUP2 00000631: DUP2 00000632: MSTORE 00000633: PUSH1 0x04 00000635: PUSH1 0x20 00000637: SWAP1 00000638: DUP2 00000639: MSTORE 0000063a: PUSH1 0x40 0000063c: DUP1 0000063d: DUP4 0000063e: KECCAK256 0000063f: PUSH1 0x01 00000641: PUSH1 0x01 00000643: PUSH1 0xa0 00000645: SHL 00000646: SUB 00000647: DUP8 00000648: AND 00000649: DUP1 0000064a: DUP6 0000064b: MSTORE 0000064c: SWAP3 0000064d: MSTORE 0000064e: DUP1 0000064f: DUP4 00000650: KECCAK256 00000651: DUP6 00000652: SWAP1 00000653: SSTORE 00000654: MLOAD 00000655: SWAP2 00000656: SWAP3 00000657: SWAP1 00000658: SWAP2 00000659: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 0000067a: SWAP1 0000067b: PUSH2 0x0687 0000067e: SWAP1 0000067f: DUP7 00000680: DUP2 00000681: MSTORE 00000682: PUSH1 0x20 00000684: ADD 00000685: SWAP1 00000686: JUMP 00000687: JUMPDEST 00000688: PUSH1 0x40 0000068a: MLOAD 0000068b: DUP1 0000068c: SWAP2 0000068d: SUB 0000068e: SWAP1 0000068f: LOG3 00000690: POP 00000691: PUSH1 0x01 00000693: SWAP3 00000694: SWAP2 00000695: POP 00000696: POP 00000697: JUMP 00000698: JUMPDEST 00000699: PUSH2 0x06ad 0000069c: CALLER 0000069d: PUSH0 0000069e: CALLDATALOAD 0000069f: PUSH1 0x01 000006a1: PUSH1 0x01 000006a3: PUSH1 0xe0 000006a5: SHL 000006a6: SUB 000006a7: NOT 000006a8: AND 000006a9: PUSH2 0x0e93 000006ac: JUMP 000006ad: JUMPDEST 000006ae: PUSH2 0x06d2 000006b1: JUMPI 000006b2: PUSH1 0x40 000006b4: MLOAD 000006b5: PUSH3 0x461bcd 000006b9: PUSH1 0xe5 000006bb: SHL 000006bc: DUP2 000006bd: MSTORE 000006be: PUSH1 0x04 000006c0: ADD 000006c1: PUSH2 0x06c9 000006c4: SWAP1 000006c5: PUSH2 0x1b32 000006c8: JUMP 000006c9: JUMPDEST 000006ca: PUSH1 0x40 000006cc: MLOAD 000006cd: DUP1 000006ce: SWAP2 000006cf: SUB 000006d0: SWAP1 000006d1: REVERT 000006d2: JUMPDEST 000006d3: PUSH2 0x06dc 000006d6: DUP3 000006d7: DUP3 000006d8: PUSH2 0x0f3a 000006db: JUMP 000006dc: JUMPDEST 000006dd: DUP3 000006de: ISZERO 000006df: PUSH2 0x06f6 000006e2: JUMPI 000006e3: PUSH2 0x06f6 000006e6: PUSH1 0x01 000006e8: PUSH1 0x01 000006ea: PUSH1 0xa0 000006ec: SHL 000006ed: SUB 000006ee: DUP6 000006ef: AND 000006f0: DUP7 000006f1: DUP6 000006f2: PUSH2 0x0fa1 000006f5: JUMP 000006f6: JUMPDEST 000006f7: DUP2 000006f8: PUSH1 0x01 000006fa: PUSH1 0x01 000006fc: PUSH1 0xa0 000006fe: SHL 000006ff: SUB 00000700: AND 00000701: DUP5 00000702: PUSH1 0x01 00000704: PUSH1 0x01 00000706: PUSH1 0xa0 00000708: SHL 00000709: SUB 0000070a: AND 0000070b: DUP7 0000070c: PUSH1 0x01 0000070e: PUSH1 0x01 00000710: PUSH1 0xa0 00000712: SHL 00000713: SUB 00000714: AND 00000715: PUSH32 0xe0c82280a1164680e0cf43be7db4c4c9f985423623ad7a544fb76c772bdc6043 00000736: DUP7 00000737: DUP6 00000738: PUSH1 0x40 0000073a: MLOAD 0000073b: PUSH2 0x074e 0000073e: SWAP3 0000073f: SWAP2 00000740: SWAP1 00000741: SWAP2 00000742: DUP3 00000743: MSTORE 00000744: PUSH1 0x20 00000746: DUP3 00000747: ADD 00000748: MSTORE 00000749: PUSH1 0x40 0000074b: ADD 0000074c: SWAP1 0000074d: JUMP 0000074e: JUMPDEST 0000074f: PUSH1 0x40 00000751: MLOAD 00000752: DUP1 00000753: SWAP2 00000754: SUB 00000755: SWAP1 00000756: LOG4 00000757: POP 00000758: POP 00000759: POP 0000075a: POP 0000075b: POP 0000075c: JUMP 0000075d: JUMPDEST 0000075e: PUSH1 0x60 00000760: PUSH2 0x0774 00000763: CALLER 00000764: PUSH0 00000765: CALLDATALOAD 00000766: PUSH1 0x01 00000768: PUSH1 0x01 0000076a: PUSH1 0xe0 0000076c: SHL 0000076d: SUB 0000076e: NOT 0000076f: AND 00000770: PUSH2 0x0e93 00000773: JUMP 00000774: JUMPDEST 00000775: PUSH2 0x0790 00000778: JUMPI 00000779: PUSH1 0x40 0000077b: MLOAD 0000077c: PUSH3 0x461bcd 00000780: PUSH1 0xe5 00000782: SHL 00000783: DUP2 00000784: MSTORE 00000785: PUSH1 0x04 00000787: ADD 00000788: PUSH2 0x06c9 0000078b: SWAP1 0000078c: PUSH2 0x1b32 0000078f: JUMP 00000790: JUMPDEST 00000791: DUP6 00000792: DUP1 00000793: PUSH8 0xffffffffffffffff 0000079c: DUP2 0000079d: GT 0000079e: ISZERO 0000079f: PUSH2 0x07aa 000007a2: JUMPI 000007a3: PUSH2 0x07aa 000007a6: PUSH2 0x1542 000007a9: JUMP 000007aa: JUMPDEST 000007ab: PUSH1 0x40 000007ad: MLOAD 000007ae: SWAP1 000007af: DUP1 000007b0: DUP3 000007b1: MSTORE 000007b2: DUP1 000007b3: PUSH1 0x20 000007b5: MUL 000007b6: PUSH1 0x20 000007b8: ADD 000007b9: DUP3 000007ba: ADD 000007bb: PUSH1 0x40 000007bd: MSTORE 000007be: DUP1 000007bf: ISZERO 000007c0: PUSH2 0x07dd 000007c3: JUMPI 000007c4: DUP2 000007c5: PUSH1 0x20 000007c7: ADD 000007c8: JUMPDEST 000007c9: PUSH1 0x60 000007cb: DUP2 000007cc: MSTORE 000007cd: PUSH1 0x20 000007cf: ADD 000007d0: SWAP1 000007d1: PUSH1 0x01 000007d3: SWAP1 000007d4: SUB 000007d5: SWAP1 000007d6: DUP2 000007d7: PUSH2 0x07c8 000007da: JUMPI 000007db: SWAP1 000007dc: POP 000007dd: JUMPDEST 000007de: POP 000007df: SWAP2 000007e0: POP 000007e1: PUSH0 000007e2: JUMPDEST 000007e3: DUP2 000007e4: DUP2 000007e5: LT 000007e6: ISZERO 000007e7: PUSH2 0x08c5 000007ea: JUMPI 000007eb: PUSH2 0x0897 000007ee: DUP8 000007ef: DUP8 000007f0: DUP4 000007f1: DUP2 000007f2: DUP2 000007f3: LT 000007f4: PUSH2 0x07ff 000007f7: JUMPI 000007f8: PUSH2 0x07ff 000007fb: PUSH2 0x1b58 000007fe: JUMP 000007ff: JUMPDEST 00000800: SWAP1 00000801: POP 00000802: PUSH1 0x20 00000804: MUL 00000805: DUP2 00000806: ADD 00000807: SWAP1 00000808: PUSH2 0x0811 0000080b: SWAP2 0000080c: SWAP1 0000080d: PUSH2 0x1b6c 00000810: JUMP 00000811: JUMPDEST 00000812: DUP1 00000813: DUP1 00000814: PUSH1 0x1f 00000816: ADD 00000817: PUSH1 0x20 00000819: DUP1 0000081a: SWAP2 0000081b: DIV 0000081c: MUL 0000081d: PUSH1 0x20 0000081f: ADD 00000820: PUSH1 0x40 00000822: MLOAD 00000823: SWAP1 00000824: DUP2 00000825: ADD 00000826: PUSH1 0x40 00000828: MSTORE 00000829: DUP1 0000082a: SWAP4 0000082b: SWAP3 0000082c: SWAP2 0000082d: SWAP1 0000082e: DUP2 0000082f: DUP2 00000830: MSTORE 00000831: PUSH1 0x20 00000833: ADD 00000834: DUP4 00000835: DUP4 00000836: DUP1 00000837: DUP3 00000838: DUP5 00000839: CALLDATACOPY 0000083a: PUSH0 0000083b: SWAP3 0000083c: ADD 0000083d: SWAP2 0000083e: SWAP1 0000083f: SWAP2 00000840: MSTORE 00000841: POP 00000842: DUP10 00000843: SWAP3 00000844: POP 00000845: DUP9 00000846: SWAP2 00000847: POP 00000848: DUP6 00000849: SWAP1 0000084a: POP 0000084b: DUP2 0000084c: DUP2 0000084d: LT 0000084e: PUSH2 0x0859 00000851: JUMPI 00000852: PUSH2 0x0859 00000855: PUSH2 0x1b58 00000858: JUMP 00000859: JUMPDEST 0000085a: SWAP1 0000085b: POP 0000085c: PUSH1 0x20 0000085e: MUL 0000085f: ADD 00000860: CALLDATALOAD 00000861: DUP12 00000862: DUP12 00000863: DUP6 00000864: DUP2 00000865: DUP2 00000866: LT 00000867: PUSH2 0x0872 0000086a: JUMPI 0000086b: PUSH2 0x0872 0000086e: PUSH2 0x1b58 00000871: JUMP 00000872: JUMPDEST 00000873: SWAP1 00000874: POP 00000875: PUSH1 0x20 00000877: MUL 00000878: ADD 00000879: PUSH1 0x20 0000087b: DUP2 0000087c: ADD 0000087d: SWAP1 0000087e: PUSH2 0x0887 00000881: SWAP2 00000882: SWAP1 00000883: PUSH2 0x182b 00000886: JUMP 00000887: JUMPDEST 00000888: PUSH1 0x01 0000088a: PUSH1 0x01 0000088c: PUSH1 0xa0 0000088e: SHL 0000088f: SUB 00000890: AND 00000891: SWAP2 00000892: SWAP1 00000893: PUSH2 0x1024 00000896: JUMP 00000897: JUMPDEST 00000898: DUP4 00000899: DUP3 0000089a: DUP2 0000089b: MLOAD 0000089c: DUP2 0000089d: LT 0000089e: PUSH2 0x08a9 000008a1: JUMPI 000008a2: PUSH2 0x08a9 000008a5: PUSH2 0x1b58 000008a8: JUMP 000008a9: JUMPDEST 000008aa: PUSH1 0x20 000008ac: MUL 000008ad: PUSH1 0x20 000008af: ADD 000008b0: ADD 000008b1: DUP2 000008b2: SWAP1 000008b3: MSTORE 000008b4: POP 000008b5: DUP1 000008b6: PUSH2 0x08be 000008b9: SWAP1 000008ba: PUSH2 0x1bc3 000008bd: JUMP 000008be: JUMPDEST 000008bf: SWAP1 000008c0: POP 000008c1: PUSH2 0x07e2 000008c4: JUMP 000008c5: JUMPDEST 000008c6: POP 000008c7: POP 000008c8: SWAP7 000008c9: SWAP6 000008ca: POP 000008cb: POP 000008cc: POP 000008cd: POP 000008ce: POP 000008cf: POP 000008d0: JUMP 000008d1: JUMPDEST 000008d2: PUSH0 000008d3: PUSH2 0x08dc 000008d6: DUP5 000008d7: DUP5 000008d8: PUSH2 0x10bd 000008db: JUMP 000008dc: JUMPDEST 000008dd: PUSH2 0x08e7 000008e0: DUP5 000008e1: DUP5 000008e2: DUP5 000008e3: PUSH2 0x113a 000008e6: JUMP 000008e7: JUMPDEST 000008e8: SWAP1 000008e9: POP 000008ea: JUMPDEST 000008eb: SWAP4 000008ec: SWAP3 000008ed: POP 000008ee: POP 000008ef: POP 000008f0: JUMP 000008f1: JUMPDEST 000008f2: PUSH0 000008f3: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 00000914: CHAINID 00000915: EQ 00000916: PUSH2 0x0926 00000919: JUMPI 0000091a: PUSH2 0x0921 0000091d: PUSH2 0x1214 00000920: JUMP 00000921: JUMPDEST 00000922: SWAP1 00000923: POP 00000924: SWAP1 00000925: JUMP 00000926: JUMPDEST 00000927: POP 00000928: PUSH32 0x26e058ccd4677bad53a7a6d1abc30b046b30c5adc515c58943849ab6ab20fa20 00000949: SWAP1 0000094a: JUMP 0000094b: JUMPDEST 0000094c: PUSH2 0x0960 0000094f: CALLER 00000950: PUSH0 00000951: CALLDATALOAD 00000952: PUSH1 0x01 00000954: PUSH1 0x01 00000956: PUSH1 0xe0 00000958: SHL 00000959: SUB 0000095a: NOT 0000095b: AND 0000095c: PUSH2 0x0e93 0000095f: JUMP 00000960: JUMPDEST 00000961: PUSH2 0x097c 00000964: JUMPI 00000965: PUSH1 0x40 00000967: MLOAD 00000968: PUSH3 0x461bcd 0000096c: PUSH1 0xe5 0000096e: SHL 0000096f: DUP2 00000970: MSTORE 00000971: PUSH1 0x04 00000973: ADD 00000974: PUSH2 0x06c9 00000977: SWAP1 00000978: PUSH2 0x1b32 0000097b: JUMP 0000097c: JUMPDEST 0000097d: DUP3 0000097e: ISZERO 0000097f: PUSH2 0x0997 00000982: JUMPI 00000983: PUSH2 0x0997 00000986: PUSH1 0x01 00000988: PUSH1 0x01 0000098a: PUSH1 0xa0 0000098c: SHL 0000098d: SUB 0000098e: DUP6 0000098f: AND 00000990: DUP7 00000991: ADDRESS 00000992: DUP7 00000993: PUSH2 0x12ac 00000996: JUMP 00000997: JUMPDEST 00000998: PUSH2 0x09a1 0000099b: DUP3 0000099c: DUP3 0000099d: PUSH2 0x1344 000009a0: JUMP 000009a1: JUMPDEST 000009a2: DUP2 000009a3: PUSH1 0x01 000009a5: PUSH1 0x01 000009a7: PUSH1 0xa0 000009a9: SHL 000009aa: SUB 000009ab: AND 000009ac: DUP5 000009ad: PUSH1 0x01 000009af: PUSH1 0x01 000009b1: PUSH1 0xa0 000009b3: SHL 000009b4: SUB 000009b5: AND 000009b6: DUP7 000009b7: PUSH1 0x01 000009b9: PUSH1 0x01 000009bb: PUSH1 0xa0 000009bd: SHL 000009be: SUB 000009bf: AND 000009c0: PUSH32 0xea00f88768a86184a6e515238a549c171769fe7460a011d6fd0bcd48ca078ea4 000009e1: DUP7 000009e2: DUP6 000009e3: PUSH1 0x40 000009e5: MLOAD 000009e6: PUSH2 0x074e 000009e9: SWAP3 000009ea: SWAP2 000009eb: SWAP1 000009ec: SWAP2 000009ed: DUP3 000009ee: MSTORE 000009ef: PUSH1 0x20 000009f1: DUP3 000009f2: ADD 000009f3: MSTORE 000009f4: PUSH1 0x40 000009f6: ADD 000009f7: SWAP1 000009f8: JUMP 000009f9: JUMPDEST 000009fa: PUSH1 0x06 000009fc: SLOAD 000009fd: PUSH1 0x01 000009ff: PUSH1 0x01 00000a01: PUSH1 0xa0 00000a03: SHL 00000a04: SUB 00000a05: AND 00000a06: CALLER 00000a07: EQ 00000a08: DUP1 00000a09: PUSH2 0x0a8b 00000a0c: JUMPI 00000a0d: POP 00000a0e: PUSH1 0x07 00000a10: SLOAD 00000a11: PUSH1 0x40 00000a13: MLOAD 00000a14: PUSH4 0xb7009613 00000a19: PUSH1 0xe0 00000a1b: SHL 00000a1c: DUP2 00000a1d: MSTORE 00000a1e: PUSH1 0x01 00000a20: PUSH1 0x01 00000a22: PUSH1 0xa0 00000a24: SHL 00000a25: SUB 00000a26: SWAP1 00000a27: SWAP2 00000a28: AND 00000a29: SWAP1 00000a2a: PUSH4 0xb7009613 00000a2f: SWAP1 00000a30: PUSH2 0x0a4c 00000a33: SWAP1 00000a34: CALLER 00000a35: SWAP1 00000a36: ADDRESS 00000a37: SWAP1 00000a38: PUSH1 0x01 00000a3a: PUSH1 0x01 00000a3c: PUSH1 0xe0 00000a3e: SHL 00000a3f: SUB 00000a40: NOT 00000a41: PUSH0 00000a42: CALLDATALOAD 00000a43: AND 00000a44: SWAP1 00000a45: PUSH1 0x04 00000a47: ADD 00000a48: PUSH2 0x1bdb 00000a4b: JUMP 00000a4c: JUMPDEST 00000a4d: PUSH1 0x20 00000a4f: PUSH1 0x40 00000a51: MLOAD 00000a52: DUP1 00000a53: DUP4 00000a54: SUB 00000a55: DUP2 00000a56: DUP7 00000a57: GAS 00000a58: STATICCALL 00000a59: ISZERO 00000a5a: DUP1 00000a5b: ISZERO 00000a5c: PUSH2 0x0a67 00000a5f: JUMPI 00000a60: RETURNDATASIZE 00000a61: PUSH0 00000a62: DUP1 00000a63: RETURNDATACOPY 00000a64: RETURNDATASIZE 00000a65: PUSH0 00000a66: REVERT 00000a67: JUMPDEST 00000a68: POP 00000a69: POP 00000a6a: POP 00000a6b: POP 00000a6c: PUSH1 0x40 00000a6e: MLOAD 00000a6f: RETURNDATASIZE 00000a70: PUSH1 0x1f 00000a72: NOT 00000a73: PUSH1 0x1f 00000a75: DUP3 00000a76: ADD 00000a77: AND 00000a78: DUP3 00000a79: ADD 00000a7a: DUP1 00000a7b: PUSH1 0x40 00000a7d: MSTORE 00000a7e: POP 00000a7f: DUP2 00000a80: ADD 00000a81: SWAP1 00000a82: PUSH2 0x0a8b 00000a85: SWAP2 00000a86: SWAP1 00000a87: PUSH2 0x1c08 00000a8a: JUMP 00000a8b: JUMPDEST 00000a8c: PUSH2 0x0a93 00000a8f: JUMPI 00000a90: PUSH0 00000a91: DUP1 00000a92: REVERT 00000a93: JUMPDEST 00000a94: PUSH1 0x07 00000a96: DUP1 00000a97: SLOAD 00000a98: PUSH1 0x01 00000a9a: PUSH1 0x01 00000a9c: PUSH1 0xa0 00000a9e: SHL 00000a9f: SUB 00000aa0: NOT 00000aa1: AND 00000aa2: PUSH1 0x01 00000aa4: PUSH1 0x01 00000aa6: PUSH1 0xa0 00000aa8: SHL 00000aa9: SUB 00000aaa: DUP4 00000aab: AND 00000aac: SWAP1 00000aad: DUP2 00000aae: OR 00000aaf: SWAP1 00000ab0: SWAP2 00000ab1: SSTORE 00000ab2: PUSH1 0x40 00000ab4: MLOAD 00000ab5: CALLER 00000ab6: SWAP1 00000ab7: PUSH32 0xa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198 00000ad8: SWAP1 00000ad9: PUSH0 00000ada: SWAP1 00000adb: LOG3 00000adc: POP 00000add: JUMP 00000ade: JUMPDEST 00000adf: PUSH2 0x0af3 00000ae2: CALLER 00000ae3: PUSH0 00000ae4: CALLDATALOAD 00000ae5: PUSH1 0x01 00000ae7: PUSH1 0x01 00000ae9: PUSH1 0xe0 00000aeb: SHL 00000aec: SUB 00000aed: NOT 00000aee: AND 00000aef: PUSH2 0x0e93 00000af2: JUMP 00000af3: JUMPDEST 00000af4: PUSH2 0x0b0f 00000af7: JUMPI 00000af8: PUSH1 0x40 00000afa: MLOAD 00000afb: PUSH3 0x461bcd 00000aff: PUSH1 0xe5 00000b01: SHL 00000b02: DUP2 00000b03: MSTORE 00000b04: PUSH1 0x04 00000b06: ADD 00000b07: PUSH2 0x06c9 00000b0a: SWAP1 00000b0b: PUSH2 0x1b32 00000b0e: JUMP 00000b0f: JUMPDEST 00000b10: PUSH1 0x08 00000b12: DUP1 00000b13: SLOAD 00000b14: PUSH1 0x01 00000b16: PUSH1 0x01 00000b18: PUSH1 0xa0 00000b1a: SHL 00000b1b: SUB 00000b1c: NOT 00000b1d: AND 00000b1e: PUSH1 0x01 00000b20: PUSH1 0x01 00000b22: PUSH1 0xa0 00000b24: SHL 00000b25: SUB 00000b26: SWAP3 00000b27: SWAP1 00000b28: SWAP3 00000b29: AND 00000b2a: SWAP2 00000b2b: SWAP1 00000b2c: SWAP2 00000b2d: OR 00000b2e: SWAP1 00000b2f: SSTORE 00000b30: JUMP 00000b31: JUMPDEST 00000b32: PUSH1 0x01 00000b34: DUP1 00000b35: SLOAD 00000b36: PUSH2 0x05ae 00000b39: SWAP1 00000b3a: PUSH2 0x1afa 00000b3d: JUMP 00000b3e: JUMPDEST 00000b3f: PUSH0 00000b40: PUSH2 0x0b49 00000b43: CALLER 00000b44: DUP5 00000b45: PUSH2 0x10bd 00000b48: JUMP 00000b49: JUMPDEST 00000b4a: PUSH2 0x08ea 00000b4d: DUP4 00000b4e: DUP4 00000b4f: PUSH2 0x1393 00000b52: JUMP 00000b53: JUMPDEST 00000b54: TIMESTAMP 00000b55: DUP5 00000b56: LT 00000b57: ISZERO 00000b58: PUSH2 0x0ba3 00000b5b: JUMPI 00000b5c: PUSH1 0x40 00000b5e: MLOAD 00000b5f: PUSH3 0x461bcd 00000b63: PUSH1 0xe5 00000b65: SHL 00000b66: DUP2 00000b67: MSTORE 00000b68: PUSH1 0x20 00000b6a: PUSH1 0x04 00000b6c: DUP3 00000b6d: ADD 00000b6e: MSTORE 00000b6f: PUSH1 0x17 00000b71: PUSH1 0x24 00000b73: DUP3 00000b74: ADD 00000b75: MSTORE 00000b76: PUSH32 0x5045524d49545f444541444c494e455f45585049524544000000000000000000 00000b97: PUSH1 0x44 00000b99: DUP3 00000b9a: ADD 00000b9b: MSTORE 00000b9c: PUSH1 0x64 00000b9e: ADD 00000b9f: PUSH2 0x06c9 00000ba2: JUMP 00000ba3: JUMPDEST 00000ba4: PUSH0 00000ba5: PUSH1 0x01 00000ba7: PUSH2 0x0bae 00000baa: PUSH2 0x08f1 00000bad: JUMP 00000bae: JUMPDEST 00000baf: PUSH1 0x01 00000bb1: PUSH1 0x01 00000bb3: PUSH1 0xa0 00000bb5: SHL 00000bb6: SUB 00000bb7: DUP11 00000bb8: DUP2 00000bb9: AND 00000bba: PUSH0 00000bbb: DUP2 00000bbc: DUP2 00000bbd: MSTORE 00000bbe: PUSH1 0x05 00000bc0: PUSH1 0x20 00000bc2: SWAP1 00000bc3: DUP2 00000bc4: MSTORE 00000bc5: PUSH1 0x40 00000bc7: SWAP2 00000bc8: DUP3 00000bc9: SWAP1 00000bca: KECCAK256 00000bcb: DUP1 00000bcc: SLOAD 00000bcd: PUSH1 0x01 00000bcf: DUP2 00000bd0: ADD 00000bd1: SWAP1 00000bd2: SWAP2 00000bd3: SSTORE 00000bd4: DUP3 00000bd5: MLOAD 00000bd6: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 00000bf7: DUP2 00000bf8: DUP5 00000bf9: ADD 00000bfa: MSTORE 00000bfb: DUP1 00000bfc: DUP5 00000bfd: ADD 00000bfe: SWAP5 00000bff: SWAP1 00000c00: SWAP5 00000c01: MSTORE 00000c02: SWAP4 00000c03: DUP14 00000c04: AND 00000c05: PUSH1 0x60 00000c07: DUP5 00000c08: ADD 00000c09: MSTORE 00000c0a: PUSH1 0x80 00000c0c: DUP4 00000c0d: ADD 00000c0e: DUP13 00000c0f: SWAP1 00000c10: MSTORE 00000c11: PUSH1 0xa0 00000c13: DUP4 00000c14: ADD 00000c15: SWAP4 00000c16: SWAP1 00000c17: SWAP4 00000c18: MSTORE 00000c19: PUSH1 0xc0 00000c1b: DUP1 00000c1c: DUP4 00000c1d: ADD 00000c1e: DUP12 00000c1f: SWAP1 00000c20: MSTORE 00000c21: DUP2 00000c22: MLOAD 00000c23: DUP1 00000c24: DUP5 00000c25: SUB 00000c26: SWAP1 00000c27: SWAP2 00000c28: ADD 00000c29: DUP2 00000c2a: MSTORE 00000c2b: PUSH1 0xe0 00000c2d: DUP4 00000c2e: ADD 00000c2f: SWAP1 00000c30: SWAP2 00000c31: MSTORE 00000c32: DUP1 00000c33: MLOAD 00000c34: SWAP3 00000c35: ADD 00000c36: SWAP2 00000c37: SWAP1 00000c38: SWAP2 00000c39: KECCAK256 00000c3a: PUSH2 0x1901 00000c3d: PUSH1 0xf0 00000c3f: SHL 00000c40: PUSH2 0x0100 00000c43: DUP4 00000c44: ADD 00000c45: MSTORE 00000c46: PUSH2 0x0102 00000c49: DUP3 00000c4a: ADD 00000c4b: SWAP3 00000c4c: SWAP1 00000c4d: SWAP3 00000c4e: MSTORE 00000c4f: PUSH2 0x0122 00000c52: DUP2 00000c53: ADD 00000c54: SWAP2 00000c55: SWAP1 00000c56: SWAP2 00000c57: MSTORE 00000c58: PUSH2 0x0142 00000c5b: ADD 00000c5c: PUSH1 0x40 00000c5e: DUP1 00000c5f: MLOAD 00000c60: PUSH1 0x1f 00000c62: NOT 00000c63: DUP2 00000c64: DUP5 00000c65: SUB 00000c66: ADD 00000c67: DUP2 00000c68: MSTORE 00000c69: DUP3 00000c6a: DUP3 00000c6b: MSTORE 00000c6c: DUP1 00000c6d: MLOAD 00000c6e: PUSH1 0x20 00000c70: SWAP2 00000c71: DUP3 00000c72: ADD 00000c73: KECCAK256 00000c74: PUSH0 00000c75: DUP5 00000c76: MSTORE 00000c77: SWAP1 00000c78: DUP4 00000c79: ADD 00000c7a: DUP1 00000c7b: DUP4 00000c7c: MSTORE 00000c7d: MSTORE 00000c7e: PUSH1 0xff 00000c80: DUP8 00000c81: AND 00000c82: SWAP1 00000c83: DUP3 00000c84: ADD 00000c85: MSTORE 00000c86: PUSH1 0x60 00000c88: DUP2 00000c89: ADD 00000c8a: DUP6 00000c8b: SWAP1 00000c8c: MSTORE 00000c8d: PUSH1 0x80 00000c8f: DUP2 00000c90: ADD 00000c91: DUP5 00000c92: SWAP1 00000c93: MSTORE 00000c94: PUSH1 0xa0 00000c96: ADD 00000c97: PUSH1 0x20 00000c99: PUSH1 0x40 00000c9b: MLOAD 00000c9c: PUSH1 0x20 00000c9e: DUP2 00000c9f: SUB 00000ca0: SWAP1 00000ca1: DUP1 00000ca2: DUP5 00000ca3: SUB 00000ca4: SWAP1 00000ca5: DUP6 00000ca6: GAS 00000ca7: STATICCALL 00000ca8: ISZERO 00000ca9: DUP1 00000caa: ISZERO 00000cab: PUSH2 0x0cb6 00000cae: JUMPI 00000caf: RETURNDATASIZE 00000cb0: PUSH0 00000cb1: DUP1 00000cb2: RETURNDATACOPY 00000cb3: RETURNDATASIZE 00000cb4: PUSH0 00000cb5: REVERT 00000cb6: JUMPDEST 00000cb7: POP 00000cb8: POP 00000cb9: PUSH1 0x40 00000cbb: MLOAD 00000cbc: PUSH1 0x1f 00000cbe: NOT 00000cbf: ADD 00000cc0: MLOAD 00000cc1: SWAP2 00000cc2: POP 00000cc3: POP 00000cc4: PUSH1 0x01 00000cc6: PUSH1 0x01 00000cc8: PUSH1 0xa0 00000cca: SHL 00000ccb: SUB 00000ccc: DUP2 00000ccd: AND 00000cce: ISZERO 00000ccf: DUP1 00000cd0: ISZERO 00000cd1: SWAP1 00000cd2: PUSH2 0x0cec 00000cd5: JUMPI 00000cd6: POP 00000cd7: DUP8 00000cd8: PUSH1 0x01 00000cda: PUSH1 0x01 00000cdc: PUSH1 0xa0 00000cde: SHL 00000cdf: SUB 00000ce0: AND 00000ce1: DUP2 00000ce2: PUSH1 0x01 00000ce4: PUSH1 0x01 00000ce6: PUSH1 0xa0 00000ce8: SHL 00000ce9: SUB 00000cea: AND 00000ceb: EQ 00000cec: JUMPDEST 00000ced: PUSH2 0x0d29 00000cf0: JUMPI 00000cf1: PUSH1 0x40 00000cf3: MLOAD 00000cf4: PUSH3 0x461bcd 00000cf8: PUSH1 0xe5 00000cfa: SHL 00000cfb: DUP2 00000cfc: MSTORE 00000cfd: PUSH1 0x20 00000cff: PUSH1 0x04 00000d01: DUP3 00000d02: ADD 00000d03: MSTORE 00000d04: PUSH1 0x0e 00000d06: PUSH1 0x24 00000d08: DUP3 00000d09: ADD 00000d0a: MSTORE 00000d0b: PUSH14 0x24a72b20a624a22fa9a4a3a722a9 00000d1a: PUSH1 0x91 00000d1c: SHL 00000d1d: PUSH1 0x44 00000d1f: DUP3 00000d20: ADD 00000d21: MSTORE 00000d22: PUSH1 0x64 00000d24: ADD 00000d25: PUSH2 0x06c9 00000d28: JUMP 00000d29: JUMPDEST 00000d2a: PUSH1 0x01 00000d2c: PUSH1 0x01 00000d2e: PUSH1 0xa0 00000d30: SHL 00000d31: SUB 00000d32: SWAP1 00000d33: DUP2 00000d34: AND 00000d35: PUSH0 00000d36: SWAP1 00000d37: DUP2 00000d38: MSTORE 00000d39: PUSH1 0x04 00000d3b: PUSH1 0x20 00000d3d: SWAP1 00000d3e: DUP2 00000d3f: MSTORE 00000d40: PUSH1 0x40 00000d42: DUP1 00000d43: DUP4 00000d44: KECCAK256 00000d45: DUP11 00000d46: DUP6 00000d47: AND 00000d48: DUP1 00000d49: DUP6 00000d4a: MSTORE 00000d4b: SWAP1 00000d4c: DUP4 00000d4d: MSTORE 00000d4e: SWAP3 00000d4f: DUP2 00000d50: SWAP1 00000d51: KECCAK256 00000d52: DUP10 00000d53: SWAP1 00000d54: SSTORE 00000d55: MLOAD 00000d56: DUP9 00000d57: DUP2 00000d58: MSTORE 00000d59: SWAP2 00000d5a: SWAP3 00000d5b: DUP11 00000d5c: AND 00000d5d: SWAP2 00000d5e: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00000d7f: SWAP2 00000d80: ADD 00000d81: PUSH1 0x40 00000d83: MLOAD 00000d84: DUP1 00000d85: SWAP2 00000d86: SUB 00000d87: SWAP1 00000d88: LOG3 00000d89: POP 00000d8a: POP 00000d8b: POP 00000d8c: POP 00000d8d: POP 00000d8e: POP 00000d8f: POP 00000d90: JUMP 00000d91: JUMPDEST 00000d92: PUSH2 0x0da6 00000d95: CALLER 00000d96: PUSH0 00000d97: CALLDATALOAD 00000d98: PUSH1 0x01 00000d9a: PUSH1 0x01 00000d9c: PUSH1 0xe0 00000d9e: SHL 00000d9f: SUB 00000da0: NOT 00000da1: AND 00000da2: PUSH2 0x0e93 00000da5: JUMP 00000da6: JUMPDEST 00000da7: PUSH2 0x0dc2 00000daa: JUMPI 00000dab: PUSH1 0x40 00000dad: MLOAD 00000dae: PUSH3 0x461bcd 00000db2: PUSH1 0xe5 00000db4: SHL 00000db5: DUP2 00000db6: MSTORE 00000db7: PUSH1 0x04 00000db9: ADD 00000dba: PUSH2 0x06c9 00000dbd: SWAP1 00000dbe: PUSH2 0x1b32 00000dc1: JUMP 00000dc2: JUMPDEST 00000dc3: PUSH1 0x06 00000dc5: DUP1 00000dc6: SLOAD 00000dc7: PUSH1 0x01 00000dc9: PUSH1 0x01 00000dcb: PUSH1 0xa0 00000dcd: SHL 00000dce: SUB 00000dcf: NOT 00000dd0: AND 00000dd1: PUSH1 0x01 00000dd3: PUSH1 0x01 00000dd5: PUSH1 0xa0 00000dd7: SHL 00000dd8: SUB 00000dd9: DUP4 00000dda: AND 00000ddb: SWAP1 00000ddc: DUP2 00000ddd: OR 00000dde: SWAP1 00000ddf: SWAP2 00000de0: SSTORE 00000de1: PUSH1 0x40 00000de3: MLOAD 00000de4: CALLER 00000de5: SWAP1 00000de6: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000e07: SWAP1 00000e08: PUSH0 00000e09: SWAP1 00000e0a: LOG3 00000e0b: POP 00000e0c: JUMP 00000e0d: JUMPDEST 00000e0e: PUSH1 0x60 00000e10: PUSH2 0x0e24 00000e13: CALLER 00000e14: PUSH0 00000e15: CALLDATALOAD 00000e16: PUSH1 0x01 00000e18: PUSH1 0x01 00000e1a: PUSH1 0xe0 00000e1c: SHL 00000e1d: SUB 00000e1e: NOT 00000e1f: AND 00000e20: PUSH2 0x0e93 00000e23: JUMP 00000e24: JUMPDEST 00000e25: PUSH2 0x0e40 00000e28: JUMPI 00000e29: PUSH1 0x40 00000e2b: MLOAD 00000e2c: PUSH3 0x461bcd 00000e30: PUSH1 0xe5 00000e32: SHL 00000e33: DUP2 00000e34: MSTORE 00000e35: PUSH1 0x04 00000e37: ADD 00000e38: PUSH2 0x06c9 00000e3b: SWAP1 00000e3c: PUSH2 0x1b32 00000e3f: JUMP 00000e40: JUMPDEST 00000e41: PUSH2 0x0e8a 00000e44: DUP5 00000e45: DUP5 00000e46: DUP1 00000e47: DUP1 00000e48: PUSH1 0x1f 00000e4a: ADD 00000e4b: PUSH1 0x20 00000e4d: DUP1 00000e4e: SWAP2 00000e4f: DIV 00000e50: MUL 00000e51: PUSH1 0x20 00000e53: ADD 00000e54: PUSH1 0x40 00000e56: MLOAD 00000e57: SWAP1 00000e58: DUP2 00000e59: ADD 00000e5a: PUSH1 0x40 00000e5c: MSTORE 00000e5d: DUP1 00000e5e: SWAP4 00000e5f: SWAP3 00000e60: SWAP2 00000e61: SWAP1 00000e62: DUP2 00000e63: DUP2 00000e64: MSTORE 00000e65: PUSH1 0x20 00000e67: ADD 00000e68: DUP4 00000e69: DUP4 00000e6a: DUP1 00000e6b: DUP3 00000e6c: DUP5 00000e6d: CALLDATACOPY 00000e6e: PUSH0 00000e6f: SWAP3 00000e70: ADD 00000e71: SWAP2 00000e72: SWAP1 00000e73: SWAP2 00000e74: MSTORE 00000e75: POP 00000e76: POP 00000e77: POP 00000e78: PUSH1 0x01 00000e7a: PUSH1 0x01 00000e7c: PUSH1 0xa0 00000e7e: SHL 00000e7f: SUB 00000e80: DUP9 00000e81: AND 00000e82: SWAP2 00000e83: SWAP1 00000e84: POP 00000e85: DUP5 00000e86: PUSH2 0x1024 00000e89: JUMP 00000e8a: JUMPDEST 00000e8b: SWAP6 00000e8c: SWAP5 00000e8d: POP 00000e8e: POP 00000e8f: POP 00000e90: POP 00000e91: POP 00000e92: JUMP 00000e93: JUMPDEST 00000e94: PUSH1 0x07 00000e96: SLOAD 00000e97: PUSH0 00000e98: SWAP1 00000e99: PUSH1 0x01 00000e9b: PUSH1 0x01 00000e9d: PUSH1 0xa0 00000e9f: SHL 00000ea0: SUB 00000ea1: AND 00000ea2: DUP1 00000ea3: ISZERO 00000ea4: DUP1 00000ea5: ISZERO 00000ea6: SWAP1 00000ea7: PUSH2 0x0f1a 00000eaa: JUMPI 00000eab: POP 00000eac: PUSH1 0x40 00000eae: MLOAD 00000eaf: PUSH4 0xb7009613 00000eb4: PUSH1 0xe0 00000eb6: SHL 00000eb7: DUP2 00000eb8: MSTORE 00000eb9: PUSH1 0x01 00000ebb: PUSH1 0x01 00000ebd: PUSH1 0xa0 00000ebf: SHL 00000ec0: SUB 00000ec1: DUP3 00000ec2: AND 00000ec3: SWAP1 00000ec4: PUSH4 0xb7009613 00000ec9: SWAP1 00000eca: PUSH2 0x0edb 00000ecd: SWAP1 00000ece: DUP8 00000ecf: SWAP1 00000ed0: ADDRESS 00000ed1: SWAP1 00000ed2: DUP9 00000ed3: SWAP1 00000ed4: PUSH1 0x04 00000ed6: ADD 00000ed7: PUSH2 0x1bdb 00000eda: JUMP 00000edb: JUMPDEST 00000edc: PUSH1 0x20 00000ede: PUSH1 0x40 00000ee0: MLOAD 00000ee1: DUP1 00000ee2: DUP4 00000ee3: SUB 00000ee4: DUP2 00000ee5: DUP7 00000ee6: GAS 00000ee7: STATICCALL 00000ee8: ISZERO 00000ee9: DUP1 00000eea: ISZERO 00000eeb: PUSH2 0x0ef6 00000eee: JUMPI 00000eef: RETURNDATASIZE 00000ef0: PUSH0 00000ef1: DUP1 00000ef2: RETURNDATACOPY 00000ef3: RETURNDATASIZE 00000ef4: PUSH0 00000ef5: REVERT 00000ef6: JUMPDEST 00000ef7: POP 00000ef8: POP 00000ef9: POP 00000efa: POP 00000efb: PUSH1 0x40 00000efd: MLOAD 00000efe: RETURNDATASIZE 00000eff: PUSH1 0x1f 00000f01: NOT 00000f02: PUSH1 0x1f 00000f04: DUP3 00000f05: ADD 00000f06: AND 00000f07: DUP3 00000f08: ADD 00000f09: DUP1 00000f0a: PUSH1 0x40 00000f0c: MSTORE 00000f0d: POP 00000f0e: DUP2 00000f0f: ADD 00000f10: SWAP1 00000f11: PUSH2 0x0f1a 00000f14: SWAP2 00000f15: SWAP1 00000f16: PUSH2 0x1c08 00000f19: JUMP 00000f1a: JUMPDEST 00000f1b: DUP1 00000f1c: PUSH2 0x0f32 00000f1f: JUMPI 00000f20: POP 00000f21: PUSH1 0x06 00000f23: SLOAD 00000f24: PUSH1 0x01 00000f26: PUSH1 0x01 00000f28: PUSH1 0xa0 00000f2a: SHL 00000f2b: SUB 00000f2c: DUP6 00000f2d: DUP2 00000f2e: AND 00000f2f: SWAP2 00000f30: AND 00000f31: EQ 00000f32: JUMPDEST 00000f33: SWAP5 00000f34: SWAP4 00000f35: POP 00000f36: POP 00000f37: POP 00000f38: POP 00000f39: JUMP 00000f3a: JUMPDEST 00000f3b: PUSH1 0x01 00000f3d: PUSH1 0x01 00000f3f: PUSH1 0xa0 00000f41: SHL 00000f42: SUB 00000f43: DUP3 00000f44: AND 00000f45: PUSH0 00000f46: SWAP1 00000f47: DUP2 00000f48: MSTORE 00000f49: PUSH1 0x03 00000f4b: PUSH1 0x20 00000f4d: MSTORE 00000f4e: PUSH1 0x40 00000f50: DUP2 00000f51: KECCAK256 00000f52: DUP1 00000f53: SLOAD 00000f54: DUP4 00000f55: SWAP3 00000f56: SWAP1 00000f57: PUSH2 0x0f61 00000f5a: SWAP1 00000f5b: DUP5 00000f5c: SWAP1 00000f5d: PUSH2 0x1c27 00000f60: JUMP 00000f61: JUMPDEST 00000f62: SWAP1 00000f63: SWAP2 00000f64: SSTORE 00000f65: POP 00000f66: POP 00000f67: PUSH1 0x02 00000f69: DUP1 00000f6a: SLOAD 00000f6b: DUP3 00000f6c: SWAP1 00000f6d: SUB 00000f6e: SWAP1 00000f6f: SSTORE 00000f70: PUSH1 0x40 00000f72: MLOAD 00000f73: DUP2 00000f74: DUP2 00000f75: MSTORE 00000f76: PUSH0 00000f77: SWAP1 00000f78: PUSH1 0x01 00000f7a: PUSH1 0x01 00000f7c: PUSH1 0xa0 00000f7e: SHL 00000f7f: SUB 00000f80: DUP5 00000f81: AND 00000f82: SWAP1 00000f83: PUSH0 00000f84: DUP1 00000f85: MLOAD 00000f86: PUSH1 0x20 00000f88: PUSH2 0x1d05 00000f8b: DUP4 00000f8c: CODECOPY 00000f8d: DUP2 00000f8e: MLOAD 00000f8f: SWAP2 00000f90: MSTORE 00000f91: SWAP1 00000f92: PUSH1 0x20 00000f94: ADD 00000f95: JUMPDEST 00000f96: PUSH1 0x40 00000f98: MLOAD 00000f99: DUP1 00000f9a: SWAP2 00000f9b: SUB 00000f9c: SWAP1 00000f9d: LOG3 00000f9e: POP 00000f9f: POP 00000fa0: JUMP 00000fa1: JUMPDEST 00000fa2: PUSH0 00000fa3: PUSH1 0x40 00000fa5: MLOAD 00000fa6: PUSH4 0xa9059cbb 00000fab: PUSH1 0xe0 00000fad: SHL 00000fae: DUP2 00000faf: MSTORE 00000fb0: PUSH1 0x01 00000fb2: PUSH1 0x01 00000fb4: PUSH1 0xa0 00000fb6: SHL 00000fb7: SUB 00000fb8: DUP5 00000fb9: AND 00000fba: PUSH1 0x04 00000fbc: DUP3 00000fbd: ADD 00000fbe: MSTORE 00000fbf: DUP3 00000fc0: PUSH1 0x24 00000fc2: DUP3 00000fc3: ADD 00000fc4: MSTORE 00000fc5: PUSH1 0x20 00000fc7: PUSH0 00000fc8: PUSH1 0x44 00000fca: DUP4 00000fcb: PUSH0 00000fcc: DUP10 00000fcd: GAS 00000fce: CALL 00000fcf: RETURNDATASIZE 00000fd0: ISZERO 00000fd1: PUSH1 0x1f 00000fd3: RETURNDATASIZE 00000fd4: GT 00000fd5: PUSH1 0x01 00000fd7: PUSH0 00000fd8: MLOAD 00000fd9: EQ 00000fda: AND 00000fdb: OR 00000fdc: AND 00000fdd: SWAP2 00000fde: POP 00000fdf: POP 00000fe0: DUP1 00000fe1: PUSH2 0x101e 00000fe4: JUMPI 00000fe5: PUSH1 0x40 00000fe7: MLOAD 00000fe8: PUSH3 0x461bcd 00000fec: PUSH1 0xe5 00000fee: SHL 00000fef: DUP2 00000ff0: MSTORE 00000ff1: PUSH1 0x20 00000ff3: PUSH1 0x04 00000ff5: DUP3 00000ff6: ADD 00000ff7: MSTORE 00000ff8: PUSH1 0x0f 00000ffa: PUSH1 0x24 00000ffc: DUP3 00000ffd: ADD 00000ffe: MSTORE 00000fff: PUSH15 0x1514905394d1915497d19052531151 0000100f: PUSH1 0x8a 00001011: SHL 00001012: PUSH1 0x44 00001014: DUP3 00001015: ADD 00001016: MSTORE 00001017: PUSH1 0x64 00001019: ADD 0000101a: PUSH2 0x06c9 0000101d: JUMP 0000101e: JUMPDEST 0000101f: POP 00001020: POP 00001021: POP 00001022: POP 00001023: JUMP 00001024: JUMPDEST 00001025: PUSH1 0x60 00001027: DUP2 00001028: SELFBALANCE 00001029: LT 0000102a: ISZERO 0000102b: PUSH2 0x1049 0000102e: JUMPI 0000102f: PUSH1 0x40 00001031: MLOAD 00001032: PUSH4 0xcd786059 00001037: PUSH1 0xe0 00001039: SHL 0000103a: DUP2 0000103b: MSTORE 0000103c: ADDRESS 0000103d: PUSH1 0x04 0000103f: DUP3 00001040: ADD 00001041: MSTORE 00001042: PUSH1 0x24 00001044: ADD 00001045: PUSH2 0x06c9 00001048: JUMP 00001049: JUMPDEST 0000104a: PUSH0 0000104b: DUP1 0000104c: DUP6 0000104d: PUSH1 0x01 0000104f: PUSH1 0x01 00001051: PUSH1 0xa0 00001053: SHL 00001054: SUB 00001055: AND 00001056: DUP5 00001057: DUP7 00001058: PUSH1 0x40 0000105a: MLOAD 0000105b: PUSH2 0x1064 0000105e: SWAP2 0000105f: SWAP1 00001060: PUSH2 0x1c3a 00001063: JUMP 00001064: JUMPDEST 00001065: PUSH0 00001066: PUSH1 0x40 00001068: MLOAD 00001069: DUP1 0000106a: DUP4 0000106b: SUB 0000106c: DUP2 0000106d: DUP6 0000106e: DUP8 0000106f: GAS 00001070: CALL 00001071: SWAP3 00001072: POP 00001073: POP 00001074: POP 00001075: RETURNDATASIZE 00001076: DUP1 00001077: PUSH0 00001078: DUP2 00001079: EQ 0000107a: PUSH2 0x109e 0000107d: JUMPI 0000107e: PUSH1 0x40 00001080: MLOAD 00001081: SWAP2 00001082: POP 00001083: PUSH1 0x1f 00001085: NOT 00001086: PUSH1 0x3f 00001088: RETURNDATASIZE 00001089: ADD 0000108a: AND 0000108b: DUP3 0000108c: ADD 0000108d: PUSH1 0x40 0000108f: MSTORE 00001090: RETURNDATASIZE 00001091: DUP3 00001092: MSTORE 00001093: RETURNDATASIZE 00001094: PUSH0 00001095: PUSH1 0x20 00001097: DUP5 00001098: ADD 00001099: RETURNDATACOPY 0000109a: PUSH2 0x10a3 0000109d: JUMP 0000109e: JUMPDEST 0000109f: PUSH1 0x60 000010a1: SWAP2 000010a2: POP 000010a3: JUMPDEST 000010a4: POP 000010a5: SWAP2 000010a6: POP 000010a7: SWAP2 000010a8: POP 000010a9: PUSH2 0x10b3 000010ac: DUP7 000010ad: DUP4 000010ae: DUP4 000010af: PUSH2 0x13f6 000010b2: JUMP 000010b3: JUMPDEST 000010b4: SWAP7 000010b5: SWAP6 000010b6: POP 000010b7: POP 000010b8: POP 000010b9: POP 000010ba: POP 000010bb: POP 000010bc: JUMP 000010bd: JUMPDEST 000010be: PUSH1 0x08 000010c0: SLOAD 000010c1: PUSH1 0x01 000010c3: PUSH1 0x01 000010c5: PUSH1 0xa0 000010c7: SHL 000010c8: SUB 000010c9: AND 000010ca: ISZERO 000010cb: PUSH2 0x1136 000010ce: JUMPI 000010cf: PUSH1 0x08 000010d1: SLOAD 000010d2: PUSH1 0x40 000010d4: MLOAD 000010d5: PUSH4 0x0abd626b 000010da: PUSH1 0xe4 000010dc: SHL 000010dd: DUP2 000010de: MSTORE 000010df: PUSH1 0x01 000010e1: PUSH1 0x01 000010e3: PUSH1 0xa0 000010e5: SHL 000010e6: SUB 000010e7: DUP5 000010e8: DUP2 000010e9: AND 000010ea: PUSH1 0x04 000010ec: DUP4 000010ed: ADD 000010ee: MSTORE 000010ef: DUP4 000010f0: DUP2 000010f1: AND 000010f2: PUSH1 0x24 000010f4: DUP4 000010f5: ADD 000010f6: MSTORE 000010f7: CALLER 000010f8: PUSH1 0x44 000010fa: DUP4 000010fb: ADD 000010fc: MSTORE 000010fd: SWAP1 000010fe: SWAP2 000010ff: AND 00001100: SWAP1 00001101: PUSH4 0xabd626b0 00001106: SWAP1 00001107: PUSH1 0x64 00001109: ADD 0000110a: PUSH0 0000110b: PUSH1 0x40 0000110d: MLOAD 0000110e: DUP1 0000110f: DUP4 00001110: SUB 00001111: DUP2 00001112: DUP7 00001113: DUP1 00001114: EXTCODESIZE 00001115: ISZERO 00001116: DUP1 00001117: ISZERO 00001118: PUSH2 0x111f 0000111b: JUMPI 0000111c: PUSH0 0000111d: DUP1 0000111e: REVERT 0000111f: JUMPDEST 00001120: POP 00001121: GAS 00001122: STATICCALL 00001123: ISZERO 00001124: DUP1 00001125: ISZERO 00001126: PUSH2 0x1131 00001129: JUMPI 0000112a: RETURNDATASIZE 0000112b: PUSH0 0000112c: DUP1 0000112d: RETURNDATACOPY 0000112e: RETURNDATASIZE 0000112f: PUSH0 00001130: REVERT 00001131: JUMPDEST 00001132: POP 00001133: POP 00001134: POP 00001135: POP 00001136: JUMPDEST 00001137: POP 00001138: POP 00001139: JUMP 0000113a: JUMPDEST 0000113b: PUSH1 0x01 0000113d: PUSH1 0x01 0000113f: PUSH1 0xa0 00001141: SHL 00001142: SUB 00001143: DUP4 00001144: AND 00001145: PUSH0 00001146: SWAP1 00001147: DUP2 00001148: MSTORE 00001149: PUSH1 0x04 0000114b: PUSH1 0x20 0000114d: SWAP1 0000114e: DUP2 0000114f: MSTORE 00001150: PUSH1 0x40 00001152: DUP1 00001153: DUP4 00001154: KECCAK256 00001155: CALLER 00001156: DUP5 00001157: MSTORE 00001158: SWAP1 00001159: SWAP2 0000115a: MSTORE 0000115b: DUP2 0000115c: KECCAK256 0000115d: SLOAD 0000115e: PUSH0 0000115f: NOT 00001160: DUP2 00001161: EQ 00001162: PUSH2 0x1193 00001165: JUMPI 00001166: PUSH2 0x116f 00001169: DUP4 0000116a: DUP3 0000116b: PUSH2 0x1c27 0000116e: JUMP 0000116f: JUMPDEST 00001170: PUSH1 0x01 00001172: PUSH1 0x01 00001174: PUSH1 0xa0 00001176: SHL 00001177: SUB 00001178: DUP7 00001179: AND 0000117a: PUSH0 0000117b: SWAP1 0000117c: DUP2 0000117d: MSTORE 0000117e: PUSH1 0x04 00001180: PUSH1 0x20 00001182: SWAP1 00001183: DUP2 00001184: MSTORE 00001185: PUSH1 0x40 00001187: DUP1 00001188: DUP4 00001189: KECCAK256 0000118a: CALLER 0000118b: DUP5 0000118c: MSTORE 0000118d: SWAP1 0000118e: SWAP2 0000118f: MSTORE 00001190: SWAP1 00001191: KECCAK256 00001192: SSTORE 00001193: JUMPDEST 00001194: PUSH1 0x01 00001196: PUSH1 0x01 00001198: PUSH1 0xa0 0000119a: SHL 0000119b: SUB 0000119c: DUP6 0000119d: AND 0000119e: PUSH0 0000119f: SWAP1 000011a0: DUP2 000011a1: MSTORE 000011a2: PUSH1 0x03 000011a4: PUSH1 0x20 000011a6: MSTORE 000011a7: PUSH1 0x40 000011a9: DUP2 000011aa: KECCAK256 000011ab: DUP1 000011ac: SLOAD 000011ad: DUP6 000011ae: SWAP3 000011af: SWAP1 000011b0: PUSH2 0x11ba 000011b3: SWAP1 000011b4: DUP5 000011b5: SWAP1 000011b6: PUSH2 0x1c27 000011b9: JUMP 000011ba: JUMPDEST 000011bb: SWAP1 000011bc: SWAP2 000011bd: SSTORE 000011be: POP 000011bf: POP 000011c0: PUSH1 0x01 000011c2: PUSH1 0x01 000011c4: PUSH1 0xa0 000011c6: SHL 000011c7: SUB 000011c8: DUP1 000011c9: DUP6 000011ca: AND 000011cb: PUSH0 000011cc: DUP2 000011cd: DUP2 000011ce: MSTORE 000011cf: PUSH1 0x03 000011d1: PUSH1 0x20 000011d3: MSTORE 000011d4: PUSH1 0x40 000011d6: SWAP1 000011d7: DUP2 000011d8: SWAP1 000011d9: KECCAK256 000011da: DUP1 000011db: SLOAD 000011dc: DUP8 000011dd: ADD 000011de: SWAP1 000011df: SSTORE 000011e0: MLOAD 000011e1: SWAP1 000011e2: SWAP2 000011e3: DUP8 000011e4: AND 000011e5: SWAP1 000011e6: PUSH0 000011e7: DUP1 000011e8: MLOAD 000011e9: PUSH1 0x20 000011eb: PUSH2 0x1d05 000011ee: DUP4 000011ef: CODECOPY 000011f0: DUP2 000011f1: MLOAD 000011f2: SWAP2 000011f3: MSTORE 000011f4: SWAP1 000011f5: PUSH2 0x1201 000011f8: SWAP1 000011f9: DUP8 000011fa: DUP2 000011fb: MSTORE 000011fc: PUSH1 0x20 000011fe: ADD 000011ff: SWAP1 00001200: JUMP 00001201: JUMPDEST 00001202: PUSH1 0x40 00001204: MLOAD 00001205: DUP1 00001206: SWAP2 00001207: SUB 00001208: SWAP1 00001209: LOG3 0000120a: POP 0000120b: PUSH1 0x01 0000120d: SWAP5 0000120e: SWAP4 0000120f: POP 00001210: POP 00001211: POP 00001212: POP 00001213: JUMP 00001214: JUMPDEST 00001215: PUSH0 00001216: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 00001237: PUSH0 00001238: PUSH1 0x40 0000123a: MLOAD 0000123b: PUSH2 0x1244 0000123e: SWAP2 0000123f: SWAP1 00001240: PUSH2 0x1c55 00001243: JUMP 00001244: JUMPDEST 00001245: PUSH1 0x40 00001247: DUP1 00001248: MLOAD 00001249: SWAP2 0000124a: DUP3 0000124b: SWAP1 0000124c: SUB 0000124d: DUP3 0000124e: KECCAK256 0000124f: PUSH1 0x20 00001251: DUP4 00001252: ADD 00001253: SWAP4 00001254: SWAP1 00001255: SWAP4 00001256: MSTORE 00001257: DUP2 00001258: ADD 00001259: SWAP2 0000125a: SWAP1 0000125b: SWAP2 0000125c: MSTORE 0000125d: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 0000127e: PUSH1 0x60 00001280: DUP3 00001281: ADD 00001282: MSTORE 00001283: CHAINID 00001284: PUSH1 0x80 00001286: DUP3 00001287: ADD 00001288: MSTORE 00001289: ADDRESS 0000128a: PUSH1 0xa0 0000128c: DUP3 0000128d: ADD 0000128e: MSTORE 0000128f: PUSH1 0xc0 00001291: ADD 00001292: PUSH1 0x40 00001294: MLOAD 00001295: PUSH1 0x20 00001297: DUP2 00001298: DUP4 00001299: SUB 0000129a: SUB 0000129b: DUP2 0000129c: MSTORE 0000129d: SWAP1 0000129e: PUSH1 0x40 000012a0: MSTORE 000012a1: DUP1 000012a2: MLOAD 000012a3: SWAP1 000012a4: PUSH1 0x20 000012a6: ADD 000012a7: KECCAK256 000012a8: SWAP1 000012a9: POP 000012aa: SWAP1 000012ab: JUMP 000012ac: JUMPDEST 000012ad: PUSH0 000012ae: PUSH1 0x40 000012b0: MLOAD 000012b1: PUSH4 0x23b872dd 000012b6: PUSH1 0xe0 000012b8: SHL 000012b9: DUP2 000012ba: MSTORE 000012bb: PUSH1 0x01 000012bd: PUSH1 0x01 000012bf: PUSH1 0xa0 000012c1: SHL 000012c2: SUB 000012c3: DUP6 000012c4: AND 000012c5: PUSH1 0x04 000012c7: DUP3 000012c8: ADD 000012c9: MSTORE 000012ca: PUSH1 0x01 000012cc: PUSH1 0x01 000012ce: PUSH1 0xa0 000012d0: SHL 000012d1: SUB 000012d2: DUP5 000012d3: AND 000012d4: PUSH1 0x24 000012d6: DUP3 000012d7: ADD 000012d8: MSTORE 000012d9: DUP3 000012da: PUSH1 0x44 000012dc: DUP3 000012dd: ADD 000012de: MSTORE 000012df: PUSH1 0x20 000012e1: PUSH0 000012e2: PUSH1 0x64 000012e4: DUP4 000012e5: PUSH0 000012e6: DUP11 000012e7: GAS 000012e8: CALL 000012e9: RETURNDATASIZE 000012ea: ISZERO 000012eb: PUSH1 0x1f 000012ed: RETURNDATASIZE 000012ee: GT 000012ef: PUSH1 0x01 000012f1: PUSH0 000012f2: MLOAD 000012f3: EQ 000012f4: AND 000012f5: OR 000012f6: AND 000012f7: SWAP2 000012f8: POP 000012f9: POP 000012fa: DUP1 000012fb: PUSH2 0x133d 000012fe: JUMPI 000012ff: PUSH1 0x40 00001301: MLOAD 00001302: PUSH3 0x461bcd 00001306: PUSH1 0xe5 00001308: SHL 00001309: DUP2 0000130a: MSTORE 0000130b: PUSH1 0x20 0000130d: PUSH1 0x04 0000130f: DUP3 00001310: ADD 00001311: MSTORE 00001312: PUSH1 0x14 00001314: PUSH1 0x24 00001316: DUP3 00001317: ADD 00001318: MSTORE 00001319: PUSH20 0x1514905394d1915497d19493d357d19052531151 0000132e: PUSH1 0x62 00001330: SHL 00001331: PUSH1 0x44 00001333: DUP3 00001334: ADD 00001335: MSTORE 00001336: PUSH1 0x64 00001338: ADD 00001339: PUSH2 0x06c9 0000133c: JUMP 0000133d: JUMPDEST 0000133e: POP 0000133f: POP 00001340: POP 00001341: POP 00001342: POP 00001343: JUMP 00001344: JUMPDEST 00001345: DUP1 00001346: PUSH1 0x02 00001348: PUSH0 00001349: DUP3 0000134a: DUP3 0000134b: SLOAD 0000134c: PUSH2 0x1355 0000134f: SWAP2 00001350: SWAP1 00001351: PUSH2 0x1cf1 00001354: JUMP 00001355: JUMPDEST 00001356: SWAP1 00001357: SWAP2 00001358: SSTORE 00001359: POP 0000135a: POP 0000135b: PUSH1 0x01 0000135d: PUSH1 0x01 0000135f: PUSH1 0xa0 00001361: SHL 00001362: SUB 00001363: DUP3 00001364: AND 00001365: PUSH0 00001366: DUP2 00001367: DUP2 00001368: MSTORE 00001369: PUSH1 0x03 0000136b: PUSH1 0x20 0000136d: SWAP1 0000136e: DUP2 0000136f: MSTORE 00001370: PUSH1 0x40 00001372: DUP1 00001373: DUP4 00001374: KECCAK256 00001375: DUP1 00001376: SLOAD 00001377: DUP7 00001378: ADD 00001379: SWAP1 0000137a: SSTORE 0000137b: MLOAD 0000137c: DUP5 0000137d: DUP2 0000137e: MSTORE 0000137f: PUSH0 00001380: DUP1 00001381: MLOAD 00001382: PUSH1 0x20 00001384: PUSH2 0x1d05 00001387: DUP4 00001388: CODECOPY 00001389: DUP2 0000138a: MLOAD 0000138b: SWAP2 0000138c: MSTORE 0000138d: SWAP2 0000138e: ADD 0000138f: PUSH2 0x0f95 00001392: JUMP 00001393: JUMPDEST 00001394: CALLER 00001395: PUSH0 00001396: SWAP1 00001397: DUP2 00001398: MSTORE 00001399: PUSH1 0x03 0000139b: PUSH1 0x20 0000139d: MSTORE 0000139e: PUSH1 0x40 000013a0: DUP2 000013a1: KECCAK256 000013a2: DUP1 000013a3: SLOAD 000013a4: DUP4 000013a5: SWAP2 000013a6: SWAP1 000013a7: DUP4 000013a8: SWAP1 000013a9: PUSH2 0x13b3 000013ac: SWAP1 000013ad: DUP5 000013ae: SWAP1 000013af: PUSH2 0x1c27 000013b2: JUMP 000013b3: JUMPDEST 000013b4: SWAP1 000013b5: SWAP2 000013b6: SSTORE 000013b7: POP 000013b8: POP 000013b9: PUSH1 0x01 000013bb: PUSH1 0x01 000013bd: PUSH1 0xa0 000013bf: SHL 000013c0: SUB 000013c1: DUP4 000013c2: AND 000013c3: PUSH0 000013c4: DUP2 000013c5: DUP2 000013c6: MSTORE 000013c7: PUSH1 0x03 000013c9: PUSH1 0x20 000013cb: MSTORE 000013cc: PUSH1 0x40 000013ce: SWAP1 000013cf: DUP2 000013d0: SWAP1 000013d1: KECCAK256 000013d2: DUP1 000013d3: SLOAD 000013d4: DUP6 000013d5: ADD 000013d6: SWAP1 000013d7: SSTORE 000013d8: MLOAD 000013d9: CALLER 000013da: SWAP1 000013db: PUSH0 000013dc: DUP1 000013dd: MLOAD 000013de: PUSH1 0x20 000013e0: PUSH2 0x1d05 000013e3: DUP4 000013e4: CODECOPY 000013e5: DUP2 000013e6: MLOAD 000013e7: SWAP2 000013e8: MSTORE 000013e9: SWAP1 000013ea: PUSH2 0x0687 000013ed: SWAP1 000013ee: DUP7 000013ef: DUP2 000013f0: MSTORE 000013f1: PUSH1 0x20 000013f3: ADD 000013f4: SWAP1 000013f5: JUMP 000013f6: JUMPDEST 000013f7: PUSH1 0x60 000013f9: DUP3 000013fa: PUSH2 0x140b 000013fd: JUMPI 000013fe: PUSH2 0x1406 00001401: DUP3 00001402: PUSH2 0x1452 00001405: JUMP 00001406: JUMPDEST 00001407: PUSH2 0x08ea 0000140a: JUMP 0000140b: JUMPDEST 0000140c: DUP2 0000140d: MLOAD 0000140e: ISZERO 0000140f: DUP1 00001410: ISZERO 00001411: PUSH2 0x1422 00001414: JUMPI 00001415: POP 00001416: PUSH1 0x01 00001418: PUSH1 0x01 0000141a: PUSH1 0xa0 0000141c: SHL 0000141d: SUB 0000141e: DUP5 0000141f: AND 00001420: EXTCODESIZE 00001421: ISZERO 00001422: JUMPDEST 00001423: ISZERO 00001424: PUSH2 0x144b 00001427: JUMPI 00001428: PUSH1 0x40 0000142a: MLOAD 0000142b: PUSH4 0x9996b315 00001430: PUSH1 0xe0 00001432: SHL 00001433: DUP2 00001434: MSTORE 00001435: PUSH1 0x01 00001437: PUSH1 0x01 00001439: PUSH1 0xa0 0000143b: SHL 0000143c: SUB 0000143d: DUP6 0000143e: AND 0000143f: PUSH1 0x04 00001441: DUP3 00001442: ADD 00001443: MSTORE 00001444: PUSH1 0x24 00001446: ADD 00001447: PUSH2 0x06c9 0000144a: JUMP 0000144b: JUMPDEST 0000144c: POP 0000144d: DUP1 0000144e: PUSH2 0x08ea 00001451: JUMP 00001452: JUMPDEST 00001453: DUP1 00001454: MLOAD 00001455: ISZERO 00001456: PUSH2 0x1462 00001459: JUMPI 0000145a: DUP1 0000145b: MLOAD 0000145c: DUP1 0000145d: DUP3 0000145e: PUSH1 0x20 00001460: ADD 00001461: REVERT 00001462: JUMPDEST 00001463: PUSH1 0x40 00001465: MLOAD 00001466: PUSH4 0x0a12f521 0000146b: PUSH1 0xe1 0000146d: SHL 0000146e: DUP2 0000146f: MSTORE 00001470: PUSH1 0x04 00001472: ADD 00001473: PUSH1 0x40 00001475: MLOAD 00001476: DUP1 00001477: SWAP2 00001478: SUB 00001479: SWAP1 0000147a: REVERT 0000147b: JUMPDEST 0000147c: POP 0000147d: JUMP 0000147e: JUMPDEST 0000147f: PUSH0 00001480: PUSH1 0x20 00001482: DUP3 00001483: DUP5 00001484: SUB 00001485: SLT 00001486: ISZERO 00001487: PUSH2 0x148e 0000148a: JUMPI 0000148b: PUSH0 0000148c: DUP1 0000148d: REVERT 0000148e: JUMPDEST 0000148f: DUP2 00001490: CALLDATALOAD 00001491: PUSH1 0x01 00001493: PUSH1 0x01 00001495: PUSH1 0xe0 00001497: SHL 00001498: SUB 00001499: NOT 0000149a: DUP2 0000149b: AND 0000149c: DUP2 0000149d: EQ 0000149e: PUSH2 0x08ea 000014a1: JUMPI 000014a2: PUSH0 000014a3: DUP1 000014a4: REVERT 000014a5: JUMPDEST 000014a6: PUSH0 000014a7: JUMPDEST 000014a8: DUP4 000014a9: DUP2 000014aa: LT 000014ab: ISZERO 000014ac: PUSH2 0x14bf 000014af: JUMPI 000014b0: DUP2 000014b1: DUP2 000014b2: ADD 000014b3: MLOAD 000014b4: DUP4 000014b5: DUP3 000014b6: ADD 000014b7: MSTORE 000014b8: PUSH1 0x20 000014ba: ADD 000014bb: PUSH2 0x14a7 000014be: JUMP 000014bf: JUMPDEST 000014c0: POP 000014c1: POP 000014c2: PUSH0 000014c3: SWAP2 000014c4: ADD 000014c5: MSTORE 000014c6: JUMP 000014c7: JUMPDEST 000014c8: PUSH0 000014c9: DUP2 000014ca: MLOAD 000014cb: DUP1 000014cc: DUP5 000014cd: MSTORE 000014ce: PUSH2 0x14de 000014d1: DUP2 000014d2: PUSH1 0x20 000014d4: DUP7 000014d5: ADD 000014d6: PUSH1 0x20 000014d8: DUP7 000014d9: ADD 000014da: PUSH2 0x14a5 000014dd: JUMP 000014de: JUMPDEST 000014df: PUSH1 0x1f 000014e1: ADD 000014e2: PUSH1 0x1f 000014e4: NOT 000014e5: AND 000014e6: SWAP3 000014e7: SWAP1 000014e8: SWAP3 000014e9: ADD 000014ea: PUSH1 0x20 000014ec: ADD 000014ed: SWAP3 000014ee: SWAP2 000014ef: POP 000014f0: POP 000014f1: JUMP 000014f2: JUMPDEST 000014f3: PUSH1 0x20 000014f5: DUP2 000014f6: MSTORE 000014f7: PUSH0 000014f8: PUSH2 0x08ea 000014fb: PUSH1 0x20 000014fd: DUP4 000014fe: ADD 000014ff: DUP5 00001500: PUSH2 0x14c7 00001503: JUMP 00001504: JUMPDEST 00001505: PUSH1 0x01 00001507: PUSH1 0x01 00001509: PUSH1 0xa0 0000150b: SHL 0000150c: SUB 0000150d: DUP2 0000150e: AND 0000150f: DUP2 00001510: EQ 00001511: PUSH2 0x147b 00001514: JUMPI 00001515: PUSH0 00001516: DUP1 00001517: REVERT 00001518: JUMPDEST 00001519: PUSH0 0000151a: DUP1 0000151b: PUSH1 0x40 0000151d: DUP4 0000151e: DUP6 0000151f: SUB 00001520: SLT 00001521: ISZERO 00001522: PUSH2 0x1529 00001525: JUMPI 00001526: PUSH0 00001527: DUP1 00001528: REVERT 00001529: JUMPDEST 0000152a: DUP3 0000152b: CALLDATALOAD 0000152c: PUSH2 0x1534 0000152f: DUP2 00001530: PUSH2 0x1504 00001533: JUMP 00001534: JUMPDEST 00001535: SWAP5 00001536: PUSH1 0x20 00001538: SWAP4 00001539: SWAP1 0000153a: SWAP4 0000153b: ADD 0000153c: CALLDATALOAD 0000153d: SWAP4 0000153e: POP 0000153f: POP 00001540: POP 00001541: JUMP 00001542: JUMPDEST 00001543: PUSH4 0x4e487b71 00001548: PUSH1 0xe0 0000154a: SHL 0000154b: PUSH0 0000154c: MSTORE 0000154d: PUSH1 0x41 0000154f: PUSH1 0x04 00001551: MSTORE 00001552: PUSH1 0x24 00001554: PUSH0 00001555: REVERT 00001556: JUMPDEST 00001557: PUSH1 0x40 00001559: MLOAD 0000155a: PUSH1 0x1f 0000155c: DUP3 0000155d: ADD 0000155e: PUSH1 0x1f 00001560: NOT 00001561: AND 00001562: DUP2 00001563: ADD 00001564: PUSH8 0xffffffffffffffff 0000156d: DUP2 0000156e: GT 0000156f: DUP3 00001570: DUP3 00001571: LT 00001572: OR 00001573: ISZERO 00001574: PUSH2 0x157f 00001577: JUMPI 00001578: PUSH2 0x157f 0000157b: PUSH2 0x1542 0000157e: JUMP 0000157f: JUMPDEST 00001580: PUSH1 0x40 00001582: MSTORE 00001583: SWAP2 00001584: SWAP1 00001585: POP 00001586: JUMP 00001587: JUMPDEST 00001588: PUSH0 00001589: DUP3 0000158a: PUSH1 0x1f 0000158c: DUP4 0000158d: ADD 0000158e: SLT 0000158f: PUSH2 0x1596 00001592: JUMPI 00001593: PUSH0 00001594: DUP1 00001595: REVERT 00001596: JUMPDEST 00001597: DUP2 00001598: CALLDATALOAD 00001599: PUSH8 0xffffffffffffffff 000015a2: DUP2 000015a3: GT 000015a4: ISZERO 000015a5: PUSH2 0x15b0 000015a8: JUMPI 000015a9: PUSH2 0x15b0 000015ac: PUSH2 0x1542 000015af: JUMP 000015b0: JUMPDEST 000015b1: PUSH2 0x15c3 000015b4: PUSH1 0x1f 000015b6: DUP3 000015b7: ADD 000015b8: PUSH1 0x1f 000015ba: NOT 000015bb: AND 000015bc: PUSH1 0x20 000015be: ADD 000015bf: PUSH2 0x1556 000015c2: JUMP 000015c3: JUMPDEST 000015c4: DUP2 000015c5: DUP2 000015c6: MSTORE 000015c7: DUP5 000015c8: PUSH1 0x20 000015ca: DUP4 000015cb: DUP7 000015cc: ADD 000015cd: ADD 000015ce: GT 000015cf: ISZERO 000015d0: PUSH2 0x15d7 000015d3: JUMPI 000015d4: PUSH0 000015d5: DUP1 000015d6: REVERT 000015d7: JUMPDEST 000015d8: DUP2 000015d9: PUSH1 0x20 000015db: DUP6 000015dc: ADD 000015dd: PUSH1 0x20 000015df: DUP4 000015e0: ADD 000015e1: CALLDATACOPY 000015e2: PUSH0 000015e3: SWAP2 000015e4: DUP2 000015e5: ADD 000015e6: PUSH1 0x20 000015e8: ADD 000015e9: SWAP2 000015ea: SWAP1 000015eb: SWAP2 000015ec: MSTORE 000015ed: SWAP4 000015ee: SWAP3 000015ef: POP 000015f0: POP 000015f1: POP 000015f2: JUMP 000015f3: JUMPDEST 000015f4: PUSH0 000015f5: DUP1 000015f6: PUSH0 000015f7: DUP1 000015f8: PUSH1 0x80 000015fa: DUP6 000015fb: DUP8 000015fc: SUB 000015fd: SLT 000015fe: ISZERO 000015ff: PUSH2 0x1606 00001602: JUMPI 00001603: PUSH0 00001604: DUP1 00001605: REVERT 00001606: JUMPDEST 00001607: DUP5 00001608: CALLDATALOAD 00001609: PUSH2 0x1611 0000160c: DUP2 0000160d: PUSH2 0x1504 00001610: JUMP 00001611: JUMPDEST 00001612: SWAP4 00001613: POP 00001614: PUSH1 0x20 00001616: DUP6 00001617: ADD 00001618: CALLDATALOAD 00001619: PUSH2 0x1621 0000161c: DUP2 0000161d: PUSH2 0x1504 00001620: JUMP 00001621: JUMPDEST 00001622: SWAP3 00001623: POP 00001624: PUSH1 0x40 00001626: DUP6 00001627: ADD 00001628: CALLDATALOAD 00001629: SWAP2 0000162a: POP 0000162b: PUSH1 0x60 0000162d: DUP6 0000162e: ADD 0000162f: CALLDATALOAD 00001630: PUSH8 0xffffffffffffffff 00001639: DUP2 0000163a: GT 0000163b: ISZERO 0000163c: PUSH2 0x1643 0000163f: JUMPI 00001640: PUSH0 00001641: DUP1 00001642: REVERT 00001643: JUMPDEST 00001644: PUSH2 0x164f 00001647: DUP8 00001648: DUP3 00001649: DUP9 0000164a: ADD 0000164b: PUSH2 0x1587 0000164e: JUMP 0000164f: JUMPDEST 00001650: SWAP2 00001651: POP 00001652: POP 00001653: SWAP3 00001654: SWAP6 00001655: SWAP2 00001656: SWAP5 00001657: POP 00001658: SWAP3 00001659: POP 0000165a: JUMP 0000165b: JUMPDEST 0000165c: PUSH0 0000165d: DUP1 0000165e: PUSH0 0000165f: DUP1 00001660: PUSH0 00001661: PUSH1 0xa0 00001663: DUP7 00001664: DUP9 00001665: SUB 00001666: SLT 00001667: ISZERO 00001668: PUSH2 0x166f 0000166b: JUMPI 0000166c: PUSH0 0000166d: DUP1 0000166e: REVERT 0000166f: JUMPDEST 00001670: DUP6 00001671: CALLDATALOAD 00001672: PUSH2 0x167a 00001675: DUP2 00001676: PUSH2 0x1504 00001679: JUMP 0000167a: JUMPDEST 0000167b: SWAP5 0000167c: POP 0000167d: PUSH1 0x20 0000167f: DUP7 00001680: ADD 00001681: CALLDATALOAD 00001682: PUSH2 0x168a 00001685: DUP2 00001686: PUSH2 0x1504 00001689: JUMP 0000168a: JUMPDEST 0000168b: SWAP4 0000168c: POP 0000168d: PUSH1 0x40 0000168f: DUP7 00001690: ADD 00001691: CALLDATALOAD 00001692: SWAP3 00001693: POP 00001694: PUSH1 0x60 00001696: DUP7 00001697: ADD 00001698: CALLDATALOAD 00001699: PUSH2 0x16a1 0000169c: DUP2 0000169d: PUSH2 0x1504 000016a0: JUMP 000016a1: JUMPDEST 000016a2: SWAP5 000016a3: SWAP8 000016a4: SWAP4 000016a5: SWAP7 000016a6: POP 000016a7: SWAP2 000016a8: SWAP5 000016a9: PUSH1 0x80 000016ab: ADD 000016ac: CALLDATALOAD 000016ad: SWAP3 000016ae: SWAP2 000016af: POP 000016b0: POP 000016b1: JUMP 000016b2: JUMPDEST 000016b3: PUSH0 000016b4: DUP1 000016b5: DUP4 000016b6: PUSH1 0x1f 000016b8: DUP5 000016b9: ADD 000016ba: SLT 000016bb: PUSH2 0x16c2 000016be: JUMPI 000016bf: PUSH0 000016c0: DUP1 000016c1: REVERT 000016c2: JUMPDEST 000016c3: POP 000016c4: DUP2 000016c5: CALLDATALOAD 000016c6: PUSH8 0xffffffffffffffff 000016cf: DUP2 000016d0: GT 000016d1: ISZERO 000016d2: PUSH2 0x16d9 000016d5: JUMPI 000016d6: PUSH0 000016d7: DUP1 000016d8: REVERT 000016d9: JUMPDEST 000016da: PUSH1 0x20 000016dc: DUP4 000016dd: ADD 000016de: SWAP2 000016df: POP 000016e0: DUP4 000016e1: PUSH1 0x20 000016e3: DUP3 000016e4: PUSH1 0x05 000016e6: SHL 000016e7: DUP6 000016e8: ADD 000016e9: ADD 000016ea: GT 000016eb: ISZERO 000016ec: PUSH2 0x16f3 000016ef: JUMPI 000016f0: PUSH0 000016f1: DUP1 000016f2: REVERT 000016f3: JUMPDEST 000016f4: SWAP3 000016f5: POP 000016f6: SWAP3 000016f7: SWAP1 000016f8: POP 000016f9: JUMP 000016fa: JUMPDEST 000016fb: PUSH0 000016fc: DUP1 000016fd: PUSH0 000016fe: DUP1 000016ff: PUSH0 00001700: DUP1 00001701: PUSH1 0x60 00001703: DUP8 00001704: DUP10 00001705: SUB 00001706: SLT 00001707: ISZERO 00001708: PUSH2 0x170f 0000170b: JUMPI 0000170c: PUSH0 0000170d: DUP1 0000170e: REVERT 0000170f: JUMPDEST 00001710: DUP7 00001711: CALLDATALOAD 00001712: PUSH8 0xffffffffffffffff 0000171b: DUP1 0000171c: DUP3 0000171d: GT 0000171e: ISZERO 0000171f: PUSH2 0x1726 00001722: JUMPI 00001723: PUSH0 00001724: DUP1 00001725: REVERT 00001726: JUMPDEST 00001727: PUSH2 0x1732 0000172a: DUP11 0000172b: DUP4 0000172c: DUP12 0000172d: ADD 0000172e: PUSH2 0x16b2 00001731: JUMP 00001732: JUMPDEST 00001733: SWAP1 00001734: SWAP9 00001735: POP 00001736: SWAP7 00001737: POP 00001738: PUSH1 0x20 0000173a: DUP10 0000173b: ADD 0000173c: CALLDATALOAD 0000173d: SWAP2 0000173e: POP 0000173f: DUP1 00001740: DUP3 00001741: GT 00001742: ISZERO 00001743: PUSH2 0x174a 00001746: JUMPI 00001747: PUSH0 00001748: DUP1 00001749: REVERT 0000174a: JUMPDEST 0000174b: PUSH2 0x1756 0000174e: DUP11 0000174f: DUP4 00001750: DUP12 00001751: ADD 00001752: PUSH2 0x16b2 00001755: JUMP 00001756: JUMPDEST 00001757: SWAP1 00001758: SWAP7 00001759: POP 0000175a: SWAP5 0000175b: POP 0000175c: PUSH1 0x40 0000175e: DUP10 0000175f: ADD 00001760: CALLDATALOAD 00001761: SWAP2 00001762: POP 00001763: DUP1 00001764: DUP3 00001765: GT 00001766: ISZERO 00001767: PUSH2 0x176e 0000176a: JUMPI 0000176b: PUSH0 0000176c: DUP1 0000176d: REVERT 0000176e: JUMPDEST 0000176f: POP 00001770: PUSH2 0x177b 00001773: DUP10 00001774: DUP3 00001775: DUP11 00001776: ADD 00001777: PUSH2 0x16b2 0000177a: JUMP 0000177b: JUMPDEST 0000177c: SWAP8 0000177d: SWAP11 0000177e: SWAP7 0000177f: SWAP10 00001780: POP 00001781: SWAP5 00001782: SWAP8 00001783: POP 00001784: SWAP3 00001785: SWAP6 00001786: SWAP4 00001787: SWAP5 00001788: SWAP3 00001789: POP 0000178a: POP 0000178b: POP 0000178c: JUMP 0000178d: JUMPDEST 0000178e: PUSH0 0000178f: PUSH1 0x20 00001791: DUP1 00001792: DUP4 00001793: ADD 00001794: DUP2 00001795: DUP5 00001796: MSTORE 00001797: DUP1 00001798: DUP6 00001799: MLOAD 0000179a: DUP1 0000179b: DUP4 0000179c: MSTORE 0000179d: PUSH1 0x40 0000179f: DUP7 000017a0: ADD 000017a1: SWAP2 000017a2: POP 000017a3: PUSH1 0x40 000017a5: DUP2 000017a6: PUSH1 0x05 000017a8: SHL 000017a9: DUP8 000017aa: ADD 000017ab: ADD 000017ac: SWAP3 000017ad: POP 000017ae: DUP4 000017af: DUP8 000017b0: ADD 000017b1: PUSH0 000017b2: JUMPDEST 000017b3: DUP3 000017b4: DUP2 000017b5: LT 000017b6: ISZERO 000017b7: PUSH2 0x17e0 000017ba: JUMPI 000017bb: PUSH1 0x3f 000017bd: NOT 000017be: DUP9 000017bf: DUP7 000017c0: SUB 000017c1: ADD 000017c2: DUP5 000017c3: MSTORE 000017c4: PUSH2 0x17ce 000017c7: DUP6 000017c8: DUP4 000017c9: MLOAD 000017ca: PUSH2 0x14c7 000017cd: JUMP 000017ce: JUMPDEST 000017cf: SWAP5 000017d0: POP 000017d1: SWAP3 000017d2: DUP6 000017d3: ADD 000017d4: SWAP3 000017d5: SWAP1 000017d6: DUP6 000017d7: ADD 000017d8: SWAP1 000017d9: PUSH1 0x01 000017db: ADD 000017dc: PUSH2 0x17b2 000017df: JUMP 000017e0: JUMPDEST 000017e1: POP 000017e2: SWAP3 000017e3: SWAP8 000017e4: SWAP7 000017e5: POP 000017e6: POP 000017e7: POP 000017e8: POP 000017e9: POP 000017ea: POP 000017eb: POP 000017ec: JUMP 000017ed: JUMPDEST 000017ee: PUSH0 000017ef: DUP1 000017f0: PUSH0 000017f1: PUSH1 0x60 000017f3: DUP5 000017f4: DUP7 000017f5: SUB 000017f6: SLT 000017f7: ISZERO 000017f8: PUSH2 0x17ff 000017fb: JUMPI 000017fc: PUSH0 000017fd: DUP1 000017fe: REVERT 000017ff: JUMPDEST 00001800: DUP4 00001801: CALLDATALOAD 00001802: PUSH2 0x180a 00001805: DUP2 00001806: PUSH2 0x1504 00001809: JUMP 0000180a: JUMPDEST 0000180b: SWAP3 0000180c: POP 0000180d: PUSH1 0x20 0000180f: DUP5 00001810: ADD 00001811: CALLDATALOAD 00001812: PUSH2 0x181a 00001815: DUP2 00001816: PUSH2 0x1504 00001819: JUMP 0000181a: JUMPDEST 0000181b: SWAP3 0000181c: SWAP6 0000181d: SWAP3 0000181e: SWAP5 0000181f: POP 00001820: POP 00001821: POP 00001822: PUSH1 0x40 00001824: SWAP2 00001825: SWAP1 00001826: SWAP2 00001827: ADD 00001828: CALLDATALOAD 00001829: SWAP1 0000182a: JUMP 0000182b: JUMPDEST 0000182c: PUSH0 0000182d: PUSH1 0x20 0000182f: DUP3 00001830: DUP5 00001831: SUB 00001832: SLT 00001833: ISZERO 00001834: PUSH2 0x183b 00001837: JUMPI 00001838: PUSH0 00001839: DUP1 0000183a: REVERT 0000183b: JUMPDEST 0000183c: DUP2 0000183d: CALLDATALOAD 0000183e: PUSH2 0x08ea 00001841: DUP2 00001842: PUSH2 0x1504 00001845: JUMP 00001846: JUMPDEST 00001847: PUSH0 00001848: DUP3 00001849: PUSH1 0x1f 0000184b: DUP4 0000184c: ADD 0000184d: SLT 0000184e: PUSH2 0x1855 00001851: JUMPI 00001852: PUSH0 00001853: DUP1 00001854: REVERT 00001855: JUMPDEST 00001856: DUP2 00001857: CALLDATALOAD 00001858: PUSH1 0x20 0000185a: PUSH8 0xffffffffffffffff 00001863: DUP3 00001864: GT 00001865: ISZERO 00001866: PUSH2 0x1871 00001869: JUMPI 0000186a: PUSH2 0x1871 0000186d: PUSH2 0x1542 00001870: JUMP 00001871: JUMPDEST 00001872: DUP2 00001873: PUSH1 0x05 00001875: SHL 00001876: PUSH2 0x1880 00001879: DUP3 0000187a: DUP3 0000187b: ADD 0000187c: PUSH2 0x1556 0000187f: JUMP 00001880: JUMPDEST 00001881: SWAP3 00001882: DUP4 00001883: MSTORE 00001884: DUP5 00001885: DUP2 00001886: ADD 00001887: DUP3 00001888: ADD 00001889: SWAP3 0000188a: DUP3 0000188b: DUP2 0000188c: ADD 0000188d: SWAP1 0000188e: DUP8 0000188f: DUP6 00001890: GT 00001891: ISZERO 00001892: PUSH2 0x1899 00001895: JUMPI 00001896: PUSH0 00001897: DUP1 00001898: REVERT 00001899: JUMPDEST 0000189a: DUP4 0000189b: DUP8 0000189c: ADD 0000189d: SWAP3 0000189e: POP 0000189f: JUMPDEST 000018a0: DUP5 000018a1: DUP4 000018a2: LT 000018a3: ISZERO 000018a4: PUSH2 0x18b8 000018a7: JUMPI 000018a8: DUP3 000018a9: CALLDATALOAD 000018aa: DUP3 000018ab: MSTORE 000018ac: SWAP2 000018ad: DUP4 000018ae: ADD 000018af: SWAP2 000018b0: SWAP1 000018b1: DUP4 000018b2: ADD 000018b3: SWAP1 000018b4: PUSH2 0x189f 000018b7: JUMP 000018b8: JUMPDEST 000018b9: SWAP8 000018ba: SWAP7 000018bb: POP 000018bc: POP 000018bd: POP 000018be: POP 000018bf: POP 000018c0: POP 000018c1: POP 000018c2: JUMP 000018c3: JUMPDEST 000018c4: PUSH0 000018c5: DUP1 000018c6: PUSH0 000018c7: DUP1 000018c8: PUSH0 000018c9: PUSH1 0xa0 000018cb: DUP7 000018cc: DUP9 000018cd: SUB 000018ce: SLT 000018cf: ISZERO 000018d0: PUSH2 0x18d7 000018d3: JUMPI 000018d4: PUSH0 000018d5: DUP1 000018d6: REVERT 000018d7: JUMPDEST 000018d8: DUP6 000018d9: CALLDATALOAD 000018da: PUSH2 0x18e2 000018dd: DUP2 000018de: PUSH2 0x1504 000018e1: JUMP 000018e2: JUMPDEST 000018e3: SWAP5 000018e4: POP 000018e5: PUSH1 0x20 000018e7: DUP7 000018e8: ADD 000018e9: CALLDATALOAD 000018ea: PUSH2 0x18f2 000018ed: DUP2 000018ee: PUSH2 0x1504 000018f1: JUMP 000018f2: JUMPDEST 000018f3: SWAP4 000018f4: POP 000018f5: PUSH1 0x40 000018f7: DUP7 000018f8: ADD 000018f9: CALLDATALOAD 000018fa: PUSH8 0xffffffffffffffff 00001903: DUP1 00001904: DUP3 00001905: GT 00001906: ISZERO 00001907: PUSH2 0x190e 0000190a: JUMPI 0000190b: PUSH0 0000190c: DUP1 0000190d: REVERT 0000190e: JUMPDEST 0000190f: PUSH2 0x191a 00001912: DUP10 00001913: DUP4 00001914: DUP11 00001915: ADD 00001916: PUSH2 0x1846 00001919: JUMP 0000191a: JUMPDEST 0000191b: SWAP5 0000191c: POP 0000191d: PUSH1 0x60 0000191f: DUP9 00001920: ADD 00001921: CALLDATALOAD 00001922: SWAP2 00001923: POP 00001924: DUP1 00001925: DUP3 00001926: GT 00001927: ISZERO 00001928: PUSH2 0x192f 0000192b: JUMPI 0000192c: PUSH0 0000192d: DUP1 0000192e: REVERT 0000192f: JUMPDEST 00001930: PUSH2 0x193b 00001933: DUP10 00001934: DUP4 00001935: DUP11 00001936: ADD 00001937: PUSH2 0x1846 0000193a: JUMP 0000193b: JUMPDEST 0000193c: SWAP4 0000193d: POP 0000193e: PUSH1 0x80 00001940: DUP9 00001941: ADD 00001942: CALLDATALOAD 00001943: SWAP2 00001944: POP 00001945: DUP1 00001946: DUP3 00001947: GT 00001948: ISZERO 00001949: PUSH2 0x1950 0000194c: JUMPI 0000194d: PUSH0 0000194e: DUP1 0000194f: REVERT 00001950: JUMPDEST 00001951: POP 00001952: PUSH2 0x195d 00001955: DUP9 00001956: DUP3 00001957: DUP10 00001958: ADD 00001959: PUSH2 0x1587 0000195c: JUMP 0000195d: JUMPDEST 0000195e: SWAP2 0000195f: POP 00001960: POP 00001961: SWAP3 00001962: SWAP6 00001963: POP 00001964: SWAP3 00001965: SWAP6 00001966: SWAP1 00001967: SWAP4 00001968: POP 00001969: JUMP 0000196a: JUMPDEST 0000196b: PUSH0 0000196c: DUP1 0000196d: PUSH0 0000196e: DUP1 0000196f: PUSH0 00001970: DUP1 00001971: PUSH0 00001972: PUSH1 0xe0 00001974: DUP9 00001975: DUP11 00001976: SUB 00001977: SLT 00001978: ISZERO 00001979: PUSH2 0x1980 0000197c: JUMPI 0000197d: PUSH0 0000197e: DUP1 0000197f: REVERT 00001980: JUMPDEST 00001981: DUP8 00001982: CALLDATALOAD 00001983: PUSH2 0x198b 00001986: DUP2 00001987: PUSH2 0x1504 0000198a: JUMP 0000198b: JUMPDEST 0000198c: SWAP7 0000198d: POP 0000198e: PUSH1 0x20 00001990: DUP9 00001991: ADD 00001992: CALLDATALOAD 00001993: PUSH2 0x199b 00001996: DUP2 00001997: PUSH2 0x1504 0000199a: JUMP 0000199b: JUMPDEST 0000199c: SWAP6 0000199d: POP 0000199e: PUSH1 0x40 000019a0: DUP9 000019a1: ADD 000019a2: CALLDATALOAD 000019a3: SWAP5 000019a4: POP 000019a5: PUSH1 0x60 000019a7: DUP9 000019a8: ADD 000019a9: CALLDATALOAD 000019aa: SWAP4 000019ab: POP 000019ac: PUSH1 0x80 000019ae: DUP9 000019af: ADD 000019b0: CALLDATALOAD 000019b1: PUSH1 0xff 000019b3: DUP2 000019b4: AND 000019b5: DUP2 000019b6: EQ 000019b7: PUSH2 0x19be 000019ba: JUMPI 000019bb: PUSH0 000019bc: DUP1 000019bd: REVERT 000019be: JUMPDEST 000019bf: SWAP7 000019c0: SWAP10 000019c1: SWAP6 000019c2: SWAP9 000019c3: POP 000019c4: SWAP4 000019c5: SWAP7 000019c6: SWAP3 000019c7: SWAP6 000019c8: SWAP5 000019c9: PUSH1 0xa0 000019cb: DUP5 000019cc: ADD 000019cd: CALLDATALOAD 000019ce: SWAP5 000019cf: POP 000019d0: PUSH1 0xc0 000019d2: SWAP1 000019d3: SWAP4 000019d4: ADD 000019d5: CALLDATALOAD 000019d6: SWAP3 000019d7: SWAP2 000019d8: POP 000019d9: POP 000019da: JUMP 000019db: JUMPDEST 000019dc: PUSH0 000019dd: DUP1 000019de: PUSH1 0x40 000019e0: DUP4 000019e1: DUP6 000019e2: SUB 000019e3: SLT 000019e4: ISZERO 000019e5: PUSH2 0x19ec 000019e8: JUMPI 000019e9: PUSH0 000019ea: DUP1 000019eb: REVERT 000019ec: JUMPDEST 000019ed: DUP3 000019ee: CALLDATALOAD 000019ef: PUSH2 0x19f7 000019f2: DUP2 000019f3: PUSH2 0x1504 000019f6: JUMP 000019f7: JUMPDEST 000019f8: SWAP2 000019f9: POP 000019fa: PUSH1 0x20 000019fc: DUP4 000019fd: ADD 000019fe: CALLDATALOAD 000019ff: PUSH2 0x1a07 00001a02: DUP2 00001a03: PUSH2 0x1504 00001a06: JUMP 00001a07: JUMPDEST 00001a08: DUP1 00001a09: SWAP2 00001a0a: POP 00001a0b: POP 00001a0c: SWAP3 00001a0d: POP 00001a0e: SWAP3 00001a0f: SWAP1 00001a10: POP 00001a11: JUMP 00001a12: JUMPDEST 00001a13: PUSH0 00001a14: DUP1 00001a15: PUSH0 00001a16: DUP1 00001a17: PUSH0 00001a18: PUSH1 0xa0 00001a1a: DUP7 00001a1b: DUP9 00001a1c: SUB 00001a1d: SLT 00001a1e: ISZERO 00001a1f: PUSH2 0x1a26 00001a22: JUMPI 00001a23: PUSH0 00001a24: DUP1 00001a25: REVERT 00001a26: JUMPDEST 00001a27: DUP6 00001a28: CALLDATALOAD 00001a29: PUSH2 0x1a31 00001a2c: DUP2 00001a2d: PUSH2 0x1504 00001a30: JUMP 00001a31: JUMPDEST 00001a32: SWAP5 00001a33: POP 00001a34: PUSH1 0x20 00001a36: DUP7 00001a37: ADD 00001a38: CALLDATALOAD 00001a39: PUSH2 0x1a41 00001a3c: DUP2 00001a3d: PUSH2 0x1504 00001a40: JUMP 00001a41: JUMPDEST 00001a42: SWAP4 00001a43: POP 00001a44: PUSH1 0x40 00001a46: DUP7 00001a47: ADD 00001a48: CALLDATALOAD 00001a49: SWAP3 00001a4a: POP 00001a4b: PUSH1 0x60 00001a4d: DUP7 00001a4e: ADD 00001a4f: CALLDATALOAD 00001a50: SWAP2 00001a51: POP 00001a52: PUSH1 0x80 00001a54: DUP7 00001a55: ADD 00001a56: CALLDATALOAD 00001a57: PUSH8 0xffffffffffffffff 00001a60: DUP2 00001a61: GT 00001a62: ISZERO 00001a63: PUSH2 0x1a6a 00001a66: JUMPI 00001a67: PUSH0 00001a68: DUP1 00001a69: REVERT 00001a6a: JUMPDEST 00001a6b: PUSH2 0x195d 00001a6e: DUP9 00001a6f: DUP3 00001a70: DUP10 00001a71: ADD 00001a72: PUSH2 0x1587 00001a75: JUMP 00001a76: JUMPDEST 00001a77: PUSH0 00001a78: DUP1 00001a79: PUSH0 00001a7a: DUP1 00001a7b: PUSH1 0x60 00001a7d: DUP6 00001a7e: DUP8 00001a7f: SUB 00001a80: SLT 00001a81: ISZERO 00001a82: PUSH2 0x1a89 00001a85: JUMPI 00001a86: PUSH0 00001a87: DUP1 00001a88: REVERT 00001a89: JUMPDEST 00001a8a: DUP5 00001a8b: CALLDATALOAD 00001a8c: PUSH2 0x1a94 00001a8f: DUP2 00001a90: PUSH2 0x1504 00001a93: JUMP 00001a94: JUMPDEST 00001a95: SWAP4 00001a96: POP 00001a97: PUSH1 0x20 00001a99: DUP6 00001a9a: ADD 00001a9b: CALLDATALOAD 00001a9c: PUSH8 0xffffffffffffffff 00001aa5: DUP1 00001aa6: DUP3 00001aa7: GT 00001aa8: ISZERO 00001aa9: PUSH2 0x1ab0 00001aac: JUMPI 00001aad: PUSH0 00001aae: DUP1 00001aaf: REVERT 00001ab0: JUMPDEST 00001ab1: DUP2 00001ab2: DUP8 00001ab3: ADD 00001ab4: SWAP2 00001ab5: POP 00001ab6: DUP8 00001ab7: PUSH1 0x1f 00001ab9: DUP4 00001aba: ADD 00001abb: SLT 00001abc: PUSH2 0x1ac3 00001abf: JUMPI 00001ac0: PUSH0 00001ac1: DUP1 00001ac2: REVERT 00001ac3: JUMPDEST 00001ac4: DUP2 00001ac5: CALLDATALOAD 00001ac6: DUP2 00001ac7: DUP2 00001ac8: GT 00001ac9: ISZERO 00001aca: PUSH2 0x1ad1 00001acd: JUMPI 00001ace: PUSH0 00001acf: DUP1 00001ad0: REVERT 00001ad1: JUMPDEST 00001ad2: DUP9 00001ad3: PUSH1 0x20 00001ad5: DUP3 00001ad6: DUP6 00001ad7: ADD 00001ad8: ADD 00001ad9: GT 00001ada: ISZERO 00001adb: PUSH2 0x1ae2 00001ade: JUMPI 00001adf: PUSH0 00001ae0: DUP1 00001ae1: REVERT 00001ae2: JUMPDEST 00001ae3: SWAP6 00001ae4: SWAP9 00001ae5: PUSH1 0x20 00001ae7: SWAP3 00001ae8: SWAP1 00001ae9: SWAP3 00001aea: ADD 00001aeb: SWAP8 00001aec: POP 00001aed: SWAP5 00001aee: SWAP6 00001aef: PUSH1 0x40 00001af1: ADD 00001af2: CALLDATALOAD 00001af3: SWAP5 00001af4: POP 00001af5: SWAP3 00001af6: POP 00001af7: POP 00001af8: POP 00001af9: JUMP 00001afa: JUMPDEST 00001afb: PUSH1 0x01 00001afd: DUP2 00001afe: DUP2 00001aff: SHR 00001b00: SWAP1 00001b01: DUP3 00001b02: AND 00001b03: DUP1 00001b04: PUSH2 0x1b0e 00001b07: JUMPI 00001b08: PUSH1 0x7f 00001b0a: DUP3 00001b0b: AND 00001b0c: SWAP2 00001b0d: POP 00001b0e: JUMPDEST 00001b0f: PUSH1 0x20 00001b11: DUP3 00001b12: LT 00001b13: DUP2 00001b14: SUB 00001b15: PUSH2 0x1b2c 00001b18: JUMPI 00001b19: PUSH4 0x4e487b71 00001b1e: PUSH1 0xe0 00001b20: SHL 00001b21: PUSH0 00001b22: MSTORE 00001b23: PUSH1 0x22 00001b25: PUSH1 0x04 00001b27: MSTORE 00001b28: PUSH1 0x24 00001b2a: PUSH0 00001b2b: REVERT 00001b2c: JUMPDEST 00001b2d: POP 00001b2e: SWAP2 00001b2f: SWAP1 00001b30: POP 00001b31: JUMP 00001b32: JUMPDEST 00001b33: PUSH1 0x20 00001b35: DUP1 00001b36: DUP3 00001b37: MSTORE 00001b38: PUSH1 0x0c 00001b3a: SWAP1 00001b3b: DUP3 00001b3c: ADD 00001b3d: MSTORE 00001b3e: PUSH12 0x15539055551213d492569151 00001b4b: PUSH1 0xa2 00001b4d: SHL 00001b4e: PUSH1 0x40 00001b50: DUP3 00001b51: ADD 00001b52: MSTORE 00001b53: PUSH1 0x60 00001b55: ADD 00001b56: SWAP1 00001b57: JUMP 00001b58: JUMPDEST 00001b59: PUSH4 0x4e487b71 00001b5e: PUSH1 0xe0 00001b60: SHL 00001b61: PUSH0 00001b62: MSTORE 00001b63: PUSH1 0x32 00001b65: PUSH1 0x04 00001b67: MSTORE 00001b68: PUSH1 0x24 00001b6a: PUSH0 00001b6b: REVERT 00001b6c: JUMPDEST 00001b6d: PUSH0 00001b6e: DUP1 00001b6f: DUP4 00001b70: CALLDATALOAD 00001b71: PUSH1 0x1e 00001b73: NOT 00001b74: DUP5 00001b75: CALLDATASIZE 00001b76: SUB 00001b77: ADD 00001b78: DUP2 00001b79: SLT 00001b7a: PUSH2 0x1b81 00001b7d: JUMPI 00001b7e: PUSH0 00001b7f: DUP1 00001b80: REVERT 00001b81: JUMPDEST 00001b82: DUP4 00001b83: ADD 00001b84: DUP1 00001b85: CALLDATALOAD 00001b86: SWAP2 00001b87: POP 00001b88: PUSH8 0xffffffffffffffff 00001b91: DUP3 00001b92: GT 00001b93: ISZERO 00001b94: PUSH2 0x1b9b 00001b97: JUMPI 00001b98: PUSH0 00001b99: DUP1 00001b9a: REVERT 00001b9b: JUMPDEST 00001b9c: PUSH1 0x20 00001b9e: ADD 00001b9f: SWAP2 00001ba0: POP 00001ba1: CALLDATASIZE 00001ba2: DUP2 00001ba3: SWAP1 00001ba4: SUB 00001ba5: DUP3 00001ba6: SGT 00001ba7: ISZERO 00001ba8: PUSH2 0x16f3 00001bab: JUMPI 00001bac: PUSH0 00001bad: DUP1 00001bae: REVERT 00001baf: JUMPDEST 00001bb0: PUSH4 0x4e487b71 00001bb5: PUSH1 0xe0 00001bb7: SHL 00001bb8: PUSH0 00001bb9: MSTORE 00001bba: PUSH1 0x11 00001bbc: PUSH1 0x04 00001bbe: MSTORE 00001bbf: PUSH1 0x24 00001bc1: PUSH0 00001bc2: REVERT 00001bc3: JUMPDEST 00001bc4: PUSH0 00001bc5: PUSH1 0x01 00001bc7: DUP3 00001bc8: ADD 00001bc9: PUSH2 0x1bd4 00001bcc: JUMPI 00001bcd: PUSH2 0x1bd4 00001bd0: PUSH2 0x1baf 00001bd3: JUMP 00001bd4: JUMPDEST 00001bd5: POP 00001bd6: PUSH1 0x01 00001bd8: ADD 00001bd9: SWAP1 00001bda: JUMP 00001bdb: JUMPDEST 00001bdc: PUSH1 0x01 00001bde: PUSH1 0x01 00001be0: PUSH1 0xa0 00001be2: SHL 00001be3: SUB 00001be4: SWAP4 00001be5: DUP5 00001be6: AND 00001be7: DUP2 00001be8: MSTORE 00001be9: SWAP2 00001bea: SWAP1 00001beb: SWAP3 00001bec: AND 00001bed: PUSH1 0x20 00001bef: DUP3 00001bf0: ADD 00001bf1: MSTORE 00001bf2: PUSH1 0x01 00001bf4: PUSH1 0x01 00001bf6: PUSH1 0xe0 00001bf8: SHL 00001bf9: SUB 00001bfa: NOT 00001bfb: SWAP1 00001bfc: SWAP2 00001bfd: AND 00001bfe: PUSH1 0x40 00001c00: DUP3 00001c01: ADD 00001c02: MSTORE 00001c03: PUSH1 0x60 00001c05: ADD 00001c06: SWAP1 00001c07: JUMP 00001c08: JUMPDEST 00001c09: PUSH0 00001c0a: PUSH1 0x20 00001c0c: DUP3 00001c0d: DUP5 00001c0e: SUB 00001c0f: SLT 00001c10: ISZERO 00001c11: PUSH2 0x1c18 00001c14: JUMPI 00001c15: PUSH0 00001c16: DUP1 00001c17: REVERT 00001c18: JUMPDEST 00001c19: DUP2 00001c1a: MLOAD 00001c1b: DUP1 00001c1c: ISZERO 00001c1d: ISZERO 00001c1e: DUP2 00001c1f: EQ 00001c20: PUSH2 0x08ea 00001c23: JUMPI 00001c24: PUSH0 00001c25: DUP1 00001c26: REVERT 00001c27: JUMPDEST 00001c28: DUP2 00001c29: DUP2 00001c2a: SUB 00001c2b: DUP2 00001c2c: DUP2 00001c2d: GT 00001c2e: ISZERO 00001c2f: PUSH2 0x059c 00001c32: JUMPI 00001c33: PUSH2 0x059c 00001c36: PUSH2 0x1baf 00001c39: JUMP 00001c3a: JUMPDEST 00001c3b: PUSH0 00001c3c: DUP3 00001c3d: MLOAD 00001c3e: PUSH2 0x1c4b 00001c41: DUP2 00001c42: DUP5 00001c43: PUSH1 0x20 00001c45: DUP8 00001c46: ADD 00001c47: PUSH2 0x14a5 00001c4a: JUMP 00001c4b: JUMPDEST 00001c4c: SWAP2 00001c4d: SWAP1 00001c4e: SWAP2 00001c4f: ADD 00001c50: SWAP3 00001c51: SWAP2 00001c52: POP 00001c53: POP 00001c54: JUMP 00001c55: JUMPDEST 00001c56: PUSH0 00001c57: DUP1 00001c58: DUP4 00001c59: SLOAD 00001c5a: DUP2 00001c5b: PUSH1 0x01 00001c5d: DUP3 00001c5e: DUP2 00001c5f: SHR 00001c60: SWAP2 00001c61: POP 00001c62: DUP1 00001c63: DUP4 00001c64: AND 00001c65: DUP1 00001c66: PUSH2 0x1c70 00001c69: JUMPI 00001c6a: PUSH1 0x7f 00001c6c: DUP4 00001c6d: AND 00001c6e: SWAP3 00001c6f: POP 00001c70: JUMPDEST 00001c71: PUSH1 0x20 00001c73: DUP1 00001c74: DUP5 00001c75: LT 00001c76: DUP3 00001c77: SUB 00001c78: PUSH2 0x1c8f 00001c7b: JUMPI 00001c7c: PUSH4 0x4e487b71 00001c81: PUSH1 0xe0 00001c83: SHL 00001c84: DUP7 00001c85: MSTORE 00001c86: PUSH1 0x22 00001c88: PUSH1 0x04 00001c8a: MSTORE 00001c8b: PUSH1 0x24 00001c8d: DUP7 00001c8e: REVERT 00001c8f: JUMPDEST 00001c90: DUP2 00001c91: DUP1 00001c92: ISZERO 00001c93: PUSH2 0x1ca3 00001c96: JUMPI 00001c97: PUSH1 0x01 00001c99: DUP2 00001c9a: EQ 00001c9b: PUSH2 0x1cb8 00001c9e: JUMPI 00001c9f: PUSH2 0x1ce3 00001ca2: JUMP 00001ca3: JUMPDEST 00001ca4: PUSH1 0xff 00001ca6: NOT 00001ca7: DUP7 00001ca8: AND 00001ca9: DUP10 00001caa: MSTORE 00001cab: DUP5 00001cac: ISZERO 00001cad: ISZERO 00001cae: DUP6 00001caf: MUL 00001cb0: DUP10 00001cb1: ADD 00001cb2: SWAP7 00001cb3: POP 00001cb4: PUSH2 0x1ce3 00001cb7: JUMP 00001cb8: JUMPDEST 00001cb9: PUSH0 00001cba: DUP11 00001cbb: DUP2 00001cbc: MSTORE 00001cbd: PUSH1 0x20 00001cbf: SWAP1 00001cc0: KECCAK256 00001cc1: PUSH0 00001cc2: JUMPDEST 00001cc3: DUP7 00001cc4: DUP2 00001cc5: LT 00001cc6: ISZERO 00001cc7: PUSH2 0x1cdb 00001cca: JUMPI 00001ccb: DUP2 00001ccc: SLOAD 00001ccd: DUP12 00001cce: DUP3 00001ccf: ADD 00001cd0: MSTORE 00001cd1: SWAP1 00001cd2: DUP6 00001cd3: ADD 00001cd4: SWAP1 00001cd5: DUP4 00001cd6: ADD 00001cd7: PUSH2 0x1cc2 00001cda: JUMP 00001cdb: JUMPDEST 00001cdc: POP 00001cdd: POP 00001cde: DUP5 00001cdf: DUP10 00001ce0: ADD 00001ce1: SWAP7 00001ce2: POP 00001ce3: JUMPDEST 00001ce4: POP 00001ce5: SWAP5 00001ce6: SWAP9 00001ce7: SWAP8 00001ce8: POP 00001ce9: POP 00001cea: POP 00001ceb: POP 00001cec: POP 00001ced: POP 00001cee: POP 00001cef: POP 00001cf0: JUMP 00001cf1: JUMPDEST 00001cf2: DUP1 00001cf3: DUP3 00001cf4: ADD 00001cf5: DUP1 00001cf6: DUP3 00001cf7: GT 00001cf8: ISZERO 00001cf9: PUSH2 0x059c 00001cfc: JUMPI 00001cfd: PUSH2 0x059c 00001d00: PUSH2 0x1baf 00001d03: JUMP 00001d04: INVALID 00001d05: UNKNOWN(0xDD) 00001d06: CALLCODE 00001d07: MSTORE 00001d08: UNKNOWN(0xAD) 00001d09: SHL 00001d0a: UNKNOWN(0xE2) 00001d0b: UNKNOWN(0xC8) 00001d0c: SWAP12 00001d0d: PUSH10 0xc2b068fc378daa952ba7 00001d18: CALL 00001d19: PUSH4 0xc4a11628 00001d1e: CREATE2 00001d1f: GAS 00001d20: UNKNOWN(0x4D) 00001d21: CREATE2 00001d22: UNKNOWN(0x23) 00001d23: UNKNOWN(0xB3) 00001d24: UNKNOWN(0xEF) 00001d25: LOG2 00001d26: PUSH5 0x6970667358 00001d2c: UNKNOWN(0x22) 00001d2d: SLT 00001d2e: KECCAK256 00001d2f: ADD 00001d30: PUSH5 0xad0ede4373 00001d36: UNKNOWN(0xE4) 00001d37: EXTCODEHASH 00001d38: CALLDATASIZE 00001d39: ADDRESS 00001d3a: SWAP7 00001d3b: UNKNOWN(0xEE) 00001d3c: CALLDATACOPY 00001d3d: SWAP15 00001d3e: SWAP5 00001d3f: UNKNOWN(0xAD) 00001d40: SLOAD 00001d41: REVERT 00001d42: DUP9 00001d43: UNKNOWN(0xD4) 00001d44: EXTCODESIZE 00001d45: UNKNOWN(0xE2) 00001d46: UNKNOWN(0x2A) 00001d47: UNKNOWN(0xDF) 00001d48: UNKNOWN(0x4E) 00001d49: PUSH8 0x161eb777e964736f 00001d52: PUSH13
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x8243cfce8b7c14c31a27028931fbd6a7313a10b49fbc0d6ffe72c0c6605268cd
call_targets:
0x83599937c2c9bea0e0e8ac096c6f32e86486b410
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8243cfce8b7c14c31a27028931fbd6a7313a10b49fbc0d6ffe72c0c6605268cd",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x83599937c2c9bea0e0e8ac096c6f32e86486b410"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6e715d0",
"selector": "0xf6e715d0",
"calldata_variants": [
"0xf6e715d0",
"0xf6e715d00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc197c81",
"selector": "0xbc197c81",
"calldata_variants": [
"0xbc197c81",
"0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbf7e214f",
"selector": "0xbf7e214f",
"calldata_variants": [
"0xbf7e214f",
"0xbf7e214f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7ecebe00",
"selector": "0x7ecebe00",
"calldata_variants": [
"0x7ecebe00",
"0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4046,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4208,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4840,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 5,
"guards_detected": [],
"untrusted_call_count": 5
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x8243cfce8b7c14c31a27028931fbd6a7313a10b49fbc0d6ffe72c0c6605268cd
call_targets:
0x83599937c2c9bea0e0e8ac096c6f32e86486b410
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8243cfce8b7c14c31a27028931fbd6a7313a10b49fbc0d6ffe72c0c6605268cd",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x83599937c2c9bea0e0e8ac096c6f32e86486b410"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6e715d0",
"selector": "0xf6e715d0",
"calldata_variants": [
"0xf6e715d0",
"0xf6e715d00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc197c81",
"selector": "0xbc197c81",
"calldata_variants": [
"0xbc197c81",
"0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbf7e214f",
"selector": "0xbf7e214f",
"calldata_variants": [
"0xbf7e214f",
"0xbf7e214f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7ecebe00",
"selector": "0x7ecebe00",
"calldata_variants": [
"0x7ecebe00",
"0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4046,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4208,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4840,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 5,
"guards_detected": []
}
|
| high | other | slither | BoringVault.enter(address,ERC20,uint256,address,uint256) (src/base/BoringVault.sol#74-85) uses arbitrary from in transferFrom: asset.safeTransferFrom(from,address(this),assetAmo... | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "arbitrary-send-erc20",
"elements": [
{
"name": "enter",
"type": "function",
"source_mapping": {
"lines": [
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85
],
"start": 2871,
"length": 392,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/base/BoringVault.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
"filename_relative": "src/base/BoringVault.sol"
},
"type_specific_fields": {
"parent": {
"name": "BoringVault",
"type": "contract",
"source_mapping": {
"lines": [
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
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,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137
],
"start": 634,
"length": 4408,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/base/BoringVault.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
"filename_relative": "src/base/BoringVault.sol"
}
},
"signature": "enter(address,ERC20,uint256,address,uint256)"
}
},
{
"name": "asset.safeTransferFrom(from,address(this),assetAmount)",
"type": "node",
"source_mapping": {
"lines": [
79
],
"start": 3070,
"length": 56,
"ending_column": 86,
"is_dependency": false,
"filename_short": "src/base/BoringVault.sol",
"starting_column": 30,
"filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
"filename_relative": "src/base/BoringVault.sol"
},
"type_specific_fields": {
"parent": {
"name": "enter",
"type": "function",
"source_mapping": {
"lines": [
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85
],
"start": 2871,
"length": 392,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/base/BoringVault.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
"filename_relative": "src/base/BoringVault.sol"
},
"type_specific_fields": {
"parent": {
"name": "BoringVault",
"type": "contract",
"source_mapping": {
"lines": [
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
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,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137
],
"start": 634,
"length": 4408,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/base/BoringVault.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
"filename_relative": "src/base/BoringVault.sol"
}
},
"signature": "enter(address,ERC20,uint256,address,uint256)"
}
}
}
}
],
"locations": [
{
"file": "src/base/BoringVault.sol",
"name": "enter",
"type": "function",
"lines": [
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85
]
},
{
"file": "src/base/BoringVault.sol",
"name": "asset.safeTransferFrom(from,address(this),assetAmount)",
"type": "node",
"lines": [
79
]
}
],
"description": "BoringVault.enter(address,ERC20,uint256,address,uint256) (src/base/BoringVault.sol#74-85) uses arbitrary from in transferFrom: asset.safeTransferFrom(from,address(this),assetAmount) (src/base/BoringVault.sol#79)"
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x7fd522358ac898d81752e98836acc0b8c62cc6871f9594ce89cb2b566ebc4517
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x7fd522358ac898d81752e98836acc0b8c62cc6871f9594ce89cb2b566ebc4517",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6e715d0",
"selector": "0xf6e715d0",
"calldata_variants": [
"0xf6e715d0",
"0xf6e715d00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc197c81",
"selector": "0xbc197c81",
"calldata_variants": [
"0xbc197c81",
"0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbf7e214f",
"selector": "0xbf7e214f",
"calldata_variants": [
"0xbf7e214f",
"0xbf7e214f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7ecebe00",
"selector": "0x7ecebe00",
"calldata_variants": [
"0x7ecebe00",
"0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 2
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 2
}
|