2763da7f-91ba-434d-8942-6b9a4e4ee8c5
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31684 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 95527 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 95528 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 95529 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 95530 | capability.graph | complete | 1 / 3 | 1 week ago |
| 95531 | detector.run | complete | 1 / 3 | 1 week ago |
| 95532 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:596779] OpenAI Codex v0.77.0 (research preview)
[codex:596779] --------
[codex:596779] workdir: /tmp/codex-multi-bqcrdiz2
[codex:596779] model: gpt-5.2-codex
[codex:596779] provider: openai
[codex:596779] approval: never
[codex:596779] sandbox: read-only
[codex:596779] reasoning effort: xhigh
[codex:596779] reasoning summaries: auto
[codex:596779] session id: 019b8c68-740c-7e12-a825-ae59e647a51e
[codex:596779] --------
[codex:596779] user
[codex:596779] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:596779]
[codex:596779] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:596779]
[codex:596779] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:596779] - Gas inefficiency, code quality, naming, or best practices
[codex:596779] - Theoretical vulnerabilities without a clear extraction path
[codex:596779] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:596779] - Front-running unless it enables theft beyond MEV
[codex:596779] - DoS, griefing, or issues that don't result in attacker profit
[codex:596779] - Missing events, view function issues, or informational findings
[codex:596779]
[codex:596779] HIGH-VALUE PATTERNS TO HUNT:
[codex:596779] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:596779] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:596779] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:596779] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:596779] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:596779] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:596779] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:596779] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:596779] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:596779]
[codex:596779] For each finding, you MUST provide:
[codex:596779] 1. Exact file and line numbers of vulnerable code
[codex:596779] 2. Step-by-step exploit transaction sequence
[codex:596779] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:596779]
[codex:596779] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:596779]
[codex:596779] Output MUST be valid JSON matching the provided schema.
[codex:596779] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:596779] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:596779] mcp startup: no servers
[codex:596779]
[codex:596779] thinking
[codex:596779] **Preparing to check skills and instructions**
[codex:596779] exec
[codex:596779] /bin/bash -lc ls in /tmp/codex-multi-bqcrdiz2 succeeded in 7ms:
[codex:596779] AUDIT_BUNDLE.txt
[codex:596779] codex-output-schema.json
[codex:596779] contracts
[codex:596779]
[codex:596779] thinking
[codex:596779] **Reviewing AUDIT_BUNDLE file**
[codex:596779] exec
[codex:596779] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-bqcrdiz2 succeeded in 5ms:
[codex:596779] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:596779]
[codex:596779] ================================================================================
[codex:596779] FILE: contracts/Contract.sol
[codex:596779] ================================================================================
[codex:596779] // Sources flattened with hardhat v2.4.3 https://hardhat.org
[codex:596779]
[codex:596779] // File contracts/solidity/token/IERC20Upgradeable.sol
[codex:596779]
[codex:596779] // SPDX-License-Identifier: MIT
[codex:596779]
[codex:596779] pragma solidity ^0.8.0;
[codex:596779]
[codex:596779] /**
[codex:596779] * @dev Interface of the ERC20 standard as defined in the EIP.
[codex:596779] */
[codex:596779] interface IERC20Upgradeable {
[codex:596779] /**
[codex:596779] * @dev Returns the amount of tokens in existence.
[codex:596779] */
[codex:596779]
[codex:596779] thinking
[codex:596779] **Analyzing NFTXV1Buyout for exploits**
[codex:596779] exec
[codex:596779] /bin/bash -lc 'rg --files' in /tmp/codex-multi-bqcrdiz2 succeeded in 14ms:
[codex:596779] codex-output-schema.json
[codex:596779] AUDIT_BUNDLE.txt
[codex:596779] contracts/Contract.sol
[codex:596779]
[codex:596779] thinking
[codex:596779] **Evaluating Contract vulnerabilities**
[codex:596779] exec
[codex:596779] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '220,380p'" in /tmp/codex-multi-bqcrdiz2 succeeded in 6ms:
[codex:596779] 220 *
[codex:596779] 221 * This contract is only required for intermediate, library-like contracts.
[codex:596779] 222 */
[codex:596779] 223 abstract contract ContextUpgradeable is Initializable {
[codex:596779] 224 function __Context_init() internal initializer {
[codex:596779] 225 __Context_init_unchained();
[codex:596779] 226 }
[codex:596779] 227
[codex:596779] 228 function __Context_init_unchained() internal initializer {
[codex:596779] 229 }
[codex:596779] 230 function _msgSender() internal view virtual returns (address) {
[codex:596779] 231 return msg.sender;
[codex:596779] 232 }
[codex:596779] 233
[codex:596779] 234 function _msgData() internal view virtual returns (bytes calldata) {
[codex:596779] 235 this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
[codex:596779] 236 return msg.data;
[codex:596779] 237 }
[codex:596779] 238 uint256[50] private __gap;
[codex:596779] 239 }
[codex:596779]
[codex:596779] thinking
[codex:596779] **Searching around NFTXV1Buyout initialization**
[codex:596779] exec
[codex:596779] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '520,760p'" in /tmp/codex-multi-bqcrdiz2 succeeded in 6ms:
[codex:596779] 520 *
[codex:596779] 521 * Counterpart to Solidity's `%` operator. This function uses a `revert`
[codex:596779] 522 * opcode (which leaves remaining gas untouched) while Solidity uses an
[codex:596779] 523 * invalid opcode to revert (consuming all remaining gas).
[codex:596779] 524 *
[codex:596779] 525 * Requirements:
[codex:596779] 526 *
[codex:596779] 527 * - The divisor cannot be zero.
[codex:596779] 528 */
[codex:596779] 529 function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
[codex:596779] 530 unchecked {
[codex:596779] 531 require(b > 0, errorMessage);
[codex:596779] 532 return a % b;
[codex:596779] 533 }
[codex:596779] 534 }
[codex:596779] 535
[codex:596779] 536 /**
[codex:596779] 537 * @dev Converts an unsigned uint256 into a signed int256.
[codex:596779] 538 *
[codex:596779] 539 * Requirements:
[codex:596779]
[codex:596779] thinking
[codex:596779] **Summarizing unprotected initializer exploit**
[codex:596779]
[codex:596779] I'm analyzing the critical risk from the external initializer in `Contract.sol` allowing ownership takeover if uninitialized; this enables an attacker to drain ETH via emergencyWithdraw or removeBuyout. I'll detail evidence lines, step-by-step exploit scenario, profit potential, exploit classification as upgradeability, and recommendations in a JSON format suited for the user's profit-focused audit.
[codex:596779] codex
[codex:596779] {"no_findings":false,"summary":"Found one critical takeover vector if the contract/proxy is left uninitialized, allowing an attacker to seize ownership and drain all ETH.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected external initializer enables ownership takeover and ETH drain if uninitialized","exploit_scenario":"1) Attacker checks `owner()`; if zero (proxy/contract not initialized), they call `__NFTXV1Buyout_init()` to become owner via `__Ownable_init`. 2) As owner, attacker calls `emergencyWithdraw()` to pull the entire ETH balance, or `removeBuyout(v1TokenAddr)` to withdraw any buyout ETH for a specific token. 3) Profit equals the full ETH held by the contract (all buyout liquidity).","recommendation":"Ensure the proxy is initialized atomically at deployment and lock the implementation by disabling initializers (e.g., constructor that calls `_disableInitializers()`), or add an explicit access check on `__NFTXV1Buyout_init` for first-time setup.","evidence":"`__NFTXV1Buyout_init` is external and sets ownership through `__Pausable_init` -> `__Ownable_init`, allowing first caller to become owner; owner-only withdraws can then drain ETH.","locations":["contracts/Contract.sol:617","contracts/Contract.sol:559","contracts/Contract.sol:269","contracts/Contract.sol:623","contracts/Contract.sol:639"]}]}
[codex:596779] tokens used
[codex:596779] 16,336
[codex:596779] {"no_findings":false,"summary":"Found one critical takeover vector if the contract/proxy is left uninitialized, allowing an attacker to seize ownership and drain all ETH.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected external initializer enables ownership takeover and ETH drain if uninitialized","exploit_scenario":"1) Attacker checks `owner()`; if zero (proxy/contract not initialized), they call `__NFTXV1Buyout_init()` to become owner via `__Ownable_init`. 2) As owner, attacker calls `emergencyWithdraw()` to pull the entire ETH balance, or `removeBuyout(v1TokenAddr)` to withdraw any buyout ETH for a specific token. 3) Profit equals the full ETH held by the contract (all buyout liquidity).","recommendation":"Ensure the proxy is initialized atomically at deployment and lock the implementation by disabling initializers (e.g., constructor that calls `_disableInitializers()`), or add an explicit access check on `__NFTXV1Buyout_init` for first-time setup.","evidence":"`__NFTXV1Buyout_init` is external and sets ownership through `__Pausable_init` -> `__Ownable_init`, allowing first caller to become owner; owner-only withdraws can then drain ETH.","locations":["contracts/Contract.sol:617","contracts/Contract.sol:559","contracts/Contract.sol:269","contracts/Contract.sol:623","contracts/Contract.sol:639"]}]}
{
"codex": {
"ran_at": "2026-01-05T04:28:43.563072+00:00",
"returncode": 0
},
"summary": "Found one critical takeover vector if the contract/proxy is left uninitialized, allowing an attacker to seize ownership and drain all ETH.",
"raw_final": {
"summary": "Found one critical takeover vector if the contract/proxy is left uninitialized, allowing an attacker to seize ownership and drain all ETH.",
"findings": [
{
"title": "Unprotected external initializer enables ownership takeover and ETH drain if uninitialized",
"category": "upgradeability",
"evidence": "`__NFTXV1Buyout_init` is external and sets ownership through `__Pausable_init` -> `__Ownable_init`, allowing first caller to become owner; owner-only withdraws can then drain ETH.",
"severity": "critical",
"locations": [
"contracts/Contract.sol:617",
"contracts/Contract.sol:559",
"contracts/Contract.sol:269",
"contracts/Contract.sol:623",
"contracts/Contract.sol:639"
],
"recommendation": "Ensure the proxy is initialized atomically at deployment and lock the implementation by disabling initializers (e.g., constructor that calls `_disableInitializers()`), or add an explicit access check on `__NFTXV1Buyout_init` for first-time setup.",
"exploit_scenario": "1) Attacker checks `owner()`; if zero (proxy/contract not initialized), they call `__NFTXV1Buyout_init()` to become owner via `__Ownable_init`. 2) As owner, attacker calls `emergencyWithdraw()` to pull the entire ETH balance, or `removeBuyout(v1TokenAddr)` to withdraw any buyout ETH for a specific token. 3) Profit equals the full ETH held by the contract (all buyout liquidity)."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x00f3 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8da5cb5b 00000019: GT 0000001a: PUSH2 0x008a 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xd8374740 00000024: GT 00000025: PUSH2 0x0059 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xd8374740 0000002f: EQ 00000030: PUSH2 0x0294 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xdb2e21bc 0000003a: EQ 0000003b: PUSH2 0x02cf 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf2fde38b 00000045: EQ 00000046: PUSH2 0x02e4 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfabc1cbc 00000050: EQ 00000051: PUSH2 0x0304 00000054: JUMPI 00000055: PUSH1 0x00 00000057: DUP1 00000058: REVERT 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0x8da5cb5b 00000060: EQ 00000061: PUSH2 0x01fc 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0xb5ba3a1a 0000006b: EQ 0000006c: PUSH2 0x0224 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xbdf2a43c 00000076: EQ 00000077: PUSH2 0x0244 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xcdcf9cdb 00000081: EQ 00000082: PUSH2 0x0274 00000085: JUMPI 00000086: PUSH1 0x00 00000088: DUP1 00000089: REVERT 0000008a: JUMPDEST 0000008b: DUP1 0000008c: PUSH4 0x69cbec6d 00000091: GT 00000092: PUSH2 0x00c6 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x69cbec6d 0000009c: EQ 0000009d: PUSH2 0x0192 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x715018a6 000000a7: EQ 000000a8: PUSH2 0x01a7 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x7c77b616 000000b2: EQ 000000b3: PUSH2 0x01bc 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x7e66c0b9 000000bd: EQ 000000be: PUSH2 0x01dc 000000c1: JUMPI 000000c2: PUSH1 0x00 000000c4: DUP1 000000c5: REVERT 000000c6: JUMPDEST 000000c7: DUP1 000000c8: PUSH4 0x0c68ba21 000000cd: EQ 000000ce: PUSH2 0x00f8 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x136439dd 000000d8: EQ 000000d9: PUSH2 0x013d 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x23845fb5 000000e3: EQ 000000e4: PUSH2 0x015f 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x66f0a57d 000000ee: EQ 000000ef: PUSH2 0x017f 000000f2: JUMPI 000000f3: JUMPDEST 000000f4: PUSH1 0x00 000000f6: DUP1 000000f7: REVERT 000000f8: JUMPDEST 000000f9: CALLVALUE 000000fa: DUP1 000000fb: ISZERO 000000fc: PUSH2 0x0104 000000ff: JUMPI 00000100: PUSH1 0x00 00000102: DUP1 00000103: REVERT 00000104: JUMPDEST 00000105: POP 00000106: PUSH2 0x0128 00000109: PUSH2 0x0113 0000010c: CALLDATASIZE 0000010d: PUSH1 0x04 0000010f: PUSH2 0x1489 00000112: JUMP 00000113: JUMPDEST 00000114: PUSH1 0x65 00000116: PUSH1 0x20 00000118: MSTORE 00000119: PUSH1 0x00 0000011b: SWAP1 0000011c: DUP2 0000011d: MSTORE 0000011e: PUSH1 0x40 00000120: SWAP1 00000121: KECCAK256 00000122: SLOAD 00000123: PUSH1 0xff 00000125: AND 00000126: DUP2 00000127: JUMP 00000128: JUMPDEST 00000129: PUSH1 0x40 0000012b: MLOAD 0000012c: SWAP1 0000012d: ISZERO 0000012e: ISZERO 0000012f: DUP2 00000130: MSTORE 00000131: PUSH1 0x20 00000133: ADD 00000134: JUMPDEST 00000135: PUSH1 0x40 00000137: MLOAD 00000138: DUP1 00000139: SWAP2 0000013a: SUB 0000013b: SWAP1 0000013c: RETURN 0000013d: JUMPDEST 0000013e: CALLVALUE 0000013f: DUP1 00000140: ISZERO 00000141: PUSH2 0x0149 00000144: JUMPI 00000145: PUSH1 0x00 00000147: DUP1 00000148: REVERT 00000149: JUMPDEST 0000014a: POP 0000014b: PUSH2 0x015d 0000014e: PUSH2 0x0158 00000151: CALLDATASIZE 00000152: PUSH1 0x04 00000154: PUSH2 0x14e4 00000157: JUMP 00000158: JUMPDEST 00000159: PUSH2 0x0324 0000015c: JUMP 0000015d: JUMPDEST 0000015e: STOP 0000015f: JUMPDEST 00000160: CALLVALUE 00000161: DUP1 00000162: ISZERO 00000163: PUSH2 0x016b 00000166: JUMPI 00000167: PUSH1 0x00 00000169: DUP1 0000016a: REVERT 0000016b: JUMPDEST 0000016c: POP 0000016d: PUSH2 0x015d 00000170: PUSH2 0x017a 00000173: CALLDATASIZE 00000174: PUSH1 0x04 00000176: PUSH2 0x14aa 00000179: JUMP 0000017a: JUMPDEST 0000017b: PUSH2 0x03e0 0000017e: JUMP 0000017f: JUMPDEST 00000180: PUSH2 0x015d 00000183: PUSH2 0x018d 00000186: CALLDATASIZE 00000187: PUSH1 0x04 00000189: PUSH2 0x1489 0000018c: JUMP 0000018d: JUMPDEST 0000018e: PUSH2 0x049e 00000191: JUMP 00000192: JUMPDEST 00000193: CALLVALUE 00000194: DUP1 00000195: ISZERO 00000196: PUSH2 0x019e 00000199: JUMPI 0000019a: PUSH1 0x00 0000019c: DUP1 0000019d: REVERT 0000019e: JUMPDEST 0000019f: POP 000001a0: PUSH2 0x015d 000001a3: PUSH2 0x05b3 000001a6: JUMP 000001a7: JUMPDEST 000001a8: CALLVALUE 000001a9: DUP1 000001aa: ISZERO 000001ab: PUSH2 0x01b3 000001ae: JUMPI 000001af: PUSH1 0x00 000001b1: DUP1 000001b2: REVERT 000001b3: JUMPDEST 000001b4: POP 000001b5: PUSH2 0x015d 000001b8: PUSH2 0x0676 000001bb: JUMP 000001bc: JUMPDEST 000001bd: CALLVALUE 000001be: DUP1 000001bf: ISZERO 000001c0: PUSH2 0x01c8 000001c3: JUMPI 000001c4: PUSH1 0x00 000001c6: DUP1 000001c7: REVERT 000001c8: JUMPDEST 000001c9: POP 000001ca: PUSH2 0x015d 000001cd: PUSH2 0x01d7 000001d0: CALLDATASIZE 000001d1: PUSH1 0x04 000001d3: PUSH2 0x14e4 000001d6: JUMP 000001d7: JUMPDEST 000001d8: PUSH2 0x0727 000001db: JUMP 000001dc: JUMPDEST 000001dd: CALLVALUE 000001de: DUP1 000001df: ISZERO 000001e0: PUSH2 0x01e8 000001e3: JUMPI 000001e4: PUSH1 0x00 000001e6: DUP1 000001e7: REVERT 000001e8: JUMPDEST 000001e9: POP 000001ea: PUSH2 0x015d 000001ed: PUSH2 0x01f7 000001f0: CALLDATASIZE 000001f1: PUSH1 0x04 000001f3: PUSH2 0x1489 000001f6: JUMP 000001f7: JUMPDEST 000001f8: PUSH2 0x079b 000001fb: JUMP 000001fc: JUMPDEST 000001fd: CALLVALUE 000001fe: DUP1 000001ff: ISZERO 00000200: PUSH2 0x0208 00000203: JUMPI 00000204: PUSH1 0x00 00000206: DUP1 00000207: REVERT 00000208: JUMPDEST 00000209: POP 0000020a: PUSH1 0x33 0000020c: SLOAD 0000020d: PUSH1 0x40 0000020f: MLOAD 00000210: PUSH1 0x01 00000212: PUSH1 0x01 00000214: PUSH1 0xa0 00000216: SHL 00000217: SUB 00000218: SWAP1 00000219: SWAP2 0000021a: AND 0000021b: DUP2 0000021c: MSTORE 0000021d: PUSH1 0x20 0000021f: ADD 00000220: PUSH2 0x0134 00000223: JUMP 00000224: JUMPDEST 00000225: CALLVALUE 00000226: DUP1 00000227: ISZERO 00000228: PUSH2 0x0230 0000022b: JUMPI 0000022c: PUSH1 0x00 0000022e: DUP1 0000022f: REVERT 00000230: JUMPDEST 00000231: POP 00000232: PUSH2 0x015d 00000235: PUSH2 0x023f 00000238: CALLDATASIZE 00000239: PUSH1 0x04 0000023b: PUSH2 0x1489 0000023e: JUMP 0000023f: JUMPDEST 00000240: PUSH2 0x0bb8 00000243: JUMP 00000244: JUMPDEST 00000245: CALLVALUE 00000246: DUP1 00000247: ISZERO 00000248: PUSH2 0x0250 0000024b: JUMPI 0000024c: PUSH1 0x00 0000024e: DUP1 0000024f: REVERT 00000250: JUMPDEST 00000251: POP 00000252: PUSH2 0x0128 00000255: PUSH2 0x025f 00000258: CALLDATASIZE 00000259: PUSH1 0x04 0000025b: PUSH2 0x14e4 0000025e: JUMP 0000025f: JUMPDEST 00000260: PUSH1 0x66 00000262: PUSH1 0x20 00000264: MSTORE 00000265: PUSH1 0x00 00000267: SWAP1 00000268: DUP2 00000269: MSTORE 0000026a: PUSH1 0x40 0000026c: SWAP1 0000026d: KECCAK256 0000026e: SLOAD 0000026f: PUSH1 0xff 00000271: AND 00000272: DUP2 00000273: JUMP 00000274: JUMPDEST 00000275: CALLVALUE 00000276: DUP1 00000277: ISZERO 00000278: PUSH2 0x0280 0000027b: JUMPI 0000027c: PUSH1 0x00 0000027e: DUP1 0000027f: REVERT 00000280: JUMPDEST 00000281: POP 00000282: PUSH2 0x015d 00000285: PUSH2 0x028f 00000288: CALLDATASIZE 00000289: PUSH1 0x04 0000028b: PUSH2 0x1489 0000028e: JUMP 0000028f: JUMPDEST 00000290: PUSH2 0x0c5e 00000293: JUMP 00000294: JUMPDEST 00000295: CALLVALUE 00000296: DUP1 00000297: ISZERO 00000298: PUSH2 0x02a0 0000029b: JUMPI 0000029c: PUSH1 0x00 0000029e: DUP1 0000029f: REVERT 000002a0: JUMPDEST 000002a1: POP 000002a2: PUSH2 0x02c1 000002a5: PUSH2 0x02af 000002a8: CALLDATASIZE 000002a9: PUSH1 0x04 000002ab: PUSH2 0x1489 000002ae: JUMP 000002af: JUMPDEST 000002b0: PUSH1 0x99 000002b2: PUSH1 0x20 000002b4: MSTORE 000002b5: PUSH1 0x00 000002b7: SWAP1 000002b8: DUP2 000002b9: MSTORE 000002ba: PUSH1 0x40 000002bc: SWAP1 000002bd: KECCAK256 000002be: SLOAD 000002bf: DUP2 000002c0: JUMP 000002c1: JUMPDEST 000002c2: PUSH1 0x40 000002c4: MLOAD 000002c5: SWAP1 000002c6: DUP2 000002c7: MSTORE 000002c8: PUSH1 0x20 000002ca: ADD 000002cb: PUSH2 0x0134 000002ce: JUMP 000002cf: JUMPDEST 000002d0: CALLVALUE 000002d1: DUP1 000002d2: ISZERO 000002d3: PUSH2 0x02db 000002d6: JUMPI 000002d7: PUSH1 0x00 000002d9: DUP1 000002da: REVERT 000002db: JUMPDEST 000002dc: POP 000002dd: PUSH2 0x015d 000002e0: PUSH2 0x0d9d 000002e3: JUMP 000002e4: JUMPDEST 000002e5: CALLVALUE 000002e6: DUP1 000002e7: ISZERO 000002e8: PUSH2 0x02f0 000002eb: JUMPI 000002ec: PUSH1 0x00 000002ee: DUP1 000002ef: REVERT 000002f0: JUMPDEST 000002f1: POP 000002f2: PUSH2 0x015d 000002f5: PUSH2 0x02ff 000002f8: CALLDATASIZE 000002f9: PUSH1 0x04 000002fb: PUSH2 0x1489 000002fe: JUMP 000002ff: JUMPDEST 00000300: PUSH2 0x0e23 00000303: JUMP 00000304: JUMPDEST 00000305: CALLVALUE 00000306: DUP1 00000307: ISZERO 00000308: PUSH2 0x0310 0000030b: JUMPI 0000030c: PUSH1 0x00 0000030e: DUP1 0000030f: REVERT 00000310: JUMPDEST 00000311: POP 00000312: PUSH2 0x015d 00000315: PUSH2 0x031f 00000318: CALLDATASIZE 00000319: PUSH1 0x04 0000031b: PUSH2 0x14e4 0000031e: JUMP 0000031f: JUMPDEST 00000320: PUSH2 0x0f62 00000323: JUMP 00000324: JUMPDEST 00000325: CALLER 00000326: PUSH1 0x00 00000328: SWAP1 00000329: DUP2 0000032a: MSTORE 0000032b: PUSH1 0x65 0000032d: PUSH1 0x20 0000032f: MSTORE 00000330: PUSH1 0x40 00000332: SWAP1 00000333: KECCAK256 00000334: SLOAD 00000335: PUSH1 0xff 00000337: AND 00000338: PUSH2 0x0388 0000033b: JUMPI 0000033c: PUSH1 0x40 0000033e: MLOAD 0000033f: PUSH3 0x461bcd 00000343: PUSH1 0xe5 00000345: SHL 00000346: DUP2 00000347: MSTORE 00000348: PUSH1 0x20 0000034a: PUSH1 0x04 0000034c: DUP3 0000034d: ADD 0000034e: MSTORE 0000034f: PUSH1 0x0b 00000351: PUSH1 0x24 00000353: DUP3 00000354: ADD 00000355: MSTORE 00000356: PUSH32 0x43616e2774207061757365000000000000000000000000000000000000000000 00000377: PUSH1 0x44 00000379: DUP3 0000037a: ADD 0000037b: MSTORE 0000037c: PUSH1 0x64 0000037e: ADD 0000037f: JUMPDEST 00000380: PUSH1 0x40 00000382: MLOAD 00000383: DUP1 00000384: SWAP2 00000385: SUB 00000386: SWAP1 00000387: REVERT 00000388: JUMPDEST 00000389: PUSH1 0x00 0000038b: DUP2 0000038c: DUP2 0000038d: MSTORE 0000038e: PUSH1 0x66 00000390: PUSH1 0x20 00000392: SWAP1 00000393: DUP2 00000394: MSTORE 00000395: PUSH1 0x40 00000397: SWAP2 00000398: DUP3 00000399: SWAP1 0000039a: KECCAK256 0000039b: DUP1 0000039c: SLOAD 0000039d: PUSH1 0xff 0000039f: NOT 000003a0: AND 000003a1: PUSH1 0x01 000003a3: SWAP1 000003a4: DUP2 000003a5: OR 000003a6: SWAP1 000003a7: SWAP2 000003a8: SSTORE 000003a9: DUP3 000003aa: MLOAD 000003ab: DUP5 000003ac: DUP2 000003ad: MSTORE 000003ae: SWAP2 000003af: DUP3 000003b0: ADD 000003b1: MSTORE 000003b2: PUSH32 0x77f1fcfcce67dc392d64f842056d2ec06c80986c47c910f7e79c5b23a2738d74 000003d3: SWAP2 000003d4: ADD 000003d5: JUMPDEST 000003d6: PUSH1 0x40 000003d8: MLOAD 000003d9: DUP1 000003da: SWAP2 000003db: SUB 000003dc: SWAP1 000003dd: LOG1 000003de: POP 000003df: JUMP 000003e0: JUMPDEST 000003e1: PUSH1 0x33 000003e3: SLOAD 000003e4: PUSH1 0x01 000003e6: PUSH1 0x01 000003e8: PUSH1 0xa0 000003ea: SHL 000003eb: SUB 000003ec: AND 000003ed: CALLER 000003ee: EQ 000003ef: PUSH2 0x043a 000003f2: JUMPI 000003f3: PUSH1 0x40 000003f5: MLOAD 000003f6: PUSH3 0x461bcd 000003fa: PUSH1 0xe5 000003fc: SHL 000003fd: DUP2 000003fe: MSTORE 000003ff: PUSH1 0x20 00000401: PUSH1 0x04 00000403: DUP3 00000404: ADD 00000405: DUP2 00000406: SWAP1 00000407: MSTORE 00000408: PUSH1 0x24 0000040a: DUP3 0000040b: ADD 0000040c: MSTORE 0000040d: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 0000042e: PUSH1 0x44 00000430: DUP3 00000431: ADD 00000432: MSTORE 00000433: PUSH1 0x64 00000435: ADD 00000436: PUSH2 0x037f 00000439: JUMP 0000043a: JUMPDEST 0000043b: PUSH1 0x01 0000043d: PUSH1 0x01 0000043f: PUSH1 0xa0 00000441: SHL 00000442: SUB 00000443: DUP3 00000444: AND 00000445: PUSH1 0x00 00000447: DUP2 00000448: DUP2 00000449: MSTORE 0000044a: PUSH1 0x65 0000044c: PUSH1 0x20 0000044e: SWAP1 0000044f: DUP2 00000450: MSTORE 00000451: PUSH1 0x40 00000453: SWAP2 00000454: DUP3 00000455: SWAP1 00000456: KECCAK256 00000457: DUP1 00000458: SLOAD 00000459: PUSH1 0xff 0000045b: NOT 0000045c: AND 0000045d: DUP6 0000045e: ISZERO 0000045f: ISZERO 00000460: SWAP1 00000461: DUP2 00000462: OR 00000463: SWAP1 00000464: SWAP2 00000465: SSTORE 00000466: DUP3 00000467: MLOAD 00000468: SWAP4 00000469: DUP5 0000046a: MSTORE 0000046b: SWAP1 0000046c: DUP4 0000046d: ADD 0000046e: MSTORE 0000046f: PUSH32 0xd0b6b573d5442f7c29fd50d9735ae341581c25c6ed07748d50eda519f1ffa88a 00000490: SWAP2 00000491: ADD 00000492: JUMPDEST 00000493: PUSH1 0x40 00000495: MLOAD 00000496: DUP1 00000497: SWAP2 00000498: SUB 00000499: SWAP1 0000049a: LOG1 0000049b: POP 0000049c: POP 0000049d: JUMP 0000049e: JUMPDEST 0000049f: PUSH1 0x33 000004a1: SLOAD 000004a2: PUSH1 0x01 000004a4: PUSH1 0x01 000004a6: PUSH1 0xa0 000004a8: SHL 000004a9: SUB 000004aa: AND 000004ab: CALLER 000004ac: EQ 000004ad: PUSH2 0x04f8 000004b0: JUMPI 000004b1: PUSH1 0x40 000004b3: MLOAD 000004b4: PUSH3 0x461bcd 000004b8: PUSH1 0xe5 000004ba: SHL 000004bb: DUP2 000004bc: MSTORE 000004bd: PUSH1 0x20 000004bf: PUSH1 0x04 000004c1: DUP3 000004c2: ADD 000004c3: DUP2 000004c4: SWAP1 000004c5: MSTORE 000004c6: PUSH1 0x24 000004c8: DUP3 000004c9: ADD 000004ca: MSTORE 000004cb: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 000004ec: PUSH1 0x44 000004ee: DUP3 000004ef: ADD 000004f0: MSTORE 000004f1: PUSH1 0x64 000004f3: ADD 000004f4: PUSH2 0x037f 000004f7: JUMP 000004f8: JUMPDEST 000004f9: PUSH1 0x00 000004fb: CALLVALUE 000004fc: GT 000004fd: PUSH2 0x0548 00000500: JUMPI 00000501: PUSH1 0x40 00000503: MLOAD 00000504: PUSH3 0x461bcd 00000508: PUSH1 0xe5 0000050a: SHL 0000050b: DUP2 0000050c: MSTORE 0000050d: PUSH1 0x20 0000050f: PUSH1 0x04 00000511: DUP3 00000512: ADD 00000513: MSTORE 00000514: PUSH1 0x16 00000516: PUSH1 0x24 00000518: DUP3 00000519: ADD 0000051a: MSTORE 0000051b: PUSH32 0x43616e6e6f742070616972207769746820302045544800000000000000000000 0000053c: PUSH1 0x44 0000053e: DUP3 0000053f: ADD 00000540: MSTORE 00000541: PUSH1 0x64 00000543: ADD 00000544: PUSH2 0x037f 00000547: JUMP 00000548: JUMPDEST 00000549: PUSH1 0x01 0000054b: PUSH1 0x01 0000054d: PUSH1 0xa0 0000054f: SHL 00000550: SUB 00000551: DUP2 00000552: AND 00000553: PUSH1 0x00 00000555: SWAP1 00000556: DUP2 00000557: MSTORE 00000558: PUSH1 0x99 0000055a: PUSH1 0x20 0000055c: MSTORE 0000055d: PUSH1 0x40 0000055f: DUP2 00000560: KECCAK256 00000561: DUP1 00000562: SLOAD 00000563: CALLVALUE 00000564: SWAP3 00000565: SWAP1 00000566: PUSH2 0x0570 00000569: SWAP1 0000056a: DUP5 0000056b: SWAP1 0000056c: PUSH2 0x1514 0000056f: JUMP 00000570: JUMPDEST 00000571: SWAP1 00000572: SWAP2 00000573: SSTORE 00000574: POP 00000575: POP 00000576: PUSH1 0x40 00000578: DUP1 00000579: MLOAD 0000057a: PUSH1 0x01 0000057c: PUSH1 0x01 0000057e: PUSH1 0xa0 00000580: SHL 00000581: SUB 00000582: DUP4 00000583: AND 00000584: DUP2 00000585: MSTORE 00000586: CALLVALUE 00000587: PUSH1 0x20 00000589: DUP3 0000058a: ADD 0000058b: MSTORE 0000058c: PUSH32 0xbe39c8dbb06465ca74bc1ec6df6c287310b3a828aab734bf780f429f2f8090a8 000005ad: SWAP2 000005ae: ADD 000005af: PUSH2 0x03d5 000005b2: JUMP 000005b3: JUMPDEST 000005b4: PUSH1 0x00 000005b6: SLOAD 000005b7: PUSH2 0x0100 000005ba: SWAP1 000005bb: DIV 000005bc: PUSH1 0xff 000005be: AND 000005bf: DUP1 000005c0: PUSH2 0x05cc 000005c3: JUMPI 000005c4: POP 000005c5: PUSH1 0x00 000005c7: SLOAD 000005c8: PUSH1 0xff 000005ca: AND 000005cb: ISZERO 000005cc: JUMPDEST 000005cd: PUSH2 0x062f 000005d0: JUMPI 000005d1: PUSH1 0x40 000005d3: MLOAD 000005d4: PUSH3 0x461bcd 000005d8: PUSH1 0xe5 000005da: SHL 000005db: DUP2 000005dc: MSTORE 000005dd: PUSH1 0x20 000005df: PUSH1 0x04 000005e1: DUP3 000005e2: ADD 000005e3: MSTORE 000005e4: PUSH1 0x2e 000005e6: PUSH1 0x24 000005e8: DUP3 000005e9: ADD 000005ea: MSTORE 000005eb: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 0000060c: PUSH1 0x44 0000060e: DUP3 0000060f: ADD 00000610: MSTORE 00000611: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 00000620: PUSH1 0x92 00000622: SHL 00000623: PUSH1 0x64 00000625: DUP3 00000626: ADD 00000627: MSTORE 00000628: PUSH1 0x84 0000062a: ADD 0000062b: PUSH2 0x037f 0000062e: JUMP 0000062f: JUMPDEST 00000630: PUSH1 0x00 00000632: SLOAD 00000633: PUSH2 0x0100 00000636: SWAP1 00000637: DIV 00000638: PUSH1 0xff 0000063a: AND 0000063b: ISZERO 0000063c: DUP1 0000063d: ISZERO 0000063e: PUSH2 0x0651 00000641: JUMPI 00000642: PUSH1 0x00 00000644: DUP1 00000645: SLOAD 00000646: PUSH2 0xffff 00000649: NOT 0000064a: AND 0000064b: PUSH2 0x0101 0000064e: OR 0000064f: SWAP1 00000650: SSTORE 00000651: JUMPDEST 00000652: PUSH2 0x0659 00000655: PUSH2 0x1009 00000658: JUMP 00000659: JUMPDEST 0000065a: PUSH2 0x0661 0000065d: PUSH2 0x10af 00000660: JUMP 00000661: JUMPDEST 00000662: DUP1 00000663: ISZERO 00000664: PUSH2 0x0673 00000667: JUMPI 00000668: PUSH1 0x00 0000066a: DUP1 0000066b: SLOAD 0000066c: PUSH2 0xff00 0000066f: NOT 00000670: AND 00000671: SWAP1 00000672: SSTORE 00000673: JUMPDEST 00000674: POP 00000675: JUMP 00000676: JUMPDEST 00000677: PUSH1 0x33 00000679: SLOAD 0000067a: PUSH1 0x01 0000067c: PUSH1 0x01 0000067e: PUSH1 0xa0 00000680: SHL 00000681: SUB 00000682: AND 00000683: CALLER 00000684: EQ 00000685: PUSH2 0x06d0 00000688: JUMPI 00000689: PUSH1 0x40 0000068b: MLOAD 0000068c: PUSH3 0x461bcd 00000690: PUSH1 0xe5 00000692: SHL 00000693: DUP2 00000694: MSTORE 00000695: PUSH1 0x20 00000697: PUSH1 0x04 00000699: DUP3 0000069a: ADD 0000069b: DUP2 0000069c: SWAP1 0000069d: MSTORE 0000069e: PUSH1 0x24 000006a0: DUP3 000006a1: ADD 000006a2: MSTORE 000006a3: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 000006c4: PUSH1 0x44 000006c6: DUP3 000006c7: ADD 000006c8: MSTORE 000006c9: PUSH1 0x64 000006cb: ADD 000006cc: PUSH2 0x037f 000006cf: JUMP 000006d0: JUMPDEST 000006d1: PUSH1 0x33 000006d3: SLOAD 000006d4: PUSH1 0x40 000006d6: MLOAD 000006d7: PUSH1 0x00 000006d9: SWAP2 000006da: PUSH1 0x01 000006dc: PUSH1 0x01 000006de: PUSH1 0xa0 000006e0: SHL 000006e1: SUB 000006e2: AND 000006e3: SWAP1 000006e4: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000705: SWAP1 00000706: DUP4 00000707: SWAP1 00000708: LOG3 00000709: PUSH1 0x33 0000070b: DUP1 0000070c: SLOAD 0000070d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000722: NOT 00000723: AND 00000724: SWAP1 00000725: SSTORE 00000726: JUMP 00000727: JUMPDEST 00000728: PUSH1 0x00 0000072a: DUP2 0000072b: DUP2 0000072c: MSTORE 0000072d: PUSH1 0x66 0000072f: PUSH1 0x20 00000731: MSTORE 00000732: PUSH1 0x40 00000734: SWAP1 00000735: KECCAK256 00000736: SLOAD 00000737: PUSH1 0xff 00000739: AND 0000073a: ISZERO 0000073b: DUP1 0000073c: PUSH2 0x074f 0000073f: JUMPI 00000740: POP 00000741: PUSH1 0x33 00000743: SLOAD 00000744: PUSH1 0x01 00000746: PUSH1 0x01 00000748: PUSH1 0xa0 0000074a: SHL 0000074b: SUB 0000074c: AND 0000074d: CALLER 0000074e: EQ 0000074f: JUMPDEST 00000750: PUSH2 0x0673 00000753: JUMPI 00000754: PUSH1 0x40 00000756: MLOAD 00000757: PUSH3 0x461bcd 0000075b: PUSH1 0xe5 0000075d: SHL 0000075e: DUP2 0000075f: MSTORE 00000760: PUSH1 0x20 00000762: PUSH1 0x04 00000764: DUP3 00000765: ADD 00000766: MSTORE 00000767: PUSH1 0x06 00000769: PUSH1 0x24 0000076b: DUP3 0000076c: ADD 0000076d: MSTORE 0000076e: PUSH32 0x5061757365640000000000000000000000000000000000000000000000000000 0000078f: PUSH1 0x44 00000791: DUP3 00000792: ADD 00000793: MSTORE 00000794: PUSH1 0x64 00000796: ADD 00000797: PUSH2 0x037f 0000079a: JUMP 0000079b: JUMPDEST 0000079c: PUSH1 0x02 0000079e: PUSH1 0x67 000007a0: SLOAD 000007a1: EQ 000007a2: ISZERO 000007a3: PUSH2 0x07ee 000007a6: JUMPI 000007a7: PUSH1 0x40 000007a9: MLOAD 000007aa: PUSH3 0x461bcd 000007ae: PUSH1 0xe5 000007b0: SHL 000007b1: DUP2 000007b2: MSTORE 000007b3: PUSH1 0x20 000007b5: PUSH1 0x04 000007b7: DUP3 000007b8: ADD 000007b9: MSTORE 000007ba: PUSH1 0x1f 000007bc: PUSH1 0x24 000007be: DUP3 000007bf: ADD 000007c0: MSTORE 000007c1: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 000007e2: PUSH1 0x44 000007e4: DUP3 000007e5: ADD 000007e6: MSTORE 000007e7: PUSH1 0x64 000007e9: ADD 000007ea: PUSH2 0x037f 000007ed: JUMP 000007ee: JUMPDEST 000007ef: PUSH1 0x02 000007f1: PUSH1 0x67 000007f3: SSTORE 000007f4: PUSH2 0x07fd 000007f7: PUSH1 0x00 000007f9: PUSH2 0x0727 000007fc: JUMP 000007fd: JUMPDEST 000007fe: PUSH1 0x01 00000800: PUSH1 0x01 00000802: PUSH1 0xa0 00000804: SHL 00000805: SUB 00000806: DUP2 00000807: AND 00000808: PUSH1 0x00 0000080a: SWAP1 0000080b: DUP2 0000080c: MSTORE 0000080d: PUSH1 0x99 0000080f: PUSH1 0x20 00000811: MSTORE 00000812: PUSH1 0x40 00000814: SWAP1 00000815: KECCAK256 00000816: SLOAD 00000817: DUP1 00000818: PUSH2 0x0863 0000081b: JUMPI 0000081c: PUSH1 0x40 0000081e: MLOAD 0000081f: PUSH3 0x461bcd 00000823: PUSH1 0xe5 00000825: SHL 00000826: DUP2 00000827: MSTORE 00000828: PUSH1 0x20 0000082a: PUSH1 0x04 0000082c: DUP3 0000082d: ADD 0000082e: MSTORE 0000082f: PUSH1 0x18 00000831: PUSH1 0x24 00000833: DUP3 00000834: ADD 00000835: MSTORE 00000836: PUSH32 0x4e6f7420612076616c6964206275796f757420746f6b656e0000000000000000 00000857: PUSH1 0x44 00000859: DUP3 0000085a: ADD 0000085b: MSTORE 0000085c: PUSH1 0x64 0000085e: ADD 0000085f: PUSH2 0x037f 00000862: JUMP 00000863: JUMPDEST 00000864: PUSH1 0x40 00000866: MLOAD 00000867: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00000888: DUP2 00000889: MSTORE 0000088a: CALLER 0000088b: PUSH1 0x04 0000088d: DUP3 0000088e: ADD 0000088f: MSTORE 00000890: PUSH1 0x00 00000892: SWAP1 00000893: PUSH1 0x01 00000895: PUSH1 0x01 00000897: PUSH1 0xa0 00000899: SHL 0000089a: SUB 0000089b: DUP5 0000089c: AND 0000089d: SWAP1 0000089e: PUSH4 0x70a08231 000008a3: SWAP1 000008a4: PUSH1 0x24 000008a6: ADD 000008a7: PUSH1 0x20 000008a9: PUSH1 0x40 000008ab: MLOAD 000008ac: DUP1 000008ad: DUP4 000008ae: SUB 000008af: DUP2 000008b0: DUP7 000008b1: DUP1 000008b2: EXTCODESIZE 000008b3: ISZERO 000008b4: DUP1 000008b5: ISZERO 000008b6: PUSH2 0x08be 000008b9: JUMPI 000008ba: PUSH1 0x00 000008bc: DUP1 000008bd: REVERT 000008be: JUMPDEST 000008bf: POP 000008c0: GAS 000008c1: STATICCALL 000008c2: ISZERO 000008c3: DUP1 000008c4: ISZERO 000008c5: PUSH2 0x08d2 000008c8: JUMPI 000008c9: RETURNDATASIZE 000008ca: PUSH1 0x00 000008cc: DUP1 000008cd: RETURNDATACOPY 000008ce: RETURNDATASIZE 000008cf: PUSH1 0x00 000008d1: REVERT 000008d2: JUMPDEST 000008d3: POP 000008d4: POP 000008d5: POP 000008d6: POP 000008d7: PUSH1 0x40 000008d9: MLOAD 000008da: RETURNDATASIZE 000008db: PUSH1 0x1f 000008dd: NOT 000008de: PUSH1 0x1f 000008e0: DUP3 000008e1: ADD 000008e2: AND 000008e3: DUP3 000008e4: ADD 000008e5: DUP1 000008e6: PUSH1 0x40 000008e8: MSTORE 000008e9: POP 000008ea: DUP2 000008eb: ADD 000008ec: SWAP1 000008ed: PUSH2 0x08f6 000008f0: SWAP2 000008f1: SWAP1 000008f2: PUSH2 0x14fc 000008f5: JUMP 000008f6: JUMPDEST 000008f7: SWAP1 000008f8: POP 000008f9: PUSH1 0x00 000008fb: DUP2 000008fc: GT 000008fd: PUSH2 0x0948 00000900: JUMPI 00000901: PUSH1 0x40 00000903: MLOAD 00000904: PUSH3 0x461bcd 00000908: PUSH1 0xe5 0000090a: SHL 0000090b: DUP2 0000090c: MSTORE 0000090d: PUSH1 0x20 0000090f: PUSH1 0x04 00000911: DUP3 00000912: ADD 00000913: MSTORE 00000914: PUSH1 0x0c 00000916: PUSH1 0x24 00000918: DUP3 00000919: ADD 0000091a: MSTORE 0000091b: PUSH32 0x63616e74206265207a65726f0000000000000000000000000000000000000000 0000093c: PUSH1 0x44 0000093e: DUP3 0000093f: ADD 00000940: MSTORE 00000941: PUSH1 0x64 00000943: ADD 00000944: PUSH2 0x037f 00000947: JUMP 00000948: JUMPDEST 00000949: PUSH1 0x00 0000094b: DUP4 0000094c: PUSH1 0x01 0000094e: PUSH1 0x01 00000950: PUSH1 0xa0 00000952: SHL 00000953: SUB 00000954: AND 00000955: PUSH4 0x18160ddd 0000095a: PUSH1 0x40 0000095c: MLOAD 0000095d: DUP2 0000095e: PUSH4 0xffffffff 00000963: AND 00000964: PUSH1 0xe0 00000966: SHL 00000967: DUP2 00000968: MSTORE 00000969: PUSH1 0x04 0000096b: ADD 0000096c: PUSH1 0x20 0000096e: PUSH1 0x40 00000970: MLOAD 00000971: DUP1 00000972: DUP4 00000973: SUB 00000974: DUP2 00000975: DUP7 00000976: DUP1 00000977: EXTCODESIZE 00000978: ISZERO 00000979: DUP1 0000097a: ISZERO 0000097b: PUSH2 0x0983 0000097e: JUMPI 0000097f: PUSH1 0x00 00000981: DUP1 00000982: REVERT 00000983: JUMPDEST 00000984: POP 00000985: GAS 00000986: STATICCALL 00000987: ISZERO 00000988: DUP1 00000989: ISZERO 0000098a: PUSH2 0x0997 0000098d: JUMPI 0000098e: RETURNDATASIZE 0000098f: PUSH1 0x00 00000991: DUP1 00000992: RETURNDATACOPY 00000993: RETURNDATASIZE 00000994: PUSH1 0x00 00000996: REVERT 00000997: JUMPDEST 00000998: POP 00000999: POP 0000099a: POP 0000099b: POP 0000099c: PUSH1 0x40 0000099e: MLOAD 0000099f: RETURNDATASIZE 000009a0: PUSH1 0x1f 000009a2: NOT 000009a3: PUSH1 0x1f 000009a5: DUP3 000009a6: ADD 000009a7: AND 000009a8: DUP3 000009a9: ADD 000009aa: DUP1 000009ab: PUSH1 0x40 000009ad: MSTORE 000009ae: POP 000009af: DUP2 000009b0: ADD 000009b1: SWAP1 000009b2: PUSH2 0x09bb 000009b5: SWAP2 000009b6: SWAP1 000009b7: PUSH2 0x14fc 000009ba: JUMP 000009bb: JUMPDEST 000009bc: PUSH1 0x40 000009be: MLOAD 000009bf: PUSH32 0x79cc679000000000000000000000000000000000000000000000000000000000 000009e0: DUP2 000009e1: MSTORE 000009e2: CALLER 000009e3: PUSH1 0x04 000009e5: DUP3 000009e6: ADD 000009e7: MSTORE 000009e8: PUSH1 0x24 000009ea: DUP2 000009eb: ADD 000009ec: DUP5 000009ed: SWAP1 000009ee: MSTORE 000009ef: SWAP1 000009f0: SWAP2 000009f1: POP 000009f2: PUSH1 0x01 000009f4: PUSH1 0x01 000009f6: PUSH1 0xa0 000009f8: SHL 000009f9: SUB 000009fa: DUP6 000009fb: AND 000009fc: SWAP1 000009fd: PUSH4 0x79cc6790 00000a02: SWAP1 00000a03: PUSH1 0x44 00000a05: ADD 00000a06: PUSH1 0x00 00000a08: PUSH1 0x40 00000a0a: MLOAD 00000a0b: DUP1 00000a0c: DUP4 00000a0d: SUB 00000a0e: DUP2 00000a0f: PUSH1 0x00 00000a11: DUP8 00000a12: DUP1 00000a13: EXTCODESIZE 00000a14: ISZERO 00000a15: DUP1 00000a16: ISZERO 00000a17: PUSH2 0x0a1f 00000a1a: JUMPI 00000a1b: PUSH1 0x00 00000a1d: DUP1 00000a1e: REVERT 00000a1f: JUMPDEST 00000a20: POP 00000a21: GAS 00000a22: CALL 00000a23: ISZERO 00000a24: DUP1 00000a25: ISZERO 00000a26: PUSH2 0x0a33 00000a29: JUMPI 00000a2a: RETURNDATASIZE 00000a2b: PUSH1 0x00 00000a2d: DUP1 00000a2e: RETURNDATACOPY 00000a2f: RETURNDATASIZE 00000a30: PUSH1 0x00 00000a32: REVERT 00000a33: JUMPDEST 00000a34: POP 00000a35: POP 00000a36: POP 00000a37: POP 00000a38: PUSH1 0x00 00000a3a: DUP2 00000a3b: DUP4 00000a3c: DUP6 00000a3d: PUSH2 0x0a46 00000a40: SWAP2 00000a41: SWAP1 00000a42: PUSH2 0x154c 00000a45: JUMP 00000a46: JUMPDEST 00000a47: PUSH2 0x0a50 00000a4a: SWAP2 00000a4b: SWAP1 00000a4c: PUSH2 0x152c 00000a4f: JUMP 00000a50: JUMPDEST 00000a51: SWAP1 00000a52: POP 00000a53: DUP4 00000a54: DUP2 00000a55: GT 00000a56: PUSH2 0x0a5f 00000a59: JUMPI 00000a5a: DUP1 00000a5b: PUSH2 0x0a61 00000a5e: JUMP 00000a5f: JUMPDEST 00000a60: DUP4 00000a61: JUMPDEST 00000a62: PUSH1 0x01 00000a64: PUSH1 0x01 00000a66: PUSH1 0xa0 00000a68: SHL 00000a69: SUB 00000a6a: DUP7 00000a6b: AND 00000a6c: PUSH1 0x00 00000a6e: SWAP1 00000a6f: DUP2 00000a70: MSTORE 00000a71: PUSH1 0x99 00000a73: PUSH1 0x20 00000a75: MSTORE 00000a76: PUSH1 0x40 00000a78: DUP2 00000a79: KECCAK256 00000a7a: DUP1 00000a7b: SLOAD 00000a7c: SWAP3 00000a7d: SWAP4 00000a7e: POP 00000a7f: DUP4 00000a80: SWAP3 00000a81: SWAP1 00000a82: SWAP2 00000a83: SWAP1 00000a84: PUSH2 0x0a8e 00000a87: SWAP1 00000a88: DUP5 00000a89: SWAP1 00000a8a: PUSH2 0x156b 00000a8d: JUMP 00000a8e: JUMPDEST 00000a8f: SWAP1 00000a90: SWAP2 00000a91: SSTORE 00000a92: POP 00000a93: POP 00000a94: PUSH1 0x40 00000a96: MLOAD 00000a97: PUSH1 0x00 00000a99: SWAP1 00000a9a: CALLER 00000a9b: SWAP1 00000a9c: DUP4 00000a9d: SWAP1 00000a9e: DUP4 00000a9f: DUP2 00000aa0: DUP2 00000aa1: DUP2 00000aa2: DUP6 00000aa3: DUP8 00000aa4: GAS 00000aa5: CALL 00000aa6: SWAP3 00000aa7: POP 00000aa8: POP 00000aa9: POP 00000aaa: RETURNDATASIZE 00000aab: DUP1 00000aac: PUSH1 0x00 00000aae: DUP2 00000aaf: EQ 00000ab0: PUSH2 0x0ad5 00000ab3: JUMPI 00000ab4: PUSH1 0x40 00000ab6: MLOAD 00000ab7: SWAP2 00000ab8: POP 00000ab9: PUSH1 0x1f 00000abb: NOT 00000abc: PUSH1 0x3f 00000abe: RETURNDATASIZE 00000abf: ADD 00000ac0: AND 00000ac1: DUP3 00000ac2: ADD 00000ac3: PUSH1 0x40 00000ac5: MSTORE 00000ac6: RETURNDATASIZE 00000ac7: DUP3 00000ac8: MSTORE 00000ac9: RETURNDATASIZE 00000aca: PUSH1 0x00 00000acc: PUSH1 0x20 00000ace: DUP5 00000acf: ADD 00000ad0: RETURNDATACOPY 00000ad1: PUSH2 0x0ada 00000ad4: JUMP 00000ad5: JUMPDEST 00000ad6: PUSH1 0x60 00000ad8: SWAP2 00000ad9: POP 00000ada: JUMPDEST 00000adb: POP 00000adc: POP 00000add: SWAP1 00000ade: POP 00000adf: DUP1 00000ae0: PUSH2 0x0b51 00000ae3: JUMPI 00000ae4: PUSH1 0x40 00000ae6: MLOAD 00000ae7: PUSH3 0x461bcd 00000aeb: PUSH1 0xe5 00000aed: SHL 00000aee: DUP2 00000aef: MSTORE 00000af0: PUSH1 0x20 00000af2: PUSH1 0x04 00000af4: DUP3 00000af5: ADD 00000af6: MSTORE 00000af7: PUSH1 0x3a 00000af9: PUSH1 0x24 00000afb: DUP3 00000afc: ADD 00000afd: MSTORE 00000afe: PUSH32 0x416464726573733a20756e61626c6520746f2073656e642076616c75652c2072 00000b1f: PUSH1 0x44 00000b21: DUP3 00000b22: ADD 00000b23: MSTORE 00000b24: PUSH32 0x6563697069656e74206d61792068617665207265766572746564000000000000 00000b45: PUSH1 0x64 00000b47: DUP3 00000b48: ADD 00000b49: MSTORE 00000b4a: PUSH1 0x84 00000b4c: ADD 00000b4d: PUSH2 0x037f 00000b50: JUMP 00000b51: JUMPDEST 00000b52: PUSH1 0x01 00000b54: PUSH1 0x01 00000b56: PUSH1 0xa0 00000b58: SHL 00000b59: SUB 00000b5a: DUP7 00000b5b: AND 00000b5c: PUSH1 0x00 00000b5e: SWAP1 00000b5f: DUP2 00000b60: MSTORE 00000b61: PUSH1 0x99 00000b63: PUSH1 0x20 00000b65: MSTORE 00000b66: PUSH1 0x40 00000b68: SWAP1 00000b69: KECCAK256 00000b6a: SLOAD 00000b6b: PUSH2 0x0bab 00000b6e: JUMPI 00000b6f: PUSH1 0x40 00000b71: MLOAD 00000b72: PUSH1 0x01 00000b74: PUSH1 0x01 00000b76: PUSH1 0xa0 00000b78: SHL 00000b79: SUB 00000b7a: DUP8 00000b7b: AND 00000b7c: DUP2 00000b7d: MSTORE 00000b7e: PUSH32 0x558c309d16979977d7c6c19ebb1878fb2e0f856b7ebb440bee5dfd2e7b7c1235 00000b9f: SWAP1 00000ba0: PUSH1 0x20 00000ba2: ADD 00000ba3: PUSH1 0x40 00000ba5: MLOAD 00000ba6: DUP1 00000ba7: SWAP2 00000ba8: SUB 00000ba9: SWAP1 00000baa: LOG1 00000bab: JUMPDEST 00000bac: POP 00000bad: POP 00000bae: PUSH1 0x01 00000bb0: PUSH1 0x67 00000bb2: SSTORE 00000bb3: POP 00000bb4: POP 00000bb5: POP 00000bb6: POP 00000bb7: JUMP 00000bb8: JUMPDEST 00000bb9: PUSH1 0x33 00000bbb: SLOAD 00000bbc: PUSH1 0x01 00000bbe: PUSH1 0x01 00000bc0: PUSH1 0xa0 00000bc2: SHL 00000bc3: SUB 00000bc4: AND 00000bc5: CALLER 00000bc6: EQ 00000bc7: PUSH2 0x0c12 00000bca: JUMPI 00000bcb: PUSH1 0x40 00000bcd: MLOAD 00000bce: PUSH3 0x461bcd 00000bd2: PUSH1 0xe5 00000bd4: SHL 00000bd5: DUP2 00000bd6: MSTORE 00000bd7: PUSH1 0x20 00000bd9: PUSH1 0x04 00000bdb: DUP3 00000bdc: ADD 00000bdd: DUP2 00000bde: SWAP1 00000bdf: MSTORE 00000be0: PUSH1 0x24 00000be2: DUP3 00000be3: ADD 00000be4: MSTORE 00000be5: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00000c06: PUSH1 0x44 00000c08: DUP3 00000c09: ADD 00000c0a: MSTORE 00000c0b: PUSH1 0x64 00000c0d: ADD 00000c0e: PUSH2 0x037f 00000c11: JUMP 00000c12: JUMPDEST 00000c13: PUSH1 0x01 00000c15: PUSH1 0x01 00000c17: PUSH1 0xa0 00000c19: SHL 00000c1a: SUB 00000c1b: DUP2 00000c1c: AND 00000c1d: PUSH1 0x00 00000c1f: DUP2 00000c20: DUP2 00000c21: MSTORE 00000c22: PUSH1 0x99 00000c24: PUSH1 0x20 00000c26: SWAP1 00000c27: DUP2 00000c28: MSTORE 00000c29: PUSH1 0x40 00000c2b: DUP1 00000c2c: DUP4 00000c2d: KECCAK256 00000c2e: SWAP3 00000c2f: SWAP1 00000c30: SWAP3 00000c31: SSTORE 00000c32: SWAP1 00000c33: MLOAD 00000c34: SWAP2 00000c35: DUP3 00000c36: MSTORE 00000c37: PUSH32 0x558c309d16979977d7c6c19ebb1878fb2e0f856b7ebb440bee5dfd2e7b7c1235 00000c58: SWAP2 00000c59: ADD 00000c5a: PUSH2 0x03d5 00000c5d: JUMP 00000c5e: JUMPDEST 00000c5f: PUSH1 0x33 00000c61: SLOAD 00000c62: PUSH1 0x01 00000c64: PUSH1 0x01 00000c66: PUSH1 0xa0 00000c68: SHL 00000c69: SUB 00000c6a: AND 00000c6b: CALLER 00000c6c: EQ 00000c6d: PUSH2 0x0cb8 00000c70: JUMPI 00000c71: PUSH1 0x40 00000c73: MLOAD 00000c74: PUSH3 0x461bcd 00000c78: PUSH1 0xe5 00000c7a: SHL 00000c7b: DUP2 00000c7c: MSTORE 00000c7d: PUSH1 0x20 00000c7f: PUSH1 0x04 00000c81: DUP3 00000c82: ADD 00000c83: DUP2 00000c84: SWAP1 00000c85: MSTORE 00000c86: PUSH1 0x24 00000c88: DUP3 00000c89: ADD 00000c8a: MSTORE 00000c8b: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00000cac: PUSH1 0x44 00000cae: DUP3 00000caf: ADD 00000cb0: MSTORE 00000cb1: PUSH1 0x64 00000cb3: ADD 00000cb4: PUSH2 0x037f 00000cb7: JUMP 00000cb8: JUMPDEST 00000cb9: PUSH1 0x01 00000cbb: PUSH1 0x01 00000cbd: PUSH1 0xa0 00000cbf: SHL 00000cc0: SUB 00000cc1: DUP2 00000cc2: AND 00000cc3: PUSH1 0x00 00000cc5: SWAP1 00000cc6: DUP2 00000cc7: MSTORE 00000cc8: PUSH1 0x99 00000cca: PUSH1 0x20 00000ccc: MSTORE 00000ccd: PUSH1 0x40 00000ccf: SWAP1 00000cd0: KECCAK256 00000cd1: SLOAD 00000cd2: DUP1 00000cd3: PUSH2 0x0d1e 00000cd6: JUMPI 00000cd7: PUSH1 0x40 00000cd9: MLOAD 00000cda: PUSH3 0x461bcd 00000cde: PUSH1 0xe5 00000ce0: SHL 00000ce1: DUP2 00000ce2: MSTORE 00000ce3: PUSH1 0x20 00000ce5: PUSH1 0x04 00000ce7: DUP3 00000ce8: ADD 00000ce9: MSTORE 00000cea: PUSH1 0x0f 00000cec: PUSH1 0x24 00000cee: DUP3 00000cef: ADD 00000cf0: MSTORE 00000cf1: PUSH32 0x43616e6e6f742072656d6f766520300000000000000000000000000000000000 00000d12: PUSH1 0x44 00000d14: DUP3 00000d15: ADD 00000d16: MSTORE 00000d17: PUSH1 0x64 00000d19: ADD 00000d1a: PUSH2 0x037f 00000d1d: JUMP 00000d1e: JUMPDEST 00000d1f: PUSH1 0x01 00000d21: PUSH1 0x01 00000d23: PUSH1 0xa0 00000d25: SHL 00000d26: SUB 00000d27: DUP3 00000d28: AND 00000d29: PUSH1 0x00 00000d2b: SWAP1 00000d2c: DUP2 00000d2d: MSTORE 00000d2e: PUSH1 0x99 00000d30: PUSH1 0x20 00000d32: MSTORE 00000d33: PUSH1 0x40 00000d35: DUP1 00000d36: DUP3 00000d37: KECCAK256 00000d38: DUP3 00000d39: SWAP1 00000d3a: SSTORE 00000d3b: MLOAD 00000d3c: CALLER 00000d3d: SWAP2 00000d3e: DUP4 00000d3f: ISZERO 00000d40: PUSH2 0x08fc 00000d43: MUL 00000d44: SWAP2 00000d45: DUP5 00000d46: SWAP2 00000d47: DUP2 00000d48: DUP2 00000d49: DUP2 00000d4a: DUP6 00000d4b: DUP9 00000d4c: DUP9 00000d4d: CALL 00000d4e: SWAP4 00000d4f: POP 00000d50: POP 00000d51: POP 00000d52: POP 00000d53: ISZERO 00000d54: DUP1 00000d55: ISZERO 00000d56: PUSH2 0x0d63 00000d59: JUMPI 00000d5a: RETURNDATASIZE 00000d5b: PUSH1 0x00 00000d5d: DUP1 00000d5e: RETURNDATACOPY 00000d5f: RETURNDATASIZE 00000d60: PUSH1 0x00 00000d62: REVERT 00000d63: JUMPDEST 00000d64: POP 00000d65: PUSH1 0x40 00000d67: MLOAD 00000d68: PUSH1 0x01 00000d6a: PUSH1 0x01 00000d6c: PUSH1 0xa0 00000d6e: SHL 00000d6f: SUB 00000d70: DUP4 00000d71: AND 00000d72: DUP2 00000d73: MSTORE 00000d74: PUSH32 0x558c309d16979977d7c6c19ebb1878fb2e0f856b7ebb440bee5dfd2e7b7c1235 00000d95: SWAP1 00000d96: PUSH1 0x20 00000d98: ADD 00000d99: PUSH2 0x0492 00000d9c: JUMP 00000d9d: JUMPDEST 00000d9e: PUSH1 0x33 00000da0: SLOAD 00000da1: PUSH1 0x01 00000da3: PUSH1 0x01 00000da5: PUSH1 0xa0 00000da7: SHL 00000da8: SUB 00000da9: AND 00000daa: CALLER 00000dab: EQ 00000dac: PUSH2 0x0df7 00000daf: JUMPI 00000db0: PUSH1 0x40 00000db2: MLOAD 00000db3: PUSH3 0x461bcd 00000db7: PUSH1 0xe5 00000db9: SHL 00000dba: DUP2 00000dbb: MSTORE 00000dbc: PUSH1 0x20 00000dbe: PUSH1 0x04 00000dc0: DUP3 00000dc1: ADD 00000dc2: DUP2 00000dc3: SWAP1 00000dc4: MSTORE 00000dc5: PUSH1 0x24 00000dc7: DUP3 00000dc8: ADD 00000dc9: MSTORE 00000dca: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00000deb: PUSH1 0x44 00000ded: DUP3 00000dee: ADD 00000def: MSTORE 00000df0: PUSH1 0x64 00000df2: ADD 00000df3: PUSH2 0x037f 00000df6: JUMP 00000df7: JUMPDEST 00000df8: PUSH1 0x40 00000dfa: MLOAD 00000dfb: CALLER 00000dfc: SWAP1 00000dfd: SELFBALANCE 00000dfe: DUP1 00000dff: ISZERO 00000e00: PUSH2 0x08fc 00000e03: MUL 00000e04: SWAP2 00000e05: PUSH1 0x00 00000e07: DUP2 00000e08: DUP2 00000e09: DUP2 00000e0a: DUP6 00000e0b: DUP9 00000e0c: DUP9 00000e0d: CALL 00000e0e: SWAP4 00000e0f: POP 00000e10: POP 00000e11: POP 00000e12: POP 00000e13: ISZERO 00000e14: DUP1 00000e15: ISZERO 00000e16: PUSH2 0x0673 00000e19: JUMPI 00000e1a: RETURNDATASIZE 00000e1b: PUSH1 0x00 00000e1d: DUP1 00000e1e: RETURNDATACOPY 00000e1f: RETURNDATASIZE 00000e20: PUSH1 0x00 00000e22: REVERT 00000e23: JUMPDEST 00000e24: PUSH1 0x33 00000e26: SLOAD 00000e27: PUSH1 0x01 00000e29: PUSH1 0x01 00000e2b: PUSH1 0xa0 00000e2d: SHL 00000e2e: SUB 00000e2f: AND 00000e30: CALLER 00000e31: EQ 00000e32: PUSH2 0x0e7d 00000e35: JUMPI 00000e36: PUSH1 0x40 00000e38: MLOAD 00000e39: PUSH3 0x461bcd 00000e3d: PUSH1 0xe5 00000e3f: SHL 00000e40: DUP2 00000e41: MSTORE 00000e42: PUSH1 0x20 00000e44: PUSH1 0x04 00000e46: DUP3 00000e47: ADD 00000e48: DUP2 00000e49: SWAP1 00000e4a: MSTORE 00000e4b: PUSH1 0x24 00000e4d: DUP3 00000e4e: ADD 00000e4f: MSTORE 00000e50: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00000e71: PUSH1 0x44 00000e73: DUP3 00000e74: ADD 00000e75: MSTORE 00000e76: PUSH1 0x64 00000e78: ADD 00000e79: PUSH2 0x037f 00000e7c: JUMP 00000e7d: JUMPDEST 00000e7e: PUSH1 0x01 00000e80: PUSH1 0x01 00000e82: PUSH1 0xa0 00000e84: SHL 00000e85: SUB 00000e86: DUP2 00000e87: AND 00000e88: PUSH2 0x0ef9 00000e8b: JUMPI 00000e8c: PUSH1 0x40 00000e8e: MLOAD 00000e8f: PUSH3 0x461bcd 00000e93: PUSH1 0xe5 00000e95: SHL 00000e96: DUP2 00000e97: MSTORE 00000e98: PUSH1 0x20 00000e9a: PUSH1 0x04 00000e9c: DUP3 00000e9d: ADD 00000e9e: MSTORE 00000e9f: PUSH1 0x26 00000ea1: PUSH1 0x24 00000ea3: DUP3 00000ea4: ADD 00000ea5: MSTORE 00000ea6: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00000ec7: PUSH1 0x44 00000ec9: DUP3 00000eca: ADD 00000ecb: MSTORE 00000ecc: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 00000eed: PUSH1 0x64 00000eef: DUP3 00000ef0: ADD 00000ef1: MSTORE 00000ef2: PUSH1 0x84 00000ef4: ADD 00000ef5: PUSH2 0x037f 00000ef8: JUMP 00000ef9: JUMPDEST 00000efa: PUSH1 0x33 00000efc: SLOAD 00000efd: PUSH1 0x40 00000eff: MLOAD 00000f00: PUSH1 0x01 00000f02: PUSH1 0x01 00000f04: PUSH1 0xa0 00000f06: SHL 00000f07: SUB 00000f08: DUP1 00000f09: DUP5 00000f0a: AND 00000f0b: SWAP3 00000f0c: AND 00000f0d: SWAP1 00000f0e: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000f2f: SWAP1 00000f30: PUSH1 0x00 00000f32: SWAP1 00000f33: LOG3 00000f34: PUSH1 0x33 00000f36: DUP1 00000f37: SLOAD 00000f38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f4d: NOT 00000f4e: AND 00000f4f: PUSH1 0x01 00000f51: PUSH1 0x01 00000f53: PUSH1 0xa0 00000f55: SHL 00000f56: SUB 00000f57: SWAP3 00000f58: SWAP1 00000f59: SWAP3 00000f5a: AND 00000f5b: SWAP2 00000f5c: SWAP1 00000f5d: SWAP2 00000f5e: OR 00000f5f: SWAP1 00000f60: SSTORE 00000f61: JUMP 00000f62: JUMPDEST 00000f63: PUSH1 0x33 00000f65: SLOAD 00000f66: PUSH1 0x01 00000f68: PUSH1 0x01 00000f6a: PUSH1 0xa0 00000f6c: SHL 00000f6d: SUB 00000f6e: AND 00000f6f: CALLER 00000f70: EQ 00000f71: PUSH2 0x0fbc 00000f74: JUMPI 00000f75: PUSH1 0x40 00000f77: MLOAD 00000f78: PUSH3 0x461bcd 00000f7c: PUSH1 0xe5 00000f7e: SHL 00000f7f: DUP2 00000f80: MSTORE 00000f81: PUSH1 0x20 00000f83: PUSH1 0x04 00000f85: DUP3 00000f86: ADD 00000f87: DUP2 00000f88: SWAP1 00000f89: MSTORE 00000f8a: PUSH1 0x24 00000f8c: DUP3 00000f8d: ADD 00000f8e: MSTORE 00000f8f: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00000fb0: PUSH1 0x44 00000fb2: DUP3 00000fb3: ADD 00000fb4: MSTORE 00000fb5: PUSH1 0x64 00000fb7: ADD 00000fb8: PUSH2 0x037f 00000fbb: JUMP 00000fbc: JUMPDEST 00000fbd: PUSH1 0x00 00000fbf: DUP2 00000fc0: DUP2 00000fc1: MSTORE 00000fc2: PUSH1 0x66 00000fc4: PUSH1 0x20 00000fc6: SWAP1 00000fc7: DUP2 00000fc8: MSTORE 00000fc9: PUSH1 0x40 00000fcb: DUP1 00000fcc: DUP4 00000fcd: KECCAK256 00000fce: DUP1 00000fcf: SLOAD 00000fd0: PUSH1 0xff 00000fd2: NOT 00000fd3: AND 00000fd4: SWAP1 00000fd5: SSTORE 00000fd6: DUP1 00000fd7: MLOAD 00000fd8: DUP5 00000fd9: DUP2 00000fda: MSTORE 00000fdb: SWAP2 00000fdc: DUP3 00000fdd: ADD 00000fde: SWAP3 00000fdf: SWAP1 00000fe0: SWAP3 00000fe1: MSTORE 00000fe2: PUSH32 0x77f1fcfcce67dc392d64f842056d2ec06c80986c47c910f7e79c5b23a2738d74 00001003: SWAP2 00001004: ADD 00001005: PUSH2 0x03d5 00001008: JUMP 00001009: JUMPDEST 0000100a: PUSH1 0x00 0000100c: SLOAD 0000100d: PUSH2 0x0100 00001010: SWAP1 00001011: DIV 00001012: PUSH1 0xff 00001014: AND 00001015: DUP1 00001016: PUSH2 0x1022 00001019: JUMPI 0000101a: POP 0000101b: PUSH1 0x00 0000101d: SLOAD 0000101e: PUSH1 0xff 00001020: AND 00001021: ISZERO 00001022: JUMPDEST 00001023: PUSH2 0x1085 00001026: JUMPI 00001027: PUSH1 0x40 00001029: MLOAD 0000102a: PUSH3 0x461bcd 0000102e: PUSH1 0xe5 00001030: SHL 00001031: DUP2 00001032: MSTORE 00001033: PUSH1 0x20 00001035: PUSH1 0x04 00001037: DUP3 00001038: ADD 00001039: MSTORE 0000103a: PUSH1 0x2e 0000103c: PUSH1 0x24 0000103e: DUP3 0000103f: ADD 00001040: MSTORE 00001041: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00001062: PUSH1 0x44 00001064: DUP3 00001065: ADD 00001066: MSTORE 00001067: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 00001076: PUSH1 0x92 00001078: SHL 00001079: PUSH1 0x64 0000107b: DUP3 0000107c: ADD 0000107d: MSTORE 0000107e: PUSH1 0x84 00001080: ADD 00001081: PUSH2 0x037f 00001084: JUMP 00001085: JUMPDEST 00001086: PUSH1 0x00 00001088: SLOAD 00001089: PUSH2 0x0100 0000108c: SWAP1 0000108d: DIV 0000108e: PUSH1 0xff 00001090: AND 00001091: ISZERO 00001092: DUP1 00001093: ISZERO 00001094: PUSH2 0x10a7 00001097: JUMPI 00001098: PUSH1 0x00 0000109a: DUP1 0000109b: SLOAD 0000109c: PUSH2 0xffff 0000109f: NOT 000010a0: AND 000010a1: PUSH2 0x0101 000010a4: OR 000010a5: SWAP1 000010a6: SSTORE 000010a7: JUMPDEST 000010a8: PUSH2 0x0661 000010ab: PUSH2 0x1155 000010ae: JUMP 000010af: JUMPDEST 000010b0: PUSH1 0x00 000010b2: SLOAD 000010b3: PUSH2 0x0100 000010b6: SWAP1 000010b7: DIV 000010b8: PUSH1 0xff 000010ba: AND 000010bb: DUP1 000010bc: PUSH2 0x10c8 000010bf: JUMPI 000010c0: POP 000010c1: PUSH1 0x00 000010c3: SLOAD 000010c4: PUSH1 0xff 000010c6: AND 000010c7: ISZERO 000010c8: JUMPDEST 000010c9: PUSH2 0x112b 000010cc: JUMPI 000010cd: PUSH1 0x40 000010cf: MLOAD 000010d0: PUSH3 0x461bcd 000010d4: PUSH1 0xe5 000010d6: SHL 000010d7: DUP2 000010d8: MSTORE 000010d9: PUSH1 0x20 000010db: PUSH1 0x04 000010dd: DUP3 000010de: ADD 000010df: MSTORE 000010e0: PUSH1 0x2e 000010e2: PUSH1 0x24 000010e4: DUP3 000010e5: ADD 000010e6: MSTORE 000010e7: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00001108: PUSH1 0x44 0000110a: DUP3 0000110b: ADD 0000110c: MSTORE 0000110d: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 0000111c: PUSH1 0x92 0000111e: SHL 0000111f: PUSH1 0x64 00001121: DUP3 00001122: ADD 00001123: MSTORE 00001124: PUSH1 0x84 00001126: ADD 00001127: PUSH2 0x037f 0000112a: JUMP 0000112b: JUMPDEST 0000112c: PUSH1 0x00 0000112e: SLOAD 0000112f: PUSH2 0x0100 00001132: SWAP1 00001133: DIV 00001134: PUSH1 0xff 00001136: AND 00001137: ISZERO 00001138: DUP1 00001139: ISZERO 0000113a: PUSH2 0x114d 0000113d: JUMPI 0000113e: PUSH1 0x00 00001140: DUP1 00001141: SLOAD 00001142: PUSH2 0xffff 00001145: NOT 00001146: AND 00001147: PUSH2 0x0101 0000114a: OR 0000114b: SWAP1 0000114c: SSTORE 0000114d: JUMPDEST 0000114e: PUSH2 0x0661 00001151: PUSH2 0x1203 00001154: JUMP 00001155: JUMPDEST 00001156: PUSH1 0x00 00001158: SLOAD 00001159: PUSH2 0x0100 0000115c: SWAP1 0000115d: DIV 0000115e: PUSH1 0xff 00001160: AND 00001161: DUP1 00001162: PUSH2 0x116e 00001165: JUMPI 00001166: POP 00001167: PUSH1 0x00 00001169: SLOAD 0000116a: PUSH1 0xff 0000116c: AND 0000116d: ISZERO 0000116e: JUMPDEST 0000116f: PUSH2 0x11d1 00001172: JUMPI 00001173: PUSH1 0x40 00001175: MLOAD 00001176: PUSH3 0x461bcd 0000117a: PUSH1 0xe5 0000117c: SHL 0000117d: DUP2 0000117e: MSTORE 0000117f: PUSH1 0x20 00001181: PUSH1 0x04 00001183: DUP3 00001184: ADD 00001185: MSTORE 00001186: PUSH1 0x2e 00001188: PUSH1 0x24 0000118a: DUP3 0000118b: ADD 0000118c: MSTORE 0000118d: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 000011ae: PUSH1 0x44 000011b0: DUP3 000011b1: ADD 000011b2: MSTORE 000011b3: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 000011c2: PUSH1 0x92 000011c4: SHL 000011c5: PUSH1 0x64 000011c7: DUP3 000011c8: ADD 000011c9: MSTORE 000011ca: PUSH1 0x84 000011cc: ADD 000011cd: PUSH2 0x037f 000011d0: JUMP 000011d1: JUMPDEST 000011d2: PUSH1 0x00 000011d4: SLOAD 000011d5: PUSH2 0x0100 000011d8: SWAP1 000011d9: DIV 000011da: PUSH1 0xff 000011dc: AND 000011dd: ISZERO 000011de: DUP1 000011df: ISZERO 000011e0: PUSH2 0x11f3 000011e3: JUMPI 000011e4: PUSH1 0x00 000011e6: DUP1 000011e7: SLOAD 000011e8: PUSH2 0xffff 000011eb: NOT 000011ec: AND 000011ed: PUSH2 0x0101 000011f0: OR 000011f1: SWAP1 000011f2: SSTORE 000011f3: JUMPDEST 000011f4: PUSH2 0x11fb 000011f7: PUSH2 0x12ba 000011fa: JUMP 000011fb: JUMPDEST 000011fc: PUSH2 0x0661 000011ff: PUSH2 0x136b 00001202: JUMP 00001203: JUMPDEST 00001204: PUSH1 0x00 00001206: SLOAD 00001207: PUSH2 0x0100 0000120a: SWAP1 0000120b: DIV 0000120c: PUSH1 0xff 0000120e: AND 0000120f: DUP1 00001210: PUSH2 0x121c 00001213: JUMPI 00001214: POP 00001215: PUSH1 0x00 00001217: SLOAD 00001218: PUSH1 0xff 0000121a: AND 0000121b: ISZERO 0000121c: JUMPDEST 0000121d: PUSH2 0x127f 00001220: JUMPI 00001221: PUSH1 0x40 00001223: MLOAD 00001224: PUSH3 0x461bcd 00001228: PUSH1 0xe5 0000122a: SHL 0000122b: DUP2 0000122c: MSTORE 0000122d: PUSH1 0x20 0000122f: PUSH1 0x04 00001231: DUP3 00001232: ADD 00001233: MSTORE 00001234: PUSH1 0x2e 00001236: PUSH1 0x24 00001238: DUP3 00001239: ADD 0000123a: MSTORE 0000123b: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 0000125c: PUSH1 0x44 0000125e: DUP3 0000125f: ADD 00001260: MSTORE 00001261: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 00001270: PUSH1 0x92 00001272: SHL 00001273: PUSH1 0x64 00001275: DUP3 00001276: ADD 00001277: MSTORE 00001278: PUSH1 0x84 0000127a: ADD 0000127b: PUSH2 0x037f 0000127e: JUMP 0000127f: JUMPDEST 00001280: PUSH1 0x00 00001282: SLOAD 00001283: PUSH2 0x0100 00001286: SWAP1 00001287: DIV 00001288: PUSH1 0xff 0000128a: AND 0000128b: ISZERO 0000128c: DUP1 0000128d: ISZERO 0000128e: PUSH2 0x12a1 00001291: JUMPI 00001292: PUSH1 0x00 00001294: DUP1 00001295: SLOAD 00001296: PUSH2 0xffff 00001299: NOT 0000129a: AND 0000129b: PUSH2 0x0101 0000129e: OR 0000129f: SWAP1 000012a0: SSTORE 000012a1: JUMPDEST 000012a2: PUSH1 0x01 000012a4: PUSH1 0x67 000012a6: SSTORE 000012a7: DUP1 000012a8: ISZERO 000012a9: PUSH2 0x0673 000012ac: JUMPI 000012ad: PUSH1 0x00 000012af: DUP1 000012b0: SLOAD 000012b1: PUSH2 0xff00 000012b4: NOT 000012b5: AND 000012b6: SWAP1 000012b7: SSTORE 000012b8: POP 000012b9: JUMP 000012ba: JUMPDEST 000012bb: PUSH1 0x00 000012bd: SLOAD 000012be: PUSH2 0x0100 000012c1: SWAP1 000012c2: DIV 000012c3: PUSH1 0xff 000012c5: AND 000012c6: DUP1 000012c7: PUSH2 0x12d3 000012ca: JUMPI 000012cb: POP 000012cc: PUSH1 0x00 000012ce: SLOAD 000012cf: PUSH1 0xff 000012d1: AND 000012d2: ISZERO 000012d3: JUMPDEST 000012d4: PUSH2 0x1336 000012d7: JUMPI 000012d8: PUSH1 0x40 000012da: MLOAD 000012db: PUSH3 0x461bcd 000012df: PUSH1 0xe5 000012e1: SHL 000012e2: DUP2 000012e3: MSTORE 000012e4: PUSH1 0x20 000012e6: PUSH1 0x04 000012e8: DUP3 000012e9: ADD 000012ea: MSTORE 000012eb: PUSH1 0x2e 000012ed: PUSH1 0x24 000012ef: DUP3 000012f0: ADD 000012f1: MSTORE 000012f2: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00001313: PUSH1 0x44 00001315: DUP3 00001316: ADD 00001317: MSTORE 00001318: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 00001327: PUSH1 0x92 00001329: SHL 0000132a: PUSH1 0x64 0000132c: DUP3 0000132d: ADD 0000132e: MSTORE 0000132f: PUSH1 0x84 00001331: ADD 00001332: PUSH2 0x037f 00001335: JUMP 00001336: JUMPDEST 00001337: PUSH1 0x00 00001339: SLOAD 0000133a: PUSH2 0x0100 0000133d: SWAP1 0000133e: DIV 0000133f: PUSH1 0xff 00001341: AND 00001342: ISZERO 00001343: DUP1 00001344: ISZERO 00001345: PUSH2 0x0661 00001348: JUMPI 00001349: PUSH1 0x00 0000134b: DUP1 0000134c: SLOAD 0000134d: PUSH2 0xffff 00001350: NOT 00001351: AND 00001352: PUSH2 0x0101 00001355: OR 00001356: SWAP1 00001357: SSTORE 00001358: DUP1 00001359: ISZERO 0000135a: PUSH2 0x0673 0000135d: JUMPI 0000135e: PUSH1 0x00 00001360: DUP1 00001361: SLOAD 00001362: PUSH2 0xff00 00001365: NOT 00001366: AND 00001367: SWAP1 00001368: SSTORE 00001369: POP 0000136a: JUMP 0000136b: JUMPDEST 0000136c: PUSH1 0x00 0000136e: SLOAD 0000136f: PUSH2 0x0100 00001372: SWAP1 00001373: DIV 00001374: PUSH1 0xff 00001376: AND 00001377: DUP1 00001378: PUSH2 0x1384 0000137b: JUMPI 0000137c: POP 0000137d: PUSH1 0x00 0000137f: SLOAD 00001380: PUSH1 0xff 00001382: AND 00001383: ISZERO 00001384: JUMPDEST 00001385: PUSH2 0x13e7 00001388: JUMPI 00001389: PUSH1 0x40 0000138b: MLOAD 0000138c: PUSH3 0x461bcd 00001390: PUSH1 0xe5 00001392: SHL 00001393: DUP2 00001394: MSTORE 00001395: PUSH1 0x20 00001397: PUSH1 0x04 00001399: DUP3 0000139a: ADD 0000139b: MSTORE 0000139c: PUSH1 0x2e 0000139e: PUSH1 0x24 000013a0: DUP3 000013a1: ADD 000013a2: MSTORE 000013a3: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 000013c4: PUSH1 0x44 000013c6: DUP3 000013c7: ADD 000013c8: MSTORE 000013c9: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 000013d8: PUSH1 0x92 000013da: SHL 000013db: PUSH1 0x64 000013dd: DUP3 000013de: ADD 000013df: MSTORE 000013e0: PUSH1 0x84 000013e2: ADD 000013e3: PUSH2 0x037f 000013e6: JUMP 000013e7: JUMPDEST 000013e8: PUSH1 0x00 000013ea: SLOAD 000013eb: PUSH2 0x0100 000013ee: SWAP1 000013ef: DIV 000013f0: PUSH1 0xff 000013f2: AND 000013f3: ISZERO 000013f4: DUP1 000013f5: ISZERO 000013f6: PUSH2 0x1409 000013f9: JUMPI 000013fa: PUSH1 0x00 000013fc: DUP1 000013fd: SLOAD 000013fe: PUSH2 0xffff 00001401: NOT 00001402: AND 00001403: PUSH2 0x0101 00001406: OR 00001407: SWAP1 00001408: SSTORE 00001409: JUMPDEST 0000140a: PUSH1 0x33 0000140c: DUP1 0000140d: SLOAD 0000140e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001423: NOT 00001424: AND 00001425: CALLER 00001426: SWAP1 00001427: DUP2 00001428: OR 00001429: SWAP1 0000142a: SWAP2 0000142b: SSTORE 0000142c: PUSH1 0x40 0000142e: MLOAD 0000142f: DUP2 00001430: SWAP1 00001431: PUSH1 0x00 00001433: SWAP1 00001434: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001455: SWAP1 00001456: DUP3 00001457: SWAP1 00001458: LOG3 00001459: POP 0000145a: DUP1 0000145b: ISZERO 0000145c: PUSH2 0x0673 0000145f: JUMPI 00001460: PUSH1 0x00 00001462: DUP1 00001463: SLOAD 00001464: PUSH2 0xff00 00001467: NOT 00001468: AND 00001469: SWAP1 0000146a: SSTORE 0000146b: POP 0000146c: JUMP 0000146d: JUMPDEST 0000146e: DUP1 0000146f: CALLDATALOAD 00001470: PUSH1 0x01 00001472: PUSH1 0x01 00001474: PUSH1 0xa0 00001476: SHL 00001477: SUB 00001478: DUP2 00001479: AND 0000147a: DUP2 0000147b: EQ 0000147c: PUSH2 0x1484 0000147f: JUMPI 00001480: PUSH1 0x00 00001482: DUP1 00001483: REVERT 00001484: JUMPDEST 00001485: SWAP2 00001486: SWAP1 00001487: POP 00001488: JUMP 00001489: JUMPDEST 0000148a: PUSH1 0x00 0000148c: PUSH1 0x20 0000148e: DUP3 0000148f: DUP5 00001490: SUB 00001491: SLT 00001492: ISZERO 00001493: PUSH2 0x149a 00001496: JUMPI 00001497: DUP1 00001498: DUP2 00001499: REVERT 0000149a: JUMPDEST 0000149b: PUSH2 0x14a3 0000149e: DUP3 0000149f: PUSH2 0x146d 000014a2: JUMP 000014a3: JUMPDEST 000014a4: SWAP4 000014a5: SWAP3 000014a6: POP 000014a7: POP 000014a8: POP 000014a9: JUMP 000014aa: JUMPDEST 000014ab: PUSH1 0x00 000014ad: DUP1 000014ae: PUSH1 0x40 000014b0: DUP4 000014b1: DUP6 000014b2: SUB 000014b3: SLT 000014b4: ISZERO 000014b5: PUSH2 0x14bc 000014b8: JUMPI 000014b9: DUP1 000014ba: DUP2 000014bb: REVERT 000014bc: JUMPDEST 000014bd: PUSH2 0x14c5 000014c0: DUP4 000014c1: PUSH2 0x146d 000014c4: JUMP 000014c5: JUMPDEST 000014c6: SWAP2 000014c7: POP 000014c8: PUSH1 0x20 000014ca: DUP4 000014cb: ADD 000014cc: CALLDATALOAD 000014cd: DUP1 000014ce: ISZERO 000014cf: ISZERO 000014d0: DUP2 000014d1: EQ 000014d2: PUSH2 0x14d9 000014d5: JUMPI 000014d6: DUP2 000014d7: DUP3 000014d8: REVERT 000014d9: JUMPDEST 000014da: DUP1 000014db: SWAP2 000014dc: POP 000014dd: POP 000014de: SWAP3 000014df: POP 000014e0: SWAP3 000014e1: SWAP1 000014e2: POP 000014e3: JUMP 000014e4: JUMPDEST 000014e5: PUSH1 0x00 000014e7: PUSH1 0x20 000014e9: DUP3 000014ea: DUP5 000014eb: SUB 000014ec: SLT 000014ed: ISZERO 000014ee: PUSH2 0x14f5 000014f1: JUMPI 000014f2: DUP1 000014f3: DUP2 000014f4: REVERT 000014f5: JUMPDEST 000014f6: POP 000014f7: CALLDATALOAD 000014f8: SWAP2 000014f9: SWAP1 000014fa: POP 000014fb: JUMP 000014fc: JUMPDEST 000014fd: PUSH1 0x00 000014ff: PUSH1 0x20 00001501: DUP3 00001502: DUP5 00001503: SUB 00001504: SLT 00001505: ISZERO 00001506: PUSH2 0x150d 00001509: JUMPI 0000150a: DUP1 0000150b: DUP2 0000150c: REVERT 0000150d: JUMPDEST 0000150e: POP 0000150f: MLOAD 00001510: SWAP2 00001511: SWAP1 00001512: POP 00001513: JUMP 00001514: JUMPDEST 00001515: PUSH1 0x00 00001517: DUP3 00001518: NOT 00001519: DUP3 0000151a: GT 0000151b: ISZERO 0000151c: PUSH2 0x1527 0000151f: JUMPI 00001520: PUSH2 0x1527 00001523: PUSH2 0x1582 00001526: JUMP 00001527: JUMPDEST 00001528: POP 00001529: ADD 0000152a: SWAP1 0000152b: JUMP 0000152c: JUMPDEST 0000152d: PUSH1 0x00 0000152f: DUP3 00001530: PUSH2 0x1547 00001533: JUMPI 00001534: PUSH4 0x4e487b71 00001539: PUSH1 0xe0 0000153b: SHL 0000153c: DUP2 0000153d: MSTORE 0000153e: PUSH1 0x12 00001540: PUSH1 0x04 00001542: MSTORE 00001543: PUSH1 0x24 00001545: DUP2 00001546: REVERT 00001547: JUMPDEST 00001548: POP 00001549: DIV 0000154a: SWAP1 0000154b: JUMP 0000154c: JUMPDEST 0000154d: PUSH1 0x00 0000154f: DUP2 00001550: PUSH1 0x00 00001552: NOT 00001553: DIV 00001554: DUP4 00001555: GT 00001556: DUP3 00001557: ISZERO 00001558: ISZERO 00001559: AND 0000155a: ISZERO 0000155b: PUSH2 0x1566 0000155e: JUMPI 0000155f: PUSH2 0x1566 00001562: PUSH2 0x1582 00001565: JUMP 00001566: JUMPDEST 00001567: POP 00001568: MUL 00001569: SWAP1 0000156a: JUMP 0000156b: JUMPDEST 0000156c: PUSH1 0x00 0000156e: DUP3 0000156f: DUP3 00001570: LT 00001571: ISZERO 00001572: PUSH2 0x157d 00001575: JUMPI 00001576: PUSH2 0x157d 00001579: PUSH2 0x1582 0000157c: JUMP 0000157d: JUMPDEST 0000157e: POP 0000157f: SUB 00001580: SWAP1 00001581: JUMP 00001582: JUMPDEST 00001583: PUSH4 0x4e487b71 00001588: PUSH1 0xe0 0000158a: SHL 0000158b: PUSH1 0x00 0000158d: MSTORE 0000158e: PUSH1 0x11 00001590: PUSH1 0x04 00001592: MSTORE 00001593: PUSH1 0x24 00001595: PUSH1 0x00 00001597: REVERT 00001598: INVALID 00001599: LOG2 0000159a: PUSH5 0x6970667358 000015a0: UNKNOWN(0x22) 000015a1: SLT 000015a2: KECCAK256 000015a3: GASPRICE 000015a4: DELEGATECALL 000015a5: UNKNOWN(0xC4) 000015a6: SWAP2 000015a7: SWAP11 000015a8: UNKNOWN(0xE1) 000015a9: PUSH13 0x9dba89ee0ecc11266bf4eb4bf2 000015b7: UNKNOWN(0xEB) 000015b8: EQ 000015b9: SWAP5 000015ba: DUP2 000015bb: DUP1 000015bc: EQ 000015bd: UNKNOWN(0xD9) 000015be: UNKNOWN(0xDE) 000015bf: UNKNOWN(0xB0) 000015c0: UNKNOWN(0x0F) 000015c1: PUSH7 0x8464736f6c6343 000015c9: STOP 000015ca: ADDMOD 000015cb: DIV 000015cc: STOP 000015cd: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | codex | Unprotected external initializer enables ownership takeover and ETH drain if uninitialized | 90 | no | — |
viewevidence_json{
"evidence": "`__NFTXV1Buyout_init` is external and sets ownership through `__Pausable_init` -> `__Ownable_init`, allowing first caller to become owner; owner-only withdraws can then drain ETH.",
"locations": [
"contracts/Contract.sol:617",
"contracts/Contract.sol:559",
"contracts/Contract.sol:269",
"contracts/Contract.sol:623",
"contracts/Contract.sol:639"
],
"recommendation": "Ensure the proxy is initialized atomically at deployment and lock the implementation by disabling initializers (e.g., constructor that calls `_disableInitializers()`), or add an explicit access check on `__NFTXV1Buyout_init` for first-time setup.",
"exploit_scenario": "1) Attacker checks `owner()`; if zero (proxy/contract not initialized), they call `__NFTXV1Buyout_init()` to become owner via `__Ownable_init`. 2) As owner, attacker calls `emergencyWithdraw()` to pull the entire ETH balance, or `removeBuyout(v1TokenAddr)` to withdraw any buyout ETH for a specific token. 3) Profit equals the full ETH held by the contract (all buyout liquidity)."
}
|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x88d2fc87be506e880d3040baa3151f6219b9321fc710f04ec4a3ccd503741706
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x88d2fc87be506e880d3040baa3151f6219b9321fc710f04ec4a3ccd503741706",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xd8374740",
"selector": "0xd8374740",
"calldata_variants": [
"0xd8374740",
"0xd83747400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdb2e21bc",
"selector": "0xdb2e21bc",
"calldata_variants": [
"0xdb2e21bc",
"0xdb2e21bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfabc1cbc",
"selector": "0xfabc1cbc",
"calldata_variants": [
"0xfabc1cbc",
"0xfabc1cbc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb5ba3a1a",
"selector": "0xb5ba3a1a",
"calldata_variants": [
"0xb5ba3a1a",
"0xb5ba3a1a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbdf2a43c",
"selector": "0xbdf2a43c",
"calldata_variants": [
"0xbdf2a43c",
"0xbdf2a43c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcdcf9cdb",
"selector": "0xcdcf9cdb",
"calldata_variants": [
"0xcdcf9cdb",
"0xcdcf9cdb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5540,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x0449c52fd75551b10132b89c2d6227e3eaf6345c6e45320f141102e1890661dd
call_targets:
0x28083d8bce883aa7b70130c915cd4308448a6f1e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0449c52fd75551b10132b89c2d6227e3eaf6345c6e45320f141102e1890661dd",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x28083d8bce883aa7b70130c915cd4308448a6f1e"
],
"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": "0xd8374740",
"selector": "0xd8374740",
"calldata_variants": [
"0xd8374740",
"0xd83747400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdb2e21bc",
"selector": "0xdb2e21bc",
"calldata_variants": [
"0xdb2e21bc",
"0xdb2e21bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfabc1cbc",
"selector": "0xfabc1cbc",
"calldata_variants": [
"0xfabc1cbc",
"0xfabc1cbc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb5ba3a1a",
"selector": "0xb5ba3a1a",
"calldata_variants": [
"0xb5ba3a1a",
"0xb5ba3a1a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbdf2a43c",
"selector": "0xbdf2a43c",
"calldata_variants": [
"0xbdf2a43c",
"0xbdf2a43c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcdcf9cdb",
"selector": "0xcdcf9cdb",
"calldata_variants": [
"0xcdcf9cdb",
"0xcdcf9cdb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2594,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2725,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3405,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [],
"untrusted_call_count": 4
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x0449c52fd75551b10132b89c2d6227e3eaf6345c6e45320f141102e1890661dd
call_targets:
0x28083d8bce883aa7b70130c915cd4308448a6f1e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0449c52fd75551b10132b89c2d6227e3eaf6345c6e45320f141102e1890661dd",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x28083d8bce883aa7b70130c915cd4308448a6f1e"
],
"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": "0xd8374740",
"selector": "0xd8374740",
"calldata_variants": [
"0xd8374740",
"0xd83747400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdb2e21bc",
"selector": "0xdb2e21bc",
"calldata_variants": [
"0xdb2e21bc",
"0xdb2e21bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfabc1cbc",
"selector": "0xfabc1cbc",
"calldata_variants": [
"0xfabc1cbc",
"0xfabc1cbc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb5ba3a1a",
"selector": "0xb5ba3a1a",
"calldata_variants": [
"0xb5ba3a1a",
"0xb5ba3a1a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbdf2a43c",
"selector": "0xbdf2a43c",
"calldata_variants": [
"0xbdf2a43c",
"0xbdf2a43c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcdcf9cdb",
"selector": "0xcdcf9cdb",
"calldata_variants": [
"0xcdcf9cdb",
"0xcdcf9cdb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2594,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2725,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3405,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|