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

Analysis Run

caf2eb8b-4431-40aa-b249-a01dc82d0abe

complete
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 10:55 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
Authorization based on tx.origin
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
30811 report.consolidate complete 1 / 1 3 months ago
104525 artifact.fetch complete 1 / 3 1 week ago
104526 tool.cast_disasm complete 1 / 3 1 week ago
104527 analysis.bundle complete 1 / 3 1 week ago
104528 capability.graph complete 1 / 3 1 week ago
104529 detector.run complete 1 / 3 1 week ago
104530 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
1
No findings?
no
Summary
Found 1 medium-severity accounting issue in yVault share minting that allows donation-based share price inflation when totalSupply is low/zero, leading to zero-share mints and potential deposit theft.
View stderr
[codex:473710] OpenAI Codex v0.77.0 (research preview)
[codex:473710] --------
[codex:473710] workdir: /tmp/codex-multi-pok4974z
[codex:473710] model: gpt-5.2-codex
[codex:473710] provider: openai
[codex:473710] approval: never
[codex:473710] sandbox: read-only
[codex:473710] reasoning effort: xhigh
[codex:473710] reasoning summaries: auto
[codex:473710] session id: 019b7174-e1f7-73f0-9b4c-4d6fe5fc5db1
[codex:473710] --------
[codex:473710] user
[codex:473710] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:473710] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:473710] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:473710] 
[codex:473710] Scope rules:
[codex:473710] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:473710] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:473710] 
[codex:473710] Output MUST be valid JSON matching the provided schema.
[codex:473710] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:473710] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:473710] 
[codex:473710] Output constraints (IMPORTANT):
[codex:473710] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:473710] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:473710] mcp startup: no servers
[codex:473710] 
[codex:473710] thinking
[codex:473710] **Preparing to check available skills**
[codex:473710] exec
[codex:473710] /bin/bash -lc ls in /tmp/codex-multi-pok4974z succeeded in 5ms:
[codex:473710] AUDIT_BUNDLE.txt
[codex:473710] codex-output-schema.json
[codex:473710] contracts
[codex:473710] 
[codex:473710] thinking
[codex:473710] **Opening AUDIT_BUNDLE.txt**
[codex:473710] exec
[codex:473710] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-pok4974z succeeded in 5ms:
[codex:473710] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:473710] 
[codex:473710] ================================================================================
[codex:473710] FILE: contracts/Contract.sol
[codex:473710] ================================================================================
[codex:473710] pragma solidity ^0.5.16;
[codex:473710] 
[codex:473710] interface IERC20 {
[codex:473710]     function totalSupply() external view returns (uint256);
[codex:473710]     function balanceOf(address account) external view returns (uint256);
[codex:473710]     function transfer(address recipient, uint256 amount) external returns (bool);
[codex:473710]     function allowance(address owner, address spender) external view returns (uint256);
[codex:473710]     function approve(address spender, uint256 amount) external returns (bool);
[codex:473710]     function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
[codex:473710]     event Transfer(address indexed from, address indexed to, uint256 value);
[codex:473710]     event Approval(address indexed owner, address indexed spender, uint256 value);
[codex:473710] }
[codex:473710] 
[codex:473710] contract Context {
[codex:473710]     constructor () internal { }
[codex:473710] 
[codex:473710] 
[codex:473710] thinking
[codex:473710] **Evaluating Yearn vault contract vulnerabilities**
[codex:473710] 
[codex:473710] I'm analyzing the vault contract's access controls, deposit/withdraw logic, and interactions with controller and token contracts, focusing on reentrancy risks, share accounting with deflationary tokens, and potential governance misconfigurations that might cause denial-of-service or unexpected behaviors. There's a lot to unpack here about safeTransfer implications, external calls, and arithmetic edge cases.
[codex:473710] thinking
[codex:473710] **Modeling reentrancy impact on shares minting**
[codex:473710] 
[codex:473710] I'm testing if reentrancy during deposit and withdraw can let an attacker game share minting by manipulating pool size and totalSupply. The math suggests the attacker gains no advantage since minted shares decrease after reentrant withdraw reduces totalSupply, so reentrancy here doesn’t seem exploitable.
[codex:473710] exec
[codex:473710] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-pok4974z succeeded in 6ms:
[codex:473710] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:473710] 
[codex:473710] 
[codex:473710] thinking
[codex:473710] **Evaluating share minting vulnerabilities**
[codex:473710] thinking
[codex:473710] **Confirming donation attack severity and details**
[codex:473710] 
[codex:473710] I’m weighing the medium-to-high severity of the “first deposit donation attack” that causes zero-share minting and permanent fund loss, noting how minimal donations can block deposits completely, griefing depositors. I’ll verify line numbers in the contract for precise references to support this finding.
[codex:473710] exec
[codex:473710] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '200,340p'" in /tmp/codex-multi-pok4974z succeeded in 6ms:
[codex:473710]    200	        return a % b;
[codex:473710]    201	    }
[codex:473710]    202	}
[codex:473710]    203	
[codex:473710]    204	library Address {
[codex:473710]    205	    function isContract(address account) internal view returns (bool) {
[codex:473710]    206	        bytes32 codehash;
[codex:473710]    207	        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
[codex:473710]    208	        // solhint-disable-next-line no-inline-assembly
[codex:473710]    209	        assembly { codehash := extcodehash(account) }
[codex:473710]    210	        return (codehash != 0x0 && codehash != accountHash);
[codex:473710]    211	    }
[codex:473710]    212	    function toPayable(address account) internal pure returns (address payable) {
[codex:473710]    213	        return address(uint160(account));
[codex:473710]    214	    }
[codex:473710]    215	    function sendValue(address payable recipient, uint256 amount) internal {
[codex:473710]    216	        require(address(this).balance >= amount, "Address: insufficient balance");
[codex:473710]    217	
[codex:473710]    218	        // solhint-disable-next-line avoid-call-value
[codex:473710]    219	        (bool success, ) = recipient.call.value(amount)("");
[codex:473710] 
[codex:473710] thinking
[codex:473710] **Needing more lines for withdrawal**
[codex:473710] exec
[codex:473710] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '338,430p'" in /tmp/codex-multi-pok4974z succeeded in 6ms:
[codex:473710]    338	
[codex:473710]    339	  // No rebalance implementation for lower fees and faster swaps
[codex:473710]    340	  function withdraw(uint _shares) external {
[codex:473710]    341	      uint r = (balance().mul(_shares)).div(totalSupply());
[codex:473710]    342	      _burn(msg.sender, _shares);
[codex:473710]    343	
[codex:473710]    344	      // Check balance
[codex:473710]    345	      uint b = token.balanceOf(address(this));
[codex:473710]    346	      if (b < r) {
[codex:473710]    347	          uint _withdraw = r.sub(b);
[codex:473710]    348	          Controller(controller).withdraw(address(token), _withdraw);
[codex:473710]    349	          uint _after = token.balanceOf(address(this));
[codex:473710]    350	          uint _diff = _after.sub(b);
[codex:473710]    351	          if (_diff < _withdraw) {
[codex:473710]    352	              r = b.add(_diff);
[codex:473710]    353	          }
[codex:473710]    354	      }
[codex:473710]    355	      
[codex:473710]    356	      token.safeTransfer(msg.sender, r);
[codex:473710]    357	  }
[codex:473710] 
[codex:473710] thinking
[codex:473710] **Verifying line number referencing**
[codex:473710] exec
[codex:473710] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '250,360p'" in /tmp/codex-multi-pok4974z succeeded in 6ms:
[codex:473710]    250	        // solhint-disable-next-line avoid-low-level-calls
[codex:473710]    251	        (bool success, bytes memory returndata) = address(token).call(data);
[codex:473710]    252	        require(success, "SafeERC20: low-level call failed");
[codex:473710]    253	
[codex:473710]    254	        if (returndata.length > 0) { // Return data is optional
[codex:473710]    255	            // solhint-disable-next-line max-line-length
[codex:473710]    256	            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
[codex:473710]    257	        }
[codex:473710]    258	    }
[codex:473710]    259	}
[codex:473710]    260	
[codex:473710]    261	interface Controller {
[codex:473710]    262	    function withdraw(address, uint) external;
[codex:473710]    263	    function balanceOf(address) external view returns (uint);
[codex:473710]    264	    function earn(address, uint) external;
[codex:473710]    265	}
[codex:473710]    266	
[codex:473710]    267	contract yVault is ERC20, ERC20Detailed {
[codex:473710]    268	  using SafeERC20 for IERC20;
[codex:473710]    269	  using Address for address;
[codex:473710] 
[codex:473710] thinking
[codex:473710] **Composing detailed vulnerability report**
[codex:473710] 
[codex:473710] I’m putting together a comprehensive JSON report outlining a medium-severity math vulnerability in share minting due to donation-induced vault balance inflation when totalSupply is low or zero. I want to clearly define the exploit scenario, evidence referencing specific code lines, and solid recommendations to help the user understand this subtle but impactful risk.
[codex:473710] codex
[codex:473710] {"no_findings":false,"summary":"Found 1 medium-severity accounting issue in yVault share minting that allows donation-based share price inflation when totalSupply is low/zero, leading to zero-share mints and potential deposit theft.","findings":[{"severity":"medium","category":"math","title":"Share inflation via donations can force zero-share mints and steal deposits","exploit_scenario":"An attacker deposits a minimal amount to mint 1 share, then directly transfers (donates) a large amount of underlying tokens to the vault, inflating `_pool` without increasing `totalSupply`. A victim who deposits afterward receives `shares = amount * totalSupply / _pool`, which truncates to 0 when the donated amount exceeds the victim’s deposit. The attacker then withdraws their single share and receives essentially the entire pool, including the victim’s deposit. A related griefing case exists if tokens are donated before the first deposit (totalSupply==0 but _pool>0), causing all deposits to mint 0 shares and locking funds.","recommendation":"Guard the initial mint based on `totalSupply()` (not just `_pool`) and prevent zero-share mints. Common mitigations: revert if `totalSupply()==0 && _pool>0`, mint a small non-withdrawable “seed” amount to a burn address, add virtual shares/liquidity, and/or require `shares > 0` to proceed.","evidence":"deposit() calculates shares using `_pool = balance()` and only checks `_pool==0`, so if `totalSupply()==0` but `_pool>0` (via donations), `shares = (_amount * totalSupply) / _pool` becomes 0; similarly, an inflated `_pool` with low `totalSupply` can force extreme truncation.","locations":["contracts/Contract.sol:322","contracts/Contract.sol:326","contracts/Contract.sol:329","contracts/Contract.sol:331"]}]}
[codex:473710] tokens used
[codex:473710] 20,155
[codex:473710] {"no_findings":false,"summary":"Found 1 medium-severity accounting issue in yVault share minting that allows donation-based share price inflation when totalSupply is low/zero, leading to zero-share mints and potential deposit theft.","findings":[{"severity":"medium","category":"math","title":"Share inflation via donations can force zero-share mints and steal deposits","exploit_scenario":"An attacker deposits a minimal amount to mint 1 share, then directly transfers (donates) a large amount of underlying tokens to the vault, inflating `_pool` without increasing `totalSupply`. A victim who deposits afterward receives `shares = amount * totalSupply / _pool`, which truncates to 0 when the donated amount exceeds the victim’s deposit. The attacker then withdraws their single share and receives essentially the entire pool, including the victim’s deposit. A related griefing case exists if tokens are donated before the first deposit (totalSupply==0 but _pool>0), causing all deposits to mint 0 shares and locking funds.","recommendation":"Guard the initial mint based on `totalSupply()` (not just `_pool`) and prevent zero-share mints. Common mitigations: revert if `totalSupply()==0 && _pool>0`, mint a small non-withdrawable “seed” amount to a burn address, add virtual shares/liquidity, and/or require `shares > 0` to proceed.","evidence":"deposit() calculates shares using `_pool = balance()` and only checks `_pool==0`, so if `totalSupply()==0` but `_pool>0` (via donations), `shares = (_amount * totalSupply) / _pool` becomes 0; similarly, an inflated `_pool` with low `totalSupply` can force extreme truncation.","locations":["contracts/Contract.sol:322","contracts/Contract.sol:326","contracts/Contract.sol:329","contracts/Contract.sol:331"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T22:55:05.119241+00:00",
        "returncode": 0
    },
    "summary": "Found 1 medium-severity accounting issue in yVault share minting that allows donation-based share price inflation when totalSupply is low/zero, leading to zero-share mints and potential deposit theft.",
    "raw_final": {
        "summary": "Found 1 medium-severity accounting issue in yVault share minting that allows donation-based share price inflation when totalSupply is low/zero, leading to zero-share mints and potential deposit theft.",
        "findings": [
            {
                "title": "Share inflation via donations can force zero-share mints and steal deposits",
                "category": "math",
                "evidence": "deposit() calculates shares using `_pool = balance()` and only checks `_pool==0`, so if `totalSupply()==0` but `_pool>0` (via donations), `shares = (_amount * totalSupply) / _pool` becomes 0; similarly, an inflated `_pool` with low `totalSupply` can force extreme truncation.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:322",
                    "contracts/Contract.sol:326",
                    "contracts/Contract.sol:329",
                    "contracts/Contract.sol:331"
                ],
                "recommendation": "Guard the initial mint based on `totalSupply()` (not just `_pool`) and prevent zero-share mints. Common mitigations: revert if `totalSupply()==0 && _pool>0`, mint a small non-withdrawable \u201cseed\u201d amount to a burn address, add virtual shares/liquidity, and/or require `shares > 0` to proceed.",
                "exploit_scenario": "An attacker deposits a minimal amount to mint 1 share, then directly transfers (donates) a large amount of underlying tokens to the vault, inflating `_pool` without increasing `totalSupply`. A victim who deposits afterward receives `shares = amount * totalSupply / _pool`, which truncates to 0 when the donated amount exceeds the victim\u2019s deposit. The attacker then withdraws their single share and receives essentially the entire pool, including the victim\u2019s deposit. A related griefing case exists if tokens are donated before the first deposit (totalSupply==0 but _pool>0), causing all deposits to mint 0 shares and locking funds."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
8
EXT*/BALANCE
8
Total opcodes
5110
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x0173
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x77c7b8fc
00000026: GT
00000027: PUSH2 0x00de
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xb69ef8a8
00000031: GT
00000032: PUSH2 0x0097
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xdd62ed3e
0000003c: GT
0000003d: PUSH2 0x0071
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xdd62ed3e
00000047: EQ
00000048: PUSH2 0x0714
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xf77c4791
00000052: EQ
00000053: PUSH2 0x078c
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xf8897945
0000005d: EQ
0000005e: PUSH2 0x07d6
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xfc0c546a
00000068: EQ
00000069: PUSH2 0x07f4
0000006c: JUMPI
0000006d: PUSH2 0x0173
00000070: JUMP
00000071: JUMPDEST
00000072: DUP1
00000073: PUSH4 0xb69ef8a8
00000078: EQ
00000079: PUSH2 0x06be
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0xb6b55f25
00000083: EQ
00000084: PUSH2 0x06dc
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0xd389800f
0000008e: EQ
0000008f: PUSH2 0x070a
00000092: JUMPI
00000093: PUSH2 0x0173
00000096: JUMP
00000097: JUMPDEST
00000098: DUP1
00000099: PUSH4 0x77c7b8fc
0000009e: EQ
0000009f: PUSH2 0x04c9
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0x92eefe9b
000000a9: EQ
000000aa: PUSH2 0x04e7
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0x95d89b41
000000b4: EQ
000000b5: PUSH2 0x052b
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0xa457c2d7
000000bf: EQ
000000c0: PUSH2 0x05ae
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0xa9059cbb
000000ca: EQ
000000cb: PUSH2 0x0614
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xab033ea9
000000d5: EQ
000000d6: PUSH2 0x067a
000000d9: JUMPI
000000da: PUSH2 0x0173
000000dd: JUMP
000000de: JUMPDEST
000000df: DUP1
000000e0: PUSH4 0x39509351
000000e5: GT
000000e6: PUSH2 0x0130
000000e9: JUMPI
000000ea: DUP1
000000eb: PUSH4 0x39509351
000000f0: EQ
000000f1: PUSH2 0x0357
000000f4: JUMPI
000000f5: DUP1
000000f6: PUSH4 0x45dc3dd8
000000fb: EQ
000000fc: PUSH2 0x03bd
000000ff: JUMPI
00000100: DUP1
00000101: PUSH4 0x48a0d754
00000106: EQ
00000107: PUSH2 0x03eb
0000010a: JUMPI
0000010b: DUP1
0000010c: PUSH4 0x5aa6e675
00000111: EQ
00000112: PUSH2 0x0409
00000115: JUMPI
00000116: DUP1
00000117: PUSH4 0x6ac5db19
0000011c: EQ
0000011d: PUSH2 0x0453
00000120: JUMPI
00000121: DUP1
00000122: PUSH4 0x70a08231
00000127: EQ
00000128: PUSH2 0x0471
0000012b: JUMPI
0000012c: PUSH2 0x0173
0000012f: JUMP
00000130: JUMPDEST
00000131: DUP1
00000132: PUSH4 0x06fdde03
00000137: EQ
00000138: PUSH2 0x0178
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0x095ea7b3
00000142: EQ
00000143: PUSH2 0x01fb
00000146: JUMPI
00000147: DUP1
00000148: PUSH4 0x18160ddd
0000014d: EQ
0000014e: PUSH2 0x0261
00000151: JUMPI
00000152: DUP1
00000153: PUSH4 0x23b872dd
00000158: EQ
00000159: PUSH2 0x027f
0000015c: JUMPI
0000015d: DUP1
0000015e: PUSH4 0x2e1a7d4d
00000163: EQ
00000164: PUSH2 0x0305
00000167: JUMPI
00000168: DUP1
00000169: PUSH4 0x313ce567
0000016e: EQ
0000016f: PUSH2 0x0333
00000172: JUMPI
00000173: JUMPDEST
00000174: PUSH1 0x00
00000176: DUP1
00000177: REVERT
00000178: JUMPDEST
00000179: PUSH2 0x0180
0000017c: PUSH2 0x083e
0000017f: JUMP
00000180: JUMPDEST
00000181: PUSH1 0x40
00000183: MLOAD
00000184: DUP1
00000185: DUP1
00000186: PUSH1 0x20
00000188: ADD
00000189: DUP3
0000018a: DUP2
0000018b: SUB
0000018c: DUP3
0000018d: MSTORE
0000018e: DUP4
0000018f: DUP2
00000190: DUP2
00000191: MLOAD
00000192: DUP2
00000193: MSTORE
00000194: PUSH1 0x20
00000196: ADD
00000197: SWAP2
00000198: POP
00000199: DUP1
0000019a: MLOAD
0000019b: SWAP1
0000019c: PUSH1 0x20
0000019e: ADD
0000019f: SWAP1
000001a0: DUP1
000001a1: DUP4
000001a2: DUP4
000001a3: PUSH1 0x00
000001a5: JUMPDEST
000001a6: DUP4
000001a7: DUP2
000001a8: LT
000001a9: ISZERO
000001aa: PUSH2 0x01c0
000001ad: JUMPI
000001ae: DUP1
000001af: DUP3
000001b0: ADD
000001b1: MLOAD
000001b2: DUP2
000001b3: DUP5
000001b4: ADD
000001b5: MSTORE
000001b6: PUSH1 0x20
000001b8: DUP2
000001b9: ADD
000001ba: SWAP1
000001bb: POP
000001bc: PUSH2 0x01a5
000001bf: JUMP
000001c0: JUMPDEST
000001c1: POP
000001c2: POP
000001c3: POP
000001c4: POP
000001c5: SWAP1
000001c6: POP
000001c7: SWAP1
000001c8: DUP2
000001c9: ADD
000001ca: SWAP1
000001cb: PUSH1 0x1f
000001cd: AND
000001ce: DUP1
000001cf: ISZERO
000001d0: PUSH2 0x01ed
000001d3: JUMPI
000001d4: DUP1
000001d5: DUP3
000001d6: SUB
000001d7: DUP1
000001d8: MLOAD
000001d9: PUSH1 0x01
000001db: DUP4
000001dc: PUSH1 0x20
000001de: SUB
000001df: PUSH2 0x0100
000001e2: EXP
000001e3: SUB
000001e4: NOT
000001e5: AND
000001e6: DUP2
000001e7: MSTORE
000001e8: PUSH1 0x20
000001ea: ADD
000001eb: SWAP2
000001ec: POP
000001ed: JUMPDEST
000001ee: POP
000001ef: SWAP3
000001f0: POP
000001f1: POP
000001f2: POP
000001f3: PUSH1 0x40
000001f5: MLOAD
000001f6: DUP1
000001f7: SWAP2
000001f8: SUB
000001f9: SWAP1
000001fa: RETURN
000001fb: JUMPDEST
000001fc: PUSH2 0x0247
000001ff: PUSH1 0x04
00000201: DUP1
00000202: CALLDATASIZE
00000203: SUB
00000204: PUSH1 0x40
00000206: DUP2
00000207: LT
00000208: ISZERO
00000209: PUSH2 0x0211
0000020c: JUMPI
0000020d: PUSH1 0x00
0000020f: DUP1
00000210: REVERT
00000211: JUMPDEST
00000212: DUP2
00000213: ADD
00000214: SWAP1
00000215: DUP1
00000216: DUP1
00000217: CALLDATALOAD
00000218: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000022d: AND
0000022e: SWAP1
0000022f: PUSH1 0x20
00000231: ADD
00000232: SWAP1
00000233: SWAP3
00000234: SWAP2
00000235: SWAP1
00000236: DUP1
00000237: CALLDATALOAD
00000238: SWAP1
00000239: PUSH1 0x20
0000023b: ADD
0000023c: SWAP1
0000023d: SWAP3
0000023e: SWAP2
0000023f: SWAP1
00000240: POP
00000241: POP
00000242: POP
00000243: PUSH2 0x08e0
00000246: JUMP
00000247: JUMPDEST
00000248: PUSH1 0x40
0000024a: MLOAD
0000024b: DUP1
0000024c: DUP3
0000024d: ISZERO
0000024e: ISZERO
0000024f: ISZERO
00000250: ISZERO
00000251: DUP2
00000252: MSTORE
00000253: PUSH1 0x20
00000255: ADD
00000256: SWAP2
00000257: POP
00000258: POP
00000259: PUSH1 0x40
0000025b: MLOAD
0000025c: DUP1
0000025d: SWAP2
0000025e: SUB
0000025f: SWAP1
00000260: RETURN
00000261: JUMPDEST
00000262: PUSH2 0x0269
00000265: PUSH2 0x08fe
00000268: JUMP
00000269: JUMPDEST
0000026a: PUSH1 0x40
0000026c: MLOAD
0000026d: DUP1
0000026e: DUP3
0000026f: DUP2
00000270: MSTORE
00000271: PUSH1 0x20
00000273: ADD
00000274: SWAP2
00000275: POP
00000276: POP
00000277: PUSH1 0x40
00000279: MLOAD
0000027a: DUP1
0000027b: SWAP2
0000027c: SUB
0000027d: SWAP1
0000027e: RETURN
0000027f: JUMPDEST
00000280: PUSH2 0x02eb
00000283: PUSH1 0x04
00000285: DUP1
00000286: CALLDATASIZE
00000287: SUB
00000288: PUSH1 0x60
0000028a: DUP2
0000028b: LT
0000028c: ISZERO
0000028d: PUSH2 0x0295
00000290: JUMPI
00000291: PUSH1 0x00
00000293: DUP1
00000294: REVERT
00000295: JUMPDEST
00000296: DUP2
00000297: ADD
00000298: SWAP1
00000299: DUP1
0000029a: DUP1
0000029b: CALLDATALOAD
0000029c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002b1: AND
000002b2: SWAP1
000002b3: PUSH1 0x20
000002b5: ADD
000002b6: SWAP1
000002b7: SWAP3
000002b8: SWAP2
000002b9: SWAP1
000002ba: DUP1
000002bb: CALLDATALOAD
000002bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002d1: AND
000002d2: SWAP1
000002d3: PUSH1 0x20
000002d5: ADD
000002d6: SWAP1
000002d7: SWAP3
000002d8: SWAP2
000002d9: SWAP1
000002da: DUP1
000002db: CALLDATALOAD
000002dc: SWAP1
000002dd: PUSH1 0x20
000002df: ADD
000002e0: SWAP1
000002e1: SWAP3
000002e2: SWAP2
000002e3: SWAP1
000002e4: POP
000002e5: POP
000002e6: POP
000002e7: PUSH2 0x0908
000002ea: JUMP
000002eb: JUMPDEST
000002ec: PUSH1 0x40
000002ee: MLOAD
000002ef: DUP1
000002f0: DUP3
000002f1: ISZERO
000002f2: ISZERO
000002f3: ISZERO
000002f4: ISZERO
000002f5: DUP2
000002f6: MSTORE
000002f7: PUSH1 0x20
000002f9: ADD
000002fa: SWAP2
000002fb: POP
000002fc: POP
000002fd: PUSH1 0x40
000002ff: MLOAD
00000300: DUP1
00000301: SWAP2
00000302: SUB
00000303: SWAP1
00000304: RETURN
00000305: JUMPDEST
00000306: PUSH2 0x0331
00000309: PUSH1 0x04
0000030b: DUP1
0000030c: CALLDATASIZE
0000030d: SUB
0000030e: PUSH1 0x20
00000310: DUP2
00000311: LT
00000312: ISZERO
00000313: PUSH2 0x031b
00000316: JUMPI
00000317: PUSH1 0x00
00000319: DUP1
0000031a: REVERT
0000031b: JUMPDEST
0000031c: DUP2
0000031d: ADD
0000031e: SWAP1
0000031f: DUP1
00000320: DUP1
00000321: CALLDATALOAD
00000322: SWAP1
00000323: PUSH1 0x20
00000325: ADD
00000326: SWAP1
00000327: SWAP3
00000328: SWAP2
00000329: SWAP1
0000032a: POP
0000032b: POP
0000032c: POP
0000032d: PUSH2 0x09e1
00000330: JUMP
00000331: JUMPDEST
00000332: STOP
00000333: JUMPDEST
00000334: PUSH2 0x033b
00000337: PUSH2 0x0d6b
0000033a: JUMP
0000033b: JUMPDEST
0000033c: PUSH1 0x40
0000033e: MLOAD
0000033f: DUP1
00000340: DUP3
00000341: PUSH1 0xff
00000343: AND
00000344: PUSH1 0xff
00000346: AND
00000347: DUP2
00000348: MSTORE
00000349: PUSH1 0x20
0000034b: ADD
0000034c: SWAP2
0000034d: POP
0000034e: POP
0000034f: PUSH1 0x40
00000351: MLOAD
00000352: DUP1
00000353: SWAP2
00000354: SUB
00000355: SWAP1
00000356: RETURN
00000357: JUMPDEST
00000358: PUSH2 0x03a3
0000035b: PUSH1 0x04
0000035d: DUP1
0000035e: CALLDATASIZE
0000035f: SUB
00000360: PUSH1 0x40
00000362: DUP2
00000363: LT
00000364: ISZERO
00000365: PUSH2 0x036d
00000368: JUMPI
00000369: PUSH1 0x00
0000036b: DUP1
0000036c: REVERT
0000036d: JUMPDEST
0000036e: DUP2
0000036f: ADD
00000370: SWAP1
00000371: DUP1
00000372: DUP1
00000373: CALLDATALOAD
00000374: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000389: AND
0000038a: SWAP1
0000038b: PUSH1 0x20
0000038d: ADD
0000038e: SWAP1
0000038f: SWAP3
00000390: SWAP2
00000391: SWAP1
00000392: DUP1
00000393: CALLDATALOAD
00000394: SWAP1
00000395: PUSH1 0x20
00000397: ADD
00000398: SWAP1
00000399: SWAP3
0000039a: SWAP2
0000039b: SWAP1
0000039c: POP
0000039d: POP
0000039e: POP
0000039f: PUSH2 0x0d82
000003a2: JUMP
000003a3: JUMPDEST
000003a4: PUSH1 0x40
000003a6: MLOAD
000003a7: DUP1
000003a8: DUP3
000003a9: ISZERO
000003aa: ISZERO
000003ab: ISZERO
000003ac: ISZERO
000003ad: DUP2
000003ae: MSTORE
000003af: PUSH1 0x20
000003b1: ADD
000003b2: SWAP2
000003b3: POP
000003b4: POP
000003b5: PUSH1 0x40
000003b7: MLOAD
000003b8: DUP1
000003b9: SWAP2
000003ba: SUB
000003bb: SWAP1
000003bc: RETURN
000003bd: JUMPDEST
000003be: PUSH2 0x03e9
000003c1: PUSH1 0x04
000003c3: DUP1
000003c4: CALLDATASIZE
000003c5: SUB
000003c6: PUSH1 0x20
000003c8: DUP2
000003c9: LT
000003ca: ISZERO
000003cb: PUSH2 0x03d3
000003ce: JUMPI
000003cf: PUSH1 0x00
000003d1: DUP1
000003d2: REVERT
000003d3: JUMPDEST
000003d4: DUP2
000003d5: ADD
000003d6: SWAP1
000003d7: DUP1
000003d8: DUP1
000003d9: CALLDATALOAD
000003da: SWAP1
000003db: PUSH1 0x20
000003dd: ADD
000003de: SWAP1
000003df: SWAP3
000003e0: SWAP2
000003e1: SWAP1
000003e2: POP
000003e3: POP
000003e4: POP
000003e5: PUSH2 0x0e35
000003e8: JUMP
000003e9: JUMPDEST
000003ea: STOP
000003eb: JUMPDEST
000003ec: PUSH2 0x03f3
000003ef: PUSH2 0x0f02
000003f2: JUMP
000003f3: JUMPDEST
000003f4: PUSH1 0x40
000003f6: MLOAD
000003f7: DUP1
000003f8: DUP3
000003f9: DUP2
000003fa: MSTORE
000003fb: PUSH1 0x20
000003fd: ADD
000003fe: SWAP2
000003ff: POP
00000400: POP
00000401: PUSH1 0x40
00000403: MLOAD
00000404: DUP1
00000405: SWAP2
00000406: SUB
00000407: SWAP1
00000408: RETURN
00000409: JUMPDEST
0000040a: PUSH2 0x0411
0000040d: PUSH2 0x100b
00000410: JUMP
00000411: JUMPDEST
00000412: PUSH1 0x40
00000414: MLOAD
00000415: DUP1
00000416: DUP3
00000417: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000042c: AND
0000042d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000442: AND
00000443: DUP2
00000444: MSTORE
00000445: PUSH1 0x20
00000447: ADD
00000448: SWAP2
00000449: POP
0000044a: POP
0000044b: PUSH1 0x40
0000044d: MLOAD
0000044e: DUP1
0000044f: SWAP2
00000450: SUB
00000451: SWAP1
00000452: RETURN
00000453: JUMPDEST
00000454: PUSH2 0x045b
00000457: PUSH2 0x1031
0000045a: JUMP
0000045b: JUMPDEST
0000045c: PUSH1 0x40
0000045e: MLOAD
0000045f: DUP1
00000460: DUP3
00000461: DUP2
00000462: MSTORE
00000463: PUSH1 0x20
00000465: ADD
00000466: SWAP2
00000467: POP
00000468: POP
00000469: PUSH1 0x40
0000046b: MLOAD
0000046c: DUP1
0000046d: SWAP2
0000046e: SUB
0000046f: SWAP1
00000470: RETURN
00000471: JUMPDEST
00000472: PUSH2 0x04b3
00000475: PUSH1 0x04
00000477: DUP1
00000478: CALLDATASIZE
00000479: SUB
0000047a: PUSH1 0x20
0000047c: DUP2
0000047d: LT
0000047e: ISZERO
0000047f: PUSH2 0x0487
00000482: JUMPI
00000483: PUSH1 0x00
00000485: DUP1
00000486: REVERT
00000487: JUMPDEST
00000488: DUP2
00000489: ADD
0000048a: SWAP1
0000048b: DUP1
0000048c: DUP1
0000048d: CALLDATALOAD
0000048e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004a3: AND
000004a4: SWAP1
000004a5: PUSH1 0x20
000004a7: ADD
000004a8: SWAP1
000004a9: SWAP3
000004aa: SWAP2
000004ab: SWAP1
000004ac: POP
000004ad: POP
000004ae: POP
000004af: PUSH2 0x1037
000004b2: JUMP
000004b3: JUMPDEST
000004b4: PUSH1 0x40
000004b6: MLOAD
000004b7: DUP1
000004b8: DUP3
000004b9: DUP2
000004ba: MSTORE
000004bb: PUSH1 0x20
000004bd: ADD
000004be: SWAP2
000004bf: POP
000004c0: POP
000004c1: PUSH1 0x40
000004c3: MLOAD
000004c4: DUP1
000004c5: SWAP2
000004c6: SUB
000004c7: SWAP1
000004c8: RETURN
000004c9: JUMPDEST
000004ca: PUSH2 0x04d1
000004cd: PUSH2 0x107f
000004d0: JUMP
000004d1: JUMPDEST
000004d2: PUSH1 0x40
000004d4: MLOAD
000004d5: DUP1
000004d6: DUP3
000004d7: DUP2
000004d8: MSTORE
000004d9: PUSH1 0x20
000004db: ADD
000004dc: SWAP2
000004dd: POP
000004de: POP
000004df: PUSH1 0x40
000004e1: MLOAD
000004e2: DUP1
000004e3: SWAP2
000004e4: SUB
000004e5: SWAP1
000004e6: RETURN
000004e7: JUMPDEST
000004e8: PUSH2 0x0529
000004eb: PUSH1 0x04
000004ed: DUP1
000004ee: CALLDATASIZE
000004ef: SUB
000004f0: PUSH1 0x20
000004f2: DUP2
000004f3: LT
000004f4: ISZERO
000004f5: PUSH2 0x04fd
000004f8: JUMPI
000004f9: PUSH1 0x00
000004fb: DUP1
000004fc: REVERT
000004fd: JUMPDEST
000004fe: DUP2
000004ff: ADD
00000500: SWAP1
00000501: DUP1
00000502: DUP1
00000503: CALLDATALOAD
00000504: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000519: AND
0000051a: SWAP1
0000051b: PUSH1 0x20
0000051d: ADD
0000051e: SWAP1
0000051f: SWAP3
00000520: SWAP2
00000521: SWAP1
00000522: POP
00000523: POP
00000524: POP
00000525: PUSH2 0x10c1
00000528: JUMP
00000529: JUMPDEST
0000052a: STOP
0000052b: JUMPDEST
0000052c: PUSH2 0x0533
0000052f: PUSH2 0x11c8
00000532: JUMP
00000533: JUMPDEST
00000534: PUSH1 0x40
00000536: MLOAD
00000537: DUP1
00000538: DUP1
00000539: PUSH1 0x20
0000053b: ADD
0000053c: DUP3
0000053d: DUP2
0000053e: SUB
0000053f: DUP3
00000540: MSTORE
00000541: DUP4
00000542: DUP2
00000543: DUP2
00000544: MLOAD
00000545: DUP2
00000546: MSTORE
00000547: PUSH1 0x20
00000549: ADD
0000054a: SWAP2
0000054b: POP
0000054c: DUP1
0000054d: MLOAD
0000054e: SWAP1
0000054f: PUSH1 0x20
00000551: ADD
00000552: SWAP1
00000553: DUP1
00000554: DUP4
00000555: DUP4
00000556: PUSH1 0x00
00000558: JUMPDEST
00000559: DUP4
0000055a: DUP2
0000055b: LT
0000055c: ISZERO
0000055d: PUSH2 0x0573
00000560: JUMPI
00000561: DUP1
00000562: DUP3
00000563: ADD
00000564: MLOAD
00000565: DUP2
00000566: DUP5
00000567: ADD
00000568: MSTORE
00000569: PUSH1 0x20
0000056b: DUP2
0000056c: ADD
0000056d: SWAP1
0000056e: POP
0000056f: PUSH2 0x0558
00000572: JUMP
00000573: JUMPDEST
00000574: POP
00000575: POP
00000576: POP
00000577: POP
00000578: SWAP1
00000579: POP
0000057a: SWAP1
0000057b: DUP2
0000057c: ADD
0000057d: SWAP1
0000057e: PUSH1 0x1f
00000580: AND
00000581: DUP1
00000582: ISZERO
00000583: PUSH2 0x05a0
00000586: JUMPI
00000587: DUP1
00000588: DUP3
00000589: SUB
0000058a: DUP1
0000058b: MLOAD
0000058c: PUSH1 0x01
0000058e: DUP4
0000058f: PUSH1 0x20
00000591: SUB
00000592: PUSH2 0x0100
00000595: EXP
00000596: SUB
00000597: NOT
00000598: AND
00000599: DUP2
0000059a: MSTORE
0000059b: PUSH1 0x20
0000059d: ADD
0000059e: SWAP2
0000059f: POP
000005a0: JUMPDEST
000005a1: POP
000005a2: SWAP3
000005a3: POP
000005a4: POP
000005a5: POP
000005a6: PUSH1 0x40
000005a8: MLOAD
000005a9: DUP1
000005aa: SWAP2
000005ab: SUB
000005ac: SWAP1
000005ad: RETURN
000005ae: JUMPDEST
000005af: PUSH2 0x05fa
000005b2: PUSH1 0x04
000005b4: DUP1
000005b5: CALLDATASIZE
000005b6: SUB
000005b7: PUSH1 0x40
000005b9: DUP2
000005ba: LT
000005bb: ISZERO
000005bc: PUSH2 0x05c4
000005bf: JUMPI
000005c0: PUSH1 0x00
000005c2: DUP1
000005c3: REVERT
000005c4: JUMPDEST
000005c5: DUP2
000005c6: ADD
000005c7: SWAP1
000005c8: DUP1
000005c9: DUP1
000005ca: CALLDATALOAD
000005cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005e0: AND
000005e1: SWAP1
000005e2: PUSH1 0x20
000005e4: ADD
000005e5: SWAP1
000005e6: SWAP3
000005e7: SWAP2
000005e8: SWAP1
000005e9: DUP1
000005ea: CALLDATALOAD
000005eb: SWAP1
000005ec: PUSH1 0x20
000005ee: ADD
000005ef: SWAP1
000005f0: SWAP3
000005f1: SWAP2
000005f2: SWAP1
000005f3: POP
000005f4: POP
000005f5: POP
000005f6: PUSH2 0x126a
000005f9: JUMP
000005fa: JUMPDEST
000005fb: PUSH1 0x40
000005fd: MLOAD
000005fe: DUP1
000005ff: DUP3
00000600: ISZERO
00000601: ISZERO
00000602: ISZERO
00000603: ISZERO
00000604: DUP2
00000605: MSTORE
00000606: PUSH1 0x20
00000608: ADD
00000609: SWAP2
0000060a: POP
0000060b: POP
0000060c: PUSH1 0x40
0000060e: MLOAD
0000060f: DUP1
00000610: SWAP2
00000611: SUB
00000612: SWAP1
00000613: RETURN
00000614: JUMPDEST
00000615: PUSH2 0x0660
00000618: PUSH1 0x04
0000061a: DUP1
0000061b: CALLDATASIZE
0000061c: SUB
0000061d: PUSH1 0x40
0000061f: DUP2
00000620: LT
00000621: ISZERO
00000622: PUSH2 0x062a
00000625: JUMPI
00000626: PUSH1 0x00
00000628: DUP1
00000629: REVERT
0000062a: JUMPDEST
0000062b: DUP2
0000062c: ADD
0000062d: SWAP1
0000062e: DUP1
0000062f: DUP1
00000630: CALLDATALOAD
00000631: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000646: AND
00000647: SWAP1
00000648: PUSH1 0x20
0000064a: ADD
0000064b: SWAP1
0000064c: SWAP3
0000064d: SWAP2
0000064e: SWAP1
0000064f: DUP1
00000650: CALLDATALOAD
00000651: SWAP1
00000652: PUSH1 0x20
00000654: ADD
00000655: SWAP1
00000656: SWAP3
00000657: SWAP2
00000658: SWAP1
00000659: POP
0000065a: POP
0000065b: POP
0000065c: PUSH2 0x1337
0000065f: JUMP
00000660: JUMPDEST
00000661: PUSH1 0x40
00000663: MLOAD
00000664: DUP1
00000665: DUP3
00000666: ISZERO
00000667: ISZERO
00000668: ISZERO
00000669: ISZERO
0000066a: DUP2
0000066b: MSTORE
0000066c: PUSH1 0x20
0000066e: ADD
0000066f: SWAP2
00000670: POP
00000671: POP
00000672: PUSH1 0x40
00000674: MLOAD
00000675: DUP1
00000676: SWAP2
00000677: SUB
00000678: SWAP1
00000679: RETURN
0000067a: JUMPDEST
0000067b: PUSH2 0x06bc
0000067e: PUSH1 0x04
00000680: DUP1
00000681: CALLDATASIZE
00000682: SUB
00000683: PUSH1 0x20
00000685: DUP2
00000686: LT
00000687: ISZERO
00000688: PUSH2 0x0690
0000068b: JUMPI
0000068c: PUSH1 0x00
0000068e: DUP1
0000068f: REVERT
00000690: JUMPDEST
00000691: DUP2
00000692: ADD
00000693: SWAP1
00000694: DUP1
00000695: DUP1
00000696: CALLDATALOAD
00000697: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ac: AND
000006ad: SWAP1
000006ae: PUSH1 0x20
000006b0: ADD
000006b1: SWAP1
000006b2: SWAP3
000006b3: SWAP2
000006b4: SWAP1
000006b5: POP
000006b6: POP
000006b7: POP
000006b8: PUSH2 0x1355
000006bb: JUMP
000006bc: JUMPDEST
000006bd: STOP
000006be: JUMPDEST
000006bf: PUSH2 0x06c6
000006c2: PUSH2 0x145c
000006c5: JUMP
000006c6: JUMPDEST
000006c7: PUSH1 0x40
000006c9: MLOAD
000006ca: DUP1
000006cb: DUP3
000006cc: DUP2
000006cd: MSTORE
000006ce: PUSH1 0x20
000006d0: ADD
000006d1: SWAP2
000006d2: POP
000006d3: POP
000006d4: PUSH1 0x40
000006d6: MLOAD
000006d7: DUP1
000006d8: SWAP2
000006d9: SUB
000006da: SWAP1
000006db: RETURN
000006dc: JUMPDEST
000006dd: PUSH2 0x0708
000006e0: PUSH1 0x04
000006e2: DUP1
000006e3: CALLDATASIZE
000006e4: SUB
000006e5: PUSH1 0x20
000006e7: DUP2
000006e8: LT
000006e9: ISZERO
000006ea: PUSH2 0x06f2
000006ed: JUMPI
000006ee: PUSH1 0x00
000006f0: DUP1
000006f1: REVERT
000006f2: JUMPDEST
000006f3: DUP2
000006f4: ADD
000006f5: SWAP1
000006f6: DUP1
000006f7: DUP1
000006f8: CALLDATALOAD
000006f9: SWAP1
000006fa: PUSH1 0x20
000006fc: ADD
000006fd: SWAP1
000006fe: SWAP3
000006ff: SWAP2
00000700: SWAP1
00000701: POP
00000702: POP
00000703: POP
00000704: PUSH2 0x164a
00000707: JUMP
00000708: JUMPDEST
00000709: STOP
0000070a: JUMPDEST
0000070b: PUSH2 0x0712
0000070e: PUSH2 0x16f9
00000711: JUMP
00000712: JUMPDEST
00000713: STOP
00000714: JUMPDEST
00000715: PUSH2 0x0776
00000718: PUSH1 0x04
0000071a: DUP1
0000071b: CALLDATASIZE
0000071c: SUB
0000071d: PUSH1 0x40
0000071f: DUP2
00000720: LT
00000721: ISZERO
00000722: PUSH2 0x072a
00000725: JUMPI
00000726: PUSH1 0x00
00000728: DUP1
00000729: REVERT
0000072a: JUMPDEST
0000072b: DUP2
0000072c: ADD
0000072d: SWAP1
0000072e: DUP1
0000072f: DUP1
00000730: CALLDATALOAD
00000731: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000746: AND
00000747: SWAP1
00000748: PUSH1 0x20
0000074a: ADD
0000074b: SWAP1
0000074c: SWAP3
0000074d: SWAP2
0000074e: SWAP1
0000074f: DUP1
00000750: CALLDATALOAD
00000751: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000766: AND
00000767: SWAP1
00000768: PUSH1 0x20
0000076a: ADD
0000076b: SWAP1
0000076c: SWAP3
0000076d: SWAP2
0000076e: SWAP1
0000076f: POP
00000770: POP
00000771: POP
00000772: PUSH2 0x185a
00000775: JUMP
00000776: JUMPDEST
00000777: PUSH1 0x40
00000779: MLOAD
0000077a: DUP1
0000077b: DUP3
0000077c: DUP2
0000077d: MSTORE
0000077e: PUSH1 0x20
00000780: ADD
00000781: SWAP2
00000782: POP
00000783: POP
00000784: PUSH1 0x40
00000786: MLOAD
00000787: DUP1
00000788: SWAP2
00000789: SUB
0000078a: SWAP1
0000078b: RETURN
0000078c: JUMPDEST
0000078d: PUSH2 0x0794
00000790: PUSH2 0x18e1
00000793: JUMP
00000794: JUMPDEST
00000795: PUSH1 0x40
00000797: MLOAD
00000798: DUP1
00000799: DUP3
0000079a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007af: AND
000007b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007c5: AND
000007c6: DUP2
000007c7: MSTORE
000007c8: PUSH1 0x20
000007ca: ADD
000007cb: SWAP2
000007cc: POP
000007cd: POP
000007ce: PUSH1 0x40
000007d0: MLOAD
000007d1: DUP1
000007d2: SWAP2
000007d3: SUB
000007d4: SWAP1
000007d5: RETURN
000007d6: JUMPDEST
000007d7: PUSH2 0x07de
000007da: PUSH2 0x1907
000007dd: JUMP
000007de: JUMPDEST
000007df: PUSH1 0x40
000007e1: MLOAD
000007e2: DUP1
000007e3: DUP3
000007e4: DUP2
000007e5: MSTORE
000007e6: PUSH1 0x20
000007e8: ADD
000007e9: SWAP2
000007ea: POP
000007eb: POP
000007ec: PUSH1 0x40
000007ee: MLOAD
000007ef: DUP1
000007f0: SWAP2
000007f1: SUB
000007f2: SWAP1
000007f3: RETURN
000007f4: JUMPDEST
000007f5: PUSH2 0x07fc
000007f8: PUSH2 0x190d
000007fb: JUMP
000007fc: JUMPDEST
000007fd: PUSH1 0x40
000007ff: MLOAD
00000800: DUP1
00000801: DUP3
00000802: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000817: AND
00000818: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000082d: AND
0000082e: DUP2
0000082f: MSTORE
00000830: PUSH1 0x20
00000832: ADD
00000833: SWAP2
00000834: POP
00000835: POP
00000836: PUSH1 0x40
00000838: MLOAD
00000839: DUP1
0000083a: SWAP2
0000083b: SUB
0000083c: SWAP1
0000083d: RETURN
0000083e: JUMPDEST
0000083f: PUSH1 0x60
00000841: PUSH1 0x03
00000843: DUP1
00000844: SLOAD
00000845: PUSH1 0x01
00000847: DUP2
00000848: PUSH1 0x01
0000084a: AND
0000084b: ISZERO
0000084c: PUSH2 0x0100
0000084f: MUL
00000850: SUB
00000851: AND
00000852: PUSH1 0x02
00000854: SWAP1
00000855: DIV
00000856: DUP1
00000857: PUSH1 0x1f
00000859: ADD
0000085a: PUSH1 0x20
0000085c: DUP1
0000085d: SWAP2
0000085e: DIV
0000085f: MUL
00000860: PUSH1 0x20
00000862: ADD
00000863: PUSH1 0x40
00000865: MLOAD
00000866: SWAP1
00000867: DUP2
00000868: ADD
00000869: PUSH1 0x40
0000086b: MSTORE
0000086c: DUP1
0000086d: SWAP3
0000086e: SWAP2
0000086f: SWAP1
00000870: DUP2
00000871: DUP2
00000872: MSTORE
00000873: PUSH1 0x20
00000875: ADD
00000876: DUP3
00000877: DUP1
00000878: SLOAD
00000879: PUSH1 0x01
0000087b: DUP2
0000087c: PUSH1 0x01
0000087e: AND
0000087f: ISZERO
00000880: PUSH2 0x0100
00000883: MUL
00000884: SUB
00000885: AND
00000886: PUSH1 0x02
00000888: SWAP1
00000889: DIV
0000088a: DUP1
0000088b: ISZERO
0000088c: PUSH2 0x08d6
0000088f: JUMPI
00000890: DUP1
00000891: PUSH1 0x1f
00000893: LT
00000894: PUSH2 0x08ab
00000897: JUMPI
00000898: PUSH2 0x0100
0000089b: DUP1
0000089c: DUP4
0000089d: SLOAD
0000089e: DIV
0000089f: MUL
000008a0: DUP4
000008a1: MSTORE
000008a2: SWAP2
000008a3: PUSH1 0x20
000008a5: ADD
000008a6: SWAP2
000008a7: PUSH2 0x08d6
000008aa: JUMP
000008ab: JUMPDEST
000008ac: DUP3
000008ad: ADD
000008ae: SWAP2
000008af: SWAP1
000008b0: PUSH1 0x00
000008b2: MSTORE
000008b3: PUSH1 0x20
000008b5: PUSH1 0x00
000008b7: KECCAK256
000008b8: SWAP1
000008b9: JUMPDEST
000008ba: DUP2
000008bb: SLOAD
000008bc: DUP2
000008bd: MSTORE
000008be: SWAP1
000008bf: PUSH1 0x01
000008c1: ADD
000008c2: SWAP1
000008c3: PUSH1 0x20
000008c5: ADD
000008c6: DUP1
000008c7: DUP4
000008c8: GT
000008c9: PUSH2 0x08b9
000008cc: JUMPI
000008cd: DUP3
000008ce: SWAP1
000008cf: SUB
000008d0: PUSH1 0x1f
000008d2: AND
000008d3: DUP3
000008d4: ADD
000008d5: SWAP2
000008d6: JUMPDEST
000008d7: POP
000008d8: POP
000008d9: POP
000008da: POP
000008db: POP
000008dc: SWAP1
000008dd: POP
000008de: SWAP1
000008df: JUMP
000008e0: JUMPDEST
000008e1: PUSH1 0x00
000008e3: PUSH2 0x08f4
000008e6: PUSH2 0x08ed
000008e9: PUSH2 0x1933
000008ec: JUMP
000008ed: JUMPDEST
000008ee: DUP5
000008ef: DUP5
000008f0: PUSH2 0x193b
000008f3: JUMP
000008f4: JUMPDEST
000008f5: PUSH1 0x01
000008f7: SWAP1
000008f8: POP
000008f9: SWAP3
000008fa: SWAP2
000008fb: POP
000008fc: POP
000008fd: JUMP
000008fe: JUMPDEST
000008ff: PUSH1 0x00
00000901: PUSH1 0x02
00000903: SLOAD
00000904: SWAP1
00000905: POP
00000906: SWAP1
00000907: JUMP
00000908: JUMPDEST
00000909: PUSH1 0x00
0000090b: PUSH2 0x0915
0000090e: DUP5
0000090f: DUP5
00000910: DUP5
00000911: PUSH2 0x1b32
00000914: JUMP
00000915: JUMPDEST
00000916: PUSH2 0x09d6
00000919: DUP5
0000091a: PUSH2 0x0921
0000091d: PUSH2 0x1933
00000920: JUMP
00000921: JUMPDEST
00000922: PUSH2 0x09d1
00000925: DUP6
00000926: PUSH1 0x40
00000928: MLOAD
00000929: DUP1
0000092a: PUSH1 0x60
0000092c: ADD
0000092d: PUSH1 0x40
0000092f: MSTORE
00000930: DUP1
00000931: PUSH1 0x28
00000933: DUP2
00000934: MSTORE
00000935: PUSH1 0x20
00000937: ADD
00000938: PUSH2 0x299f
0000093b: PUSH1 0x28
0000093d: SWAP2
0000093e: CODECOPY
0000093f: PUSH1 0x01
00000941: PUSH1 0x00
00000943: DUP12
00000944: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000959: AND
0000095a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000096f: AND
00000970: DUP2
00000971: MSTORE
00000972: PUSH1 0x20
00000974: ADD
00000975: SWAP1
00000976: DUP2
00000977: MSTORE
00000978: PUSH1 0x20
0000097a: ADD
0000097b: PUSH1 0x00
0000097d: KECCAK256
0000097e: PUSH1 0x00
00000980: PUSH2 0x0987
00000983: PUSH2 0x1933
00000986: JUMP
00000987: JUMPDEST
00000988: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000099d: AND
0000099e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009b3: AND
000009b4: DUP2
000009b5: MSTORE
000009b6: PUSH1 0x20
000009b8: ADD
000009b9: SWAP1
000009ba: DUP2
000009bb: MSTORE
000009bc: PUSH1 0x20
000009be: ADD
000009bf: PUSH1 0x00
000009c1: KECCAK256
000009c2: SLOAD
000009c3: PUSH2 0x1de8
000009c6: SWAP1
000009c7: SWAP3
000009c8: SWAP2
000009c9: SWAP1
000009ca: PUSH4 0xffffffff
000009cf: AND
000009d0: JUMP
000009d1: JUMPDEST
000009d2: PUSH2 0x193b
000009d5: JUMP
000009d6: JUMPDEST
000009d7: PUSH1 0x01
000009d9: SWAP1
000009da: POP
000009db: SWAP4
000009dc: SWAP3
000009dd: POP
000009de: POP
000009df: POP
000009e0: JUMP
000009e1: JUMPDEST
000009e2: PUSH1 0x00
000009e4: PUSH2 0x0a16
000009e7: PUSH2 0x09ee
000009ea: PUSH2 0x08fe
000009ed: JUMP
000009ee: JUMPDEST
000009ef: PUSH2 0x0a08
000009f2: DUP5
000009f3: PUSH2 0x09fa
000009f6: PUSH2 0x145c
000009f9: JUMP
000009fa: JUMPDEST
000009fb: PUSH2 0x1ea8
000009fe: SWAP1
000009ff: SWAP2
00000a00: SWAP1
00000a01: PUSH4 0xffffffff
00000a06: AND
00000a07: JUMP
00000a08: JUMPDEST
00000a09: PUSH2 0x1f2e
00000a0c: SWAP1
00000a0d: SWAP2
00000a0e: SWAP1
00000a0f: PUSH4 0xffffffff
00000a14: AND
00000a15: JUMP
00000a16: JUMPDEST
00000a17: SWAP1
00000a18: POP
00000a19: PUSH2 0x0a22
00000a1c: CALLER
00000a1d: DUP4
00000a1e: PUSH2 0x1f78
00000a21: JUMP
00000a22: JUMPDEST
00000a23: PUSH1 0x00
00000a25: PUSH1 0x05
00000a27: PUSH1 0x01
00000a29: SWAP1
00000a2a: SLOAD
00000a2b: SWAP1
00000a2c: PUSH2 0x0100
00000a2f: EXP
00000a30: SWAP1
00000a31: DIV
00000a32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a47: AND
00000a48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a5d: AND
00000a5e: PUSH4 0x70a08231
00000a63: ADDRESS
00000a64: PUSH1 0x40
00000a66: MLOAD
00000a67: DUP3
00000a68: PUSH4 0xffffffff
00000a6d: AND
00000a6e: PUSH1 0xe0
00000a70: SHL
00000a71: DUP2
00000a72: MSTORE
00000a73: PUSH1 0x04
00000a75: ADD
00000a76: DUP1
00000a77: DUP3
00000a78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a8d: AND
00000a8e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aa3: AND
00000aa4: DUP2
00000aa5: MSTORE
00000aa6: PUSH1 0x20
00000aa8: ADD
00000aa9: SWAP2
00000aaa: POP
00000aab: POP
00000aac: PUSH1 0x20
00000aae: PUSH1 0x40
00000ab0: MLOAD
00000ab1: DUP1
00000ab2: DUP4
00000ab3: SUB
00000ab4: DUP2
00000ab5: DUP7
00000ab6: DUP1
00000ab7: EXTCODESIZE
00000ab8: ISZERO
00000ab9: DUP1
00000aba: ISZERO
00000abb: PUSH2 0x0ac3
00000abe: JUMPI
00000abf: PUSH1 0x00
00000ac1: DUP1
00000ac2: REVERT
00000ac3: JUMPDEST
00000ac4: POP
00000ac5: GAS
00000ac6: STATICCALL
00000ac7: ISZERO
00000ac8: DUP1
00000ac9: ISZERO
00000aca: PUSH2 0x0ad7
00000acd: JUMPI
00000ace: RETURNDATASIZE
00000acf: PUSH1 0x00
00000ad1: DUP1
00000ad2: RETURNDATACOPY
00000ad3: RETURNDATASIZE
00000ad4: PUSH1 0x00
00000ad6: REVERT
00000ad7: JUMPDEST
00000ad8: POP
00000ad9: POP
00000ada: POP
00000adb: POP
00000adc: PUSH1 0x40
00000ade: MLOAD
00000adf: RETURNDATASIZE
00000ae0: PUSH1 0x20
00000ae2: DUP2
00000ae3: LT
00000ae4: ISZERO
00000ae5: PUSH2 0x0aed
00000ae8: JUMPI
00000ae9: PUSH1 0x00
00000aeb: DUP1
00000aec: REVERT
00000aed: JUMPDEST
00000aee: DUP2
00000aef: ADD
00000af0: SWAP1
00000af1: DUP1
00000af2: DUP1
00000af3: MLOAD
00000af4: SWAP1
00000af5: PUSH1 0x20
00000af7: ADD
00000af8: SWAP1
00000af9: SWAP3
00000afa: SWAP2
00000afb: SWAP1
00000afc: POP
00000afd: POP
00000afe: POP
00000aff: SWAP1
00000b00: POP
00000b01: DUP2
00000b02: DUP2
00000b03: LT
00000b04: ISZERO
00000b05: PUSH2 0x0d19
00000b08: JUMPI
00000b09: PUSH1 0x00
00000b0b: PUSH2 0x0b1d
00000b0e: DUP3
00000b0f: DUP5
00000b10: PUSH2 0x2130
00000b13: SWAP1
00000b14: SWAP2
00000b15: SWAP1
00000b16: PUSH4 0xffffffff
00000b1b: AND
00000b1c: JUMP
00000b1d: JUMPDEST
00000b1e: SWAP1
00000b1f: POP
00000b20: PUSH1 0x08
00000b22: PUSH1 0x00
00000b24: SWAP1
00000b25: SLOAD
00000b26: SWAP1
00000b27: PUSH2 0x0100
00000b2a: EXP
00000b2b: SWAP1
00000b2c: DIV
00000b2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b42: AND
00000b43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b58: AND
00000b59: PUSH4 0xf3fef3a3
00000b5e: PUSH1 0x05
00000b60: PUSH1 0x01
00000b62: SWAP1
00000b63: SLOAD
00000b64: SWAP1
00000b65: PUSH2 0x0100
00000b68: EXP
00000b69: SWAP1
00000b6a: DIV
00000b6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b80: AND
00000b81: DUP4
00000b82: PUSH1 0x40
00000b84: MLOAD
00000b85: DUP4
00000b86: PUSH4 0xffffffff
00000b8b: AND
00000b8c: PUSH1 0xe0
00000b8e: SHL
00000b8f: DUP2
00000b90: MSTORE
00000b91: PUSH1 0x04
00000b93: ADD
00000b94: DUP1
00000b95: DUP4
00000b96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bab: AND
00000bac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bc1: AND
00000bc2: DUP2
00000bc3: MSTORE
00000bc4: PUSH1 0x20
00000bc6: ADD
00000bc7: DUP3
00000bc8: DUP2
00000bc9: MSTORE
00000bca: PUSH1 0x20
00000bcc: ADD
00000bcd: SWAP3
00000bce: POP
00000bcf: POP
00000bd0: POP
00000bd1: PUSH1 0x00
00000bd3: PUSH1 0x40
00000bd5: MLOAD
00000bd6: DUP1
00000bd7: DUP4
00000bd8: SUB
00000bd9: DUP2
00000bda: PUSH1 0x00
00000bdc: DUP8
00000bdd: DUP1
00000bde: EXTCODESIZE
00000bdf: ISZERO
00000be0: DUP1
00000be1: ISZERO
00000be2: PUSH2 0x0bea
00000be5: JUMPI
00000be6: PUSH1 0x00
00000be8: DUP1
00000be9: REVERT
00000bea: JUMPDEST
00000beb: POP
00000bec: GAS
00000bed: CALL
00000bee: ISZERO
00000bef: DUP1
00000bf0: ISZERO
00000bf1: PUSH2 0x0bfe
00000bf4: JUMPI
00000bf5: RETURNDATASIZE
00000bf6: PUSH1 0x00
00000bf8: DUP1
00000bf9: RETURNDATACOPY
00000bfa: RETURNDATASIZE
00000bfb: PUSH1 0x00
00000bfd: REVERT
00000bfe: JUMPDEST
00000bff: POP
00000c00: POP
00000c01: POP
00000c02: POP
00000c03: PUSH1 0x00
00000c05: PUSH1 0x05
00000c07: PUSH1 0x01
00000c09: SWAP1
00000c0a: SLOAD
00000c0b: SWAP1
00000c0c: PUSH2 0x0100
00000c0f: EXP
00000c10: SWAP1
00000c11: DIV
00000c12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c27: AND
00000c28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c3d: AND
00000c3e: PUSH4 0x70a08231
00000c43: ADDRESS
00000c44: PUSH1 0x40
00000c46: MLOAD
00000c47: DUP3
00000c48: PUSH4 0xffffffff
00000c4d: AND
00000c4e: PUSH1 0xe0
00000c50: SHL
00000c51: DUP2
00000c52: MSTORE
00000c53: PUSH1 0x04
00000c55: ADD
00000c56: DUP1
00000c57: DUP3
00000c58: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c6d: AND
00000c6e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c83: AND
00000c84: DUP2
00000c85: MSTORE
00000c86: PUSH1 0x20
00000c88: ADD
00000c89: SWAP2
00000c8a: POP
00000c8b: POP
00000c8c: PUSH1 0x20
00000c8e: PUSH1 0x40
00000c90: MLOAD
00000c91: DUP1
00000c92: DUP4
00000c93: SUB
00000c94: DUP2
00000c95: DUP7
00000c96: DUP1
00000c97: EXTCODESIZE
00000c98: ISZERO
00000c99: DUP1
00000c9a: ISZERO
00000c9b: PUSH2 0x0ca3
00000c9e: JUMPI
00000c9f: PUSH1 0x00
00000ca1: DUP1
00000ca2: REVERT
00000ca3: JUMPDEST
00000ca4: POP
00000ca5: GAS
00000ca6: STATICCALL
00000ca7: ISZERO
00000ca8: DUP1
00000ca9: ISZERO
00000caa: PUSH2 0x0cb7
00000cad: JUMPI
00000cae: RETURNDATASIZE
00000caf: PUSH1 0x00
00000cb1: DUP1
00000cb2: RETURNDATACOPY
00000cb3: RETURNDATASIZE
00000cb4: PUSH1 0x00
00000cb6: REVERT
00000cb7: JUMPDEST
00000cb8: POP
00000cb9: POP
00000cba: POP
00000cbb: POP
00000cbc: PUSH1 0x40
00000cbe: MLOAD
00000cbf: RETURNDATASIZE
00000cc0: PUSH1 0x20
00000cc2: DUP2
00000cc3: LT
00000cc4: ISZERO
00000cc5: PUSH2 0x0ccd
00000cc8: JUMPI
00000cc9: PUSH1 0x00
00000ccb: DUP1
00000ccc: REVERT
00000ccd: JUMPDEST
00000cce: DUP2
00000ccf: ADD
00000cd0: SWAP1
00000cd1: DUP1
00000cd2: DUP1
00000cd3: MLOAD
00000cd4: SWAP1
00000cd5: PUSH1 0x20
00000cd7: ADD
00000cd8: SWAP1
00000cd9: SWAP3
00000cda: SWAP2
00000cdb: SWAP1
00000cdc: POP
00000cdd: POP
00000cde: POP
00000cdf: SWAP1
00000ce0: POP
00000ce1: PUSH1 0x00
00000ce3: PUSH2 0x0cf5
00000ce6: DUP5
00000ce7: DUP4
00000ce8: PUSH2 0x2130
00000ceb: SWAP1
00000cec: SWAP2
00000ced: SWAP1
00000cee: PUSH4 0xffffffff
00000cf3: AND
00000cf4: JUMP
00000cf5: JUMPDEST
00000cf6: SWAP1
00000cf7: POP
00000cf8: DUP3
00000cf9: DUP2
00000cfa: LT
00000cfb: ISZERO
00000cfc: PUSH2 0x0d15
00000cff: JUMPI
00000d00: PUSH2 0x0d12
00000d03: DUP2
00000d04: DUP6
00000d05: PUSH2 0x217a
00000d08: SWAP1
00000d09: SWAP2
00000d0a: SWAP1
00000d0b: PUSH4 0xffffffff
00000d10: AND
00000d11: JUMP
00000d12: JUMPDEST
00000d13: SWAP5
00000d14: POP
00000d15: JUMPDEST
00000d16: POP
00000d17: POP
00000d18: POP
00000d19: JUMPDEST
00000d1a: PUSH2 0x0d66
00000d1d: CALLER
00000d1e: DUP4
00000d1f: PUSH1 0x05
00000d21: PUSH1 0x01
00000d23: SWAP1
00000d24: SLOAD
00000d25: SWAP1
00000d26: PUSH2 0x0100
00000d29: EXP
00000d2a: SWAP1
00000d2b: DIV
00000d2c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d41: AND
00000d42: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d57: AND
00000d58: PUSH2 0x2202
00000d5b: SWAP1
00000d5c: SWAP3
00000d5d: SWAP2
00000d5e: SWAP1
00000d5f: PUSH4 0xffffffff
00000d64: AND
00000d65: JUMP
00000d66: JUMPDEST
00000d67: POP
00000d68: POP
00000d69: POP
00000d6a: JUMP
00000d6b: JUMPDEST
00000d6c: PUSH1 0x00
00000d6e: PUSH1 0x05
00000d70: PUSH1 0x00
00000d72: SWAP1
00000d73: SLOAD
00000d74: SWAP1
00000d75: PUSH2 0x0100
00000d78: EXP
00000d79: SWAP1
00000d7a: DIV
00000d7b: PUSH1 0xff
00000d7d: AND
00000d7e: SWAP1
00000d7f: POP
00000d80: SWAP1
00000d81: JUMP
00000d82: JUMPDEST
00000d83: PUSH1 0x00
00000d85: PUSH2 0x0e2b
00000d88: PUSH2 0x0d8f
00000d8b: PUSH2 0x1933
00000d8e: JUMP
00000d8f: JUMPDEST
00000d90: DUP5
00000d91: PUSH2 0x0e26
00000d94: DUP6
00000d95: PUSH1 0x01
00000d97: PUSH1 0x00
00000d99: PUSH2 0x0da0
00000d9c: PUSH2 0x1933
00000d9f: JUMP
00000da0: JUMPDEST
00000da1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000db6: AND
00000db7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dcc: AND
00000dcd: DUP2
00000dce: MSTORE
00000dcf: PUSH1 0x20
00000dd1: ADD
00000dd2: SWAP1
00000dd3: DUP2
00000dd4: MSTORE
00000dd5: PUSH1 0x20
00000dd7: ADD
00000dd8: PUSH1 0x00
00000dda: KECCAK256
00000ddb: PUSH1 0x00
00000ddd: DUP10
00000dde: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000df3: AND
00000df4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e09: AND
00000e0a: DUP2
00000e0b: MSTORE
00000e0c: PUSH1 0x20
00000e0e: ADD
00000e0f: SWAP1
00000e10: DUP2
00000e11: MSTORE
00000e12: PUSH1 0x20
00000e14: ADD
00000e15: PUSH1 0x00
00000e17: KECCAK256
00000e18: SLOAD
00000e19: PUSH2 0x217a
00000e1c: SWAP1
00000e1d: SWAP2
00000e1e: SWAP1
00000e1f: PUSH4 0xffffffff
00000e24: AND
00000e25: JUMP
00000e26: JUMPDEST
00000e27: PUSH2 0x193b
00000e2a: JUMP
00000e2b: JUMPDEST
00000e2c: PUSH1 0x01
00000e2e: SWAP1
00000e2f: POP
00000e30: SWAP3
00000e31: SWAP2
00000e32: POP
00000e33: POP
00000e34: JUMP
00000e35: JUMPDEST
00000e36: PUSH1 0x07
00000e38: PUSH1 0x00
00000e3a: SWAP1
00000e3b: SLOAD
00000e3c: SWAP1
00000e3d: PUSH2 0x0100
00000e40: EXP
00000e41: SWAP1
00000e42: DIV
00000e43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e58: AND
00000e59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e6e: AND
00000e6f: CALLER
00000e70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e85: AND
00000e86: EQ
00000e87: PUSH2 0x0ef8
00000e8a: JUMPI
00000e8b: PUSH1 0x40
00000e8d: MLOAD
00000e8e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000eaf: DUP2
00000eb0: MSTORE
00000eb1: PUSH1 0x04
00000eb3: ADD
00000eb4: DUP1
00000eb5: DUP1
00000eb6: PUSH1 0x20
00000eb8: ADD
00000eb9: DUP3
00000eba: DUP2
00000ebb: SUB
00000ebc: DUP3
00000ebd: MSTORE
00000ebe: PUSH1 0x0b
00000ec0: DUP2
00000ec1: MSTORE
00000ec2: PUSH1 0x20
00000ec4: ADD
00000ec5: DUP1
00000ec6: PUSH32 0x21676f7665726e616e6365000000000000000000000000000000000000000000
00000ee7: DUP2
00000ee8: MSTORE
00000ee9: POP
00000eea: PUSH1 0x20
00000eec: ADD
00000eed: SWAP2
00000eee: POP
00000eef: POP
00000ef0: PUSH1 0x40
00000ef2: MLOAD
00000ef3: DUP1
00000ef4: SWAP2
00000ef5: SUB
00000ef6: SWAP1
00000ef7: REVERT
00000ef8: JUMPDEST
00000ef9: DUP1
00000efa: PUSH1 0x06
00000efc: DUP2
00000efd: SWAP1
00000efe: SSTORE
00000eff: POP
00000f00: POP
00000f01: JUMP
00000f02: JUMPDEST
00000f03: PUSH1 0x00
00000f05: PUSH2 0x1006
00000f08: PUSH2 0x2710
00000f0b: PUSH2 0x0ff8
00000f0e: PUSH1 0x06
00000f10: SLOAD
00000f11: PUSH1 0x05
00000f13: PUSH1 0x01
00000f15: SWAP1
00000f16: SLOAD
00000f17: SWAP1
00000f18: PUSH2 0x0100
00000f1b: EXP
00000f1c: SWAP1
00000f1d: DIV
00000f1e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f33: AND
00000f34: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f49: AND
00000f4a: PUSH4 0x70a08231
00000f4f: ADDRESS
00000f50: PUSH1 0x40
00000f52: MLOAD
00000f53: DUP3
00000f54: PUSH4 0xffffffff
00000f59: AND
00000f5a: PUSH1 0xe0
00000f5c: SHL
00000f5d: DUP2
00000f5e: MSTORE
00000f5f: PUSH1 0x04
00000f61: ADD
00000f62: DUP1
00000f63: DUP3
00000f64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f79: AND
00000f7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f8f: AND
00000f90: DUP2
00000f91: MSTORE
00000f92: PUSH1 0x20
00000f94: ADD
00000f95: SWAP2
00000f96: POP
00000f97: POP
00000f98: PUSH1 0x20
00000f9a: PUSH1 0x40
00000f9c: MLOAD
00000f9d: DUP1
00000f9e: DUP4
00000f9f: SUB
00000fa0: DUP2
00000fa1: DUP7
00000fa2: DUP1
00000fa3: EXTCODESIZE
00000fa4: ISZERO
00000fa5: DUP1
00000fa6: ISZERO
00000fa7: PUSH2 0x0faf
00000faa: JUMPI
00000fab: PUSH1 0x00
00000fad: DUP1
00000fae: REVERT
00000faf: JUMPDEST
00000fb0: POP
00000fb1: GAS
00000fb2: STATICCALL
00000fb3: ISZERO
00000fb4: DUP1
00000fb5: ISZERO
00000fb6: PUSH2 0x0fc3
00000fb9: JUMPI
00000fba: RETURNDATASIZE
00000fbb: PUSH1 0x00
00000fbd: DUP1
00000fbe: RETURNDATACOPY
00000fbf: RETURNDATASIZE
00000fc0: PUSH1 0x00
00000fc2: REVERT
00000fc3: JUMPDEST
00000fc4: POP
00000fc5: POP
00000fc6: POP
00000fc7: POP
00000fc8: PUSH1 0x40
00000fca: MLOAD
00000fcb: RETURNDATASIZE
00000fcc: PUSH1 0x20
00000fce: DUP2
00000fcf: LT
00000fd0: ISZERO
00000fd1: PUSH2 0x0fd9
00000fd4: JUMPI
00000fd5: PUSH1 0x00
00000fd7: DUP1
00000fd8: REVERT
00000fd9: JUMPDEST
00000fda: DUP2
00000fdb: ADD
00000fdc: SWAP1
00000fdd: DUP1
00000fde: DUP1
00000fdf: MLOAD
00000fe0: SWAP1
00000fe1: PUSH1 0x20
00000fe3: ADD
00000fe4: SWAP1
00000fe5: SWAP3
00000fe6: SWAP2
00000fe7: SWAP1
00000fe8: POP
00000fe9: POP
00000fea: POP
00000feb: PUSH2 0x1ea8
00000fee: SWAP1
00000fef: SWAP2
00000ff0: SWAP1
00000ff1: PUSH4 0xffffffff
00000ff6: AND
00000ff7: JUMP
00000ff8: JUMPDEST
00000ff9: PUSH2 0x1f2e
00000ffc: SWAP1
00000ffd: SWAP2
00000ffe: SWAP1
00000fff: PUSH4 0xffffffff
00001004: AND
00001005: JUMP
00001006: JUMPDEST
00001007: SWAP1
00001008: POP
00001009: SWAP1
0000100a: JUMP
0000100b: JUMPDEST
0000100c: PUSH1 0x07
0000100e: PUSH1 0x00
00001010: SWAP1
00001011: SLOAD
00001012: SWAP1
00001013: PUSH2 0x0100
00001016: EXP
00001017: SWAP1
00001018: DIV
00001019: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000102e: AND
0000102f: DUP2
00001030: JUMP
00001031: JUMPDEST
00001032: PUSH2 0x2710
00001035: DUP2
00001036: JUMP
00001037: JUMPDEST
00001038: PUSH1 0x00
0000103a: DUP1
0000103b: PUSH1 0x00
0000103d: DUP4
0000103e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001053: AND
00001054: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001069: AND
0000106a: DUP2
0000106b: MSTORE
0000106c: PUSH1 0x20
0000106e: ADD
0000106f: SWAP1
00001070: DUP2
00001071: MSTORE
00001072: PUSH1 0x20
00001074: ADD
00001075: PUSH1 0x00
00001077: KECCAK256
00001078: SLOAD
00001079: SWAP1
0000107a: POP
0000107b: SWAP2
0000107c: SWAP1
0000107d: POP
0000107e: JUMP
0000107f: JUMPDEST
00001080: PUSH1 0x00
00001082: PUSH2 0x10bc
00001085: PUSH2 0x108c
00001088: PUSH2 0x08fe
0000108b: JUMP
0000108c: JUMPDEST
0000108d: PUSH2 0x10ae
00001090: PUSH8 0x0de0b6b3a7640000
00001099: PUSH2 0x10a0
0000109c: PUSH2 0x145c
0000109f: JUMP
000010a0: JUMPDEST
000010a1: PUSH2 0x1ea8
000010a4: SWAP1
000010a5: SWAP2
000010a6: SWAP1
000010a7: PUSH4 0xffffffff
000010ac: AND
000010ad: JUMP
000010ae: JUMPDEST
000010af: PUSH2 0x1f2e
000010b2: SWAP1
000010b3: SWAP2
000010b4: SWAP1
000010b5: PUSH4 0xffffffff
000010ba: AND
000010bb: JUMP
000010bc: JUMPDEST
000010bd: SWAP1
000010be: POP
000010bf: SWAP1
000010c0: JUMP
000010c1: JUMPDEST
000010c2: PUSH1 0x07
000010c4: PUSH1 0x00
000010c6: SWAP1
000010c7: SLOAD
000010c8: SWAP1
000010c9: PUSH2 0x0100
000010cc: EXP
000010cd: SWAP1
000010ce: DIV
000010cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010e4: AND
000010e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010fa: AND
000010fb: CALLER
000010fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001111: AND
00001112: EQ
00001113: PUSH2 0x1184
00001116: JUMPI
00001117: PUSH1 0x40
00001119: MLOAD
0000111a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000113b: DUP2
0000113c: MSTORE
0000113d: PUSH1 0x04
0000113f: ADD
00001140: DUP1
00001141: DUP1
00001142: PUSH1 0x20
00001144: ADD
00001145: DUP3
00001146: DUP2
00001147: SUB
00001148: DUP3
00001149: MSTORE
0000114a: PUSH1 0x0b
0000114c: DUP2
0000114d: MSTORE
0000114e: PUSH1 0x20
00001150: ADD
00001151: DUP1
00001152: PUSH32 0x21676f7665726e616e6365000000000000000000000000000000000000000000
00001173: DUP2
00001174: MSTORE
00001175: POP
00001176: PUSH1 0x20
00001178: ADD
00001179: SWAP2
0000117a: POP
0000117b: POP
0000117c: PUSH1 0x40
0000117e: MLOAD
0000117f: DUP1
00001180: SWAP2
00001181: SUB
00001182: SWAP1
00001183: REVERT
00001184: JUMPDEST
00001185: DUP1
00001186: PUSH1 0x08
00001188: PUSH1 0x00
0000118a: PUSH2 0x0100
0000118d: EXP
0000118e: DUP2
0000118f: SLOAD
00001190: DUP2
00001191: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011a6: MUL
000011a7: NOT
000011a8: AND
000011a9: SWAP1
000011aa: DUP4
000011ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011c0: AND
000011c1: MUL
000011c2: OR
000011c3: SWAP1
000011c4: SSTORE
000011c5: POP
000011c6: POP
000011c7: JUMP
000011c8: JUMPDEST
000011c9: PUSH1 0x60
000011cb: PUSH1 0x04
000011cd: DUP1
000011ce: SLOAD
000011cf: PUSH1 0x01
000011d1: DUP2
000011d2: PUSH1 0x01
000011d4: AND
000011d5: ISZERO
000011d6: PUSH2 0x0100
000011d9: MUL
000011da: SUB
000011db: AND
000011dc: PUSH1 0x02
000011de: SWAP1
000011df: DIV
000011e0: DUP1
000011e1: PUSH1 0x1f
000011e3: ADD
000011e4: PUSH1 0x20
000011e6: DUP1
000011e7: SWAP2
000011e8: DIV
000011e9: MUL
000011ea: PUSH1 0x20
000011ec: ADD
000011ed: PUSH1 0x40
000011ef: MLOAD
000011f0: SWAP1
000011f1: DUP2
000011f2: ADD
000011f3: PUSH1 0x40
000011f5: MSTORE
000011f6: DUP1
000011f7: SWAP3
000011f8: SWAP2
000011f9: SWAP1
000011fa: DUP2
000011fb: DUP2
000011fc: MSTORE
000011fd: PUSH1 0x20
000011ff: ADD
00001200: DUP3
00001201: DUP1
00001202: SLOAD
00001203: PUSH1 0x01
00001205: DUP2
00001206: PUSH1 0x01
00001208: AND
00001209: ISZERO
0000120a: PUSH2 0x0100
0000120d: MUL
0000120e: SUB
0000120f: AND
00001210: PUSH1 0x02
00001212: SWAP1
00001213: DIV
00001214: DUP1
00001215: ISZERO
00001216: PUSH2 0x1260
00001219: JUMPI
0000121a: DUP1
0000121b: PUSH1 0x1f
0000121d: LT
0000121e: PUSH2 0x1235
00001221: JUMPI
00001222: PUSH2 0x0100
00001225: DUP1
00001226: DUP4
00001227: SLOAD
00001228: DIV
00001229: MUL
0000122a: DUP4
0000122b: MSTORE
0000122c: SWAP2
0000122d: PUSH1 0x20
0000122f: ADD
00001230: SWAP2
00001231: PUSH2 0x1260
00001234: JUMP
00001235: JUMPDEST
00001236: DUP3
00001237: ADD
00001238: SWAP2
00001239: SWAP1
0000123a: PUSH1 0x00
0000123c: MSTORE
0000123d: PUSH1 0x20
0000123f: PUSH1 0x00
00001241: KECCAK256
00001242: SWAP1
00001243: JUMPDEST
00001244: DUP2
00001245: SLOAD
00001246: DUP2
00001247: MSTORE
00001248: SWAP1
00001249: PUSH1 0x01
0000124b: ADD
0000124c: SWAP1
0000124d: PUSH1 0x20
0000124f: ADD
00001250: DUP1
00001251: DUP4
00001252: GT
00001253: PUSH2 0x1243
00001256: JUMPI
00001257: DUP3
00001258: SWAP1
00001259: SUB
0000125a: PUSH1 0x1f
0000125c: AND
0000125d: DUP3
0000125e: ADD
0000125f: SWAP2
00001260: JUMPDEST
00001261: POP
00001262: POP
00001263: POP
00001264: POP
00001265: POP
00001266: SWAP1
00001267: POP
00001268: SWAP1
00001269: JUMP
0000126a: JUMPDEST
0000126b: PUSH1 0x00
0000126d: PUSH2 0x132d
00001270: PUSH2 0x1277
00001273: PUSH2 0x1933
00001276: JUMP
00001277: JUMPDEST
00001278: DUP5
00001279: PUSH2 0x1328
0000127c: DUP6
0000127d: PUSH1 0x40
0000127f: MLOAD
00001280: DUP1
00001281: PUSH1 0x60
00001283: ADD
00001284: PUSH1 0x40
00001286: MSTORE
00001287: DUP1
00001288: PUSH1 0x25
0000128a: DUP2
0000128b: MSTORE
0000128c: PUSH1 0x20
0000128e: ADD
0000128f: PUSH2 0x2a5b
00001292: PUSH1 0x25
00001294: SWAP2
00001295: CODECOPY
00001296: PUSH1 0x01
00001298: PUSH1 0x00
0000129a: PUSH2 0x12a1
0000129d: PUSH2 0x1933
000012a0: JUMP
000012a1: JUMPDEST
000012a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012b7: AND
000012b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012cd: AND
000012ce: DUP2
000012cf: MSTORE
000012d0: PUSH1 0x20
000012d2: ADD
000012d3: SWAP1
000012d4: DUP2
000012d5: MSTORE
000012d6: PUSH1 0x20
000012d8: ADD
000012d9: PUSH1 0x00
000012db: KECCAK256
000012dc: PUSH1 0x00
000012de: DUP11
000012df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012f4: AND
000012f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000130a: AND
0000130b: DUP2
0000130c: MSTORE
0000130d: PUSH1 0x20
0000130f: ADD
00001310: SWAP1
00001311: DUP2
00001312: MSTORE
00001313: PUSH1 0x20
00001315: ADD
00001316: PUSH1 0x00
00001318: KECCAK256
00001319: SLOAD
0000131a: PUSH2 0x1de8
0000131d: SWAP1
0000131e: SWAP3
0000131f: SWAP2
00001320: SWAP1
00001321: PUSH4 0xffffffff
00001326: AND
00001327: JUMP
00001328: JUMPDEST
00001329: PUSH2 0x193b
0000132c: JUMP
0000132d: JUMPDEST
0000132e: PUSH1 0x01
00001330: SWAP1
00001331: POP
00001332: SWAP3
00001333: SWAP2
00001334: POP
00001335: POP
00001336: JUMP
00001337: JUMPDEST
00001338: PUSH1 0x00
0000133a: PUSH2 0x134b
0000133d: PUSH2 0x1344
00001340: PUSH2 0x1933
00001343: JUMP
00001344: JUMPDEST
00001345: DUP5
00001346: DUP5
00001347: PUSH2 0x1b32
0000134a: JUMP
0000134b: JUMPDEST
0000134c: PUSH1 0x01
0000134e: SWAP1
0000134f: POP
00001350: SWAP3
00001351: SWAP2
00001352: POP
00001353: POP
00001354: JUMP
00001355: JUMPDEST
00001356: PUSH1 0x07
00001358: PUSH1 0x00
0000135a: SWAP1
0000135b: SLOAD
0000135c: SWAP1
0000135d: PUSH2 0x0100
00001360: EXP
00001361: SWAP1
00001362: DIV
00001363: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001378: AND
00001379: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000138e: AND
0000138f: CALLER
00001390: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013a5: AND
000013a6: EQ
000013a7: PUSH2 0x1418
000013aa: JUMPI
000013ab: PUSH1 0x40
000013ad: MLOAD
000013ae: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000013cf: DUP2
000013d0: MSTORE
000013d1: PUSH1 0x04
000013d3: ADD
000013d4: DUP1
000013d5: DUP1
000013d6: PUSH1 0x20
000013d8: ADD
000013d9: DUP3
000013da: DUP2
000013db: SUB
000013dc: DUP3
000013dd: MSTORE
000013de: PUSH1 0x0b
000013e0: DUP2
000013e1: MSTORE
000013e2: PUSH1 0x20
000013e4: ADD
000013e5: DUP1
000013e6: PUSH32 0x21676f7665726e616e6365000000000000000000000000000000000000000000
00001407: DUP2
00001408: MSTORE
00001409: POP
0000140a: PUSH1 0x20
0000140c: ADD
0000140d: SWAP2
0000140e: POP
0000140f: POP
00001410: PUSH1 0x40
00001412: MLOAD
00001413: DUP1
00001414: SWAP2
00001415: SUB
00001416: SWAP1
00001417: REVERT
00001418: JUMPDEST
00001419: DUP1
0000141a: PUSH1 0x07
0000141c: PUSH1 0x00
0000141e: PUSH2 0x0100
00001421: EXP
00001422: DUP2
00001423: SLOAD
00001424: DUP2
00001425: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000143a: MUL
0000143b: NOT
0000143c: AND
0000143d: SWAP1
0000143e: DUP4
0000143f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001454: AND
00001455: MUL
00001456: OR
00001457: SWAP1
00001458: SSTORE
00001459: POP
0000145a: POP
0000145b: JUMP
0000145c: JUMPDEST
0000145d: PUSH1 0x00
0000145f: PUSH2 0x1645
00001462: PUSH1 0x08
00001464: PUSH1 0x00
00001466: SWAP1
00001467: SLOAD
00001468: SWAP1
00001469: PUSH2 0x0100
0000146c: EXP
0000146d: SWAP1
0000146e: DIV
0000146f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001484: AND
00001485: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000149a: AND
0000149b: PUSH4 0x70a08231
000014a0: PUSH1 0x05
000014a2: PUSH1 0x01
000014a4: SWAP1
000014a5: SLOAD
000014a6: SWAP1
000014a7: PUSH2 0x0100
000014aa: EXP
000014ab: SWAP1
000014ac: DIV
000014ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014c2: AND
000014c3: PUSH1 0x40
000014c5: MLOAD
000014c6: DUP3
000014c7: PUSH4 0xffffffff
000014cc: AND
000014cd: PUSH1 0xe0
000014cf: SHL
000014d0: DUP2
000014d1: MSTORE
000014d2: PUSH1 0x04
000014d4: ADD
000014d5: DUP1
000014d6: DUP3
000014d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014ec: AND
000014ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001502: AND
00001503: DUP2
00001504: MSTORE
00001505: PUSH1 0x20
00001507: ADD
00001508: SWAP2
00001509: POP
0000150a: POP
0000150b: PUSH1 0x20
0000150d: PUSH1 0x40
0000150f: MLOAD
00001510: DUP1
00001511: DUP4
00001512: SUB
00001513: DUP2
00001514: DUP7
00001515: DUP1
00001516: EXTCODESIZE
00001517: ISZERO
00001518: DUP1
00001519: ISZERO
0000151a: PUSH2 0x1522
0000151d: JUMPI
0000151e: PUSH1 0x00
00001520: DUP1
00001521: REVERT
00001522: JUMPDEST
00001523: POP
00001524: GAS
00001525: STATICCALL
00001526: ISZERO
00001527: DUP1
00001528: ISZERO
00001529: PUSH2 0x1536
0000152c: JUMPI
0000152d: RETURNDATASIZE
0000152e: PUSH1 0x00
00001530: DUP1
00001531: RETURNDATACOPY
00001532: RETURNDATASIZE
00001533: PUSH1 0x00
00001535: REVERT
00001536: JUMPDEST
00001537: POP
00001538: POP
00001539: POP
0000153a: POP
0000153b: PUSH1 0x40
0000153d: MLOAD
0000153e: RETURNDATASIZE
0000153f: PUSH1 0x20
00001541: DUP2
00001542: LT
00001543: ISZERO
00001544: PUSH2 0x154c
00001547: JUMPI
00001548: PUSH1 0x00
0000154a: DUP1
0000154b: REVERT
0000154c: JUMPDEST
0000154d: DUP2
0000154e: ADD
0000154f: SWAP1
00001550: DUP1
00001551: DUP1
00001552: MLOAD
00001553: SWAP1
00001554: PUSH1 0x20
00001556: ADD
00001557: SWAP1
00001558: SWAP3
00001559: SWAP2
0000155a: SWAP1
0000155b: POP
0000155c: POP
0000155d: POP
0000155e: PUSH1 0x05
00001560: PUSH1 0x01
00001562: SWAP1
00001563: SLOAD
00001564: SWAP1
00001565: PUSH2 0x0100
00001568: EXP
00001569: SWAP1
0000156a: DIV
0000156b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001580: AND
00001581: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001596: AND
00001597: PUSH4 0x70a08231
0000159c: ADDRESS
0000159d: PUSH1 0x40
0000159f: MLOAD
000015a0: DUP3
000015a1: PUSH4 0xffffffff
000015a6: AND
000015a7: PUSH1 0xe0
000015a9: SHL
000015aa: DUP2
000015ab: MSTORE
000015ac: PUSH1 0x04
000015ae: ADD
000015af: DUP1
000015b0: DUP3
000015b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015c6: AND
000015c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015dc: AND
000015dd: DUP2
000015de: MSTORE
000015df: PUSH1 0x20
000015e1: ADD
000015e2: SWAP2
000015e3: POP
000015e4: POP
000015e5: PUSH1 0x20
000015e7: PUSH1 0x40
000015e9: MLOAD
000015ea: DUP1
000015eb: DUP4
000015ec: SUB
000015ed: DUP2
000015ee: DUP7
000015ef: DUP1
000015f0: EXTCODESIZE
000015f1: ISZERO
000015f2: DUP1
000015f3: ISZERO
000015f4: PUSH2 0x15fc
000015f7: JUMPI
000015f8: PUSH1 0x00
000015fa: DUP1
000015fb: REVERT
000015fc: JUMPDEST
000015fd: POP
000015fe: GAS
000015ff: STATICCALL
00001600: ISZERO
00001601: DUP1
00001602: ISZERO
00001603: PUSH2 0x1610
00001606: JUMPI
00001607: RETURNDATASIZE
00001608: PUSH1 0x00
0000160a: DUP1
0000160b: RETURNDATACOPY
0000160c: RETURNDATASIZE
0000160d: PUSH1 0x00
0000160f: REVERT
00001610: JUMPDEST
00001611: POP
00001612: POP
00001613: POP
00001614: POP
00001615: PUSH1 0x40
00001617: MLOAD
00001618: RETURNDATASIZE
00001619: PUSH1 0x20
0000161b: DUP2
0000161c: LT
0000161d: ISZERO
0000161e: PUSH2 0x1626
00001621: JUMPI
00001622: PUSH1 0x00
00001624: DUP1
00001625: REVERT
00001626: JUMPDEST
00001627: DUP2
00001628: ADD
00001629: SWAP1
0000162a: DUP1
0000162b: DUP1
0000162c: MLOAD
0000162d: SWAP1
0000162e: PUSH1 0x20
00001630: ADD
00001631: SWAP1
00001632: SWAP3
00001633: SWAP2
00001634: SWAP1
00001635: POP
00001636: POP
00001637: POP
00001638: PUSH2 0x217a
0000163b: SWAP1
0000163c: SWAP2
0000163d: SWAP1
0000163e: PUSH4 0xffffffff
00001643: AND
00001644: JUMP
00001645: JUMPDEST
00001646: SWAP1
00001647: POP
00001648: SWAP1
00001649: JUMP
0000164a: JUMPDEST
0000164b: PUSH1 0x00
0000164d: PUSH2 0x1654
00001650: PUSH2 0x145c
00001653: JUMP
00001654: JUMPDEST
00001655: SWAP1
00001656: POP
00001657: PUSH2 0x16a5
0000165a: CALLER
0000165b: ADDRESS
0000165c: DUP5
0000165d: PUSH1 0x05
0000165f: PUSH1 0x01
00001661: SWAP1
00001662: SLOAD
00001663: SWAP1
00001664: PUSH2 0x0100
00001667: EXP
00001668: SWAP1
00001669: DIV
0000166a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000167f: AND
00001680: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001695: AND
00001696: PUSH2 0x22d3
00001699: SWAP1
0000169a: SWAP4
0000169b: SWAP3
0000169c: SWAP2
0000169d: SWAP1
0000169e: PUSH4 0xffffffff
000016a3: AND
000016a4: JUMP
000016a5: JUMPDEST
000016a6: PUSH1 0x00
000016a8: DUP1
000016a9: SWAP1
000016aa: POP
000016ab: PUSH1 0x00
000016ad: DUP3
000016ae: EQ
000016af: ISZERO
000016b0: PUSH2 0x16bb
000016b3: JUMPI
000016b4: DUP3
000016b5: SWAP1
000016b6: POP
000016b7: PUSH2 0x16ea
000016ba: JUMP
000016bb: JUMPDEST
000016bc: PUSH2 0x16e7
000016bf: DUP3
000016c0: PUSH2 0x16d9
000016c3: PUSH2 0x16ca
000016c6: PUSH2 0x08fe
000016c9: JUMP
000016ca: JUMPDEST
000016cb: DUP7
000016cc: PUSH2 0x1ea8
000016cf: SWAP1
000016d0: SWAP2
000016d1: SWAP1
000016d2: PUSH4 0xffffffff
000016d7: AND
000016d8: JUMP
000016d9: JUMPDEST
000016da: PUSH2 0x1f2e
000016dd: SWAP1
000016de: SWAP2
000016df: SWAP1
000016e0: PUSH4 0xffffffff
000016e5: AND
000016e6: JUMP
000016e7: JUMPDEST
000016e8: SWAP1
000016e9: POP
000016ea: JUMPDEST
000016eb: PUSH2 0x16f4
000016ee: CALLER
000016ef: DUP3
000016f0: PUSH2 0x23d9
000016f3: JUMP
000016f4: JUMPDEST
000016f5: POP
000016f6: POP
000016f7: POP
000016f8: JUMP
000016f9: JUMPDEST
000016fa: PUSH1 0x00
000016fc: PUSH2 0x1703
000016ff: PUSH2 0x0f02
00001702: JUMP
00001703: JUMPDEST
00001704: SWAP1
00001705: POP
00001706: PUSH2 0x1774
00001709: PUSH1 0x08
0000170b: PUSH1 0x00
0000170d: SWAP1
0000170e: SLOAD
0000170f: SWAP1
00001710: PUSH2 0x0100
00001713: EXP
00001714: SWAP1
00001715: DIV
00001716: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000172b: AND
0000172c: DUP3
0000172d: PUSH1 0x05
0000172f: PUSH1 0x01
00001731: SWAP1
00001732: SLOAD
00001733: SWAP1
00001734: PUSH2 0x0100
00001737: EXP
00001738: SWAP1
00001739: DIV
0000173a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000174f: AND
00001750: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001765: AND
00001766: PUSH2 0x2202
00001769: SWAP1
0000176a: SWAP3
0000176b: SWAP2
0000176c: SWAP1
0000176d: PUSH4 0xffffffff
00001772: AND
00001773: JUMP
00001774: JUMPDEST
00001775: PUSH1 0x08
00001777: PUSH1 0x00
00001779: SWAP1
0000177a: SLOAD
0000177b: SWAP1
0000177c: PUSH2 0x0100
0000177f: EXP
00001780: SWAP1
00001781: DIV
00001782: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001797: AND
00001798: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017ad: AND
000017ae: PUSH4 0xb02bf4b9
000017b3: PUSH1 0x05
000017b5: PUSH1 0x01
000017b7: SWAP1
000017b8: SLOAD
000017b9: SWAP1
000017ba: PUSH2 0x0100
000017bd: EXP
000017be: SWAP1
000017bf: DIV
000017c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017d5: AND
000017d6: DUP4
000017d7: PUSH1 0x40
000017d9: MLOAD
000017da: DUP4
000017db: PUSH4 0xffffffff
000017e0: AND
000017e1: PUSH1 0xe0
000017e3: SHL
000017e4: DUP2
000017e5: MSTORE
000017e6: PUSH1 0x04
000017e8: ADD
000017e9: DUP1
000017ea: DUP4
000017eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001800: AND
00001801: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001816: AND
00001817: DUP2
00001818: MSTORE
00001819: PUSH1 0x20
0000181b: ADD
0000181c: DUP3
0000181d: DUP2
0000181e: MSTORE
0000181f: PUSH1 0x20
00001821: ADD
00001822: SWAP3
00001823: POP
00001824: POP
00001825: POP
00001826: PUSH1 0x00
00001828: PUSH1 0x40
0000182a: MLOAD
0000182b: DUP1
0000182c: DUP4
0000182d: SUB
0000182e: DUP2
0000182f: PUSH1 0x00
00001831: DUP8
00001832: DUP1
00001833: EXTCODESIZE
00001834: ISZERO
00001835: DUP1
00001836: ISZERO
00001837: PUSH2 0x183f
0000183a: JUMPI
0000183b: PUSH1 0x00
0000183d: DUP1
0000183e: REVERT
0000183f: JUMPDEST
00001840: POP
00001841: GAS
00001842: CALL
00001843: ISZERO
00001844: DUP1
00001845: ISZERO
00001846: PUSH2 0x1853
00001849: JUMPI
0000184a: RETURNDATASIZE
0000184b: PUSH1 0x00
0000184d: DUP1
0000184e: RETURNDATACOPY
0000184f: RETURNDATASIZE
00001850: PUSH1 0x00
00001852: REVERT
00001853: JUMPDEST
00001854: POP
00001855: POP
00001856: POP
00001857: POP
00001858: POP
00001859: JUMP
0000185a: JUMPDEST
0000185b: PUSH1 0x00
0000185d: PUSH1 0x01
0000185f: PUSH1 0x00
00001861: DUP5
00001862: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001877: AND
00001878: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000188d: AND
0000188e: DUP2
0000188f: MSTORE
00001890: PUSH1 0x20
00001892: ADD
00001893: SWAP1
00001894: DUP2
00001895: MSTORE
00001896: PUSH1 0x20
00001898: ADD
00001899: PUSH1 0x00
0000189b: KECCAK256
0000189c: PUSH1 0x00
0000189e: DUP4
0000189f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018b4: AND
000018b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018ca: AND
000018cb: DUP2
000018cc: MSTORE
000018cd: PUSH1 0x20
000018cf: ADD
000018d0: SWAP1
000018d1: DUP2
000018d2: MSTORE
000018d3: PUSH1 0x20
000018d5: ADD
000018d6: PUSH1 0x00
000018d8: KECCAK256
000018d9: SLOAD
000018da: SWAP1
000018db: POP
000018dc: SWAP3
000018dd: SWAP2
000018de: POP
000018df: POP
000018e0: JUMP
000018e1: JUMPDEST
000018e2: PUSH1 0x08
000018e4: PUSH1 0x00
000018e6: SWAP1
000018e7: SLOAD
000018e8: SWAP1
000018e9: PUSH2 0x0100
000018ec: EXP
000018ed: SWAP1
000018ee: DIV
000018ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001904: AND
00001905: DUP2
00001906: JUMP
00001907: JUMPDEST
00001908: PUSH1 0x06
0000190a: SLOAD
0000190b: DUP2
0000190c: JUMP
0000190d: JUMPDEST
0000190e: PUSH1 0x05
00001910: PUSH1 0x01
00001912: SWAP1
00001913: SLOAD
00001914: SWAP1
00001915: PUSH2 0x0100
00001918: EXP
00001919: SWAP1
0000191a: DIV
0000191b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001930: AND
00001931: DUP2
00001932: JUMP
00001933: JUMPDEST
00001934: PUSH1 0x00
00001936: CALLER
00001937: SWAP1
00001938: POP
00001939: SWAP1
0000193a: JUMP
0000193b: JUMPDEST
0000193c: PUSH1 0x00
0000193e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001953: AND
00001954: DUP4
00001955: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000196a: AND
0000196b: EQ
0000196c: ISZERO
0000196d: PUSH2 0x19c1
00001970: JUMPI
00001971: PUSH1 0x40
00001973: MLOAD
00001974: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001995: DUP2
00001996: MSTORE
00001997: PUSH1 0x04
00001999: ADD
0000199a: DUP1
0000199b: DUP1
0000199c: PUSH1 0x20
0000199e: ADD
0000199f: DUP3
000019a0: DUP2
000019a1: SUB
000019a2: DUP3
000019a3: MSTORE
000019a4: PUSH1 0x24
000019a6: DUP2
000019a7: MSTORE
000019a8: PUSH1 0x20
000019aa: ADD
000019ab: DUP1
000019ac: PUSH2 0x2a0d
000019af: PUSH1 0x24
000019b1: SWAP2
000019b2: CODECOPY
000019b3: PUSH1 0x40
000019b5: ADD
000019b6: SWAP2
000019b7: POP
000019b8: POP
000019b9: PUSH1 0x40
000019bb: MLOAD
000019bc: DUP1
000019bd: SWAP2
000019be: SUB
000019bf: SWAP1
000019c0: REVERT
000019c1: JUMPDEST
000019c2: PUSH1 0x00
000019c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019d9: AND
000019da: DUP3
000019db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019f0: AND
000019f1: EQ
000019f2: ISZERO
000019f3: PUSH2 0x1a47
000019f6: JUMPI
000019f7: PUSH1 0x40
000019f9: MLOAD
000019fa: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001a1b: DUP2
00001a1c: MSTORE
00001a1d: PUSH1 0x04
00001a1f: ADD
00001a20: DUP1
00001a21: DUP1
00001a22: PUSH1 0x20
00001a24: ADD
00001a25: DUP3
00001a26: DUP2
00001a27: SUB
00001a28: DUP3
00001a29: MSTORE
00001a2a: PUSH1 0x22
00001a2c: DUP2
00001a2d: MSTORE
00001a2e: PUSH1 0x20
00001a30: ADD
00001a31: DUP1
00001a32: PUSH2 0x2936
00001a35: PUSH1 0x22
00001a37: SWAP2
00001a38: CODECOPY
00001a39: PUSH1 0x40
00001a3b: ADD
00001a3c: SWAP2
00001a3d: POP
00001a3e: POP
00001a3f: PUSH1 0x40
00001a41: MLOAD
00001a42: DUP1
00001a43: SWAP2
00001a44: SUB
00001a45: SWAP1
00001a46: REVERT
00001a47: JUMPDEST
00001a48: DUP1
00001a49: PUSH1 0x01
00001a4b: PUSH1 0x00
00001a4d: DUP6
00001a4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a63: AND
00001a64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a79: AND
00001a7a: DUP2
00001a7b: MSTORE
00001a7c: PUSH1 0x20
00001a7e: ADD
00001a7f: SWAP1
00001a80: DUP2
00001a81: MSTORE
00001a82: PUSH1 0x20
00001a84: ADD
00001a85: PUSH1 0x00
00001a87: KECCAK256
00001a88: PUSH1 0x00
00001a8a: DUP5
00001a8b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001aa0: AND
00001aa1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ab6: AND
00001ab7: DUP2
00001ab8: MSTORE
00001ab9: PUSH1 0x20
00001abb: ADD
00001abc: SWAP1
00001abd: DUP2
00001abe: MSTORE
00001abf: PUSH1 0x20
00001ac1: ADD
00001ac2: PUSH1 0x00
00001ac4: KECCAK256
00001ac5: DUP2
00001ac6: SWAP1
00001ac7: SSTORE
00001ac8: POP
00001ac9: DUP2
00001aca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001adf: AND
00001ae0: DUP4
00001ae1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001af6: AND
00001af7: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00001b18: DUP4
00001b19: PUSH1 0x40
00001b1b: MLOAD
00001b1c: DUP1
00001b1d: DUP3
00001b1e: DUP2
00001b1f: MSTORE
00001b20: PUSH1 0x20
00001b22: ADD
00001b23: SWAP2
00001b24: POP
00001b25: POP
00001b26: PUSH1 0x40
00001b28: MLOAD
00001b29: DUP1
00001b2a: SWAP2
00001b2b: SUB
00001b2c: SWAP1
00001b2d: LOG3
00001b2e: POP
00001b2f: POP
00001b30: POP
00001b31: JUMP
00001b32: JUMPDEST
00001b33: PUSH1 0x00
00001b35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b4a: AND
00001b4b: DUP4
00001b4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b61: AND
00001b62: EQ
00001b63: ISZERO
00001b64: PUSH2 0x1bb8
00001b67: JUMPI
00001b68: PUSH1 0x40
00001b6a: MLOAD
00001b6b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001b8c: DUP2
00001b8d: MSTORE
00001b8e: PUSH1 0x04
00001b90: ADD
00001b91: DUP1
00001b92: DUP1
00001b93: PUSH1 0x20
00001b95: ADD
00001b96: DUP3
00001b97: DUP2
00001b98: SUB
00001b99: DUP3
00001b9a: MSTORE
00001b9b: PUSH1 0x25
00001b9d: DUP2
00001b9e: MSTORE
00001b9f: PUSH1 0x20
00001ba1: ADD
00001ba2: DUP1
00001ba3: PUSH2 0x29e8
00001ba6: PUSH1 0x25
00001ba8: SWAP2
00001ba9: CODECOPY
00001baa: PUSH1 0x40
00001bac: ADD
00001bad: SWAP2
00001bae: POP
00001baf: POP
00001bb0: PUSH1 0x40
00001bb2: MLOAD
00001bb3: DUP1
00001bb4: SWAP2
00001bb5: SUB
00001bb6: SWAP1
00001bb7: REVERT
00001bb8: JUMPDEST
00001bb9: PUSH1 0x00
00001bbb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bd0: AND
00001bd1: DUP3
00001bd2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001be7: AND
00001be8: EQ
00001be9: ISZERO
00001bea: PUSH2 0x1c3e
00001bed: JUMPI
00001bee: PUSH1 0x40
00001bf0: MLOAD
00001bf1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001c12: DUP2
00001c13: MSTORE
00001c14: PUSH1 0x04
00001c16: ADD
00001c17: DUP1
00001c18: DUP1
00001c19: PUSH1 0x20
00001c1b: ADD
00001c1c: DUP3
00001c1d: DUP2
00001c1e: SUB
00001c1f: DUP3
00001c20: MSTORE
00001c21: PUSH1 0x23
00001c23: DUP2
00001c24: MSTORE
00001c25: PUSH1 0x20
00001c27: ADD
00001c28: DUP1
00001c29: PUSH2 0x28f1
00001c2c: PUSH1 0x23
00001c2e: SWAP2
00001c2f: CODECOPY
00001c30: PUSH1 0x40
00001c32: ADD
00001c33: SWAP2
00001c34: POP
00001c35: POP
00001c36: PUSH1 0x40
00001c38: MLOAD
00001c39: DUP1
00001c3a: SWAP2
00001c3b: SUB
00001c3c: SWAP1
00001c3d: REVERT
00001c3e: JUMPDEST
00001c3f: PUSH2 0x1ca9
00001c42: DUP2
00001c43: PUSH1 0x40
00001c45: MLOAD
00001c46: DUP1
00001c47: PUSH1 0x60
00001c49: ADD
00001c4a: PUSH1 0x40
00001c4c: MSTORE
00001c4d: DUP1
00001c4e: PUSH1 0x26
00001c50: DUP2
00001c51: MSTORE
00001c52: PUSH1 0x20
00001c54: ADD
00001c55: PUSH2 0x2958
00001c58: PUSH1 0x26
00001c5a: SWAP2
00001c5b: CODECOPY
00001c5c: PUSH1 0x00
00001c5e: DUP1
00001c5f: DUP8
00001c60: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c75: AND
00001c76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c8b: AND
00001c8c: DUP2
00001c8d: MSTORE
00001c8e: PUSH1 0x20
00001c90: ADD
00001c91: SWAP1
00001c92: DUP2
00001c93: MSTORE
00001c94: PUSH1 0x20
00001c96: ADD
00001c97: PUSH1 0x00
00001c99: KECCAK256
00001c9a: SLOAD
00001c9b: PUSH2 0x1de8
00001c9e: SWAP1
00001c9f: SWAP3
00001ca0: SWAP2
00001ca1: SWAP1
00001ca2: PUSH4 0xffffffff
00001ca7: AND
00001ca8: JUMP
00001ca9: JUMPDEST
00001caa: PUSH1 0x00
00001cac: DUP1
00001cad: DUP6
00001cae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cc3: AND
00001cc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cd9: AND
00001cda: DUP2
00001cdb: MSTORE
00001cdc: PUSH1 0x20
00001cde: ADD
00001cdf: SWAP1
00001ce0: DUP2
00001ce1: MSTORE
00001ce2: PUSH1 0x20
00001ce4: ADD
00001ce5: PUSH1 0x00
00001ce7: KECCAK256
00001ce8: DUP2
00001ce9: SWAP1
00001cea: SSTORE
00001ceb: POP
00001cec: PUSH2 0x1d3c
00001cef: DUP2
00001cf0: PUSH1 0x00
00001cf2: DUP1
00001cf3: DUP6
00001cf4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d09: AND
00001d0a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d1f: AND
00001d20: DUP2
00001d21: MSTORE
00001d22: PUSH1 0x20
00001d24: ADD
00001d25: SWAP1
00001d26: DUP2
00001d27: MSTORE
00001d28: PUSH1 0x20
00001d2a: ADD
00001d2b: PUSH1 0x00
00001d2d: KECCAK256
00001d2e: SLOAD
00001d2f: PUSH2 0x217a
00001d32: SWAP1
00001d33: SWAP2
00001d34: SWAP1
00001d35: PUSH4 0xffffffff
00001d3a: AND
00001d3b: JUMP
00001d3c: JUMPDEST
00001d3d: PUSH1 0x00
00001d3f: DUP1
00001d40: DUP5
00001d41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d56: AND
00001d57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d6c: AND
00001d6d: DUP2
00001d6e: MSTORE
00001d6f: PUSH1 0x20
00001d71: ADD
00001d72: SWAP1
00001d73: DUP2
00001d74: MSTORE
00001d75: PUSH1 0x20
00001d77: ADD
00001d78: PUSH1 0x00
00001d7a: KECCAK256
00001d7b: DUP2
00001d7c: SWAP1
00001d7d: SSTORE
00001d7e: POP
00001d7f: DUP2
00001d80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d95: AND
00001d96: DUP4
00001d97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001dac: AND
00001dad: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00001dce: DUP4
00001dcf: PUSH1 0x40
00001dd1: MLOAD
00001dd2: DUP1
00001dd3: DUP3
00001dd4: DUP2
00001dd5: MSTORE
00001dd6: PUSH1 0x20
00001dd8: ADD
00001dd9: SWAP2
00001dda: POP
00001ddb: POP
00001ddc: PUSH1 0x40
00001dde: MLOAD
00001ddf: DUP1
00001de0: SWAP2
00001de1: SUB
00001de2: SWAP1
00001de3: LOG3
00001de4: POP
00001de5: POP
00001de6: POP
00001de7: JUMP
00001de8: JUMPDEST
00001de9: PUSH1 0x00
00001deb: DUP4
00001dec: DUP4
00001ded: GT
00001dee: ISZERO
00001def: DUP3
00001df0: SWAP1
00001df1: PUSH2 0x1e95
00001df4: JUMPI
00001df5: PUSH1 0x40
00001df7: MLOAD
00001df8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001e19: DUP2
00001e1a: MSTORE
00001e1b: PUSH1 0x04
00001e1d: ADD
00001e1e: DUP1
00001e1f: DUP1
00001e20: PUSH1 0x20
00001e22: ADD
00001e23: DUP3
00001e24: DUP2
00001e25: SUB
00001e26: DUP3
00001e27: MSTORE
00001e28: DUP4
00001e29: DUP2
00001e2a: DUP2
00001e2b: MLOAD
00001e2c: DUP2
00001e2d: MSTORE
00001e2e: PUSH1 0x20
00001e30: ADD
00001e31: SWAP2
00001e32: POP
00001e33: DUP1
00001e34: MLOAD
00001e35: SWAP1
00001e36: PUSH1 0x20
00001e38: ADD
00001e39: SWAP1
00001e3a: DUP1
00001e3b: DUP4
00001e3c: DUP4
00001e3d: PUSH1 0x00
00001e3f: JUMPDEST
00001e40: DUP4
00001e41: DUP2
00001e42: LT
00001e43: ISZERO
00001e44: PUSH2 0x1e5a
00001e47: JUMPI
00001e48: DUP1
00001e49: DUP3
00001e4a: ADD
00001e4b: MLOAD
00001e4c: DUP2
00001e4d: DUP5
00001e4e: ADD
00001e4f: MSTORE
00001e50: PUSH1 0x20
00001e52: DUP2
00001e53: ADD
00001e54: SWAP1
00001e55: POP
00001e56: PUSH2 0x1e3f
00001e59: JUMP
00001e5a: JUMPDEST
00001e5b: POP
00001e5c: POP
00001e5d: POP
00001e5e: POP
00001e5f: SWAP1
00001e60: POP
00001e61: SWAP1
00001e62: DUP2
00001e63: ADD
00001e64: SWAP1
00001e65: PUSH1 0x1f
00001e67: AND
00001e68: DUP1
00001e69: ISZERO
00001e6a: PUSH2 0x1e87
00001e6d: JUMPI
00001e6e: DUP1
00001e6f: DUP3
00001e70: SUB
00001e71: DUP1
00001e72: MLOAD
00001e73: PUSH1 0x01
00001e75: DUP4
00001e76: PUSH1 0x20
00001e78: SUB
00001e79: PUSH2 0x0100
00001e7c: EXP
00001e7d: SUB
00001e7e: NOT
00001e7f: AND
00001e80: DUP2
00001e81: MSTORE
00001e82: PUSH1 0x20
00001e84: ADD
00001e85: SWAP2
00001e86: POP
00001e87: JUMPDEST
00001e88: POP
00001e89: SWAP3
00001e8a: POP
00001e8b: POP
00001e8c: POP
00001e8d: PUSH1 0x40
00001e8f: MLOAD
00001e90: DUP1
00001e91: SWAP2
00001e92: SUB
00001e93: SWAP1
00001e94: REVERT
00001e95: JUMPDEST
00001e96: POP
00001e97: PUSH1 0x00
00001e99: DUP4
00001e9a: DUP6
00001e9b: SUB
00001e9c: SWAP1
00001e9d: POP
00001e9e: DUP1
00001e9f: SWAP2
00001ea0: POP
00001ea1: POP
00001ea2: SWAP4
00001ea3: SWAP3
00001ea4: POP
00001ea5: POP
00001ea6: POP
00001ea7: JUMP
00001ea8: JUMPDEST
00001ea9: PUSH1 0x00
00001eab: DUP1
00001eac: DUP4
00001ead: EQ
00001eae: ISZERO
00001eaf: PUSH2 0x1ebb
00001eb2: JUMPI
00001eb3: PUSH1 0x00
00001eb5: SWAP1
00001eb6: POP
00001eb7: PUSH2 0x1f28
00001eba: JUMP
00001ebb: JUMPDEST
00001ebc: PUSH1 0x00
00001ebe: DUP3
00001ebf: DUP5
00001ec0: MUL
00001ec1: SWAP1
00001ec2: POP
00001ec3: DUP3
00001ec4: DUP5
00001ec5: DUP3
00001ec6: DUP2
00001ec7: PUSH2 0x1ecc
00001eca: JUMPI
00001ecb: INVALID
00001ecc: JUMPDEST
00001ecd: DIV
00001ece: EQ
00001ecf: PUSH2 0x1f23
00001ed2: JUMPI
00001ed3: PUSH1 0x40
00001ed5: MLOAD
00001ed6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001ef7: DUP2
00001ef8: MSTORE
00001ef9: PUSH1 0x04
00001efb: ADD
00001efc: DUP1
00001efd: DUP1
00001efe: PUSH1 0x20
00001f00: ADD
00001f01: DUP3
00001f02: DUP2
00001f03: SUB
00001f04: DUP3
00001f05: MSTORE
00001f06: PUSH1 0x21
00001f08: DUP2
00001f09: MSTORE
00001f0a: PUSH1 0x20
00001f0c: ADD
00001f0d: DUP1
00001f0e: PUSH2 0x297e
00001f11: PUSH1 0x21
00001f13: SWAP2
00001f14: CODECOPY
00001f15: PUSH1 0x40
00001f17: ADD
00001f18: SWAP2
00001f19: POP
00001f1a: POP
00001f1b: PUSH1 0x40
00001f1d: MLOAD
00001f1e: DUP1
00001f1f: SWAP2
00001f20: SUB
00001f21: SWAP1
00001f22: REVERT
00001f23: JUMPDEST
00001f24: DUP1
00001f25: SWAP2
00001f26: POP
00001f27: POP
00001f28: JUMPDEST
00001f29: SWAP3
00001f2a: SWAP2
00001f2b: POP
00001f2c: POP
00001f2d: JUMP
00001f2e: JUMPDEST
00001f2f: PUSH1 0x00
00001f31: PUSH2 0x1f70
00001f34: DUP4
00001f35: DUP4
00001f36: PUSH1 0x40
00001f38: MLOAD
00001f39: DUP1
00001f3a: PUSH1 0x40
00001f3c: ADD
00001f3d: PUSH1 0x40
00001f3f: MSTORE
00001f40: DUP1
00001f41: PUSH1 0x1a
00001f43: DUP2
00001f44: MSTORE
00001f45: PUSH1 0x20
00001f47: ADD
00001f48: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000
00001f69: DUP2
00001f6a: MSTORE
00001f6b: POP
00001f6c: PUSH2 0x2594
00001f6f: JUMP
00001f70: JUMPDEST
00001f71: SWAP1
00001f72: POP
00001f73: SWAP3
00001f74: SWAP2
00001f75: POP
00001f76: POP
00001f77: JUMP
00001f78: JUMPDEST
00001f79: PUSH1 0x00
00001f7b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f90: AND
00001f91: DUP3
00001f92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fa7: AND
00001fa8: EQ
00001fa9: ISZERO
00001faa: PUSH2 0x1ffe
00001fad: JUMPI
00001fae: PUSH1 0x40
00001fb0: MLOAD
00001fb1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001fd2: DUP2
00001fd3: MSTORE
00001fd4: PUSH1 0x04
00001fd6: ADD
00001fd7: DUP1
00001fd8: DUP1
00001fd9: PUSH1 0x20
00001fdb: ADD
00001fdc: DUP3
00001fdd: DUP2
00001fde: SUB
00001fdf: DUP3
00001fe0: MSTORE
00001fe1: PUSH1 0x21
00001fe3: DUP2
00001fe4: MSTORE
00001fe5: PUSH1 0x20
00001fe7: ADD
00001fe8: DUP1
00001fe9: PUSH2 0x29c7
00001fec: PUSH1 0x21
00001fee: SWAP2
00001fef: CODECOPY
00001ff0: PUSH1 0x40
00001ff2: ADD
00001ff3: SWAP2
00001ff4: POP
00001ff5: POP
00001ff6: PUSH1 0x40
00001ff8: MLOAD
00001ff9: DUP1
00001ffa: SWAP2
00001ffb: SUB
00001ffc: SWAP1
00001ffd: REVERT
00001ffe: JUMPDEST
00001fff: PUSH2 0x2069
00002002: DUP2
00002003: PUSH1 0x40
00002005: MLOAD
00002006: DUP1
00002007: PUSH1 0x60
00002009: ADD
0000200a: PUSH1 0x40
0000200c: MSTORE
0000200d: DUP1
0000200e: PUSH1 0x22
00002010: DUP2
00002011: MSTORE
00002012: PUSH1 0x20
00002014: ADD
00002015: PUSH2 0x2914
00002018: PUSH1 0x22
0000201a: SWAP2
0000201b: CODECOPY
0000201c: PUSH1 0x00
0000201e: DUP1
0000201f: DUP7
00002020: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002035: AND
00002036: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000204b: AND
0000204c: DUP2
0000204d: MSTORE
0000204e: PUSH1 0x20
00002050: ADD
00002051: SWAP1
00002052: DUP2
00002053: MSTORE
00002054: PUSH1 0x20
00002056: ADD
00002057: PUSH1 0x00
00002059: KECCAK256
0000205a: SLOAD
0000205b: PUSH2 0x1de8
0000205e: SWAP1
0000205f: SWAP3
00002060: SWAP2
00002061: SWAP1
00002062: PUSH4 0xffffffff
00002067: AND
00002068: JUMP
00002069: JUMPDEST
0000206a: PUSH1 0x00
0000206c: DUP1
0000206d: DUP5
0000206e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002083: AND
00002084: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002099: AND
0000209a: DUP2
0000209b: MSTORE
0000209c: PUSH1 0x20
0000209e: ADD
0000209f: SWAP1
000020a0: DUP2
000020a1: MSTORE
000020a2: PUSH1 0x20
000020a4: ADD
000020a5: PUSH1 0x00
000020a7: KECCAK256
000020a8: DUP2
000020a9: SWAP1
000020aa: SSTORE
000020ab: POP
000020ac: PUSH2 0x20c0
000020af: DUP2
000020b0: PUSH1 0x02
000020b2: SLOAD
000020b3: PUSH2 0x2130
000020b6: SWAP1
000020b7: SWAP2
000020b8: SWAP1
000020b9: PUSH4 0xffffffff
000020be: AND
000020bf: JUMP
000020c0: JUMPDEST
000020c1: PUSH1 0x02
000020c3: DUP2
000020c4: SWAP1
000020c5: SSTORE
000020c6: POP
000020c7: PUSH1 0x00
000020c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020de: AND
000020df: DUP3
000020e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020f5: AND
000020f6: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00002117: DUP4
00002118: PUSH1 0x40
0000211a: MLOAD
0000211b: DUP1
0000211c: DUP3
0000211d: DUP2
0000211e: MSTORE
0000211f: PUSH1 0x20
00002121: ADD
00002122: SWAP2
00002123: POP
00002124: POP
00002125: PUSH1 0x40
00002127: MLOAD
00002128: DUP1
00002129: SWAP2
0000212a: SUB
0000212b: SWAP1
0000212c: LOG3
0000212d: POP
0000212e: POP
0000212f: JUMP
00002130: JUMPDEST
00002131: PUSH1 0x00
00002133: PUSH2 0x2172
00002136: DUP4
00002137: DUP4
00002138: PUSH1 0x40
0000213a: MLOAD
0000213b: DUP1
0000213c: PUSH1 0x40
0000213e: ADD
0000213f: PUSH1 0x40
00002141: MSTORE
00002142: DUP1
00002143: PUSH1 0x1e
00002145: DUP2
00002146: MSTORE
00002147: PUSH1 0x20
00002149: ADD
0000214a: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
0000216b: DUP2
0000216c: MSTORE
0000216d: POP
0000216e: PUSH2 0x1de8
00002171: JUMP
00002172: JUMPDEST
00002173: SWAP1
00002174: POP
00002175: SWAP3
00002176: SWAP2
00002177: POP
00002178: POP
00002179: JUMP
0000217a: JUMPDEST
0000217b: PUSH1 0x00
0000217d: DUP1
0000217e: DUP3
0000217f: DUP5
00002180: ADD
00002181: SWAP1
00002182: POP
00002183: DUP4
00002184: DUP2
00002185: LT
00002186: ISZERO
00002187: PUSH2 0x21f8
0000218a: JUMPI
0000218b: PUSH1 0x40
0000218d: MLOAD
0000218e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000021af: DUP2
000021b0: MSTORE
000021b1: PUSH1 0x04
000021b3: ADD
000021b4: DUP1
000021b5: DUP1
000021b6: PUSH1 0x20
000021b8: ADD
000021b9: DUP3
000021ba: DUP2
000021bb: SUB
000021bc: DUP3
000021bd: MSTORE
000021be: PUSH1 0x1b
000021c0: DUP2
000021c1: MSTORE
000021c2: PUSH1 0x20
000021c4: ADD
000021c5: DUP1
000021c6: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
000021e7: DUP2
000021e8: MSTORE
000021e9: POP
000021ea: PUSH1 0x20
000021ec: ADD
000021ed: SWAP2
000021ee: POP
000021ef: POP
000021f0: PUSH1 0x40
000021f2: MLOAD
000021f3: DUP1
000021f4: SWAP2
000021f5: SUB
000021f6: SWAP1
000021f7: REVERT
000021f8: JUMPDEST
000021f9: DUP1
000021fa: SWAP2
000021fb: POP
000021fc: POP
000021fd: SWAP3
000021fe: SWAP2
000021ff: POP
00002200: POP
00002201: JUMP
00002202: JUMPDEST
00002203: PUSH2 0x22ce
00002206: DUP4
00002207: DUP5
00002208: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000221d: AND
0000221e: PUSH4 0xa9059cbb
00002223: SWAP1
00002224: POP
00002225: PUSH1 0xe0
00002227: SHL
00002228: DUP5
00002229: DUP5
0000222a: PUSH1 0x40
0000222c: MLOAD
0000222d: PUSH1 0x24
0000222f: ADD
00002230: DUP1
00002231: DUP4
00002232: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002247: AND
00002248: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000225d: AND
0000225e: DUP2
0000225f: MSTORE
00002260: PUSH1 0x20
00002262: ADD
00002263: DUP3
00002264: DUP2
00002265: MSTORE
00002266: PUSH1 0x20
00002268: ADD
00002269: SWAP3
0000226a: POP
0000226b: POP
0000226c: POP
0000226d: PUSH1 0x40
0000226f: MLOAD
00002270: PUSH1 0x20
00002272: DUP2
00002273: DUP4
00002274: SUB
00002275: SUB
00002276: DUP2
00002277: MSTORE
00002278: SWAP1
00002279: PUSH1 0x40
0000227b: MSTORE
0000227c: SWAP1
0000227d: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000229a: NOT
0000229b: AND
0000229c: PUSH1 0x20
0000229e: DUP3
0000229f: ADD
000022a0: DUP1
000022a1: MLOAD
000022a2: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000022bf: DUP4
000022c0: DUP2
000022c1: DUP4
000022c2: AND
000022c3: OR
000022c4: DUP4
000022c5: MSTORE
000022c6: POP
000022c7: POP
000022c8: POP
000022c9: POP
000022ca: PUSH2 0x265a
000022cd: JUMP
000022ce: JUMPDEST
000022cf: POP
000022d0: POP
000022d1: POP
000022d2: JUMP
000022d3: JUMPDEST
000022d4: PUSH2 0x23d3
000022d7: DUP5
000022d8: DUP6
000022d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022ee: AND
000022ef: PUSH4 0x23b872dd
000022f4: SWAP1
000022f5: POP
000022f6: PUSH1 0xe0
000022f8: SHL
000022f9: DUP6
000022fa: DUP6
000022fb: DUP6
000022fc: PUSH1 0x40
000022fe: MLOAD
000022ff: PUSH1 0x24
00002301: ADD
00002302: DUP1
00002303: DUP5
00002304: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002319: AND
0000231a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000232f: AND
00002330: DUP2
00002331: MSTORE
00002332: PUSH1 0x20
00002334: ADD
00002335: DUP4
00002336: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000234b: AND
0000234c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002361: AND
00002362: DUP2
00002363: MSTORE
00002364: PUSH1 0x20
00002366: ADD
00002367: DUP3
00002368: DUP2
00002369: MSTORE
0000236a: PUSH1 0x20
0000236c: ADD
0000236d: SWAP4
0000236e: POP
0000236f: POP
00002370: POP
00002371: POP
00002372: PUSH1 0x40
00002374: MLOAD
00002375: PUSH1 0x20
00002377: DUP2
00002378: DUP4
00002379: SUB
0000237a: SUB
0000237b: DUP2
0000237c: MSTORE
0000237d: SWAP1
0000237e: PUSH1 0x40
00002380: MSTORE
00002381: SWAP1
00002382: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000239f: NOT
000023a0: AND
000023a1: PUSH1 0x20
000023a3: DUP3
000023a4: ADD
000023a5: DUP1
000023a6: MLOAD
000023a7: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000023c4: DUP4
000023c5: DUP2
000023c6: DUP4
000023c7: AND
000023c8: OR
000023c9: DUP4
000023ca: MSTORE
000023cb: POP
000023cc: POP
000023cd: POP
000023ce: POP
000023cf: PUSH2 0x265a
000023d2: JUMP
000023d3: JUMPDEST
000023d4: POP
000023d5: POP
000023d6: POP
000023d7: POP
000023d8: JUMP
000023d9: JUMPDEST
000023da: PUSH1 0x00
000023dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023f1: AND
000023f2: DUP3
000023f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002408: AND
00002409: EQ
0000240a: ISZERO
0000240b: PUSH2 0x247c
0000240e: JUMPI
0000240f: PUSH1 0x40
00002411: MLOAD
00002412: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002433: DUP2
00002434: MSTORE
00002435: PUSH1 0x04
00002437: ADD
00002438: DUP1
00002439: DUP1
0000243a: PUSH1 0x20
0000243c: ADD
0000243d: DUP3
0000243e: DUP2
0000243f: SUB
00002440: DUP3
00002441: MSTORE
00002442: PUSH1 0x1f
00002444: DUP2
00002445: MSTORE
00002446: PUSH1 0x20
00002448: ADD
00002449: DUP1
0000244a: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300
0000246b: DUP2
0000246c: MSTORE
0000246d: POP
0000246e: PUSH1 0x20
00002470: ADD
00002471: SWAP2
00002472: POP
00002473: POP
00002474: PUSH1 0x40
00002476: MLOAD
00002477: DUP1
00002478: SWAP2
00002479: SUB
0000247a: SWAP1
0000247b: REVERT
0000247c: JUMPDEST
0000247d: PUSH2 0x2491
00002480: DUP2
00002481: PUSH1 0x02
00002483: SLOAD
00002484: PUSH2 0x217a
00002487: SWAP1
00002488: SWAP2
00002489: SWAP1
0000248a: PUSH4 0xffffffff
0000248f: AND
00002490: JUMP
00002491: JUMPDEST
00002492: PUSH1 0x02
00002494: DUP2
00002495: SWAP1
00002496: SSTORE
00002497: POP
00002498: PUSH2 0x24e8
0000249b: DUP2
0000249c: PUSH1 0x00
0000249e: DUP1
0000249f: DUP6
000024a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024b5: AND
000024b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024cb: AND
000024cc: DUP2
000024cd: MSTORE
000024ce: PUSH1 0x20
000024d0: ADD
000024d1: SWAP1
000024d2: DUP2
000024d3: MSTORE
000024d4: PUSH1 0x20
000024d6: ADD
000024d7: PUSH1 0x00
000024d9: KECCAK256
000024da: SLOAD
000024db: PUSH2 0x217a
000024de: SWAP1
000024df: SWAP2
000024e0: SWAP1
000024e1: PUSH4 0xffffffff
000024e6: AND
000024e7: JUMP
000024e8: JUMPDEST
000024e9: PUSH1 0x00
000024eb: DUP1
000024ec: DUP5
000024ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002502: AND
00002503: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002518: AND
00002519: DUP2
0000251a: MSTORE
0000251b: PUSH1 0x20
0000251d: ADD
0000251e: SWAP1
0000251f: DUP2
00002520: MSTORE
00002521: PUSH1 0x20
00002523: ADD
00002524: PUSH1 0x00
00002526: KECCAK256
00002527: DUP2
00002528: SWAP1
00002529: SSTORE
0000252a: POP
0000252b: DUP2
0000252c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002541: AND
00002542: PUSH1 0x00
00002544: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002559: AND
0000255a: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
0000257b: DUP4
0000257c: PUSH1 0x40
0000257e: MLOAD
0000257f: DUP1
00002580: DUP3
00002581: DUP2
00002582: MSTORE
00002583: PUSH1 0x20
00002585: ADD
00002586: SWAP2
00002587: POP
00002588: POP
00002589: PUSH1 0x40
0000258b: MLOAD
0000258c: DUP1
0000258d: SWAP2
0000258e: SUB
0000258f: SWAP1
00002590: LOG3
00002591: POP
00002592: POP
00002593: JUMP
00002594: JUMPDEST
00002595: PUSH1 0x00
00002597: DUP1
00002598: DUP4
00002599: GT
0000259a: DUP3
0000259b: SWAP1
0000259c: PUSH2 0x2640
0000259f: JUMPI
000025a0: PUSH1 0x40
000025a2: MLOAD
000025a3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000025c4: DUP2
000025c5: MSTORE
000025c6: PUSH1 0x04
000025c8: ADD
000025c9: DUP1
000025ca: DUP1
000025cb: PUSH1 0x20
000025cd: ADD
000025ce: DUP3
000025cf: DUP2
000025d0: SUB
000025d1: DUP3
000025d2: MSTORE
000025d3: DUP4
000025d4: DUP2
000025d5: DUP2
000025d6: MLOAD
000025d7: DUP2
000025d8: MSTORE
000025d9: PUSH1 0x20
000025db: ADD
000025dc: SWAP2
000025dd: POP
000025de: DUP1
000025df: MLOAD
000025e0: SWAP1
000025e1: PUSH1 0x20
000025e3: ADD
000025e4: SWAP1
000025e5: DUP1
000025e6: DUP4
000025e7: DUP4
000025e8: PUSH1 0x00
000025ea: JUMPDEST
000025eb: DUP4
000025ec: DUP2
000025ed: LT
000025ee: ISZERO
000025ef: PUSH2 0x2605
000025f2: JUMPI
000025f3: DUP1
000025f4: DUP3
000025f5: ADD
000025f6: MLOAD
000025f7: DUP2
000025f8: DUP5
000025f9: ADD
000025fa: MSTORE
000025fb: PUSH1 0x20
000025fd: DUP2
000025fe: ADD
000025ff: SWAP1
00002600: POP
00002601: PUSH2 0x25ea
00002604: JUMP
00002605: JUMPDEST
00002606: POP
00002607: POP
00002608: POP
00002609: POP
0000260a: SWAP1
0000260b: POP
0000260c: SWAP1
0000260d: DUP2
0000260e: ADD
0000260f: SWAP1
00002610: PUSH1 0x1f
00002612: AND
00002613: DUP1
00002614: ISZERO
00002615: PUSH2 0x2632
00002618: JUMPI
00002619: DUP1
0000261a: DUP3
0000261b: SUB
0000261c: DUP1
0000261d: MLOAD
0000261e: PUSH1 0x01
00002620: DUP4
00002621: PUSH1 0x20
00002623: SUB
00002624: PUSH2 0x0100
00002627: EXP
00002628: SUB
00002629: NOT
0000262a: AND
0000262b: DUP2
0000262c: MSTORE
0000262d: PUSH1 0x20
0000262f: ADD
00002630: SWAP2
00002631: POP
00002632: JUMPDEST
00002633: POP
00002634: SWAP3
00002635: POP
00002636: POP
00002637: POP
00002638: PUSH1 0x40
0000263a: MLOAD
0000263b: DUP1
0000263c: SWAP2
0000263d: SUB
0000263e: SWAP1
0000263f: REVERT
00002640: JUMPDEST
00002641: POP
00002642: PUSH1 0x00
00002644: DUP4
00002645: DUP6
00002646: DUP2
00002647: PUSH2 0x264c
0000264a: JUMPI
0000264b: INVALID
0000264c: JUMPDEST
0000264d: DIV
0000264e: SWAP1
0000264f: POP
00002650: DUP1
00002651: SWAP2
00002652: POP
00002653: POP
00002654: SWAP4
00002655: SWAP3
00002656: POP
00002657: POP
00002658: POP
00002659: JUMP
0000265a: JUMPDEST
0000265b: PUSH2 0x2679
0000265e: DUP3
0000265f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002674: AND
00002675: PUSH2 0x28a5
00002678: JUMP
00002679: JUMPDEST
0000267a: PUSH2 0x26eb
0000267d: JUMPI
0000267e: PUSH1 0x40
00002680: MLOAD
00002681: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000026a2: DUP2
000026a3: MSTORE
000026a4: PUSH1 0x04
000026a6: ADD
000026a7: DUP1
000026a8: DUP1
000026a9: PUSH1 0x20
000026ab: ADD
000026ac: DUP3
000026ad: DUP2
000026ae: SUB
000026af: DUP3
000026b0: MSTORE
000026b1: PUSH1 0x1f
000026b3: DUP2
000026b4: MSTORE
000026b5: PUSH1 0x20
000026b7: ADD
000026b8: DUP1
000026b9: PUSH32 0x5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400
000026da: DUP2
000026db: MSTORE
000026dc: POP
000026dd: PUSH1 0x20
000026df: ADD
000026e0: SWAP2
000026e1: POP
000026e2: POP
000026e3: PUSH1 0x40
000026e5: MLOAD
000026e6: DUP1
000026e7: SWAP2
000026e8: SUB
000026e9: SWAP1
000026ea: REVERT
000026eb: JUMPDEST
000026ec: PUSH1 0x00
000026ee: PUSH1 0x60
000026f0: DUP4
000026f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002706: AND
00002707: DUP4
00002708: PUSH1 0x40
0000270a: MLOAD
0000270b: DUP1
0000270c: DUP3
0000270d: DUP1
0000270e: MLOAD
0000270f: SWAP1
00002710: PUSH1 0x20
00002712: ADD
00002713: SWAP1
00002714: DUP1
00002715: DUP4
00002716: DUP4
00002717: JUMPDEST
00002718: PUSH1 0x20
0000271a: DUP4
0000271b: LT
0000271c: PUSH2 0x273a
0000271f: JUMPI
00002720: DUP1
00002721: MLOAD
00002722: DUP3
00002723: MSTORE
00002724: PUSH1 0x20
00002726: DUP3
00002727: ADD
00002728: SWAP2
00002729: POP
0000272a: PUSH1 0x20
0000272c: DUP2
0000272d: ADD
0000272e: SWAP1
0000272f: POP
00002730: PUSH1 0x20
00002732: DUP4
00002733: SUB
00002734: SWAP3
00002735: POP
00002736: PUSH2 0x2717
00002739: JUMP
0000273a: JUMPDEST
0000273b: PUSH1 0x01
0000273d: DUP4
0000273e: PUSH1 0x20
00002740: SUB
00002741: PUSH2 0x0100
00002744: EXP
00002745: SUB
00002746: DUP1
00002747: NOT
00002748: DUP3
00002749: MLOAD
0000274a: AND
0000274b: DUP2
0000274c: DUP5
0000274d: MLOAD
0000274e: AND
0000274f: DUP1
00002750: DUP3
00002751: OR
00002752: DUP6
00002753: MSTORE
00002754: POP
00002755: POP
00002756: POP
00002757: POP
00002758: POP
00002759: POP
0000275a: SWAP1
0000275b: POP
0000275c: ADD
0000275d: SWAP2
0000275e: POP
0000275f: POP
00002760: PUSH1 0x00
00002762: PUSH1 0x40
00002764: MLOAD
00002765: DUP1
00002766: DUP4
00002767: SUB
00002768: DUP2
00002769: PUSH1 0x00
0000276b: DUP7
0000276c: GAS
0000276d: CALL
0000276e: SWAP2
0000276f: POP
00002770: POP
00002771: RETURNDATASIZE
00002772: DUP1
00002773: PUSH1 0x00
00002775: DUP2
00002776: EQ
00002777: PUSH2 0x279c
0000277a: JUMPI
0000277b: PUSH1 0x40
0000277d: MLOAD
0000277e: SWAP2
0000277f: POP
00002780: PUSH1 0x1f
00002782: NOT
00002783: PUSH1 0x3f
00002785: RETURNDATASIZE
00002786: ADD
00002787: AND
00002788: DUP3
00002789: ADD
0000278a: PUSH1 0x40
0000278c: MSTORE
0000278d: RETURNDATASIZE
0000278e: DUP3
0000278f: MSTORE
00002790: RETURNDATASIZE
00002791: PUSH1 0x00
00002793: PUSH1 0x20
00002795: DUP5
00002796: ADD
00002797: RETURNDATACOPY
00002798: PUSH2 0x27a1
0000279b: JUMP
0000279c: JUMPDEST
0000279d: PUSH1 0x60
0000279f: SWAP2
000027a0: POP
000027a1: JUMPDEST
000027a2: POP
000027a3: SWAP2
000027a4: POP
000027a5: SWAP2
000027a6: POP
000027a7: DUP2
000027a8: PUSH2 0x2819
000027ab: JUMPI
000027ac: PUSH1 0x40
000027ae: MLOAD
000027af: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000027d0: DUP2
000027d1: MSTORE
000027d2: PUSH1 0x04
000027d4: ADD
000027d5: DUP1
000027d6: DUP1
000027d7: PUSH1 0x20
000027d9: ADD
000027da: DUP3
000027db: DUP2
000027dc: SUB
000027dd: DUP3
000027de: MSTORE
000027df: PUSH1 0x20
000027e1: DUP2
000027e2: MSTORE
000027e3: PUSH1 0x20
000027e5: ADD
000027e6: DUP1
000027e7: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00002808: DUP2
00002809: MSTORE
0000280a: POP
0000280b: PUSH1 0x20
0000280d: ADD
0000280e: SWAP2
0000280f: POP
00002810: POP
00002811: PUSH1 0x40
00002813: MLOAD
00002814: DUP1
00002815: SWAP2
00002816: SUB
00002817: SWAP1
00002818: REVERT
00002819: JUMPDEST
0000281a: PUSH1 0x00
0000281c: DUP2
0000281d: MLOAD
0000281e: GT
0000281f: ISZERO
00002820: PUSH2 0x289f
00002823: JUMPI
00002824: DUP1
00002825: DUP1
00002826: PUSH1 0x20
00002828: ADD
00002829: SWAP1
0000282a: MLOAD
0000282b: PUSH1 0x20
0000282d: DUP2
0000282e: LT
0000282f: ISZERO
00002830: PUSH2 0x2838
00002833: JUMPI
00002834: PUSH1 0x00
00002836: DUP1
00002837: REVERT
00002838: JUMPDEST
00002839: DUP2
0000283a: ADD
0000283b: SWAP1
0000283c: DUP1
0000283d: DUP1
0000283e: MLOAD
0000283f: SWAP1
00002840: PUSH1 0x20
00002842: ADD
00002843: SWAP1
00002844: SWAP3
00002845: SWAP2
00002846: SWAP1
00002847: POP
00002848: POP
00002849: POP
0000284a: PUSH2 0x289e
0000284d: JUMPI
0000284e: PUSH1 0x40
00002850: MLOAD
00002851: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002872: DUP2
00002873: MSTORE
00002874: PUSH1 0x04
00002876: ADD
00002877: DUP1
00002878: DUP1
00002879: PUSH1 0x20
0000287b: ADD
0000287c: DUP3
0000287d: DUP2
0000287e: SUB
0000287f: DUP3
00002880: MSTORE
00002881: PUSH1 0x2a
00002883: DUP2
00002884: MSTORE
00002885: PUSH1 0x20
00002887: ADD
00002888: DUP1
00002889: PUSH2 0x2a31
0000288c: PUSH1 0x2a
0000288e: SWAP2
0000288f: CODECOPY
00002890: PUSH1 0x40
00002892: ADD
00002893: SWAP2
00002894: POP
00002895: POP
00002896: PUSH1 0x40
00002898: MLOAD
00002899: DUP1
0000289a: SWAP2
0000289b: SUB
0000289c: SWAP1
0000289d: REVERT
0000289e: JUMPDEST
0000289f: JUMPDEST
000028a0: POP
000028a1: POP
000028a2: POP
000028a3: POP
000028a4: JUMP
000028a5: JUMPDEST
000028a6: PUSH1 0x00
000028a8: DUP1
000028a9: PUSH1 0x00
000028ab: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
000028cc: PUSH1 0x00
000028ce: SHL
000028cf: SWAP1
000028d0: POP
000028d1: DUP4
000028d2: EXTCODEHASH
000028d3: SWAP2
000028d4: POP
000028d5: PUSH1 0x00
000028d7: DUP1
000028d8: SHL
000028d9: DUP3
000028da: EQ
000028db: ISZERO
000028dc: DUP1
000028dd: ISZERO
000028de: PUSH2 0x28e7
000028e1: JUMPI
000028e2: POP
000028e3: DUP1
000028e4: DUP3
000028e5: EQ
000028e6: ISZERO
000028e7: JUMPDEST
000028e8: SWAP3
000028e9: POP
000028ea: POP
000028eb: POP
000028ec: SWAP2
000028ed: SWAP1
000028ee: POP
000028ef: JUMP
000028f0: INVALID
000028f1: GASLIMIT
000028f2: MSTORE
000028f3: NUMBER
000028f4: ORIGIN
000028f5: ADDRESS
000028f6: GASPRICE
000028f7: KECCAK256
000028f8: PUSH21 0x72616e7366657220746f20746865207a65726f2061
0000290e: PUSH5 0x6472657373
00002914: GASLIMIT
00002915: MSTORE
00002916: NUMBER
00002917: ORIGIN
00002918: ADDRESS
00002919: GASPRICE
0000291a: KECCAK256
0000291b: PUSH3 0x75726e
0000291f: KECCAK256
00002920: PUSH2 0x6d6f
00002923: PUSH22 0x6e7420657863656564732062616c616e636545524332
0000293a: ADDRESS
0000293b: GASPRICE
0000293c: KECCAK256
0000293d: PUSH2 0x7070
00002940: PUSH19 0x6f766520746f20746865207a65726f20616464
00002954: PUSH19 0x65737345524332303a207472616e7366657220
00002968: PUSH2 0x6d6f
0000296b: PUSH22 0x6e7420657863656564732062616c616e636553616665
00002982: UNKNOWN(0x4D)
00002983: PUSH2 0x7468
00002986: GASPRICE
00002987: KECCAK256
00002988: PUSH14 0x756c7469706c69636174696f6e20
00002997: PUSH16 0x766572666c6f7745524332303a207472
000029a8: PUSH2 0x6e73
000029ab: PUSH7 0x657220616d6f75
000029b3: PUSH15 0x74206578636565647320616c6c6f77
000029c3: PUSH2 0x6e63
000029c6: PUSH6 0x45524332303a
000029cd: KECCAK256
000029ce: PUSH3 0x75726e
000029d2: KECCAK256
000029d3: PUSH7 0x726f6d20746865
000029db: KECCAK256
000029dc: PUSH27 0x65726f206164647265737345524332303a207472616e7366657220
000029f8: PUSH7 0x726f6d20746865
00002a00: KECCAK256
00002a01: PUSH27 0x65726f206164647265737345524332303a20617070726f76652066
00002a1d: PUSH19 0x6f6d20746865207a65726f2061646472657373
00002a31: MSTORE8
00002a32: PUSH2 0x6665
00002a35: GASLIMIT
00002a36: MSTORE
00002a37: NUMBER
00002a38: ORIGIN
00002a39: ADDRESS
00002a3a: GASPRICE
00002a3b: KECCAK256
00002a3c: GASLIMIT
00002a3d: MSTORE
00002a3e: NUMBER
00002a3f: ORIGIN
00002a40: ADDRESS
00002a41: KECCAK256
00002a42: PUSH16 0x7065726174696f6e20646964206e6f74
00002a53: KECCAK256
00002a54: PUSH20 0x75636365656445524332303a2064656372656173
00002a69: PUSH6 0x6420616c6c6f
00002a70: PUSH24 0x616e63652062656c6f77207a65726fa265627a7a72315820
00002a89: PUSH26 0xf8d577922ab95ef59e5dc1b898a1a35e416558ea1c8d73e40b2b
00002aa4: UNKNOWN(0xF8)
00002aa5: UNKNOWN(0xCC)
00002aa6: INVALID
00002aa7: PUSH23

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf77c4791",
            "selector": "0xf77c4791",
            "calldata_variants": [
                "0xf77c4791",
                "0xf77c47910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8897945",
            "selector": "0xf8897945",
            "calldata_variants": [
                "0xf8897945",
                "0xf88979450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb69ef8a8",
            "selector": "0xb69ef8a8",
            "calldata_variants": [
                "0xb69ef8a8",
                "0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb6b55f25",
            "selector": "0xb6b55f25",
            "calldata_variants": [
                "0xb6b55f25",
                "0xb6b55f250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd389800f",
            "selector": "0xd389800f",
            "calldata_variants": [
                "0xd389800f",
                "0xd389800f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x77c7b8fc",
            "selector": "0x77c7b8fc",
            "calldata_variants": [
                "0x77c7b8fc",
                "0x77c7b8fc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 3695,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4347,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5007,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10484,
            "type": "tx_origin_used"
        },
        {
            "pc": 10519,
            "type": "tx_origin_used"
        },
        {
            "pc": 10808,
            "type": "tx_origin_used"
        },
        {
            "pc": 10815,
            "type": "tx_origin_used"
        }
    ]
}
medium math codex Share inflation via donations can force zero-share mints and steal deposits 75 no
view
evidence_json
{
    "evidence": "deposit() calculates shares using `_pool = balance()` and only checks `_pool==0`, so if `totalSupply()==0` but `_pool>0` (via donations), `shares = (_amount * totalSupply) / _pool` becomes 0; similarly, an inflated `_pool` with low `totalSupply` can force extreme truncation.",
    "locations": [
        "contracts/Contract.sol:322",
        "contracts/Contract.sol:326",
        "contracts/Contract.sol:329",
        "contracts/Contract.sol:331"
    ],
    "recommendation": "Guard the initial mint based on `totalSupply()` (not just `_pool`) and prevent zero-share mints. Common mitigations: revert if `totalSupply()==0 && _pool>0`, mint a small non-withdrawable \u201cseed\u201d amount to a burn address, add virtual shares/liquidity, and/or require `shares > 0` to proceed.",
    "exploit_scenario": "An attacker deposits a minimal amount to mint 1 share, then directly transfers (donates) a large amount of underlying tokens to the vault, inflating `_pool` without increasing `totalSupply`. A victim who deposits afterward receives `shares = amount * totalSupply / _pool`, which truncates to 0 when the donated amount exceeds the victim\u2019s deposit. The attacker then withdraws their single share and receives essentially the entire pool, including the victim\u2019s deposit. A related griefing case exists if tokens are donated before the first deposit (totalSupply==0 but _pool>0), causing all deposits to mint 0 shares and locking funds."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x6962a5225bec788634261fc423a1beb0b0f406e81f0a2f54682e3622b329774f
call_targets: 0x597ad1e0c13bfe8025993d9e79c69e1c0233522e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x6962a5225bec788634261fc423a1beb0b0f406e81f0a2f54682e3622b329774f",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x597ad1e0c13bfe8025993d9e79c69e1c0233522e"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf77c4791",
            "selector": "0xf77c4791",
            "calldata_variants": [
                "0xf77c4791",
                "0xf77c47910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8897945",
            "selector": "0xf8897945",
            "calldata_variants": [
                "0xf8897945",
                "0xf88979450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb69ef8a8",
            "selector": "0xb69ef8a8",
            "calldata_variants": [
                "0xb69ef8a8",
                "0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb6b55f25",
            "selector": "0xb6b55f25",
            "calldata_variants": [
                "0xb6b55f25",
                "0xb6b55f250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd389800f",
            "selector": "0xd389800f",
            "calldata_variants": [
                "0xd389800f",
                "0xd389800f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x77c7b8fc",
            "selector": "0x77c7b8fc",
            "calldata_variants": [
                "0x77c7b8fc",
                "0x77c7b8fc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3053,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6210,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10093,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 3695,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4347,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5007,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10484,
            "type": "tx_origin_used"
        },
        {
            "pc": 10519,
            "type": "tx_origin_used"
        },
        {
            "pc": 10808,
            "type": "tx_origin_used"
        },
        {
            "pc": 10815,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x6962a5225bec788634261fc423a1beb0b0f406e81f0a2f54682e3622b329774f
call_targets: 0x597ad1e0c13bfe8025993d9e79c69e1c0233522e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x6962a5225bec788634261fc423a1beb0b0f406e81f0a2f54682e3622b329774f",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x597ad1e0c13bfe8025993d9e79c69e1c0233522e"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf77c4791",
            "selector": "0xf77c4791",
            "calldata_variants": [
                "0xf77c4791",
                "0xf77c47910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8897945",
            "selector": "0xf8897945",
            "calldata_variants": [
                "0xf8897945",
                "0xf88979450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb69ef8a8",
            "selector": "0xb69ef8a8",
            "calldata_variants": [
                "0xb69ef8a8",
                "0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb6b55f25",
            "selector": "0xb6b55f25",
            "calldata_variants": [
                "0xb6b55f25",
                "0xb6b55f250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd389800f",
            "selector": "0xd389800f",
            "calldata_variants": [
                "0xd389800f",
                "0xd389800f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x77c7b8fc",
            "selector": "0x77c7b8fc",
            "calldata_variants": [
                "0x77c7b8fc",
                "0x77c7b8fc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3053,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6210,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10093,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 3695,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4347,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5007,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10484,
            "type": "tx_origin_used"
        },
        {
            "pc": 10519,
            "type": "tx_origin_used"
        },
        {
            "pc": 10808,
            "type": "tx_origin_used"
        },
        {
            "pc": 10815,
            "type": "tx_origin_used"
        }
    ]
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 8
}