019be3d6-81e1-73bd-9b15-a6f6a2c49776
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 |
|---|---|---|---|---|
| 40547 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 40548 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 40549 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 40550 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 40551 | capability.graph | complete | 1 / 3 | 2 months ago |
| 40552 | detector.run | complete | 1 / 3 | 2 months ago |
| 40553 | validation.fork | complete | 1 / 3 | 2 months ago |
| 41229 | report.consolidate | complete | 1 / 6 | 2 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Runtime bytecode shows all exposed selectors delegatecall into a single hardcoded target (0x6683ab42aacec410d74ee1801bb89b39b6aeefbe) with no detected auth guards; this creates trust/upgradeability risk if that target can change code.","findings":[{"severity":"medium","category":"upgradeability","title":"Delegatecall to fixed external target makes logic mutable if the target is upgradeable or replaceable","exploit_scenario":"This contract delegates every function to 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe. If that address is a proxy, can be upgraded, or can be redeployed via SELFDESTRUCT/CREATE2, an attacker controlling that target (or its admin) can introduce malicious logic. Any user calling this contract would then execute attacker code in this contract’s storage context, enabling storage corruption, asset draining, or even selfdestruct of this contract. Uncertainty: selector inference and proxy detection are best‑effort from bytecode only.","recommendation":"If immutability is intended, avoid DELEGATECALL and use direct calls, or enforce the target’s immutability (e.g., verify the target is non-upgradeable and cannot be redeployed). Consider adding an EXTCODEHASH check against a known hash before delegatecall. If upgradeability is intended, adopt a standard proxy pattern (e.g., EIP‑1967) with explicit admin/access control and upgrade events.","evidence":"BYTECODE_BUNDLE.json shows 11 DELEGATECALL sites with a constant target 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe (runtime bytecode PUSH20 … DELEGATECALL) and detector finding “Untrusted DELEGATECALL target reachable.” No auth guards detected; storage slot usage centers on slot 0x13 (likely a reentrancy flag) rather than an implementation slot.","locations":["pc:345","pc:1122","pc:1257","pc:1466","pc:1614","pc:1812","pc:1933","pc:2098","pc:2208","pc:2409","pc:3008"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-3uoggb9b
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be3dd-3973-7cd1-95c3-25b9a3555700
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-3uoggb9b succeeded in 7ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-3uoggb9b succeeded in 9ms:
{
"analysis_artifact": {
"address": "0xc728a64af23f8e14edf7aa138c8650b3c6d31d57",
"artifact_hash": "0x510d8639cfc23a3926216a3de7634e4a36a8e84cef9c810dd4cea70e7368a5f2",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0x3fd0931de1db5e239099371326be3152d2c67b610e8ed3caaf844eee83d1610c",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATASIZE",
"LT",
"PUSH2",
thinking
**Analyzing proxy detection inconsistencies**
The contract shows many delegatecalls suggesting a proxy with multiple entrypoints, but analysis results conflict—some data implies constant delegatecall targets while detector flags untrusted calls. Next, I will parse the detailed JSON evidence for storage slots or call targets to clarify this discrepancy.
exec
/bin/bash -lc 'rg -n "storage|slot|evidence|proxy|implementation|delegatecall|guard" BYTECODE_BUNDLE.json' in /tmp/codex-3uoggb9b succeeded in 19ms:
7: "guards": []
4481: "guards": []
4487: "delegatecall": 11,
4491: "storage": {
4493: "slots": [
4497: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4502: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4507: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4512: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4517: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4522: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4530: "guards": []
4536: "delegatecall": 11,
4540: "storage": {
4542: "slots": [
4546: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4551: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4556: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4561: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
4566: "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
thinking
**Planning extraction of storage and proxy sections**
exec
/bin/bash -lc "sed -n '4470,5635p' BYTECODE_BUNDLE.json" in /tmp/codex-3uoggb9b succeeded in 7ms:
"entry_pc": 4294858914,
"selector": "0xf91c7ca3"
},
{
"entry_pc": 5.85253375131612e+47,
"selector": "0xfffe58a2"
}
],
"functions": [
{
"auth": {
"guards": []
},
"entry_pc": null,
"selector": "0x0be479e1",
"sinks": {
"call": 0,
"delegatecall": 11,
"selfdestruct": 0,
"staticcall": 0
thinking
**Analyzing proxy pattern with delegatecall**
This contract acts as a fixed-address proxy, using delegatecall to a hardcoded target with a reentrancy guard stored at slot 0x13; it lacks standard upgradeability storage, indicating a non-upgradeable immutable proxy design.
thinking
**Detailing delegatecall risks and findings**
The contract delegates all calls via delegatecall to a hardcoded external address without internal auth guards, posing a medium-severity upgradeability risk if that target is replaceable or upgradeable; evidence includes 11 delegatecall sites and use of slot 0x13 as a reentrancy guard.
codex
{"no_findings":false,"summary":"Runtime bytecode shows all exposed selectors delegatecall into a single hardcoded target (0x6683ab42aacec410d74ee1801bb89b39b6aeefbe) with no detected auth guards; this creates trust/upgradeability risk if that target can change code.","findings":[{"severity":"medium","category":"upgradeability","title":"Delegatecall to fixed external target makes logic mutable if the target is upgradeable or replaceable","exploit_scenario":"This contract delegates every function to 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe. If that address is a proxy, can be upgraded, or can be redeployed via SELFDESTRUCT/CREATE2, an attacker controlling that target (or its admin) can introduce malicious logic. Any user calling this contract would then execute attacker code in this contract’s storage context, enabling storage corruption, asset draining, or even selfdestruct of this contract. Uncertainty: selector inference and proxy detection are best‑effort from bytecode only.","recommendation":"If immutability is intended, avoid DELEGATECALL and use direct calls, or enforce the target’s immutability (e.g., verify the target is non-upgradeable and cannot be redeployed). Consider adding an EXTCODEHASH check against a known hash before delegatecall. If upgradeability is intended, adopt a standard proxy pattern (e.g., EIP‑1967) with explicit admin/access control and upgrade events.","evidence":"BYTECODE_BUNDLE.json shows 11 DELEGATECALL sites with a constant target 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe (runtime bytecode PUSH20 … DELEGATECALL) and detector finding “Untrusted DELEGATECALL target reachable.” No auth guards detected; storage slot usage centers on slot 0x13 (likely a reentrancy flag) rather than an implementation slot.","locations":["pc:345","pc:1122","pc:1257","pc:1466","pc:1614","pc:1812","pc:1933","pc:2098","pc:2208","pc:2409","pc:3008"]}]}
tokens used
41,082
{
"codex": {
"ran_at": "2026-01-22T04:02:49.739222+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 7358,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Runtime bytecode shows all exposed selectors delegatecall into a single hardcoded target (0x6683ab42aacec410d74ee1801bb89b39b6aeefbe) with no detected auth guards; this creates trust/upgradeability risk if that target can change code.",
"raw_final": {
"summary": "Runtime bytecode shows all exposed selectors delegatecall into a single hardcoded target (0x6683ab42aacec410d74ee1801bb89b39b6aeefbe) with no detected auth guards; this creates trust/upgradeability risk if that target can change code.",
"findings": [
{
"title": "Delegatecall to fixed external target makes logic mutable if the target is upgradeable or replaceable",
"category": "upgradeability",
"evidence": "BYTECODE_BUNDLE.json shows 11 DELEGATECALL sites with a constant target 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe (runtime bytecode PUSH20 \u2026 DELEGATECALL) and detector finding \u201cUntrusted DELEGATECALL target reachable.\u201d No auth guards detected; storage slot usage centers on slot 0x13 (likely a reentrancy flag) rather than an implementation slot.",
"severity": "medium",
"locations": [
"pc:345",
"pc:1122",
"pc:1257",
"pc:1466",
"pc:1614",
"pc:1812",
"pc:1933",
"pc:2098",
"pc:2208",
"pc:2409",
"pc:3008"
],
"recommendation": "If immutability is intended, avoid DELEGATECALL and use direct calls, or enforce the target\u2019s immutability (e.g., verify the target is non-upgradeable and cannot be redeployed). Consider adding an EXTCODEHASH check against a known hash before delegatecall. If upgradeability is intended, adopt a standard proxy pattern (e.g., EIP\u20111967) with explicit admin/access control and upgrade events.",
"exploit_scenario": "This contract delegates every function to 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe. If that address is a proxy, can be upgraded, or can be redeployed via SELFDESTRUCT/CREATE2, an attacker controlling that target (or its admin) can introduce malicious logic. Any user calling this contract would then execute attacker code in this contract\u2019s storage context, enabling storage corruption, asset draining, or even selfdestruct of this contract. Uncertainty: selector inference and proxy detection are best\u2011effort from bytecode only."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0103 0000000c: JUMPI 0000000d: PUSH4 0xffffffff 00000012: PUSH1 0xe0 00000014: PUSH1 0x02 00000016: EXP 00000017: PUSH1 0x00 00000019: CALLDATALOAD 0000001a: DIV 0000001b: AND 0000001c: PUSH4 0x0be479e1 00000021: DUP2 00000022: EQ 00000023: PUSH2 0x0169 00000026: JUMPI 00000027: DUP1 00000028: PUSH4 0x14614af9 0000002d: EQ 0000002e: PUSH2 0x017e 00000031: JUMPI 00000032: DUP1 00000033: PUSH4 0x17f708fb 00000038: EQ 00000039: PUSH2 0x019c 0000003c: JUMPI 0000003d: DUP1 0000003e: PUSH4 0x19f363bc 00000043: EQ 00000044: PUSH2 0x01af 00000047: JUMPI 00000048: DUP1 00000049: PUSH4 0x2b55b792 0000004e: EQ 0000004f: PUSH2 0x01c6 00000052: JUMPI 00000053: DUP1 00000054: PUSH4 0x2d923501 00000059: EQ 0000005a: PUSH2 0x01e5 0000005d: JUMPI 0000005e: DUP1 0000005f: PUSH4 0x2e1a7d4d 00000064: EQ 00000065: PUSH2 0x0210 00000068: JUMPI 00000069: DUP1 0000006a: PUSH4 0x4d5a8e10 0000006f: EQ 00000070: PUSH2 0x0226 00000073: JUMPI 00000074: DUP1 00000075: PUSH4 0x54fd4d50 0000007a: EQ 0000007b: PUSH2 0x0255 0000007e: JUMPI 0000007f: DUP1 00000080: PUSH4 0x7c422f1d 00000085: EQ 00000086: PUSH2 0x028c 00000089: JUMPI 0000008a: DUP1 0000008b: PUSH4 0x853828b6 00000090: EQ 00000091: PUSH2 0x02bf 00000094: JUMPI 00000095: DUP1 00000096: PUSH4 0x89fb8a48 0000009b: EQ 0000009c: PUSH2 0x02d2 0000009f: JUMPI 000000a0: DUP1 000000a1: PUSH4 0x9aae82c1 000000a6: EQ 000000a7: PUSH2 0x02e8 000000aa: JUMPI 000000ab: DUP1 000000ac: PUSH4 0xa9cc4718 000000b1: EQ 000000b2: PUSH2 0x0307 000000b5: JUMPI 000000b6: DUP1 000000b7: PUSH4 0xc0ee0b8a 000000bc: EQ 000000bd: PUSH2 0x031a 000000c0: JUMPI 000000c1: DUP1 000000c2: PUSH4 0xc2fbe7bc 000000c7: EQ 000000c8: PUSH2 0x0349 000000cb: JUMPI 000000cc: DUP1 000000cd: PUSH4 0xd0e30db0 000000d2: EQ 000000d3: PUSH2 0x036e 000000d6: JUMPI 000000d7: DUP1 000000d8: PUSH4 0xd3c4c4d0 000000dd: EQ 000000de: PUSH2 0x0376 000000e1: JUMPI 000000e2: DUP1 000000e3: PUSH4 0xdef86cbb 000000e8: EQ 000000e9: PUSH2 0x03a0 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0xf91c7ca3 000000f3: EQ 000000f4: PUSH2 0x03ca 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0xfffe58a2 000000fe: EQ 000000ff: PUSH2 0x03ee 00000102: JUMPI 00000103: JUMPDEST 00000104: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000119: PUSH4 0x6c2802e8 0000011e: PUSH1 0x00 00000120: PUSH1 0x40 00000122: MLOAD 00000123: PUSH1 0xe0 00000125: PUSH1 0x02 00000127: EXP 00000128: PUSH4 0xffffffff 0000012d: DUP5 0000012e: AND 0000012f: MUL 00000130: DUP2 00000131: MSTORE 00000132: PUSH1 0x04 00000134: DUP2 00000135: ADD 00000136: SWAP2 00000137: SWAP1 00000138: SWAP2 00000139: MSTORE 0000013a: PUSH1 0x24 0000013c: ADD 0000013d: PUSH1 0x00 0000013f: PUSH1 0x40 00000141: MLOAD 00000142: DUP1 00000143: DUP4 00000144: SUB 00000145: DUP2 00000146: DUP7 00000147: DUP1 00000148: EXTCODESIZE 00000149: ISZERO 0000014a: ISZERO 0000014b: PUSH2 0x0153 0000014e: JUMPI 0000014f: PUSH1 0x00 00000151: DUP1 00000152: REVERT 00000153: JUMPDEST 00000154: PUSH2 0x02c6 00000157: GAS 00000158: SUB 00000159: DELEGATECALL 0000015a: ISZERO 0000015b: ISZERO 0000015c: PUSH2 0x0164 0000015f: JUMPI 00000160: PUSH1 0x00 00000162: DUP1 00000163: REVERT 00000164: JUMPDEST 00000165: POP 00000166: POP 00000167: POP 00000168: STOP 00000169: JUMPDEST 0000016a: CALLVALUE 0000016b: ISZERO 0000016c: PUSH2 0x0174 0000016f: JUMPI 00000170: PUSH1 0x00 00000172: DUP1 00000173: REVERT 00000174: JUMPDEST 00000175: PUSH2 0x017c 00000178: PUSH2 0x040c 0000017b: JUMP 0000017c: JUMPDEST 0000017d: STOP 0000017e: JUMPDEST 0000017f: PUSH2 0x017c 00000182: PUSH1 0x01 00000184: PUSH1 0xa0 00000186: PUSH1 0x02 00000188: EXP 00000189: SUB 0000018a: PUSH1 0x04 0000018c: CALLDATALOAD 0000018d: DUP2 0000018e: AND 0000018f: SWAP1 00000190: PUSH1 0x24 00000192: CALLDATALOAD 00000193: SWAP1 00000194: PUSH1 0x44 00000196: CALLDATALOAD 00000197: AND 00000198: PUSH2 0x0472 0000019b: JUMP 0000019c: JUMPDEST 0000019d: CALLVALUE 0000019e: ISZERO 0000019f: PUSH2 0x01a7 000001a2: JUMPI 000001a3: PUSH1 0x00 000001a5: DUP1 000001a6: REVERT 000001a7: JUMPDEST 000001a8: PUSH2 0x017c 000001ab: PUSH2 0x04fc 000001ae: JUMP 000001af: JUMPDEST 000001b0: PUSH2 0x017c 000001b3: PUSH1 0x04 000001b5: CALLDATALOAD 000001b6: PUSH1 0x01 000001b8: PUSH1 0xa0 000001ba: PUSH1 0x02 000001bc: EXP 000001bd: SUB 000001be: PUSH1 0x24 000001c0: CALLDATALOAD 000001c1: AND 000001c2: PUSH2 0x054c 000001c5: JUMP 000001c6: JUMPDEST 000001c7: CALLVALUE 000001c8: ISZERO 000001c9: PUSH2 0x01d1 000001cc: JUMPI 000001cd: PUSH1 0x00 000001cf: DUP1 000001d0: REVERT 000001d1: JUMPDEST 000001d2: PUSH2 0x017c 000001d5: PUSH1 0x01 000001d7: PUSH1 0xa0 000001d9: PUSH1 0x02 000001db: EXP 000001dc: SUB 000001dd: PUSH1 0x04 000001df: CALLDATALOAD 000001e0: AND 000001e1: PUSH2 0x05cc 000001e4: JUMP 000001e5: JUMPDEST 000001e6: CALLVALUE 000001e7: ISZERO 000001e8: PUSH2 0x01f0 000001eb: JUMPI 000001ec: PUSH1 0x00 000001ee: DUP1 000001ef: REVERT 000001f0: JUMPDEST 000001f1: PUSH2 0x017c 000001f4: PUSH1 0x04 000001f6: DUP1 000001f7: CALLDATALOAD 000001f8: PUSH1 0x01 000001fa: PUSH1 0xa0 000001fc: PUSH1 0x02 000001fe: EXP 000001ff: SUB 00000200: AND 00000201: SWAP1 00000202: PUSH1 0x24 00000204: DUP1 00000205: CALLDATALOAD 00000206: SWAP1 00000207: DUP2 00000208: ADD 00000209: SWAP2 0000020a: ADD 0000020b: CALLDATALOAD 0000020c: PUSH2 0x0669 0000020f: JUMP 00000210: JUMPDEST 00000211: CALLVALUE 00000212: ISZERO 00000213: PUSH2 0x021b 00000216: JUMPI 00000217: PUSH1 0x00 00000219: DUP1 0000021a: REVERT 0000021b: JUMPDEST 0000021c: PUSH2 0x017c 0000021f: PUSH1 0x04 00000221: CALLDATALOAD 00000222: PUSH2 0x0731 00000225: JUMP 00000226: JUMPDEST 00000227: CALLVALUE 00000228: ISZERO 00000229: PUSH2 0x0231 0000022c: JUMPI 0000022d: PUSH1 0x00 0000022f: DUP1 00000230: REVERT 00000231: JUMPDEST 00000232: PUSH2 0x017c 00000235: PUSH1 0x04 00000237: DUP1 00000238: CALLDATALOAD 00000239: PUSH1 0x01 0000023b: PUSH1 0xa0 0000023d: PUSH1 0x02 0000023f: EXP 00000240: SUB 00000241: AND 00000242: SWAP1 00000243: PUSH1 0x24 00000245: DUP1 00000246: CALLDATALOAD 00000247: SWAP2 00000248: PUSH1 0x44 0000024a: CALLDATALOAD 0000024b: SWAP2 0000024c: DUP3 0000024d: ADD 0000024e: SWAP2 0000024f: ADD 00000250: CALLDATALOAD 00000251: PUSH2 0x079e 00000254: JUMP 00000255: JUMPDEST 00000256: CALLVALUE 00000257: ISZERO 00000258: PUSH2 0x0260 0000025b: JUMPI 0000025c: PUSH1 0x00 0000025e: DUP1 0000025f: REVERT 00000260: JUMPDEST 00000261: PUSH2 0x0268 00000264: PUSH2 0x0846 00000267: JUMP 00000268: JUMPDEST 00000269: PUSH1 0x40 0000026b: MLOAD 0000026c: DUP1 0000026d: DUP5 0000026e: DUP2 0000026f: MSTORE 00000270: PUSH1 0x20 00000272: ADD 00000273: DUP4 00000274: DUP2 00000275: MSTORE 00000276: PUSH1 0x20 00000278: ADD 00000279: DUP3 0000027a: DUP2 0000027b: MSTORE 0000027c: PUSH1 0x20 0000027e: ADD 0000027f: SWAP4 00000280: POP 00000281: POP 00000282: POP 00000283: POP 00000284: PUSH1 0x40 00000286: MLOAD 00000287: DUP1 00000288: SWAP2 00000289: SUB 0000028a: SWAP1 0000028b: RETURN 0000028c: JUMPDEST 0000028d: CALLVALUE 0000028e: ISZERO 0000028f: PUSH2 0x0297 00000292: JUMPI 00000293: PUSH1 0x00 00000295: DUP1 00000296: REVERT 00000297: JUMPDEST 00000298: PUSH2 0x017c 0000029b: PUSH1 0x04 0000029d: DUP1 0000029e: CALLDATALOAD 0000029f: PUSH1 0x01 000002a1: PUSH1 0xa0 000002a3: PUSH1 0x02 000002a5: EXP 000002a6: SUB 000002a7: AND 000002a8: SWAP1 000002a9: PUSH1 0x24 000002ab: DUP1 000002ac: CALLDATALOAD 000002ad: SWAP2 000002ae: PUSH1 0x44 000002b0: CALLDATALOAD 000002b1: SWAP2 000002b2: PUSH1 0x64 000002b4: CALLDATALOAD 000002b5: SWAP1 000002b6: DUP2 000002b7: ADD 000002b8: SWAP2 000002b9: ADD 000002ba: CALLDATALOAD 000002bb: PUSH2 0x08cc 000002be: JUMP 000002bf: JUMPDEST 000002c0: CALLVALUE 000002c1: ISZERO 000002c2: PUSH2 0x02ca 000002c5: JUMPI 000002c6: PUSH1 0x00 000002c8: DUP1 000002c9: REVERT 000002ca: JUMPDEST 000002cb: PUSH2 0x017c 000002ce: PUSH2 0x097e 000002d1: JUMP 000002d2: JUMPDEST 000002d3: CALLVALUE 000002d4: ISZERO 000002d5: PUSH2 0x02dd 000002d8: JUMPI 000002d9: PUSH1 0x00 000002db: DUP1 000002dc: REVERT 000002dd: JUMPDEST 000002de: PUSH2 0x017c 000002e1: PUSH1 0x04 000002e3: CALLDATALOAD 000002e4: PUSH2 0x09ce 000002e7: JUMP 000002e8: JUMPDEST 000002e9: CALLVALUE 000002ea: ISZERO 000002eb: PUSH2 0x02f3 000002ee: JUMPI 000002ef: PUSH1 0x00 000002f1: DUP1 000002f2: REVERT 000002f3: JUMPDEST 000002f4: PUSH2 0x017c 000002f7: PUSH1 0x01 000002f9: PUSH1 0xa0 000002fb: PUSH1 0x02 000002fd: EXP 000002fe: SUB 000002ff: PUSH1 0x04 00000301: CALLDATALOAD 00000302: AND 00000303: PUSH2 0x0a24 00000306: JUMP 00000307: JUMPDEST 00000308: CALLVALUE 00000309: ISZERO 0000030a: PUSH2 0x0312 0000030d: JUMPI 0000030e: PUSH1 0x00 00000310: DUP1 00000311: REVERT 00000312: JUMPDEST 00000313: PUSH2 0x017c 00000316: PUSH2 0x0a83 00000319: JUMP 0000031a: JUMPDEST 0000031b: CALLVALUE 0000031c: ISZERO 0000031d: PUSH2 0x0325 00000320: JUMPI 00000321: PUSH1 0x00 00000323: DUP1 00000324: REVERT 00000325: JUMPDEST 00000326: PUSH2 0x017c 00000329: PUSH1 0x04 0000032b: DUP1 0000032c: CALLDATALOAD 0000032d: PUSH1 0x01 0000032f: PUSH1 0xa0 00000331: PUSH1 0x02 00000333: EXP 00000334: SUB 00000335: AND 00000336: SWAP1 00000337: PUSH1 0x24 00000339: DUP1 0000033a: CALLDATALOAD 0000033b: SWAP2 0000033c: PUSH1 0x44 0000033e: CALLDATALOAD 0000033f: SWAP2 00000340: DUP3 00000341: ADD 00000342: SWAP2 00000343: ADD 00000344: CALLDATALOAD 00000345: PUSH2 0x0ad3 00000348: JUMP 00000349: JUMPDEST 0000034a: CALLVALUE 0000034b: ISZERO 0000034c: PUSH2 0x0354 0000034f: JUMPI 00000350: PUSH1 0x00 00000352: DUP1 00000353: REVERT 00000354: JUMPDEST 00000355: PUSH2 0x035c 00000358: PUSH2 0x0b61 0000035b: JUMP 0000035c: JUMPDEST 0000035d: PUSH1 0x40 0000035f: MLOAD 00000360: SWAP1 00000361: DUP2 00000362: MSTORE 00000363: PUSH1 0x20 00000365: ADD 00000366: PUSH1 0x40 00000368: MLOAD 00000369: DUP1 0000036a: SWAP2 0000036b: SUB 0000036c: SWAP1 0000036d: RETURN 0000036e: JUMPDEST 0000036f: PUSH2 0x017c 00000372: PUSH2 0x0bd9 00000375: JUMP 00000376: JUMPDEST 00000377: CALLVALUE 00000378: ISZERO 00000379: PUSH2 0x0381 0000037c: JUMPI 0000037d: PUSH1 0x00 0000037f: DUP1 00000380: REVERT 00000381: JUMPDEST 00000382: PUSH2 0x017c 00000385: PUSH1 0x04 00000387: DUP1 00000388: CALLDATALOAD 00000389: SWAP1 0000038a: PUSH1 0x24 0000038c: DUP1 0000038d: CALLDATALOAD 0000038e: SWAP2 0000038f: PUSH1 0x44 00000391: CALLDATALOAD 00000392: SWAP2 00000393: PUSH1 0x64 00000395: CALLDATALOAD 00000396: SWAP1 00000397: DUP2 00000398: ADD 00000399: SWAP2 0000039a: ADD 0000039b: CALLDATALOAD 0000039c: PUSH2 0x0c29 0000039f: JUMP 000003a0: JUMPDEST 000003a1: CALLVALUE 000003a2: ISZERO 000003a3: PUSH2 0x03ab 000003a6: JUMPI 000003a7: PUSH1 0x00 000003a9: DUP1 000003aa: REVERT 000003ab: JUMPDEST 000003ac: PUSH2 0x017c 000003af: PUSH1 0x24 000003b1: PUSH1 0x04 000003b3: DUP1 000003b4: CALLDATALOAD 000003b5: DUP3 000003b6: DUP2 000003b7: ADD 000003b8: SWAP3 000003b9: SWAP1 000003ba: DUP3 000003bb: ADD 000003bc: CALLDATALOAD 000003bd: SWAP2 000003be: DUP2 000003bf: CALLDATALOAD 000003c0: SWAP2 000003c1: DUP3 000003c2: ADD 000003c3: SWAP2 000003c4: ADD 000003c5: CALLDATALOAD 000003c6: PUSH2 0x0cb8 000003c9: JUMP 000003ca: JUMPDEST 000003cb: CALLVALUE 000003cc: ISZERO 000003cd: PUSH2 0x03d5 000003d0: JUMPI 000003d1: PUSH1 0x00 000003d3: DUP1 000003d4: REVERT 000003d5: JUMPDEST 000003d6: PUSH2 0x017c 000003d9: PUSH1 0x01 000003db: PUSH1 0xa0 000003dd: PUSH1 0x02 000003df: EXP 000003e0: SUB 000003e1: PUSH1 0x04 000003e3: CALLDATALOAD 000003e4: AND 000003e5: PUSH1 0x24 000003e7: CALLDATALOAD 000003e8: ISZERO 000003e9: ISZERO 000003ea: PUSH2 0x0d52 000003ed: JUMP 000003ee: JUMPDEST 000003ef: CALLVALUE 000003f0: ISZERO 000003f1: PUSH2 0x03f9 000003f4: JUMPI 000003f5: PUSH1 0x00 000003f7: DUP1 000003f8: REVERT 000003f9: JUMPDEST 000003fa: PUSH2 0x017c 000003fd: PUSH1 0x04 000003ff: DUP1 00000400: CALLDATALOAD 00000401: PUSH1 0x24 00000403: DUP2 00000404: ADD 00000405: SWAP2 00000406: ADD 00000407: CALLDATALOAD 00000408: PUSH2 0x0dbb 0000040b: JUMP 0000040c: JUMPDEST 0000040d: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000422: PUSH4 0x113da5d9 00000427: PUSH1 0x00 00000429: PUSH1 0x40 0000042b: MLOAD 0000042c: PUSH1 0xe0 0000042e: PUSH1 0x02 00000430: EXP 00000431: PUSH4 0xffffffff 00000436: DUP5 00000437: AND 00000438: MUL 00000439: DUP2 0000043a: MSTORE 0000043b: PUSH1 0x04 0000043d: DUP2 0000043e: ADD 0000043f: SWAP2 00000440: SWAP1 00000441: SWAP2 00000442: MSTORE 00000443: PUSH1 0x24 00000445: ADD 00000446: PUSH1 0x00 00000448: PUSH1 0x40 0000044a: MLOAD 0000044b: DUP1 0000044c: DUP4 0000044d: SUB 0000044e: DUP2 0000044f: DUP7 00000450: DUP1 00000451: EXTCODESIZE 00000452: ISZERO 00000453: ISZERO 00000454: PUSH2 0x045c 00000457: JUMPI 00000458: PUSH1 0x00 0000045a: DUP1 0000045b: REVERT 0000045c: JUMPDEST 0000045d: PUSH2 0x02c6 00000460: GAS 00000461: SUB 00000462: DELEGATECALL 00000463: ISZERO 00000464: ISZERO 00000465: PUSH2 0x046d 00000468: JUMPI 00000469: PUSH1 0x00 0000046b: DUP1 0000046c: REVERT 0000046d: JUMPDEST 0000046e: POP 0000046f: POP 00000470: POP 00000471: JUMP 00000472: JUMPDEST 00000473: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000488: PUSH4 0x4afcba30 0000048d: PUSH1 0x00 0000048f: DUP6 00000490: DUP6 00000491: DUP6 00000492: PUSH1 0x40 00000494: MLOAD 00000495: PUSH1 0xe0 00000497: PUSH1 0x02 00000499: EXP 0000049a: PUSH4 0xffffffff 0000049f: DUP8 000004a0: AND 000004a1: MUL 000004a2: DUP2 000004a3: MSTORE 000004a4: PUSH1 0x04 000004a6: DUP2 000004a7: ADD 000004a8: SWAP5 000004a9: SWAP1 000004aa: SWAP5 000004ab: MSTORE 000004ac: PUSH1 0x01 000004ae: PUSH1 0xa0 000004b0: PUSH1 0x02 000004b2: EXP 000004b3: SUB 000004b4: SWAP3 000004b5: DUP4 000004b6: AND 000004b7: PUSH1 0x24 000004b9: DUP6 000004ba: ADD 000004bb: MSTORE 000004bc: PUSH1 0x44 000004be: DUP5 000004bf: ADD 000004c0: SWAP2 000004c1: SWAP1 000004c2: SWAP2 000004c3: MSTORE 000004c4: AND 000004c5: PUSH1 0x64 000004c7: DUP3 000004c8: ADD 000004c9: MSTORE 000004ca: PUSH1 0x84 000004cc: ADD 000004cd: PUSH1 0x00 000004cf: PUSH1 0x40 000004d1: MLOAD 000004d2: DUP1 000004d3: DUP4 000004d4: SUB 000004d5: DUP2 000004d6: DUP7 000004d7: DUP1 000004d8: EXTCODESIZE 000004d9: ISZERO 000004da: ISZERO 000004db: PUSH2 0x04e3 000004de: JUMPI 000004df: PUSH1 0x00 000004e1: DUP1 000004e2: REVERT 000004e3: JUMPDEST 000004e4: PUSH2 0x02c6 000004e7: GAS 000004e8: SUB 000004e9: DELEGATECALL 000004ea: ISZERO 000004eb: ISZERO 000004ec: PUSH2 0x04f4 000004ef: JUMPI 000004f0: PUSH1 0x00 000004f2: DUP1 000004f3: REVERT 000004f4: JUMPDEST 000004f5: POP 000004f6: POP 000004f7: POP 000004f8: POP 000004f9: POP 000004fa: POP 000004fb: JUMP 000004fc: JUMPDEST 000004fd: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000512: PUSH4 0x7c6a8a68 00000517: PUSH1 0x00 00000519: PUSH1 0x40 0000051b: MLOAD 0000051c: PUSH1 0xe0 0000051e: PUSH1 0x02 00000520: EXP 00000521: PUSH4 0xffffffff 00000526: DUP5 00000527: AND 00000528: MUL 00000529: DUP2 0000052a: MSTORE 0000052b: PUSH1 0x04 0000052d: DUP2 0000052e: ADD 0000052f: SWAP2 00000530: SWAP1 00000531: SWAP2 00000532: MSTORE 00000533: PUSH1 0x24 00000535: ADD 00000536: PUSH1 0x00 00000538: PUSH1 0x40 0000053a: MLOAD 0000053b: DUP1 0000053c: DUP4 0000053d: SUB 0000053e: DUP2 0000053f: DUP7 00000540: DUP1 00000541: EXTCODESIZE 00000542: ISZERO 00000543: ISZERO 00000544: PUSH2 0x045c 00000547: JUMPI 00000548: PUSH1 0x00 0000054a: DUP1 0000054b: REVERT 0000054c: JUMPDEST 0000054d: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000562: PUSH4 0x2fb2c6d2 00000567: PUSH1 0x00 00000569: DUP5 0000056a: DUP5 0000056b: PUSH1 0x40 0000056d: MLOAD 0000056e: PUSH1 0xe0 00000570: PUSH1 0x02 00000572: EXP 00000573: PUSH4 0xffffffff 00000578: DUP7 00000579: AND 0000057a: MUL 0000057b: DUP2 0000057c: MSTORE 0000057d: PUSH1 0x04 0000057f: DUP2 00000580: ADD 00000581: SWAP4 00000582: SWAP1 00000583: SWAP4 00000584: MSTORE 00000585: PUSH1 0x24 00000587: DUP4 00000588: ADD 00000589: SWAP2 0000058a: SWAP1 0000058b: SWAP2 0000058c: MSTORE 0000058d: PUSH1 0x01 0000058f: PUSH1 0xa0 00000591: PUSH1 0x02 00000593: EXP 00000594: SUB 00000595: AND 00000596: PUSH1 0x44 00000598: DUP3 00000599: ADD 0000059a: MSTORE 0000059b: PUSH1 0x64 0000059d: ADD 0000059e: PUSH1 0x00 000005a0: PUSH1 0x40 000005a2: MLOAD 000005a3: DUP1 000005a4: DUP4 000005a5: SUB 000005a6: DUP2 000005a7: DUP7 000005a8: DUP1 000005a9: EXTCODESIZE 000005aa: ISZERO 000005ab: ISZERO 000005ac: PUSH2 0x05b4 000005af: JUMPI 000005b0: PUSH1 0x00 000005b2: DUP1 000005b3: REVERT 000005b4: JUMPDEST 000005b5: PUSH2 0x02c6 000005b8: GAS 000005b9: SUB 000005ba: DELEGATECALL 000005bb: ISZERO 000005bc: ISZERO 000005bd: PUSH2 0x05c5 000005c0: JUMPI 000005c1: PUSH1 0x00 000005c3: DUP1 000005c4: REVERT 000005c5: JUMPDEST 000005c6: POP 000005c7: POP 000005c8: POP 000005c9: POP 000005ca: POP 000005cb: JUMP 000005cc: JUMPDEST 000005cd: PUSH1 0x13 000005cf: SLOAD 000005d0: PUSH1 0xff 000005d2: AND 000005d3: ISZERO 000005d4: PUSH2 0x05dc 000005d7: JUMPI 000005d8: PUSH1 0x00 000005da: DUP1 000005db: REVERT 000005dc: JUMPDEST 000005dd: PUSH1 0x13 000005df: DUP1 000005e0: SLOAD 000005e1: PUSH1 0xff 000005e3: NOT 000005e4: AND 000005e5: PUSH1 0x01 000005e7: OR 000005e8: SWAP1 000005e9: SSTORE 000005ea: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 000005ff: PUSH4 0x80b8871c 00000604: PUSH1 0x00 00000606: DUP4 00000607: PUSH1 0x40 00000609: MLOAD 0000060a: PUSH1 0xe0 0000060c: PUSH1 0x02 0000060e: EXP 0000060f: PUSH4 0xffffffff 00000614: DUP6 00000615: AND 00000616: MUL 00000617: DUP2 00000618: MSTORE 00000619: PUSH1 0x04 0000061b: DUP2 0000061c: ADD 0000061d: SWAP3 0000061e: SWAP1 0000061f: SWAP3 00000620: MSTORE 00000621: PUSH1 0x01 00000623: PUSH1 0xa0 00000625: PUSH1 0x02 00000627: EXP 00000628: SUB 00000629: AND 0000062a: PUSH1 0x24 0000062c: DUP3 0000062d: ADD 0000062e: MSTORE 0000062f: PUSH1 0x44 00000631: ADD 00000632: PUSH1 0x00 00000634: PUSH1 0x40 00000636: MLOAD 00000637: DUP1 00000638: DUP4 00000639: SUB 0000063a: DUP2 0000063b: DUP7 0000063c: DUP1 0000063d: EXTCODESIZE 0000063e: ISZERO 0000063f: ISZERO 00000640: PUSH2 0x0648 00000643: JUMPI 00000644: PUSH1 0x00 00000646: DUP1 00000647: REVERT 00000648: JUMPDEST 00000649: PUSH2 0x02c6 0000064c: GAS 0000064d: SUB 0000064e: DELEGATECALL 0000064f: ISZERO 00000650: ISZERO 00000651: PUSH2 0x0659 00000654: JUMPI 00000655: PUSH1 0x00 00000657: DUP1 00000658: REVERT 00000659: JUMPDEST 0000065a: POP 0000065b: POP 0000065c: PUSH1 0x13 0000065e: DUP1 0000065f: SLOAD 00000660: PUSH1 0xff 00000662: NOT 00000663: AND 00000664: SWAP1 00000665: SSTORE 00000666: POP 00000667: POP 00000668: JUMP 00000669: JUMPDEST 0000066a: PUSH1 0x13 0000066c: SLOAD 0000066d: PUSH1 0xff 0000066f: AND 00000670: ISZERO 00000671: PUSH2 0x0679 00000674: JUMPI 00000675: PUSH1 0x00 00000677: DUP1 00000678: REVERT 00000679: JUMPDEST 0000067a: PUSH1 0x13 0000067c: DUP1 0000067d: SLOAD 0000067e: PUSH1 0xff 00000680: NOT 00000681: AND 00000682: PUSH1 0x01 00000684: OR 00000685: SWAP1 00000686: SSTORE 00000687: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 0000069c: PUSH4 0x392a4fa2 000006a1: PUSH1 0x00 000006a3: DUP6 000006a4: DUP6 000006a5: DUP6 000006a6: PUSH1 0x40 000006a8: MLOAD 000006a9: PUSH1 0xe0 000006ab: PUSH1 0x02 000006ad: EXP 000006ae: PUSH4 0xffffffff 000006b3: DUP8 000006b4: AND 000006b5: MUL 000006b6: DUP2 000006b7: MSTORE 000006b8: PUSH1 0x04 000006ba: DUP2 000006bb: ADD 000006bc: DUP6 000006bd: DUP2 000006be: MSTORE 000006bf: PUSH1 0x01 000006c1: PUSH1 0xa0 000006c3: PUSH1 0x02 000006c5: EXP 000006c6: SUB 000006c7: DUP6 000006c8: AND 000006c9: PUSH1 0x24 000006cb: DUP4 000006cc: ADD 000006cd: MSTORE 000006ce: PUSH1 0x60 000006d0: PUSH1 0x44 000006d2: DUP4 000006d3: ADD 000006d4: SWAP1 000006d5: DUP2 000006d6: MSTORE 000006d7: PUSH1 0x64 000006d9: DUP4 000006da: ADD 000006db: DUP5 000006dc: SWAP1 000006dd: MSTORE 000006de: SWAP1 000006df: SWAP2 000006e0: PUSH1 0x84 000006e2: ADD 000006e3: DUP5 000006e4: PUSH1 0x20 000006e6: DUP6 000006e7: MUL 000006e8: DUP1 000006e9: DUP3 000006ea: DUP5 000006eb: CALLDATACOPY 000006ec: DUP3 000006ed: ADD 000006ee: SWAP2 000006ef: POP 000006f0: POP 000006f1: SWAP6 000006f2: POP 000006f3: POP 000006f4: POP 000006f5: POP 000006f6: POP 000006f7: POP 000006f8: PUSH1 0x00 000006fa: PUSH1 0x40 000006fc: MLOAD 000006fd: DUP1 000006fe: DUP4 000006ff: SUB 00000700: DUP2 00000701: DUP7 00000702: DUP1 00000703: EXTCODESIZE 00000704: ISZERO 00000705: ISZERO 00000706: PUSH2 0x070e 00000709: JUMPI 0000070a: PUSH1 0x00 0000070c: DUP1 0000070d: REVERT 0000070e: JUMPDEST 0000070f: PUSH2 0x02c6 00000712: GAS 00000713: SUB 00000714: DELEGATECALL 00000715: ISZERO 00000716: ISZERO 00000717: PUSH2 0x071f 0000071a: JUMPI 0000071b: PUSH1 0x00 0000071d: DUP1 0000071e: REVERT 0000071f: JUMPDEST 00000720: POP 00000721: POP 00000722: PUSH1 0x13 00000724: DUP1 00000725: SLOAD 00000726: PUSH1 0xff 00000728: NOT 00000729: AND 0000072a: SWAP1 0000072b: SSTORE 0000072c: POP 0000072d: POP 0000072e: POP 0000072f: POP 00000730: JUMP 00000731: JUMPDEST 00000732: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000747: PUSH4 0xf522fc1b 0000074c: PUSH1 0x00 0000074e: DUP4 0000074f: PUSH1 0x40 00000751: MLOAD 00000752: PUSH1 0xe0 00000754: PUSH1 0x02 00000756: EXP 00000757: PUSH4 0xffffffff 0000075c: DUP6 0000075d: AND 0000075e: MUL 0000075f: DUP2 00000760: MSTORE 00000761: PUSH1 0x04 00000763: DUP2 00000764: ADD 00000765: SWAP3 00000766: SWAP1 00000767: SWAP3 00000768: MSTORE 00000769: PUSH1 0x24 0000076b: DUP3 0000076c: ADD 0000076d: MSTORE 0000076e: PUSH1 0x44 00000770: ADD 00000771: PUSH1 0x00 00000773: PUSH1 0x40 00000775: MLOAD 00000776: DUP1 00000777: DUP4 00000778: SUB 00000779: DUP2 0000077a: DUP7 0000077b: DUP1 0000077c: EXTCODESIZE 0000077d: ISZERO 0000077e: ISZERO 0000077f: PUSH2 0x0787 00000782: JUMPI 00000783: PUSH1 0x00 00000785: DUP1 00000786: REVERT 00000787: JUMPDEST 00000788: PUSH2 0x02c6 0000078b: GAS 0000078c: SUB 0000078d: DELEGATECALL 0000078e: ISZERO 0000078f: ISZERO 00000790: PUSH2 0x0798 00000793: JUMPI 00000794: PUSH1 0x00 00000796: DUP1 00000797: REVERT 00000798: JUMPDEST 00000799: POP 0000079a: POP 0000079b: POP 0000079c: POP 0000079d: JUMP 0000079e: JUMPDEST 0000079f: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 000007b4: PUSH4 0x512b893f 000007b9: PUSH1 0x00 000007bb: DUP7 000007bc: DUP7 000007bd: DUP7 000007be: DUP7 000007bf: PUSH1 0x40 000007c1: MLOAD 000007c2: PUSH1 0xe0 000007c4: PUSH1 0x02 000007c6: EXP 000007c7: PUSH4 0xffffffff 000007cc: DUP9 000007cd: AND 000007ce: MUL 000007cf: DUP2 000007d0: MSTORE 000007d1: PUSH1 0x04 000007d3: DUP2 000007d4: ADD 000007d5: DUP7 000007d6: DUP2 000007d7: MSTORE 000007d8: PUSH1 0x01 000007da: PUSH1 0xa0 000007dc: PUSH1 0x02 000007de: EXP 000007df: SUB 000007e0: DUP7 000007e1: AND 000007e2: PUSH1 0x24 000007e4: DUP4 000007e5: ADD 000007e6: MSTORE 000007e7: PUSH1 0x44 000007e9: DUP3 000007ea: ADD 000007eb: DUP6 000007ec: SWAP1 000007ed: MSTORE 000007ee: PUSH1 0x80 000007f0: PUSH1 0x64 000007f2: DUP4 000007f3: ADD 000007f4: SWAP1 000007f5: DUP2 000007f6: MSTORE 000007f7: PUSH1 0x84 000007f9: DUP4 000007fa: ADD 000007fb: DUP5 000007fc: SWAP1 000007fd: MSTORE 000007fe: SWAP1 000007ff: SWAP2 00000800: PUSH1 0xa4 00000802: ADD 00000803: DUP5 00000804: DUP5 00000805: DUP1 00000806: DUP3 00000807: DUP5 00000808: CALLDATACOPY 00000809: DUP3 0000080a: ADD 0000080b: SWAP2 0000080c: POP 0000080d: POP 0000080e: SWAP7 0000080f: POP 00000810: POP 00000811: POP 00000812: POP 00000813: POP 00000814: POP 00000815: POP 00000816: PUSH1 0x00 00000818: PUSH1 0x40 0000081a: MLOAD 0000081b: DUP1 0000081c: DUP4 0000081d: SUB 0000081e: DUP2 0000081f: DUP7 00000820: DUP1 00000821: EXTCODESIZE 00000822: ISZERO 00000823: ISZERO 00000824: PUSH2 0x082c 00000827: JUMPI 00000828: PUSH1 0x00 0000082a: DUP1 0000082b: REVERT 0000082c: JUMPDEST 0000082d: PUSH2 0x02c6 00000830: GAS 00000831: SUB 00000832: DELEGATECALL 00000833: ISZERO 00000834: ISZERO 00000835: PUSH2 0x083d 00000838: JUMPI 00000839: PUSH1 0x00 0000083b: DUP1 0000083c: REVERT 0000083d: JUMPDEST 0000083e: POP 0000083f: POP 00000840: POP 00000841: POP 00000842: POP 00000843: POP 00000844: POP 00000845: JUMP 00000846: JUMPDEST 00000847: PUSH1 0x00 00000849: DUP1 0000084a: PUSH1 0x00 0000084c: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000861: PUSH4 0x54fd4d50 00000866: PUSH1 0x00 00000868: PUSH1 0x40 0000086a: MLOAD 0000086b: PUSH1 0x60 0000086d: ADD 0000086e: MSTORE 0000086f: PUSH1 0x40 00000871: MLOAD 00000872: DUP2 00000873: PUSH4 0xffffffff 00000878: AND 00000879: PUSH1 0xe0 0000087b: PUSH1 0x02 0000087d: EXP 0000087e: MUL 0000087f: DUP2 00000880: MSTORE 00000881: PUSH1 0x04 00000883: ADD 00000884: PUSH1 0x60 00000886: PUSH1 0x40 00000888: MLOAD 00000889: DUP1 0000088a: DUP4 0000088b: SUB 0000088c: DUP2 0000088d: DUP7 0000088e: DUP1 0000088f: EXTCODESIZE 00000890: ISZERO 00000891: ISZERO 00000892: PUSH2 0x089a 00000895: JUMPI 00000896: PUSH1 0x00 00000898: DUP1 00000899: REVERT 0000089a: JUMPDEST 0000089b: PUSH2 0x02c6 0000089e: GAS 0000089f: SUB 000008a0: DELEGATECALL 000008a1: ISZERO 000008a2: ISZERO 000008a3: PUSH2 0x08ab 000008a6: JUMPI 000008a7: PUSH1 0x00 000008a9: DUP1 000008aa: REVERT 000008ab: JUMPDEST 000008ac: POP 000008ad: POP 000008ae: POP 000008af: PUSH1 0x40 000008b1: MLOAD 000008b2: DUP1 000008b3: MLOAD 000008b4: SWAP1 000008b5: PUSH1 0x20 000008b7: ADD 000008b8: DUP1 000008b9: MLOAD 000008ba: SWAP1 000008bb: PUSH1 0x20 000008bd: ADD 000008be: DUP1 000008bf: MLOAD 000008c0: SWAP1 000008c1: POP 000008c2: SWAP3 000008c3: POP 000008c4: SWAP3 000008c5: POP 000008c6: SWAP3 000008c7: POP 000008c8: SWAP1 000008c9: SWAP2 000008ca: SWAP3 000008cb: JUMP 000008cc: JUMPDEST 000008cd: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 000008e2: PUSH4 0xb261039b 000008e7: PUSH1 0x00 000008e9: DUP8 000008ea: DUP8 000008eb: DUP8 000008ec: DUP8 000008ed: DUP8 000008ee: PUSH1 0x40 000008f0: MLOAD 000008f1: PUSH1 0xe0 000008f3: PUSH1 0x02 000008f5: EXP 000008f6: PUSH4 0xffffffff 000008fb: DUP10 000008fc: AND 000008fd: MUL 000008fe: DUP2 000008ff: MSTORE 00000900: PUSH1 0x04 00000902: DUP2 00000903: ADD 00000904: DUP8 00000905: DUP2 00000906: MSTORE 00000907: PUSH1 0x01 00000909: PUSH1 0xa0 0000090b: PUSH1 0x02 0000090d: EXP 0000090e: SUB 0000090f: DUP8 00000910: AND 00000911: PUSH1 0x24 00000913: DUP4 00000914: ADD 00000915: MSTORE 00000916: PUSH1 0x44 00000918: DUP3 00000919: ADD 0000091a: DUP7 0000091b: SWAP1 0000091c: MSTORE 0000091d: PUSH1 0x64 0000091f: DUP3 00000920: ADD 00000921: DUP6 00000922: SWAP1 00000923: MSTORE 00000924: PUSH1 0xa0 00000926: PUSH1 0x84 00000928: DUP4 00000929: ADD 0000092a: SWAP1 0000092b: DUP2 0000092c: MSTORE 0000092d: PUSH1 0xa4 0000092f: DUP4 00000930: ADD 00000931: DUP5 00000932: SWAP1 00000933: MSTORE 00000934: SWAP1 00000935: SWAP2 00000936: PUSH1 0xc4 00000938: ADD 00000939: DUP5 0000093a: DUP5 0000093b: DUP1 0000093c: DUP3 0000093d: DUP5 0000093e: CALLDATACOPY 0000093f: DUP3 00000940: ADD 00000941: SWAP2 00000942: POP 00000943: POP 00000944: SWAP8 00000945: POP 00000946: POP 00000947: POP 00000948: POP 00000949: POP 0000094a: POP 0000094b: POP 0000094c: POP 0000094d: PUSH1 0x00 0000094f: PUSH1 0x40 00000951: MLOAD 00000952: DUP1 00000953: DUP4 00000954: SUB 00000955: DUP2 00000956: DUP7 00000957: DUP1 00000958: EXTCODESIZE 00000959: ISZERO 0000095a: ISZERO 0000095b: PUSH2 0x0963 0000095e: JUMPI 0000095f: PUSH1 0x00 00000961: DUP1 00000962: REVERT 00000963: JUMPDEST 00000964: PUSH2 0x02c6 00000967: GAS 00000968: SUB 00000969: DELEGATECALL 0000096a: ISZERO 0000096b: ISZERO 0000096c: PUSH2 0x0974 0000096f: JUMPI 00000970: PUSH1 0x00 00000972: DUP1 00000973: REVERT 00000974: JUMPDEST 00000975: POP 00000976: POP 00000977: POP 00000978: POP 00000979: POP 0000097a: POP 0000097b: POP 0000097c: POP 0000097d: JUMP 0000097e: JUMPDEST 0000097f: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000994: PUSH4 0xf64e7cda 00000999: PUSH1 0x00 0000099b: PUSH1 0x40 0000099d: MLOAD 0000099e: PUSH1 0xe0 000009a0: PUSH1 0x02 000009a2: EXP 000009a3: PUSH4 0xffffffff 000009a8: DUP5 000009a9: AND 000009aa: MUL 000009ab: DUP2 000009ac: MSTORE 000009ad: PUSH1 0x04 000009af: DUP2 000009b0: ADD 000009b1: SWAP2 000009b2: SWAP1 000009b3: SWAP2 000009b4: MSTORE 000009b5: PUSH1 0x24 000009b7: ADD 000009b8: PUSH1 0x00 000009ba: PUSH1 0x40 000009bc: MLOAD 000009bd: DUP1 000009be: DUP4 000009bf: SUB 000009c0: DUP2 000009c1: DUP7 000009c2: DUP1 000009c3: EXTCODESIZE 000009c4: ISZERO 000009c5: ISZERO 000009c6: PUSH2 0x045c 000009c9: JUMPI 000009ca: PUSH1 0x00 000009cc: DUP1 000009cd: REVERT 000009ce: JUMPDEST 000009cf: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 000009e4: PUSH4 0x68540b6b 000009e9: PUSH1 0x00 000009eb: DUP4 000009ec: PUSH1 0x40 000009ee: MLOAD 000009ef: PUSH1 0xe0 000009f1: PUSH1 0x02 000009f3: EXP 000009f4: PUSH4 0xffffffff 000009f9: DUP6 000009fa: AND 000009fb: MUL 000009fc: DUP2 000009fd: MSTORE 000009fe: PUSH1 0x04 00000a00: DUP2 00000a01: ADD 00000a02: SWAP3 00000a03: SWAP1 00000a04: SWAP3 00000a05: MSTORE 00000a06: PUSH1 0x24 00000a08: DUP3 00000a09: ADD 00000a0a: MSTORE 00000a0b: PUSH1 0x44 00000a0d: ADD 00000a0e: PUSH1 0x00 00000a10: PUSH1 0x40 00000a12: MLOAD 00000a13: DUP1 00000a14: DUP4 00000a15: SUB 00000a16: DUP2 00000a17: DUP7 00000a18: DUP1 00000a19: EXTCODESIZE 00000a1a: ISZERO 00000a1b: ISZERO 00000a1c: PUSH2 0x0787 00000a1f: JUMPI 00000a20: PUSH1 0x00 00000a22: DUP1 00000a23: REVERT 00000a24: JUMPDEST 00000a25: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000a3a: PUSH4 0xc27d2d45 00000a3f: PUSH1 0x00 00000a41: DUP4 00000a42: PUSH1 0x40 00000a44: MLOAD 00000a45: PUSH1 0xe0 00000a47: PUSH1 0x02 00000a49: EXP 00000a4a: PUSH4 0xffffffff 00000a4f: DUP6 00000a50: AND 00000a51: MUL 00000a52: DUP2 00000a53: MSTORE 00000a54: PUSH1 0x04 00000a56: DUP2 00000a57: ADD 00000a58: SWAP3 00000a59: SWAP1 00000a5a: SWAP3 00000a5b: MSTORE 00000a5c: PUSH1 0x01 00000a5e: PUSH1 0xa0 00000a60: PUSH1 0x02 00000a62: EXP 00000a63: SUB 00000a64: AND 00000a65: PUSH1 0x24 00000a67: DUP3 00000a68: ADD 00000a69: MSTORE 00000a6a: PUSH1 0x44 00000a6c: ADD 00000a6d: PUSH1 0x00 00000a6f: PUSH1 0x40 00000a71: MLOAD 00000a72: DUP1 00000a73: DUP4 00000a74: SUB 00000a75: DUP2 00000a76: DUP7 00000a77: DUP1 00000a78: EXTCODESIZE 00000a79: ISZERO 00000a7a: ISZERO 00000a7b: PUSH2 0x0787 00000a7e: JUMPI 00000a7f: PUSH1 0x00 00000a81: DUP1 00000a82: REVERT 00000a83: JUMPDEST 00000a84: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000a99: PUSH4 0x62cea5b9 00000a9e: PUSH1 0x00 00000aa0: PUSH1 0x40 00000aa2: MLOAD 00000aa3: PUSH1 0xe0 00000aa5: PUSH1 0x02 00000aa7: EXP 00000aa8: PUSH4 0xffffffff 00000aad: DUP5 00000aae: AND 00000aaf: MUL 00000ab0: DUP2 00000ab1: MSTORE 00000ab2: PUSH1 0x04 00000ab4: DUP2 00000ab5: ADD 00000ab6: SWAP2 00000ab7: SWAP1 00000ab8: SWAP2 00000ab9: MSTORE 00000aba: PUSH1 0x24 00000abc: ADD 00000abd: PUSH1 0x00 00000abf: PUSH1 0x40 00000ac1: MLOAD 00000ac2: DUP1 00000ac3: DUP4 00000ac4: SUB 00000ac5: DUP2 00000ac6: DUP7 00000ac7: DUP1 00000ac8: EXTCODESIZE 00000ac9: ISZERO 00000aca: ISZERO 00000acb: PUSH2 0x045c 00000ace: JUMPI 00000acf: PUSH1 0x00 00000ad1: DUP1 00000ad2: REVERT 00000ad3: JUMPDEST 00000ad4: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000ae9: PUSH4 0xdde9806b 00000aee: PUSH1 0x00 00000af0: DUP7 00000af1: DUP7 00000af2: DUP7 00000af3: DUP7 00000af4: PUSH1 0x40 00000af6: MLOAD 00000af7: PUSH1 0xe0 00000af9: PUSH1 0x02 00000afb: EXP 00000afc: PUSH4 0xffffffff 00000b01: DUP9 00000b02: AND 00000b03: MUL 00000b04: DUP2 00000b05: MSTORE 00000b06: PUSH1 0x04 00000b08: DUP2 00000b09: ADD 00000b0a: DUP7 00000b0b: DUP2 00000b0c: MSTORE 00000b0d: PUSH1 0x01 00000b0f: PUSH1 0xa0 00000b11: PUSH1 0x02 00000b13: EXP 00000b14: SUB 00000b15: DUP7 00000b16: AND 00000b17: PUSH1 0x24 00000b19: DUP4 00000b1a: ADD 00000b1b: MSTORE 00000b1c: PUSH1 0x44 00000b1e: DUP3 00000b1f: ADD 00000b20: DUP6 00000b21: SWAP1 00000b22: MSTORE 00000b23: PUSH1 0x80 00000b25: PUSH1 0x64 00000b27: DUP4 00000b28: ADD 00000b29: SWAP1 00000b2a: DUP2 00000b2b: MSTORE 00000b2c: PUSH1 0x84 00000b2e: DUP4 00000b2f: ADD 00000b30: DUP5 00000b31: SWAP1 00000b32: MSTORE 00000b33: SWAP1 00000b34: SWAP2 00000b35: PUSH1 0xa4 00000b37: ADD 00000b38: DUP5 00000b39: DUP5 00000b3a: DUP1 00000b3b: DUP3 00000b3c: DUP5 00000b3d: CALLDATACOPY 00000b3e: DUP3 00000b3f: ADD 00000b40: SWAP2 00000b41: POP 00000b42: POP 00000b43: SWAP7 00000b44: POP 00000b45: POP 00000b46: POP 00000b47: POP 00000b48: POP 00000b49: POP 00000b4a: POP 00000b4b: PUSH1 0x00 00000b4d: PUSH1 0x40 00000b4f: MLOAD 00000b50: DUP1 00000b51: DUP4 00000b52: SUB 00000b53: DUP2 00000b54: DUP7 00000b55: DUP1 00000b56: EXTCODESIZE 00000b57: ISZERO 00000b58: ISZERO 00000b59: PUSH2 0x082c 00000b5c: JUMPI 00000b5d: PUSH1 0x00 00000b5f: DUP1 00000b60: REVERT 00000b61: JUMPDEST 00000b62: PUSH1 0x00 00000b64: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000b79: PUSH4 0xe8603f09 00000b7e: DUP3 00000b7f: DUP1 00000b80: PUSH1 0x40 00000b82: MLOAD 00000b83: PUSH1 0x20 00000b85: ADD 00000b86: MSTORE 00000b87: PUSH1 0x40 00000b89: MLOAD 00000b8a: PUSH1 0xe0 00000b8c: PUSH1 0x02 00000b8e: EXP 00000b8f: PUSH4 0xffffffff 00000b94: DUP5 00000b95: AND 00000b96: MUL 00000b97: DUP2 00000b98: MSTORE 00000b99: PUSH1 0x04 00000b9b: DUP2 00000b9c: ADD 00000b9d: SWAP2 00000b9e: SWAP1 00000b9f: SWAP2 00000ba0: MSTORE 00000ba1: PUSH1 0x24 00000ba3: ADD 00000ba4: PUSH1 0x20 00000ba6: PUSH1 0x40 00000ba8: MLOAD 00000ba9: DUP1 00000baa: DUP4 00000bab: SUB 00000bac: DUP2 00000bad: DUP7 00000bae: DUP1 00000baf: EXTCODESIZE 00000bb0: ISZERO 00000bb1: ISZERO 00000bb2: PUSH2 0x0bba 00000bb5: JUMPI 00000bb6: PUSH1 0x00 00000bb8: DUP1 00000bb9: REVERT 00000bba: JUMPDEST 00000bbb: PUSH2 0x02c6 00000bbe: GAS 00000bbf: SUB 00000bc0: DELEGATECALL 00000bc1: ISZERO 00000bc2: ISZERO 00000bc3: PUSH2 0x0bcb 00000bc6: JUMPI 00000bc7: PUSH1 0x00 00000bc9: DUP1 00000bca: REVERT 00000bcb: JUMPDEST 00000bcc: POP 00000bcd: POP 00000bce: POP 00000bcf: PUSH1 0x40 00000bd1: MLOAD 00000bd2: DUP1 00000bd3: MLOAD 00000bd4: SWAP1 00000bd5: POP 00000bd6: POP 00000bd7: SWAP1 00000bd8: JUMP 00000bd9: JUMPDEST 00000bda: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000bef: PUSH4 0xcc135813 00000bf4: PUSH1 0x00 00000bf6: PUSH1 0x40 00000bf8: MLOAD 00000bf9: PUSH1 0xe0 00000bfb: PUSH1 0x02 00000bfd: EXP 00000bfe: PUSH4 0xffffffff 00000c03: DUP5 00000c04: AND 00000c05: MUL 00000c06: DUP2 00000c07: MSTORE 00000c08: PUSH1 0x04 00000c0a: DUP2 00000c0b: ADD 00000c0c: SWAP2 00000c0d: SWAP1 00000c0e: SWAP2 00000c0f: MSTORE 00000c10: PUSH1 0x24 00000c12: ADD 00000c13: PUSH1 0x00 00000c15: PUSH1 0x40 00000c17: MLOAD 00000c18: DUP1 00000c19: DUP4 00000c1a: SUB 00000c1b: DUP2 00000c1c: DUP7 00000c1d: DUP1 00000c1e: EXTCODESIZE 00000c1f: ISZERO 00000c20: ISZERO 00000c21: PUSH2 0x045c 00000c24: JUMPI 00000c25: PUSH1 0x00 00000c27: DUP1 00000c28: REVERT 00000c29: JUMPDEST 00000c2a: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000c3f: PUSH4 0x2006b39d 00000c44: PUSH1 0x00 00000c46: DUP8 00000c47: DUP8 00000c48: DUP8 00000c49: DUP8 00000c4a: DUP8 00000c4b: PUSH1 0x40 00000c4d: MLOAD 00000c4e: DUP8 00000c4f: PUSH4 0xffffffff 00000c54: AND 00000c55: PUSH1 0xe0 00000c57: PUSH1 0x02 00000c59: EXP 00000c5a: MUL 00000c5b: DUP2 00000c5c: MSTORE 00000c5d: PUSH1 0x04 00000c5f: ADD 00000c60: DUP1 00000c61: DUP8 00000c62: DUP2 00000c63: MSTORE 00000c64: PUSH1 0x20 00000c66: ADD 00000c67: DUP7 00000c68: DUP2 00000c69: MSTORE 00000c6a: PUSH1 0x20 00000c6c: ADD 00000c6d: DUP6 00000c6e: DUP2 00000c6f: MSTORE 00000c70: PUSH1 0x20 00000c72: ADD 00000c73: DUP5 00000c74: DUP2 00000c75: MSTORE 00000c76: PUSH1 0x20 00000c78: ADD 00000c79: DUP1 00000c7a: PUSH1 0x20 00000c7c: ADD 00000c7d: DUP3 00000c7e: DUP2 00000c7f: SUB 00000c80: DUP3 00000c81: MSTORE 00000c82: DUP5 00000c83: DUP5 00000c84: DUP3 00000c85: DUP2 00000c86: DUP2 00000c87: MSTORE 00000c88: PUSH1 0x20 00000c8a: ADD 00000c8b: SWAP3 00000c8c: POP 00000c8d: PUSH1 0x20 00000c8f: MUL 00000c90: DUP1 00000c91: DUP3 00000c92: DUP5 00000c93: CALLDATACOPY 00000c94: DUP3 00000c95: ADD 00000c96: SWAP2 00000c97: POP 00000c98: POP 00000c99: SWAP8 00000c9a: POP 00000c9b: POP 00000c9c: POP 00000c9d: POP 00000c9e: POP 00000c9f: POP 00000ca0: POP 00000ca1: POP 00000ca2: PUSH1 0x00 00000ca4: PUSH1 0x40 00000ca6: MLOAD 00000ca7: DUP1 00000ca8: DUP4 00000ca9: SUB 00000caa: DUP2 00000cab: DUP7 00000cac: DUP1 00000cad: EXTCODESIZE 00000cae: ISZERO 00000caf: ISZERO 00000cb0: PUSH2 0x0963 00000cb3: JUMPI 00000cb4: PUSH1 0x00 00000cb6: DUP1 00000cb7: REVERT 00000cb8: JUMPDEST 00000cb9: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000cce: PUSH4 0x536b7ad5 00000cd3: PUSH1 0x00 00000cd5: DUP7 00000cd6: DUP7 00000cd7: DUP7 00000cd8: DUP7 00000cd9: PUSH1 0x40 00000cdb: MLOAD 00000cdc: DUP7 00000cdd: PUSH4 0xffffffff 00000ce2: AND 00000ce3: PUSH1 0xe0 00000ce5: PUSH1 0x02 00000ce7: EXP 00000ce8: MUL 00000ce9: DUP2 00000cea: MSTORE 00000ceb: PUSH1 0x04 00000ced: ADD 00000cee: DUP1 00000cef: DUP7 00000cf0: DUP2 00000cf1: MSTORE 00000cf2: PUSH1 0x20 00000cf4: ADD 00000cf5: DUP1 00000cf6: PUSH1 0x20 00000cf8: ADD 00000cf9: DUP1 00000cfa: PUSH1 0x20 00000cfc: ADD 00000cfd: DUP4 00000cfe: DUP2 00000cff: SUB 00000d00: DUP4 00000d01: MSTORE 00000d02: DUP8 00000d03: DUP8 00000d04: DUP3 00000d05: DUP2 00000d06: DUP2 00000d07: MSTORE 00000d08: PUSH1 0x20 00000d0a: ADD 00000d0b: SWAP3 00000d0c: POP 00000d0d: PUSH1 0x20 00000d0f: MUL 00000d10: DUP1 00000d11: DUP3 00000d12: DUP5 00000d13: CALLDATACOPY 00000d14: SWAP1 00000d15: SWAP2 00000d16: ADD 00000d17: DUP5 00000d18: DUP2 00000d19: SUB 00000d1a: DUP4 00000d1b: MSTORE 00000d1c: DUP6 00000d1d: DUP2 00000d1e: MSTORE 00000d1f: PUSH1 0x20 00000d21: SWAP1 00000d22: DUP2 00000d23: ADD 00000d24: SWAP2 00000d25: POP 00000d26: DUP7 00000d27: SWAP1 00000d28: DUP7 00000d29: MUL 00000d2a: DUP1 00000d2b: DUP3 00000d2c: DUP5 00000d2d: CALLDATACOPY 00000d2e: DUP3 00000d2f: ADD 00000d30: SWAP2 00000d31: POP 00000d32: POP 00000d33: SWAP8 00000d34: POP 00000d35: POP 00000d36: POP 00000d37: POP 00000d38: POP 00000d39: POP 00000d3a: POP 00000d3b: POP 00000d3c: PUSH1 0x00 00000d3e: PUSH1 0x40 00000d40: MLOAD 00000d41: DUP1 00000d42: DUP4 00000d43: SUB 00000d44: DUP2 00000d45: DUP7 00000d46: DUP1 00000d47: EXTCODESIZE 00000d48: ISZERO 00000d49: ISZERO 00000d4a: PUSH2 0x082c 00000d4d: JUMPI 00000d4e: PUSH1 0x00 00000d50: DUP1 00000d51: REVERT 00000d52: JUMPDEST 00000d53: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000d68: PUSH4 0x663eb994 00000d6d: PUSH1 0x00 00000d6f: DUP5 00000d70: DUP5 00000d71: PUSH1 0x40 00000d73: MLOAD 00000d74: PUSH1 0xe0 00000d76: PUSH1 0x02 00000d78: EXP 00000d79: PUSH4 0xffffffff 00000d7e: DUP7 00000d7f: AND 00000d80: MUL 00000d81: DUP2 00000d82: MSTORE 00000d83: PUSH1 0x04 00000d85: DUP2 00000d86: ADD 00000d87: SWAP4 00000d88: SWAP1 00000d89: SWAP4 00000d8a: MSTORE 00000d8b: PUSH1 0x01 00000d8d: PUSH1 0xa0 00000d8f: PUSH1 0x02 00000d91: EXP 00000d92: SUB 00000d93: SWAP1 00000d94: SWAP2 00000d95: AND 00000d96: PUSH1 0x24 00000d98: DUP4 00000d99: ADD 00000d9a: MSTORE 00000d9b: ISZERO 00000d9c: ISZERO 00000d9d: PUSH1 0x44 00000d9f: DUP3 00000da0: ADD 00000da1: MSTORE 00000da2: PUSH1 0x64 00000da4: ADD 00000da5: PUSH1 0x00 00000da7: PUSH1 0x40 00000da9: MLOAD 00000daa: DUP1 00000dab: DUP4 00000dac: SUB 00000dad: DUP2 00000dae: DUP7 00000daf: DUP1 00000db0: EXTCODESIZE 00000db1: ISZERO 00000db2: ISZERO 00000db3: PUSH2 0x05b4 00000db6: JUMPI 00000db7: PUSH1 0x00 00000db9: DUP1 00000dba: REVERT 00000dbb: JUMPDEST 00000dbc: PUSH20 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe 00000dd1: PUSH4 0xd4d357c0 00000dd6: PUSH1 0x00 00000dd8: DUP5 00000dd9: DUP5 00000dda: PUSH1 0x40 00000ddc: MLOAD 00000ddd: PUSH1 0xe0 00000ddf: PUSH1 0x02 00000de1: EXP 00000de2: PUSH4 0xffffffff 00000de7: DUP7 00000de8: AND 00000de9: MUL 00000dea: DUP2 00000deb: MSTORE 00000dec: PUSH1 0x04 00000dee: DUP2 00000def: ADD 00000df0: DUP5 00000df1: DUP2 00000df2: MSTORE 00000df3: PUSH1 0x40 00000df5: PUSH1 0x24 00000df7: DUP4 00000df8: ADD 00000df9: SWAP1 00000dfa: DUP2 00000dfb: MSTORE 00000dfc: PUSH1 0x44 00000dfe: DUP4 00000dff: ADD 00000e00: DUP5 00000e01: SWAP1 00000e02: MSTORE 00000e03: SWAP1 00000e04: SWAP2 00000e05: PUSH1 0x64 00000e07: ADD 00000e08: DUP5 00000e09: PUSH1 0x20 00000e0b: DUP6 00000e0c: MUL 00000e0d: DUP1 00000e0e: DUP3 00000e0f: DUP5 00000e10: CALLDATACOPY 00000e11: DUP3 00000e12: ADD 00000e13: SWAP2 00000e14: POP 00000e15: POP 00000e16: SWAP5 00000e17: POP 00000e18: POP 00000e19: POP 00000e1a: POP 00000e1b: POP 00000e1c: PUSH1 0x00 00000e1e: PUSH1 0x40 00000e20: MLOAD 00000e21: DUP1 00000e22: DUP4 00000e23: SUB 00000e24: DUP2 00000e25: DUP7 00000e26: DUP1 00000e27: EXTCODESIZE 00000e28: ISZERO 00000e29: ISZERO 00000e2a: PUSH2 0x05b4 00000e2d: JUMPI 00000e2e: PUSH1 0x00 00000e30: DUP1 00000e31: REVERT 00000e32: STOP 00000e33: LOG1 00000e34: PUSH6 0x627a7a723058 00000e3b: KECCAK256 00000e3c: RETURNDATASIZE 00000e3d: UNKNOWN(0xDC) 00000e3e: UNKNOWN(0xE2) 00000e3f: UNKNOWN(0xE3) 00000e40: DUP2 00000e41: BYTE 00000e42: MLOAD 00000e43: PUSH29
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xae87ff522ed4dc3d4c63e735b5479602ae6149669c8cda8682afe21e920f606e
call_targets:
0x6683ab42aacec410d74ee1801bb89b39b6aeefbe
target_varies:
no
classification:
constant_target
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xae87ff522ed4dc3d4c63e735b5479602ae6149669c8cda8682afe21e920f606e",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x6683ab42aacec410d74ee1801bb89b39b6aeefbe"
],
"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": "0x0be479e1",
"selector": "0x0be479e1",
"calldata_variants": [
"0x0be479e1",
"0x0be479e10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x14614af9",
"selector": "0x14614af9",
"calldata_variants": [
"0x14614af9",
"0x14614af90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x17f708fb",
"selector": "0x17f708fb",
"calldata_variants": [
"0x17f708fb",
"0x17f708fb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19f363bc",
"selector": "0x19f363bc",
"calldata_variants": [
"0x19f363bc",
"0x19f363bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2b55b792",
"selector": "0x2b55b792",
"calldata_variants": [
"0x2b55b792",
"0x2b55b7920000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2d923501",
"selector": "0x2d923501",
"calldata_variants": [
"0x2d923501",
"0x2d9235010000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4d5a8e10",
"selector": "0x4d5a8e10",
"calldata_variants": [
"0x4d5a8e10",
"0x4d5a8e100000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 345,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 1122,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 1257,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 11,
"untrusted_delegatecall_count": 11
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 11
}
|
| medium | upgradeability | codex | Delegatecall to fixed external target makes logic mutable if the target is upgradeable or replaceable | 75 | no | — |
viewevidence_json{
"evidence": "BYTECODE_BUNDLE.json shows 11 DELEGATECALL sites with a constant target 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe (runtime bytecode PUSH20 \u2026 DELEGATECALL) and detector finding \u201cUntrusted DELEGATECALL target reachable.\u201d No auth guards detected; storage slot usage centers on slot 0x13 (likely a reentrancy flag) rather than an implementation slot.",
"locations": [
"pc:345",
"pc:1122",
"pc:1257",
"pc:1466",
"pc:1614",
"pc:1812",
"pc:1933",
"pc:2098",
"pc:2208",
"pc:2409",
"pc:3008"
],
"recommendation": "If immutability is intended, avoid DELEGATECALL and use direct calls, or enforce the target\u2019s immutability (e.g., verify the target is non-upgradeable and cannot be redeployed). Consider adding an EXTCODEHASH check against a known hash before delegatecall. If upgradeability is intended, adopt a standard proxy pattern (e.g., EIP\u20111967) with explicit admin/access control and upgrade events.",
"exploit_scenario": "This contract delegates every function to 0x6683ab42aacec410d74ee1801bb89b39b6aeefbe. If that address is a proxy, can be upgraded, or can be redeployed via SELFDESTRUCT/CREATE2, an attacker controlling that target (or its admin) can introduce malicious logic. Any user calling this contract would then execute attacker code in this contract\u2019s storage context, enabling storage corruption, asset draining, or even selfdestruct of this contract. Uncertainty: selector inference and proxy detection are best\u2011effort from bytecode only."
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 22
}
|