47478634-e81a-42bf-81ad-291ef1f9912f
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 |
|---|---|---|---|---|
| 30738 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75424 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 75425 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 75426 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 75427 | capability.graph | complete | 1 / 3 | 1 week ago |
| 75428 | detector.run | complete | 1 / 3 | 1 week ago |
| 75429 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1303899] OpenAI Codex v0.77.0 (research preview)
[codex:1303899] --------
[codex:1303899] workdir: /tmp/codex-multi-lgov0c6k
[codex:1303899] model: gpt-5.2-codex
[codex:1303899] provider: openai
[codex:1303899] approval: never
[codex:1303899] sandbox: read-only
[codex:1303899] reasoning effort: xhigh
[codex:1303899] reasoning summaries: auto
[codex:1303899] session id: 019b70bb-e0c7-7372-a1f7-e7d76bb08906
[codex:1303899] --------
[codex:1303899] user
[codex:1303899] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1303899] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1303899] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1303899]
[codex:1303899] Scope rules:
[codex:1303899] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1303899] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1303899]
[codex:1303899] Output MUST be valid JSON matching the provided schema.
[codex:1303899] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1303899] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1303899]
[codex:1303899] Output constraints (IMPORTANT):
[codex:1303899] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1303899] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1303899] mcp startup: no servers
[codex:1303899]
[codex:1303899] thinking
[codex:1303899] **Preparing to read audit instructions**
[codex:1303899] exec
[codex:1303899] /bin/bash -lc ls in /tmp/codex-multi-lgov0c6k succeeded in 5ms:
[codex:1303899] AUDIT_BUNDLE.txt
[codex:1303899] codex-output-schema.json
[codex:1303899] contracts
[codex:1303899]
[codex:1303899] thinking
[codex:1303899] **Reading AUDIT_BUNDLE.txt**
[codex:1303899] exec
[codex:1303899] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-lgov0c6k succeeded in 5ms:
[codex:1303899] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1303899]
[codex:1303899] ================================================================================
[codex:1303899] FILE: contracts/source/ERC20Interface.sol
[codex:1303899] ================================================================================
[codex:1303899] // SPDX-License-Identifier: MIT
[codex:1303899] pragma solidity ^0.8.28;
[codex:1303899]
[codex:1303899] /**
[codex:1303899] * Contract that exposes the needed ERC20 token functions
[codex:1303899] */
[codex:1303899] interface ERC20Interface {
[codex:1303899] // Send _value amount of tokens to address _to
[codex:1303899] function transfer(address _to, uint256 _value) external returns (bool);
[codex:1303899]
[codex:1303899] // Get the account balance of another account with address _owner
[codex:1303899] function balanceOf(address _owner) external view returns (uint256 balance);
[codex:1303899] }
[codex:1303899]
[codex:1303899] ================================================================================
[codex:1303899]
[codex:1303899] thinking
[codex:1303899] **Analyzing reentrancy and access controls**
[codex:1303899]
[codex:1303899] I'm carefully reviewing potential reentrancy issues and access controls around functions like flushTokens, flush, receive, and changeOwner. I see that nonReentrant guards cover receive and flush but not flushTokens; however, controls and call contexts limit actual risk. The flush function is public but only forwards ETH to the owner, so that seems intentional rather than a vulnerability. I'm also considering scenarios where token contracts could reenter, but protections and ownership checks appear to prevent exploits. Overall, it looks like no serious vulnerabilities appear, but I want to summarize these findings clearly in JSON for the audit output.
[codex:1303899] codex
[codex:1303899] {"no_findings":true,"summary":"No exploitable vulnerabilities found in the first-party contracts within the specified scope and focus areas.","findings":[]}
[codex:1303899] tokens used
[codex:1303899] 3,945
[codex:1303899] {"no_findings":true,"summary":"No exploitable vulnerabilities found in the first-party contracts within the specified scope and focus areas.","findings":[]}
{
"codex": {
"ran_at": "2025-12-30T19:29:13.369903+00:00",
"returncode": 0
},
"summary": "No exploitable vulnerabilities found in the first-party contracts within the specified scope and focus areas.",
"raw_final": {
"summary": "No exploitable vulnerabilities found in the first-party contracts within the specified scope and focus areas.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: ISZERO 0000000a: PUSH2 0x001d 0000000d: JUMPI 0000000e: JUMPDEST 0000000f: CALLDATASIZE 00000010: PUSH2 0x02b1 00000013: JUMPI 00000014: PUSH2 0x001b 00000017: PUSH2 0x0f0c 0000001a: JUMP 0000001b: JUMPDEST 0000001c: STOP 0000001d: JUMPDEST 0000001e: PUSH2 0x0027 00000021: PUSH0 00000022: CALLDATALOAD 00000023: PUSH2 0x0086 00000026: JUMP 00000027: JUMPDEST 00000028: DUP1 00000029: PUSH4 0x3ef13367 0000002e: EQ 0000002f: PUSH2 0x0081 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0x6b9f96ea 00000039: EQ 0000003a: PUSH2 0x007c 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0x8f84aa09 00000044: EQ 00000045: PUSH2 0x0077 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0x96a4154e 0000004f: EQ 00000050: PUSH2 0x0072 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xa6f9dae1 0000005a: EQ 0000005b: PUSH2 0x006d 0000005e: JUMPI 0000005f: PUSH4 0xfeb0a141 00000064: SUB 00000065: PUSH2 0x000e 00000068: JUMPI 00000069: PUSH2 0x027c 0000006c: JUMP 0000006d: JUMPDEST 0000006e: PUSH2 0x023a 00000071: JUMP 00000072: JUMPDEST 00000073: PUSH2 0x0207 00000076: JUMP 00000077: JUMPDEST 00000078: PUSH2 0x01d2 0000007b: JUMP 0000007c: JUMPDEST 0000007d: PUSH2 0x0139 00000080: JUMP 00000081: JUMPDEST 00000082: PUSH2 0x00f7 00000085: JUMP 00000086: JUMPDEST 00000087: PUSH1 0xe0 00000089: SHR 0000008a: SWAP1 0000008b: JUMP 0000008c: JUMPDEST 0000008d: PUSH1 0x40 0000008f: MLOAD 00000090: SWAP1 00000091: JUMP 00000092: JUMPDEST 00000093: PUSH0 00000094: DUP1 00000095: REVERT 00000096: JUMPDEST 00000097: PUSH0 00000098: DUP1 00000099: REVERT 0000009a: JUMPDEST 0000009b: PUSH1 0x01 0000009d: DUP1 0000009e: PUSH1 0xa0 000000a0: SHL 000000a1: SUB 000000a2: AND 000000a3: SWAP1 000000a4: JUMP 000000a5: JUMPDEST 000000a6: PUSH2 0x00ae 000000a9: SWAP1 000000aa: PUSH2 0x009a 000000ad: JUMP 000000ae: JUMPDEST 000000af: SWAP1 000000b0: JUMP 000000b1: JUMPDEST 000000b2: PUSH2 0x00ba 000000b5: DUP2 000000b6: PUSH2 0x00a5 000000b9: JUMP 000000ba: JUMPDEST 000000bb: SUB 000000bc: PUSH2 0x00c1 000000bf: JUMPI 000000c0: JUMP 000000c1: JUMPDEST 000000c2: PUSH0 000000c3: DUP1 000000c4: REVERT 000000c5: JUMPDEST 000000c6: SWAP1 000000c7: POP 000000c8: CALLDATALOAD 000000c9: SWAP1 000000ca: PUSH2 0x00d2 000000cd: DUP3 000000ce: PUSH2 0x00b1 000000d1: JUMP 000000d2: JUMPDEST 000000d3: JUMP 000000d4: JUMPDEST 000000d5: SWAP1 000000d6: PUSH1 0x20 000000d8: DUP3 000000d9: DUP3 000000da: SUB 000000db: SLT 000000dc: PUSH2 0x00ed 000000df: JUMPI 000000e0: PUSH2 0x00ea 000000e3: SWAP2 000000e4: PUSH0 000000e5: ADD 000000e6: PUSH2 0x00c5 000000e9: JUMP 000000ea: JUMPDEST 000000eb: SWAP1 000000ec: JUMP 000000ed: JUMPDEST 000000ee: PUSH2 0x0096 000000f1: JUMP 000000f2: JUMPDEST 000000f3: PUSH0 000000f4: ADD 000000f5: SWAP1 000000f6: JUMP 000000f7: JUMPDEST 000000f8: CALLVALUE 000000f9: PUSH2 0x0125 000000fc: JUMPI 000000fd: PUSH2 0x010f 00000100: PUSH2 0x010a 00000103: CALLDATASIZE 00000104: PUSH1 0x04 00000106: PUSH2 0x00d4 00000109: JUMP 0000010a: JUMPDEST 0000010b: PUSH2 0x0828 0000010e: JUMP 0000010f: JUMPDEST 00000110: PUSH2 0x0117 00000113: PUSH2 0x008c 00000116: JUMP 00000117: JUMPDEST 00000118: DUP1 00000119: PUSH2 0x0121 0000011c: DUP2 0000011d: PUSH2 0x00f2 00000120: JUMP 00000121: JUMPDEST 00000122: SUB 00000123: SWAP1 00000124: RETURN 00000125: JUMPDEST 00000126: PUSH2 0x0092 00000129: JUMP 0000012a: JUMPDEST 0000012b: PUSH0 0000012c: SWAP2 0000012d: SUB 0000012e: SLT 0000012f: PUSH2 0x0134 00000132: JUMPI 00000133: JUMP 00000134: JUMPDEST 00000135: PUSH2 0x0096 00000138: JUMP 00000139: JUMPDEST 0000013a: CALLVALUE 0000013b: PUSH2 0x0167 0000013e: JUMPI 0000013f: PUSH2 0x0149 00000142: CALLDATASIZE 00000143: PUSH1 0x04 00000145: PUSH2 0x012a 00000148: JUMP 00000149: JUMPDEST 0000014a: PUSH2 0x0151 0000014d: PUSH2 0x0a8f 00000150: JUMP 00000151: JUMPDEST 00000152: PUSH2 0x0159 00000155: PUSH2 0x008c 00000158: JUMP 00000159: JUMPDEST 0000015a: DUP1 0000015b: PUSH2 0x0163 0000015e: DUP2 0000015f: PUSH2 0x00f2 00000162: JUMP 00000163: JUMPDEST 00000164: SUB 00000165: SWAP1 00000166: RETURN 00000167: JUMPDEST 00000168: PUSH2 0x0092 0000016b: JUMP 0000016c: JUMPDEST 0000016d: SHR 0000016e: SWAP1 0000016f: JUMP 00000170: JUMPDEST 00000171: PUSH1 0x01 00000173: DUP1 00000174: PUSH1 0xa0 00000176: SHL 00000177: SUB 00000178: AND 00000179: SWAP1 0000017a: JUMP 0000017b: JUMPDEST 0000017c: PUSH2 0x018b 0000017f: SWAP1 00000180: PUSH1 0x08 00000182: PUSH2 0x0190 00000185: SWAP4 00000186: MUL 00000187: PUSH2 0x016c 0000018a: JUMP 0000018b: JUMPDEST 0000018c: PUSH2 0x0170 0000018f: JUMP 00000190: JUMPDEST 00000191: SWAP1 00000192: JUMP 00000193: JUMPDEST 00000194: SWAP1 00000195: PUSH2 0x019e 00000198: SWAP2 00000199: SLOAD 0000019a: PUSH2 0x017b 0000019d: JUMP 0000019e: JUMPDEST 0000019f: SWAP1 000001a0: JUMP 000001a1: JUMPDEST 000001a2: PUSH2 0x01ad 000001a5: PUSH1 0x01 000001a7: PUSH0 000001a8: SWAP1 000001a9: PUSH2 0x0193 000001ac: JUMP 000001ad: JUMPDEST 000001ae: SWAP1 000001af: JUMP 000001b0: JUMPDEST 000001b1: PUSH2 0x01b9 000001b4: SWAP1 000001b5: PUSH2 0x00a5 000001b8: JUMP 000001b9: JUMPDEST 000001ba: SWAP1 000001bb: MSTORE 000001bc: JUMP 000001bd: JUMPDEST 000001be: SWAP2 000001bf: SWAP1 000001c0: PUSH2 0x01d0 000001c3: SWAP1 000001c4: PUSH0 000001c5: PUSH1 0x20 000001c7: DUP6 000001c8: ADD 000001c9: SWAP5 000001ca: ADD 000001cb: SWAP1 000001cc: PUSH2 0x01b0 000001cf: JUMP 000001d0: JUMPDEST 000001d1: JUMP 000001d2: JUMPDEST 000001d3: CALLVALUE 000001d4: PUSH2 0x0202 000001d7: JUMPI 000001d8: PUSH2 0x01e2 000001db: CALLDATASIZE 000001dc: PUSH1 0x04 000001de: PUSH2 0x012a 000001e1: JUMP 000001e2: JUMPDEST 000001e3: PUSH2 0x01fe 000001e6: PUSH2 0x01ed 000001e9: PUSH2 0x01a1 000001ec: JUMP 000001ed: JUMPDEST 000001ee: PUSH2 0x01f5 000001f1: PUSH2 0x008c 000001f4: JUMP 000001f5: JUMPDEST 000001f6: SWAP2 000001f7: DUP3 000001f8: SWAP2 000001f9: DUP3 000001fa: PUSH2 0x01bd 000001fd: JUMP 000001fe: JUMPDEST 000001ff: SUB 00000200: SWAP1 00000201: RETURN 00000202: JUMPDEST 00000203: PUSH2 0x0092 00000206: JUMP 00000207: JUMPDEST 00000208: CALLVALUE 00000209: PUSH2 0x0235 0000020c: JUMPI 0000020d: PUSH2 0x021f 00000210: PUSH2 0x021a 00000213: CALLDATASIZE 00000214: PUSH1 0x04 00000216: PUSH2 0x00d4 00000219: JUMP 0000021a: JUMPDEST 0000021b: PUSH2 0x0c2d 0000021e: JUMP 0000021f: JUMPDEST 00000220: PUSH2 0x0227 00000223: PUSH2 0x008c 00000226: JUMP 00000227: JUMPDEST 00000228: DUP1 00000229: PUSH2 0x0231 0000022c: DUP2 0000022d: PUSH2 0x00f2 00000230: JUMP 00000231: JUMPDEST 00000232: SUB 00000233: SWAP1 00000234: RETURN 00000235: JUMPDEST 00000236: PUSH2 0x0092 00000239: JUMP 0000023a: JUMPDEST 0000023b: CALLVALUE 0000023c: PUSH2 0x0268 0000023f: JUMPI 00000240: PUSH2 0x0252 00000243: PUSH2 0x024d 00000246: CALLDATASIZE 00000247: PUSH1 0x04 00000249: PUSH2 0x00d4 0000024c: JUMP 0000024d: JUMPDEST 0000024e: PUSH2 0x0d5a 00000251: JUMP 00000252: JUMPDEST 00000253: PUSH2 0x025a 00000256: PUSH2 0x008c 00000259: JUMP 0000025a: JUMPDEST 0000025b: DUP1 0000025c: PUSH2 0x0264 0000025f: DUP2 00000260: PUSH2 0x00f2 00000263: JUMP 00000264: JUMPDEST 00000265: SUB 00000266: SWAP1 00000267: RETURN 00000268: JUMPDEST 00000269: PUSH2 0x0092 0000026c: JUMP 0000026d: JUMPDEST 0000026e: PUSH2 0x0279 00000271: PUSH1 0x02 00000273: PUSH0 00000274: SWAP1 00000275: PUSH2 0x0193 00000278: JUMP 00000279: JUMPDEST 0000027a: SWAP1 0000027b: JUMP 0000027c: JUMPDEST 0000027d: CALLVALUE 0000027e: PUSH2 0x02ac 00000281: JUMPI 00000282: PUSH2 0x028c 00000285: CALLDATASIZE 00000286: PUSH1 0x04 00000288: PUSH2 0x012a 0000028b: JUMP 0000028c: JUMPDEST 0000028d: PUSH2 0x02a8 00000290: PUSH2 0x0297 00000293: PUSH2 0x026d 00000296: JUMP 00000297: JUMPDEST 00000298: PUSH2 0x029f 0000029b: PUSH2 0x008c 0000029e: JUMP 0000029f: JUMPDEST 000002a0: SWAP2 000002a1: DUP3 000002a2: SWAP2 000002a3: DUP3 000002a4: PUSH2 0x01bd 000002a7: JUMP 000002a8: JUMPDEST 000002a9: SUB 000002aa: SWAP1 000002ab: RETURN 000002ac: JUMPDEST 000002ad: PUSH2 0x0092 000002b0: JUMP 000002b1: JUMPDEST 000002b2: PUSH0 000002b3: DUP1 000002b4: REVERT 000002b5: JUMPDEST 000002b6: PUSH0 000002b7: SHR 000002b8: SWAP1 000002b9: JUMP 000002ba: JUMPDEST 000002bb: PUSH2 0x02c6 000002be: PUSH2 0x02cb 000002c1: SWAP2 000002c2: PUSH2 0x02b5 000002c5: JUMP 000002c6: JUMPDEST 000002c7: PUSH2 0x0170 000002ca: JUMP 000002cb: JUMPDEST 000002cc: SWAP1 000002cd: JUMP 000002ce: JUMPDEST 000002cf: PUSH2 0x02d8 000002d2: SWAP1 000002d3: SLOAD 000002d4: PUSH2 0x02ba 000002d7: JUMP 000002d8: JUMPDEST 000002d9: SWAP1 000002da: JUMP 000002db: JUMPDEST 000002dc: CALLER 000002dd: PUSH2 0x02f7 000002e0: PUSH2 0x02f1 000002e3: PUSH2 0x02ec 000002e6: PUSH1 0x01 000002e8: PUSH2 0x02ce 000002eb: JUMP 000002ec: JUMPDEST 000002ed: PUSH2 0x00a5 000002f0: JUMP 000002f1: JUMPDEST 000002f2: SWAP2 000002f3: PUSH2 0x00a5 000002f6: JUMP 000002f7: JUMPDEST 000002f8: EQ 000002f9: ISZERO 000002fa: DUP1 000002fb: PUSH2 0x032a 000002fe: JUMPI 000002ff: JUMPDEST 00000300: PUSH2 0x030e 00000303: JUMPI 00000304: PUSH2 0x030c 00000307: SWAP1 00000308: PUSH2 0x0625 0000030b: JUMP 0000030c: JUMPDEST 0000030d: JUMP 0000030e: JUMPDEST 0000030f: PUSH0 00000310: PUSH4 0xea8e4eb5 00000315: PUSH1 0xe0 00000317: SHL 00000318: DUP2 00000319: MSTORE 0000031a: DUP1 0000031b: PUSH2 0x0326 0000031e: PUSH1 0x04 00000320: DUP3 00000321: ADD 00000322: PUSH2 0x00f2 00000325: JUMP 00000326: JUMPDEST 00000327: SUB 00000328: SWAP1 00000329: REVERT 0000032a: JUMPDEST 0000032b: POP 0000032c: CALLER 0000032d: PUSH2 0x0347 00000330: PUSH2 0x0341 00000333: PUSH2 0x033c 00000336: PUSH1 0x02 00000338: PUSH2 0x02ce 0000033b: JUMP 0000033c: JUMPDEST 0000033d: PUSH2 0x00a5 00000340: JUMP 00000341: JUMPDEST 00000342: SWAP2 00000343: PUSH2 0x00a5 00000346: JUMP 00000347: JUMPDEST 00000348: EQ 00000349: ISZERO 0000034a: PUSH2 0x02ff 0000034d: JUMP 0000034e: JUMPDEST 0000034f: SWAP1 00000350: JUMP 00000351: JUMPDEST 00000352: PUSH2 0x0365 00000355: PUSH2 0x0360 00000358: PUSH2 0x036a 0000035b: SWAP3 0000035c: PUSH2 0x009a 0000035f: JUMP 00000360: JUMPDEST 00000361: PUSH2 0x034e 00000364: JUMP 00000365: JUMPDEST 00000366: PUSH2 0x009a 00000369: JUMP 0000036a: JUMPDEST 0000036b: SWAP1 0000036c: JUMP 0000036d: JUMPDEST 0000036e: PUSH2 0x0376 00000371: SWAP1 00000372: PUSH2 0x0351 00000375: JUMP 00000376: JUMPDEST 00000377: SWAP1 00000378: JUMP 00000379: JUMPDEST 0000037a: PUSH2 0x0382 0000037d: SWAP1 0000037e: PUSH2 0x036d 00000381: JUMP 00000382: JUMPDEST 00000383: SWAP1 00000384: JUMP 00000385: JUMPDEST 00000386: PUSH2 0x038e 00000389: SWAP1 0000038a: PUSH2 0x0351 0000038d: JUMP 0000038e: JUMPDEST 0000038f: SWAP1 00000390: JUMP 00000391: JUMPDEST 00000392: PUSH2 0x039a 00000395: SWAP1 00000396: PUSH2 0x0385 00000399: JUMP 0000039a: JUMPDEST 0000039b: SWAP1 0000039c: JUMP 0000039d: JUMPDEST 0000039e: PUSH2 0x03a6 000003a1: SWAP1 000003a2: PUSH2 0x0385 000003a5: JUMP 000003a6: JUMPDEST 000003a7: SWAP1 000003a8: JUMP 000003a9: JUMPDEST 000003aa: PUSH1 0x1f 000003ac: DUP1 000003ad: NOT 000003ae: SWAP2 000003af: ADD 000003b0: AND 000003b1: SWAP1 000003b2: JUMP 000003b3: JUMPDEST 000003b4: PUSH4 0x4e487b71 000003b9: PUSH1 0xe0 000003bb: SHL 000003bc: PUSH0 000003bd: MSTORE 000003be: PUSH1 0x41 000003c0: PUSH1 0x04 000003c2: MSTORE 000003c3: PUSH1 0x24 000003c5: PUSH0 000003c6: REVERT 000003c7: JUMPDEST 000003c8: SWAP1 000003c9: PUSH2 0x03d1 000003cc: SWAP1 000003cd: PUSH2 0x03a9 000003d0: JUMP 000003d1: JUMPDEST 000003d2: DUP2 000003d3: ADD 000003d4: SWAP1 000003d5: DUP2 000003d6: LT 000003d7: PUSH8 0xffffffffffffffff 000003e0: DUP3 000003e1: GT 000003e2: OR 000003e3: PUSH2 0x03eb 000003e6: JUMPI 000003e7: PUSH1 0x40 000003e9: MSTORE 000003ea: JUMP 000003eb: JUMPDEST 000003ec: PUSH2 0x03b3 000003ef: JUMP 000003f0: JUMPDEST 000003f1: PUSH1 0xe0 000003f3: SHL 000003f4: SWAP1 000003f5: JUMP 000003f6: JUMPDEST 000003f7: SWAP1 000003f8: JUMP 000003f9: JUMPDEST 000003fa: PUSH2 0x0402 000003fd: DUP2 000003fe: PUSH2 0x03f6 00000401: JUMP 00000402: JUMPDEST 00000403: SUB 00000404: PUSH2 0x0409 00000407: JUMPI 00000408: JUMP 00000409: JUMPDEST 0000040a: PUSH0 0000040b: DUP1 0000040c: REVERT 0000040d: JUMPDEST 0000040e: SWAP1 0000040f: POP 00000410: MLOAD 00000411: SWAP1 00000412: PUSH2 0x041a 00000415: DUP3 00000416: PUSH2 0x03f9 00000419: JUMP 0000041a: JUMPDEST 0000041b: JUMP 0000041c: JUMPDEST 0000041d: SWAP1 0000041e: PUSH1 0x20 00000420: DUP3 00000421: DUP3 00000422: SUB 00000423: SLT 00000424: PUSH2 0x0435 00000427: JUMPI 00000428: PUSH2 0x0432 0000042b: SWAP2 0000042c: PUSH0 0000042d: ADD 0000042e: PUSH2 0x040d 00000431: JUMP 00000432: JUMPDEST 00000433: SWAP1 00000434: JUMP 00000435: JUMPDEST 00000436: PUSH2 0x0096 00000439: JUMP 0000043a: JUMPDEST 0000043b: PUSH2 0x0442 0000043e: PUSH2 0x008c 00000441: JUMP 00000442: JUMPDEST 00000443: RETURNDATASIZE 00000444: PUSH0 00000445: DUP3 00000446: RETURNDATACOPY 00000447: RETURNDATASIZE 00000448: SWAP1 00000449: REVERT 0000044a: JUMPDEST 0000044b: SWAP1 0000044c: JUMP 0000044d: JUMPDEST 0000044e: PUSH2 0x0461 00000451: PUSH2 0x045c 00000454: PUSH2 0x0466 00000457: SWAP3 00000458: PUSH2 0x044a 0000045b: JUMP 0000045c: JUMPDEST 0000045d: PUSH2 0x034e 00000460: JUMP 00000461: JUMPDEST 00000462: PUSH2 0x03f6 00000465: JUMP 00000466: JUMPDEST 00000467: SWAP1 00000468: JUMP 00000469: JUMPDEST 0000046a: PUSH4 0xffffffff 0000046f: AND 00000470: SWAP1 00000471: JUMP 00000472: JUMPDEST 00000473: PUSH4 0xffffffff 00000478: PUSH1 0xe0 0000047a: SHL 0000047b: AND 0000047c: SWAP1 0000047d: JUMP 0000047e: JUMPDEST 0000047f: PUSH2 0x0492 00000482: PUSH2 0x048d 00000485: PUSH2 0x0497 00000488: SWAP3 00000489: PUSH2 0x0469 0000048c: JUMP 0000048d: JUMPDEST 0000048e: PUSH2 0x03f0 00000491: JUMP 00000492: JUMPDEST 00000493: PUSH2 0x0472 00000496: JUMP 00000497: JUMPDEST 00000498: SWAP1 00000499: JUMP 0000049a: JUMPDEST 0000049b: PUSH2 0x04a3 0000049e: SWAP1 0000049f: PUSH2 0x03f6 000004a2: JUMP 000004a3: JUMPDEST 000004a4: SWAP1 000004a5: MSTORE 000004a6: JUMP 000004a7: JUMPDEST 000004a8: SWAP2 000004a9: PUSH1 0x20 000004ab: PUSH2 0x04c8 000004ae: SWAP3 000004af: SWAP5 000004b0: SWAP4 000004b1: PUSH2 0x04c1 000004b4: PUSH1 0x40 000004b6: DUP3 000004b7: ADD 000004b8: SWAP7 000004b9: PUSH0 000004ba: DUP4 000004bb: ADD 000004bc: SWAP1 000004bd: PUSH2 0x01b0 000004c0: JUMP 000004c1: JUMPDEST 000004c2: ADD 000004c3: SWAP1 000004c4: PUSH2 0x049a 000004c7: JUMP 000004c8: JUMPDEST 000004c9: JUMP 000004ca: JUMPDEST 000004cb: SWAP1 000004cc: PUSH2 0x04dd 000004cf: PUSH2 0x04d6 000004d2: PUSH2 0x008c 000004d5: JUMP 000004d6: JUMPDEST 000004d7: SWAP3 000004d8: DUP4 000004d9: PUSH2 0x03c7 000004dc: JUMP 000004dd: JUMPDEST 000004de: JUMP 000004df: JUMPDEST 000004e0: PUSH8 0xffffffffffffffff 000004e9: DUP2 000004ea: GT 000004eb: PUSH2 0x04fd 000004ee: JUMPI 000004ef: PUSH2 0x04f9 000004f2: PUSH1 0x20 000004f4: SWAP2 000004f5: PUSH2 0x03a9 000004f8: JUMP 000004f9: JUMPDEST 000004fa: ADD 000004fb: SWAP1 000004fc: JUMP 000004fd: JUMPDEST 000004fe: PUSH2 0x03b3 00000501: JUMP 00000502: JUMPDEST 00000503: SWAP1 00000504: PUSH2 0x0514 00000507: PUSH2 0x050f 0000050a: DUP4 0000050b: PUSH2 0x04df 0000050e: JUMP 0000050f: JUMPDEST 00000510: PUSH2 0x04ca 00000513: JUMP 00000514: JUMPDEST 00000515: SWAP2 00000516: DUP3 00000517: MSTORE 00000518: JUMP 00000519: JUMPDEST 0000051a: PUSH1 0x60 0000051c: SWAP1 0000051d: JUMP 0000051e: JUMPDEST 0000051f: RETURNDATASIZE 00000520: PUSH0 00000521: EQ 00000522: PUSH2 0x0539 00000525: JUMPI 00000526: PUSH2 0x052e 00000529: RETURNDATASIZE 0000052a: PUSH2 0x0502 0000052d: JUMP 0000052e: JUMPDEST 0000052f: SWAP1 00000530: RETURNDATASIZE 00000531: PUSH0 00000532: PUSH1 0x20 00000534: DUP5 00000535: ADD 00000536: RETURNDATACOPY 00000537: JUMPDEST 00000538: JUMP 00000539: JUMPDEST 0000053a: PUSH2 0x0541 0000053d: PUSH2 0x0519 00000540: JUMP 00000541: JUMPDEST 00000542: SWAP1 00000543: PUSH2 0x0537 00000546: JUMP 00000547: JUMPDEST 00000548: ISZERO 00000549: ISZERO 0000054a: SWAP1 0000054b: JUMP 0000054c: JUMPDEST 0000054d: MLOAD 0000054e: SWAP1 0000054f: JUMP 00000550: JUMPDEST 00000551: PUSH2 0x0559 00000554: DUP2 00000555: PUSH2 0x0547 00000558: JUMP 00000559: JUMPDEST 0000055a: SUB 0000055b: PUSH2 0x0560 0000055e: JUMPI 0000055f: JUMP 00000560: JUMPDEST 00000561: PUSH0 00000562: DUP1 00000563: REVERT 00000564: JUMPDEST 00000565: SWAP1 00000566: POP 00000567: MLOAD 00000568: SWAP1 00000569: PUSH2 0x0571 0000056c: DUP3 0000056d: PUSH2 0x0550 00000570: JUMP 00000571: JUMPDEST 00000572: JUMP 00000573: JUMPDEST 00000574: SWAP1 00000575: PUSH1 0x20 00000577: DUP3 00000578: DUP3 00000579: SUB 0000057a: SLT 0000057b: PUSH2 0x058c 0000057e: JUMPI 0000057f: PUSH2 0x0589 00000582: SWAP2 00000583: PUSH0 00000584: ADD 00000585: PUSH2 0x0564 00000588: JUMP 00000589: JUMPDEST 0000058a: SWAP1 0000058b: JUMP 0000058c: JUMPDEST 0000058d: PUSH2 0x0096 00000590: JUMP 00000591: JUMPDEST 00000592: PUSH1 0x20 00000594: SWAP2 00000595: DUP2 00000596: MSTORE 00000597: ADD 00000598: SWAP1 00000599: JUMP 0000059a: JUMPDEST 0000059b: PUSH0 0000059c: PUSH32 0x546f6b656e20666c757368000000000000000000000000000000000000000000 000005bd: SWAP2 000005be: ADD 000005bf: MSTORE 000005c0: JUMP 000005c1: JUMPDEST 000005c2: PUSH2 0x05ce 000005c5: PUSH1 0x0b 000005c7: PUSH1 0x20 000005c9: SWAP3 000005ca: PUSH2 0x0591 000005cd: JUMP 000005ce: JUMPDEST 000005cf: PUSH2 0x05d7 000005d2: DUP2 000005d3: PUSH2 0x059a 000005d6: JUMP 000005d7: JUMPDEST 000005d8: ADD 000005d9: SWAP1 000005da: JUMP 000005db: JUMPDEST 000005dc: PUSH2 0x05f0 000005df: SWAP1 000005e0: PUSH1 0x20 000005e2: DUP2 000005e3: ADD 000005e4: SWAP1 000005e5: PUSH0 000005e6: DUP2 000005e7: DUP4 000005e8: SUB 000005e9: SWAP2 000005ea: ADD 000005eb: MSTORE 000005ec: PUSH2 0x05c1 000005ef: JUMP 000005f0: JUMPDEST 000005f1: SWAP1 000005f2: JUMP 000005f3: JUMPDEST 000005f4: PUSH1 0x40 000005f6: SWAP1 000005f7: PUSH2 0x061c 000005fa: PUSH2 0x0623 000005fd: SWAP5 000005fe: SWAP7 000005ff: SWAP6 00000600: SWAP4 00000601: SWAP7 00000602: PUSH2 0x0612 00000605: PUSH1 0x60 00000607: DUP5 00000608: ADD 00000609: SWAP9 0000060a: PUSH0 0000060b: DUP6 0000060c: ADD 0000060d: SWAP1 0000060e: PUSH2 0x01b0 00000611: JUMP 00000612: JUMPDEST 00000613: PUSH1 0x20 00000615: DUP4 00000616: ADD 00000617: SWAP1 00000618: PUSH2 0x049a 0000061b: JUMP 0000061c: JUMPDEST 0000061d: ADD 0000061e: SWAP1 0000061f: PUSH2 0x01b0 00000622: JUMP 00000623: JUMPDEST 00000624: JUMP 00000625: JUMPDEST 00000626: PUSH2 0x062e 00000629: DUP2 0000062a: PUSH2 0x0379 0000062d: JUMP 0000062e: JUMPDEST 0000062f: SWAP1 00000630: PUSH2 0x066f 00000633: PUSH1 0x20 00000635: PUSH2 0x063d 00000638: DUP5 00000639: PUSH2 0x0391 0000063c: JUMP 0000063d: JUMPDEST 0000063e: PUSH4 0x70a08231 00000643: SWAP1 00000644: PUSH2 0x0664 00000647: PUSH2 0x064f 0000064a: ADDRESS 0000064b: PUSH2 0x039d 0000064e: JUMP 0000064f: JUMPDEST 00000650: SWAP3 00000651: PUSH2 0x0658 00000654: PUSH2 0x008c 00000657: JUMP 00000658: JUMPDEST 00000659: SWAP6 0000065a: DUP7 0000065b: SWAP5 0000065c: DUP6 0000065d: SWAP4 0000065e: DUP5 0000065f: SWAP4 00000660: PUSH2 0x03f0 00000663: JUMP 00000664: JUMPDEST 00000665: DUP4 00000666: MSTORE 00000667: PUSH1 0x04 00000669: DUP4 0000066a: ADD 0000066b: PUSH2 0x01bd 0000066e: JUMP 0000066f: JUMPDEST 00000670: SUB 00000671: SWAP2 00000672: GAS 00000673: STATICCALL 00000674: SWAP1 00000675: DUP2 00000676: ISZERO 00000677: PUSH2 0x0823 0000067a: JUMPI 0000067b: PUSH0 0000067c: SWAP2 0000067d: PUSH2 0x07f5 00000680: JUMPI 00000681: JUMPDEST 00000682: POP 00000683: SWAP2 00000684: DUP3 00000685: PUSH2 0x0696 00000688: PUSH2 0x0690 0000068b: PUSH0 0000068c: PUSH2 0x044d 0000068f: JUMP 00000690: JUMPDEST 00000691: SWAP2 00000692: PUSH2 0x03f6 00000695: JUMP 00000696: JUMPDEST 00000697: EQ 00000698: PUSH2 0x07d9 0000069b: JUMPI 0000069c: PUSH0 0000069d: PUSH2 0x06a6 000006a0: DUP2 000006a1: SWAP3 000006a2: PUSH2 0x0391 000006a5: JUMP 000006a6: JUMPDEST 000006a7: PUSH1 0x04 000006a9: PUSH2 0x06ee 000006ac: PUSH2 0x06b8 000006af: PUSH4 0xa9059cbb 000006b4: PUSH2 0x047e 000006b7: JUMP 000006b8: JUMPDEST 000006b9: PUSH2 0x06df 000006bc: PUSH2 0x06c5 000006bf: PUSH1 0x01 000006c1: PUSH2 0x02ce 000006c4: JUMP 000006c5: JUMPDEST 000006c6: DUP10 000006c7: SWAP1 000006c8: PUSH2 0x06cf 000006cb: PUSH2 0x008c 000006ce: JUMP 000006cf: JUMPDEST 000006d0: SWAP6 000006d1: DUP7 000006d2: SWAP5 000006d3: PUSH1 0x20 000006d5: DUP7 000006d6: ADD 000006d7: SWAP1 000006d8: DUP2 000006d9: MSTORE 000006da: ADD 000006db: PUSH2 0x04a7 000006de: JUMP 000006df: JUMPDEST 000006e0: PUSH1 0x20 000006e2: DUP3 000006e3: ADD 000006e4: DUP2 000006e5: SUB 000006e6: DUP3 000006e7: MSTORE 000006e8: SUB 000006e9: DUP3 000006ea: PUSH2 0x03c7 000006ed: JUMP 000006ee: JUMPDEST 000006ef: DUP3 000006f0: PUSH1 0x20 000006f2: DUP3 000006f3: ADD 000006f4: SWAP2 000006f5: MLOAD 000006f6: SWAP3 000006f7: GAS 000006f8: CALL 000006f9: PUSH2 0x070a 000006fc: PUSH2 0x0703 000006ff: PUSH2 0x051e 00000702: JUMP 00000703: JUMPDEST 00000704: SWAP2 00000705: ISZERO 00000706: PUSH2 0x0547 00000709: JUMP 0000070a: JUMPDEST 0000070b: SWAP1 0000070c: DUP2 0000070d: ISZERO 0000070e: PUSH2 0x0781 00000711: JUMPI 00000712: JUMPDEST 00000713: POP 00000714: PUSH2 0x075e 00000717: JUMPI 00000718: PUSH2 0x0720 0000071b: ADDRESS 0000071c: PUSH2 0x039d 0000071f: JUMP 00000720: JUMPDEST 00000721: SWAP2 00000722: SWAP1 00000723: SWAP2 00000724: PUSH2 0x0759 00000727: PUSH32 0xb4bdccee2343c0b5e592d459c20eb1fa451c96bf88fb685a11aecda6b4ec76b1 00000748: SWAP4 00000749: PUSH2 0x0750 0000074c: PUSH2 0x008c 0000074f: JUMP 00000750: JUMPDEST 00000751: SWAP4 00000752: DUP5 00000753: SWAP4 00000754: DUP5 00000755: PUSH2 0x05f3 00000758: JUMP 00000759: JUMPDEST 0000075a: SUB 0000075b: SWAP1 0000075c: LOG1 0000075d: JUMP 0000075e: JUMPDEST 0000075f: PUSH2 0x0766 00000762: PUSH2 0x008c 00000765: JUMP 00000766: JUMPDEST 00000767: PUSH4 0x12dfddb3 0000076c: PUSH1 0xe0 0000076e: SHL 0000076f: DUP2 00000770: MSTORE 00000771: DUP1 00000772: PUSH2 0x077d 00000775: PUSH1 0x04 00000777: DUP3 00000778: ADD 00000779: PUSH2 0x05db 0000077c: JUMP 0000077d: JUMPDEST 0000077e: SUB 0000077f: SWAP1 00000780: REVERT 00000781: JUMPDEST 00000782: SWAP1 00000783: POP 00000784: PUSH2 0x078c 00000787: DUP2 00000788: PUSH2 0x054c 0000078b: JUMP 0000078c: JUMPDEST 0000078d: PUSH2 0x079e 00000790: PUSH2 0x0798 00000793: PUSH0 00000794: PUSH2 0x044d 00000797: JUMP 00000798: JUMPDEST 00000799: SWAP2 0000079a: PUSH2 0x03f6 0000079d: JUMP 0000079e: JUMPDEST 0000079f: EQ 000007a0: ISZERO 000007a1: SWAP1 000007a2: DUP2 000007a3: PUSH2 0x07ae 000007a6: JUMPI 000007a7: JUMPDEST 000007a8: POP 000007a9: PUSH0 000007aa: PUSH2 0x0712 000007ad: JUMP 000007ae: JUMPDEST 000007af: PUSH2 0x07d3 000007b2: SWAP2 000007b3: POP 000007b4: PUSH2 0x07cd 000007b7: SWAP1 000007b8: PUSH1 0x20 000007ba: PUSH2 0x07c2 000007bd: DUP3 000007be: PUSH2 0x054c 000007c1: JUMP 000007c2: JUMPDEST 000007c3: DUP2 000007c4: DUP4 000007c5: ADD 000007c6: ADD 000007c7: SWAP2 000007c8: ADD 000007c9: PUSH2 0x0573 000007cc: JUMP 000007cd: JUMPDEST 000007ce: ISZERO 000007cf: PUSH2 0x0547 000007d2: JUMP 000007d3: JUMPDEST 000007d4: PUSH0 000007d5: PUSH2 0x07a7 000007d8: JUMP 000007d9: JUMPDEST 000007da: PUSH0 000007db: PUSH4 0x1e9acf17 000007e0: PUSH1 0xe3 000007e2: SHL 000007e3: DUP2 000007e4: MSTORE 000007e5: DUP1 000007e6: PUSH2 0x07f1 000007e9: PUSH1 0x04 000007eb: DUP3 000007ec: ADD 000007ed: PUSH2 0x00f2 000007f0: JUMP 000007f1: JUMPDEST 000007f2: SUB 000007f3: SWAP1 000007f4: REVERT 000007f5: JUMPDEST 000007f6: PUSH2 0x0816 000007f9: SWAP2 000007fa: POP 000007fb: PUSH1 0x20 000007fd: RETURNDATASIZE 000007fe: DUP2 000007ff: GT 00000800: PUSH2 0x081c 00000803: JUMPI 00000804: JUMPDEST 00000805: PUSH2 0x080e 00000808: DUP2 00000809: DUP4 0000080a: PUSH2 0x03c7 0000080d: JUMP 0000080e: JUMPDEST 0000080f: DUP2 00000810: ADD 00000811: SWAP1 00000812: PUSH2 0x041c 00000815: JUMP 00000816: JUMPDEST 00000817: PUSH0 00000818: PUSH2 0x0681 0000081b: JUMP 0000081c: JUMPDEST 0000081d: POP 0000081e: RETURNDATASIZE 0000081f: PUSH2 0x0804 00000822: JUMP 00000823: JUMPDEST 00000824: PUSH2 0x043a 00000827: JUMP 00000828: JUMPDEST 00000829: PUSH2 0x0831 0000082c: SWAP1 0000082d: PUSH2 0x02db 00000830: JUMP 00000831: JUMPDEST 00000832: JUMP 00000833: JUMPDEST 00000834: SWAP1 00000835: JUMP 00000836: JUMPDEST 00000837: PUSH2 0x0842 0000083a: PUSH2 0x0847 0000083d: SWAP2 0000083e: PUSH2 0x02b5 00000841: JUMP 00000842: JUMPDEST 00000843: PUSH2 0x0833 00000846: JUMP 00000847: JUMPDEST 00000848: SWAP1 00000849: JUMP 0000084a: JUMPDEST 0000084b: PUSH2 0x0854 0000084e: SWAP1 0000084f: SLOAD 00000850: PUSH2 0x0836 00000853: JUMP 00000854: JUMPDEST 00000855: SWAP1 00000856: JUMP 00000857: JUMPDEST 00000858: SWAP1 00000859: JUMP 0000085a: JUMPDEST 0000085b: PUSH2 0x086e 0000085e: PUSH2 0x0869 00000861: PUSH2 0x0873 00000864: SWAP3 00000865: PUSH2 0x0857 00000868: JUMP 00000869: JUMPDEST 0000086a: PUSH2 0x034e 0000086d: JUMP 0000086e: JUMPDEST 0000086f: PUSH2 0x03f6 00000872: JUMP 00000873: JUMPDEST 00000874: SWAP1 00000875: JUMP 00000876: JUMPDEST 00000877: PUSH2 0x0880 0000087a: PUSH1 0x02 0000087c: PUSH2 0x085a 0000087f: JUMP 00000880: JUMPDEST 00000881: SWAP1 00000882: JUMP 00000883: JUMPDEST 00000884: PUSH0 00000885: SHL 00000886: SWAP1 00000887: JUMP 00000888: JUMPDEST 00000889: SWAP1 0000088a: PUSH2 0x0894 0000088d: PUSH0 0000088e: NOT 0000088f: SWAP2 00000890: PUSH2 0x0883 00000893: JUMP 00000894: JUMPDEST 00000895: SWAP2 00000896: DUP2 00000897: NOT 00000898: AND 00000899: SWAP2 0000089a: AND 0000089b: OR 0000089c: SWAP1 0000089d: JUMP 0000089e: JUMPDEST 0000089f: PUSH2 0x08b2 000008a2: PUSH2 0x08ad 000008a5: PUSH2 0x08b7 000008a8: SWAP3 000008a9: PUSH2 0x03f6 000008ac: JUMP 000008ad: JUMPDEST 000008ae: PUSH2 0x034e 000008b1: JUMP 000008b2: JUMPDEST 000008b3: PUSH2 0x03f6 000008b6: JUMP 000008b7: JUMPDEST 000008b8: SWAP1 000008b9: JUMP 000008ba: JUMPDEST 000008bb: SWAP1 000008bc: JUMP 000008bd: JUMPDEST 000008be: SWAP1 000008bf: PUSH2 0x08d2 000008c2: PUSH2 0x08cd 000008c5: PUSH2 0x08d9 000008c8: SWAP3 000008c9: PUSH2 0x089e 000008cc: JUMP 000008cd: JUMPDEST 000008ce: PUSH2 0x08ba 000008d1: JUMP 000008d2: JUMPDEST 000008d3: DUP3 000008d4: SLOAD 000008d5: PUSH2 0x0888 000008d8: JUMP 000008d9: JUMPDEST 000008da: SWAP1 000008db: SSTORE 000008dc: JUMP 000008dd: JUMPDEST 000008de: SWAP1 000008df: JUMP 000008e0: JUMPDEST 000008e1: PUSH2 0x08f4 000008e4: PUSH2 0x08ef 000008e7: PUSH2 0x08f9 000008ea: SWAP3 000008eb: PUSH2 0x08dd 000008ee: JUMP 000008ef: JUMPDEST 000008f0: PUSH2 0x034e 000008f3: JUMP 000008f4: JUMPDEST 000008f5: PUSH2 0x03f6 000008f8: JUMP 000008f9: JUMPDEST 000008fa: SWAP1 000008fb: JUMP 000008fc: JUMPDEST 000008fd: PUSH2 0x0906 00000900: PUSH1 0x01 00000902: PUSH2 0x08e0 00000905: JUMP 00000906: JUMPDEST 00000907: SWAP1 00000908: JUMP 00000909: JUMPDEST 0000090a: PUSH2 0x0912 0000090d: PUSH0 0000090e: PUSH2 0x084a 00000911: JUMP 00000912: JUMPDEST 00000913: PUSH2 0x092b 00000916: PUSH2 0x0925 00000919: PUSH2 0x0920 0000091c: PUSH2 0x0876 0000091f: JUMP 00000920: JUMPDEST 00000921: PUSH2 0x03f6 00000924: JUMP 00000925: JUMPDEST 00000926: SWAP2 00000927: PUSH2 0x03f6 0000092a: JUMP 0000092b: JUMPDEST 0000092c: EQ 0000092d: PUSH2 0x095c 00000930: JUMPI 00000931: PUSH2 0x0941 00000934: PUSH2 0x093b 00000937: PUSH2 0x0876 0000093a: JUMP 0000093b: JUMPDEST 0000093c: PUSH0 0000093d: PUSH2 0x08bd 00000940: JUMP 00000941: JUMPDEST 00000942: PUSH2 0x0949 00000945: PUSH2 0x09f1 00000948: JUMP 00000949: JUMPDEST 0000094a: PUSH2 0x095a 0000094d: PUSH2 0x0954 00000950: PUSH2 0x08fc 00000953: JUMP 00000954: JUMPDEST 00000955: PUSH0 00000956: PUSH2 0x08bd 00000959: JUMP 0000095a: JUMPDEST 0000095b: JUMP 0000095c: JUMPDEST 0000095d: PUSH0 0000095e: PUSH4 0x08605d77 00000963: PUSH1 0xe1 00000965: SHL 00000966: DUP2 00000967: MSTORE 00000968: DUP1 00000969: PUSH2 0x0974 0000096c: PUSH1 0x04 0000096e: DUP3 0000096f: ADD 00000970: PUSH2 0x00f2 00000973: JUMP 00000974: JUMPDEST 00000975: SUB 00000976: SWAP1 00000977: REVERT 00000978: JUMPDEST 00000979: SWAP1 0000097a: POP 0000097b: SWAP1 0000097c: JUMP 0000097d: JUMPDEST 0000097e: PUSH2 0x0988 00000981: PUSH0 00000982: DUP1 00000983: SWAP3 00000984: PUSH2 0x0978 00000987: JUMP 00000988: JUMPDEST 00000989: ADD 0000098a: SWAP1 0000098b: JUMP 0000098c: JUMPDEST 0000098d: PUSH2 0x0995 00000990: SWAP1 00000991: PUSH2 0x097d 00000994: JUMP 00000995: JUMPDEST 00000996: SWAP1 00000997: JUMP 00000998: JUMPDEST 00000999: PUSH0 0000099a: PUSH32 0x45544820666c7573680000000000000000000000000000000000000000000000 000009bb: SWAP2 000009bc: ADD 000009bd: MSTORE 000009be: JUMP 000009bf: JUMPDEST 000009c0: PUSH2 0x09cc 000009c3: PUSH1 0x09 000009c5: PUSH1 0x20 000009c7: SWAP3 000009c8: PUSH2 0x0591 000009cb: JUMP 000009cc: JUMPDEST 000009cd: PUSH2 0x09d5 000009d0: DUP2 000009d1: PUSH2 0x0998 000009d4: JUMP 000009d5: JUMPDEST 000009d6: ADD 000009d7: SWAP1 000009d8: JUMP 000009d9: JUMPDEST 000009da: PUSH2 0x09ee 000009dd: SWAP1 000009de: PUSH1 0x20 000009e0: DUP2 000009e1: ADD 000009e2: SWAP1 000009e3: PUSH0 000009e4: DUP2 000009e5: DUP4 000009e6: SUB 000009e7: SWAP2 000009e8: ADD 000009e9: MSTORE 000009ea: PUSH2 0x09bf 000009ed: JUMP 000009ee: JUMPDEST 000009ef: SWAP1 000009f0: JUMP 000009f1: JUMPDEST 000009f2: PUSH2 0x09fa 000009f5: ADDRESS 000009f6: PUSH2 0x039d 000009f9: JUMP 000009fa: JUMPDEST 000009fb: BALANCE 000009fc: DUP1 000009fd: PUSH2 0x0a0e 00000a00: PUSH2 0x0a08 00000a03: PUSH0 00000a04: PUSH2 0x044d 00000a07: JUMP 00000a08: JUMPDEST 00000a09: SWAP2 00000a0a: PUSH2 0x03f6 00000a0d: JUMP 00000a0e: JUMPDEST 00000a0f: EQ 00000a10: PUSH2 0x0a73 00000a13: JUMPI 00000a14: PUSH0 00000a15: DUP1 00000a16: PUSH2 0x0a4a 00000a19: SWAP3 00000a1a: PUSH2 0x0a23 00000a1d: PUSH1 0x01 00000a1f: PUSH2 0x02ce 00000a22: JUMP 00000a23: JUMPDEST 00000a24: SWAP1 00000a25: PUSH2 0x0a2c 00000a28: PUSH2 0x008c 00000a2b: JUMP 00000a2c: JUMPDEST 00000a2d: SWAP1 00000a2e: DUP2 00000a2f: PUSH2 0x0a37 00000a32: DUP2 00000a33: PUSH2 0x098c 00000a36: JUMP 00000a37: JUMPDEST 00000a38: SUB 00000a39: SWAP3 00000a3a: GAS 00000a3b: CALL 00000a3c: PUSH2 0x0a43 00000a3f: PUSH2 0x051e 00000a42: JUMP 00000a43: JUMPDEST 00000a44: POP 00000a45: ISZERO 00000a46: PUSH2 0x0547 00000a49: JUMP 00000a4a: JUMPDEST 00000a4b: PUSH2 0x0a50 00000a4e: JUMPI 00000a4f: JUMP 00000a50: JUMPDEST 00000a51: PUSH2 0x0a58 00000a54: PUSH2 0x008c 00000a57: JUMP 00000a58: JUMPDEST 00000a59: PUSH4 0x12dfddb3 00000a5e: PUSH1 0xe0 00000a60: SHL 00000a61: DUP2 00000a62: MSTORE 00000a63: DUP1 00000a64: PUSH2 0x0a6f 00000a67: PUSH1 0x04 00000a69: DUP3 00000a6a: ADD 00000a6b: PUSH2 0x09d9 00000a6e: JUMP 00000a6f: JUMPDEST 00000a70: SUB 00000a71: SWAP1 00000a72: REVERT 00000a73: JUMPDEST 00000a74: PUSH0 00000a75: PUSH4 0x1e9acf17 00000a7a: PUSH1 0xe3 00000a7c: SHL 00000a7d: DUP2 00000a7e: MSTORE 00000a7f: DUP1 00000a80: PUSH2 0x0a8b 00000a83: PUSH1 0x04 00000a85: DUP3 00000a86: ADD 00000a87: PUSH2 0x00f2 00000a8a: JUMP 00000a8b: JUMPDEST 00000a8c: SUB 00000a8d: SWAP1 00000a8e: REVERT 00000a8f: JUMPDEST 00000a90: PUSH2 0x0a97 00000a93: PUSH2 0x0909 00000a96: JUMP 00000a97: JUMPDEST 00000a98: JUMP 00000a99: JUMPDEST 00000a9a: CALLER 00000a9b: PUSH2 0x0ab5 00000a9e: PUSH2 0x0aaf 00000aa1: PUSH2 0x0aaa 00000aa4: PUSH1 0x01 00000aa6: PUSH2 0x02ce 00000aa9: JUMP 00000aaa: JUMPDEST 00000aab: PUSH2 0x00a5 00000aae: JUMP 00000aaf: JUMPDEST 00000ab0: SWAP2 00000ab1: PUSH2 0x00a5 00000ab4: JUMP 00000ab5: JUMPDEST 00000ab6: SUB 00000ab7: PUSH2 0x0ac5 00000aba: JUMPI 00000abb: PUSH2 0x0ac3 00000abe: SWAP1 00000abf: PUSH2 0x0b53 00000ac2: JUMP 00000ac3: JUMPDEST 00000ac4: JUMP 00000ac5: JUMPDEST 00000ac6: PUSH0 00000ac7: PUSH4 0xea8e4eb5 00000acc: PUSH1 0xe0 00000ace: SHL 00000acf: DUP2 00000ad0: MSTORE 00000ad1: DUP1 00000ad2: PUSH2 0x0add 00000ad5: PUSH1 0x04 00000ad7: DUP3 00000ad8: ADD 00000ad9: PUSH2 0x00f2 00000adc: JUMP 00000add: JUMPDEST 00000ade: SUB 00000adf: SWAP1 00000ae0: REVERT 00000ae1: JUMPDEST 00000ae2: PUSH2 0x0af5 00000ae5: PUSH2 0x0af0 00000ae8: PUSH2 0x0afa 00000aeb: SWAP3 00000aec: PUSH2 0x044a 00000aef: JUMP 00000af0: JUMPDEST 00000af1: PUSH2 0x034e 00000af4: JUMP 00000af5: JUMPDEST 00000af6: PUSH2 0x009a 00000af9: JUMP 00000afa: JUMPDEST 00000afb: SWAP1 00000afc: JUMP 00000afd: JUMPDEST 00000afe: PUSH2 0x0b06 00000b01: SWAP1 00000b02: PUSH2 0x0ae1 00000b05: JUMP 00000b06: JUMPDEST 00000b07: SWAP1 00000b08: JUMP 00000b09: JUMPDEST 00000b0a: SWAP1 00000b0b: PUSH2 0x0b1a 00000b0e: PUSH1 0x01 00000b10: DUP1 00000b11: PUSH1 0xa0 00000b13: SHL 00000b14: SUB 00000b15: SWAP2 00000b16: PUSH2 0x0883 00000b19: JUMP 00000b1a: JUMPDEST 00000b1b: SWAP2 00000b1c: DUP2 00000b1d: NOT 00000b1e: AND 00000b1f: SWAP2 00000b20: AND 00000b21: OR 00000b22: SWAP1 00000b23: JUMP 00000b24: JUMPDEST 00000b25: PUSH2 0x0b2d 00000b28: SWAP1 00000b29: PUSH2 0x0385 00000b2c: JUMP 00000b2d: JUMPDEST 00000b2e: SWAP1 00000b2f: JUMP 00000b30: JUMPDEST 00000b31: SWAP1 00000b32: JUMP 00000b33: JUMPDEST 00000b34: SWAP1 00000b35: PUSH2 0x0b48 00000b38: PUSH2 0x0b43 00000b3b: PUSH2 0x0b4f 00000b3e: SWAP3 00000b3f: PUSH2 0x0b24 00000b42: JUMP 00000b43: JUMPDEST 00000b44: PUSH2 0x0b30 00000b47: JUMP 00000b48: JUMPDEST 00000b49: DUP3 00000b4a: SLOAD 00000b4b: PUSH2 0x0b09 00000b4e: JUMP 00000b4f: JUMPDEST 00000b50: SWAP1 00000b51: SSTORE 00000b52: JUMP 00000b53: JUMPDEST 00000b54: DUP1 00000b55: PUSH2 0x0b6e 00000b58: PUSH2 0x0b68 00000b5b: PUSH2 0x0b63 00000b5e: PUSH0 00000b5f: PUSH2 0x0afd 00000b62: JUMP 00000b63: JUMPDEST 00000b64: PUSH2 0x00a5 00000b67: JUMP 00000b68: JUMPDEST 00000b69: SWAP2 00000b6a: PUSH2 0x00a5 00000b6d: JUMP 00000b6e: JUMPDEST 00000b6f: EQ 00000b70: PUSH2 0x0c11 00000b73: JUMPI 00000b74: DUP1 00000b75: PUSH2 0x0b8f 00000b78: PUSH2 0x0b89 00000b7b: PUSH2 0x0b84 00000b7e: PUSH1 0x02 00000b80: PUSH2 0x02ce 00000b83: JUMP 00000b84: JUMPDEST 00000b85: PUSH2 0x00a5 00000b88: JUMP 00000b89: JUMPDEST 00000b8a: SWAP2 00000b8b: PUSH2 0x00a5 00000b8e: JUMP 00000b8f: JUMPDEST 00000b90: EQ 00000b91: PUSH2 0x0bf5 00000b94: JUMPI 00000b95: PUSH2 0x0b9e 00000b98: PUSH1 0x02 00000b9a: PUSH2 0x02ce 00000b9d: JUMP 00000b9e: JUMPDEST 00000b9f: PUSH2 0x0ba9 00000ba2: DUP3 00000ba3: PUSH1 0x02 00000ba5: PUSH2 0x0b33 00000ba8: JUMP 00000ba9: JUMPDEST 00000baa: SWAP1 00000bab: PUSH2 0x0bdd 00000bae: PUSH2 0x0bd7 00000bb1: PUSH32 0x625c25044c8d718e4765e900b5b31f518b0933e15f7738b5739377fdb3153805 00000bd2: SWAP4 00000bd3: PUSH2 0x0b24 00000bd6: JUMP 00000bd7: JUMPDEST 00000bd8: SWAP2 00000bd9: PUSH2 0x0b24 00000bdc: JUMP 00000bdd: JUMPDEST 00000bde: SWAP2 00000bdf: PUSH2 0x0be6 00000be2: PUSH2 0x008c 00000be5: JUMP 00000be6: JUMPDEST 00000be7: DUP1 00000be8: PUSH2 0x0bf0 00000beb: DUP2 00000bec: PUSH2 0x00f2 00000bef: JUMP 00000bf0: JUMPDEST 00000bf1: SUB 00000bf2: SWAP1 00000bf3: LOG3 00000bf4: JUMP 00000bf5: JUMPDEST 00000bf6: PUSH0 00000bf7: PUSH4 0x1c8cd0c7 00000bfc: PUSH1 0xe2 00000bfe: SHL 00000bff: DUP2 00000c00: MSTORE 00000c01: DUP1 00000c02: PUSH2 0x0c0d 00000c05: PUSH1 0x04 00000c07: DUP3 00000c08: ADD 00000c09: PUSH2 0x00f2 00000c0c: JUMP 00000c0d: JUMPDEST 00000c0e: SUB 00000c0f: SWAP1 00000c10: REVERT 00000c11: JUMPDEST 00000c12: PUSH0 00000c13: PUSH4 0x20278ad7 00000c18: PUSH1 0xe0 00000c1a: SHL 00000c1b: DUP2 00000c1c: MSTORE 00000c1d: DUP1 00000c1e: PUSH2 0x0c29 00000c21: PUSH1 0x04 00000c23: DUP3 00000c24: ADD 00000c25: PUSH2 0x00f2 00000c28: JUMP 00000c29: JUMPDEST 00000c2a: SUB 00000c2b: SWAP1 00000c2c: REVERT 00000c2d: JUMPDEST 00000c2e: PUSH2 0x0c36 00000c31: SWAP1 00000c32: PUSH2 0x0a99 00000c35: JUMP 00000c36: JUMPDEST 00000c37: JUMP 00000c38: JUMPDEST 00000c39: CALLER 00000c3a: PUSH2 0x0c54 00000c3d: PUSH2 0x0c4e 00000c40: PUSH2 0x0c49 00000c43: PUSH1 0x01 00000c45: PUSH2 0x02ce 00000c48: JUMP 00000c49: JUMPDEST 00000c4a: PUSH2 0x00a5 00000c4d: JUMP 00000c4e: JUMPDEST 00000c4f: SWAP2 00000c50: PUSH2 0x00a5 00000c53: JUMP 00000c54: JUMPDEST 00000c55: SUB 00000c56: PUSH2 0x0c64 00000c59: JUMPI 00000c5a: PUSH2 0x0c62 00000c5d: SWAP1 00000c5e: PUSH2 0x0c80 00000c61: JUMP 00000c62: JUMPDEST 00000c63: JUMP 00000c64: JUMPDEST 00000c65: PUSH0 00000c66: PUSH4 0xea8e4eb5 00000c6b: PUSH1 0xe0 00000c6d: SHL 00000c6e: DUP2 00000c6f: MSTORE 00000c70: DUP1 00000c71: PUSH2 0x0c7c 00000c74: PUSH1 0x04 00000c76: DUP3 00000c77: ADD 00000c78: PUSH2 0x00f2 00000c7b: JUMP 00000c7c: JUMPDEST 00000c7d: SUB 00000c7e: SWAP1 00000c7f: REVERT 00000c80: JUMPDEST 00000c81: DUP1 00000c82: PUSH2 0x0c9b 00000c85: PUSH2 0x0c95 00000c88: PUSH2 0x0c90 00000c8b: PUSH0 00000c8c: PUSH2 0x0afd 00000c8f: JUMP 00000c90: JUMPDEST 00000c91: PUSH2 0x00a5 00000c94: JUMP 00000c95: JUMPDEST 00000c96: SWAP2 00000c97: PUSH2 0x00a5 00000c9a: JUMP 00000c9b: JUMPDEST 00000c9c: EQ 00000c9d: PUSH2 0x0d3e 00000ca0: JUMPI 00000ca1: DUP1 00000ca2: PUSH2 0x0cbc 00000ca5: PUSH2 0x0cb6 00000ca8: PUSH2 0x0cb1 00000cab: PUSH1 0x01 00000cad: PUSH2 0x02ce 00000cb0: JUMP 00000cb1: JUMPDEST 00000cb2: PUSH2 0x00a5 00000cb5: JUMP 00000cb6: JUMPDEST 00000cb7: SWAP2 00000cb8: PUSH2 0x00a5 00000cbb: JUMP 00000cbc: JUMPDEST 00000cbd: EQ 00000cbe: PUSH2 0x0d22 00000cc1: JUMPI 00000cc2: PUSH2 0x0ccb 00000cc5: PUSH1 0x01 00000cc7: PUSH2 0x02ce 00000cca: JUMP 00000ccb: JUMPDEST 00000ccc: PUSH2 0x0cd6 00000ccf: DUP3 00000cd0: PUSH1 0x01 00000cd2: PUSH2 0x0b33 00000cd5: JUMP 00000cd6: JUMPDEST 00000cd7: SWAP1 00000cd8: PUSH2 0x0d0a 00000cdb: PUSH2 0x0d04 00000cde: PUSH32 0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c 00000cff: SWAP4 00000d00: PUSH2 0x0b24 00000d03: JUMP 00000d04: JUMPDEST 00000d05: SWAP2 00000d06: PUSH2 0x0b24 00000d09: JUMP 00000d0a: JUMPDEST 00000d0b: SWAP2 00000d0c: PUSH2 0x0d13 00000d0f: PUSH2 0x008c 00000d12: JUMP 00000d13: JUMPDEST 00000d14: DUP1 00000d15: PUSH2 0x0d1d 00000d18: DUP2 00000d19: PUSH2 0x00f2 00000d1c: JUMP 00000d1d: JUMPDEST 00000d1e: SUB 00000d1f: SWAP1 00000d20: LOG3 00000d21: JUMP 00000d22: JUMPDEST 00000d23: PUSH0 00000d24: PUSH4 0x1c8cd0c7 00000d29: PUSH1 0xe2 00000d2b: SHL 00000d2c: DUP2 00000d2d: MSTORE 00000d2e: DUP1 00000d2f: PUSH2 0x0d3a 00000d32: PUSH1 0x04 00000d34: DUP3 00000d35: ADD 00000d36: PUSH2 0x00f2 00000d39: JUMP 00000d3a: JUMPDEST 00000d3b: SUB 00000d3c: SWAP1 00000d3d: REVERT 00000d3e: JUMPDEST 00000d3f: PUSH0 00000d40: PUSH4 0x49e27cff 00000d45: PUSH1 0xe0 00000d47: SHL 00000d48: DUP2 00000d49: MSTORE 00000d4a: DUP1 00000d4b: PUSH2 0x0d56 00000d4e: PUSH1 0x04 00000d50: DUP3 00000d51: ADD 00000d52: PUSH2 0x00f2 00000d55: JUMP 00000d56: JUMPDEST 00000d57: SUB 00000d58: SWAP1 00000d59: REVERT 00000d5a: JUMPDEST 00000d5b: PUSH2 0x0d63 00000d5e: SWAP1 00000d5f: PUSH2 0x0c38 00000d62: JUMP 00000d63: JUMPDEST 00000d64: JUMP 00000d65: JUMPDEST 00000d66: PUSH2 0x0d6e 00000d69: PUSH0 00000d6a: PUSH2 0x084a 00000d6d: JUMP 00000d6e: JUMPDEST 00000d6f: PUSH2 0x0d87 00000d72: PUSH2 0x0d81 00000d75: PUSH2 0x0d7c 00000d78: PUSH2 0x0876 00000d7b: JUMP 00000d7c: JUMPDEST 00000d7d: PUSH2 0x03f6 00000d80: JUMP 00000d81: JUMPDEST 00000d82: SWAP2 00000d83: PUSH2 0x03f6 00000d86: JUMP 00000d87: JUMPDEST 00000d88: EQ 00000d89: PUSH2 0x0db8 00000d8c: JUMPI 00000d8d: PUSH2 0x0d9d 00000d90: PUSH2 0x0d97 00000d93: PUSH2 0x0876 00000d96: JUMP 00000d97: JUMPDEST 00000d98: PUSH0 00000d99: PUSH2 0x08bd 00000d9c: JUMP 00000d9d: JUMPDEST 00000d9e: PUSH2 0x0da5 00000da1: PUSH2 0x0e42 00000da4: JUMP 00000da5: JUMPDEST 00000da6: PUSH2 0x0db6 00000da9: PUSH2 0x0db0 00000dac: PUSH2 0x08fc 00000daf: JUMP 00000db0: JUMPDEST 00000db1: PUSH0 00000db2: PUSH2 0x08bd 00000db5: JUMP 00000db6: JUMPDEST 00000db7: JUMP 00000db8: JUMPDEST 00000db9: PUSH0 00000dba: PUSH4 0x08605d77 00000dbf: PUSH1 0xe1 00000dc1: SHL 00000dc2: DUP2 00000dc3: MSTORE 00000dc4: DUP1 00000dc5: PUSH2 0x0dd0 00000dc8: PUSH1 0x04 00000dca: DUP3 00000dcb: ADD 00000dcc: PUSH2 0x00f2 00000dcf: JUMP 00000dd0: JUMPDEST 00000dd1: SUB 00000dd2: SWAP1 00000dd3: REVERT 00000dd4: JUMPDEST 00000dd5: PUSH0 00000dd6: PUSH32 0x45544820666f7277617264000000000000000000000000000000000000000000 00000df7: SWAP2 00000df8: ADD 00000df9: MSTORE 00000dfa: JUMP 00000dfb: JUMPDEST 00000dfc: PUSH2 0x0e08 00000dff: PUSH1 0x0b 00000e01: PUSH1 0x20 00000e03: SWAP3 00000e04: PUSH2 0x0591 00000e07: JUMP 00000e08: JUMPDEST 00000e09: PUSH2 0x0e11 00000e0c: DUP2 00000e0d: PUSH2 0x0dd4 00000e10: JUMP 00000e11: JUMPDEST 00000e12: ADD 00000e13: SWAP1 00000e14: JUMP 00000e15: JUMPDEST 00000e16: PUSH2 0x0e2a 00000e19: SWAP1 00000e1a: PUSH1 0x20 00000e1c: DUP2 00000e1d: ADD 00000e1e: SWAP1 00000e1f: PUSH0 00000e20: DUP2 00000e21: DUP4 00000e22: SUB 00000e23: SWAP2 00000e24: ADD 00000e25: MSTORE 00000e26: PUSH2 0x0dfb 00000e29: JUMP 00000e2a: JUMPDEST 00000e2b: SWAP1 00000e2c: JUMP 00000e2d: JUMPDEST 00000e2e: SWAP2 00000e2f: SWAP1 00000e30: PUSH2 0x0e40 00000e33: SWAP1 00000e34: PUSH0 00000e35: PUSH1 0x20 00000e37: DUP6 00000e38: ADD 00000e39: SWAP5 00000e3a: ADD 00000e3b: SWAP1 00000e3c: PUSH2 0x049a 00000e3f: JUMP 00000e40: JUMPDEST 00000e41: JUMP 00000e42: JUMPDEST 00000e43: PUSH2 0x0e78 00000e46: PUSH0 00000e47: DUP1 00000e48: PUSH2 0x0e51 00000e4b: PUSH1 0x01 00000e4d: PUSH2 0x02ce 00000e50: JUMP 00000e51: JUMPDEST 00000e52: CALLVALUE 00000e53: PUSH2 0x0e5a 00000e56: PUSH2 0x008c 00000e59: JUMP 00000e5a: JUMPDEST 00000e5b: SWAP1 00000e5c: DUP2 00000e5d: PUSH2 0x0e65 00000e60: DUP2 00000e61: PUSH2 0x098c 00000e64: JUMP 00000e65: JUMPDEST 00000e66: SUB 00000e67: SWAP3 00000e68: GAS 00000e69: CALL 00000e6a: PUSH2 0x0e71 00000e6d: PUSH2 0x051e 00000e70: JUMP 00000e71: JUMPDEST 00000e72: POP 00000e73: ISZERO 00000e74: PUSH2 0x0547 00000e77: JUMP 00000e78: JUMPDEST 00000e79: PUSH2 0x0ee9 00000e7c: JUMPI 00000e7d: CALLER 00000e7e: PUSH2 0x0e86 00000e81: ADDRESS 00000e82: PUSH2 0x039d 00000e85: JUMP 00000e86: JUMPDEST 00000e87: PUSH2 0x0e90 00000e8a: PUSH1 0x01 00000e8c: PUSH2 0x02ce 00000e8f: JUMP 00000e90: JUMPDEST 00000e91: SWAP1 00000e92: CALLVALUE 00000e93: SWAP3 00000e94: PUSH2 0x0ee4 00000e97: PUSH2 0x0ed2 00000e9a: PUSH2 0x0ecc 00000e9d: PUSH2 0x0ec6 00000ea0: PUSH32 0x518f6e264ff4f299a58c6e1e9de5a14fac95f0f289b919a1e2cd628d9b6fbde0 00000ec1: SWAP5 00000ec2: PUSH2 0x0b24 00000ec5: JUMP 00000ec6: JUMPDEST 00000ec7: SWAP5 00000ec8: PUSH2 0x0b24 00000ecb: JUMP 00000ecc: JUMPDEST 00000ecd: SWAP5 00000ece: PUSH2 0x0b24 00000ed1: JUMP 00000ed2: JUMPDEST 00000ed3: SWAP5 00000ed4: PUSH2 0x0edb 00000ed7: PUSH2 0x008c 00000eda: JUMP 00000edb: JUMPDEST 00000edc: SWAP2 00000edd: DUP3 00000ede: SWAP2 00000edf: DUP3 00000ee0: PUSH2 0x0e2d 00000ee3: JUMP 00000ee4: JUMPDEST 00000ee5: SUB 00000ee6: SWAP1 00000ee7: LOG4 00000ee8: JUMP 00000ee9: JUMPDEST 00000eea: PUSH2 0x0ef1 00000eed: PUSH2 0x008c 00000ef0: JUMP 00000ef1: JUMPDEST 00000ef2: PUSH4 0x12dfddb3 00000ef7: PUSH1 0xe0 00000ef9: SHL 00000efa: DUP2 00000efb: MSTORE 00000efc: DUP1 00000efd: PUSH2 0x0f08 00000f00: PUSH1 0x04 00000f02: DUP3 00000f03: ADD 00000f04: PUSH2 0x0e15 00000f07: JUMP 00000f08: JUMPDEST 00000f09: SUB 00000f0a: SWAP1 00000f0b: REVERT 00000f0c: JUMPDEST 00000f0d: PUSH2 0x0f14 00000f10: PUSH2 0x0d65 00000f13: JUMP 00000f14: JUMPDEST 00000f15: JUMP 00000f16: INVALID 00000f17: LOG2 00000f18: PUSH5 0x6970667358 00000f1e: UNKNOWN(0x22) 00000f1f: SLT 00000f20: KECCAK256 00000f21: CALLVALUE 00000f22: UNKNOWN(0x0D) 00000f23: UNKNOWN(0xEA) 00000f24: UNKNOWN(0xAA) 00000f25: SWAP16 00000f26: UNKNOWN(0xD4) 00000f27: UNKNOWN(0xE9) 00000f28: UNKNOWN(0xD9) 00000f29: UNKNOWN(0xE2) 00000f2a: CALLDATASIZE 00000f2b: SWAP16 00000f2c: POP 00000f2d: UNKNOWN(0x0E) 00000f2e: UNKNOWN(0xE1) 00000f2f: UNKNOWN(0xF8) 00000f30: DELEGATECALL 00000f31: BLOCKHASH 00000f32: UNKNOWN(0x2C) 00000f33: PUSH21 0x36d2bc7766372c97f8983bf87264736f6c63430008 00000f49: SHR 00000f4a: STOP 00000f4b: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x2ebbb82d6afb1383c457dba89257f8949cf05958113b5be3e453e2a4daaea98e
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 60,
"trace_id": "0x2ebbb82d6afb1383c457dba89257f8949cf05958113b5be3e453e2a4daaea98e",
"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": "0x3ef13367",
"selector": "0x3ef13367",
"calldata_variants": [
"0x3ef13367",
"0x3ef133670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6b9f96ea",
"selector": "0x6b9f96ea",
"calldata_variants": [
"0x6b9f96ea",
"0x6b9f96ea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8f84aa09",
"selector": "0x8f84aa09",
"calldata_variants": [
"0x8f84aa09",
"0x8f84aa090000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x96a4154e",
"selector": "0x96a4154e",
"calldata_variants": [
"0x96a4154e",
"0x96a4154e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa6f9dae1",
"selector": "0xa6f9dae1",
"calldata_variants": [
"0xa6f9dae1",
"0xa6f9dae10000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3888,
"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: 0x2804fb6b34b246ce83e19069ab4669a589305d991ec1a910166089a74c756989
call_targets:
0x074d871b9fe90b6f7ec4f923260748e422d68af7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2804fb6b34b246ce83e19069ab4669a589305d991ec1a910166089a74c756989",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x074d871b9fe90b6f7ec4f923260748e422d68af7"
],
"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": "0x3ef13367",
"selector": "0x3ef13367",
"calldata_variants": [
"0x3ef13367",
"0x3ef133670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6b9f96ea",
"selector": "0x6b9f96ea",
"calldata_variants": [
"0x6b9f96ea",
"0x6b9f96ea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8f84aa09",
"selector": "0x8f84aa09",
"calldata_variants": [
"0x8f84aa09",
"0x8f84aa090000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x96a4154e",
"selector": "0x96a4154e",
"calldata_variants": [
"0x96a4154e",
"0x96a4154e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa6f9dae1",
"selector": "0xa6f9dae1",
"calldata_variants": [
"0xa6f9dae1",
"0xa6f9dae10000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1784,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2619,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3689,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x2804fb6b34b246ce83e19069ab4669a589305d991ec1a910166089a74c756989
call_targets:
0x074d871b9fe90b6f7ec4f923260748e422d68af7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2804fb6b34b246ce83e19069ab4669a589305d991ec1a910166089a74c756989",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x074d871b9fe90b6f7ec4f923260748e422d68af7"
],
"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": "0x3ef13367",
"selector": "0x3ef13367",
"calldata_variants": [
"0x3ef13367",
"0x3ef133670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6b9f96ea",
"selector": "0x6b9f96ea",
"calldata_variants": [
"0x6b9f96ea",
"0x6b9f96ea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8f84aa09",
"selector": "0x8f84aa09",
"calldata_variants": [
"0x8f84aa09",
"0x8f84aa090000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x96a4154e",
"selector": "0x96a4154e",
"calldata_variants": [
"0x96a4154e",
"0x96a4154e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa6f9dae1",
"selector": "0xa6f9dae1",
"calldata_variants": [
"0xa6f9dae1",
"0xa6f9dae10000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1784,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2619,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3689,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"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
}
|