TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

3b4bae17-4cc2-45cb-a041-6dc87f0fbe7a

complete
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 3:10 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30511 report.consolidate complete 1 / 1 3 months ago
103925 artifact.fetch complete 1 / 3 1 week ago
103926 tool.cast_disasm complete 1 / 3 1 week ago
103927 analysis.bundle complete 1 / 3 1 week ago
103928 capability.graph complete 1 / 3 1 week ago
103929 detector.run complete 1 / 3 1 week ago
103930 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Found 2 issues: deposit accounting can be inflated by fee-on-transfer tokens, and migration uses unchecked approve that can desync balances/allowances for non-standard tokens.
View stderr
[codex:1064208] OpenAI Codex v0.77.0 (research preview)
[codex:1064208] --------
[codex:1064208] workdir: /tmp/codex-multi-w9zp0ae9
[codex:1064208] model: gpt-5.2-codex
[codex:1064208] provider: openai
[codex:1064208] approval: never
[codex:1064208] sandbox: read-only
[codex:1064208] reasoning effort: xhigh
[codex:1064208] reasoning summaries: auto
[codex:1064208] session id: 019b6aa4-0d8a-7250-952a-bb984667201e
[codex:1064208] --------
[codex:1064208] user
[codex:1064208] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1064208] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1064208] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1064208] 
[codex:1064208] Scope rules:
[codex:1064208] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1064208] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1064208] 
[codex:1064208] Output MUST be valid JSON matching the provided schema.
[codex:1064208] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1064208] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1064208] 
[codex:1064208] Output constraints (IMPORTANT):
[codex:1064208] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1064208] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1064208] mcp startup: no servers
[codex:1064208] 
[codex:1064208] thinking
[codex:1064208] **Checking AUDIT_BUNDLE file**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-w9zp0ae9 succeeded in 5ms:
[codex:1064208] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1064208] 
[codex:1064208] ================================================================================
[codex:1064208] FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:1064208] ================================================================================
[codex:1064208] // SPDX-License-Identifier: MIT
[codex:1064208] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1064208] 
[codex:1064208] pragma solidity ^0.8.20;
[codex:1064208] 
[codex:1064208] import {Context} from "../utils/Context.sol";
[codex:1064208] 
[codex:1064208] /**
[codex:1064208]  * @dev Contract module which provides a basic access control mechanism, where
[codex:1064208]  * there is an account (an owner) that can be granted exclusive access to
[codex:1064208]  * specific functions.
[codex:1064208]  *
[codex:1064208]  * The initial owner is set to the address provided by the deployer. This can
[codex:1064208]  * later be changed with {transferOwnership}.
[codex:1064208]  *
[codex:1064208] 
[codex:1064208] thinking
[codex:1064208] **Searching for main contract source**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc 'rg -n "contract ZtakingPool|ZtakingPool" AUDIT_BUNDLE.txt' in /tmp/codex-multi-w9zp0ae9 succeeded in 7ms:
[codex:1064208] 2205:FILE: contracts/contracts/ZtakingPool.sol
[codex:1064208] 2221:import "./interface/IZtakingPool.sol";
[codex:1064208] 2226:contract ZtakingPool is IZtakingPool, Ownable2Step, Pausable, EIP712, Nonces {
[codex:1064208] 2251:    constructor(address _signer, address[] memory _tokensAllowed, address _weth) Ownable(msg.sender) EIP712("ZtakingPool", "1"){
[codex:1064208] 2271:     * @inheritdoc IZtakingPool
[codex:1064208] 2297:     * @inheritdoc IZtakingPool
[codex:1064208] 2309:     * @inheritdoc IZtakingPool
[codex:1064208] 2344:     * @inheritdoc IZtakingPool
[codex:1064208] 2431:     * @inheritdoc IZtakingPool
[codex:1064208] 2442:     * @inheritdoc IZtakingPool
[codex:1064208] 2453:     * @inheritdoc IZtakingPool
[codex:1064208] 2464:     * @inheritdoc IZtakingPool
[codex:1064208] 2471:     * @inheritdoc IZtakingPool
[codex:1064208] 2523:FILE: contracts/contracts/interface/IZtakingPool.sol
[codex:1064208] 2530:/// @notice An interface containing externally accessible functions of the ZtakingPool contract
[codex:1064208] 2532:interface IZtakingPool {
[codex:1064208] 2580:    ///@notice Emitted when a staker migrates their tokens from the ZtakingPool to Zircuit.
[codex:1064208] 2583:    ///@param tokens The addresses of the tokens being being migrated from the ZtakingPool to Zircuit
[codex:1064208] 
[codex:1064208] thinking
[codex:1064208] **Checking ZtakingPool contents**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "sed -n '2205,2522p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-w9zp0ae9 succeeded in 5ms:
[codex:1064208] FILE: contracts/contracts/ZtakingPool.sol
[codex:1064208] ================================================================================
[codex:1064208] // SPDX-License-Identifier: UNLICENSED
[codex:1064208] pragma solidity 0.8.24;
[codex:1064208] 
[codex:1064208] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1064208] import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1064208] import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol";
[codex:1064208] import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
[codex:1064208] import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
[codex:1064208] import {Pausable} from "@openzeppelin/contracts/utils/Pausable.sol";
[codex:1064208] import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";
[codex:1064208] import {Nonces} from "@openzeppelin/contracts/utils/Nonces.sol";
[codex:1064208] import "./interface/IWETH.sol";
[codex:1064208] 
[codex:1064208] import "./interface/IMigrator.sol";
[codex:1064208] import "./interface/IZtakingPool.sol";
[codex:1064208] 
[codex:1064208] 
[codex:1064208] /// @title Ztaking Pool
[codex:1064208] 
[codex:1064208] thinking
[codex:1064208] **Preparing to audit contract code**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc 'rg -n "FILE: contracts/contracts/" AUDIT_BUNDLE.txt' in /tmp/codex-multi-w9zp0ae9 succeeded in 7ms:
[codex:1064208] 2205:FILE: contracts/contracts/ZtakingPool.sol
[codex:1064208] 2486:FILE: contracts/contracts/interface/IMigrator.sol
[codex:1064208] 2510:FILE: contracts/contracts/interface/IWETH.sol
[codex:1064208] 2523:FILE: contracts/contracts/interface/IZtakingPool.sol
[codex:1064208] 
[codex:1064208] 
[codex:1064208] 
[codex:1064208] 
[codex:1064208] thinking
[codex:1064208] **Analyzing potential vulnerabilities in token pool contract**
[codex:1064208] 
[codex:1064208] There's a lot here! I'm carefully examining functions like deposit, withdraw, migrate, and migrateWithSig for reentrancy risks, signature handling, allowance management, and balance accounting—especially around deflationary tokens, approvals without safe checks, and migration authorization. I'm curious about reentrancy during token transferFrom calls, approve front-running, and how signatures are validated and used. The handling of approvals, allowance overwrites, and token accounting for fee-on-transfer tokens stands out as potential medium-level risks. Let's see how these interplay to identify real vulnerabilities.
[codex:1064208] thinking
[codex:1064208] **Reviewing signature handling and reentrancy risks**
[codex:1064208] 
[codex:1064208] I'm examining signature validation details for migrateWithSig, especially EIP712 domain and array hashing quirks, plus nonce consumption order and potential replay scenarios. I'm also digging into reentrancy possibilities triggered by token callbacks during deposit, which could allow draining tokens if a malicious or fee-on-transfer token is allowlisted. The nuances of signature scopes, nonce usage, and external calls all seem important to connect here.
[codex:1064208] thinking
[codex:1064208] **Detecting allowance and reentrancy concerns**
[codex:1064208] 
[codex:1064208] I'm digging into how the contract handles token approvals without checking return values, which can cause stuck user balances or unintended allowances. The sequence of external calls during migration and deposits could enable reentrancy, especially if malicious or non-standard tokens are involved. I'm also noting nuanced behaviors around signature validation, nonce usage, and token allowlist checks to fully assess risks.
[codex:1064208] thinking
[codex:1064208] **Summarizing migration and deposit vulnerabilities**
[codex:1064208] 
[codex:1064208] I'm wrapping up by compiling the main findings: the deposit function credits user balances before actual token transfer, which can lead to inflation of credited amounts if tokens charge fees. Also, the migration function uses raw approve calls without checking returns, risking stuck user funds or stale allowances. I’ll package these with relevant code references for clarity.
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '2265,2365p'" in /tmp/codex-multi-w9zp0ae9 succeeded in 9ms:
[codex:1064208]   2265	    /*//////////////////////////////////////////////////////////////
[codex:1064208]   2266	                            Staker Functions
[codex:1064208]   2267	    //////////////////////////////////////////////////////////////*/
[codex:1064208]   2268	
[codex:1064208]   2269	
[codex:1064208]   2270	    /**
[codex:1064208]   2271	     * @inheritdoc IZtakingPool
[codex:1064208]   2272	     */
[codex:1064208]   2273	    function depositFor(address _token, address _for, uint256 _amount) whenNotPaused external {
[codex:1064208]   2274	        if (_amount == 0) revert DepositAmountCannotBeZero();
[codex:1064208]   2275	        if (_for== address(0)) revert CannotDepositForZeroAddress();
[codex:1064208]   2276	        if (!tokenAllowlist[_token]) revert TokenNotAllowedForStaking();
[codex:1064208]   2277	
[codex:1064208]   2278	        balance[_token][_for] += _amount;
[codex:1064208]   2279	
[codex:1064208]   2280	        emit Deposit(++eventId, _for, _token, _amount);
[codex:1064208]   2281	
[codex:1064208]   2282	        IERC20(_token).safeTransferFrom(msg.sender, address(this), _amount);   
[codex:1064208]   2283	    }
[codex:1064208]   2284	
[codex:1064208] 
[codex:1064208] thinking
[codex:1064208] **Noting need for line numbers**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '2388,2475p'" in /tmp/codex-multi-w9zp0ae9 succeeded in 6ms:
[codex:1064208]   2388	        }
[codex:1064208]   2389	
[codex:1064208]   2390	        if (block.timestamp >= _signatureExpiry) revert SignatureExpired();// allows us to invalidate signature by having it expired
[codex:1064208]   2391	
[codex:1064208]   2392	        if (migratorBlocklist[_migratorContract]) revert MigratorBlocked();
[codex:1064208]   2393	    }
[codex:1064208]   2394	
[codex:1064208]   2395	    function _migrate(
[codex:1064208]   2396	        address _user, 
[codex:1064208]   2397	        address _destination, 
[codex:1064208]   2398	        address _migratorContract,
[codex:1064208]   2399	        address[] calldata  _tokens, 
[codex:1064208]   2400	        uint256[] memory _amounts) 
[codex:1064208]   2401	        internal {
[codex:1064208]   2402	        
[codex:1064208]   2403	        uint256 length = _tokens.length;
[codex:1064208]   2404	       //effects for-loop (state changes)
[codex:1064208]   2405	        for(uint256 i; i < length; ++i){
[codex:1064208]   2406	            //if the balance has been already set to zero, then _tokens[i] is a duplicate of a previous token in the array
[codex:1064208]   2407	            if (balance[_tokens[i]][_user] == 0) revert DuplicateToken();
[codex:1064208] 
[codex:1064208] thinking
[codex:1064208] **Clarifying line numbering approach**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "nl -ba contracts/contracts/ZtakingPool.sol | sed -n '60,170p'" in /tmp/codex-multi-w9zp0ae9 succeeded in 6ms:
[codex:1064208]     60	                            Staker Functions
[codex:1064208]     61	    //////////////////////////////////////////////////////////////*/
[codex:1064208]     62	
[codex:1064208]     63	
[codex:1064208]     64	    /**
[codex:1064208]     65	     * @inheritdoc IZtakingPool
[codex:1064208]     66	     */
[codex:1064208]     67	    function depositFor(address _token, address _for, uint256 _amount) whenNotPaused external {
[codex:1064208]     68	        if (_amount == 0) revert DepositAmountCannotBeZero();
[codex:1064208]     69	        if (_for== address(0)) revert CannotDepositForZeroAddress();
[codex:1064208]     70	        if (!tokenAllowlist[_token]) revert TokenNotAllowedForStaking();
[codex:1064208]     71	
[codex:1064208]     72	        balance[_token][_for] += _amount;
[codex:1064208]     73	
[codex:1064208]     74	        emit Deposit(++eventId, _for, _token, _amount);
[codex:1064208]     75	
[codex:1064208]     76	        IERC20(_token).safeTransferFrom(msg.sender, address(this), _amount);   
[codex:1064208]     77	    }
[codex:1064208]     78	
[codex:1064208]     79	    function depositETHFor(address _for) whenNotPaused payable external {
[codex:1064208] 
[codex:1064208] thinking
[codex:1064208] **Preparing migration lines**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "nl -ba contracts/contracts/ZtakingPool.sol | sed -n '170,260p'" in /tmp/codex-multi-w9zp0ae9 succeeded in 6ms:
[codex:1064208]    170	
[codex:1064208]    171	    function _migrateChecks(address _user, address[] calldata  _tokens, uint256 _signatureExpiry, address _migratorContract) 
[codex:1064208]    172	        internal view returns (uint256[] memory _amounts){
[codex:1064208]    173	        
[codex:1064208]    174	        uint256 length = _tokens.length;
[codex:1064208]    175	        if (length == 0) revert TokenArrayCannotBeEmpty();
[codex:1064208]    176	
[codex:1064208]    177	        _amounts = new uint256[](length);
[codex:1064208]    178	
[codex:1064208]    179	        for(uint256 i; i < length; ++i){
[codex:1064208]    180	            _amounts[i] = balance[_tokens[i]][_user];
[codex:1064208]    181	            if (_amounts[i] == 0) revert UserDoesNotHaveStake();
[codex:1064208]    182	        }
[codex:1064208]    183	
[codex:1064208]    184	        if (block.timestamp >= _signatureExpiry) revert SignatureExpired();// allows us to invalidate signature by having it expired
[codex:1064208]    185	
[codex:1064208]    186	        if (migratorBlocklist[_migratorContract]) revert MigratorBlocked();
[codex:1064208]    187	    }
[codex:1064208]    188	
[codex:1064208]    189	    function _migrate(
[codex:1064208] 
[codex:1064208] thinking
[codex:1064208] **Formulating detailed vulnerability report**
[codex:1064208] codex
[codex:1064208] {"no_findings":false,"summary":"Found 2 issues: deposit accounting can be inflated by fee-on-transfer tokens, and migration uses unchecked approve that can desync balances/allowances for non-standard tokens.","findings":[{"severity":"medium","category":"math","title":"Fee-on-transfer tokens can inflate balances and drain pool","exploit_scenario":"If a fee-on-transfer or deflationary token is allowlisted, an attacker can deposit 100 units while the pool receives less (e.g., 90). The pool credits the full 100 to the attacker, who can later withdraw 100, effectively taking the shortfall from other stakers’ liquidity or causing insolvency for late withdrawers.","recommendation":"Credit deposits based on the actual amount received (balance-before/after delta), or explicitly disallow fee-on-transfer/rebasing tokens and enforce it in allowlist policy and/or runtime checks.","evidence":"`depositFor` increments `balance[_token][_for]` by `_amount` before calling `safeTransferFrom`, so credited balances do not reflect actual received tokens for taxed tokens.","locations":["contracts/contracts/ZtakingPool.sol:72"]},{"severity":"low","category":"other","title":"Unchecked ERC20 approve during migration can desync balances/allowances for non-standard tokens","exploit_scenario":"For tokens that return false on `approve` or require allowance to be zeroed first, the `approve` call can silently fail. Since balances are already zeroed, the pool proceeds to the migrator; if the migrator does not revert on a failed `transferFrom`, the user’s balance is gone while tokens remain in the pool or stale allowances persist.","recommendation":"Use `SafeERC20.forceApprove`/`safeIncreaseAllowance` and handle failures; consider zeroing balances only after approvals and migrator transfers succeed.","evidence":"`_migrate` zeroes balances, then calls `IERC20(_tokens[i]).approve(_migratorContract, _amounts[i])` without checking the return value.","locations":["contracts/contracts/ZtakingPool.sol:210"]}]}
[codex:1064208] tokens used
[codex:1064208] 39,033
[codex:1064208] {"no_findings":false,"summary":"Found 2 issues: deposit accounting can be inflated by fee-on-transfer tokens, and migration uses unchecked approve that can desync balances/allowances for non-standard tokens.","findings":[{"severity":"medium","category":"math","title":"Fee-on-transfer tokens can inflate balances and drain pool","exploit_scenario":"If a fee-on-transfer or deflationary token is allowlisted, an attacker can deposit 100 units while the pool receives less (e.g., 90). The pool credits the full 100 to the attacker, who can later withdraw 100, effectively taking the shortfall from other stakers’ liquidity or causing insolvency for late withdrawers.","recommendation":"Credit deposits based on the actual amount received (balance-before/after delta), or explicitly disallow fee-on-transfer/rebasing tokens and enforce it in allowlist policy and/or runtime checks.","evidence":"`depositFor` increments `balance[_token][_for]` by `_amount` before calling `safeTransferFrom`, so credited balances do not reflect actual received tokens for taxed tokens.","locations":["contracts/contracts/ZtakingPool.sol:72"]},{"severity":"low","category":"other","title":"Unchecked ERC20 approve during migration can desync balances/allowances for non-standard tokens","exploit_scenario":"For tokens that return false on `approve` or require allowance to be zeroed first, the `approve` call can silently fail. Since balances are already zeroed, the pool proceeds to the migrator; if the migrator does not revert on a failed `transferFrom`, the user’s balance is gone while tokens remain in the pool or stale allowances persist.","recommendation":"Use `SafeERC20.forceApprove`/`safeIncreaseAllowance` and handle failures; consider zeroing balances only after approvals and migrator transfers succeed.","evidence":"`_migrate` zeroes balances, then calls `IERC20(_tokens[i]).approve(_migratorContract, _amounts[i])` without checking the return value.","locations":["contracts/contracts/ZtakingPool.sol:210"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T15:10:27.979395+00:00",
        "returncode": 0
    },
    "summary": "Found 2 issues: deposit accounting can be inflated by fee-on-transfer tokens, and migration uses unchecked approve that can desync balances/allowances for non-standard tokens.",
    "raw_final": {
        "summary": "Found 2 issues: deposit accounting can be inflated by fee-on-transfer tokens, and migration uses unchecked approve that can desync balances/allowances for non-standard tokens.",
        "findings": [
            {
                "title": "Fee-on-transfer tokens can inflate balances and drain pool",
                "category": "math",
                "evidence": "`depositFor` increments `balance[_token][_for]` by `_amount` before calling `safeTransferFrom`, so credited balances do not reflect actual received tokens for taxed tokens.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/ZtakingPool.sol:72"
                ],
                "recommendation": "Credit deposits based on the actual amount received (balance-before/after delta), or explicitly disallow fee-on-transfer/rebasing tokens and enforce it in allowlist policy and/or runtime checks.",
                "exploit_scenario": "If a fee-on-transfer or deflationary token is allowlisted, an attacker can deposit 100 units while the pool receives less (e.g., 90). The pool credits the full 100 to the attacker, who can later withdraw 100, effectively taking the shortfall from other stakers\u2019 liquidity or causing insolvency for late withdrawers."
            },
            {
                "title": "Unchecked ERC20 approve during migration can desync balances/allowances for non-standard tokens",
                "category": "other",
                "evidence": "`_migrate` zeroes balances, then calls `IERC20(_tokens[i]).approve(_migratorContract, _amounts[i])` without checking the return value.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/ZtakingPool.sol:210"
                ],
                "recommendation": "Use `SafeERC20.forceApprove`/`safeIncreaseAllowance` and handle failures; consider zeroing balances only after approvals and migrator transfers succeed.",
                "exploit_scenario": "For tokens that return false on `approve` or require allowance to be zeroed first, the `approve` call can silently fail. Since balances are already zeroed, the pool proceeds to the migrator; if the migrator does not revert on a failed `transferFrom`, the user\u2019s balance is gone while tokens remain in the pool or stale allowances persist."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
3
Total opcodes
5658
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0135
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0xa5a21fdf
00000019: GT
0000001a: PUSH2 0x00ab
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xe3c34216
00000024: GT
00000025: PUSH2 0x006f
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xe3c34216
0000002f: EQ
00000030: PUSH2 0x0398
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xe63b81a6
0000003a: EQ
0000003b: PUSH2 0x03b8
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf03639e3
00000045: EQ
00000046: PUSH2 0x03d8
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf2fde38b
00000050: EQ
00000051: PUSH2 0x03f8
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf3fef3a3
0000005b: EQ
0000005c: PUSH2 0x0418
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf6203e35
00000066: EQ
00000067: PUSH2 0x0438
0000006a: JUMPI
0000006b: PUSH1 0x00
0000006d: DUP1
0000006e: REVERT
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0xa5a21fdf
00000076: EQ
00000077: PUSH2 0x02e2
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xb203bb99
00000081: EQ
00000082: PUSH2 0x0302
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xb3db428b
0000008c: EQ
0000008d: PUSH2 0x033a
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xda3a3a88
00000097: EQ
00000098: PUSH2 0x035a
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0xe30c3978
000000a2: EQ
000000a3: PUSH2 0x037a
000000a6: JUMPI
000000a7: PUSH1 0x00
000000a9: DUP1
000000aa: REVERT
000000ab: JUMPDEST
000000ac: DUP1
000000ad: PUSH4 0x79ba5097
000000b2: GT
000000b3: PUSH2 0x00fd
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0x79ba5097
000000bd: EQ
000000be: PUSH2 0x01fe
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0x7ecebe00
000000c8: EQ
000000c9: PUSH2 0x0213
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0x8135369a
000000d3: EQ
000000d4: PUSH2 0x0257
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0x8456cb59
000000de: EQ
000000df: PUSH2 0x0287
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0x84b0196e
000000e9: EQ
000000ea: PUSH2 0x029c
000000ed: JUMPI
000000ee: DUP1
000000ef: PUSH4 0x8da5cb5b
000000f4: EQ
000000f5: PUSH2 0x02c4
000000f8: JUMPI
000000f9: PUSH1 0x00
000000fb: DUP1
000000fc: REVERT
000000fd: JUMPDEST
000000fe: DUP1
000000ff: PUSH4 0x3f4ba83a
00000104: EQ
00000105: PUSH2 0x013a
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x44e7cb13
0000010f: EQ
00000110: PUSH2 0x0151
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0x5c975abb
0000011a: EQ
0000011b: PUSH2 0x018e
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x715018a6
00000125: EQ
00000126: PUSH2 0x01b9
00000129: JUMPI
0000012a: DUP1
0000012b: PUSH4 0x79a26cd0
00000130: EQ
00000131: PUSH2 0x01ce
00000134: JUMPI
00000135: JUMPDEST
00000136: PUSH1 0x00
00000138: DUP1
00000139: REVERT
0000013a: JUMPDEST
0000013b: CALLVALUE
0000013c: DUP1
0000013d: ISZERO
0000013e: PUSH2 0x0146
00000141: JUMPI
00000142: PUSH1 0x00
00000144: DUP1
00000145: REVERT
00000146: JUMPDEST
00000147: POP
00000148: PUSH2 0x014f
0000014b: PUSH2 0x044b
0000014e: JUMP
0000014f: JUMPDEST
00000150: STOP
00000151: JUMPDEST
00000152: CALLVALUE
00000153: DUP1
00000154: ISZERO
00000155: PUSH2 0x015d
00000158: JUMPI
00000159: PUSH1 0x00
0000015b: DUP1
0000015c: REVERT
0000015d: JUMPDEST
0000015e: POP
0000015f: PUSH1 0x09
00000161: SLOAD
00000162: PUSH2 0x0171
00000165: SWAP1
00000166: PUSH1 0x01
00000168: PUSH1 0x01
0000016a: PUSH1 0xa0
0000016c: SHL
0000016d: SUB
0000016e: AND
0000016f: DUP2
00000170: JUMP
00000171: JUMPDEST
00000172: PUSH1 0x40
00000174: MLOAD
00000175: PUSH1 0x01
00000177: PUSH1 0x01
00000179: PUSH1 0xa0
0000017b: SHL
0000017c: SUB
0000017d: SWAP1
0000017e: SWAP2
0000017f: AND
00000180: DUP2
00000181: MSTORE
00000182: PUSH1 0x20
00000184: ADD
00000185: JUMPDEST
00000186: PUSH1 0x40
00000188: MLOAD
00000189: DUP1
0000018a: SWAP2
0000018b: SUB
0000018c: SWAP1
0000018d: RETURN
0000018e: JUMPDEST
0000018f: CALLVALUE
00000190: DUP1
00000191: ISZERO
00000192: PUSH2 0x019a
00000195: JUMPI
00000196: PUSH1 0x00
00000198: DUP1
00000199: REVERT
0000019a: JUMPDEST
0000019b: POP
0000019c: PUSH1 0x01
0000019e: SLOAD
0000019f: PUSH1 0x01
000001a1: PUSH1 0xa0
000001a3: SHL
000001a4: SWAP1
000001a5: DIV
000001a6: PUSH1 0xff
000001a8: AND
000001a9: JUMPDEST
000001aa: PUSH1 0x40
000001ac: MLOAD
000001ad: SWAP1
000001ae: ISZERO
000001af: ISZERO
000001b0: DUP2
000001b1: MSTORE
000001b2: PUSH1 0x20
000001b4: ADD
000001b5: PUSH2 0x0185
000001b8: JUMP
000001b9: JUMPDEST
000001ba: CALLVALUE
000001bb: DUP1
000001bc: ISZERO
000001bd: PUSH2 0x01c5
000001c0: JUMPI
000001c1: PUSH1 0x00
000001c3: DUP1
000001c4: REVERT
000001c5: JUMPDEST
000001c6: POP
000001c7: PUSH2 0x014f
000001ca: PUSH2 0x0465
000001cd: JUMP
000001ce: JUMPDEST
000001cf: CALLVALUE
000001d0: DUP1
000001d1: ISZERO
000001d2: PUSH2 0x01da
000001d5: JUMPI
000001d6: PUSH1 0x00
000001d8: DUP1
000001d9: REVERT
000001da: JUMPDEST
000001db: POP
000001dc: PUSH2 0x01a9
000001df: PUSH2 0x01e9
000001e2: CALLDATASIZE
000001e3: PUSH1 0x04
000001e5: PUSH2 0x1b61
000001e8: JUMP
000001e9: JUMPDEST
000001ea: PUSH1 0x07
000001ec: PUSH1 0x20
000001ee: MSTORE
000001ef: PUSH1 0x00
000001f1: SWAP1
000001f2: DUP2
000001f3: MSTORE
000001f4: PUSH1 0x40
000001f6: SWAP1
000001f7: KECCAK256
000001f8: SLOAD
000001f9: PUSH1 0xff
000001fb: AND
000001fc: DUP2
000001fd: JUMP
000001fe: JUMPDEST
000001ff: CALLVALUE
00000200: DUP1
00000201: ISZERO
00000202: PUSH2 0x020a
00000205: JUMPI
00000206: PUSH1 0x00
00000208: DUP1
00000209: REVERT
0000020a: JUMPDEST
0000020b: POP
0000020c: PUSH2 0x014f
0000020f: PUSH2 0x047e
00000212: JUMP
00000213: JUMPDEST
00000214: CALLVALUE
00000215: DUP1
00000216: ISZERO
00000217: PUSH2 0x021f
0000021a: JUMPI
0000021b: PUSH1 0x00
0000021d: DUP1
0000021e: REVERT
0000021f: JUMPDEST
00000220: POP
00000221: PUSH2 0x0249
00000224: PUSH2 0x022e
00000227: CALLDATASIZE
00000228: PUSH1 0x04
0000022a: PUSH2 0x1b61
0000022d: JUMP
0000022e: JUMPDEST
0000022f: PUSH1 0x01
00000231: PUSH1 0x01
00000233: PUSH1 0xa0
00000235: SHL
00000236: SUB
00000237: AND
00000238: PUSH1 0x00
0000023a: SWAP1
0000023b: DUP2
0000023c: MSTORE
0000023d: PUSH1 0x04
0000023f: PUSH1 0x20
00000241: MSTORE
00000242: PUSH1 0x40
00000244: SWAP1
00000245: KECCAK256
00000246: SLOAD
00000247: SWAP1
00000248: JUMP
00000249: JUMPDEST
0000024a: PUSH1 0x40
0000024c: MLOAD
0000024d: SWAP1
0000024e: DUP2
0000024f: MSTORE
00000250: PUSH1 0x20
00000252: ADD
00000253: PUSH2 0x0185
00000256: JUMP
00000257: JUMPDEST
00000258: CALLVALUE
00000259: DUP1
0000025a: ISZERO
0000025b: PUSH2 0x0263
0000025e: JUMPI
0000025f: PUSH1 0x00
00000261: DUP1
00000262: REVERT
00000263: JUMPDEST
00000264: POP
00000265: PUSH2 0x01a9
00000268: PUSH2 0x0272
0000026b: CALLDATASIZE
0000026c: PUSH1 0x04
0000026e: PUSH2 0x1b61
00000271: JUMP
00000272: JUMPDEST
00000273: PUSH1 0x05
00000275: PUSH1 0x20
00000277: MSTORE
00000278: PUSH1 0x00
0000027a: SWAP1
0000027b: DUP2
0000027c: MSTORE
0000027d: PUSH1 0x40
0000027f: SWAP1
00000280: KECCAK256
00000281: SLOAD
00000282: PUSH1 0xff
00000284: AND
00000285: DUP2
00000286: JUMP
00000287: JUMPDEST
00000288: CALLVALUE
00000289: DUP1
0000028a: ISZERO
0000028b: PUSH2 0x0293
0000028e: JUMPI
0000028f: PUSH1 0x00
00000291: DUP1
00000292: REVERT
00000293: JUMPDEST
00000294: POP
00000295: PUSH2 0x014f
00000298: PUSH2 0x04c7
0000029b: JUMP
0000029c: JUMPDEST
0000029d: CALLVALUE
0000029e: DUP1
0000029f: ISZERO
000002a0: PUSH2 0x02a8
000002a3: JUMPI
000002a4: PUSH1 0x00
000002a6: DUP1
000002a7: REVERT
000002a8: JUMPDEST
000002a9: POP
000002aa: PUSH2 0x02b1
000002ad: PUSH2 0x04df
000002b0: JUMP
000002b1: JUMPDEST
000002b2: PUSH1 0x40
000002b4: MLOAD
000002b5: PUSH2 0x0185
000002b8: SWAP8
000002b9: SWAP7
000002ba: SWAP6
000002bb: SWAP5
000002bc: SWAP4
000002bd: SWAP3
000002be: SWAP2
000002bf: SWAP1
000002c0: PUSH2 0x1c08
000002c3: JUMP
000002c4: JUMPDEST
000002c5: CALLVALUE
000002c6: DUP1
000002c7: ISZERO
000002c8: PUSH2 0x02d0
000002cb: JUMPI
000002cc: PUSH1 0x00
000002ce: DUP1
000002cf: REVERT
000002d0: JUMPDEST
000002d1: POP
000002d2: PUSH1 0x00
000002d4: SLOAD
000002d5: PUSH1 0x01
000002d7: PUSH1 0x01
000002d9: PUSH1 0xa0
000002db: SHL
000002dc: SUB
000002dd: AND
000002de: PUSH2 0x0171
000002e1: JUMP
000002e2: JUMPDEST
000002e3: CALLVALUE
000002e4: DUP1
000002e5: ISZERO
000002e6: PUSH2 0x02ee
000002e9: JUMPI
000002ea: PUSH1 0x00
000002ec: DUP1
000002ed: REVERT
000002ee: JUMPDEST
000002ef: POP
000002f0: PUSH2 0x014f
000002f3: PUSH2 0x02fd
000002f6: CALLDATASIZE
000002f7: PUSH1 0x04
000002f9: PUSH2 0x1cda
000002fc: JUMP
000002fd: JUMPDEST
000002fe: PUSH2 0x0525
00000301: JUMP
00000302: JUMPDEST
00000303: CALLVALUE
00000304: DUP1
00000305: ISZERO
00000306: PUSH2 0x030e
00000309: JUMPI
0000030a: PUSH1 0x00
0000030c: DUP1
0000030d: REVERT
0000030e: JUMPDEST
0000030f: POP
00000310: PUSH2 0x0249
00000313: PUSH2 0x031d
00000316: CALLDATASIZE
00000317: PUSH1 0x04
00000319: PUSH2 0x1df4
0000031c: JUMP
0000031d: JUMPDEST
0000031e: PUSH1 0x06
00000320: PUSH1 0x20
00000322: SWAP1
00000323: DUP2
00000324: MSTORE
00000325: PUSH1 0x00
00000327: SWAP3
00000328: DUP4
00000329: MSTORE
0000032a: PUSH1 0x40
0000032c: DUP1
0000032d: DUP5
0000032e: KECCAK256
0000032f: SWAP1
00000330: SWAP2
00000331: MSTORE
00000332: SWAP1
00000333: DUP3
00000334: MSTORE
00000335: SWAP1
00000336: KECCAK256
00000337: SLOAD
00000338: DUP2
00000339: JUMP
0000033a: JUMPDEST
0000033b: CALLVALUE
0000033c: DUP1
0000033d: ISZERO
0000033e: PUSH2 0x0346
00000341: JUMPI
00000342: PUSH1 0x00
00000344: DUP1
00000345: REVERT
00000346: JUMPDEST
00000347: POP
00000348: PUSH2 0x014f
0000034b: PUSH2 0x0355
0000034e: CALLDATASIZE
0000034f: PUSH1 0x04
00000351: PUSH2 0x1e27
00000354: JUMP
00000355: JUMPDEST
00000356: PUSH2 0x065e
00000359: JUMP
0000035a: JUMPDEST
0000035b: CALLVALUE
0000035c: DUP1
0000035d: ISZERO
0000035e: PUSH2 0x0366
00000361: JUMPI
00000362: PUSH1 0x00
00000364: DUP1
00000365: REVERT
00000366: JUMPDEST
00000367: POP
00000368: PUSH2 0x014f
0000036b: PUSH2 0x0375
0000036e: CALLDATASIZE
0000036f: PUSH1 0x04
00000371: PUSH2 0x1b61
00000374: JUMP
00000375: JUMPDEST
00000376: PUSH2 0x0799
00000379: JUMP
0000037a: JUMPDEST
0000037b: CALLVALUE
0000037c: DUP1
0000037d: ISZERO
0000037e: PUSH2 0x0386
00000381: JUMPI
00000382: PUSH1 0x00
00000384: DUP1
00000385: REVERT
00000386: JUMPDEST
00000387: POP
00000388: PUSH1 0x01
0000038a: SLOAD
0000038b: PUSH1 0x01
0000038d: PUSH1 0x01
0000038f: PUSH1 0xa0
00000391: SHL
00000392: SUB
00000393: AND
00000394: PUSH2 0x0171
00000397: JUMP
00000398: JUMPDEST
00000399: CALLVALUE
0000039a: DUP1
0000039b: ISZERO
0000039c: PUSH2 0x03a4
0000039f: JUMPI
000003a0: PUSH1 0x00
000003a2: DUP1
000003a3: REVERT
000003a4: JUMPDEST
000003a5: POP
000003a6: PUSH2 0x014f
000003a9: PUSH2 0x03b3
000003ac: CALLDATASIZE
000003ad: PUSH1 0x04
000003af: PUSH2 0x1e63
000003b2: JUMP
000003b3: JUMPDEST
000003b4: PUSH2 0x084b
000003b7: JUMP
000003b8: JUMPDEST
000003b9: CALLVALUE
000003ba: DUP1
000003bb: ISZERO
000003bc: PUSH2 0x03c4
000003bf: JUMPI
000003c0: PUSH1 0x00
000003c2: DUP1
000003c3: REVERT
000003c4: JUMPDEST
000003c5: POP
000003c6: PUSH2 0x014f
000003c9: PUSH2 0x03d3
000003cc: CALLDATASIZE
000003cd: PUSH1 0x04
000003cf: PUSH2 0x1f3c
000003d2: JUMP
000003d3: JUMPDEST
000003d4: PUSH2 0x0977
000003d7: JUMP
000003d8: JUMPDEST
000003d9: CALLVALUE
000003da: DUP1
000003db: ISZERO
000003dc: PUSH2 0x03e4
000003df: JUMPI
000003e0: PUSH1 0x00
000003e2: DUP1
000003e3: REVERT
000003e4: JUMPDEST
000003e5: POP
000003e6: PUSH2 0x014f
000003e9: PUSH2 0x03f3
000003ec: CALLDATASIZE
000003ed: PUSH1 0x04
000003ef: PUSH2 0x1f3c
000003f2: JUMP
000003f3: JUMPDEST
000003f4: PUSH2 0x0a4b
000003f7: JUMP
000003f8: JUMPDEST
000003f9: CALLVALUE
000003fa: DUP1
000003fb: ISZERO
000003fc: PUSH2 0x0404
000003ff: JUMPI
00000400: PUSH1 0x00
00000402: DUP1
00000403: REVERT
00000404: JUMPDEST
00000405: POP
00000406: PUSH2 0x014f
00000409: PUSH2 0x0413
0000040c: CALLDATASIZE
0000040d: PUSH1 0x04
0000040f: PUSH2 0x1b61
00000412: JUMP
00000413: JUMPDEST
00000414: PUSH2 0x0b17
00000417: JUMP
00000418: JUMPDEST
00000419: CALLVALUE
0000041a: DUP1
0000041b: ISZERO
0000041c: PUSH2 0x0424
0000041f: JUMPI
00000420: PUSH1 0x00
00000422: DUP1
00000423: REVERT
00000424: JUMPDEST
00000425: POP
00000426: PUSH2 0x014f
00000429: PUSH2 0x0433
0000042c: CALLDATASIZE
0000042d: PUSH1 0x04
0000042f: PUSH2 0x1f73
00000432: JUMP
00000433: JUMPDEST
00000434: PUSH2 0x0b88
00000437: JUMP
00000438: JUMPDEST
00000439: PUSH2 0x014f
0000043c: PUSH2 0x0446
0000043f: CALLDATASIZE
00000440: PUSH1 0x04
00000442: PUSH2 0x1b61
00000445: JUMP
00000446: JUMPDEST
00000447: PUSH2 0x0c4e
0000044a: JUMP
0000044b: JUMPDEST
0000044c: PUSH2 0x0453
0000044f: PUSH2 0x0e46
00000452: JUMP
00000453: JUMPDEST
00000454: PUSH2 0x045b
00000457: PUSH2 0x0e73
0000045a: JUMP
0000045b: JUMPDEST
0000045c: PUSH2 0x0463
0000045f: PUSH2 0x0e9d
00000462: JUMP
00000463: JUMPDEST
00000464: JUMP
00000465: JUMPDEST
00000466: PUSH1 0x40
00000468: MLOAD
00000469: PUSH4 0x77aeb0ad
0000046e: PUSH1 0xe0
00000470: SHL
00000471: DUP2
00000472: MSTORE
00000473: PUSH1 0x04
00000475: ADD
00000476: PUSH1 0x40
00000478: MLOAD
00000479: DUP1
0000047a: SWAP2
0000047b: SUB
0000047c: SWAP1
0000047d: REVERT
0000047e: JUMPDEST
0000047f: PUSH1 0x01
00000481: SLOAD
00000482: CALLER
00000483: SWAP1
00000484: PUSH1 0x01
00000486: PUSH1 0x01
00000488: PUSH1 0xa0
0000048a: SHL
0000048b: SUB
0000048c: AND
0000048d: DUP2
0000048e: EQ
0000048f: PUSH2 0x04bb
00000492: JUMPI
00000493: PUSH1 0x40
00000495: MLOAD
00000496: PUSH4 0x118cdaa7
0000049b: PUSH1 0xe0
0000049d: SHL
0000049e: DUP2
0000049f: MSTORE
000004a0: PUSH1 0x01
000004a2: PUSH1 0x01
000004a4: PUSH1 0xa0
000004a6: SHL
000004a7: SUB
000004a8: DUP3
000004a9: AND
000004aa: PUSH1 0x04
000004ac: DUP3
000004ad: ADD
000004ae: MSTORE
000004af: PUSH1 0x24
000004b1: ADD
000004b2: JUMPDEST
000004b3: PUSH1 0x40
000004b5: MLOAD
000004b6: DUP1
000004b7: SWAP2
000004b8: SUB
000004b9: SWAP1
000004ba: REVERT
000004bb: JUMPDEST
000004bc: PUSH2 0x04c4
000004bf: DUP2
000004c0: PUSH2 0x0ef2
000004c3: JUMP
000004c4: JUMPDEST
000004c5: POP
000004c6: JUMP
000004c7: JUMPDEST
000004c8: PUSH2 0x04cf
000004cb: PUSH2 0x0e46
000004ce: JUMP
000004cf: JUMPDEST
000004d0: PUSH2 0x04d7
000004d3: PUSH2 0x0f0b
000004d6: JUMP
000004d7: JUMPDEST
000004d8: PUSH2 0x0463
000004db: PUSH2 0x0f36
000004de: JUMP
000004df: JUMPDEST
000004e0: PUSH1 0x00
000004e2: PUSH1 0x60
000004e4: DUP1
000004e5: PUSH1 0x00
000004e7: DUP1
000004e8: PUSH1 0x00
000004ea: PUSH1 0x60
000004ec: PUSH2 0x04f3
000004ef: PUSH2 0x0f79
000004f2: JUMP
000004f3: JUMPDEST
000004f4: PUSH2 0x04fb
000004f7: PUSH2 0x0fab
000004fa: JUMP
000004fb: JUMPDEST
000004fc: PUSH1 0x40
000004fe: DUP1
000004ff: MLOAD
00000500: PUSH1 0x00
00000502: DUP1
00000503: DUP3
00000504: MSTORE
00000505: PUSH1 0x20
00000507: DUP3
00000508: ADD
00000509: SWAP1
0000050a: SWAP3
0000050b: MSTORE
0000050c: PUSH1 0x0f
0000050e: PUSH1 0xf8
00000510: SHL
00000511: SWAP12
00000512: SWAP4
00000513: SWAP11
00000514: POP
00000515: SWAP2
00000516: SWAP9
00000517: POP
00000518: CHAINID
00000519: SWAP8
0000051a: POP
0000051b: ADDRESS
0000051c: SWAP7
0000051d: POP
0000051e: SWAP5
0000051f: POP
00000520: SWAP3
00000521: POP
00000522: SWAP1
00000523: POP
00000524: JUMP
00000525: JUMPDEST
00000526: PUSH2 0x052d
00000529: PUSH2 0x0e46
0000052c: JUMP
0000052d: JUMPDEST
0000052e: PUSH1 0x00
00000530: PUSH32 0xe08f530a0e71c7f642d765489160fd44eac817278745c067606534c347d9a2ec
00000551: DUP9
00000552: DUP7
00000553: DUP7
00000554: DUP11
00000555: DUP11
00000556: PUSH1 0x40
00000558: MLOAD
00000559: PUSH1 0x20
0000055b: ADD
0000055c: PUSH2 0x0566
0000055f: SWAP3
00000560: SWAP2
00000561: SWAP1
00000562: PUSH2 0x1f9d
00000565: JUMP
00000566: JUMPDEST
00000567: PUSH1 0x40
00000569: MLOAD
0000056a: PUSH1 0x20
0000056c: DUP2
0000056d: DUP4
0000056e: SUB
0000056f: SUB
00000570: DUP2
00000571: MSTORE
00000572: SWAP1
00000573: PUSH1 0x40
00000575: MSTORE
00000576: DUP1
00000577: MLOAD
00000578: SWAP1
00000579: PUSH1 0x20
0000057b: ADD
0000057c: KECCAK256
0000057d: DUP8
0000057e: PUSH2 0x05a4
00000581: DUP15
00000582: PUSH1 0x01
00000584: PUSH1 0x01
00000586: PUSH1 0xa0
00000588: SHL
00000589: SUB
0000058a: AND
0000058b: PUSH1 0x00
0000058d: SWAP1
0000058e: DUP2
0000058f: MSTORE
00000590: PUSH1 0x04
00000592: PUSH1 0x20
00000594: MSTORE
00000595: PUSH1 0x40
00000597: SWAP1
00000598: KECCAK256
00000599: DUP1
0000059a: SLOAD
0000059b: PUSH1 0x01
0000059d: DUP2
0000059e: ADD
0000059f: SWAP1
000005a0: SWAP2
000005a1: SSTORE
000005a2: SWAP1
000005a3: JUMP
000005a4: JUMPDEST
000005a5: PUSH1 0x40
000005a7: DUP1
000005a8: MLOAD
000005a9: PUSH1 0x20
000005ab: DUP2
000005ac: ADD
000005ad: SWAP9
000005ae: SWAP1
000005af: SWAP9
000005b0: MSTORE
000005b1: PUSH1 0x01
000005b3: PUSH1 0x01
000005b5: PUSH1 0xa0
000005b7: SHL
000005b8: SUB
000005b9: SWAP7
000005ba: DUP8
000005bb: AND
000005bc: SWAP1
000005bd: DUP9
000005be: ADD
000005bf: MSTORE
000005c0: SWAP4
000005c1: DUP6
000005c2: AND
000005c3: PUSH1 0x60
000005c5: DUP8
000005c6: ADD
000005c7: MSTORE
000005c8: SWAP4
000005c9: SWAP1
000005ca: SWAP2
000005cb: AND
000005cc: PUSH1 0x80
000005ce: DUP6
000005cf: ADD
000005d0: MSTORE
000005d1: PUSH1 0xa0
000005d3: DUP5
000005d4: ADD
000005d5: MSTORE
000005d6: PUSH1 0xc0
000005d8: DUP4
000005d9: ADD
000005da: SWAP2
000005db: SWAP1
000005dc: SWAP2
000005dd: MSTORE
000005de: PUSH1 0xe0
000005e0: DUP3
000005e1: ADD
000005e2: MSTORE
000005e3: PUSH2 0x0100
000005e6: ADD
000005e7: PUSH1 0x40
000005e9: MLOAD
000005ea: PUSH1 0x20
000005ec: DUP2
000005ed: DUP4
000005ee: SUB
000005ef: SUB
000005f0: DUP2
000005f1: MSTORE
000005f2: SWAP1
000005f3: PUSH1 0x40
000005f5: MSTORE
000005f6: DUP1
000005f7: MLOAD
000005f8: SWAP1
000005f9: PUSH1 0x20
000005fb: ADD
000005fc: KECCAK256
000005fd: SWAP1
000005fe: POP
000005ff: PUSH1 0x00
00000601: PUSH2 0x0609
00000604: DUP3
00000605: PUSH2 0x0fd8
00000608: JUMP
00000609: JUMPDEST
0000060a: SWAP1
0000060b: POP
0000060c: PUSH2 0x0616
0000060f: DUP10
00000610: DUP3
00000611: DUP6
00000612: PUSH2 0x100b
00000615: JUMP
00000616: JUMPDEST
00000617: PUSH2 0x0633
0000061a: JUMPI
0000061b: PUSH1 0x40
0000061d: MLOAD
0000061e: PUSH4 0x37e8456b
00000623: PUSH1 0xe0
00000625: SHL
00000626: DUP2
00000627: MSTORE
00000628: PUSH1 0x04
0000062a: ADD
0000062b: PUSH1 0x40
0000062d: MLOAD
0000062e: DUP1
0000062f: SWAP2
00000630: SUB
00000631: SWAP1
00000632: REVERT
00000633: JUMPDEST
00000634: POP
00000635: POP
00000636: PUSH1 0x00
00000638: PUSH2 0x0644
0000063b: DUP9
0000063c: DUP9
0000063d: DUP9
0000063e: DUP7
0000063f: DUP10
00000640: PUSH2 0x106f
00000643: JUMP
00000644: JUMPDEST
00000645: SWAP1
00000646: POP
00000647: PUSH2 0x0654
0000064a: DUP9
0000064b: DUP6
0000064c: DUP8
0000064d: DUP11
0000064e: DUP11
0000064f: DUP7
00000650: PUSH2 0x1218
00000653: JUMP
00000654: JUMPDEST
00000655: POP
00000656: POP
00000657: POP
00000658: POP
00000659: POP
0000065a: POP
0000065b: POP
0000065c: POP
0000065d: JUMP
0000065e: JUMPDEST
0000065f: PUSH2 0x0666
00000662: PUSH2 0x0f0b
00000665: JUMP
00000666: JUMPDEST
00000667: DUP1
00000668: PUSH1 0x00
0000066a: SUB
0000066b: PUSH2 0x0687
0000066e: JUMPI
0000066f: PUSH1 0x40
00000671: MLOAD
00000672: PUSH4 0x18bb7589
00000677: PUSH1 0xe1
00000679: SHL
0000067a: DUP2
0000067b: MSTORE
0000067c: PUSH1 0x04
0000067e: ADD
0000067f: PUSH1 0x40
00000681: MLOAD
00000682: DUP1
00000683: SWAP2
00000684: SUB
00000685: SWAP1
00000686: REVERT
00000687: JUMPDEST
00000688: PUSH1 0x01
0000068a: PUSH1 0x01
0000068c: PUSH1 0xa0
0000068e: SHL
0000068f: SUB
00000690: DUP3
00000691: AND
00000692: PUSH2 0x06ad
00000695: JUMPI
00000696: PUSH1 0x40
00000698: MLOAD
00000699: PUSH3 0xbbe085
0000069d: PUSH1 0xe3
0000069f: SHL
000006a0: DUP2
000006a1: MSTORE
000006a2: PUSH1 0x04
000006a4: ADD
000006a5: PUSH1 0x40
000006a7: MLOAD
000006a8: DUP1
000006a9: SWAP2
000006aa: SUB
000006ab: SWAP1
000006ac: REVERT
000006ad: JUMPDEST
000006ae: PUSH1 0x01
000006b0: PUSH1 0x01
000006b2: PUSH1 0xa0
000006b4: SHL
000006b5: SUB
000006b6: DUP4
000006b7: AND
000006b8: PUSH1 0x00
000006ba: SWAP1
000006bb: DUP2
000006bc: MSTORE
000006bd: PUSH1 0x05
000006bf: PUSH1 0x20
000006c1: MSTORE
000006c2: PUSH1 0x40
000006c4: SWAP1
000006c5: KECCAK256
000006c6: SLOAD
000006c7: PUSH1 0xff
000006c9: AND
000006ca: PUSH2 0x06e6
000006cd: JUMPI
000006ce: PUSH1 0x40
000006d0: MLOAD
000006d1: PUSH4 0x072b889f
000006d6: PUSH1 0xe1
000006d8: SHL
000006d9: DUP2
000006da: MSTORE
000006db: PUSH1 0x04
000006dd: ADD
000006de: PUSH1 0x40
000006e0: MLOAD
000006e1: DUP1
000006e2: SWAP2
000006e3: SUB
000006e4: SWAP1
000006e5: REVERT
000006e6: JUMPDEST
000006e7: PUSH1 0x01
000006e9: PUSH1 0x01
000006eb: PUSH1 0xa0
000006ed: SHL
000006ee: SUB
000006ef: DUP1
000006f0: DUP5
000006f1: AND
000006f2: PUSH1 0x00
000006f4: SWAP1
000006f5: DUP2
000006f6: MSTORE
000006f7: PUSH1 0x06
000006f9: PUSH1 0x20
000006fb: SWAP1
000006fc: DUP2
000006fd: MSTORE
000006fe: PUSH1 0x40
00000700: DUP1
00000701: DUP4
00000702: KECCAK256
00000703: SWAP4
00000704: DUP7
00000705: AND
00000706: DUP4
00000707: MSTORE
00000708: SWAP3
00000709: SWAP1
0000070a: MSTORE
0000070b: SWAP1
0000070c: DUP2
0000070d: KECCAK256
0000070e: DUP1
0000070f: SLOAD
00000710: DUP4
00000711: SWAP3
00000712: SWAP1
00000713: PUSH2 0x071d
00000716: SWAP1
00000717: DUP5
00000718: SWAP1
00000719: PUSH2 0x1ff3
0000071c: JUMP
0000071d: JUMPDEST
0000071e: SWAP3
0000071f: POP
00000720: POP
00000721: DUP2
00000722: SWAP1
00000723: SSTORE
00000724: POP
00000725: DUP3
00000726: PUSH1 0x01
00000728: PUSH1 0x01
0000072a: PUSH1 0xa0
0000072c: SHL
0000072d: SUB
0000072e: AND
0000072f: DUP3
00000730: PUSH1 0x01
00000732: PUSH1 0x01
00000734: PUSH1 0xa0
00000736: SHL
00000737: SUB
00000738: AND
00000739: PUSH1 0x08
0000073b: PUSH1 0x00
0000073d: DUP2
0000073e: SLOAD
0000073f: PUSH2 0x0747
00000742: SWAP1
00000743: PUSH2 0x2006
00000746: JUMP
00000747: JUMPDEST
00000748: SWAP2
00000749: DUP3
0000074a: SWAP1
0000074b: SSTORE
0000074c: POP
0000074d: PUSH1 0x40
0000074f: MLOAD
00000750: DUP5
00000751: DUP2
00000752: MSTORE
00000753: PUSH32 0x2c0f148b435140de488c1b34647f1511c646f7077e87007bacf22ef9977a16d8
00000774: SWAP1
00000775: PUSH1 0x20
00000777: ADD
00000778: PUSH1 0x40
0000077a: MLOAD
0000077b: DUP1
0000077c: SWAP2
0000077d: SUB
0000077e: SWAP1
0000077f: LOG4
00000780: PUSH2 0x0794
00000783: PUSH1 0x01
00000785: PUSH1 0x01
00000787: PUSH1 0xa0
00000789: SHL
0000078a: SUB
0000078b: DUP5
0000078c: AND
0000078d: CALLER
0000078e: ADDRESS
0000078f: DUP5
00000790: PUSH2 0x149e
00000793: JUMP
00000794: JUMPDEST
00000795: POP
00000796: POP
00000797: POP
00000798: JUMP
00000799: JUMPDEST
0000079a: PUSH2 0x07a1
0000079d: PUSH2 0x0e46
000007a0: JUMP
000007a1: JUMPDEST
000007a2: PUSH1 0x01
000007a4: PUSH1 0x01
000007a6: PUSH1 0xa0
000007a8: SHL
000007a9: SUB
000007aa: DUP2
000007ab: AND
000007ac: PUSH2 0x07c8
000007af: JUMPI
000007b0: PUSH1 0x40
000007b2: MLOAD
000007b3: PUSH4 0x67db0845
000007b8: PUSH1 0xe1
000007ba: SHL
000007bb: DUP2
000007bc: MSTORE
000007bd: PUSH1 0x04
000007bf: ADD
000007c0: PUSH1 0x40
000007c2: MLOAD
000007c3: DUP1
000007c4: SWAP2
000007c5: SUB
000007c6: SWAP1
000007c7: REVERT
000007c8: JUMPDEST
000007c9: PUSH1 0x09
000007cb: SLOAD
000007cc: PUSH1 0x01
000007ce: PUSH1 0x01
000007d0: PUSH1 0xa0
000007d2: SHL
000007d3: SUB
000007d4: SWAP1
000007d5: DUP2
000007d6: AND
000007d7: SWAP1
000007d8: DUP3
000007d9: AND
000007da: SUB
000007db: PUSH2 0x07f7
000007de: JUMPI
000007df: PUSH1 0x40
000007e1: MLOAD
000007e2: PUSH4 0xc0af9fdf
000007e7: PUSH1 0xe0
000007e9: SHL
000007ea: DUP2
000007eb: MSTORE
000007ec: PUSH1 0x04
000007ee: ADD
000007ef: PUSH1 0x40
000007f1: MLOAD
000007f2: DUP1
000007f3: SWAP2
000007f4: SUB
000007f5: SWAP1
000007f6: REVERT
000007f7: JUMPDEST
000007f8: PUSH1 0x09
000007fa: DUP1
000007fb: SLOAD
000007fc: PUSH1 0x01
000007fe: PUSH1 0x01
00000800: PUSH1 0xa0
00000802: SHL
00000803: SUB
00000804: NOT
00000805: AND
00000806: PUSH1 0x01
00000808: PUSH1 0x01
0000080a: PUSH1 0xa0
0000080c: SHL
0000080d: SUB
0000080e: DUP4
0000080f: AND
00000810: SWAP1
00000811: DUP2
00000812: OR
00000813: SWAP1
00000814: SWAP2
00000815: SSTORE
00000816: PUSH1 0x40
00000818: MLOAD
00000819: SWAP1
0000081a: DUP2
0000081b: MSTORE
0000081c: PUSH32 0x5719a5656c5cfdaafa148ecf366fd3b0a7fae06449ce2a46225977fb7417e29d
0000083d: SWAP1
0000083e: PUSH1 0x20
00000840: ADD
00000841: PUSH1 0x40
00000843: MLOAD
00000844: DUP1
00000845: SWAP2
00000846: SUB
00000847: SWAP1
00000848: LOG1
00000849: POP
0000084a: JUMP
0000084b: JUMPDEST
0000084c: PUSH1 0x00
0000084e: PUSH2 0x085a
00000851: CALLER
00000852: DUP10
00000853: DUP10
00000854: DUP8
00000855: DUP11
00000856: PUSH2 0x106f
00000859: JUMP
0000085a: JUMPDEST
0000085b: PUSH1 0x40
0000085d: MLOAD
0000085e: PUSH12 0xffffffffffffffffffffffff
0000086b: NOT
0000086c: PUSH1 0x60
0000086e: DUP10
0000086f: DUP2
00000870: SHL
00000871: DUP3
00000872: AND
00000873: PUSH1 0x20
00000875: DUP5
00000876: ADD
00000877: MSTORE
00000878: PUSH1 0x34
0000087a: DUP4
0000087b: ADD
0000087c: DUP9
0000087d: SWAP1
0000087e: MSTORE
0000087f: ADDRESS
00000880: SWAP1
00000881: SHL
00000882: AND
00000883: PUSH1 0x54
00000885: DUP3
00000886: ADD
00000887: MSTORE
00000888: CHAINID
00000889: PUSH1 0x68
0000088b: DUP3
0000088c: ADD
0000088d: MSTORE
0000088e: SWAP1
0000088f: SWAP2
00000890: POP
00000891: PUSH1 0x00
00000893: SWAP1
00000894: PUSH1 0x88
00000896: ADD
00000897: PUSH1 0x40
00000899: DUP1
0000089a: MLOAD
0000089b: PUSH1 0x1f
0000089d: NOT
0000089e: DUP2
0000089f: DUP5
000008a0: SUB
000008a1: ADD
000008a2: DUP2
000008a3: MSTORE
000008a4: SWAP1
000008a5: DUP3
000008a6: SWAP1
000008a7: MSTORE
000008a8: DUP1
000008a9: MLOAD
000008aa: PUSH1 0x20
000008ac: SWAP2
000008ad: DUP3
000008ae: ADD
000008af: KECCAK256
000008b0: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
000008d1: SWAP2
000008d2: DUP4
000008d3: ADD
000008d4: SWAP2
000008d5: SWAP1
000008d6: SWAP2
000008d7: MSTORE
000008d8: PUSH1 0x3c
000008da: DUP3
000008db: ADD
000008dc: MSTORE
000008dd: PUSH1 0x5c
000008df: ADD
000008e0: PUSH1 0x40
000008e2: DUP1
000008e3: MLOAD
000008e4: PUSH1 0x1f
000008e6: NOT
000008e7: DUP2
000008e8: DUP5
000008e9: SUB
000008ea: ADD
000008eb: DUP2
000008ec: MSTORE
000008ed: DUP3
000008ee: DUP3
000008ef: MSTORE
000008f0: DUP1
000008f1: MLOAD
000008f2: PUSH1 0x20
000008f4: SWAP2
000008f5: DUP3
000008f6: ADD
000008f7: KECCAK256
000008f8: PUSH1 0x09
000008fa: SLOAD
000008fb: PUSH1 0x1f
000008fd: DUP9
000008fe: ADD
000008ff: DUP4
00000900: SWAP1
00000901: DIV
00000902: DUP4
00000903: MUL
00000904: DUP6
00000905: ADD
00000906: DUP4
00000907: ADD
00000908: SWAP1
00000909: SWAP4
0000090a: MSTORE
0000090b: DUP7
0000090c: DUP5
0000090d: MSTORE
0000090e: SWAP4
0000090f: POP
00000910: PUSH2 0x0941
00000913: SWAP3
00000914: PUSH1 0x01
00000916: PUSH1 0x01
00000918: PUSH1 0xa0
0000091a: SHL
0000091b: SUB
0000091c: SWAP1
0000091d: SWAP3
0000091e: AND
0000091f: SWAP2
00000920: DUP5
00000921: SWAP2
00000922: DUP9
00000923: SWAP1
00000924: DUP9
00000925: SWAP1
00000926: DUP2
00000927: SWAP1
00000928: DUP5
00000929: ADD
0000092a: DUP4
0000092b: DUP3
0000092c: DUP1
0000092d: DUP3
0000092e: DUP5
0000092f: CALLDATACOPY
00000930: PUSH1 0x00
00000932: SWAP3
00000933: ADD
00000934: SWAP2
00000935: SWAP1
00000936: SWAP2
00000937: MSTORE
00000938: POP
00000939: PUSH2 0x100b
0000093c: SWAP3
0000093d: POP
0000093e: POP
0000093f: POP
00000940: JUMP
00000941: JUMPDEST
00000942: PUSH2 0x095e
00000945: JUMPI
00000946: PUSH1 0x40
00000948: MLOAD
00000949: PUSH4 0x37e8456b
0000094e: PUSH1 0xe0
00000950: SHL
00000951: DUP2
00000952: MSTORE
00000953: PUSH1 0x04
00000955: ADD
00000956: PUSH1 0x40
00000958: MLOAD
00000959: DUP1
0000095a: SWAP2
0000095b: SUB
0000095c: SWAP1
0000095d: REVERT
0000095e: JUMPDEST
0000095f: PUSH2 0x096c
00000962: CALLER
00000963: DUP8
00000964: DUP10
00000965: DUP13
00000966: DUP13
00000967: DUP8
00000968: PUSH2 0x1218
0000096b: JUMP
0000096c: JUMPDEST
0000096d: POP
0000096e: POP
0000096f: POP
00000970: POP
00000971: POP
00000972: POP
00000973: POP
00000974: POP
00000975: POP
00000976: JUMP
00000977: JUMPDEST
00000978: PUSH2 0x097f
0000097b: PUSH2 0x0e46
0000097e: JUMP
0000097f: JUMPDEST
00000980: PUSH1 0x01
00000982: PUSH1 0x01
00000984: PUSH1 0xa0
00000986: SHL
00000987: SUB
00000988: DUP3
00000989: AND
0000098a: PUSH2 0x09a6
0000098d: JUMPI
0000098e: PUSH1 0x40
00000990: MLOAD
00000991: PUSH4 0x5f5d3399
00000996: PUSH1 0xe0
00000998: SHL
00000999: DUP2
0000099a: MSTORE
0000099b: PUSH1 0x04
0000099d: ADD
0000099e: PUSH1 0x40
000009a0: MLOAD
000009a1: DUP1
000009a2: SWAP2
000009a3: SUB
000009a4: SWAP1
000009a5: REVERT
000009a6: JUMPDEST
000009a7: PUSH1 0x01
000009a9: PUSH1 0x01
000009ab: PUSH1 0xa0
000009ad: SHL
000009ae: SUB
000009af: DUP3
000009b0: AND
000009b1: PUSH1 0x00
000009b3: SWAP1
000009b4: DUP2
000009b5: MSTORE
000009b6: PUSH1 0x05
000009b8: PUSH1 0x20
000009ba: MSTORE
000009bb: PUSH1 0x40
000009bd: SWAP1
000009be: KECCAK256
000009bf: SLOAD
000009c0: DUP2
000009c1: ISZERO
000009c2: ISZERO
000009c3: PUSH1 0xff
000009c5: SWAP1
000009c6: SWAP2
000009c7: AND
000009c8: ISZERO
000009c9: ISZERO
000009ca: SUB
000009cb: PUSH2 0x09e7
000009ce: JUMPI
000009cf: PUSH1 0x40
000009d1: MLOAD
000009d2: PUSH4 0x7565bf8f
000009d7: PUSH1 0xe1
000009d9: SHL
000009da: DUP2
000009db: MSTORE
000009dc: PUSH1 0x04
000009de: ADD
000009df: PUSH1 0x40
000009e1: MLOAD
000009e2: DUP1
000009e3: SWAP2
000009e4: SUB
000009e5: SWAP1
000009e6: REVERT
000009e7: JUMPDEST
000009e8: PUSH1 0x01
000009ea: PUSH1 0x01
000009ec: PUSH1 0xa0
000009ee: SHL
000009ef: SUB
000009f0: DUP3
000009f1: AND
000009f2: PUSH1 0x00
000009f4: DUP2
000009f5: DUP2
000009f6: MSTORE
000009f7: PUSH1 0x05
000009f9: PUSH1 0x20
000009fb: SWAP1
000009fc: DUP2
000009fd: MSTORE
000009fe: PUSH1 0x40
00000a00: SWAP2
00000a01: DUP3
00000a02: SWAP1
00000a03: KECCAK256
00000a04: DUP1
00000a05: SLOAD
00000a06: PUSH1 0xff
00000a08: NOT
00000a09: AND
00000a0a: DUP6
00000a0b: ISZERO
00000a0c: ISZERO
00000a0d: SWAP1
00000a0e: DUP2
00000a0f: OR
00000a10: SWAP1
00000a11: SWAP2
00000a12: SSTORE
00000a13: DUP3
00000a14: MLOAD
00000a15: SWAP4
00000a16: DUP5
00000a17: MSTORE
00000a18: SWAP1
00000a19: DUP4
00000a1a: ADD
00000a1b: MSTORE
00000a1c: PUSH32 0x303d37f32762627f23f474bb09535b3c1c7cb4f0f75c8960c42512b046ee24a8
00000a3d: SWAP2
00000a3e: ADD
00000a3f: JUMPDEST
00000a40: PUSH1 0x40
00000a42: MLOAD
00000a43: DUP1
00000a44: SWAP2
00000a45: SUB
00000a46: SWAP1
00000a47: LOG1
00000a48: POP
00000a49: POP
00000a4a: JUMP
00000a4b: JUMPDEST
00000a4c: PUSH2 0x0a53
00000a4f: PUSH2 0x0e46
00000a52: JUMP
00000a53: JUMPDEST
00000a54: PUSH1 0x01
00000a56: PUSH1 0x01
00000a58: PUSH1 0xa0
00000a5a: SHL
00000a5b: SUB
00000a5c: DUP3
00000a5d: AND
00000a5e: PUSH2 0x0a7a
00000a61: JUMPI
00000a62: PUSH1 0x40
00000a64: MLOAD
00000a65: PUSH4 0x1a86f045
00000a6a: PUSH1 0xe0
00000a6c: SHL
00000a6d: DUP2
00000a6e: MSTORE
00000a6f: PUSH1 0x04
00000a71: ADD
00000a72: PUSH1 0x40
00000a74: MLOAD
00000a75: DUP1
00000a76: SWAP2
00000a77: SUB
00000a78: SWAP1
00000a79: REVERT
00000a7a: JUMPDEST
00000a7b: PUSH1 0x01
00000a7d: PUSH1 0x01
00000a7f: PUSH1 0xa0
00000a81: SHL
00000a82: SUB
00000a83: DUP3
00000a84: AND
00000a85: PUSH1 0x00
00000a87: SWAP1
00000a88: DUP2
00000a89: MSTORE
00000a8a: PUSH1 0x07
00000a8c: PUSH1 0x20
00000a8e: MSTORE
00000a8f: PUSH1 0x40
00000a91: SWAP1
00000a92: KECCAK256
00000a93: SLOAD
00000a94: DUP2
00000a95: ISZERO
00000a96: ISZERO
00000a97: PUSH1 0xff
00000a99: SWAP1
00000a9a: SWAP2
00000a9b: AND
00000a9c: ISZERO
00000a9d: ISZERO
00000a9e: SUB
00000a9f: PUSH2 0x0abb
00000aa2: JUMPI
00000aa3: PUSH1 0x40
00000aa5: MLOAD
00000aa6: PUSH4 0x1e5a9769
00000aab: PUSH1 0xe3
00000aad: SHL
00000aae: DUP2
00000aaf: MSTORE
00000ab0: PUSH1 0x04
00000ab2: ADD
00000ab3: PUSH1 0x40
00000ab5: MLOAD
00000ab6: DUP1
00000ab7: SWAP2
00000ab8: SUB
00000ab9: SWAP1
00000aba: REVERT
00000abb: JUMPDEST
00000abc: PUSH1 0x01
00000abe: PUSH1 0x01
00000ac0: PUSH1 0xa0
00000ac2: SHL
00000ac3: SUB
00000ac4: DUP3
00000ac5: AND
00000ac6: PUSH1 0x00
00000ac8: DUP2
00000ac9: DUP2
00000aca: MSTORE
00000acb: PUSH1 0x07
00000acd: PUSH1 0x20
00000acf: SWAP1
00000ad0: DUP2
00000ad1: MSTORE
00000ad2: PUSH1 0x40
00000ad4: SWAP2
00000ad5: DUP3
00000ad6: SWAP1
00000ad7: KECCAK256
00000ad8: DUP1
00000ad9: SLOAD
00000ada: PUSH1 0xff
00000adc: NOT
00000add: AND
00000ade: DUP6
00000adf: ISZERO
00000ae0: ISZERO
00000ae1: SWAP1
00000ae2: DUP2
00000ae3: OR
00000ae4: SWAP1
00000ae5: SWAP2
00000ae6: SSTORE
00000ae7: DUP3
00000ae8: MLOAD
00000ae9: SWAP4
00000aea: DUP5
00000aeb: MSTORE
00000aec: SWAP1
00000aed: DUP4
00000aee: ADD
00000aef: MSTORE
00000af0: PUSH32 0x939ba97d9885a19f5539df8bc7d0698b79b1361793009861943fdd9806048033
00000b11: SWAP2
00000b12: ADD
00000b13: PUSH2 0x0a3f
00000b16: JUMP
00000b17: JUMPDEST
00000b18: PUSH2 0x0b1f
00000b1b: PUSH2 0x0e46
00000b1e: JUMP
00000b1f: JUMPDEST
00000b20: PUSH1 0x01
00000b22: DUP1
00000b23: SLOAD
00000b24: PUSH1 0x01
00000b26: PUSH1 0x01
00000b28: PUSH1 0xa0
00000b2a: SHL
00000b2b: SUB
00000b2c: DUP4
00000b2d: AND
00000b2e: PUSH1 0x01
00000b30: PUSH1 0x01
00000b32: PUSH1 0xa0
00000b34: SHL
00000b35: SUB
00000b36: NOT
00000b37: SWAP1
00000b38: SWAP2
00000b39: AND
00000b3a: DUP2
00000b3b: OR
00000b3c: SWAP1
00000b3d: SWAP2
00000b3e: SSTORE
00000b3f: PUSH2 0x0b50
00000b42: PUSH1 0x00
00000b44: SLOAD
00000b45: PUSH1 0x01
00000b47: PUSH1 0x01
00000b49: PUSH1 0xa0
00000b4b: SHL
00000b4c: SUB
00000b4d: AND
00000b4e: SWAP1
00000b4f: JUMP
00000b50: JUMPDEST
00000b51: PUSH1 0x01
00000b53: PUSH1 0x01
00000b55: PUSH1 0xa0
00000b57: SHL
00000b58: SUB
00000b59: AND
00000b5a: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700
00000b7b: PUSH1 0x40
00000b7d: MLOAD
00000b7e: PUSH1 0x40
00000b80: MLOAD
00000b81: DUP1
00000b82: SWAP2
00000b83: SUB
00000b84: SWAP1
00000b85: LOG3
00000b86: POP
00000b87: JUMP
00000b88: JUMPDEST
00000b89: DUP1
00000b8a: PUSH1 0x00
00000b8c: SUB
00000b8d: PUSH2 0x0ba9
00000b90: JUMPI
00000b91: PUSH1 0x40
00000b93: MLOAD
00000b94: PUSH4 0xb8fc0f3b
00000b99: PUSH1 0xe0
00000b9b: SHL
00000b9c: DUP2
00000b9d: MSTORE
00000b9e: PUSH1 0x04
00000ba0: ADD
00000ba1: PUSH1 0x40
00000ba3: MLOAD
00000ba4: DUP1
00000ba5: SWAP2
00000ba6: SUB
00000ba7: SWAP1
00000ba8: REVERT
00000ba9: JUMPDEST
00000baa: PUSH1 0x01
00000bac: PUSH1 0x01
00000bae: PUSH1 0xa0
00000bb0: SHL
00000bb1: SUB
00000bb2: DUP3
00000bb3: AND
00000bb4: PUSH1 0x00
00000bb6: SWAP1
00000bb7: DUP2
00000bb8: MSTORE
00000bb9: PUSH1 0x06
00000bbb: PUSH1 0x20
00000bbd: SWAP1
00000bbe: DUP2
00000bbf: MSTORE
00000bc0: PUSH1 0x40
00000bc2: DUP1
00000bc3: DUP4
00000bc4: KECCAK256
00000bc5: CALLER
00000bc6: DUP5
00000bc7: MSTORE
00000bc8: SWAP1
00000bc9: SWAP2
00000bca: MSTORE
00000bcb: DUP2
00000bcc: KECCAK256
00000bcd: DUP1
00000bce: SLOAD
00000bcf: DUP4
00000bd0: SWAP3
00000bd1: SWAP1
00000bd2: PUSH2 0x0bdc
00000bd5: SWAP1
00000bd6: DUP5
00000bd7: SWAP1
00000bd8: PUSH2 0x201f
00000bdb: JUMP
00000bdc: JUMPDEST
00000bdd: SWAP1
00000bde: SWAP2
00000bdf: SSTORE
00000be0: POP
00000be1: POP
00000be2: PUSH1 0x08
00000be4: DUP1
00000be5: SLOAD
00000be6: PUSH1 0x01
00000be8: PUSH1 0x01
00000bea: PUSH1 0xa0
00000bec: SHL
00000bed: SUB
00000bee: DUP5
00000bef: AND
00000bf0: SWAP2
00000bf1: CALLER
00000bf2: SWAP2
00000bf3: PUSH1 0x00
00000bf5: SWAP1
00000bf6: PUSH2 0x0bfe
00000bf9: SWAP1
00000bfa: PUSH2 0x2006
00000bfd: JUMP
00000bfe: JUMPDEST
00000bff: SWAP2
00000c00: DUP3
00000c01: SWAP1
00000c02: SSTORE
00000c03: POP
00000c04: PUSH1 0x40
00000c06: MLOAD
00000c07: DUP5
00000c08: DUP2
00000c09: MSTORE
00000c0a: PUSH32 0xfeb2000dca3e617cd6f3a8bbb63014bb54a124aac6ccbf73ee7229b4cd01f120
00000c2b: SWAP1
00000c2c: PUSH1 0x20
00000c2e: ADD
00000c2f: PUSH1 0x40
00000c31: MLOAD
00000c32: DUP1
00000c33: SWAP2
00000c34: SUB
00000c35: SWAP1
00000c36: LOG4
00000c37: PUSH2 0x0c4a
00000c3a: PUSH1 0x01
00000c3c: PUSH1 0x01
00000c3e: PUSH1 0xa0
00000c40: SHL
00000c41: SUB
00000c42: DUP4
00000c43: AND
00000c44: CALLER
00000c45: DUP4
00000c46: PUSH2 0x150b
00000c49: JUMP
00000c4a: JUMPDEST
00000c4b: POP
00000c4c: POP
00000c4d: JUMP
00000c4e: JUMPDEST
00000c4f: PUSH2 0x0c56
00000c52: PUSH2 0x0f0b
00000c55: JUMP
00000c56: JUMPDEST
00000c57: CALLVALUE
00000c58: PUSH1 0x00
00000c5a: SUB
00000c5b: PUSH2 0x0c77
00000c5e: JUMPI
00000c5f: PUSH1 0x40
00000c61: MLOAD
00000c62: PUSH4 0x18bb7589
00000c67: PUSH1 0xe1
00000c69: SHL
00000c6a: DUP2
00000c6b: MSTORE
00000c6c: PUSH1 0x04
00000c6e: ADD
00000c6f: PUSH1 0x40
00000c71: MLOAD
00000c72: DUP1
00000c73: SWAP2
00000c74: SUB
00000c75: SWAP1
00000c76: REVERT
00000c77: JUMPDEST
00000c78: PUSH1 0x01
00000c7a: PUSH1 0x01
00000c7c: PUSH1 0xa0
00000c7e: SHL
00000c7f: SUB
00000c80: DUP2
00000c81: AND
00000c82: PUSH2 0x0c9d
00000c85: JUMPI
00000c86: PUSH1 0x40
00000c88: MLOAD
00000c89: PUSH3 0xbbe085
00000c8d: PUSH1 0xe3
00000c8f: SHL
00000c90: DUP2
00000c91: MSTORE
00000c92: PUSH1 0x04
00000c94: ADD
00000c95: PUSH1 0x40
00000c97: MLOAD
00000c98: DUP1
00000c99: SWAP2
00000c9a: SUB
00000c9b: SWAP1
00000c9c: REVERT
00000c9d: JUMPDEST
00000c9e: PUSH1 0x01
00000ca0: PUSH1 0x01
00000ca2: PUSH1 0xa0
00000ca4: SHL
00000ca5: SUB
00000ca6: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000cc7: AND
00000cc8: PUSH1 0x00
00000cca: SWAP1
00000ccb: DUP2
00000ccc: MSTORE
00000ccd: PUSH1 0x05
00000ccf: PUSH1 0x20
00000cd1: MSTORE
00000cd2: PUSH1 0x40
00000cd4: SWAP1
00000cd5: KECCAK256
00000cd6: SLOAD
00000cd7: PUSH1 0xff
00000cd9: AND
00000cda: PUSH2 0x0cf6
00000cdd: JUMPI
00000cde: PUSH1 0x40
00000ce0: MLOAD
00000ce1: PUSH4 0x072b889f
00000ce6: PUSH1 0xe1
00000ce8: SHL
00000ce9: DUP2
00000cea: MSTORE
00000ceb: PUSH1 0x04
00000ced: ADD
00000cee: PUSH1 0x40
00000cf0: MLOAD
00000cf1: DUP1
00000cf2: SWAP2
00000cf3: SUB
00000cf4: SWAP1
00000cf5: REVERT
00000cf6: JUMPDEST
00000cf7: PUSH1 0x01
00000cf9: PUSH1 0x01
00000cfb: PUSH1 0xa0
00000cfd: SHL
00000cfe: SUB
00000cff: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000d20: DUP2
00000d21: AND
00000d22: PUSH1 0x00
00000d24: SWAP1
00000d25: DUP2
00000d26: MSTORE
00000d27: PUSH1 0x06
00000d29: PUSH1 0x20
00000d2b: SWAP1
00000d2c: DUP2
00000d2d: MSTORE
00000d2e: PUSH1 0x40
00000d30: DUP1
00000d31: DUP4
00000d32: KECCAK256
00000d33: SWAP4
00000d34: DUP6
00000d35: AND
00000d36: DUP4
00000d37: MSTORE
00000d38: SWAP3
00000d39: SWAP1
00000d3a: MSTORE
00000d3b: SWAP1
00000d3c: DUP2
00000d3d: KECCAK256
00000d3e: DUP1
00000d3f: SLOAD
00000d40: CALLVALUE
00000d41: SWAP3
00000d42: SWAP1
00000d43: PUSH2 0x0d4d
00000d46: SWAP1
00000d47: DUP5
00000d48: SWAP1
00000d49: PUSH2 0x1ff3
00000d4c: JUMP
00000d4d: JUMPDEST
00000d4e: SWAP3
00000d4f: POP
00000d50: POP
00000d51: DUP2
00000d52: SWAP1
00000d53: SSTORE
00000d54: POP
00000d55: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000d76: PUSH1 0x01
00000d78: PUSH1 0x01
00000d7a: PUSH1 0xa0
00000d7c: SHL
00000d7d: SUB
00000d7e: AND
00000d7f: DUP2
00000d80: PUSH1 0x01
00000d82: PUSH1 0x01
00000d84: PUSH1 0xa0
00000d86: SHL
00000d87: SUB
00000d88: AND
00000d89: PUSH1 0x08
00000d8b: PUSH1 0x00
00000d8d: DUP2
00000d8e: SLOAD
00000d8f: PUSH2 0x0d97
00000d92: SWAP1
00000d93: PUSH2 0x2006
00000d96: JUMP
00000d97: JUMPDEST
00000d98: SWAP2
00000d99: DUP3
00000d9a: SWAP1
00000d9b: SSTORE
00000d9c: POP
00000d9d: PUSH1 0x40
00000d9f: MLOAD
00000da0: CALLVALUE
00000da1: DUP2
00000da2: MSTORE
00000da3: PUSH32 0x2c0f148b435140de488c1b34647f1511c646f7077e87007bacf22ef9977a16d8
00000dc4: SWAP1
00000dc5: PUSH1 0x20
00000dc7: ADD
00000dc8: PUSH1 0x40
00000dca: MLOAD
00000dcb: DUP1
00000dcc: SWAP2
00000dcd: SUB
00000dce: SWAP1
00000dcf: LOG4
00000dd0: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000df1: PUSH1 0x01
00000df3: PUSH1 0x01
00000df5: PUSH1 0xa0
00000df7: SHL
00000df8: SUB
00000df9: AND
00000dfa: PUSH4 0xd0e30db0
00000dff: CALLVALUE
00000e00: PUSH1 0x40
00000e02: MLOAD
00000e03: DUP3
00000e04: PUSH4 0xffffffff
00000e09: AND
00000e0a: PUSH1 0xe0
00000e0c: SHL
00000e0d: DUP2
00000e0e: MSTORE
00000e0f: PUSH1 0x04
00000e11: ADD
00000e12: PUSH1 0x00
00000e14: PUSH1 0x40
00000e16: MLOAD
00000e17: DUP1
00000e18: DUP4
00000e19: SUB
00000e1a: DUP2
00000e1b: DUP6
00000e1c: DUP9
00000e1d: DUP1
00000e1e: EXTCODESIZE
00000e1f: ISZERO
00000e20: DUP1
00000e21: ISZERO
00000e22: PUSH2 0x0e2a
00000e25: JUMPI
00000e26: PUSH1 0x00
00000e28: DUP1
00000e29: REVERT
00000e2a: JUMPDEST
00000e2b: POP
00000e2c: GAS
00000e2d: CALL
00000e2e: ISZERO
00000e2f: DUP1
00000e30: ISZERO
00000e31: PUSH2 0x0e3e
00000e34: JUMPI
00000e35: RETURNDATASIZE
00000e36: PUSH1 0x00
00000e38: DUP1
00000e39: RETURNDATACOPY
00000e3a: RETURNDATASIZE
00000e3b: PUSH1 0x00
00000e3d: REVERT
00000e3e: JUMPDEST
00000e3f: POP
00000e40: POP
00000e41: POP
00000e42: POP
00000e43: POP
00000e44: POP
00000e45: JUMP
00000e46: JUMPDEST
00000e47: PUSH1 0x00
00000e49: SLOAD
00000e4a: PUSH1 0x01
00000e4c: PUSH1 0x01
00000e4e: PUSH1 0xa0
00000e50: SHL
00000e51: SUB
00000e52: AND
00000e53: CALLER
00000e54: EQ
00000e55: PUSH2 0x0463
00000e58: JUMPI
00000e59: PUSH1 0x40
00000e5b: MLOAD
00000e5c: PUSH4 0x118cdaa7
00000e61: PUSH1 0xe0
00000e63: SHL
00000e64: DUP2
00000e65: MSTORE
00000e66: CALLER
00000e67: PUSH1 0x04
00000e69: DUP3
00000e6a: ADD
00000e6b: MSTORE
00000e6c: PUSH1 0x24
00000e6e: ADD
00000e6f: PUSH2 0x04b2
00000e72: JUMP
00000e73: JUMPDEST
00000e74: PUSH1 0x01
00000e76: SLOAD
00000e77: PUSH1 0x01
00000e79: PUSH1 0xa0
00000e7b: SHL
00000e7c: SWAP1
00000e7d: DIV
00000e7e: PUSH1 0xff
00000e80: AND
00000e81: PUSH2 0x0463
00000e84: JUMPI
00000e85: PUSH1 0x40
00000e87: MLOAD
00000e88: PUSH4 0x8dfc202b
00000e8d: PUSH1 0xe0
00000e8f: SHL
00000e90: DUP2
00000e91: MSTORE
00000e92: PUSH1 0x04
00000e94: ADD
00000e95: PUSH1 0x40
00000e97: MLOAD
00000e98: DUP1
00000e99: SWAP2
00000e9a: SUB
00000e9b: SWAP1
00000e9c: REVERT
00000e9d: JUMPDEST
00000e9e: PUSH2 0x0ea5
00000ea1: PUSH2 0x0e73
00000ea4: JUMP
00000ea5: JUMPDEST
00000ea6: PUSH1 0x01
00000ea8: DUP1
00000ea9: SLOAD
00000eaa: PUSH1 0xff
00000eac: PUSH1 0xa0
00000eae: SHL
00000eaf: NOT
00000eb0: AND
00000eb1: SWAP1
00000eb2: SSTORE
00000eb3: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
00000ed4: CALLER
00000ed5: JUMPDEST
00000ed6: PUSH1 0x40
00000ed8: MLOAD
00000ed9: PUSH1 0x01
00000edb: PUSH1 0x01
00000edd: PUSH1 0xa0
00000edf: SHL
00000ee0: SUB
00000ee1: SWAP1
00000ee2: SWAP2
00000ee3: AND
00000ee4: DUP2
00000ee5: MSTORE
00000ee6: PUSH1 0x20
00000ee8: ADD
00000ee9: PUSH1 0x40
00000eeb: MLOAD
00000eec: DUP1
00000eed: SWAP2
00000eee: SUB
00000eef: SWAP1
00000ef0: LOG1
00000ef1: JUMP
00000ef2: JUMPDEST
00000ef3: PUSH1 0x01
00000ef5: DUP1
00000ef6: SLOAD
00000ef7: PUSH1 0x01
00000ef9: PUSH1 0x01
00000efb: PUSH1 0xa0
00000efd: SHL
00000efe: SUB
00000eff: NOT
00000f00: AND
00000f01: SWAP1
00000f02: SSTORE
00000f03: PUSH2 0x04c4
00000f06: DUP2
00000f07: PUSH2 0x153c
00000f0a: JUMP
00000f0b: JUMPDEST
00000f0c: PUSH1 0x01
00000f0e: SLOAD
00000f0f: PUSH1 0x01
00000f11: PUSH1 0xa0
00000f13: SHL
00000f14: SWAP1
00000f15: DIV
00000f16: PUSH1 0xff
00000f18: AND
00000f19: ISZERO
00000f1a: PUSH2 0x0463
00000f1d: JUMPI
00000f1e: PUSH1 0x40
00000f20: MLOAD
00000f21: PUSH4 0xd93c0665
00000f26: PUSH1 0xe0
00000f28: SHL
00000f29: DUP2
00000f2a: MSTORE
00000f2b: PUSH1 0x04
00000f2d: ADD
00000f2e: PUSH1 0x40
00000f30: MLOAD
00000f31: DUP1
00000f32: SWAP2
00000f33: SUB
00000f34: SWAP1
00000f35: REVERT
00000f36: JUMPDEST
00000f37: PUSH2 0x0f3e
00000f3a: PUSH2 0x0f0b
00000f3d: JUMP
00000f3e: JUMPDEST
00000f3f: PUSH1 0x01
00000f41: DUP1
00000f42: SLOAD
00000f43: PUSH1 0xff
00000f45: PUSH1 0xa0
00000f47: SHL
00000f48: NOT
00000f49: AND
00000f4a: PUSH1 0x01
00000f4c: PUSH1 0xa0
00000f4e: SHL
00000f4f: OR
00000f50: SWAP1
00000f51: SSTORE
00000f52: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
00000f73: PUSH2 0x0ed5
00000f76: CALLER
00000f77: SWAP1
00000f78: JUMP
00000f79: JUMPDEST
00000f7a: PUSH1 0x60
00000f7c: PUSH2 0x0fa6
00000f7f: PUSH32 0x5a74616b696e67506f6f6c00000000000000000000000000000000000000000b
00000fa0: PUSH1 0x02
00000fa2: PUSH2 0x158c
00000fa5: JUMP
00000fa6: JUMPDEST
00000fa7: SWAP1
00000fa8: POP
00000fa9: SWAP1
00000faa: JUMP
00000fab: JUMPDEST
00000fac: PUSH1 0x60
00000fae: PUSH2 0x0fa6
00000fb1: PUSH32 0x3100000000000000000000000000000000000000000000000000000000000001
00000fd2: PUSH1 0x03
00000fd4: PUSH2 0x158c
00000fd7: JUMP
00000fd8: JUMPDEST
00000fd9: PUSH1 0x00
00000fdb: PUSH2 0x1005
00000fde: PUSH2 0x0fe5
00000fe1: PUSH2 0x1638
00000fe4: JUMP
00000fe5: JUMPDEST
00000fe6: DUP4
00000fe7: PUSH1 0x40
00000fe9: MLOAD
00000fea: PUSH2 0x1901
00000fed: PUSH1 0xf0
00000fef: SHL
00000ff0: DUP2
00000ff1: MSTORE
00000ff2: PUSH1 0x02
00000ff4: DUP2
00000ff5: ADD
00000ff6: SWAP3
00000ff7: SWAP1
00000ff8: SWAP3
00000ff9: MSTORE
00000ffa: PUSH1 0x22
00000ffc: DUP3
00000ffd: ADD
00000ffe: MSTORE
00000fff: PUSH1 0x42
00001001: SWAP1
00001002: KECCAK256
00001003: SWAP1
00001004: JUMP
00001005: JUMPDEST
00001006: SWAP3
00001007: SWAP2
00001008: POP
00001009: POP
0000100a: JUMP
0000100b: JUMPDEST
0000100c: PUSH1 0x00
0000100e: DUP1
0000100f: PUSH1 0x00
00001011: PUSH2 0x101a
00001014: DUP6
00001015: DUP6
00001016: PUSH2 0x1763
00001019: JUMP
0000101a: JUMPDEST
0000101b: POP
0000101c: SWAP1
0000101d: SWAP3
0000101e: POP
0000101f: SWAP1
00001020: POP
00001021: PUSH1 0x00
00001023: DUP2
00001024: PUSH1 0x03
00001026: DUP2
00001027: GT
00001028: ISZERO
00001029: PUSH2 0x1034
0000102c: JUMPI
0000102d: PUSH2 0x1034
00001030: PUSH2 0x2032
00001033: JUMP
00001034: JUMPDEST
00001035: EQ
00001036: DUP1
00001037: ISZERO
00001038: PUSH2 0x1052
0000103b: JUMPI
0000103c: POP
0000103d: DUP6
0000103e: PUSH1 0x01
00001040: PUSH1 0x01
00001042: PUSH1 0xa0
00001044: SHL
00001045: SUB
00001046: AND
00001047: DUP3
00001048: PUSH1 0x01
0000104a: PUSH1 0x01
0000104c: PUSH1 0xa0
0000104e: SHL
0000104f: SUB
00001050: AND
00001051: EQ
00001052: JUMPDEST
00001053: DUP1
00001054: PUSH2 0x1063
00001057: JUMPI
00001058: POP
00001059: PUSH2 0x1063
0000105c: DUP7
0000105d: DUP7
0000105e: DUP7
0000105f: PUSH2 0x17b0
00001062: JUMP
00001063: JUMPDEST
00001064: SWAP3
00001065: POP
00001066: POP
00001067: POP
00001068: JUMPDEST
00001069: SWAP4
0000106a: SWAP3
0000106b: POP
0000106c: POP
0000106d: POP
0000106e: JUMP
0000106f: JUMPDEST
00001070: PUSH1 0x60
00001072: DUP4
00001073: PUSH1 0x00
00001075: DUP2
00001076: SWAP1
00001077: SUB
00001078: PUSH2 0x1094
0000107b: JUMPI
0000107c: PUSH1 0x40
0000107e: MLOAD
0000107f: PUSH4 0xe78703a3
00001084: PUSH1 0xe0
00001086: SHL
00001087: DUP2
00001088: MSTORE
00001089: PUSH1 0x04
0000108b: ADD
0000108c: PUSH1 0x40
0000108e: MLOAD
0000108f: DUP1
00001090: SWAP2
00001091: SUB
00001092: SWAP1
00001093: REVERT
00001094: JUMPDEST
00001095: DUP1
00001096: PUSH8 0xffffffffffffffff
0000109f: DUP2
000010a0: GT
000010a1: ISZERO
000010a2: PUSH2 0x10ad
000010a5: JUMPI
000010a6: PUSH2 0x10ad
000010a9: PUSH2 0x1cc4
000010ac: JUMP
000010ad: JUMPDEST
000010ae: PUSH1 0x40
000010b0: MLOAD
000010b1: SWAP1
000010b2: DUP1
000010b3: DUP3
000010b4: MSTORE
000010b5: DUP1
000010b6: PUSH1 0x20
000010b8: MUL
000010b9: PUSH1 0x20
000010bb: ADD
000010bc: DUP3
000010bd: ADD
000010be: PUSH1 0x40
000010c0: MSTORE
000010c1: DUP1
000010c2: ISZERO
000010c3: PUSH2 0x10d6
000010c6: JUMPI
000010c7: DUP2
000010c8: PUSH1 0x20
000010ca: ADD
000010cb: PUSH1 0x20
000010cd: DUP3
000010ce: MUL
000010cf: DUP1
000010d0: CALLDATASIZE
000010d1: DUP4
000010d2: CALLDATACOPY
000010d3: ADD
000010d4: SWAP1
000010d5: POP
000010d6: JUMPDEST
000010d7: POP
000010d8: SWAP2
000010d9: POP
000010da: PUSH1 0x00
000010dc: JUMPDEST
000010dd: DUP2
000010de: DUP2
000010df: LT
000010e0: ISZERO
000010e1: PUSH2 0x11b3
000010e4: JUMPI
000010e5: PUSH1 0x06
000010e7: PUSH1 0x00
000010e9: DUP9
000010ea: DUP9
000010eb: DUP5
000010ec: DUP2
000010ed: DUP2
000010ee: LT
000010ef: PUSH2 0x10fa
000010f2: JUMPI
000010f3: PUSH2 0x10fa
000010f6: PUSH2 0x2048
000010f9: JUMP
000010fa: JUMPDEST
000010fb: SWAP1
000010fc: POP
000010fd: PUSH1 0x20
000010ff: MUL
00001100: ADD
00001101: PUSH1 0x20
00001103: DUP2
00001104: ADD
00001105: SWAP1
00001106: PUSH2 0x110f
00001109: SWAP2
0000110a: SWAP1
0000110b: PUSH2 0x1b61
0000110e: JUMP
0000110f: JUMPDEST
00001110: PUSH1 0x01
00001112: PUSH1 0x01
00001114: PUSH1 0xa0
00001116: SHL
00001117: SUB
00001118: AND
00001119: PUSH1 0x01
0000111b: PUSH1 0x01
0000111d: PUSH1 0xa0
0000111f: SHL
00001120: SUB
00001121: AND
00001122: DUP2
00001123: MSTORE
00001124: PUSH1 0x20
00001126: ADD
00001127: SWAP1
00001128: DUP2
00001129: MSTORE
0000112a: PUSH1 0x20
0000112c: ADD
0000112d: PUSH1 0x00
0000112f: KECCAK256
00001130: PUSH1 0x00
00001132: DUP10
00001133: PUSH1 0x01
00001135: PUSH1 0x01
00001137: PUSH1 0xa0
00001139: SHL
0000113a: SUB
0000113b: AND
0000113c: PUSH1 0x01
0000113e: PUSH1 0x01
00001140: PUSH1 0xa0
00001142: SHL
00001143: SUB
00001144: AND
00001145: DUP2
00001146: MSTORE
00001147: PUSH1 0x20
00001149: ADD
0000114a: SWAP1
0000114b: DUP2
0000114c: MSTORE
0000114d: PUSH1 0x20
0000114f: ADD
00001150: PUSH1 0x00
00001152: KECCAK256
00001153: SLOAD
00001154: DUP4
00001155: DUP3
00001156: DUP2
00001157: MLOAD
00001158: DUP2
00001159: LT
0000115a: PUSH2 0x1165
0000115d: JUMPI
0000115e: PUSH2 0x1165
00001161: PUSH2 0x2048
00001164: JUMP
00001165: JUMPDEST
00001166: PUSH1 0x20
00001168: MUL
00001169: PUSH1 0x20
0000116b: ADD
0000116c: ADD
0000116d: DUP2
0000116e: DUP2
0000116f: MSTORE
00001170: POP
00001171: POP
00001172: DUP3
00001173: DUP2
00001174: DUP2
00001175: MLOAD
00001176: DUP2
00001177: LT
00001178: PUSH2 0x1183
0000117b: JUMPI
0000117c: PUSH2 0x1183
0000117f: PUSH2 0x2048
00001182: JUMP
00001183: JUMPDEST
00001184: PUSH1 0x20
00001186: MUL
00001187: PUSH1 0x20
00001189: ADD
0000118a: ADD
0000118b: MLOAD
0000118c: PUSH1 0x00
0000118e: SUB
0000118f: PUSH2 0x11ab
00001192: JUMPI
00001193: PUSH1 0x40
00001195: MLOAD
00001196: PUSH4 0xa809389f
0000119b: PUSH1 0xe0
0000119d: SHL
0000119e: DUP2
0000119f: MSTORE
000011a0: PUSH1 0x04
000011a2: ADD
000011a3: PUSH1 0x40
000011a5: MLOAD
000011a6: DUP1
000011a7: SWAP2
000011a8: SUB
000011a9: SWAP1
000011aa: REVERT
000011ab: JUMPDEST
000011ac: PUSH1 0x01
000011ae: ADD
000011af: PUSH2 0x10dc
000011b2: JUMP
000011b3: JUMPDEST
000011b4: POP
000011b5: DUP4
000011b6: TIMESTAMP
000011b7: LT
000011b8: PUSH2 0x11d4
000011bb: JUMPI
000011bc: PUSH1 0x40
000011be: MLOAD
000011bf: PUSH4 0x0819bdcd
000011c4: PUSH1 0xe0
000011c6: SHL
000011c7: DUP2
000011c8: MSTORE
000011c9: PUSH1 0x04
000011cb: ADD
000011cc: PUSH1 0x40
000011ce: MLOAD
000011cf: DUP1
000011d0: SWAP2
000011d1: SUB
000011d2: SWAP1
000011d3: REVERT
000011d4: JUMPDEST
000011d5: PUSH1 0x01
000011d7: PUSH1 0x01
000011d9: PUSH1 0xa0
000011db: SHL
000011dc: SUB
000011dd: DUP4
000011de: AND
000011df: PUSH1 0x00
000011e1: SWAP1
000011e2: DUP2
000011e3: MSTORE
000011e4: PUSH1 0x07
000011e6: PUSH1 0x20
000011e8: MSTORE
000011e9: PUSH1 0x40
000011eb: SWAP1
000011ec: KECCAK256
000011ed: SLOAD
000011ee: PUSH1 0xff
000011f0: AND
000011f1: ISZERO
000011f2: PUSH2 0x120e
000011f5: JUMPI
000011f6: PUSH1 0x40
000011f8: MLOAD
000011f9: PUSH4 0x9997d665
000011fe: PUSH1 0xe0
00001200: SHL
00001201: DUP2
00001202: MSTORE
00001203: PUSH1 0x04
00001205: ADD
00001206: PUSH1 0x40
00001208: MLOAD
00001209: DUP1
0000120a: SWAP2
0000120b: SUB
0000120c: SWAP1
0000120d: REVERT
0000120e: JUMPDEST
0000120f: POP
00001210: SWAP6
00001211: SWAP5
00001212: POP
00001213: POP
00001214: POP
00001215: POP
00001216: POP
00001217: JUMP
00001218: JUMPDEST
00001219: DUP2
0000121a: PUSH1 0x00
0000121c: JUMPDEST
0000121d: DUP2
0000121e: DUP2
0000121f: LT
00001220: ISZERO
00001221: PUSH2 0x12f7
00001224: JUMPI
00001225: PUSH1 0x06
00001227: PUSH1 0x00
00001229: DUP7
0000122a: DUP7
0000122b: DUP5
0000122c: DUP2
0000122d: DUP2
0000122e: LT
0000122f: PUSH2 0x123a
00001232: JUMPI
00001233: PUSH2 0x123a
00001236: PUSH2 0x2048
00001239: JUMP
0000123a: JUMPDEST
0000123b: SWAP1
0000123c: POP
0000123d: PUSH1 0x20
0000123f: MUL
00001240: ADD
00001241: PUSH1 0x20
00001243: DUP2
00001244: ADD
00001245: SWAP1
00001246: PUSH2 0x124f
00001249: SWAP2
0000124a: SWAP1
0000124b: PUSH2 0x1b61
0000124e: JUMP
0000124f: JUMPDEST
00001250: PUSH1 0x01
00001252: PUSH1 0x01
00001254: PUSH1 0xa0
00001256: SHL
00001257: SUB
00001258: SWAP1
00001259: DUP2
0000125a: AND
0000125b: DUP3
0000125c: MSTORE
0000125d: PUSH1 0x20
0000125f: DUP1
00001260: DUP4
00001261: ADD
00001262: SWAP4
00001263: SWAP1
00001264: SWAP4
00001265: MSTORE
00001266: PUSH1 0x40
00001268: SWAP2
00001269: DUP3
0000126a: ADD
0000126b: PUSH1 0x00
0000126d: SWAP1
0000126e: DUP2
0000126f: KECCAK256
00001270: SWAP2
00001271: DUP13
00001272: AND
00001273: DUP2
00001274: MSTORE
00001275: SWAP3
00001276: MSTORE
00001277: DUP2
00001278: KECCAK256
00001279: SLOAD
0000127a: SWAP1
0000127b: SUB
0000127c: PUSH2 0x1298
0000127f: JUMPI
00001280: PUSH1 0x40
00001282: MLOAD
00001283: PUSH4 0x23271fb5
00001288: PUSH1 0xe1
0000128a: SHL
0000128b: DUP2
0000128c: MSTORE
0000128d: PUSH1 0x04
0000128f: ADD
00001290: PUSH1 0x40
00001292: MLOAD
00001293: DUP1
00001294: SWAP2
00001295: SUB
00001296: SWAP1
00001297: REVERT
00001298: JUMPDEST
00001299: PUSH1 0x00
0000129b: PUSH1 0x06
0000129d: PUSH1 0x00
0000129f: DUP8
000012a0: DUP8
000012a1: DUP6
000012a2: DUP2
000012a3: DUP2
000012a4: LT
000012a5: PUSH2 0x12b0
000012a8: JUMPI
000012a9: PUSH2 0x12b0
000012ac: PUSH2 0x2048
000012af: JUMP
000012b0: JUMPDEST
000012b1: SWAP1
000012b2: POP
000012b3: PUSH1 0x20
000012b5: MUL
000012b6: ADD
000012b7: PUSH1 0x20
000012b9: DUP2
000012ba: ADD
000012bb: SWAP1
000012bc: PUSH2 0x12c5
000012bf: SWAP2
000012c0: SWAP1
000012c1: PUSH2 0x1b61
000012c4: JUMP
000012c5: JUMPDEST
000012c6: PUSH1 0x01
000012c8: PUSH1 0x01
000012ca: PUSH1 0xa0
000012cc: SHL
000012cd: SUB
000012ce: SWAP1
000012cf: DUP2
000012d0: AND
000012d1: DUP3
000012d2: MSTORE
000012d3: PUSH1 0x20
000012d5: DUP1
000012d6: DUP4
000012d7: ADD
000012d8: SWAP4
000012d9: SWAP1
000012da: SWAP4
000012db: MSTORE
000012dc: PUSH1 0x40
000012de: SWAP2
000012df: DUP3
000012e0: ADD
000012e1: PUSH1 0x00
000012e3: SWAP1
000012e4: DUP2
000012e5: KECCAK256
000012e6: SWAP2
000012e7: DUP14
000012e8: AND
000012e9: DUP2
000012ea: MSTORE
000012eb: SWAP3
000012ec: MSTORE
000012ed: SWAP1
000012ee: KECCAK256
000012ef: SSTORE
000012f0: PUSH1 0x01
000012f2: ADD
000012f3: PUSH2 0x121c
000012f6: JUMP
000012f7: JUMPDEST
000012f8: POP
000012f9: DUP7
000012fa: PUSH1 0x01
000012fc: PUSH1 0x01
000012fe: PUSH1 0xa0
00001300: SHL
00001301: SUB
00001302: AND
00001303: PUSH1 0x08
00001305: PUSH1 0x00
00001307: DUP2
00001308: SLOAD
00001309: PUSH2 0x1311
0000130c: SWAP1
0000130d: PUSH2 0x2006
00001310: JUMP
00001311: JUMPDEST
00001312: SWAP2
00001313: SWAP1
00001314: POP
00001315: DUP2
00001316: SWAP1
00001317: SSTORE
00001318: PUSH32 0x8ec7c0970f810f90b2e926cd4ee4f32efff0ef16fb5e08617c11b9fad14dfc00
00001339: DUP7
0000133a: DUP7
0000133b: DUP11
0000133c: DUP11
0000133d: DUP9
0000133e: PUSH1 0x40
00001340: MLOAD
00001341: PUSH2 0x134e
00001344: SWAP6
00001345: SWAP5
00001346: SWAP4
00001347: SWAP3
00001348: SWAP2
00001349: SWAP1
0000134a: PUSH2 0x209a
0000134d: JUMP
0000134e: JUMPDEST
0000134f: PUSH1 0x40
00001351: MLOAD
00001352: DUP1
00001353: SWAP2
00001354: SUB
00001355: SWAP1
00001356: LOG3
00001357: PUSH1 0x00
00001359: JUMPDEST
0000135a: DUP2
0000135b: DUP2
0000135c: LT
0000135d: ISZERO
0000135e: PUSH2 0x142e
00001361: JUMPI
00001362: DUP5
00001363: DUP5
00001364: DUP3
00001365: DUP2
00001366: DUP2
00001367: LT
00001368: PUSH2 0x1373
0000136b: JUMPI
0000136c: PUSH2 0x1373
0000136f: PUSH2 0x2048
00001372: JUMP
00001373: JUMPDEST
00001374: SWAP1
00001375: POP
00001376: PUSH1 0x20
00001378: MUL
00001379: ADD
0000137a: PUSH1 0x20
0000137c: DUP2
0000137d: ADD
0000137e: SWAP1
0000137f: PUSH2 0x1388
00001382: SWAP2
00001383: SWAP1
00001384: PUSH2 0x1b61
00001387: JUMP
00001388: JUMPDEST
00001389: PUSH1 0x01
0000138b: PUSH1 0x01
0000138d: PUSH1 0xa0
0000138f: SHL
00001390: SUB
00001391: AND
00001392: PUSH4 0x095ea7b3
00001397: DUP8
00001398: DUP6
00001399: DUP5
0000139a: DUP2
0000139b: MLOAD
0000139c: DUP2
0000139d: LT
0000139e: PUSH2 0x13a9
000013a1: JUMPI
000013a2: PUSH2 0x13a9
000013a5: PUSH2 0x2048
000013a8: JUMP
000013a9: JUMPDEST
000013aa: PUSH1 0x20
000013ac: MUL
000013ad: PUSH1 0x20
000013af: ADD
000013b0: ADD
000013b1: MLOAD
000013b2: PUSH1 0x40
000013b4: MLOAD
000013b5: DUP4
000013b6: PUSH4 0xffffffff
000013bb: AND
000013bc: PUSH1 0xe0
000013be: SHL
000013bf: DUP2
000013c0: MSTORE
000013c1: PUSH1 0x04
000013c3: ADD
000013c4: PUSH2 0x13e2
000013c7: SWAP3
000013c8: SWAP2
000013c9: SWAP1
000013ca: PUSH1 0x01
000013cc: PUSH1 0x01
000013ce: PUSH1 0xa0
000013d0: SHL
000013d1: SUB
000013d2: SWAP3
000013d3: SWAP1
000013d4: SWAP3
000013d5: AND
000013d6: DUP3
000013d7: MSTORE
000013d8: PUSH1 0x20
000013da: DUP3
000013db: ADD
000013dc: MSTORE
000013dd: PUSH1 0x40
000013df: ADD
000013e0: SWAP1
000013e1: JUMP
000013e2: JUMPDEST
000013e3: PUSH1 0x20
000013e5: PUSH1 0x40
000013e7: MLOAD
000013e8: DUP1
000013e9: DUP4
000013ea: SUB
000013eb: DUP2
000013ec: PUSH1 0x00
000013ee: DUP8
000013ef: GAS
000013f0: CALL
000013f1: ISZERO
000013f2: DUP1
000013f3: ISZERO
000013f4: PUSH2 0x1401
000013f7: JUMPI
000013f8: RETURNDATASIZE
000013f9: PUSH1 0x00
000013fb: DUP1
000013fc: RETURNDATACOPY
000013fd: RETURNDATASIZE
000013fe: PUSH1 0x00
00001400: REVERT
00001401: JUMPDEST
00001402: POP
00001403: POP
00001404: POP
00001405: POP
00001406: PUSH1 0x40
00001408: MLOAD
00001409: RETURNDATASIZE
0000140a: PUSH1 0x1f
0000140c: NOT
0000140d: PUSH1 0x1f
0000140f: DUP3
00001410: ADD
00001411: AND
00001412: DUP3
00001413: ADD
00001414: DUP1
00001415: PUSH1 0x40
00001417: MSTORE
00001418: POP
00001419: DUP2
0000141a: ADD
0000141b: SWAP1
0000141c: PUSH2 0x1425
0000141f: SWAP2
00001420: SWAP1
00001421: PUSH2 0x20e3
00001424: JUMP
00001425: JUMPDEST
00001426: POP
00001427: PUSH1 0x01
00001429: ADD
0000142a: PUSH2 0x1359
0000142d: JUMP
0000142e: JUMPDEST
0000142f: POP
00001430: PUSH1 0x40
00001432: MLOAD
00001433: PUSH4 0x55e663bf
00001438: PUSH1 0xe1
0000143a: SHL
0000143b: DUP2
0000143c: MSTORE
0000143d: PUSH1 0x01
0000143f: PUSH1 0x01
00001441: PUSH1 0xa0
00001443: SHL
00001444: SUB
00001445: DUP7
00001446: AND
00001447: SWAP1
00001448: PUSH4 0xabccc77e
0000144d: SWAP1
0000144e: PUSH2 0x1463
00001451: SWAP1
00001452: DUP11
00001453: SWAP1
00001454: DUP9
00001455: SWAP1
00001456: DUP9
00001457: SWAP1
00001458: DUP13
00001459: SWAP1
0000145a: DUP10
0000145b: SWAP1
0000145c: PUSH1 0x04
0000145e: ADD
0000145f: PUSH2 0x2100
00001462: JUMP
00001463: JUMPDEST
00001464: PUSH1 0x00
00001466: PUSH1 0x40
00001468: MLOAD
00001469: DUP1
0000146a: DUP4
0000146b: SUB
0000146c: DUP2
0000146d: PUSH1 0x00
0000146f: DUP8
00001470: DUP1
00001471: EXTCODESIZE
00001472: ISZERO
00001473: DUP1
00001474: ISZERO
00001475: PUSH2 0x147d
00001478: JUMPI
00001479: PUSH1 0x00
0000147b: DUP1
0000147c: REVERT
0000147d: JUMPDEST
0000147e: POP
0000147f: GAS
00001480: CALL
00001481: ISZERO
00001482: DUP1
00001483: ISZERO
00001484: PUSH2 0x1491
00001487: JUMPI
00001488: RETURNDATASIZE
00001489: PUSH1 0x00
0000148b: DUP1
0000148c: RETURNDATACOPY
0000148d: RETURNDATASIZE
0000148e: PUSH1 0x00
00001490: REVERT
00001491: JUMPDEST
00001492: POP
00001493: POP
00001494: POP
00001495: POP
00001496: POP
00001497: POP
00001498: POP
00001499: POP
0000149a: POP
0000149b: POP
0000149c: POP
0000149d: JUMP
0000149e: JUMPDEST
0000149f: PUSH1 0x40
000014a1: MLOAD
000014a2: PUSH1 0x01
000014a4: PUSH1 0x01
000014a6: PUSH1 0xa0
000014a8: SHL
000014a9: SUB
000014aa: DUP5
000014ab: DUP2
000014ac: AND
000014ad: PUSH1 0x24
000014af: DUP4
000014b0: ADD
000014b1: MSTORE
000014b2: DUP4
000014b3: DUP2
000014b4: AND
000014b5: PUSH1 0x44
000014b7: DUP4
000014b8: ADD
000014b9: MSTORE
000014ba: PUSH1 0x64
000014bc: DUP3
000014bd: ADD
000014be: DUP4
000014bf: SWAP1
000014c0: MSTORE
000014c1: PUSH2 0x1505
000014c4: SWAP2
000014c5: DUP7
000014c6: SWAP2
000014c7: DUP3
000014c8: AND
000014c9: SWAP1
000014ca: PUSH4 0x23b872dd
000014cf: SWAP1
000014d0: PUSH1 0x84
000014d2: ADD
000014d3: JUMPDEST
000014d4: PUSH1 0x40
000014d6: MLOAD
000014d7: PUSH1 0x20
000014d9: DUP2
000014da: DUP4
000014db: SUB
000014dc: SUB
000014dd: DUP2
000014de: MSTORE
000014df: SWAP1
000014e0: PUSH1 0x40
000014e2: MSTORE
000014e3: SWAP2
000014e4: POP
000014e5: PUSH1 0xe0
000014e7: SHL
000014e8: PUSH1 0x20
000014ea: DUP3
000014eb: ADD
000014ec: DUP1
000014ed: MLOAD
000014ee: PUSH1 0x01
000014f0: PUSH1 0x01
000014f2: PUSH1 0xe0
000014f4: SHL
000014f5: SUB
000014f6: DUP4
000014f7: DUP2
000014f8: DUP4
000014f9: AND
000014fa: OR
000014fb: DUP4
000014fc: MSTORE
000014fd: POP
000014fe: POP
000014ff: POP
00001500: POP
00001501: PUSH2 0x188b
00001504: JUMP
00001505: JUMPDEST
00001506: POP
00001507: POP
00001508: POP
00001509: POP
0000150a: JUMP
0000150b: JUMPDEST
0000150c: PUSH1 0x40
0000150e: MLOAD
0000150f: PUSH1 0x01
00001511: PUSH1 0x01
00001513: PUSH1 0xa0
00001515: SHL
00001516: SUB
00001517: DUP4
00001518: DUP2
00001519: AND
0000151a: PUSH1 0x24
0000151c: DUP4
0000151d: ADD
0000151e: MSTORE
0000151f: PUSH1 0x44
00001521: DUP3
00001522: ADD
00001523: DUP4
00001524: SWAP1
00001525: MSTORE
00001526: PUSH2 0x0794
00001529: SWAP2
0000152a: DUP6
0000152b: SWAP2
0000152c: DUP3
0000152d: AND
0000152e: SWAP1
0000152f: PUSH4 0xa9059cbb
00001534: SWAP1
00001535: PUSH1 0x64
00001537: ADD
00001538: PUSH2 0x14d3
0000153b: JUMP
0000153c: JUMPDEST
0000153d: PUSH1 0x00
0000153f: DUP1
00001540: SLOAD
00001541: PUSH1 0x01
00001543: PUSH1 0x01
00001545: PUSH1 0xa0
00001547: SHL
00001548: SUB
00001549: DUP4
0000154a: DUP2
0000154b: AND
0000154c: PUSH1 0x01
0000154e: PUSH1 0x01
00001550: PUSH1 0xa0
00001552: SHL
00001553: SUB
00001554: NOT
00001555: DUP4
00001556: AND
00001557: DUP2
00001558: OR
00001559: DUP5
0000155a: SSTORE
0000155b: PUSH1 0x40
0000155d: MLOAD
0000155e: SWAP2
0000155f: SWAP1
00001560: SWAP3
00001561: AND
00001562: SWAP3
00001563: DUP4
00001564: SWAP2
00001565: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001586: SWAP2
00001587: SWAP1
00001588: LOG3
00001589: POP
0000158a: POP
0000158b: JUMP
0000158c: JUMPDEST
0000158d: PUSH1 0x60
0000158f: PUSH1 0xff
00001591: DUP4
00001592: EQ
00001593: PUSH2 0x15a6
00001596: JUMPI
00001597: PUSH2 0x159f
0000159a: DUP4
0000159b: PUSH2 0x18ee
0000159e: JUMP
0000159f: JUMPDEST
000015a0: SWAP1
000015a1: POP
000015a2: PUSH2 0x1005
000015a5: JUMP
000015a6: JUMPDEST
000015a7: DUP2
000015a8: DUP1
000015a9: SLOAD
000015aa: PUSH2 0x15b2
000015ad: SWAP1
000015ae: PUSH2 0x214a
000015b1: JUMP
000015b2: JUMPDEST
000015b3: DUP1
000015b4: PUSH1 0x1f
000015b6: ADD
000015b7: PUSH1 0x20
000015b9: DUP1
000015ba: SWAP2
000015bb: DIV
000015bc: MUL
000015bd: PUSH1 0x20
000015bf: ADD
000015c0: PUSH1 0x40
000015c2: MLOAD
000015c3: SWAP1
000015c4: DUP2
000015c5: ADD
000015c6: PUSH1 0x40
000015c8: MSTORE
000015c9: DUP1
000015ca: SWAP3
000015cb: SWAP2
000015cc: SWAP1
000015cd: DUP2
000015ce: DUP2
000015cf: MSTORE
000015d0: PUSH1 0x20
000015d2: ADD
000015d3: DUP3
000015d4: DUP1
000015d5: SLOAD
000015d6: PUSH2 0x15de
000015d9: SWAP1
000015da: PUSH2 0x214a
000015dd: JUMP
000015de: JUMPDEST
000015df: DUP1
000015e0: ISZERO
000015e1: PUSH2 0x162b
000015e4: JUMPI
000015e5: DUP1
000015e6: PUSH1 0x1f
000015e8: LT
000015e9: PUSH2 0x1600
000015ec: JUMPI
000015ed: PUSH2 0x0100
000015f0: DUP1
000015f1: DUP4
000015f2: SLOAD
000015f3: DIV
000015f4: MUL
000015f5: DUP4
000015f6: MSTORE
000015f7: SWAP2
000015f8: PUSH1 0x20
000015fa: ADD
000015fb: SWAP2
000015fc: PUSH2 0x162b
000015ff: JUMP
00001600: JUMPDEST
00001601: DUP3
00001602: ADD
00001603: SWAP2
00001604: SWAP1
00001605: PUSH1 0x00
00001607: MSTORE
00001608: PUSH1 0x20
0000160a: PUSH1 0x00
0000160c: KECCAK256
0000160d: SWAP1
0000160e: JUMPDEST
0000160f: DUP2
00001610: SLOAD
00001611: DUP2
00001612: MSTORE
00001613: SWAP1
00001614: PUSH1 0x01
00001616: ADD
00001617: SWAP1
00001618: PUSH1 0x20
0000161a: ADD
0000161b: DUP1
0000161c: DUP4
0000161d: GT
0000161e: PUSH2 0x160e
00001621: JUMPI
00001622: DUP3
00001623: SWAP1
00001624: SUB
00001625: PUSH1 0x1f
00001627: AND
00001628: DUP3
00001629: ADD
0000162a: SWAP2
0000162b: JUMPDEST
0000162c: POP
0000162d: POP
0000162e: POP
0000162f: POP
00001630: POP
00001631: SWAP1
00001632: POP
00001633: SWAP3
00001634: SWAP2
00001635: POP
00001636: POP
00001637: JUMP
00001638: JUMPDEST
00001639: PUSH1 0x00
0000163b: ADDRESS
0000163c: PUSH1 0x01
0000163e: PUSH1 0x01
00001640: PUSH1 0xa0
00001642: SHL
00001643: SUB
00001644: PUSH32 0x000000000000000000000000f047ab4c75cebf0eb9ed34ae2c186f3611aeafa6
00001665: AND
00001666: EQ
00001667: DUP1
00001668: ISZERO
00001669: PUSH2 0x1691
0000166c: JUMPI
0000166d: POP
0000166e: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
0000168f: CHAINID
00001690: EQ
00001691: JUMPDEST
00001692: ISZERO
00001693: PUSH2 0x16bb
00001696: JUMPI
00001697: POP
00001698: PUSH32 0x60f132f61eb52350d38debb9545285dbe460422d845fc94e3c03e39d35fe23fd
000016b9: SWAP1
000016ba: JUMP
000016bb: JUMPDEST
000016bc: PUSH2 0x0fa6
000016bf: PUSH1 0x40
000016c1: DUP1
000016c2: MLOAD
000016c3: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
000016e4: PUSH1 0x20
000016e6: DUP3
000016e7: ADD
000016e8: MSTORE
000016e9: PUSH32 0xcf7936818770c7c65596ab2682c0a2826f5f1e1aaa24c0b6acd2ee27ef08e64c
0000170a: SWAP2
0000170b: DUP2
0000170c: ADD
0000170d: SWAP2
0000170e: SWAP1
0000170f: SWAP2
00001710: MSTORE
00001711: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6
00001732: PUSH1 0x60
00001734: DUP3
00001735: ADD
00001736: MSTORE
00001737: CHAINID
00001738: PUSH1 0x80
0000173a: DUP3
0000173b: ADD
0000173c: MSTORE
0000173d: ADDRESS
0000173e: PUSH1 0xa0
00001740: DUP3
00001741: ADD
00001742: MSTORE
00001743: PUSH1 0x00
00001745: SWAP1
00001746: PUSH1 0xc0
00001748: ADD
00001749: PUSH1 0x40
0000174b: MLOAD
0000174c: PUSH1 0x20
0000174e: DUP2
0000174f: DUP4
00001750: SUB
00001751: SUB
00001752: DUP2
00001753: MSTORE
00001754: SWAP1
00001755: PUSH1 0x40
00001757: MSTORE
00001758: DUP1
00001759: MLOAD
0000175a: SWAP1
0000175b: PUSH1 0x20
0000175d: ADD
0000175e: KECCAK256
0000175f: SWAP1
00001760: POP
00001761: SWAP1
00001762: JUMP
00001763: JUMPDEST
00001764: PUSH1 0x00
00001766: DUP1
00001767: PUSH1 0x00
00001769: DUP4
0000176a: MLOAD
0000176b: PUSH1 0x41
0000176d: SUB
0000176e: PUSH2 0x179d
00001771: JUMPI
00001772: PUSH1 0x20
00001774: DUP5
00001775: ADD
00001776: MLOAD
00001777: PUSH1 0x40
00001779: DUP6
0000177a: ADD
0000177b: MLOAD
0000177c: PUSH1 0x60
0000177e: DUP7
0000177f: ADD
00001780: MLOAD
00001781: PUSH1 0x00
00001783: BYTE
00001784: PUSH2 0x178f
00001787: DUP9
00001788: DUP3
00001789: DUP6
0000178a: DUP6
0000178b: PUSH2 0x192d
0000178e: JUMP
0000178f: JUMPDEST
00001790: SWAP6
00001791: POP
00001792: SWAP6
00001793: POP
00001794: SWAP6
00001795: POP
00001796: POP
00001797: POP
00001798: POP
00001799: PUSH2 0x17a9
0000179c: JUMP
0000179d: JUMPDEST
0000179e: POP
0000179f: POP
000017a0: DUP2
000017a1: MLOAD
000017a2: PUSH1 0x00
000017a4: SWAP2
000017a5: POP
000017a6: PUSH1 0x02
000017a8: SWAP1
000017a9: JUMPDEST
000017aa: SWAP3
000017ab: POP
000017ac: SWAP3
000017ad: POP
000017ae: SWAP3
000017af: JUMP
000017b0: JUMPDEST
000017b1: PUSH1 0x00
000017b3: DUP1
000017b4: PUSH1 0x00
000017b6: DUP6
000017b7: PUSH1 0x01
000017b9: PUSH1 0x01
000017bb: PUSH1 0xa0
000017bd: SHL
000017be: SUB
000017bf: AND
000017c0: DUP6
000017c1: DUP6
000017c2: PUSH1 0x40
000017c4: MLOAD
000017c5: PUSH1 0x24
000017c7: ADD
000017c8: PUSH2 0x17d2
000017cb: SWAP3
000017cc: SWAP2
000017cd: SWAP1
000017ce: PUSH2 0x2184
000017d1: JUMP
000017d2: JUMPDEST
000017d3: PUSH1 0x40
000017d5: DUP1
000017d6: MLOAD
000017d7: PUSH1 0x1f
000017d9: NOT
000017da: DUP2
000017db: DUP5
000017dc: SUB
000017dd: ADD
000017de: DUP2
000017df: MSTORE
000017e0: SWAP2
000017e1: DUP2
000017e2: MSTORE
000017e3: PUSH1 0x20
000017e5: DUP3
000017e6: ADD
000017e7: DUP1
000017e8: MLOAD
000017e9: PUSH1 0x01
000017eb: PUSH1 0x01
000017ed: PUSH1 0xe0
000017ef: SHL
000017f0: SUB
000017f1: AND
000017f2: PUSH4 0x0b135d3f
000017f7: PUSH1 0xe1
000017f9: SHL
000017fa: OR
000017fb: SWAP1
000017fc: MSTORE
000017fd: MLOAD
000017fe: PUSH2 0x1807
00001801: SWAP2
00001802: SWAP1
00001803: PUSH2 0x21a5
00001806: JUMP
00001807: JUMPDEST
00001808: PUSH1 0x00
0000180a: PUSH1 0x40
0000180c: MLOAD
0000180d: DUP1
0000180e: DUP4
0000180f: SUB
00001810: DUP2
00001811: DUP6
00001812: GAS
00001813: STATICCALL
00001814: SWAP2
00001815: POP
00001816: POP
00001817: RETURNDATASIZE
00001818: DUP1
00001819: PUSH1 0x00
0000181b: DUP2
0000181c: EQ
0000181d: PUSH2 0x1842
00001820: JUMPI
00001821: PUSH1 0x40
00001823: MLOAD
00001824: SWAP2
00001825: POP
00001826: PUSH1 0x1f
00001828: NOT
00001829: PUSH1 0x3f
0000182b: RETURNDATASIZE
0000182c: ADD
0000182d: AND
0000182e: DUP3
0000182f: ADD
00001830: PUSH1 0x40
00001832: MSTORE
00001833: RETURNDATASIZE
00001834: DUP3
00001835: MSTORE
00001836: RETURNDATASIZE
00001837: PUSH1 0x00
00001839: PUSH1 0x20
0000183b: DUP5
0000183c: ADD
0000183d: RETURNDATACOPY
0000183e: PUSH2 0x1847
00001841: JUMP
00001842: JUMPDEST
00001843: PUSH1 0x60
00001845: SWAP2
00001846: POP
00001847: JUMPDEST
00001848: POP
00001849: SWAP2
0000184a: POP
0000184b: SWAP2
0000184c: POP
0000184d: DUP2
0000184e: DUP1
0000184f: ISZERO
00001850: PUSH2 0x185b
00001853: JUMPI
00001854: POP
00001855: PUSH1 0x20
00001857: DUP2
00001858: MLOAD
00001859: LT
0000185a: ISZERO
0000185b: JUMPDEST
0000185c: DUP1
0000185d: ISZERO
0000185e: PUSH2 0x1063
00001861: JUMPI
00001862: POP
00001863: DUP1
00001864: MLOAD
00001865: PUSH4 0x0b135d3f
0000186a: PUSH1 0xe1
0000186c: SHL
0000186d: SWAP1
0000186e: PUSH2 0x1880
00001871: SWAP1
00001872: DUP4
00001873: ADD
00001874: PUSH1 0x20
00001876: SWAP1
00001877: DUP2
00001878: ADD
00001879: SWAP1
0000187a: DUP5
0000187b: ADD
0000187c: PUSH2 0x21c1
0000187f: JUMP
00001880: JUMPDEST
00001881: EQ
00001882: SWAP7
00001883: SWAP6
00001884: POP
00001885: POP
00001886: POP
00001887: POP
00001888: POP
00001889: POP
0000188a: JUMP
0000188b: JUMPDEST
0000188c: PUSH1 0x00
0000188e: PUSH2 0x18a0
00001891: PUSH1 0x01
00001893: PUSH1 0x01
00001895: PUSH1 0xa0
00001897: SHL
00001898: SUB
00001899: DUP5
0000189a: AND
0000189b: DUP4
0000189c: PUSH2 0x19fc
0000189f: JUMP
000018a0: JUMPDEST
000018a1: SWAP1
000018a2: POP
000018a3: DUP1
000018a4: MLOAD
000018a5: PUSH1 0x00
000018a7: EQ
000018a8: ISZERO
000018a9: DUP1
000018aa: ISZERO
000018ab: PUSH2 0x18c5
000018ae: JUMPI
000018af: POP
000018b0: DUP1
000018b1: DUP1
000018b2: PUSH1 0x20
000018b4: ADD
000018b5: SWAP1
000018b6: MLOAD
000018b7: DUP2
000018b8: ADD
000018b9: SWAP1
000018ba: PUSH2 0x18c3
000018bd: SWAP2
000018be: SWAP1
000018bf: PUSH2 0x20e3
000018c2: JUMP
000018c3: JUMPDEST
000018c4: ISZERO
000018c5: JUMPDEST
000018c6: ISZERO
000018c7: PUSH2 0x0794
000018ca: JUMPI
000018cb: PUSH1 0x40
000018cd: MLOAD
000018ce: PUSH4 0x5274afe7
000018d3: PUSH1 0xe0
000018d5: SHL
000018d6: DUP2
000018d7: MSTORE
000018d8: PUSH1 0x01
000018da: PUSH1 0x01
000018dc: PUSH1 0xa0
000018de: SHL
000018df: SUB
000018e0: DUP5
000018e1: AND
000018e2: PUSH1 0x04
000018e4: DUP3
000018e5: ADD
000018e6: MSTORE
000018e7: PUSH1 0x24
000018e9: ADD
000018ea: PUSH2 0x04b2
000018ed: JUMP
000018ee: JUMPDEST
000018ef: PUSH1 0x60
000018f1: PUSH1 0x00
000018f3: PUSH2 0x18fb
000018f6: DUP4
000018f7: PUSH2 0x1a0a
000018fa: JUMP
000018fb: JUMPDEST
000018fc: PUSH1 0x40
000018fe: DUP1
000018ff: MLOAD
00001900: PUSH1 0x20
00001902: DUP1
00001903: DUP3
00001904: MSTORE
00001905: DUP2
00001906: DUP4
00001907: ADD
00001908: SWAP1
00001909: SWAP3
0000190a: MSTORE
0000190b: SWAP2
0000190c: SWAP3
0000190d: POP
0000190e: PUSH1 0x00
00001910: SWAP2
00001911: SWAP1
00001912: PUSH1 0x20
00001914: DUP3
00001915: ADD
00001916: DUP2
00001917: DUP1
00001918: CALLDATASIZE
00001919: DUP4
0000191a: CALLDATACOPY
0000191b: POP
0000191c: POP
0000191d: POP
0000191e: SWAP2
0000191f: DUP3
00001920: MSTORE
00001921: POP
00001922: PUSH1 0x20
00001924: DUP2
00001925: ADD
00001926: SWAP3
00001927: SWAP1
00001928: SWAP3
00001929: MSTORE
0000192a: POP
0000192b: SWAP1
0000192c: JUMP
0000192d: JUMPDEST
0000192e: PUSH1 0x00
00001930: DUP1
00001931: DUP1
00001932: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
00001953: DUP5
00001954: GT
00001955: ISZERO
00001956: PUSH2 0x1968
00001959: JUMPI
0000195a: POP
0000195b: PUSH1 0x00
0000195d: SWAP2
0000195e: POP
0000195f: PUSH1 0x03
00001961: SWAP1
00001962: POP
00001963: DUP3
00001964: PUSH2 0x19f2
00001967: JUMP
00001968: JUMPDEST
00001969: PUSH1 0x40
0000196b: DUP1
0000196c: MLOAD
0000196d: PUSH1 0x00
0000196f: DUP1
00001970: DUP3
00001971: MSTORE
00001972: PUSH1 0x20
00001974: DUP3
00001975: ADD
00001976: DUP1
00001977: DUP5
00001978: MSTORE
00001979: DUP11
0000197a: SWAP1
0000197b: MSTORE
0000197c: PUSH1 0xff
0000197e: DUP10
0000197f: AND
00001980: SWAP3
00001981: DUP3
00001982: ADD
00001983: SWAP3
00001984: SWAP1
00001985: SWAP3
00001986: MSTORE
00001987: PUSH1 0x60
00001989: DUP2
0000198a: ADD
0000198b: DUP8
0000198c: SWAP1
0000198d: MSTORE
0000198e: PUSH1 0x80
00001990: DUP2
00001991: ADD
00001992: DUP7
00001993: SWAP1
00001994: MSTORE
00001995: PUSH1 0x01
00001997: SWAP1
00001998: PUSH1 0xa0
0000199a: ADD
0000199b: PUSH1 0x20
0000199d: PUSH1 0x40
0000199f: MLOAD
000019a0: PUSH1 0x20
000019a2: DUP2
000019a3: SUB
000019a4: SWAP1
000019a5: DUP1
000019a6: DUP5
000019a7: SUB
000019a8: SWAP1
000019a9: DUP6
000019aa: GAS
000019ab: STATICCALL
000019ac: ISZERO
000019ad: DUP1
000019ae: ISZERO
000019af: PUSH2 0x19bc
000019b2: JUMPI
000019b3: RETURNDATASIZE
000019b4: PUSH1 0x00
000019b6: DUP1
000019b7: RETURNDATACOPY
000019b8: RETURNDATASIZE
000019b9: PUSH1 0x00
000019bb: REVERT
000019bc: JUMPDEST
000019bd: POP
000019be: POP
000019bf: PUSH1 0x40
000019c1: MLOAD
000019c2: PUSH1 0x1f
000019c4: NOT
000019c5: ADD
000019c6: MLOAD
000019c7: SWAP2
000019c8: POP
000019c9: POP
000019ca: PUSH1 0x01
000019cc: PUSH1 0x01
000019ce: PUSH1 0xa0
000019d0: SHL
000019d1: SUB
000019d2: DUP2
000019d3: AND
000019d4: PUSH2 0x19e8
000019d7: JUMPI
000019d8: POP
000019d9: PUSH1 0x00
000019db: SWAP3
000019dc: POP
000019dd: PUSH1 0x01
000019df: SWAP2
000019e0: POP
000019e1: DUP3
000019e2: SWAP1
000019e3: POP
000019e4: PUSH2 0x19f2
000019e7: JUMP
000019e8: JUMPDEST
000019e9: SWAP3
000019ea: POP
000019eb: PUSH1 0x00
000019ed: SWAP2
000019ee: POP
000019ef: DUP2
000019f0: SWAP1
000019f1: POP
000019f2: JUMPDEST
000019f3: SWAP5
000019f4: POP
000019f5: SWAP5
000019f6: POP
000019f7: SWAP5
000019f8: SWAP2
000019f9: POP
000019fa: POP
000019fb: JUMP
000019fc: JUMPDEST
000019fd: PUSH1 0x60
000019ff: PUSH2 0x1068
00001a02: DUP4
00001a03: DUP4
00001a04: PUSH1 0x00
00001a06: PUSH2 0x1a32
00001a09: JUMP
00001a0a: JUMPDEST
00001a0b: PUSH1 0x00
00001a0d: PUSH1 0xff
00001a0f: DUP3
00001a10: AND
00001a11: PUSH1 0x1f
00001a13: DUP2
00001a14: GT
00001a15: ISZERO
00001a16: PUSH2 0x1005
00001a19: JUMPI
00001a1a: PUSH1 0x40
00001a1c: MLOAD
00001a1d: PUSH4 0x2cd44ac3
00001a22: PUSH1 0xe2
00001a24: SHL
00001a25: DUP2
00001a26: MSTORE
00001a27: PUSH1 0x04
00001a29: ADD
00001a2a: PUSH1 0x40
00001a2c: MLOAD
00001a2d: DUP1
00001a2e: SWAP2
00001a2f: SUB
00001a30: SWAP1
00001a31: REVERT
00001a32: JUMPDEST
00001a33: PUSH1 0x60
00001a35: DUP2
00001a36: SELFBALANCE
00001a37: LT
00001a38: ISZERO
00001a39: PUSH2 0x1a57
00001a3c: JUMPI
00001a3d: PUSH1 0x40
00001a3f: MLOAD
00001a40: PUSH4 0xcd786059
00001a45: PUSH1 0xe0
00001a47: SHL
00001a48: DUP2
00001a49: MSTORE
00001a4a: ADDRESS
00001a4b: PUSH1 0x04
00001a4d: DUP3
00001a4e: ADD
00001a4f: MSTORE
00001a50: PUSH1 0x24
00001a52: ADD
00001a53: PUSH2 0x04b2
00001a56: JUMP
00001a57: JUMPDEST
00001a58: PUSH1 0x00
00001a5a: DUP1
00001a5b: DUP6
00001a5c: PUSH1 0x01
00001a5e: PUSH1 0x01
00001a60: PUSH1 0xa0
00001a62: SHL
00001a63: SUB
00001a64: AND
00001a65: DUP5
00001a66: DUP7
00001a67: PUSH1 0x40
00001a69: MLOAD
00001a6a: PUSH2 0x1a73
00001a6d: SWAP2
00001a6e: SWAP1
00001a6f: PUSH2 0x21a5
00001a72: JUMP
00001a73: JUMPDEST
00001a74: PUSH1 0x00
00001a76: PUSH1 0x40
00001a78: MLOAD
00001a79: DUP1
00001a7a: DUP4
00001a7b: SUB
00001a7c: DUP2
00001a7d: DUP6
00001a7e: DUP8
00001a7f: GAS
00001a80: CALL
00001a81: SWAP3
00001a82: POP
00001a83: POP
00001a84: POP
00001a85: RETURNDATASIZE
00001a86: DUP1
00001a87: PUSH1 0x00
00001a89: DUP2
00001a8a: EQ
00001a8b: PUSH2 0x1ab0
00001a8e: JUMPI
00001a8f: PUSH1 0x40
00001a91: MLOAD
00001a92: SWAP2
00001a93: POP
00001a94: PUSH1 0x1f
00001a96: NOT
00001a97: PUSH1 0x3f
00001a99: RETURNDATASIZE
00001a9a: ADD
00001a9b: AND
00001a9c: DUP3
00001a9d: ADD
00001a9e: PUSH1 0x40
00001aa0: MSTORE
00001aa1: RETURNDATASIZE
00001aa2: DUP3
00001aa3: MSTORE
00001aa4: RETURNDATASIZE
00001aa5: PUSH1 0x00
00001aa7: PUSH1 0x20
00001aa9: DUP5
00001aaa: ADD
00001aab: RETURNDATACOPY
00001aac: PUSH2 0x1ab5
00001aaf: JUMP
00001ab0: JUMPDEST
00001ab1: PUSH1 0x60
00001ab3: SWAP2
00001ab4: POP
00001ab5: JUMPDEST
00001ab6: POP
00001ab7: SWAP2
00001ab8: POP
00001ab9: SWAP2
00001aba: POP
00001abb: PUSH2 0x1063
00001abe: DUP7
00001abf: DUP4
00001ac0: DUP4
00001ac1: PUSH1 0x60
00001ac3: DUP3
00001ac4: PUSH2 0x1ad5
00001ac7: JUMPI
00001ac8: PUSH2 0x1ad0
00001acb: DUP3
00001acc: PUSH2 0x1b1c
00001acf: JUMP
00001ad0: JUMPDEST
00001ad1: PUSH2 0x1068
00001ad4: JUMP
00001ad5: JUMPDEST
00001ad6: DUP2
00001ad7: MLOAD
00001ad8: ISZERO
00001ad9: DUP1
00001ada: ISZERO
00001adb: PUSH2 0x1aec
00001ade: JUMPI
00001adf: POP
00001ae0: PUSH1 0x01
00001ae2: PUSH1 0x01
00001ae4: PUSH1 0xa0
00001ae6: SHL
00001ae7: SUB
00001ae8: DUP5
00001ae9: AND
00001aea: EXTCODESIZE
00001aeb: ISZERO
00001aec: JUMPDEST
00001aed: ISZERO
00001aee: PUSH2 0x1b15
00001af1: JUMPI
00001af2: PUSH1 0x40
00001af4: MLOAD
00001af5: PUSH4 0x9996b315
00001afa: PUSH1 0xe0
00001afc: SHL
00001afd: DUP2
00001afe: MSTORE
00001aff: PUSH1 0x01
00001b01: PUSH1 0x01
00001b03: PUSH1 0xa0
00001b05: SHL
00001b06: SUB
00001b07: DUP6
00001b08: AND
00001b09: PUSH1 0x04
00001b0b: DUP3
00001b0c: ADD
00001b0d: MSTORE
00001b0e: PUSH1 0x24
00001b10: ADD
00001b11: PUSH2 0x04b2
00001b14: JUMP
00001b15: JUMPDEST
00001b16: POP
00001b17: DUP1
00001b18: PUSH2 0x1068
00001b1b: JUMP
00001b1c: JUMPDEST
00001b1d: DUP1
00001b1e: MLOAD
00001b1f: ISZERO
00001b20: PUSH2 0x1b2c
00001b23: JUMPI
00001b24: DUP1
00001b25: MLOAD
00001b26: DUP1
00001b27: DUP3
00001b28: PUSH1 0x20
00001b2a: ADD
00001b2b: REVERT
00001b2c: JUMPDEST
00001b2d: PUSH1 0x40
00001b2f: MLOAD
00001b30: PUSH4 0x0a12f521
00001b35: PUSH1 0xe1
00001b37: SHL
00001b38: DUP2
00001b39: MSTORE
00001b3a: PUSH1 0x04
00001b3c: ADD
00001b3d: PUSH1 0x40
00001b3f: MLOAD
00001b40: DUP1
00001b41: SWAP2
00001b42: SUB
00001b43: SWAP1
00001b44: REVERT
00001b45: JUMPDEST
00001b46: DUP1
00001b47: CALLDATALOAD
00001b48: PUSH1 0x01
00001b4a: PUSH1 0x01
00001b4c: PUSH1 0xa0
00001b4e: SHL
00001b4f: SUB
00001b50: DUP2
00001b51: AND
00001b52: DUP2
00001b53: EQ
00001b54: PUSH2 0x1b5c
00001b57: JUMPI
00001b58: PUSH1 0x00
00001b5a: DUP1
00001b5b: REVERT
00001b5c: JUMPDEST
00001b5d: SWAP2
00001b5e: SWAP1
00001b5f: POP
00001b60: JUMP
00001b61: JUMPDEST
00001b62: PUSH1 0x00
00001b64: PUSH1 0x20
00001b66: DUP3
00001b67: DUP5
00001b68: SUB
00001b69: SLT
00001b6a: ISZERO
00001b6b: PUSH2 0x1b73
00001b6e: JUMPI
00001b6f: PUSH1 0x00
00001b71: DUP1
00001b72: REVERT
00001b73: JUMPDEST
00001b74: PUSH2 0x1068
00001b77: DUP3
00001b78: PUSH2 0x1b45
00001b7b: JUMP
00001b7c: JUMPDEST
00001b7d: PUSH1 0x00
00001b7f: JUMPDEST
00001b80: DUP4
00001b81: DUP2
00001b82: LT
00001b83: ISZERO
00001b84: PUSH2 0x1b97
00001b87: JUMPI
00001b88: DUP2
00001b89: DUP2
00001b8a: ADD
00001b8b: MLOAD
00001b8c: DUP4
00001b8d: DUP3
00001b8e: ADD
00001b8f: MSTORE
00001b90: PUSH1 0x20
00001b92: ADD
00001b93: PUSH2 0x1b7f
00001b96: JUMP
00001b97: JUMPDEST
00001b98: POP
00001b99: POP
00001b9a: PUSH1 0x00
00001b9c: SWAP2
00001b9d: ADD
00001b9e: MSTORE
00001b9f: JUMP
00001ba0: JUMPDEST
00001ba1: PUSH1 0x00
00001ba3: DUP2
00001ba4: MLOAD
00001ba5: DUP1
00001ba6: DUP5
00001ba7: MSTORE
00001ba8: PUSH2 0x1bb8
00001bab: DUP2
00001bac: PUSH1 0x20
00001bae: DUP7
00001baf: ADD
00001bb0: PUSH1 0x20
00001bb2: DUP7
00001bb3: ADD
00001bb4: PUSH2 0x1b7c
00001bb7: JUMP
00001bb8: JUMPDEST
00001bb9: PUSH1 0x1f
00001bbb: ADD
00001bbc: PUSH1 0x1f
00001bbe: NOT
00001bbf: AND
00001bc0: SWAP3
00001bc1: SWAP1
00001bc2: SWAP3
00001bc3: ADD
00001bc4: PUSH1 0x20
00001bc6: ADD
00001bc7: SWAP3
00001bc8: SWAP2
00001bc9: POP
00001bca: POP
00001bcb: JUMP
00001bcc: JUMPDEST
00001bcd: PUSH1 0x00
00001bcf: DUP2
00001bd0: MLOAD
00001bd1: DUP1
00001bd2: DUP5
00001bd3: MSTORE
00001bd4: PUSH1 0x20
00001bd6: DUP1
00001bd7: DUP6
00001bd8: ADD
00001bd9: SWAP5
00001bda: POP
00001bdb: PUSH1 0x20
00001bdd: DUP5
00001bde: ADD
00001bdf: PUSH1 0x00
00001be1: JUMPDEST
00001be2: DUP4
00001be3: DUP2
00001be4: LT
00001be5: ISZERO
00001be6: PUSH2 0x1bfd
00001be9: JUMPI
00001bea: DUP2
00001beb: MLOAD
00001bec: DUP8
00001bed: MSTORE
00001bee: SWAP6
00001bef: DUP3
00001bf0: ADD
00001bf1: SWAP6
00001bf2: SWAP1
00001bf3: DUP3
00001bf4: ADD
00001bf5: SWAP1
00001bf6: PUSH1 0x01
00001bf8: ADD
00001bf9: PUSH2 0x1be1
00001bfc: JUMP
00001bfd: JUMPDEST
00001bfe: POP
00001bff: SWAP5
00001c00: SWAP6
00001c01: SWAP5
00001c02: POP
00001c03: POP
00001c04: POP
00001c05: POP
00001c06: POP
00001c07: JUMP
00001c08: JUMPDEST
00001c09: PUSH1 0xff
00001c0b: PUSH1 0xf8
00001c0d: SHL
00001c0e: DUP9
00001c0f: AND
00001c10: DUP2
00001c11: MSTORE
00001c12: PUSH1 0xe0
00001c14: PUSH1 0x20
00001c16: DUP3
00001c17: ADD
00001c18: MSTORE
00001c19: PUSH1 0x00
00001c1b: PUSH2 0x1c27
00001c1e: PUSH1 0xe0
00001c20: DUP4
00001c21: ADD
00001c22: DUP10
00001c23: PUSH2 0x1ba0
00001c26: JUMP
00001c27: JUMPDEST
00001c28: DUP3
00001c29: DUP2
00001c2a: SUB
00001c2b: PUSH1 0x40
00001c2d: DUP5
00001c2e: ADD
00001c2f: MSTORE
00001c30: PUSH2 0x1c39
00001c33: DUP2
00001c34: DUP10
00001c35: PUSH2 0x1ba0
00001c38: JUMP
00001c39: JUMPDEST
00001c3a: PUSH1 0x60
00001c3c: DUP5
00001c3d: ADD
00001c3e: DUP9
00001c3f: SWAP1
00001c40: MSTORE
00001c41: PUSH1 0x01
00001c43: PUSH1 0x01
00001c45: PUSH1 0xa0
00001c47: SHL
00001c48: SUB
00001c49: DUP8
00001c4a: AND
00001c4b: PUSH1 0x80
00001c4d: DUP6
00001c4e: ADD
00001c4f: MSTORE
00001c50: PUSH1 0xa0
00001c52: DUP5
00001c53: ADD
00001c54: DUP7
00001c55: SWAP1
00001c56: MSTORE
00001c57: DUP4
00001c58: DUP2
00001c59: SUB
00001c5a: PUSH1 0xc0
00001c5c: DUP6
00001c5d: ADD
00001c5e: MSTORE
00001c5f: SWAP1
00001c60: POP
00001c61: PUSH2 0x1c6a
00001c64: DUP2
00001c65: DUP6
00001c66: PUSH2 0x1bcc
00001c69: JUMP
00001c6a: JUMPDEST
00001c6b: SWAP11
00001c6c: SWAP10
00001c6d: POP
00001c6e: POP
00001c6f: POP
00001c70: POP
00001c71: POP
00001c72: POP
00001c73: POP
00001c74: POP
00001c75: POP
00001c76: POP
00001c77: JUMP
00001c78: JUMPDEST
00001c79: PUSH1 0x00
00001c7b: DUP1
00001c7c: DUP4
00001c7d: PUSH1 0x1f
00001c7f: DUP5
00001c80: ADD
00001c81: SLT
00001c82: PUSH2 0x1c8a
00001c85: JUMPI
00001c86: PUSH1 0x00
00001c88: DUP1
00001c89: REVERT
00001c8a: JUMPDEST
00001c8b: POP
00001c8c: DUP2
00001c8d: CALLDATALOAD
00001c8e: PUSH8 0xffffffffffffffff
00001c97: DUP2
00001c98: GT
00001c99: ISZERO
00001c9a: PUSH2 0x1ca2
00001c9d: JUMPI
00001c9e: PUSH1 0x00
00001ca0: DUP1
00001ca1: REVERT
00001ca2: JUMPDEST
00001ca3: PUSH1 0x20
00001ca5: DUP4
00001ca6: ADD
00001ca7: SWAP2
00001ca8: POP
00001ca9: DUP4
00001caa: PUSH1 0x20
00001cac: DUP3
00001cad: PUSH1 0x05
00001caf: SHL
00001cb0: DUP6
00001cb1: ADD
00001cb2: ADD
00001cb3: GT
00001cb4: ISZERO
00001cb5: PUSH2 0x1cbd
00001cb8: JUMPI
00001cb9: PUSH1 0x00
00001cbb: DUP1
00001cbc: REVERT
00001cbd: JUMPDEST
00001cbe: SWAP3
00001cbf: POP
00001cc0: SWAP3
00001cc1: SWAP1
00001cc2: POP
00001cc3: JUMP
00001cc4: JUMPDEST
00001cc5: PUSH4 0x4e487b71
00001cca: PUSH1 0xe0
00001ccc: SHL
00001ccd: PUSH1 0x00
00001ccf: MSTORE
00001cd0: PUSH1 0x41
00001cd2: PUSH1 0x04
00001cd4: MSTORE
00001cd5: PUSH1 0x24
00001cd7: PUSH1 0x00
00001cd9: REVERT
00001cda: JUMPDEST
00001cdb: PUSH1 0x00
00001cdd: DUP1
00001cde: PUSH1 0x00
00001ce0: DUP1
00001ce1: PUSH1 0x00
00001ce3: DUP1
00001ce4: PUSH1 0x00
00001ce6: PUSH1 0xc0
00001ce8: DUP9
00001ce9: DUP11
00001cea: SUB
00001ceb: SLT
00001cec: ISZERO
00001ced: PUSH2 0x1cf5
00001cf0: JUMPI
00001cf1: PUSH1 0x00
00001cf3: DUP1
00001cf4: REVERT
00001cf5: JUMPDEST
00001cf6: PUSH2 0x1cfe
00001cf9: DUP9
00001cfa: PUSH2 0x1b45
00001cfd: JUMP
00001cfe: JUMPDEST
00001cff: SWAP7
00001d00: POP
00001d01: PUSH1 0x20
00001d03: DUP9
00001d04: ADD
00001d05: CALLDATALOAD
00001d06: PUSH8 0xffffffffffffffff
00001d0f: DUP1
00001d10: DUP3
00001d11: GT
00001d12: ISZERO
00001d13: PUSH2 0x1d1b
00001d16: JUMPI
00001d17: PUSH1 0x00
00001d19: DUP1
00001d1a: REVERT
00001d1b: JUMPDEST
00001d1c: PUSH2 0x1d27
00001d1f: DUP12
00001d20: DUP4
00001d21: DUP13
00001d22: ADD
00001d23: PUSH2 0x1c78
00001d26: JUMP
00001d27: JUMPDEST
00001d28: SWAP1
00001d29: SWAP9
00001d2a: POP
00001d2b: SWAP7
00001d2c: POP
00001d2d: DUP7
00001d2e: SWAP2
00001d2f: POP
00001d30: PUSH2 0x1d3b
00001d33: PUSH1 0x40
00001d35: DUP12
00001d36: ADD
00001d37: PUSH2 0x1b45
00001d3a: JUMP
00001d3b: JUMPDEST
00001d3c: SWAP6
00001d3d: POP
00001d3e: PUSH2 0x1d49
00001d41: PUSH1 0x60
00001d43: DUP12
00001d44: ADD
00001d45: PUSH2 0x1b45
00001d48: JUMP
00001d49: JUMPDEST
00001d4a: SWAP5
00001d4b: POP
00001d4c: PUSH1 0x80
00001d4e: DUP11
00001d4f: ADD
00001d50: CALLDATALOAD
00001d51: SWAP4
00001d52: POP
00001d53: PUSH1 0xa0
00001d55: DUP11
00001d56: ADD
00001d57: CALLDATALOAD
00001d58: SWAP2
00001d59: POP
00001d5a: DUP1
00001d5b: DUP3
00001d5c: GT
00001d5d: ISZERO
00001d5e: PUSH2 0x1d66
00001d61: JUMPI
00001d62: PUSH1 0x00
00001d64: DUP1
00001d65: REVERT
00001d66: JUMPDEST
00001d67: DUP2
00001d68: DUP11
00001d69: ADD
00001d6a: SWAP2
00001d6b: POP
00001d6c: DUP11
00001d6d: PUSH1 0x1f
00001d6f: DUP4
00001d70: ADD
00001d71: SLT
00001d72: PUSH2 0x1d7a
00001d75: JUMPI
00001d76: PUSH1 0x00
00001d78: DUP1
00001d79: REVERT
00001d7a: JUMPDEST
00001d7b: DUP2
00001d7c: CALLDATALOAD
00001d7d: DUP2
00001d7e: DUP2
00001d7f: GT
00001d80: ISZERO
00001d81: PUSH2 0x1d8c
00001d84: JUMPI
00001d85: PUSH2 0x1d8c
00001d88: PUSH2 0x1cc4
00001d8b: JUMP
00001d8c: JUMPDEST
00001d8d: PUSH1 0x40
00001d8f: MLOAD
00001d90: PUSH1 0x1f
00001d92: DUP3
00001d93: ADD
00001d94: PUSH1 0x1f
00001d96: NOT
00001d97: SWAP1
00001d98: DUP2
00001d99: AND
00001d9a: PUSH1 0x3f
00001d9c: ADD
00001d9d: AND
00001d9e: DUP2
00001d9f: ADD
00001da0: SWAP1
00001da1: DUP4
00001da2: DUP3
00001da3: GT
00001da4: DUP2
00001da5: DUP4
00001da6: LT
00001da7: OR
00001da8: ISZERO
00001da9: PUSH2 0x1db4
00001dac: JUMPI
00001dad: PUSH2 0x1db4
00001db0: PUSH2 0x1cc4
00001db3: JUMP
00001db4: JUMPDEST
00001db5: DUP2
00001db6: PUSH1 0x40
00001db8: MSTORE
00001db9: DUP3
00001dba: DUP2
00001dbb: MSTORE
00001dbc: DUP14
00001dbd: PUSH1 0x20
00001dbf: DUP5
00001dc0: DUP8
00001dc1: ADD
00001dc2: ADD
00001dc3: GT
00001dc4: ISZERO
00001dc5: PUSH2 0x1dcd
00001dc8: JUMPI
00001dc9: PUSH1 0x00
00001dcb: DUP1
00001dcc: REVERT
00001dcd: JUMPDEST
00001dce: DUP3
00001dcf: PUSH1 0x20
00001dd1: DUP7
00001dd2: ADD
00001dd3: PUSH1 0x20
00001dd5: DUP4
00001dd6: ADD
00001dd7: CALLDATACOPY
00001dd8: PUSH1 0x00
00001dda: PUSH1 0x20
00001ddc: DUP5
00001ddd: DUP4
00001dde: ADD
00001ddf: ADD
00001de0: MSTORE
00001de1: DUP1
00001de2: SWAP6
00001de3: POP
00001de4: POP
00001de5: POP
00001de6: POP
00001de7: POP
00001de8: POP
00001de9: SWAP3
00001dea: SWAP6
00001deb: SWAP9
00001dec: SWAP2
00001ded: SWAP5
00001dee: SWAP8
00001def: POP
00001df0: SWAP3
00001df1: SWAP6
00001df2: POP
00001df3: JUMP
00001df4: JUMPDEST
00001df5: PUSH1 0x00
00001df7: DUP1
00001df8: PUSH1 0x40
00001dfa: DUP4
00001dfb: DUP6
00001dfc: SUB
00001dfd: SLT
00001dfe: ISZERO
00001dff: PUSH2 0x1e07
00001e02: JUMPI
00001e03: PUSH1 0x00
00001e05: DUP1
00001e06: REVERT
00001e07: JUMPDEST
00001e08: PUSH2 0x1e10
00001e0b: DUP4
00001e0c: PUSH2 0x1b45
00001e0f: JUMP
00001e10: JUMPDEST
00001e11: SWAP2
00001e12: POP
00001e13: PUSH2 0x1e1e
00001e16: PUSH1 0x20
00001e18: DUP5
00001e19: ADD
00001e1a: PUSH2 0x1b45
00001e1d: JUMP
00001e1e: JUMPDEST
00001e1f: SWAP1
00001e20: POP
00001e21: SWAP3
00001e22: POP
00001e23: SWAP3
00001e24: SWAP1
00001e25: POP
00001e26: JUMP
00001e27: JUMPDEST
00001e28: PUSH1 0x00
00001e2a: DUP1
00001e2b: PUSH1 0x00
00001e2d: PUSH1 0x60
00001e2f: DUP5
00001e30: DUP7
00001e31: SUB
00001e32: SLT
00001e33: ISZERO
00001e34: PUSH2 0x1e3c
00001e37: JUMPI
00001e38: PUSH1 0x00
00001e3a: DUP1
00001e3b: REVERT
00001e3c: JUMPDEST
00001e3d: PUSH2 0x1e45
00001e40: DUP5
00001e41: PUSH2 0x1b45
00001e44: JUMP
00001e45: JUMPDEST
00001e46: SWAP3
00001e47: POP
00001e48: PUSH2 0x1e53
00001e4b: PUSH1 0x20
00001e4d: DUP6
00001e4e: ADD
00001e4f: PUSH2 0x1b45
00001e52: JUMP
00001e53: JUMPDEST
00001e54: SWAP2
00001e55: POP
00001e56: PUSH1 0x40
00001e58: DUP5
00001e59: ADD
00001e5a: CALLDATALOAD
00001e5b: SWAP1
00001e5c: POP
00001e5d: SWAP3
00001e5e: POP
00001e5f: SWAP3
00001e60: POP
00001e61: SWAP3
00001e62: JUMP
00001e63: JUMPDEST
00001e64: PUSH1 0x00
00001e66: DUP1
00001e67: PUSH1 0x00
00001e69: DUP1
00001e6a: PUSH1 0x00
00001e6c: DUP1
00001e6d: PUSH1 0x00
00001e6f: PUSH1 0xa0
00001e71: DUP9
00001e72: DUP11
00001e73: SUB
00001e74: SLT
00001e75: ISZERO
00001e76: PUSH2 0x1e7e
00001e79: JUMPI
00001e7a: PUSH1 0x00
00001e7c: DUP1
00001e7d: REVERT
00001e7e: JUMPDEST
00001e7f: DUP8
00001e80: CALLDATALOAD
00001e81: PUSH8 0xffffffffffffffff
00001e8a: DUP1
00001e8b: DUP3
00001e8c: GT
00001e8d: ISZERO
00001e8e: PUSH2 0x1e96
00001e91: JUMPI
00001e92: PUSH1 0x00
00001e94: DUP1
00001e95: REVERT
00001e96: JUMPDEST
00001e97: PUSH2 0x1ea2
00001e9a: DUP12
00001e9b: DUP4
00001e9c: DUP13
00001e9d: ADD
00001e9e: PUSH2 0x1c78
00001ea1: JUMP
00001ea2: JUMPDEST
00001ea3: SWAP1
00001ea4: SWAP10
00001ea5: POP
00001ea6: SWAP8
00001ea7: POP
00001ea8: DUP8
00001ea9: SWAP2
00001eaa: POP
00001eab: PUSH2 0x1eb6
00001eae: PUSH1 0x20
00001eb0: DUP12
00001eb1: ADD
00001eb2: PUSH2 0x1b45
00001eb5: JUMP
00001eb6: JUMPDEST
00001eb7: SWAP7
00001eb8: POP
00001eb9: PUSH2 0x1ec4
00001ebc: PUSH1 0x40
00001ebe: DUP12
00001ebf: ADD
00001ec0: PUSH2 0x1b45
00001ec3: JUMP
00001ec4: JUMPDEST
00001ec5: SWAP6
00001ec6: POP
00001ec7: PUSH1 0x60
00001ec9: DUP11
00001eca: ADD
00001ecb: CALLDATALOAD
00001ecc: SWAP5
00001ecd: POP
00001ece: PUSH1 0x80
00001ed0: DUP11
00001ed1: ADD
00001ed2: CALLDATALOAD
00001ed3: SWAP2
00001ed4: POP
00001ed5: DUP1
00001ed6: DUP3
00001ed7: GT
00001ed8: ISZERO
00001ed9: PUSH2 0x1ee1
00001edc: JUMPI
00001edd: PUSH1 0x00
00001edf: DUP1
00001ee0: REVERT
00001ee1: JUMPDEST
00001ee2: DUP2
00001ee3: DUP11
00001ee4: ADD
00001ee5: SWAP2
00001ee6: POP
00001ee7: DUP11
00001ee8: PUSH1 0x1f
00001eea: DUP4
00001eeb: ADD
00001eec: SLT
00001eed: PUSH2 0x1ef5
00001ef0: JUMPI
00001ef1: PUSH1 0x00
00001ef3: DUP1
00001ef4: REVERT
00001ef5: JUMPDEST
00001ef6: DUP2
00001ef7: CALLDATALOAD
00001ef8: DUP2
00001ef9: DUP2
00001efa: GT
00001efb: ISZERO
00001efc: PUSH2 0x1f04
00001eff: JUMPI
00001f00: PUSH1 0x00
00001f02: DUP1
00001f03: REVERT
00001f04: JUMPDEST
00001f05: DUP12
00001f06: PUSH1 0x20
00001f08: DUP3
00001f09: DUP6
00001f0a: ADD
00001f0b: ADD
00001f0c: GT
00001f0d: ISZERO
00001f0e: PUSH2 0x1f16
00001f11: JUMPI
00001f12: PUSH1 0x00
00001f14: DUP1
00001f15: REVERT
00001f16: JUMPDEST
00001f17: PUSH1 0x20
00001f19: DUP4
00001f1a: ADD
00001f1b: SWAP5
00001f1c: POP
00001f1d: DUP1
00001f1e: SWAP4
00001f1f: POP
00001f20: POP
00001f21: POP
00001f22: POP
00001f23: SWAP3
00001f24: SWAP6
00001f25: SWAP9
00001f26: SWAP2
00001f27: SWAP5
00001f28: SWAP8
00001f29: POP
00001f2a: SWAP3
00001f2b: SWAP6
00001f2c: POP
00001f2d: JUMP
00001f2e: JUMPDEST
00001f2f: DUP1
00001f30: ISZERO
00001f31: ISZERO
00001f32: DUP2
00001f33: EQ
00001f34: PUSH2 0x04c4
00001f37: JUMPI
00001f38: PUSH1 0x00
00001f3a: DUP1
00001f3b: REVERT
00001f3c: JUMPDEST
00001f3d: PUSH1 0x00
00001f3f: DUP1
00001f40: PUSH1 0x40
00001f42: DUP4
00001f43: DUP6
00001f44: SUB
00001f45: SLT
00001f46: ISZERO
00001f47: PUSH2 0x1f4f
00001f4a: JUMPI
00001f4b: PUSH1 0x00
00001f4d: DUP1
00001f4e: REVERT
00001f4f: JUMPDEST
00001f50: PUSH2 0x1f58
00001f53: DUP4
00001f54: PUSH2 0x1b45
00001f57: JUMP
00001f58: JUMPDEST
00001f59: SWAP2
00001f5a: POP
00001f5b: PUSH1 0x20
00001f5d: DUP4
00001f5e: ADD
00001f5f: CALLDATALOAD
00001f60: PUSH2 0x1f68
00001f63: DUP2
00001f64: PUSH2 0x1f2e
00001f67: JUMP
00001f68: JUMPDEST
00001f69: DUP1
00001f6a: SWAP2
00001f6b: POP
00001f6c: POP
00001f6d: SWAP3
00001f6e: POP
00001f6f: SWAP3
00001f70: SWAP1
00001f71: POP
00001f72: JUMP
00001f73: JUMPDEST
00001f74: PUSH1 0x00
00001f76: DUP1
00001f77: PUSH1 0x40
00001f79: DUP4
00001f7a: DUP6
00001f7b: SUB
00001f7c: SLT
00001f7d: ISZERO
00001f7e: PUSH2 0x1f86
00001f81: JUMPI
00001f82: PUSH1 0x00
00001f84: DUP1
00001f85: REVERT
00001f86: JUMPDEST
00001f87: PUSH2 0x1f8f
00001f8a: DUP4
00001f8b: PUSH2 0x1b45
00001f8e: JUMP
00001f8f: JUMPDEST
00001f90: SWAP5
00001f91: PUSH1 0x20
00001f93: SWAP4
00001f94: SWAP1
00001f95: SWAP4
00001f96: ADD
00001f97: CALLDATALOAD
00001f98: SWAP4
00001f99: POP
00001f9a: POP
00001f9b: POP
00001f9c: JUMP
00001f9d: JUMPDEST
00001f9e: PUSH1 0x00
00001fa0: DUP2
00001fa1: DUP5
00001fa2: DUP3
00001fa3: JUMPDEST
00001fa4: DUP6
00001fa5: DUP2
00001fa6: LT
00001fa7: ISZERO
00001fa8: PUSH2 0x1fd2
00001fab: JUMPI
00001fac: PUSH1 0x01
00001fae: PUSH1 0x01
00001fb0: PUSH1 0xa0
00001fb2: SHL
00001fb3: SUB
00001fb4: PUSH2 0x1fbc
00001fb7: DUP4
00001fb8: PUSH2 0x1b45
00001fbb: JUMP
00001fbc: JUMPDEST
00001fbd: AND
00001fbe: DUP4
00001fbf: MSTORE
00001fc0: PUSH1 0x20
00001fc2: SWAP3
00001fc3: DUP4
00001fc4: ADD
00001fc5: SWAP3
00001fc6: SWAP2
00001fc7: SWAP1
00001fc8: SWAP2
00001fc9: ADD
00001fca: SWAP1
00001fcb: PUSH1 0x01
00001fcd: ADD
00001fce: PUSH2 0x1fa3
00001fd1: JUMP
00001fd2: JUMPDEST
00001fd3: POP
00001fd4: SWAP1
00001fd5: SWAP6
00001fd6: SWAP5
00001fd7: POP
00001fd8: POP
00001fd9: POP
00001fda: POP
00001fdb: POP
00001fdc: JUMP
00001fdd: JUMPDEST
00001fde: PUSH4 0x4e487b71
00001fe3: PUSH1 0xe0
00001fe5: SHL
00001fe6: PUSH1 0x00
00001fe8: MSTORE
00001fe9: PUSH1 0x11
00001feb: PUSH1 0x04
00001fed: MSTORE
00001fee: PUSH1 0x24
00001ff0: PUSH1 0x00
00001ff2: REVERT
00001ff3: JUMPDEST
00001ff4: DUP1
00001ff5: DUP3
00001ff6: ADD
00001ff7: DUP1
00001ff8: DUP3
00001ff9: GT
00001ffa: ISZERO
00001ffb: PUSH2 0x1005
00001ffe: JUMPI
00001fff: PUSH2 0x1005
00002002: PUSH2 0x1fdd
00002005: JUMP
00002006: JUMPDEST
00002007: PUSH1 0x00
00002009: PUSH1 0x01
0000200b: DUP3
0000200c: ADD
0000200d: PUSH2 0x2018
00002010: JUMPI
00002011: PUSH2 0x2018
00002014: PUSH2 0x1fdd
00002017: JUMP
00002018: JUMPDEST
00002019: POP
0000201a: PUSH1 0x01
0000201c: ADD
0000201d: SWAP1
0000201e: JUMP
0000201f: JUMPDEST
00002020: DUP2
00002021: DUP2
00002022: SUB
00002023: DUP2
00002024: DUP2
00002025: GT
00002026: ISZERO
00002027: PUSH2 0x1005
0000202a: JUMPI
0000202b: PUSH2 0x1005
0000202e: PUSH2 0x1fdd
00002031: JUMP
00002032: JUMPDEST
00002033: PUSH4 0x4e487b71
00002038: PUSH1 0xe0
0000203a: SHL
0000203b: PUSH1 0x00
0000203d: MSTORE
0000203e: PUSH1 0x21
00002040: PUSH1 0x04
00002042: MSTORE
00002043: PUSH1 0x24
00002045: PUSH1 0x00
00002047: REVERT
00002048: JUMPDEST
00002049: PUSH4 0x4e487b71
0000204e: PUSH1 0xe0
00002050: SHL
00002051: PUSH1 0x00
00002053: MSTORE
00002054: PUSH1 0x32
00002056: PUSH1 0x04
00002058: MSTORE
00002059: PUSH1 0x24
0000205b: PUSH1 0x00
0000205d: REVERT
0000205e: JUMPDEST
0000205f: DUP2
00002060: DUP4
00002061: MSTORE
00002062: PUSH1 0x00
00002064: PUSH1 0x20
00002066: DUP1
00002067: DUP6
00002068: ADD
00002069: SWAP5
0000206a: POP
0000206b: DUP3
0000206c: PUSH1 0x00
0000206e: JUMPDEST
0000206f: DUP6
00002070: DUP2
00002071: LT
00002072: ISZERO
00002073: PUSH2 0x1bfd
00002076: JUMPI
00002077: PUSH1 0x01
00002079: PUSH1 0x01
0000207b: PUSH1 0xa0
0000207d: SHL
0000207e: SUB
0000207f: PUSH2 0x2087
00002082: DUP4
00002083: PUSH2 0x1b45
00002086: JUMP
00002087: JUMPDEST
00002088: AND
00002089: DUP8
0000208a: MSTORE
0000208b: SWAP6
0000208c: DUP3
0000208d: ADD
0000208e: SWAP6
0000208f: SWAP1
00002090: DUP3
00002091: ADD
00002092: SWAP1
00002093: PUSH1 0x01
00002095: ADD
00002096: PUSH2 0x206e
00002099: JUMP
0000209a: JUMPDEST
0000209b: PUSH1 0x80
0000209d: DUP2
0000209e: MSTORE
0000209f: PUSH1 0x00
000020a1: PUSH2 0x20ae
000020a4: PUSH1 0x80
000020a6: DUP4
000020a7: ADD
000020a8: DUP8
000020a9: DUP10
000020aa: PUSH2 0x205e
000020ad: JUMP
000020ae: JUMPDEST
000020af: PUSH1 0x01
000020b1: PUSH1 0x01
000020b3: PUSH1 0xa0
000020b5: SHL
000020b6: SUB
000020b7: DUP7
000020b8: DUP2
000020b9: AND
000020ba: PUSH1 0x20
000020bc: DUP6
000020bd: ADD
000020be: MSTORE
000020bf: DUP6
000020c0: AND
000020c1: PUSH1 0x40
000020c3: DUP5
000020c4: ADD
000020c5: MSTORE
000020c6: DUP3
000020c7: DUP2
000020c8: SUB
000020c9: PUSH1 0x60
000020cb: DUP5
000020cc: ADD
000020cd: MSTORE
000020ce: PUSH2 0x20d7
000020d1: DUP2
000020d2: DUP6
000020d3: PUSH2 0x1bcc
000020d6: JUMP
000020d7: JUMPDEST
000020d8: SWAP9
000020d9: SWAP8
000020da: POP
000020db: POP
000020dc: POP
000020dd: POP
000020de: POP
000020df: POP
000020e0: POP
000020e1: POP
000020e2: JUMP
000020e3: JUMPDEST
000020e4: PUSH1 0x00
000020e6: PUSH1 0x20
000020e8: DUP3
000020e9: DUP5
000020ea: SUB
000020eb: SLT
000020ec: ISZERO
000020ed: PUSH2 0x20f5
000020f0: JUMPI
000020f1: PUSH1 0x00
000020f3: DUP1
000020f4: REVERT
000020f5: JUMPDEST
000020f6: DUP2
000020f7: MLOAD
000020f8: PUSH2 0x1068
000020fb: DUP2
000020fc: PUSH2 0x1f2e
000020ff: JUMP
00002100: JUMPDEST
00002101: PUSH1 0x00
00002103: PUSH1 0x01
00002105: DUP1
00002106: PUSH1 0xa0
00002108: SHL
00002109: SUB
0000210a: DUP1
0000210b: DUP9
0000210c: AND
0000210d: DUP4
0000210e: MSTORE
0000210f: PUSH1 0x80
00002111: PUSH1 0x20
00002113: DUP5
00002114: ADD
00002115: MSTORE
00002116: PUSH2 0x2123
00002119: PUSH1 0x80
0000211b: DUP5
0000211c: ADD
0000211d: DUP8
0000211e: DUP10
0000211f: PUSH2 0x205e
00002122: JUMP
00002123: JUMPDEST
00002124: DUP2
00002125: DUP7
00002126: AND
00002127: PUSH1 0x40
00002129: DUP6
0000212a: ADD
0000212b: MSTORE
0000212c: DUP4
0000212d: DUP2
0000212e: SUB
0000212f: PUSH1 0x60
00002131: DUP6
00002132: ADD
00002133: MSTORE
00002134: PUSH2 0x213d
00002137: DUP2
00002138: DUP7
00002139: PUSH2 0x1bcc
0000213c: JUMP
0000213d: JUMPDEST
0000213e: SWAP10
0000213f: SWAP9
00002140: POP
00002141: POP
00002142: POP
00002143: POP
00002144: POP
00002145: POP
00002146: POP
00002147: POP
00002148: POP
00002149: JUMP
0000214a: JUMPDEST
0000214b: PUSH1 0x01
0000214d: DUP2
0000214e: DUP2
0000214f: SHR
00002150: SWAP1
00002151: DUP3
00002152: AND
00002153: DUP1
00002154: PUSH2 0x215e
00002157: JUMPI
00002158: PUSH1 0x7f
0000215a: DUP3
0000215b: AND
0000215c: SWAP2
0000215d: POP
0000215e: JUMPDEST
0000215f: PUSH1 0x20
00002161: DUP3
00002162: LT
00002163: DUP2
00002164: SUB
00002165: PUSH2 0x217e
00002168: JUMPI
00002169: PUSH4 0x4e487b71
0000216e: PUSH1 0xe0
00002170: SHL
00002171: PUSH1 0x00
00002173: MSTORE
00002174: PUSH1 0x22
00002176: PUSH1 0x04
00002178: MSTORE
00002179: PUSH1 0x24
0000217b: PUSH1 0x00
0000217d: REVERT
0000217e: JUMPDEST
0000217f: POP
00002180: SWAP2
00002181: SWAP1
00002182: POP
00002183: JUMP
00002184: JUMPDEST
00002185: DUP3
00002186: DUP2
00002187: MSTORE
00002188: PUSH1 0x40
0000218a: PUSH1 0x20
0000218c: DUP3
0000218d: ADD
0000218e: MSTORE
0000218f: PUSH1 0x00
00002191: PUSH2 0x219d
00002194: PUSH1 0x40
00002196: DUP4
00002197: ADD
00002198: DUP5
00002199: PUSH2 0x1ba0
0000219c: JUMP
0000219d: JUMPDEST
0000219e: SWAP5
0000219f: SWAP4
000021a0: POP
000021a1: POP
000021a2: POP
000021a3: POP
000021a4: JUMP
000021a5: JUMPDEST
000021a6: PUSH1 0x00
000021a8: DUP3
000021a9: MLOAD
000021aa: PUSH2 0x21b7
000021ad: DUP2
000021ae: DUP5
000021af: PUSH1 0x20
000021b1: DUP8
000021b2: ADD
000021b3: PUSH2 0x1b7c
000021b6: JUMP
000021b7: JUMPDEST
000021b8: SWAP2
000021b9: SWAP1
000021ba: SWAP2
000021bb: ADD
000021bc: SWAP3
000021bd: SWAP2
000021be: POP
000021bf: POP
000021c0: JUMP
000021c1: JUMPDEST
000021c2: PUSH1 0x00
000021c4: PUSH1 0x20
000021c6: DUP3
000021c7: DUP5
000021c8: SUB
000021c9: SLT
000021ca: ISZERO
000021cb: PUSH2 0x21d3
000021ce: JUMPI
000021cf: PUSH1 0x00
000021d1: DUP1
000021d2: REVERT
000021d3: JUMPDEST
000021d4: POP
000021d5: MLOAD
000021d6: SWAP2
000021d7: SWAP1
000021d8: POP
000021d9: JUMP
000021da: INVALID
000021db: LOG2
000021dc: PUSH5 0x6970667358
000021e2: UNKNOWN(0x22)
000021e3: SLT
000021e4: KECCAK256
000021e5: UNKNOWN(0xF7)
000021e6: UNKNOWN(0xBF)
000021e7: UNKNOWN(0xC8)
000021e8: PUSH21 0x00d175520d3a2e90e3041f83766bb8dbee0c14db0d
000021fe: UNKNOWN(0xB8)
000021ff: RETURN
00002200: TIMESTAMP
00002201: DUP1
00002202: PUSH14

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x593749e54baf1b341657ac42e07bf4c04eb3521f7d651fac9f25be0a81c9c8c8
call_targets: 0xf047ab4c75cebf0eb9ed34ae2c186f3611aeafa6
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x593749e54baf1b341657ac42e07bf4c04eb3521f7d651fac9f25be0a81c9c8c8",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf047ab4c75cebf0eb9ed34ae2c186f3611aeafa6"
    ],
    "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": "0xe3c34216",
            "selector": "0xe3c34216",
            "calldata_variants": [
                "0xe3c34216",
                "0xe3c342160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63b81a6",
            "selector": "0xe63b81a6",
            "calldata_variants": [
                "0xe63b81a6",
                "0xe63b81a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf03639e3",
            "selector": "0xf03639e3",
            "calldata_variants": [
                "0xf03639e3",
                "0xf03639e30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fef3a3",
            "selector": "0xf3fef3a3",
            "calldata_variants": [
                "0xf3fef3a3",
                "0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6203e35",
            "selector": "0xf6203e35",
            "calldata_variants": [
                "0xf6203e35",
                "0xf6203e350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa5a21fdf",
            "selector": "0xa5a21fdf",
            "calldata_variants": [
                "0xa5a21fdf",
                "0xa5a21fdf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb203bb99",
            "selector": "0xb203bb99",
            "calldata_variants": [
                "0xb203bb99",
                "0xb203bb990000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3629,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5104,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5248,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [],
    "untrusted_call_count": 4
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x593749e54baf1b341657ac42e07bf4c04eb3521f7d651fac9f25be0a81c9c8c8
call_targets: 0xf047ab4c75cebf0eb9ed34ae2c186f3611aeafa6
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x593749e54baf1b341657ac42e07bf4c04eb3521f7d651fac9f25be0a81c9c8c8",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf047ab4c75cebf0eb9ed34ae2c186f3611aeafa6"
    ],
    "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": "0xe3c34216",
            "selector": "0xe3c34216",
            "calldata_variants": [
                "0xe3c34216",
                "0xe3c342160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63b81a6",
            "selector": "0xe63b81a6",
            "calldata_variants": [
                "0xe63b81a6",
                "0xe63b81a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf03639e3",
            "selector": "0xf03639e3",
            "calldata_variants": [
                "0xf03639e3",
                "0xf03639e30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fef3a3",
            "selector": "0xf3fef3a3",
            "calldata_variants": [
                "0xf3fef3a3",
                "0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6203e35",
            "selector": "0xf6203e35",
            "calldata_variants": [
                "0xf6203e35",
                "0xf6203e350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa5a21fdf",
            "selector": "0xa5a21fdf",
            "calldata_variants": [
                "0xa5a21fdf",
                "0xa5a21fdf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb203bb99",
            "selector": "0xb203bb99",
            "calldata_variants": [
                "0xb203bb99",
                "0xb203bb990000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3629,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5104,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5248,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": []
}
medium math codex Fee-on-transfer tokens can inflate balances and drain pool 75 no
view
evidence_json
{
    "evidence": "`depositFor` increments `balance[_token][_for]` by `_amount` before calling `safeTransferFrom`, so credited balances do not reflect actual received tokens for taxed tokens.",
    "locations": [
        "contracts/contracts/ZtakingPool.sol:72"
    ],
    "recommendation": "Credit deposits based on the actual amount received (balance-before/after delta), or explicitly disallow fee-on-transfer/rebasing tokens and enforce it in allowlist policy and/or runtime checks.",
    "exploit_scenario": "If a fee-on-transfer or deflationary token is allowlisted, an attacker can deposit 100 units while the pool receives less (e.g., 90). The pool credits the full 100 to the attacker, who can later withdraw 100, effectively taking the shortfall from other stakers\u2019 liquidity or causing insolvency for late withdrawers."
}
low other codex Unchecked ERC20 approve during migration can desync balances/allowances for non-standard tokens 65 no
view
evidence_json
{
    "evidence": "`_migrate` zeroes balances, then calls `IERC20(_tokens[i]).approve(_migratorContract, _amounts[i])` without checking the return value.",
    "locations": [
        "contracts/contracts/ZtakingPool.sol:210"
    ],
    "recommendation": "Use `SafeERC20.forceApprove`/`safeIncreaseAllowance` and handle failures; consider zeroing balances only after approvals and migrator transfers succeed.",
    "exploit_scenario": "For tokens that return false on `approve` or require allowance to be zeroed first, the `approve` call can silently fail. Since balances are already zeroed, the pool proceeds to the migrator; if the migrator does not revert on a failed `transferFrom`, the user\u2019s balance is gone while tokens remain in the pool or stale allowances persist."
}