019bab3b-ab1b-7086-bbe8-d2c9031cd737
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 |
|---|---|---|---|---|
| 38471 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38472 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38473 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38474 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38475 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38476 | detector.run | complete | 1 / 3 | 3 months ago |
| 38477 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39019 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode analysis shows tx.origin-based authorization heuristics and a CALLCODE site with computed target/value; there are also multiple CALLs to computed targets/values, which may be untrusted depending on storage/control flow.","findings":[{"severity":"medium","category":"auth","title":"tx.origin used in authorization path (phishing-prone access control)","exploit_scenario":"If a privileged check relies on tx.origin, a malicious contract can trick a privileged EOA into calling it and then forward execution so the check passes, enabling unauthorized actions. Because only bytecode is available, it’s unclear which functions rely on this guard, but the artifact flags tx.origin usage inside auth guards.","recommendation":"Replace tx.origin checks with msg.sender-based authorization and explicit role/owner checks. If tx.origin is used only for non-auth logic, remove it from authorization paths.","evidence":"Auth guard list contains type `tx_origin_used` at pc 9327, and the basic block at pc 9327 includes the ORIGIN opcode.","locations":["pc:9327"]},{"severity":"medium","category":"other","title":"CALLCODE usage with computed target/value","exploit_scenario":"CALLCODE executes code in the caller’s storage context (like DELEGATECALL). If the CALLCODE target or value can be influenced (e.g., via storage or calldata), an attacker could execute arbitrary code in the contract’s storage context, potentially overwriting critical slots or draining funds. The bytecode summary shows the CALLCODE target/value are computed, but the actual source of the target is not visible here.","recommendation":"Avoid CALLCODE; use DELEGATECALL only to trusted, immutable implementations. If dynamic targets are required, strictly constrain and validate them (e.g., immutable whitelist), and ensure upgrade paths are well-guarded.","evidence":"Callsite shows CALLCODE at pc 9314 with computed target/value; basic block starting at pc 9276 includes CALLCODE followed by SSTORE.","locations":["pc:9314","pc:9276"]},{"severity":"low","category":"reentrancy","title":"Multiple external CALLs to computed targets/values (possible untrusted-call surface)","exploit_scenario":"If any computed CALL target/value can be influenced by a user, those external calls can trigger reentrancy or arbitrary external interactions before internal state updates. The bundle indicates several CALL sites with computed targets/values; however, validation hints the target may be constant in at least one trace, so this may be benign.","recommendation":"Verify each CALL target is trusted/constant; apply checks-effects-interactions and/or a reentrancy guard where state mutations precede external calls. Ensure return values are handled appropriately.","evidence":"CALL sites at pcs 7330, 7441, 7980, 8443, 8750 show target_expression_category and value_expression_category as `computed` with no explicit returndata check in the artifact.","locations":["pc:7330","pc:7441","pc:7980","pc:8443","pc:8750"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-u9cdfekg
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bab91-0861-7613-8920-3b034e408bd4
--------
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-u9cdfekg succeeded in 5ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-u9cdfekg succeeded in 6ms:
{
"analysis_artifact": {
"address": "0xcf7cdbd3de63764f6724f55f1de79a7054085eb9",
"artifact_hash": "0xa9eb647bf9012dd89f894de1c7e15fcc8cf73be94a50d74054520da0efd52905",
"artifact_json": {
"auth": {
"guards": [
{
"pc": 7652,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7847,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9327,
"type": "tx_origin_used"
thinking
**Analyzing auth guards and callcode risks**
exec
/bin/bash -lc 'rg -n "call:9314|CALLCODE" BYTECODE_BUNDLE.json' in /tmp/codex-u9cdfekg succeeded in 22ms:
6209: "CALLCODE",
6280: "opcode": "CALLCODE",
14144: "to": "call:9314",
14148: "from": "call:9314",
16074: "id": "call:9314",
16075: "opcode": "CALLCODE",
thinking
**Checking code near call graph**
exec
/bin/bash -lc "sed -n '14090,14180p' BYTECODE_BUNDLE.json" in /tmp/codex-u9cdfekg succeeded in 11ms:
"type": "capability"
},
{
"from": "bb:7194",
"to": "call:7330",
"type": "contains"
},
{
"from": "call:7330",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:7351",
"to": "call:7441",
"type": "contains"
},
{
"from": "call:7441",
"to": "sink:call",
thinking
**Investigating basic block at PC 9276**
exec
/bin/bash -lc "rg -n '\"start_pc\": 9276' -n BYTECODE_BUNDLE.json" in /tmp/codex-u9cdfekg succeeded in 12ms:
6215: "start_pc": 9276
16020: "start_pc": 9276,
thinking
**Searching for basic_blocks near line 6200**
exec
/bin/bash -lc "sed -n '6188,6245p' BYTECODE_BUNDLE.json" in /tmp/codex-u9cdfekg succeeded in 8ms:
},
{
"end_pc": 9275,
"hash": "0x24e2cb2120d869c3a9df8c7974beb2f75f1c92255cdfde3510fd36b1c2e8267c",
"opcodes": [
"INVALID"
],
"start_pc": 9275
},
{
"end_pc": 9323,
"hash": "0x8b9e4e675205b975ef2a653e265508222ccd9ca3d2b09b7ce426bb92b32d2d48",
"opcodes": [
"OP_A2",
"PUSH6",
"SHA3",
"OP_8C",
"OP_DD",
"POP",
"PUSH24",
thinking
**Analyzing opcode security risks**
I'm examining the use of CALLCODE and tx.origin in the bytecode, noting that CALLCODE poses potential upgradeability or code execution risks if the target is user-controlled, though the target is unknown here. The presence of tx.origin-based authorization heuristics suggests medium severity for access control concerns. I’m also considering possible reentrancy risks from multiple external CALLs with computed targets, but due to limited evidence, I’ll mark that risk low and highlight the need for further analysis.
exec
/bin/bash -lc "rg -n 'storage' BYTECODE_BUNDLE.json | head" in /tmp/codex-u9cdfekg succeeded in 6ms:
7757: "storage": {
8081: "storage": {
8405: "storage": {
8729: "storage": {
9053: "storage": {
9377: "storage": {
9701: "storage": {
10025: "storage": {
10349: "storage": {
10673: "storage": {
thinking
**Checking evidence bundle storage**
exec
/bin/bash -lc "sed -n '7720,7765p' BYTECODE_BUNDLE.json" in /tmp/codex-u9cdfekg succeeded in 7ms:
{
"entry_pc": 762792293,
"selector": "0x20f5e73a"
},
{
"entry_pc": 0,
"selector": "0x2d774965"
}
],
"functions": [
{
"auth": {
"guards": [
{
"pc": 7652,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7847,
thinking
**Scrolling through content**
exec
/bin/bash -lc "sed -n '7765,7815p' BYTECODE_BUNDLE.json" in /tmp/codex-u9cdfekg succeeded in 29ms:
{
"op": "SLOAD",
"pc": 1604,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1676,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1698,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1868,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
thinking
**Analyzing functions and suspicious entry points**
exec
/bin/bash -lc "rg -n 'tx_origin|ORIGIN' BYTECODE_BUNDLE.json" in /tmp/codex-u9cdfekg succeeded in 8ms:
20: "type": "tx_origin_used"
6231: "ORIGIN"
7745: "type": "tx_origin_used"
8069: "type": "tx_origin_used"
8393: "type": "tx_origin_used"
8717: "type": "tx_origin_used"
9041: "type": "tx_origin_used"
9365: "type": "tx_origin_used"
9689: "type": "tx_origin_used"
10013: "type": "tx_origin_used"
10337: "type": "tx_origin_used"
10661: "type": "tx_origin_used"
10985: "type": "tx_origin_used"
11309: "type": "tx_origin_used"
11633: "type": "tx_origin_used"
11957: "type": "tx_origin_used"
16199: "type": "tx_origin_used"
16254: "type": "tx_origin_used"
16321: "type": "tx_origin_used"
thinking
**Analyzing tx_origin_used guard usage**
exec
/bin/bash -lc "sed -n '6240,6325p' BYTECODE_BUNDLE.json" in /tmp/codex-u9cdfekg succeeded in 34ms:
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "n/a"
},
{
"opcode": "CALL",
"pc": 7330,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 7441,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
thinking
**Evaluating potential risks in callsites**
exec
/bin/bash -lc 'rg -n "360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" BYTECODE_BUNDLE.json' in /tmp/codex-u9cdfekg exited 1 in 10ms:
thinking
**Analyzing storage and callsite risks**
I'm gathering findings about tx.origin usage in authorization (marked high severity with evidence at pc 9327), CALLCODE risks for upgradeability (medium severity with evidence at pc 9314 followed by SSTORE), and multiple external CALLs with computed targets and values posing potential reentrancy risks (low severity with callsites at various pcs). I'll summarize these in a JSON-formatted output matching the requested schema, carefully citing callsite and opcode evidence and offering cautious recommendations.
codex
{"no_findings":false,"summary":"Bytecode analysis shows tx.origin-based authorization heuristics and a CALLCODE site with computed target/value; there are also multiple CALLs to computed targets/values, which may be untrusted depending on storage/control flow.","findings":[{"severity":"medium","category":"auth","title":"tx.origin used in authorization path (phishing-prone access control)","exploit_scenario":"If a privileged check relies on tx.origin, a malicious contract can trick a privileged EOA into calling it and then forward execution so the check passes, enabling unauthorized actions. Because only bytecode is available, it’s unclear which functions rely on this guard, but the artifact flags tx.origin usage inside auth guards.","recommendation":"Replace tx.origin checks with msg.sender-based authorization and explicit role/owner checks. If tx.origin is used only for non-auth logic, remove it from authorization paths.","evidence":"Auth guard list contains type `tx_origin_used` at pc 9327, and the basic block at pc 9327 includes the ORIGIN opcode.","locations":["pc:9327"]},{"severity":"medium","category":"other","title":"CALLCODE usage with computed target/value","exploit_scenario":"CALLCODE executes code in the caller’s storage context (like DELEGATECALL). If the CALLCODE target or value can be influenced (e.g., via storage or calldata), an attacker could execute arbitrary code in the contract’s storage context, potentially overwriting critical slots or draining funds. The bytecode summary shows the CALLCODE target/value are computed, but the actual source of the target is not visible here.","recommendation":"Avoid CALLCODE; use DELEGATECALL only to trusted, immutable implementations. If dynamic targets are required, strictly constrain and validate them (e.g., immutable whitelist), and ensure upgrade paths are well-guarded.","evidence":"Callsite shows CALLCODE at pc 9314 with computed target/value; basic block starting at pc 9276 includes CALLCODE followed by SSTORE.","locations":["pc:9314","pc:9276"]},{"severity":"low","category":"reentrancy","title":"Multiple external CALLs to computed targets/values (possible untrusted-call surface)","exploit_scenario":"If any computed CALL target/value can be influenced by a user, those external calls can trigger reentrancy or arbitrary external interactions before internal state updates. The bundle indicates several CALL sites with computed targets/values; however, validation hints the target may be constant in at least one trace, so this may be benign.","recommendation":"Verify each CALL target is trusted/constant; apply checks-effects-interactions and/or a reentrancy guard where state mutations precede external calls. Ensure return values are handled appropriately.","evidence":"CALL sites at pcs 7330, 7441, 7980, 8443, 8750 show target_expression_category and value_expression_category as `computed` with no explicit returndata check in the artifact.","locations":["pc:7330","pc:7441","pc:7980","pc:8443","pc:8750"]}]}
tokens used
48,970
{
"codex": {
"ran_at": "2026-01-11T05:41:15.952418+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 18658,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode analysis shows tx.origin-based authorization heuristics and a CALLCODE site with computed target/value; there are also multiple CALLs to computed targets/values, which may be untrusted depending on storage/control flow.",
"raw_final": {
"summary": "Bytecode analysis shows tx.origin-based authorization heuristics and a CALLCODE site with computed target/value; there are also multiple CALLs to computed targets/values, which may be untrusted depending on storage/control flow.",
"findings": [
{
"title": "tx.origin used in authorization path (phishing-prone access control)",
"category": "auth",
"evidence": "Auth guard list contains type `tx_origin_used` at pc 9327, and the basic block at pc 9327 includes the ORIGIN opcode.",
"severity": "medium",
"locations": [
"pc:9327"
],
"recommendation": "Replace tx.origin checks with msg.sender-based authorization and explicit role/owner checks. If tx.origin is used only for non-auth logic, remove it from authorization paths.",
"exploit_scenario": "If a privileged check relies on tx.origin, a malicious contract can trick a privileged EOA into calling it and then forward execution so the check passes, enabling unauthorized actions. Because only bytecode is available, it\u2019s unclear which functions rely on this guard, but the artifact flags tx.origin usage inside auth guards."
},
{
"title": "CALLCODE usage with computed target/value",
"category": "other",
"evidence": "Callsite shows CALLCODE at pc 9314 with computed target/value; basic block starting at pc 9276 includes CALLCODE followed by SSTORE.",
"severity": "medium",
"locations": [
"pc:9314",
"pc:9276"
],
"recommendation": "Avoid CALLCODE; use DELEGATECALL only to trusted, immutable implementations. If dynamic targets are required, strictly constrain and validate them (e.g., immutable whitelist), and ensure upgrade paths are well-guarded.",
"exploit_scenario": "CALLCODE executes code in the caller\u2019s storage context (like DELEGATECALL). If the CALLCODE target or value can be influenced (e.g., via storage or calldata), an attacker could execute arbitrary code in the contract\u2019s storage context, potentially overwriting critical slots or draining funds. The bytecode summary shows the CALLCODE target/value are computed, but the actual source of the target is not visible here."
},
{
"title": "Multiple external CALLs to computed targets/values (possible untrusted-call surface)",
"category": "reentrancy",
"evidence": "CALL sites at pcs 7330, 7441, 7980, 8443, 8750 show target_expression_category and value_expression_category as `computed` with no explicit returndata check in the artifact.",
"severity": "low",
"locations": [
"pc:7330",
"pc:7441",
"pc:7980",
"pc:8443",
"pc:8750"
],
"recommendation": "Verify each CALL target is trusted/constant; apply checks-effects-interactions and/or a reentrancy guard where state mutations precede external calls. Ensure return values are handled appropriately.",
"exploit_scenario": "If any computed CALL target/value can be influenced by a user, those external calls can trigger reentrancy or arbitrary external interactions before internal state updates. The bundle indicates several CALL sites with computed targets/values; however, validation hints the target may be constant in at least one trace, so this may be benign."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x00dd 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x6ec0c3a5 00000019: GT 0000001a: PUSH2 0x007f 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x89b9abcc 00000024: GT 00000025: PUSH2 0x0059 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x89b9abcc 0000002f: EQ 00000030: PUSH2 0x042b 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0x8de66295 0000003a: EQ 0000003b: PUSH2 0x047a 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xa4aa17cb 00000045: EQ 00000046: PUSH2 0x04e3 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xc3be04fa 00000050: EQ 00000051: PUSH2 0x055e 00000054: JUMPI 00000055: PUSH2 0x00dd 00000058: JUMP 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0x6ec0c3a5 00000060: EQ 00000061: PUSH2 0x039a 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0x70ed0ada 0000006b: EQ 0000006c: PUSH2 0x03b1 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0x79378e30 00000076: EQ 00000077: PUSH2 0x03dc 0000007a: JUMPI 0000007b: PUSH2 0x00dd 0000007e: JUMP 0000007f: JUMPDEST 00000080: DUP1 00000081: PUSH4 0x3818fe3c 00000086: GT 00000087: PUSH2 0x00bb 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x3818fe3c 00000091: EQ 00000092: PUSH2 0x020e 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x3b967734 0000009c: EQ 0000009d: PUSH2 0x02bf 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x4a4baa8f 000000a7: EQ 000000a8: PUSH2 0x02ea 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x657c3927 000000b2: EQ 000000b3: PUSH2 0x0390 000000b6: JUMPI 000000b7: PUSH2 0x00dd 000000ba: JUMP 000000bb: JUMPDEST 000000bc: DUP1 000000bd: PUSH4 0x1c0d42aa 000000c2: EQ 000000c3: PUSH2 0x00e2 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x20f5e73a 000000cd: EQ 000000ce: PUSH2 0x0173 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x2d774965 000000d8: EQ 000000d9: PUSH2 0x017d 000000dc: JUMPI 000000dd: JUMPDEST 000000de: PUSH1 0x00 000000e0: DUP1 000000e1: REVERT 000000e2: JUMPDEST 000000e3: CALLVALUE 000000e4: DUP1 000000e5: ISZERO 000000e6: PUSH2 0x00ee 000000e9: JUMPI 000000ea: PUSH1 0x00 000000ec: DUP1 000000ed: REVERT 000000ee: JUMPDEST 000000ef: POP 000000f0: PUSH2 0x0131 000000f3: PUSH1 0x04 000000f5: DUP1 000000f6: CALLDATASIZE 000000f7: SUB 000000f8: PUSH1 0x20 000000fa: DUP2 000000fb: LT 000000fc: ISZERO 000000fd: PUSH2 0x0105 00000100: JUMPI 00000101: PUSH1 0x00 00000103: DUP1 00000104: REVERT 00000105: JUMPDEST 00000106: DUP2 00000107: ADD 00000108: SWAP1 00000109: DUP1 0000010a: DUP1 0000010b: CALLDATALOAD 0000010c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000121: AND 00000122: SWAP1 00000123: PUSH1 0x20 00000125: ADD 00000126: SWAP1 00000127: SWAP3 00000128: SWAP2 00000129: SWAP1 0000012a: POP 0000012b: POP 0000012c: POP 0000012d: PUSH2 0x05ad 00000130: JUMP 00000131: JUMPDEST 00000132: PUSH1 0x40 00000134: MLOAD 00000135: DUP1 00000136: DUP3 00000137: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000014c: AND 0000014d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000162: AND 00000163: DUP2 00000164: MSTORE 00000165: PUSH1 0x20 00000167: ADD 00000168: SWAP2 00000169: POP 0000016a: POP 0000016b: PUSH1 0x40 0000016d: MLOAD 0000016e: DUP1 0000016f: SWAP2 00000170: SUB 00000171: SWAP1 00000172: RETURN 00000173: JUMPDEST 00000174: PUSH2 0x017b 00000177: PUSH2 0x111b 0000017a: JUMP 0000017b: JUMPDEST 0000017c: STOP 0000017d: JUMPDEST 0000017e: CALLVALUE 0000017f: DUP1 00000180: ISZERO 00000181: PUSH2 0x0189 00000184: JUMPI 00000185: PUSH1 0x00 00000187: DUP1 00000188: REVERT 00000189: JUMPDEST 0000018a: POP 0000018b: PUSH2 0x01cc 0000018e: PUSH1 0x04 00000190: DUP1 00000191: CALLDATASIZE 00000192: SUB 00000193: PUSH1 0x20 00000195: DUP2 00000196: LT 00000197: ISZERO 00000198: PUSH2 0x01a0 0000019b: JUMPI 0000019c: PUSH1 0x00 0000019e: DUP1 0000019f: REVERT 000001a0: JUMPDEST 000001a1: DUP2 000001a2: ADD 000001a3: SWAP1 000001a4: DUP1 000001a5: DUP1 000001a6: CALLDATALOAD 000001a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001bc: AND 000001bd: SWAP1 000001be: PUSH1 0x20 000001c0: ADD 000001c1: SWAP1 000001c2: SWAP3 000001c3: SWAP2 000001c4: SWAP1 000001c5: POP 000001c6: POP 000001c7: POP 000001c8: PUSH2 0x115c 000001cb: JUMP 000001cc: JUMPDEST 000001cd: PUSH1 0x40 000001cf: MLOAD 000001d0: DUP1 000001d1: DUP3 000001d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001e7: AND 000001e8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001fd: AND 000001fe: DUP2 000001ff: MSTORE 00000200: PUSH1 0x20 00000202: ADD 00000203: SWAP2 00000204: POP 00000205: POP 00000206: PUSH1 0x40 00000208: MLOAD 00000209: DUP1 0000020a: SWAP2 0000020b: SUB 0000020c: SWAP1 0000020d: RETURN 0000020e: JUMPDEST 0000020f: CALLVALUE 00000210: DUP1 00000211: ISZERO 00000212: PUSH2 0x021a 00000215: JUMPI 00000216: PUSH1 0x00 00000218: DUP1 00000219: REVERT 0000021a: JUMPDEST 0000021b: POP 0000021c: PUSH2 0x025d 0000021f: PUSH1 0x04 00000221: DUP1 00000222: CALLDATASIZE 00000223: SUB 00000224: PUSH1 0x20 00000226: DUP2 00000227: LT 00000228: ISZERO 00000229: PUSH2 0x0231 0000022c: JUMPI 0000022d: PUSH1 0x00 0000022f: DUP1 00000230: REVERT 00000231: JUMPDEST 00000232: DUP2 00000233: ADD 00000234: SWAP1 00000235: DUP1 00000236: DUP1 00000237: CALLDATALOAD 00000238: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000024d: AND 0000024e: SWAP1 0000024f: PUSH1 0x20 00000251: ADD 00000252: SWAP1 00000253: SWAP3 00000254: SWAP2 00000255: SWAP1 00000256: POP 00000257: POP 00000258: POP 00000259: PUSH2 0x11c8 0000025c: JUMP 0000025d: JUMPDEST 0000025e: PUSH1 0x40 00000260: MLOAD 00000261: DUP1 00000262: DUP7 00000263: ISZERO 00000264: ISZERO 00000265: ISZERO 00000266: ISZERO 00000267: DUP2 00000268: MSTORE 00000269: PUSH1 0x20 0000026b: ADD 0000026c: DUP6 0000026d: DUP2 0000026e: MSTORE 0000026f: PUSH1 0x20 00000271: ADD 00000272: DUP5 00000273: DUP2 00000274: MSTORE 00000275: PUSH1 0x20 00000277: ADD 00000278: DUP4 00000279: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000028e: AND 0000028f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002a4: AND 000002a5: DUP2 000002a6: MSTORE 000002a7: PUSH1 0x20 000002a9: ADD 000002aa: DUP3 000002ab: DUP2 000002ac: MSTORE 000002ad: PUSH1 0x20 000002af: ADD 000002b0: SWAP6 000002b1: POP 000002b2: POP 000002b3: POP 000002b4: POP 000002b5: POP 000002b6: POP 000002b7: PUSH1 0x40 000002b9: MLOAD 000002ba: DUP1 000002bb: SWAP2 000002bc: SUB 000002bd: SWAP1 000002be: RETURN 000002bf: JUMPDEST 000002c0: CALLVALUE 000002c1: DUP1 000002c2: ISZERO 000002c3: PUSH2 0x02cb 000002c6: JUMPI 000002c7: PUSH1 0x00 000002c9: DUP1 000002ca: REVERT 000002cb: JUMPDEST 000002cc: POP 000002cd: PUSH2 0x02d4 000002d0: PUSH2 0x122b 000002d3: JUMP 000002d4: JUMPDEST 000002d5: PUSH1 0x40 000002d7: MLOAD 000002d8: DUP1 000002d9: DUP3 000002da: DUP2 000002db: MSTORE 000002dc: PUSH1 0x20 000002de: ADD 000002df: SWAP2 000002e0: POP 000002e1: POP 000002e2: PUSH1 0x40 000002e4: MLOAD 000002e5: DUP1 000002e6: SWAP2 000002e7: SUB 000002e8: SWAP1 000002e9: RETURN 000002ea: JUMPDEST 000002eb: CALLVALUE 000002ec: DUP1 000002ed: ISZERO 000002ee: PUSH2 0x02f6 000002f1: JUMPI 000002f2: PUSH1 0x00 000002f4: DUP1 000002f5: REVERT 000002f6: JUMPDEST 000002f7: POP 000002f8: PUSH2 0x0339 000002fb: PUSH1 0x04 000002fd: DUP1 000002fe: CALLDATASIZE 000002ff: SUB 00000300: PUSH1 0x20 00000302: DUP2 00000303: LT 00000304: ISZERO 00000305: PUSH2 0x030d 00000308: JUMPI 00000309: PUSH1 0x00 0000030b: DUP1 0000030c: REVERT 0000030d: JUMPDEST 0000030e: DUP2 0000030f: ADD 00000310: SWAP1 00000311: DUP1 00000312: DUP1 00000313: CALLDATALOAD 00000314: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000329: AND 0000032a: SWAP1 0000032b: PUSH1 0x20 0000032d: ADD 0000032e: SWAP1 0000032f: SWAP3 00000330: SWAP2 00000331: SWAP1 00000332: POP 00000333: POP 00000334: POP 00000335: PUSH2 0x1231 00000338: JUMP 00000339: JUMPDEST 0000033a: PUSH1 0x40 0000033c: MLOAD 0000033d: DUP1 0000033e: DUP1 0000033f: PUSH1 0x20 00000341: ADD 00000342: DUP3 00000343: DUP2 00000344: SUB 00000345: DUP3 00000346: MSTORE 00000347: DUP4 00000348: DUP2 00000349: DUP2 0000034a: MLOAD 0000034b: DUP2 0000034c: MSTORE 0000034d: PUSH1 0x20 0000034f: ADD 00000350: SWAP2 00000351: POP 00000352: DUP1 00000353: MLOAD 00000354: SWAP1 00000355: PUSH1 0x20 00000357: ADD 00000358: SWAP1 00000359: PUSH1 0x20 0000035b: MUL 0000035c: DUP1 0000035d: DUP4 0000035e: DUP4 0000035f: PUSH1 0x00 00000361: JUMPDEST 00000362: DUP4 00000363: DUP2 00000364: LT 00000365: ISZERO 00000366: PUSH2 0x037c 00000369: JUMPI 0000036a: DUP1 0000036b: DUP3 0000036c: ADD 0000036d: MLOAD 0000036e: DUP2 0000036f: DUP5 00000370: ADD 00000371: MSTORE 00000372: PUSH1 0x20 00000374: DUP2 00000375: ADD 00000376: SWAP1 00000377: POP 00000378: PUSH2 0x0361 0000037b: JUMP 0000037c: JUMPDEST 0000037d: POP 0000037e: POP 0000037f: POP 00000380: POP 00000381: SWAP1 00000382: POP 00000383: ADD 00000384: SWAP3 00000385: POP 00000386: POP 00000387: POP 00000388: PUSH1 0x40 0000038a: MLOAD 0000038b: DUP1 0000038c: SWAP2 0000038d: SUB 0000038e: SWAP1 0000038f: RETURN 00000390: JUMPDEST 00000391: PUSH2 0x0398 00000394: PUSH2 0x1301 00000397: JUMP 00000398: JUMPDEST 00000399: STOP 0000039a: JUMPDEST 0000039b: CALLVALUE 0000039c: DUP1 0000039d: ISZERO 0000039e: PUSH2 0x03a6 000003a1: JUMPI 000003a2: PUSH1 0x00 000003a4: DUP1 000003a5: REVERT 000003a6: JUMPDEST 000003a7: POP 000003a8: PUSH2 0x03af 000003ab: PUSH2 0x1daa 000003ae: JUMP 000003af: JUMPDEST 000003b0: STOP 000003b1: JUMPDEST 000003b2: CALLVALUE 000003b3: DUP1 000003b4: ISZERO 000003b5: PUSH2 0x03bd 000003b8: JUMPI 000003b9: PUSH1 0x00 000003bb: DUP1 000003bc: REVERT 000003bd: JUMPDEST 000003be: POP 000003bf: PUSH2 0x03c6 000003c2: PUSH2 0x1f36 000003c5: JUMP 000003c6: JUMPDEST 000003c7: PUSH1 0x40 000003c9: MLOAD 000003ca: DUP1 000003cb: DUP3 000003cc: DUP2 000003cd: MSTORE 000003ce: PUSH1 0x20 000003d0: ADD 000003d1: SWAP2 000003d2: POP 000003d3: POP 000003d4: PUSH1 0x40 000003d6: MLOAD 000003d7: DUP1 000003d8: SWAP2 000003d9: SUB 000003da: SWAP1 000003db: RETURN 000003dc: JUMPDEST 000003dd: CALLVALUE 000003de: DUP1 000003df: ISZERO 000003e0: PUSH2 0x03e8 000003e3: JUMPI 000003e4: PUSH1 0x00 000003e6: DUP1 000003e7: REVERT 000003e8: JUMPDEST 000003e9: POP 000003ea: PUSH2 0x0415 000003ed: PUSH1 0x04 000003ef: DUP1 000003f0: CALLDATASIZE 000003f1: SUB 000003f2: PUSH1 0x20 000003f4: DUP2 000003f5: LT 000003f6: ISZERO 000003f7: PUSH2 0x03ff 000003fa: JUMPI 000003fb: PUSH1 0x00 000003fd: DUP1 000003fe: REVERT 000003ff: JUMPDEST 00000400: DUP2 00000401: ADD 00000402: SWAP1 00000403: DUP1 00000404: DUP1 00000405: CALLDATALOAD 00000406: SWAP1 00000407: PUSH1 0x20 00000409: ADD 0000040a: SWAP1 0000040b: SWAP3 0000040c: SWAP2 0000040d: SWAP1 0000040e: POP 0000040f: POP 00000410: POP 00000411: PUSH2 0x1f55 00000414: JUMP 00000415: JUMPDEST 00000416: PUSH1 0x40 00000418: MLOAD 00000419: DUP1 0000041a: DUP3 0000041b: DUP2 0000041c: MSTORE 0000041d: PUSH1 0x20 0000041f: ADD 00000420: SWAP2 00000421: POP 00000422: POP 00000423: PUSH1 0x40 00000425: MLOAD 00000426: DUP1 00000427: SWAP2 00000428: SUB 00000429: SWAP1 0000042a: RETURN 0000042b: JUMPDEST 0000042c: CALLVALUE 0000042d: DUP1 0000042e: ISZERO 0000042f: PUSH2 0x0437 00000432: JUMPI 00000433: PUSH1 0x00 00000435: DUP1 00000436: REVERT 00000437: JUMPDEST 00000438: POP 00000439: PUSH2 0x0464 0000043c: PUSH1 0x04 0000043e: DUP1 0000043f: CALLDATASIZE 00000440: SUB 00000441: PUSH1 0x20 00000443: DUP2 00000444: LT 00000445: ISZERO 00000446: PUSH2 0x044e 00000449: JUMPI 0000044a: PUSH1 0x00 0000044c: DUP1 0000044d: REVERT 0000044e: JUMPDEST 0000044f: DUP2 00000450: ADD 00000451: SWAP1 00000452: DUP1 00000453: DUP1 00000454: CALLDATALOAD 00000455: SWAP1 00000456: PUSH1 0x20 00000458: ADD 00000459: SWAP1 0000045a: SWAP3 0000045b: SWAP2 0000045c: SWAP1 0000045d: POP 0000045e: POP 0000045f: POP 00000460: PUSH2 0x1f6d 00000463: JUMP 00000464: JUMPDEST 00000465: PUSH1 0x40 00000467: MLOAD 00000468: DUP1 00000469: DUP3 0000046a: DUP2 0000046b: MSTORE 0000046c: PUSH1 0x20 0000046e: ADD 0000046f: SWAP2 00000470: POP 00000471: POP 00000472: PUSH1 0x40 00000474: MLOAD 00000475: DUP1 00000476: SWAP2 00000477: SUB 00000478: SWAP1 00000479: RETURN 0000047a: JUMPDEST 0000047b: CALLVALUE 0000047c: DUP1 0000047d: ISZERO 0000047e: PUSH2 0x0486 00000481: JUMPI 00000482: PUSH1 0x00 00000484: DUP1 00000485: REVERT 00000486: JUMPDEST 00000487: POP 00000488: PUSH2 0x04c9 0000048b: PUSH1 0x04 0000048d: DUP1 0000048e: CALLDATASIZE 0000048f: SUB 00000490: PUSH1 0x20 00000492: DUP2 00000493: LT 00000494: ISZERO 00000495: PUSH2 0x049d 00000498: JUMPI 00000499: PUSH1 0x00 0000049b: DUP1 0000049c: REVERT 0000049d: JUMPDEST 0000049e: DUP2 0000049f: ADD 000004a0: SWAP1 000004a1: DUP1 000004a2: DUP1 000004a3: CALLDATALOAD 000004a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004b9: AND 000004ba: SWAP1 000004bb: PUSH1 0x20 000004bd: ADD 000004be: SWAP1 000004bf: SWAP3 000004c0: SWAP2 000004c1: SWAP1 000004c2: POP 000004c3: POP 000004c4: POP 000004c5: PUSH2 0x1f85 000004c8: JUMP 000004c9: JUMPDEST 000004ca: PUSH1 0x40 000004cc: MLOAD 000004cd: DUP1 000004ce: DUP3 000004cf: ISZERO 000004d0: ISZERO 000004d1: ISZERO 000004d2: ISZERO 000004d3: DUP2 000004d4: MSTORE 000004d5: PUSH1 0x20 000004d7: ADD 000004d8: SWAP2 000004d9: POP 000004da: POP 000004db: PUSH1 0x40 000004dd: MLOAD 000004de: DUP1 000004df: SWAP2 000004e0: SUB 000004e1: SWAP1 000004e2: RETURN 000004e3: JUMPDEST 000004e4: CALLVALUE 000004e5: DUP1 000004e6: ISZERO 000004e7: PUSH2 0x04ef 000004ea: JUMPI 000004eb: PUSH1 0x00 000004ed: DUP1 000004ee: REVERT 000004ef: JUMPDEST 000004f0: POP 000004f1: PUSH2 0x051c 000004f4: PUSH1 0x04 000004f6: DUP1 000004f7: CALLDATASIZE 000004f8: SUB 000004f9: PUSH1 0x20 000004fb: DUP2 000004fc: LT 000004fd: ISZERO 000004fe: PUSH2 0x0506 00000501: JUMPI 00000502: PUSH1 0x00 00000504: DUP1 00000505: REVERT 00000506: JUMPDEST 00000507: DUP2 00000508: ADD 00000509: SWAP1 0000050a: DUP1 0000050b: DUP1 0000050c: CALLDATALOAD 0000050d: SWAP1 0000050e: PUSH1 0x20 00000510: ADD 00000511: SWAP1 00000512: SWAP3 00000513: SWAP2 00000514: SWAP1 00000515: POP 00000516: POP 00000517: POP 00000518: PUSH2 0x1fde 0000051b: JUMP 0000051c: JUMPDEST 0000051d: PUSH1 0x40 0000051f: MLOAD 00000520: DUP1 00000521: DUP3 00000522: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000537: AND 00000538: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000054d: AND 0000054e: DUP2 0000054f: MSTORE 00000550: PUSH1 0x20 00000552: ADD 00000553: SWAP2 00000554: POP 00000555: POP 00000556: PUSH1 0x40 00000558: MLOAD 00000559: DUP1 0000055a: SWAP2 0000055b: SUB 0000055c: SWAP1 0000055d: RETURN 0000055e: JUMPDEST 0000055f: CALLVALUE 00000560: DUP1 00000561: ISZERO 00000562: PUSH2 0x056a 00000565: JUMPI 00000566: PUSH1 0x00 00000568: DUP1 00000569: REVERT 0000056a: JUMPDEST 0000056b: POP 0000056c: PUSH2 0x0597 0000056f: PUSH1 0x04 00000571: DUP1 00000572: CALLDATASIZE 00000573: SUB 00000574: PUSH1 0x20 00000576: DUP2 00000577: LT 00000578: ISZERO 00000579: PUSH2 0x0581 0000057c: JUMPI 0000057d: PUSH1 0x00 0000057f: DUP1 00000580: REVERT 00000581: JUMPDEST 00000582: DUP2 00000583: ADD 00000584: SWAP1 00000585: DUP1 00000586: DUP1 00000587: CALLDATALOAD 00000588: SWAP1 00000589: PUSH1 0x20 0000058b: ADD 0000058c: SWAP1 0000058d: SWAP3 0000058e: SWAP2 0000058f: SWAP1 00000590: POP 00000591: POP 00000592: POP 00000593: PUSH2 0x2011 00000596: JUMP 00000597: JUMPDEST 00000598: PUSH1 0x40 0000059a: MLOAD 0000059b: DUP1 0000059c: DUP3 0000059d: DUP2 0000059e: MSTORE 0000059f: PUSH1 0x20 000005a1: ADD 000005a2: SWAP2 000005a3: POP 000005a4: POP 000005a5: PUSH1 0x40 000005a7: MLOAD 000005a8: DUP1 000005a9: SWAP2 000005aa: SUB 000005ab: SWAP1 000005ac: RETURN 000005ad: JUMPDEST 000005ae: PUSH1 0x00 000005b0: PUSH1 0x02 000005b2: SLOAD 000005b3: PUSH1 0x06 000005b5: PUSH1 0x00 000005b7: DUP5 000005b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005cd: AND 000005ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005e3: AND 000005e4: DUP2 000005e5: MSTORE 000005e6: PUSH1 0x20 000005e8: ADD 000005e9: SWAP1 000005ea: DUP2 000005eb: MSTORE 000005ec: PUSH1 0x20 000005ee: ADD 000005ef: PUSH1 0x00 000005f1: KECCAK256 000005f2: PUSH1 0x03 000005f4: ADD 000005f5: DUP1 000005f6: SLOAD 000005f7: SWAP1 000005f8: POP 000005f9: LT 000005fa: ISZERO 000005fb: PUSH2 0x0606 000005fe: JUMPI 000005ff: DUP2 00000600: SWAP1 00000601: POP 00000602: PUSH2 0x1116 00000605: JUMP 00000606: JUMPDEST 00000607: PUSH1 0x60 00000609: PUSH2 0x017a 0000060c: PUSH1 0x40 0000060e: MLOAD 0000060f: SWAP1 00000610: DUP1 00000611: DUP3 00000612: MSTORE 00000613: DUP1 00000614: PUSH1 0x20 00000616: MUL 00000617: PUSH1 0x20 00000619: ADD 0000061a: DUP3 0000061b: ADD 0000061c: PUSH1 0x40 0000061e: MSTORE 0000061f: DUP1 00000620: ISZERO 00000621: PUSH2 0x0639 00000624: JUMPI 00000625: DUP2 00000626: PUSH1 0x20 00000628: ADD 00000629: PUSH1 0x20 0000062b: DUP3 0000062c: MUL 0000062d: DUP1 0000062e: CODESIZE 0000062f: DUP4 00000630: CODECOPY 00000631: DUP1 00000632: DUP3 00000633: ADD 00000634: SWAP2 00000635: POP 00000636: POP 00000637: SWAP1 00000638: POP 00000639: JUMPDEST 0000063a: POP 0000063b: SWAP1 0000063c: POP 0000063d: PUSH1 0x00 0000063f: DUP1 00000640: SWAP1 00000641: POP 00000642: PUSH1 0x08 00000644: SLOAD 00000645: SWAP1 00000646: POP 00000647: PUSH1 0x06 00000649: PUSH1 0x00 0000064b: DUP6 0000064c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000661: AND 00000662: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000677: AND 00000678: DUP2 00000679: MSTORE 0000067a: PUSH1 0x20 0000067c: ADD 0000067d: SWAP1 0000067e: DUP2 0000067f: MSTORE 00000680: PUSH1 0x20 00000682: ADD 00000683: PUSH1 0x00 00000685: KECCAK256 00000686: PUSH1 0x03 00000688: ADD 00000689: PUSH1 0x00 0000068b: DUP2 0000068c: SLOAD 0000068d: DUP2 0000068e: LT 0000068f: PUSH2 0x0694 00000692: JUMPI 00000693: INVALID 00000694: JUMPDEST 00000695: SWAP1 00000696: PUSH1 0x00 00000698: MSTORE 00000699: PUSH1 0x20 0000069b: PUSH1 0x00 0000069d: KECCAK256 0000069e: ADD 0000069f: PUSH1 0x00 000006a1: SWAP1 000006a2: SLOAD 000006a3: SWAP1 000006a4: PUSH2 0x0100 000006a7: EXP 000006a8: SWAP1 000006a9: DIV 000006aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006bf: AND 000006c0: DUP3 000006c1: PUSH1 0x00 000006c3: DUP2 000006c4: MLOAD 000006c5: DUP2 000006c6: LT 000006c7: PUSH2 0x06cc 000006ca: JUMPI 000006cb: INVALID 000006cc: JUMPDEST 000006cd: PUSH1 0x20 000006cf: MUL 000006d0: PUSH1 0x20 000006d2: ADD 000006d3: ADD 000006d4: SWAP1 000006d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006ea: AND 000006eb: SWAP1 000006ec: DUP2 000006ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000702: AND 00000703: DUP2 00000704: MSTORE 00000705: POP 00000706: POP 00000707: PUSH1 0x06 00000709: PUSH1 0x00 0000070b: DUP6 0000070c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000721: AND 00000722: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000737: AND 00000738: DUP2 00000739: MSTORE 0000073a: PUSH1 0x20 0000073c: ADD 0000073d: SWAP1 0000073e: DUP2 0000073f: MSTORE 00000740: PUSH1 0x20 00000742: ADD 00000743: PUSH1 0x00 00000745: KECCAK256 00000746: PUSH1 0x03 00000748: ADD 00000749: PUSH1 0x01 0000074b: DUP2 0000074c: SLOAD 0000074d: DUP2 0000074e: LT 0000074f: PUSH2 0x0754 00000752: JUMPI 00000753: INVALID 00000754: JUMPDEST 00000755: SWAP1 00000756: PUSH1 0x00 00000758: MSTORE 00000759: PUSH1 0x20 0000075b: PUSH1 0x00 0000075d: KECCAK256 0000075e: ADD 0000075f: PUSH1 0x00 00000761: SWAP1 00000762: SLOAD 00000763: SWAP1 00000764: PUSH2 0x0100 00000767: EXP 00000768: SWAP1 00000769: DIV 0000076a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000077f: AND 00000780: DUP3 00000781: PUSH1 0x01 00000783: DUP2 00000784: MLOAD 00000785: DUP2 00000786: LT 00000787: PUSH2 0x078c 0000078a: JUMPI 0000078b: INVALID 0000078c: JUMPDEST 0000078d: PUSH1 0x20 0000078f: MUL 00000790: PUSH1 0x20 00000792: ADD 00000793: ADD 00000794: SWAP1 00000795: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007aa: AND 000007ab: SWAP1 000007ac: DUP2 000007ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007c2: AND 000007c3: DUP2 000007c4: MSTORE 000007c5: POP 000007c6: POP 000007c7: PUSH1 0x06 000007c9: PUSH1 0x00 000007cb: DUP6 000007cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007e1: AND 000007e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007f7: AND 000007f8: DUP2 000007f9: MSTORE 000007fa: PUSH1 0x20 000007fc: ADD 000007fd: SWAP1 000007fe: DUP2 000007ff: MSTORE 00000800: PUSH1 0x20 00000802: ADD 00000803: PUSH1 0x00 00000805: KECCAK256 00000806: PUSH1 0x03 00000808: ADD 00000809: PUSH1 0x02 0000080b: DUP2 0000080c: SLOAD 0000080d: DUP2 0000080e: LT 0000080f: PUSH2 0x0814 00000812: JUMPI 00000813: INVALID 00000814: JUMPDEST 00000815: SWAP1 00000816: PUSH1 0x00 00000818: MSTORE 00000819: PUSH1 0x20 0000081b: PUSH1 0x00 0000081d: KECCAK256 0000081e: ADD 0000081f: PUSH1 0x00 00000821: SWAP1 00000822: SLOAD 00000823: SWAP1 00000824: PUSH2 0x0100 00000827: EXP 00000828: SWAP1 00000829: DIV 0000082a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000083f: AND 00000840: DUP3 00000841: PUSH1 0x02 00000843: DUP2 00000844: MLOAD 00000845: DUP2 00000846: LT 00000847: PUSH2 0x084c 0000084a: JUMPI 0000084b: INVALID 0000084c: JUMPDEST 0000084d: PUSH1 0x20 0000084f: MUL 00000850: PUSH1 0x20 00000852: ADD 00000853: ADD 00000854: SWAP1 00000855: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000086a: AND 0000086b: SWAP1 0000086c: DUP2 0000086d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000882: AND 00000883: DUP2 00000884: MSTORE 00000885: POP 00000886: POP 00000887: PUSH1 0x06 00000889: PUSH1 0x00 0000088b: DUP6 0000088c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008a1: AND 000008a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008b7: AND 000008b8: DUP2 000008b9: MSTORE 000008ba: PUSH1 0x20 000008bc: ADD 000008bd: SWAP1 000008be: DUP2 000008bf: MSTORE 000008c0: PUSH1 0x20 000008c2: ADD 000008c3: PUSH1 0x00 000008c5: KECCAK256 000008c6: PUSH1 0x03 000008c8: ADD 000008c9: PUSH1 0x03 000008cb: DUP2 000008cc: SLOAD 000008cd: DUP2 000008ce: LT 000008cf: PUSH2 0x08d4 000008d2: JUMPI 000008d3: INVALID 000008d4: JUMPDEST 000008d5: SWAP1 000008d6: PUSH1 0x00 000008d8: MSTORE 000008d9: PUSH1 0x20 000008db: PUSH1 0x00 000008dd: KECCAK256 000008de: ADD 000008df: PUSH1 0x00 000008e1: SWAP1 000008e2: SLOAD 000008e3: SWAP1 000008e4: PUSH2 0x0100 000008e7: EXP 000008e8: SWAP1 000008e9: DIV 000008ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008ff: AND 00000900: DUP3 00000901: PUSH1 0x03 00000903: DUP2 00000904: MLOAD 00000905: DUP2 00000906: LT 00000907: PUSH2 0x090c 0000090a: JUMPI 0000090b: INVALID 0000090c: JUMPDEST 0000090d: PUSH1 0x20 0000090f: MUL 00000910: PUSH1 0x20 00000912: ADD 00000913: ADD 00000914: SWAP1 00000915: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000092a: AND 0000092b: SWAP1 0000092c: DUP2 0000092d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000942: AND 00000943: DUP2 00000944: MSTORE 00000945: POP 00000946: POP 00000947: PUSH1 0x06 00000949: PUSH1 0x00 0000094b: DUP6 0000094c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000961: AND 00000962: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000977: AND 00000978: DUP2 00000979: MSTORE 0000097a: PUSH1 0x20 0000097c: ADD 0000097d: SWAP1 0000097e: DUP2 0000097f: MSTORE 00000980: PUSH1 0x20 00000982: ADD 00000983: PUSH1 0x00 00000985: KECCAK256 00000986: PUSH1 0x03 00000988: ADD 00000989: PUSH1 0x04 0000098b: DUP2 0000098c: SLOAD 0000098d: DUP2 0000098e: LT 0000098f: PUSH2 0x0994 00000992: JUMPI 00000993: INVALID 00000994: JUMPDEST 00000995: SWAP1 00000996: PUSH1 0x00 00000998: MSTORE 00000999: PUSH1 0x20 0000099b: PUSH1 0x00 0000099d: KECCAK256 0000099e: ADD 0000099f: PUSH1 0x00 000009a1: SWAP1 000009a2: SLOAD 000009a3: SWAP1 000009a4: PUSH2 0x0100 000009a7: EXP 000009a8: SWAP1 000009a9: DIV 000009aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009bf: AND 000009c0: DUP3 000009c1: PUSH1 0x04 000009c3: DUP2 000009c4: MLOAD 000009c5: DUP2 000009c6: LT 000009c7: PUSH2 0x09cc 000009ca: JUMPI 000009cb: INVALID 000009cc: JUMPDEST 000009cd: PUSH1 0x20 000009cf: MUL 000009d0: PUSH1 0x20 000009d2: ADD 000009d3: ADD 000009d4: SWAP1 000009d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009ea: AND 000009eb: SWAP1 000009ec: DUP2 000009ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a02: AND 00000a03: DUP2 00000a04: MSTORE 00000a05: POP 00000a06: POP 00000a07: PUSH1 0x06 00000a09: PUSH1 0x00 00000a0b: DUP6 00000a0c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a21: AND 00000a22: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a37: AND 00000a38: DUP2 00000a39: MSTORE 00000a3a: PUSH1 0x20 00000a3c: ADD 00000a3d: SWAP1 00000a3e: DUP2 00000a3f: MSTORE 00000a40: PUSH1 0x20 00000a42: ADD 00000a43: PUSH1 0x00 00000a45: KECCAK256 00000a46: PUSH1 0x03 00000a48: ADD 00000a49: PUSH1 0x05 00000a4b: DUP2 00000a4c: SLOAD 00000a4d: DUP2 00000a4e: LT 00000a4f: PUSH2 0x0a54 00000a52: JUMPI 00000a53: INVALID 00000a54: JUMPDEST 00000a55: SWAP1 00000a56: PUSH1 0x00 00000a58: MSTORE 00000a59: PUSH1 0x20 00000a5b: PUSH1 0x00 00000a5d: KECCAK256 00000a5e: ADD 00000a5f: PUSH1 0x00 00000a61: SWAP1 00000a62: SLOAD 00000a63: SWAP1 00000a64: PUSH2 0x0100 00000a67: EXP 00000a68: SWAP1 00000a69: DIV 00000a6a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a7f: AND 00000a80: DUP3 00000a81: PUSH1 0x05 00000a83: DUP2 00000a84: MLOAD 00000a85: DUP2 00000a86: LT 00000a87: PUSH2 0x0a8c 00000a8a: JUMPI 00000a8b: INVALID 00000a8c: JUMPDEST 00000a8d: PUSH1 0x20 00000a8f: MUL 00000a90: PUSH1 0x20 00000a92: ADD 00000a93: ADD 00000a94: SWAP1 00000a95: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aaa: AND 00000aab: SWAP1 00000aac: DUP2 00000aad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ac2: AND 00000ac3: DUP2 00000ac4: MSTORE 00000ac5: POP 00000ac6: POP 00000ac7: PUSH1 0x00 00000ac9: DUP1 00000aca: PUSH1 0x01 00000acc: SWAP1 00000acd: POP 00000ace: PUSH1 0x00 00000ad0: DUP1 00000ad1: SWAP1 00000ad2: POP 00000ad3: JUMPDEST 00000ad4: PUSH2 0x017a 00000ad7: DUP2 00000ad8: LT 00000ad9: ISZERO 00000ada: PUSH2 0x1099 00000add: JUMPI 00000ade: PUSH1 0x02 00000ae0: SLOAD 00000ae1: PUSH1 0x06 00000ae3: PUSH1 0x00 00000ae5: DUP8 00000ae6: DUP5 00000ae7: DUP2 00000ae8: MLOAD 00000ae9: DUP2 00000aea: LT 00000aeb: PUSH2 0x0af0 00000aee: JUMPI 00000aef: INVALID 00000af0: JUMPDEST 00000af1: PUSH1 0x20 00000af3: MUL 00000af4: PUSH1 0x20 00000af6: ADD 00000af7: ADD 00000af8: MLOAD 00000af9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b0e: AND 00000b0f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b24: AND 00000b25: DUP2 00000b26: MSTORE 00000b27: PUSH1 0x20 00000b29: ADD 00000b2a: SWAP1 00000b2b: DUP2 00000b2c: MSTORE 00000b2d: PUSH1 0x20 00000b2f: ADD 00000b30: PUSH1 0x00 00000b32: KECCAK256 00000b33: PUSH1 0x03 00000b35: ADD 00000b36: DUP1 00000b37: SLOAD 00000b38: SWAP1 00000b39: POP 00000b3a: EQ 00000b3b: ISZERO 00000b3c: PUSH2 0x106d 00000b3f: JUMPI 00000b40: PUSH1 0x3e 00000b42: DUP2 00000b43: LT 00000b44: ISZERO 00000b45: PUSH2 0x1068 00000b48: JUMPI 00000b49: PUSH1 0x06 00000b4b: PUSH1 0x00 00000b4d: DUP7 00000b4e: DUP4 00000b4f: DUP2 00000b50: MLOAD 00000b51: DUP2 00000b52: LT 00000b53: PUSH2 0x0b58 00000b56: JUMPI 00000b57: INVALID 00000b58: JUMPDEST 00000b59: PUSH1 0x20 00000b5b: MUL 00000b5c: PUSH1 0x20 00000b5e: ADD 00000b5f: ADD 00000b60: MLOAD 00000b61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b76: AND 00000b77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b8c: AND 00000b8d: DUP2 00000b8e: MSTORE 00000b8f: PUSH1 0x20 00000b91: ADD 00000b92: SWAP1 00000b93: DUP2 00000b94: MSTORE 00000b95: PUSH1 0x20 00000b97: ADD 00000b98: PUSH1 0x00 00000b9a: KECCAK256 00000b9b: PUSH1 0x03 00000b9d: ADD 00000b9e: PUSH1 0x00 00000ba0: DUP2 00000ba1: SLOAD 00000ba2: DUP2 00000ba3: LT 00000ba4: PUSH2 0x0ba9 00000ba7: JUMPI 00000ba8: INVALID 00000ba9: JUMPDEST 00000baa: SWAP1 00000bab: PUSH1 0x00 00000bad: MSTORE 00000bae: PUSH1 0x20 00000bb0: PUSH1 0x00 00000bb2: KECCAK256 00000bb3: ADD 00000bb4: PUSH1 0x00 00000bb6: SWAP1 00000bb7: SLOAD 00000bb8: SWAP1 00000bb9: PUSH2 0x0100 00000bbc: EXP 00000bbd: SWAP1 00000bbe: DIV 00000bbf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bd4: AND 00000bd5: DUP6 00000bd6: PUSH1 0x06 00000bd8: PUSH1 0x01 00000bda: DUP5 00000bdb: ADD 00000bdc: MUL 00000bdd: DUP2 00000bde: MLOAD 00000bdf: DUP2 00000be0: LT 00000be1: PUSH2 0x0be6 00000be4: JUMPI 00000be5: INVALID 00000be6: JUMPDEST 00000be7: PUSH1 0x20 00000be9: MUL 00000bea: PUSH1 0x20 00000bec: ADD 00000bed: ADD 00000bee: SWAP1 00000bef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c04: AND 00000c05: SWAP1 00000c06: DUP2 00000c07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c1c: AND 00000c1d: DUP2 00000c1e: MSTORE 00000c1f: POP 00000c20: POP 00000c21: PUSH1 0x06 00000c23: PUSH1 0x00 00000c25: DUP7 00000c26: DUP4 00000c27: DUP2 00000c28: MLOAD 00000c29: DUP2 00000c2a: LT 00000c2b: PUSH2 0x0c30 00000c2e: JUMPI 00000c2f: INVALID 00000c30: JUMPDEST 00000c31: PUSH1 0x20 00000c33: MUL 00000c34: PUSH1 0x20 00000c36: ADD 00000c37: ADD 00000c38: MLOAD 00000c39: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c4e: AND 00000c4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c64: AND 00000c65: DUP2 00000c66: MSTORE 00000c67: PUSH1 0x20 00000c69: ADD 00000c6a: SWAP1 00000c6b: DUP2 00000c6c: MSTORE 00000c6d: PUSH1 0x20 00000c6f: ADD 00000c70: PUSH1 0x00 00000c72: KECCAK256 00000c73: PUSH1 0x03 00000c75: ADD 00000c76: PUSH1 0x01 00000c78: DUP2 00000c79: SLOAD 00000c7a: DUP2 00000c7b: LT 00000c7c: PUSH2 0x0c81 00000c7f: JUMPI 00000c80: INVALID 00000c81: JUMPDEST 00000c82: SWAP1 00000c83: PUSH1 0x00 00000c85: MSTORE 00000c86: PUSH1 0x20 00000c88: PUSH1 0x00 00000c8a: KECCAK256 00000c8b: ADD 00000c8c: PUSH1 0x00 00000c8e: SWAP1 00000c8f: SLOAD 00000c90: SWAP1 00000c91: PUSH2 0x0100 00000c94: EXP 00000c95: SWAP1 00000c96: DIV 00000c97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cac: AND 00000cad: DUP6 00000cae: PUSH1 0x01 00000cb0: PUSH1 0x06 00000cb2: PUSH1 0x01 00000cb4: DUP6 00000cb5: ADD 00000cb6: MUL 00000cb7: ADD 00000cb8: DUP2 00000cb9: MLOAD 00000cba: DUP2 00000cbb: LT 00000cbc: PUSH2 0x0cc1 00000cbf: JUMPI 00000cc0: INVALID 00000cc1: JUMPDEST 00000cc2: PUSH1 0x20 00000cc4: MUL 00000cc5: PUSH1 0x20 00000cc7: ADD 00000cc8: ADD 00000cc9: SWAP1 00000cca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cdf: AND 00000ce0: SWAP1 00000ce1: DUP2 00000ce2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cf7: AND 00000cf8: DUP2 00000cf9: MSTORE 00000cfa: POP 00000cfb: POP 00000cfc: PUSH1 0x06 00000cfe: PUSH1 0x00 00000d00: DUP7 00000d01: DUP4 00000d02: DUP2 00000d03: MLOAD 00000d04: DUP2 00000d05: LT 00000d06: PUSH2 0x0d0b 00000d09: JUMPI 00000d0a: INVALID 00000d0b: JUMPDEST 00000d0c: PUSH1 0x20 00000d0e: MUL 00000d0f: PUSH1 0x20 00000d11: ADD 00000d12: ADD 00000d13: MLOAD 00000d14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d29: AND 00000d2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d3f: AND 00000d40: DUP2 00000d41: MSTORE 00000d42: PUSH1 0x20 00000d44: ADD 00000d45: SWAP1 00000d46: DUP2 00000d47: MSTORE 00000d48: PUSH1 0x20 00000d4a: ADD 00000d4b: PUSH1 0x00 00000d4d: KECCAK256 00000d4e: PUSH1 0x03 00000d50: ADD 00000d51: PUSH1 0x02 00000d53: DUP2 00000d54: SLOAD 00000d55: DUP2 00000d56: LT 00000d57: PUSH2 0x0d5c 00000d5a: JUMPI 00000d5b: INVALID 00000d5c: JUMPDEST 00000d5d: SWAP1 00000d5e: PUSH1 0x00 00000d60: MSTORE 00000d61: PUSH1 0x20 00000d63: PUSH1 0x00 00000d65: KECCAK256 00000d66: ADD 00000d67: PUSH1 0x00 00000d69: SWAP1 00000d6a: SLOAD 00000d6b: SWAP1 00000d6c: PUSH2 0x0100 00000d6f: EXP 00000d70: SWAP1 00000d71: DIV 00000d72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d87: AND 00000d88: DUP6 00000d89: PUSH1 0x02 00000d8b: PUSH1 0x06 00000d8d: PUSH1 0x01 00000d8f: DUP6 00000d90: ADD 00000d91: MUL 00000d92: ADD 00000d93: DUP2 00000d94: MLOAD 00000d95: DUP2 00000d96: LT 00000d97: PUSH2 0x0d9c 00000d9a: JUMPI 00000d9b: INVALID 00000d9c: JUMPDEST 00000d9d: PUSH1 0x20 00000d9f: MUL 00000da0: PUSH1 0x20 00000da2: ADD 00000da3: ADD 00000da4: SWAP1 00000da5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dba: AND 00000dbb: SWAP1 00000dbc: DUP2 00000dbd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dd2: AND 00000dd3: DUP2 00000dd4: MSTORE 00000dd5: POP 00000dd6: POP 00000dd7: PUSH1 0x06 00000dd9: PUSH1 0x00 00000ddb: DUP7 00000ddc: DUP4 00000ddd: DUP2 00000dde: MLOAD 00000ddf: DUP2 00000de0: LT 00000de1: PUSH2 0x0de6 00000de4: JUMPI 00000de5: INVALID 00000de6: JUMPDEST 00000de7: PUSH1 0x20 00000de9: MUL 00000dea: PUSH1 0x20 00000dec: ADD 00000ded: ADD 00000dee: MLOAD 00000def: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e04: AND 00000e05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e1a: AND 00000e1b: DUP2 00000e1c: MSTORE 00000e1d: PUSH1 0x20 00000e1f: ADD 00000e20: SWAP1 00000e21: DUP2 00000e22: MSTORE 00000e23: PUSH1 0x20 00000e25: ADD 00000e26: PUSH1 0x00 00000e28: KECCAK256 00000e29: PUSH1 0x03 00000e2b: ADD 00000e2c: PUSH1 0x03 00000e2e: DUP2 00000e2f: SLOAD 00000e30: DUP2 00000e31: LT 00000e32: PUSH2 0x0e37 00000e35: JUMPI 00000e36: INVALID 00000e37: JUMPDEST 00000e38: SWAP1 00000e39: PUSH1 0x00 00000e3b: MSTORE 00000e3c: PUSH1 0x20 00000e3e: PUSH1 0x00 00000e40: KECCAK256 00000e41: ADD 00000e42: PUSH1 0x00 00000e44: SWAP1 00000e45: SLOAD 00000e46: SWAP1 00000e47: PUSH2 0x0100 00000e4a: EXP 00000e4b: SWAP1 00000e4c: DIV 00000e4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e62: AND 00000e63: DUP6 00000e64: PUSH1 0x03 00000e66: PUSH1 0x06 00000e68: PUSH1 0x01 00000e6a: DUP6 00000e6b: ADD 00000e6c: MUL 00000e6d: ADD 00000e6e: DUP2 00000e6f: MLOAD 00000e70: DUP2 00000e71: LT 00000e72: PUSH2 0x0e77 00000e75: JUMPI 00000e76: INVALID 00000e77: JUMPDEST 00000e78: PUSH1 0x20 00000e7a: MUL 00000e7b: PUSH1 0x20 00000e7d: ADD 00000e7e: ADD 00000e7f: SWAP1 00000e80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e95: AND 00000e96: SWAP1 00000e97: DUP2 00000e98: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ead: AND 00000eae: DUP2 00000eaf: MSTORE 00000eb0: POP 00000eb1: POP 00000eb2: PUSH1 0x06 00000eb4: PUSH1 0x00 00000eb6: DUP7 00000eb7: DUP4 00000eb8: DUP2 00000eb9: MLOAD 00000eba: DUP2 00000ebb: LT 00000ebc: PUSH2 0x0ec1 00000ebf: JUMPI 00000ec0: INVALID 00000ec1: JUMPDEST 00000ec2: PUSH1 0x20 00000ec4: MUL 00000ec5: PUSH1 0x20 00000ec7: ADD 00000ec8: ADD 00000ec9: MLOAD 00000eca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000edf: AND 00000ee0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ef5: AND 00000ef6: DUP2 00000ef7: MSTORE 00000ef8: PUSH1 0x20 00000efa: ADD 00000efb: SWAP1 00000efc: DUP2 00000efd: MSTORE 00000efe: PUSH1 0x20 00000f00: ADD 00000f01: PUSH1 0x00 00000f03: KECCAK256 00000f04: PUSH1 0x03 00000f06: ADD 00000f07: PUSH1 0x04 00000f09: DUP2 00000f0a: SLOAD 00000f0b: DUP2 00000f0c: LT 00000f0d: PUSH2 0x0f12 00000f10: JUMPI 00000f11: INVALID 00000f12: JUMPDEST 00000f13: SWAP1 00000f14: PUSH1 0x00 00000f16: MSTORE 00000f17: PUSH1 0x20 00000f19: PUSH1 0x00 00000f1b: KECCAK256 00000f1c: ADD 00000f1d: PUSH1 0x00 00000f1f: SWAP1 00000f20: SLOAD 00000f21: SWAP1 00000f22: PUSH2 0x0100 00000f25: EXP 00000f26: SWAP1 00000f27: DIV 00000f28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f3d: AND 00000f3e: DUP6 00000f3f: PUSH1 0x04 00000f41: PUSH1 0x06 00000f43: PUSH1 0x01 00000f45: DUP6 00000f46: ADD 00000f47: MUL 00000f48: ADD 00000f49: DUP2 00000f4a: MLOAD 00000f4b: DUP2 00000f4c: LT 00000f4d: PUSH2 0x0f52 00000f50: JUMPI 00000f51: INVALID 00000f52: JUMPDEST 00000f53: PUSH1 0x20 00000f55: MUL 00000f56: PUSH1 0x20 00000f58: ADD 00000f59: ADD 00000f5a: SWAP1 00000f5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f70: AND 00000f71: SWAP1 00000f72: DUP2 00000f73: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f88: AND 00000f89: DUP2 00000f8a: MSTORE 00000f8b: POP 00000f8c: POP 00000f8d: PUSH1 0x06 00000f8f: PUSH1 0x00 00000f91: DUP7 00000f92: DUP4 00000f93: DUP2 00000f94: MLOAD 00000f95: DUP2 00000f96: LT 00000f97: PUSH2 0x0f9c 00000f9a: JUMPI 00000f9b: INVALID 00000f9c: JUMPDEST 00000f9d: PUSH1 0x20 00000f9f: MUL 00000fa0: PUSH1 0x20 00000fa2: ADD 00000fa3: ADD 00000fa4: MLOAD 00000fa5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fba: AND 00000fbb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fd0: AND 00000fd1: DUP2 00000fd2: MSTORE 00000fd3: PUSH1 0x20 00000fd5: ADD 00000fd6: SWAP1 00000fd7: DUP2 00000fd8: MSTORE 00000fd9: PUSH1 0x20 00000fdb: ADD 00000fdc: PUSH1 0x00 00000fde: KECCAK256 00000fdf: PUSH1 0x03 00000fe1: ADD 00000fe2: PUSH1 0x05 00000fe4: DUP2 00000fe5: SLOAD 00000fe6: DUP2 00000fe7: LT 00000fe8: PUSH2 0x0fed 00000feb: JUMPI 00000fec: INVALID 00000fed: JUMPDEST 00000fee: SWAP1 00000fef: PUSH1 0x00 00000ff1: MSTORE 00000ff2: PUSH1 0x20 00000ff4: PUSH1 0x00 00000ff6: KECCAK256 00000ff7: ADD 00000ff8: PUSH1 0x00 00000ffa: SWAP1 00000ffb: SLOAD 00000ffc: SWAP1 00000ffd: PUSH2 0x0100 00001000: EXP 00001001: SWAP1 00001002: DIV 00001003: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001018: AND 00001019: DUP6 0000101a: PUSH1 0x05 0000101c: PUSH1 0x06 0000101e: PUSH1 0x01 00001020: DUP6 00001021: ADD 00001022: MUL 00001023: ADD 00001024: DUP2 00001025: MLOAD 00001026: DUP2 00001027: LT 00001028: PUSH2 0x102d 0000102b: JUMPI 0000102c: INVALID 0000102d: JUMPDEST 0000102e: PUSH1 0x20 00001030: MUL 00001031: PUSH1 0x20 00001033: ADD 00001034: ADD 00001035: SWAP1 00001036: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000104b: AND 0000104c: SWAP1 0000104d: DUP2 0000104e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001063: AND 00001064: DUP2 00001065: MSTORE 00001066: POP 00001067: POP 00001068: JUMPDEST 00001069: PUSH2 0x108c 0000106c: JUMP 0000106d: JUMPDEST 0000106e: PUSH1 0x00 00001070: SWAP2 00001071: POP 00001072: DUP5 00001073: DUP2 00001074: DUP2 00001075: MLOAD 00001076: DUP2 00001077: LT 00001078: PUSH2 0x107d 0000107b: JUMPI 0000107c: INVALID 0000107d: JUMPDEST 0000107e: PUSH1 0x20 00001080: MUL 00001081: PUSH1 0x20 00001083: ADD 00001084: ADD 00001085: MLOAD 00001086: SWAP3 00001087: POP 00001088: PUSH2 0x1099 0000108b: JUMP 0000108c: JUMPDEST 0000108d: DUP1 0000108e: DUP1 0000108f: PUSH1 0x01 00001091: ADD 00001092: SWAP2 00001093: POP 00001094: POP 00001095: PUSH2 0x0ad3 00001098: JUMP 00001099: JUMPDEST 0000109a: POP 0000109b: DUP1 0000109c: ISZERO 0000109d: PUSH2 0x110e 000010a0: JUMPI 000010a1: PUSH1 0x40 000010a3: MLOAD 000010a4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000010c5: DUP2 000010c6: MSTORE 000010c7: PUSH1 0x04 000010c9: ADD 000010ca: DUP1 000010cb: DUP1 000010cc: PUSH1 0x20 000010ce: ADD 000010cf: DUP3 000010d0: DUP2 000010d1: SUB 000010d2: DUP3 000010d3: MSTORE 000010d4: PUSH1 0x10 000010d6: DUP2 000010d7: MSTORE 000010d8: PUSH1 0x20 000010da: ADD 000010db: DUP1 000010dc: PUSH32 0x4e6f204672656520526566657272657200000000000000000000000000000000 000010fd: DUP2 000010fe: MSTORE 000010ff: POP 00001100: PUSH1 0x20 00001102: ADD 00001103: SWAP2 00001104: POP 00001105: POP 00001106: PUSH1 0x40 00001108: MLOAD 00001109: DUP1 0000110a: SWAP2 0000110b: SUB 0000110c: SWAP1 0000110d: REVERT 0000110e: JUMPDEST 0000110f: DUP2 00001110: SWAP5 00001111: POP 00001112: POP 00001113: POP 00001114: POP 00001115: POP 00001116: JUMPDEST 00001117: SWAP2 00001118: SWAP1 00001119: POP 0000111a: JUMP 0000111b: JUMPDEST 0000111c: PUSH32 0x788751843d5b00335b64d8c05189e4a4d9dd9abad2a097ba42ddd0ba43b8cb5e 0000113d: CALLVALUE 0000113e: TIMESTAMP 0000113f: PUSH1 0x40 00001141: MLOAD 00001142: DUP1 00001143: DUP4 00001144: DUP2 00001145: MSTORE 00001146: PUSH1 0x20 00001148: ADD 00001149: DUP3 0000114a: DUP2 0000114b: MSTORE 0000114c: PUSH1 0x20 0000114e: ADD 0000114f: SWAP3 00001150: POP 00001151: POP 00001152: POP 00001153: PUSH1 0x40 00001155: MLOAD 00001156: DUP1 00001157: SWAP2 00001158: SUB 00001159: SWAP1 0000115a: LOG1 0000115b: JUMP 0000115c: JUMPDEST 0000115d: PUSH1 0x00 0000115f: PUSH1 0x06 00001161: PUSH1 0x00 00001163: DUP4 00001164: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001179: AND 0000117a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000118f: AND 00001190: DUP2 00001191: MSTORE 00001192: PUSH1 0x20 00001194: ADD 00001195: SWAP1 00001196: DUP2 00001197: MSTORE 00001198: PUSH1 0x20 0000119a: ADD 0000119b: PUSH1 0x00 0000119d: KECCAK256 0000119e: PUSH1 0x04 000011a0: ADD 000011a1: PUSH1 0x00 000011a3: SWAP1 000011a4: SLOAD 000011a5: SWAP1 000011a6: PUSH2 0x0100 000011a9: EXP 000011aa: SWAP1 000011ab: DIV 000011ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011c1: AND 000011c2: SWAP1 000011c3: POP 000011c4: SWAP2 000011c5: SWAP1 000011c6: POP 000011c7: JUMP 000011c8: JUMPDEST 000011c9: PUSH1 0x06 000011cb: PUSH1 0x20 000011cd: MSTORE 000011ce: DUP1 000011cf: PUSH1 0x00 000011d1: MSTORE 000011d2: PUSH1 0x40 000011d4: PUSH1 0x00 000011d6: KECCAK256 000011d7: PUSH1 0x00 000011d9: SWAP2 000011da: POP 000011db: SWAP1 000011dc: POP 000011dd: DUP1 000011de: PUSH1 0x00 000011e0: ADD 000011e1: PUSH1 0x00 000011e3: SWAP1 000011e4: SLOAD 000011e5: SWAP1 000011e6: PUSH2 0x0100 000011e9: EXP 000011ea: SWAP1 000011eb: DIV 000011ec: PUSH1 0xff 000011ee: AND 000011ef: SWAP1 000011f0: DUP1 000011f1: PUSH1 0x01 000011f3: ADD 000011f4: SLOAD 000011f5: SWAP1 000011f6: DUP1 000011f7: PUSH1 0x02 000011f9: ADD 000011fa: SLOAD 000011fb: SWAP1 000011fc: DUP1 000011fd: PUSH1 0x04 000011ff: ADD 00001200: PUSH1 0x00 00001202: SWAP1 00001203: SLOAD 00001204: SWAP1 00001205: PUSH2 0x0100 00001208: EXP 00001209: SWAP1 0000120a: DIV 0000120b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001220: AND 00001221: SWAP1 00001222: DUP1 00001223: PUSH1 0x05 00001225: ADD 00001226: SLOAD 00001227: SWAP1 00001228: POP 00001229: DUP6 0000122a: JUMP 0000122b: JUMPDEST 0000122c: PUSH1 0x08 0000122e: SLOAD 0000122f: DUP2 00001230: JUMP 00001231: JUMPDEST 00001232: PUSH1 0x60 00001234: PUSH1 0x06 00001236: PUSH1 0x00 00001238: DUP4 00001239: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000124e: AND 0000124f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001264: AND 00001265: DUP2 00001266: MSTORE 00001267: PUSH1 0x20 00001269: ADD 0000126a: SWAP1 0000126b: DUP2 0000126c: MSTORE 0000126d: PUSH1 0x20 0000126f: ADD 00001270: PUSH1 0x00 00001272: KECCAK256 00001273: PUSH1 0x03 00001275: ADD 00001276: DUP1 00001277: SLOAD 00001278: DUP1 00001279: PUSH1 0x20 0000127b: MUL 0000127c: PUSH1 0x20 0000127e: ADD 0000127f: PUSH1 0x40 00001281: MLOAD 00001282: SWAP1 00001283: DUP2 00001284: ADD 00001285: PUSH1 0x40 00001287: MSTORE 00001288: DUP1 00001289: SWAP3 0000128a: SWAP2 0000128b: SWAP1 0000128c: DUP2 0000128d: DUP2 0000128e: MSTORE 0000128f: PUSH1 0x20 00001291: ADD 00001292: DUP3 00001293: DUP1 00001294: SLOAD 00001295: DUP1 00001296: ISZERO 00001297: PUSH2 0x12f5 0000129a: JUMPI 0000129b: PUSH1 0x20 0000129d: MUL 0000129e: DUP3 0000129f: ADD 000012a0: SWAP2 000012a1: SWAP1 000012a2: PUSH1 0x00 000012a4: MSTORE 000012a5: PUSH1 0x20 000012a7: PUSH1 0x00 000012a9: KECCAK256 000012aa: SWAP1 000012ab: JUMPDEST 000012ac: DUP2 000012ad: PUSH1 0x00 000012af: SWAP1 000012b0: SLOAD 000012b1: SWAP1 000012b2: PUSH2 0x0100 000012b5: EXP 000012b6: SWAP1 000012b7: DIV 000012b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012cd: AND 000012ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012e3: AND 000012e4: DUP2 000012e5: MSTORE 000012e6: PUSH1 0x20 000012e8: ADD 000012e9: SWAP1 000012ea: PUSH1 0x01 000012ec: ADD 000012ed: SWAP1 000012ee: DUP1 000012ef: DUP4 000012f0: GT 000012f1: PUSH2 0x12ab 000012f4: JUMPI 000012f5: JUMPDEST 000012f6: POP 000012f7: POP 000012f8: POP 000012f9: POP 000012fa: POP 000012fb: SWAP1 000012fc: POP 000012fd: SWAP2 000012fe: SWAP1 000012ff: POP 00001300: JUMP 00001301: JUMPDEST 00001302: PUSH1 0x00 00001304: DUP1 00001305: PUSH1 0x00 00001307: SWAP1 00001308: SLOAD 00001309: SWAP1 0000130a: PUSH2 0x0100 0000130d: EXP 0000130e: SWAP1 0000130f: DIV 00001310: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001325: AND 00001326: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000133b: AND 0000133c: PUSH4 0x2d774965 00001341: CALLER 00001342: PUSH1 0x40 00001344: MLOAD 00001345: DUP3 00001346: PUSH4 0xffffffff 0000134b: AND 0000134c: PUSH1 0xe0 0000134e: SHL 0000134f: DUP2 00001350: MSTORE 00001351: PUSH1 0x04 00001353: ADD 00001354: DUP1 00001355: DUP3 00001356: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000136b: AND 0000136c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001381: AND 00001382: DUP2 00001383: MSTORE 00001384: PUSH1 0x20 00001386: ADD 00001387: SWAP2 00001388: POP 00001389: POP 0000138a: PUSH1 0x20 0000138c: PUSH1 0x40 0000138e: MLOAD 0000138f: DUP1 00001390: DUP4 00001391: SUB 00001392: DUP2 00001393: DUP7 00001394: DUP1 00001395: EXTCODESIZE 00001396: ISZERO 00001397: DUP1 00001398: ISZERO 00001399: PUSH2 0x13a1 0000139c: JUMPI 0000139d: PUSH1 0x00 0000139f: DUP1 000013a0: REVERT 000013a1: JUMPDEST 000013a2: POP 000013a3: GAS 000013a4: STATICCALL 000013a5: ISZERO 000013a6: DUP1 000013a7: ISZERO 000013a8: PUSH2 0x13b5 000013ab: JUMPI 000013ac: RETURNDATASIZE 000013ad: PUSH1 0x00 000013af: DUP1 000013b0: RETURNDATACOPY 000013b1: RETURNDATASIZE 000013b2: PUSH1 0x00 000013b4: REVERT 000013b5: JUMPDEST 000013b6: POP 000013b7: POP 000013b8: POP 000013b9: POP 000013ba: PUSH1 0x40 000013bc: MLOAD 000013bd: RETURNDATASIZE 000013be: PUSH1 0x20 000013c0: DUP2 000013c1: LT 000013c2: ISZERO 000013c3: PUSH2 0x13cb 000013c6: JUMPI 000013c7: PUSH1 0x00 000013c9: DUP1 000013ca: REVERT 000013cb: JUMPDEST 000013cc: DUP2 000013cd: ADD 000013ce: SWAP1 000013cf: DUP1 000013d0: DUP1 000013d1: MLOAD 000013d2: SWAP1 000013d3: PUSH1 0x20 000013d5: ADD 000013d6: SWAP1 000013d7: SWAP3 000013d8: SWAP2 000013d9: SWAP1 000013da: POP 000013db: POP 000013dc: POP 000013dd: SWAP1 000013de: POP 000013df: PUSH1 0x00 000013e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013f6: AND 000013f7: DUP2 000013f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000140d: AND 0000140e: EQ 0000140f: ISZERO 00001410: PUSH2 0x1481 00001413: JUMPI 00001414: PUSH1 0x40 00001416: MLOAD 00001417: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001438: DUP2 00001439: MSTORE 0000143a: PUSH1 0x04 0000143c: ADD 0000143d: DUP1 0000143e: DUP1 0000143f: PUSH1 0x20 00001441: ADD 00001442: DUP3 00001443: DUP2 00001444: SUB 00001445: DUP3 00001446: MSTORE 00001447: PUSH1 0x1c 00001449: DUP2 0000144a: MSTORE 0000144b: PUSH1 0x20 0000144d: ADD 0000144e: DUP1 0000144f: PUSH32 0x55736572206d757374206265206174204d617472697820352058203500000000 00001470: DUP2 00001471: MSTORE 00001472: POP 00001473: PUSH1 0x20 00001475: ADD 00001476: SWAP2 00001477: POP 00001478: POP 00001479: PUSH1 0x40 0000147b: MLOAD 0000147c: DUP1 0000147d: SWAP2 0000147e: SUB 0000147f: SWAP1 00001480: REVERT 00001481: JUMPDEST 00001482: PUSH1 0x06 00001484: PUSH1 0x00 00001486: CALLER 00001487: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000149c: AND 0000149d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014b2: AND 000014b3: DUP2 000014b4: MSTORE 000014b5: PUSH1 0x20 000014b7: ADD 000014b8: SWAP1 000014b9: DUP2 000014ba: MSTORE 000014bb: PUSH1 0x20 000014bd: ADD 000014be: PUSH1 0x00 000014c0: KECCAK256 000014c1: PUSH1 0x00 000014c3: ADD 000014c4: PUSH1 0x00 000014c6: SWAP1 000014c7: SLOAD 000014c8: SWAP1 000014c9: PUSH2 0x0100 000014cc: EXP 000014cd: SWAP1 000014ce: DIV 000014cf: PUSH1 0xff 000014d1: AND 000014d2: ISZERO 000014d3: PUSH2 0x1544 000014d6: JUMPI 000014d7: PUSH1 0x40 000014d9: MLOAD 000014da: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000014fb: DUP2 000014fc: MSTORE 000014fd: PUSH1 0x04 000014ff: ADD 00001500: DUP1 00001501: DUP1 00001502: PUSH1 0x20 00001504: ADD 00001505: DUP3 00001506: DUP2 00001507: SUB 00001508: DUP3 00001509: MSTORE 0000150a: PUSH1 0x0a 0000150c: DUP2 0000150d: MSTORE 0000150e: PUSH1 0x20 00001510: ADD 00001511: DUP1 00001512: PUSH32 0x5573657220657869737400000000000000000000000000000000000000000000 00001533: DUP2 00001534: MSTORE 00001535: POP 00001536: PUSH1 0x20 00001538: ADD 00001539: SWAP2 0000153a: POP 0000153b: POP 0000153c: PUSH1 0x40 0000153e: MLOAD 0000153f: DUP1 00001540: SWAP2 00001541: SUB 00001542: SWAP1 00001543: REVERT 00001544: JUMPDEST 00001545: PUSH1 0x04 00001547: PUSH1 0x00 00001549: PUSH1 0x06 0000154b: DUP2 0000154c: MSTORE 0000154d: PUSH1 0x20 0000154f: ADD 00001550: SWAP1 00001551: DUP2 00001552: MSTORE 00001553: PUSH1 0x20 00001555: ADD 00001556: PUSH1 0x00 00001558: KECCAK256 00001559: SLOAD 0000155a: CALLVALUE 0000155b: EQ 0000155c: PUSH2 0x15cd 0000155f: JUMPI 00001560: PUSH1 0x40 00001562: MLOAD 00001563: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001584: DUP2 00001585: MSTORE 00001586: PUSH1 0x04 00001588: ADD 00001589: DUP1 0000158a: DUP1 0000158b: PUSH1 0x20 0000158d: ADD 0000158e: DUP3 0000158f: DUP2 00001590: SUB 00001591: DUP3 00001592: MSTORE 00001593: PUSH1 0x0f 00001595: DUP2 00001596: MSTORE 00001597: PUSH1 0x20 00001599: ADD 0000159a: DUP1 0000159b: PUSH32 0x496e636f72726563742056616c75650000000000000000000000000000000000 000015bc: DUP2 000015bd: MSTORE 000015be: POP 000015bf: PUSH1 0x20 000015c1: ADD 000015c2: SWAP2 000015c3: POP 000015c4: POP 000015c5: PUSH1 0x40 000015c7: MLOAD 000015c8: DUP1 000015c9: SWAP2 000015ca: SUB 000015cb: SWAP1 000015cc: REVERT 000015cd: JUMPDEST 000015ce: PUSH1 0x00 000015d0: PUSH1 0x06 000015d2: PUSH1 0x00 000015d4: DUP4 000015d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015ea: AND 000015eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001600: AND 00001601: DUP2 00001602: MSTORE 00001603: PUSH1 0x20 00001605: ADD 00001606: SWAP1 00001607: DUP2 00001608: MSTORE 00001609: PUSH1 0x20 0000160b: ADD 0000160c: PUSH1 0x00 0000160e: KECCAK256 0000160f: PUSH1 0x00 00001611: ADD 00001612: PUSH1 0x00 00001614: SWAP1 00001615: SLOAD 00001616: SWAP1 00001617: PUSH2 0x0100 0000161a: EXP 0000161b: SWAP1 0000161c: DIV 0000161d: PUSH1 0xff 0000161f: AND 00001620: ISZERO 00001621: PUSH2 0x1770 00001624: JUMPI 00001625: PUSH1 0x06 00001627: PUSH1 0x00 00001629: DUP4 0000162a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000163f: AND 00001640: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001655: AND 00001656: DUP2 00001657: MSTORE 00001658: PUSH1 0x20 0000165a: ADD 0000165b: SWAP1 0000165c: DUP2 0000165d: MSTORE 0000165e: PUSH1 0x20 00001660: ADD 00001661: PUSH1 0x00 00001663: KECCAK256 00001664: PUSH1 0x01 00001666: ADD 00001667: SLOAD 00001668: SWAP1 00001669: POP 0000166a: PUSH1 0x02 0000166c: SLOAD 0000166d: PUSH1 0x06 0000166f: PUSH1 0x00 00001671: PUSH1 0x07 00001673: PUSH1 0x00 00001675: DUP6 00001676: DUP2 00001677: MSTORE 00001678: PUSH1 0x20 0000167a: ADD 0000167b: SWAP1 0000167c: DUP2 0000167d: MSTORE 0000167e: PUSH1 0x20 00001680: ADD 00001681: PUSH1 0x00 00001683: KECCAK256 00001684: PUSH1 0x00 00001686: SWAP1 00001687: SLOAD 00001688: SWAP1 00001689: PUSH2 0x0100 0000168c: EXP 0000168d: SWAP1 0000168e: DIV 0000168f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016a4: AND 000016a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016ba: AND 000016bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016d0: AND 000016d1: DUP2 000016d2: MSTORE 000016d3: PUSH1 0x20 000016d5: ADD 000016d6: SWAP1 000016d7: DUP2 000016d8: MSTORE 000016d9: PUSH1 0x20 000016db: ADD 000016dc: PUSH1 0x00 000016de: KECCAK256 000016df: PUSH1 0x03 000016e1: ADD 000016e2: DUP1 000016e3: SLOAD 000016e4: SWAP1 000016e5: POP 000016e6: LT 000016e7: PUSH2 0x176b 000016ea: JUMPI 000016eb: PUSH1 0x06 000016ed: PUSH1 0x00 000016ef: PUSH2 0x172a 000016f2: PUSH1 0x07 000016f4: PUSH1 0x00 000016f6: DUP6 000016f7: DUP2 000016f8: MSTORE 000016f9: PUSH1 0x20 000016fb: ADD 000016fc: SWAP1 000016fd: DUP2 000016fe: MSTORE 000016ff: PUSH1 0x20 00001701: ADD 00001702: PUSH1 0x00 00001704: KECCAK256 00001705: PUSH1 0x00 00001707: SWAP1 00001708: SLOAD 00001709: SWAP1 0000170a: PUSH2 0x0100 0000170d: EXP 0000170e: SWAP1 0000170f: DIV 00001710: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001725: AND 00001726: PUSH2 0x05ad 00001729: JUMP 0000172a: JUMPDEST 0000172b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001740: AND 00001741: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001756: AND 00001757: DUP2 00001758: MSTORE 00001759: PUSH1 0x20 0000175b: ADD 0000175c: SWAP1 0000175d: DUP2 0000175e: MSTORE 0000175f: PUSH1 0x20 00001761: ADD 00001762: PUSH1 0x00 00001764: KECCAK256 00001765: PUSH1 0x01 00001767: ADD 00001768: SLOAD 00001769: SWAP1 0000176a: POP 0000176b: JUMPDEST 0000176c: PUSH2 0x1877 0000176f: JUMP 00001770: JUMPDEST 00001771: PUSH1 0x01 00001773: SWAP1 00001774: POP 00001775: PUSH1 0x02 00001777: SLOAD 00001778: PUSH1 0x06 0000177a: PUSH1 0x00 0000177c: PUSH1 0x07 0000177e: PUSH1 0x00 00001780: DUP6 00001781: DUP2 00001782: MSTORE 00001783: PUSH1 0x20 00001785: ADD 00001786: SWAP1 00001787: DUP2 00001788: MSTORE 00001789: PUSH1 0x20 0000178b: ADD 0000178c: PUSH1 0x00 0000178e: KECCAK256 0000178f: PUSH1 0x00 00001791: SWAP1 00001792: SLOAD 00001793: SWAP1 00001794: PUSH2 0x0100 00001797: EXP 00001798: SWAP1 00001799: DIV 0000179a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017af: AND 000017b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017c5: AND 000017c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017db: AND 000017dc: DUP2 000017dd: MSTORE 000017de: PUSH1 0x20 000017e0: ADD 000017e1: SWAP1 000017e2: DUP2 000017e3: MSTORE 000017e4: PUSH1 0x20 000017e6: ADD 000017e7: PUSH1 0x00 000017e9: KECCAK256 000017ea: PUSH1 0x03 000017ec: ADD 000017ed: DUP1 000017ee: SLOAD 000017ef: SWAP1 000017f0: POP 000017f1: LT 000017f2: PUSH2 0x1876 000017f5: JUMPI 000017f6: PUSH1 0x06 000017f8: PUSH1 0x00 000017fa: PUSH2 0x1835 000017fd: PUSH1 0x07 000017ff: PUSH1 0x00 00001801: DUP6 00001802: DUP2 00001803: MSTORE 00001804: PUSH1 0x20 00001806: ADD 00001807: SWAP1 00001808: DUP2 00001809: MSTORE 0000180a: PUSH1 0x20 0000180c: ADD 0000180d: PUSH1 0x00 0000180f: KECCAK256 00001810: PUSH1 0x00 00001812: SWAP1 00001813: SLOAD 00001814: SWAP1 00001815: PUSH2 0x0100 00001818: EXP 00001819: SWAP1 0000181a: DIV 0000181b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001830: AND 00001831: PUSH2 0x05ad 00001834: JUMP 00001835: JUMPDEST 00001836: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000184b: AND 0000184c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001861: AND 00001862: DUP2 00001863: MSTORE 00001864: PUSH1 0x20 00001866: ADD 00001867: SWAP1 00001868: DUP2 00001869: MSTORE 0000186a: PUSH1 0x20 0000186c: ADD 0000186d: PUSH1 0x00 0000186f: KECCAK256 00001870: PUSH1 0x01 00001872: ADD 00001873: SLOAD 00001874: SWAP1 00001875: POP 00001876: JUMPDEST 00001877: JUMPDEST 00001878: PUSH2 0x187f 0000187b: PUSH2 0x2320 0000187e: JUMP 0000187f: JUMPDEST 00001880: PUSH1 0x08 00001882: PUSH1 0x00 00001884: DUP2 00001885: SLOAD 00001886: DUP1 00001887: SWAP3 00001888: SWAP2 00001889: SWAP1 0000188a: PUSH1 0x01 0000188c: ADD 0000188d: SWAP2 0000188e: SWAP1 0000188f: POP 00001890: SSTORE 00001891: POP 00001892: PUSH1 0x40 00001894: MLOAD 00001895: DUP1 00001896: PUSH1 0xc0 00001898: ADD 00001899: PUSH1 0x40 0000189b: MSTORE 0000189c: DUP1 0000189d: PUSH1 0x01 0000189f: ISZERO 000018a0: ISZERO 000018a1: DUP2 000018a2: MSTORE 000018a3: PUSH1 0x20 000018a5: ADD 000018a6: PUSH1 0x08 000018a8: SLOAD 000018a9: DUP2 000018aa: MSTORE 000018ab: PUSH1 0x20 000018ad: ADD 000018ae: DUP4 000018af: DUP2 000018b0: MSTORE 000018b1: PUSH1 0x20 000018b3: ADD 000018b4: PUSH1 0x00 000018b6: PUSH1 0x40 000018b8: MLOAD 000018b9: SWAP1 000018ba: DUP1 000018bb: DUP3 000018bc: MSTORE 000018bd: DUP1 000018be: PUSH1 0x20 000018c0: MUL 000018c1: PUSH1 0x20 000018c3: ADD 000018c4: DUP3 000018c5: ADD 000018c6: PUSH1 0x40 000018c8: MSTORE 000018c9: DUP1 000018ca: ISZERO 000018cb: PUSH2 0x18e3 000018ce: JUMPI 000018cf: DUP2 000018d0: PUSH1 0x20 000018d2: ADD 000018d3: PUSH1 0x20 000018d5: DUP3 000018d6: MUL 000018d7: DUP1 000018d8: CODESIZE 000018d9: DUP4 000018da: CODECOPY 000018db: DUP1 000018dc: DUP3 000018dd: ADD 000018de: SWAP2 000018df: POP 000018e0: POP 000018e1: SWAP1 000018e2: POP 000018e3: JUMPDEST 000018e4: POP 000018e5: DUP2 000018e6: MSTORE 000018e7: PUSH1 0x20 000018e9: ADD 000018ea: DUP5 000018eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001900: AND 00001901: DUP2 00001902: MSTORE 00001903: PUSH1 0x20 00001905: ADD 00001906: PUSH1 0x00 00001908: DUP2 00001909: MSTORE 0000190a: POP 0000190b: SWAP1 0000190c: POP 0000190d: DUP1 0000190e: PUSH1 0x06 00001910: PUSH1 0x00 00001912: CALLER 00001913: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001928: AND 00001929: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000193e: AND 0000193f: DUP2 00001940: MSTORE 00001941: PUSH1 0x20 00001943: ADD 00001944: SWAP1 00001945: DUP2 00001946: MSTORE 00001947: PUSH1 0x20 00001949: ADD 0000194a: PUSH1 0x00 0000194c: KECCAK256 0000194d: PUSH1 0x00 0000194f: DUP3 00001950: ADD 00001951: MLOAD 00001952: DUP2 00001953: PUSH1 0x00 00001955: ADD 00001956: PUSH1 0x00 00001958: PUSH2 0x0100 0000195b: EXP 0000195c: DUP2 0000195d: SLOAD 0000195e: DUP2 0000195f: PUSH1 0xff 00001961: MUL 00001962: NOT 00001963: AND 00001964: SWAP1 00001965: DUP4 00001966: ISZERO 00001967: ISZERO 00001968: MUL 00001969: OR 0000196a: SWAP1 0000196b: SSTORE 0000196c: POP 0000196d: PUSH1 0x20 0000196f: DUP3 00001970: ADD 00001971: MLOAD 00001972: DUP2 00001973: PUSH1 0x01 00001975: ADD 00001976: SSTORE 00001977: PUSH1 0x40 00001979: DUP3 0000197a: ADD 0000197b: MLOAD 0000197c: DUP2 0000197d: PUSH1 0x02 0000197f: ADD 00001980: SSTORE 00001981: PUSH1 0x60 00001983: DUP3 00001984: ADD 00001985: MLOAD 00001986: DUP2 00001987: PUSH1 0x03 00001989: ADD 0000198a: SWAP1 0000198b: DUP1 0000198c: MLOAD 0000198d: SWAP1 0000198e: PUSH1 0x20 00001990: ADD 00001991: SWAP1 00001992: PUSH2 0x199c 00001995: SWAP3 00001996: SWAP2 00001997: SWAP1 00001998: PUSH2 0x236e 0000199b: JUMP 0000199c: JUMPDEST 0000199d: POP 0000199e: PUSH1 0x80 000019a0: DUP3 000019a1: ADD 000019a2: MLOAD 000019a3: DUP2 000019a4: PUSH1 0x04 000019a6: ADD 000019a7: PUSH1 0x00 000019a9: PUSH2 0x0100 000019ac: EXP 000019ad: DUP2 000019ae: SLOAD 000019af: DUP2 000019b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019c5: MUL 000019c6: NOT 000019c7: AND 000019c8: SWAP1 000019c9: DUP4 000019ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019df: AND 000019e0: MUL 000019e1: OR 000019e2: SWAP1 000019e3: SSTORE 000019e4: POP 000019e5: PUSH1 0xa0 000019e7: DUP3 000019e8: ADD 000019e9: MLOAD 000019ea: DUP2 000019eb: PUSH1 0x05 000019ed: ADD 000019ee: SSTORE 000019ef: SWAP1 000019f0: POP 000019f1: POP 000019f2: CALLER 000019f3: PUSH1 0x07 000019f5: PUSH1 0x00 000019f7: PUSH1 0x08 000019f9: SLOAD 000019fa: DUP2 000019fb: MSTORE 000019fc: PUSH1 0x20 000019fe: ADD 000019ff: SWAP1 00001a00: DUP2 00001a01: MSTORE 00001a02: PUSH1 0x20 00001a04: ADD 00001a05: PUSH1 0x00 00001a07: KECCAK256 00001a08: PUSH1 0x00 00001a0a: PUSH2 0x0100 00001a0d: EXP 00001a0e: DUP2 00001a0f: SLOAD 00001a10: DUP2 00001a11: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a26: MUL 00001a27: NOT 00001a28: AND 00001a29: SWAP1 00001a2a: DUP4 00001a2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a40: AND 00001a41: MUL 00001a42: OR 00001a43: SWAP1 00001a44: SSTORE 00001a45: POP 00001a46: PUSH1 0x06 00001a48: PUSH1 0x00 00001a4a: PUSH1 0x07 00001a4c: PUSH1 0x00 00001a4e: DUP6 00001a4f: DUP2 00001a50: MSTORE 00001a51: PUSH1 0x20 00001a53: ADD 00001a54: SWAP1 00001a55: DUP2 00001a56: MSTORE 00001a57: PUSH1 0x20 00001a59: ADD 00001a5a: PUSH1 0x00 00001a5c: KECCAK256 00001a5d: PUSH1 0x00 00001a5f: SWAP1 00001a60: SLOAD 00001a61: SWAP1 00001a62: PUSH2 0x0100 00001a65: EXP 00001a66: SWAP1 00001a67: DIV 00001a68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a7d: AND 00001a7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a93: AND 00001a94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aa9: AND 00001aaa: DUP2 00001aab: MSTORE 00001aac: PUSH1 0x20 00001aae: ADD 00001aaf: SWAP1 00001ab0: DUP2 00001ab1: MSTORE 00001ab2: PUSH1 0x20 00001ab4: ADD 00001ab5: PUSH1 0x00 00001ab7: KECCAK256 00001ab8: PUSH1 0x03 00001aba: ADD 00001abb: CALLER 00001abc: SWAP1 00001abd: DUP1 00001abe: PUSH1 0x01 00001ac0: DUP2 00001ac1: SLOAD 00001ac2: ADD 00001ac3: DUP1 00001ac4: DUP3 00001ac5: SSTORE 00001ac6: DUP1 00001ac7: SWAP2 00001ac8: POP 00001ac9: POP 00001aca: SWAP1 00001acb: PUSH1 0x01 00001acd: DUP3 00001ace: SUB 00001acf: SWAP1 00001ad0: PUSH1 0x00 00001ad2: MSTORE 00001ad3: PUSH1 0x20 00001ad5: PUSH1 0x00 00001ad7: KECCAK256 00001ad8: ADD 00001ad9: PUSH1 0x00 00001adb: SWAP1 00001adc: SWAP2 00001add: SWAP3 00001ade: SWAP1 00001adf: SWAP2 00001ae0: SWAP1 00001ae1: SWAP2 00001ae2: PUSH2 0x0100 00001ae5: EXP 00001ae6: DUP2 00001ae7: SLOAD 00001ae8: DUP2 00001ae9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001afe: MUL 00001aff: NOT 00001b00: AND 00001b01: SWAP1 00001b02: DUP4 00001b03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b18: AND 00001b19: MUL 00001b1a: OR 00001b1b: SWAP1 00001b1c: SSTORE 00001b1d: POP 00001b1e: POP 00001b1f: PUSH1 0x07 00001b21: PUSH1 0x00 00001b23: DUP4 00001b24: DUP2 00001b25: MSTORE 00001b26: PUSH1 0x20 00001b28: ADD 00001b29: SWAP1 00001b2a: DUP2 00001b2b: MSTORE 00001b2c: PUSH1 0x20 00001b2e: ADD 00001b2f: PUSH1 0x00 00001b31: KECCAK256 00001b32: PUSH1 0x00 00001b34: SWAP1 00001b35: SLOAD 00001b36: SWAP1 00001b37: PUSH2 0x0100 00001b3a: EXP 00001b3b: SWAP1 00001b3c: DIV 00001b3d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b52: AND 00001b53: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b68: AND 00001b69: CALLER 00001b6a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b7f: AND 00001b80: PUSH32 0x0c88ab673df7b82fb9cd3ae0ce2597b0af9d0c8a5a07c47651908a88568b9a04 00001ba1: TIMESTAMP 00001ba2: PUSH1 0x06 00001ba4: PUSH1 0x40 00001ba6: MLOAD 00001ba7: DUP1 00001ba8: DUP4 00001ba9: DUP2 00001baa: MSTORE 00001bab: PUSH1 0x20 00001bad: ADD 00001bae: DUP3 00001baf: DUP2 00001bb0: MSTORE 00001bb1: PUSH1 0x20 00001bb3: ADD 00001bb4: SWAP3 00001bb5: POP 00001bb6: POP 00001bb7: POP 00001bb8: PUSH1 0x40 00001bba: MLOAD 00001bbb: DUP1 00001bbc: SWAP2 00001bbd: SUB 00001bbe: SWAP1 00001bbf: LOG3 00001bc0: PUSH1 0x00 00001bc2: DUP1 00001bc3: SWAP1 00001bc4: POP 00001bc5: PUSH1 0x06 00001bc7: PUSH1 0x00 00001bc9: DUP6 00001bca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bdf: AND 00001be0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bf5: AND 00001bf6: DUP2 00001bf7: MSTORE 00001bf8: PUSH1 0x20 00001bfa: ADD 00001bfb: SWAP1 00001bfc: DUP2 00001bfd: MSTORE 00001bfe: PUSH1 0x20 00001c00: ADD 00001c01: PUSH1 0x00 00001c03: KECCAK256 00001c04: PUSH1 0x00 00001c06: ADD 00001c07: PUSH1 0x00 00001c09: SWAP1 00001c0a: SLOAD 00001c0b: SWAP1 00001c0c: PUSH2 0x0100 00001c0f: EXP 00001c10: SWAP1 00001c11: DIV 00001c12: PUSH1 0xff 00001c14: AND 00001c15: ISZERO 00001c16: PUSH2 0x1cb7 00001c19: JUMPI 00001c1a: PUSH1 0x01 00001c1c: PUSH1 0x06 00001c1e: PUSH1 0x00 00001c20: DUP7 00001c21: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c36: AND 00001c37: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c4c: AND 00001c4d: DUP2 00001c4e: MSTORE 00001c4f: PUSH1 0x20 00001c51: ADD 00001c52: SWAP1 00001c53: DUP2 00001c54: MSTORE 00001c55: PUSH1 0x20 00001c57: ADD 00001c58: PUSH1 0x00 00001c5a: KECCAK256 00001c5b: PUSH1 0x05 00001c5d: ADD 00001c5e: PUSH1 0x00 00001c60: DUP3 00001c61: DUP3 00001c62: SLOAD 00001c63: ADD 00001c64: SWAP3 00001c65: POP 00001c66: POP 00001c67: DUP2 00001c68: SWAP1 00001c69: SSTORE 00001c6a: POP 00001c6b: DUP4 00001c6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c81: AND 00001c82: PUSH2 0x08fc 00001c85: PUSH8 0x02c68af0bb140000 00001c8e: SWAP1 00001c8f: DUP2 00001c90: ISZERO 00001c91: MUL 00001c92: SWAP1 00001c93: PUSH1 0x40 00001c95: MLOAD 00001c96: PUSH1 0x00 00001c98: PUSH1 0x40 00001c9a: MLOAD 00001c9b: DUP1 00001c9c: DUP4 00001c9d: SUB 00001c9e: DUP2 00001c9f: DUP6 00001ca0: DUP9 00001ca1: DUP9 00001ca2: CALL 00001ca3: SWAP4 00001ca4: POP 00001ca5: POP 00001ca6: POP 00001ca7: POP 00001ca8: SWAP1 00001ca9: POP 00001caa: PUSH2 0x1cb2 00001cad: DUP5 00001cae: PUSH2 0x2029 00001cb1: JUMP 00001cb2: JUMPDEST 00001cb3: PUSH2 0x1d19 00001cb6: JUMP 00001cb7: JUMPDEST 00001cb8: PUSH1 0x01 00001cba: PUSH1 0x00 00001cbc: SWAP1 00001cbd: SLOAD 00001cbe: SWAP1 00001cbf: PUSH2 0x0100 00001cc2: EXP 00001cc3: SWAP1 00001cc4: DIV 00001cc5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cda: AND 00001cdb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cf0: AND 00001cf1: PUSH2 0x08fc 00001cf4: PUSH8 0x02c68af0bb140000 00001cfd: SWAP1 00001cfe: DUP2 00001cff: ISZERO 00001d00: MUL 00001d01: SWAP1 00001d02: PUSH1 0x40 00001d04: MLOAD 00001d05: PUSH1 0x00 00001d07: PUSH1 0x40 00001d09: MLOAD 00001d0a: DUP1 00001d0b: DUP4 00001d0c: SUB 00001d0d: DUP2 00001d0e: DUP6 00001d0f: DUP9 00001d10: DUP9 00001d11: CALL 00001d12: SWAP4 00001d13: POP 00001d14: POP 00001d15: POP 00001d16: POP 00001d17: SWAP1 00001d18: POP 00001d19: JUMPDEST 00001d1a: DUP1 00001d1b: ISZERO 00001d1c: PUSH2 0x1da4 00001d1f: JUMPI 00001d20: CALLER 00001d21: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d36: AND 00001d37: DUP5 00001d38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d4d: AND 00001d4e: PUSH32 0x48312df7d168f67e4d789b35dfb1e3246e9cf2b96d0af3b36134bf08cd3d728e 00001d6f: PUSH1 0x00 00001d71: TIMESTAMP 00001d72: PUSH1 0x06 00001d74: PUSH1 0x40 00001d76: MLOAD 00001d77: DUP1 00001d78: DUP5 00001d79: DUP2 00001d7a: MSTORE 00001d7b: PUSH1 0x20 00001d7d: ADD 00001d7e: DUP4 00001d7f: DUP2 00001d80: MSTORE 00001d81: PUSH1 0x20 00001d83: ADD 00001d84: DUP3 00001d85: DUP2 00001d86: MSTORE 00001d87: PUSH1 0x20 00001d89: ADD 00001d8a: SWAP4 00001d8b: POP 00001d8c: POP 00001d8d: POP 00001d8e: POP 00001d8f: PUSH1 0x40 00001d91: MLOAD 00001d92: DUP1 00001d93: SWAP2 00001d94: SUB 00001d95: SWAP1 00001d96: LOG3 00001d97: PUSH2 0x1da3 00001d9a: PUSH1 0x01 00001d9c: CALLER 00001d9d: PUSH1 0x06 00001d9f: PUSH2 0x216f 00001da2: JUMP 00001da3: JUMPDEST 00001da4: JUMPDEST 00001da5: POP 00001da6: POP 00001da7: POP 00001da8: POP 00001da9: JUMP 00001daa: JUMPDEST 00001dab: PUSH1 0x01 00001dad: PUSH1 0x00 00001daf: SWAP1 00001db0: SLOAD 00001db1: SWAP1 00001db2: PUSH2 0x0100 00001db5: EXP 00001db6: SWAP1 00001db7: DIV 00001db8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dcd: AND 00001dce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001de3: AND 00001de4: CALLER 00001de5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dfa: AND 00001dfb: EQ 00001dfc: PUSH2 0x1e6d 00001dff: JUMPI 00001e00: PUSH1 0x40 00001e02: MLOAD 00001e03: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001e24: DUP2 00001e25: MSTORE 00001e26: PUSH1 0x04 00001e28: ADD 00001e29: DUP1 00001e2a: DUP1 00001e2b: PUSH1 0x20 00001e2d: ADD 00001e2e: DUP3 00001e2f: DUP2 00001e30: SUB 00001e31: DUP3 00001e32: MSTORE 00001e33: PUSH1 0x16 00001e35: DUP2 00001e36: MSTORE 00001e37: PUSH1 0x20 00001e39: ADD 00001e3a: DUP1 00001e3b: PUSH32 0x596f7520617265206e6f7420617574686f72697a656400000000000000000000 00001e5c: DUP2 00001e5d: MSTORE 00001e5e: POP 00001e5f: PUSH1 0x20 00001e61: ADD 00001e62: SWAP2 00001e63: POP 00001e64: POP 00001e65: PUSH1 0x40 00001e67: MLOAD 00001e68: DUP1 00001e69: SWAP2 00001e6a: SUB 00001e6b: SWAP1 00001e6c: REVERT 00001e6d: JUMPDEST 00001e6e: PUSH1 0x01 00001e70: PUSH1 0x00 00001e72: SWAP1 00001e73: SLOAD 00001e74: SWAP1 00001e75: PUSH2 0x0100 00001e78: EXP 00001e79: SWAP1 00001e7a: DIV 00001e7b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e90: AND 00001e91: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ea6: AND 00001ea7: CALLER 00001ea8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ebd: AND 00001ebe: EQ 00001ebf: ISZERO 00001ec0: PUSH2 0x1f34 00001ec3: JUMPI 00001ec4: PUSH1 0x00 00001ec6: PUSH2 0x1ecd 00001ec9: PUSH2 0x1f36 00001ecc: JUMP 00001ecd: JUMPDEST 00001ece: GT 00001ecf: ISZERO 00001ed0: PUSH2 0x1f33 00001ed3: JUMPI 00001ed4: PUSH1 0x01 00001ed6: PUSH1 0x00 00001ed8: SWAP1 00001ed9: SLOAD 00001eda: SWAP1 00001edb: PUSH2 0x0100 00001ede: EXP 00001edf: SWAP1 00001ee0: DIV 00001ee1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ef6: AND 00001ef7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f0c: AND 00001f0d: PUSH2 0x08fc 00001f10: PUSH2 0x1f17 00001f13: PUSH2 0x1f36 00001f16: JUMP 00001f17: JUMPDEST 00001f18: SWAP1 00001f19: DUP2 00001f1a: ISZERO 00001f1b: MUL 00001f1c: SWAP1 00001f1d: PUSH1 0x40 00001f1f: MLOAD 00001f20: PUSH1 0x00 00001f22: PUSH1 0x40 00001f24: MLOAD 00001f25: DUP1 00001f26: DUP4 00001f27: SUB 00001f28: DUP2 00001f29: DUP6 00001f2a: DUP9 00001f2b: DUP9 00001f2c: CALL 00001f2d: SWAP4 00001f2e: POP 00001f2f: POP 00001f30: POP 00001f31: POP 00001f32: POP 00001f33: JUMPDEST 00001f34: JUMPDEST 00001f35: JUMP 00001f36: JUMPDEST 00001f37: PUSH1 0x00 00001f39: ADDRESS 00001f3a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f4f: AND 00001f50: BALANCE 00001f51: SWAP1 00001f52: POP 00001f53: SWAP1 00001f54: JUMP 00001f55: JUMPDEST 00001f56: PUSH1 0x04 00001f58: PUSH1 0x20 00001f5a: MSTORE 00001f5b: DUP1 00001f5c: PUSH1 0x00 00001f5e: MSTORE 00001f5f: PUSH1 0x40 00001f61: PUSH1 0x00 00001f63: KECCAK256 00001f64: PUSH1 0x00 00001f66: SWAP2 00001f67: POP 00001f68: SWAP1 00001f69: POP 00001f6a: SLOAD 00001f6b: DUP2 00001f6c: JUMP 00001f6d: JUMPDEST 00001f6e: PUSH1 0x05 00001f70: PUSH1 0x20 00001f72: MSTORE 00001f73: DUP1 00001f74: PUSH1 0x00 00001f76: MSTORE 00001f77: PUSH1 0x40 00001f79: PUSH1 0x00 00001f7b: KECCAK256 00001f7c: PUSH1 0x00 00001f7e: SWAP2 00001f7f: POP 00001f80: SWAP1 00001f81: POP 00001f82: SLOAD 00001f83: DUP2 00001f84: JUMP 00001f85: JUMPDEST 00001f86: PUSH1 0x00 00001f88: PUSH1 0x06 00001f8a: PUSH1 0x00 00001f8c: DUP4 00001f8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fa2: AND 00001fa3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fb8: AND 00001fb9: DUP2 00001fba: MSTORE 00001fbb: PUSH1 0x20 00001fbd: ADD 00001fbe: SWAP1 00001fbf: DUP2 00001fc0: MSTORE 00001fc1: PUSH1 0x20 00001fc3: ADD 00001fc4: PUSH1 0x00 00001fc6: KECCAK256 00001fc7: PUSH1 0x00 00001fc9: ADD 00001fca: PUSH1 0x00 00001fcc: SWAP1 00001fcd: SLOAD 00001fce: SWAP1 00001fcf: PUSH2 0x0100 00001fd2: EXP 00001fd3: SWAP1 00001fd4: DIV 00001fd5: PUSH1 0xff 00001fd7: AND 00001fd8: SWAP1 00001fd9: POP 00001fda: SWAP2 00001fdb: SWAP1 00001fdc: POP 00001fdd: JUMP 00001fde: JUMPDEST 00001fdf: PUSH1 0x07 00001fe1: PUSH1 0x20 00001fe3: MSTORE 00001fe4: DUP1 00001fe5: PUSH1 0x00 00001fe7: MSTORE 00001fe8: PUSH1 0x40 00001fea: PUSH1 0x00 00001fec: KECCAK256 00001fed: PUSH1 0x00 00001fef: SWAP2 00001ff0: POP 00001ff1: SLOAD 00001ff2: SWAP1 00001ff3: PUSH2 0x0100 00001ff6: EXP 00001ff7: SWAP1 00001ff8: DIV 00001ff9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000200e: AND 0000200f: DUP2 00002010: JUMP 00002011: JUMPDEST 00002012: PUSH1 0x03 00002014: PUSH1 0x20 00002016: MSTORE 00002017: DUP1 00002018: PUSH1 0x00 0000201a: MSTORE 0000201b: PUSH1 0x40 0000201d: PUSH1 0x00 0000201f: KECCAK256 00002020: PUSH1 0x00 00002022: SWAP2 00002023: POP 00002024: SWAP1 00002025: POP 00002026: SLOAD 00002027: DUP2 00002028: JUMP 00002029: JUMPDEST 0000202a: PUSH1 0x00 0000202c: PUSH1 0x06 0000202e: PUSH1 0x00 00002030: DUP4 00002031: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002046: AND 00002047: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000205c: AND 0000205d: DUP2 0000205e: MSTORE 0000205f: PUSH1 0x20 00002061: ADD 00002062: SWAP1 00002063: DUP2 00002064: MSTORE 00002065: PUSH1 0x20 00002067: ADD 00002068: PUSH1 0x00 0000206a: KECCAK256 0000206b: PUSH1 0x05 0000206d: ADD 0000206e: SLOAD 0000206f: SWAP1 00002070: POP 00002071: PUSH1 0x00 00002073: DUP1 00002074: SWAP1 00002075: POP 00002076: PUSH1 0x05 00002078: DUP3 00002079: EQ 0000207a: ISZERO 0000207b: PUSH2 0x2083 0000207e: JUMPI 0000207f: PUSH1 0x01 00002081: SWAP1 00002082: POP 00002083: JUMPDEST 00002084: PUSH1 0x0f 00002086: DUP3 00002087: EQ 00002088: ISZERO 00002089: PUSH2 0x2091 0000208c: JUMPI 0000208d: PUSH1 0x02 0000208f: SWAP1 00002090: POP 00002091: JUMPDEST 00002092: PUSH1 0x19 00002094: DUP3 00002095: EQ 00002096: ISZERO 00002097: PUSH2 0x209f 0000209a: JUMPI 0000209b: PUSH1 0x03 0000209d: SWAP1 0000209e: POP 0000209f: JUMPDEST 000020a0: PUSH1 0x32 000020a2: DUP3 000020a3: EQ 000020a4: ISZERO 000020a5: PUSH2 0x20ad 000020a8: JUMPI 000020a9: PUSH1 0x04 000020ab: SWAP1 000020ac: POP 000020ad: JUMPDEST 000020ae: PUSH1 0x00 000020b0: DUP2 000020b1: GT 000020b2: ISZERO 000020b3: PUSH2 0x216a 000020b6: JUMPI 000020b7: PUSH1 0x00 000020b9: DUP4 000020ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020cf: AND 000020d0: PUSH2 0x08fc 000020d3: PUSH1 0x05 000020d5: PUSH1 0x00 000020d7: DUP6 000020d8: DUP2 000020d9: MSTORE 000020da: PUSH1 0x20 000020dc: ADD 000020dd: SWAP1 000020de: DUP2 000020df: MSTORE 000020e0: PUSH1 0x20 000020e2: ADD 000020e3: PUSH1 0x00 000020e5: KECCAK256 000020e6: SLOAD 000020e7: SWAP1 000020e8: DUP2 000020e9: ISZERO 000020ea: MUL 000020eb: SWAP1 000020ec: PUSH1 0x40 000020ee: MLOAD 000020ef: PUSH1 0x00 000020f1: PUSH1 0x40 000020f3: MLOAD 000020f4: DUP1 000020f5: DUP4 000020f6: SUB 000020f7: DUP2 000020f8: DUP6 000020f9: DUP9 000020fa: DUP9 000020fb: CALL 000020fc: SWAP4 000020fd: POP 000020fe: POP 000020ff: POP 00002100: POP 00002101: SWAP1 00002102: POP 00002103: DUP1 00002104: ISZERO 00002105: PUSH2 0x2168 00002108: JUMPI 00002109: DUP4 0000210a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000211f: AND 00002120: PUSH32 0xd62544fb5bfbdeb0d980cbea253f96b7293391ae1de4929651c0acd66b2d8d75 00002141: DUP4 00002142: TIMESTAMP 00002143: PUSH1 0x06 00002145: PUSH1 0x40 00002147: MLOAD 00002148: DUP1 00002149: DUP5 0000214a: DUP2 0000214b: MSTORE 0000214c: PUSH1 0x20 0000214e: ADD 0000214f: DUP4 00002150: DUP2 00002151: MSTORE 00002152: PUSH1 0x20 00002154: ADD 00002155: DUP3 00002156: DUP2 00002157: MSTORE 00002158: PUSH1 0x20 0000215a: ADD 0000215b: SWAP4 0000215c: POP 0000215d: POP 0000215e: POP 0000215f: POP 00002160: PUSH1 0x40 00002162: MLOAD 00002163: DUP1 00002164: SWAP2 00002165: SUB 00002166: SWAP1 00002167: LOG2 00002168: JUMPDEST 00002169: POP 0000216a: JUMPDEST 0000216b: POP 0000216c: POP 0000216d: POP 0000216e: JUMP 0000216f: JUMPDEST 00002170: PUSH1 0x00 00002172: PUSH1 0x07 00002174: PUSH1 0x00 00002176: PUSH1 0x06 00002178: PUSH1 0x00 0000217a: DUP7 0000217b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002190: AND 00002191: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021a6: AND 000021a7: DUP2 000021a8: MSTORE 000021a9: PUSH1 0x20 000021ab: ADD 000021ac: SWAP1 000021ad: DUP2 000021ae: MSTORE 000021af: PUSH1 0x20 000021b1: ADD 000021b2: PUSH1 0x00 000021b4: KECCAK256 000021b5: PUSH1 0x02 000021b7: ADD 000021b8: SLOAD 000021b9: DUP2 000021ba: MSTORE 000021bb: PUSH1 0x20 000021bd: ADD 000021be: SWAP1 000021bf: DUP2 000021c0: MSTORE 000021c1: PUSH1 0x20 000021c3: ADD 000021c4: PUSH1 0x00 000021c6: KECCAK256 000021c7: PUSH1 0x00 000021c9: SWAP1 000021ca: SLOAD 000021cb: SWAP1 000021cc: PUSH2 0x0100 000021cf: EXP 000021d0: SWAP1 000021d1: DIV 000021d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021e7: AND 000021e8: SWAP1 000021e9: POP 000021ea: PUSH1 0x00 000021ec: DUP2 000021ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002202: AND 00002203: PUSH2 0x08fc 00002206: PUSH1 0x03 00002208: PUSH1 0x00 0000220a: DUP9 0000220b: DUP2 0000220c: MSTORE 0000220d: PUSH1 0x20 0000220f: ADD 00002210: SWAP1 00002211: DUP2 00002212: MSTORE 00002213: PUSH1 0x20 00002215: ADD 00002216: PUSH1 0x00 00002218: KECCAK256 00002219: SLOAD 0000221a: SWAP1 0000221b: DUP2 0000221c: ISZERO 0000221d: MUL 0000221e: SWAP1 0000221f: PUSH1 0x40 00002221: MLOAD 00002222: PUSH1 0x00 00002224: PUSH1 0x40 00002226: MLOAD 00002227: DUP1 00002228: DUP4 00002229: SUB 0000222a: DUP2 0000222b: DUP6 0000222c: DUP9 0000222d: DUP9 0000222e: CALL 0000222f: SWAP4 00002230: POP 00002231: POP 00002232: POP 00002233: POP 00002234: SWAP1 00002235: POP 00002236: DUP1 00002237: ISZERO 00002238: PUSH2 0x2319 0000223b: JUMPI 0000223c: CALLER 0000223d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002252: AND 00002253: DUP3 00002254: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002269: AND 0000226a: PUSH32 0x48312df7d168f67e4d789b35dfb1e3246e9cf2b96d0af3b36134bf08cd3d728e 0000228b: DUP8 0000228c: TIMESTAMP 0000228d: DUP8 0000228e: PUSH1 0x40 00002290: MLOAD 00002291: DUP1 00002292: DUP5 00002293: DUP2 00002294: MSTORE 00002295: PUSH1 0x20 00002297: ADD 00002298: DUP4 00002299: DUP2 0000229a: MSTORE 0000229b: PUSH1 0x20 0000229d: ADD 0000229e: DUP3 0000229f: DUP2 000022a0: MSTORE 000022a1: PUSH1 0x20 000022a3: ADD 000022a4: SWAP4 000022a5: POP 000022a6: POP 000022a7: POP 000022a8: POP 000022a9: PUSH1 0x40 000022ab: MLOAD 000022ac: DUP1 000022ad: SWAP2 000022ae: SUB 000022af: SWAP1 000022b0: LOG3 000022b1: PUSH1 0x06 000022b3: DUP6 000022b4: LT 000022b5: DUP1 000022b6: ISZERO 000022b7: PUSH2 0x2303 000022ba: JUMPI 000022bb: POP 000022bc: PUSH1 0x01 000022be: PUSH1 0x06 000022c0: PUSH1 0x00 000022c2: DUP5 000022c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022d8: AND 000022d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022ee: AND 000022ef: DUP2 000022f0: MSTORE 000022f1: PUSH1 0x20 000022f3: ADD 000022f4: SWAP1 000022f5: DUP2 000022f6: MSTORE 000022f7: PUSH1 0x20 000022f9: ADD 000022fa: PUSH1 0x00 000022fc: KECCAK256 000022fd: PUSH1 0x02 000022ff: ADD 00002300: SLOAD 00002301: LT 00002302: ISZERO 00002303: JUMPDEST 00002304: ISZERO 00002305: PUSH2 0x2318 00002308: JUMPI 00002309: PUSH2 0x2317 0000230c: PUSH1 0x01 0000230e: DUP7 0000230f: ADD 00002310: DUP4 00002311: PUSH1 0x06 00002313: PUSH2 0x216f 00002316: JUMP 00002317: JUMPDEST 00002318: JUMPDEST 00002319: JUMPDEST 0000231a: POP 0000231b: POP 0000231c: POP 0000231d: POP 0000231e: POP 0000231f: JUMP 00002320: JUMPDEST 00002321: PUSH1 0x40 00002323: MLOAD 00002324: DUP1 00002325: PUSH1 0xc0 00002327: ADD 00002328: PUSH1 0x40 0000232a: MSTORE 0000232b: DUP1 0000232c: PUSH1 0x00 0000232e: ISZERO 0000232f: ISZERO 00002330: DUP2 00002331: MSTORE 00002332: PUSH1 0x20 00002334: ADD 00002335: PUSH1 0x00 00002337: DUP2 00002338: MSTORE 00002339: PUSH1 0x20 0000233b: ADD 0000233c: PUSH1 0x00 0000233e: DUP2 0000233f: MSTORE 00002340: PUSH1 0x20 00002342: ADD 00002343: PUSH1 0x60 00002345: DUP2 00002346: MSTORE 00002347: PUSH1 0x20 00002349: ADD 0000234a: PUSH1 0x00 0000234c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002361: AND 00002362: DUP2 00002363: MSTORE 00002364: PUSH1 0x20 00002366: ADD 00002367: PUSH1 0x00 00002369: DUP2 0000236a: MSTORE 0000236b: POP 0000236c: SWAP1 0000236d: JUMP 0000236e: JUMPDEST 0000236f: DUP3 00002370: DUP1 00002371: SLOAD 00002372: DUP3 00002373: DUP3 00002374: SSTORE 00002375: SWAP1 00002376: PUSH1 0x00 00002378: MSTORE 00002379: PUSH1 0x20 0000237b: PUSH1 0x00 0000237d: KECCAK256 0000237e: SWAP1 0000237f: DUP2 00002380: ADD 00002381: SWAP3 00002382: DUP3 00002383: ISZERO 00002384: PUSH2 0x23e7 00002387: JUMPI 00002388: SWAP2 00002389: PUSH1 0x20 0000238b: MUL 0000238c: DUP3 0000238d: ADD 0000238e: JUMPDEST 0000238f: DUP3 00002390: DUP2 00002391: GT 00002392: ISZERO 00002393: PUSH2 0x23e6 00002396: JUMPI 00002397: DUP3 00002398: MLOAD 00002399: DUP3 0000239a: PUSH1 0x00 0000239c: PUSH2 0x0100 0000239f: EXP 000023a0: DUP2 000023a1: SLOAD 000023a2: DUP2 000023a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023b8: MUL 000023b9: NOT 000023ba: AND 000023bb: SWAP1 000023bc: DUP4 000023bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023d2: AND 000023d3: MUL 000023d4: OR 000023d5: SWAP1 000023d6: SSTORE 000023d7: POP 000023d8: SWAP2 000023d9: PUSH1 0x20 000023db: ADD 000023dc: SWAP2 000023dd: SWAP1 000023de: PUSH1 0x01 000023e0: ADD 000023e1: SWAP1 000023e2: PUSH2 0x238e 000023e5: JUMP 000023e6: JUMPDEST 000023e7: JUMPDEST 000023e8: POP 000023e9: SWAP1 000023ea: POP 000023eb: PUSH2 0x23f4 000023ee: SWAP2 000023ef: SWAP1 000023f0: PUSH2 0x23f8 000023f3: JUMP 000023f4: JUMPDEST 000023f5: POP 000023f6: SWAP1 000023f7: JUMP 000023f8: JUMPDEST 000023f9: PUSH2 0x2438 000023fc: SWAP2 000023fd: SWAP1 000023fe: JUMPDEST 000023ff: DUP1 00002400: DUP3 00002401: GT 00002402: ISZERO 00002403: PUSH2 0x2434 00002406: JUMPI 00002407: PUSH1 0x00 00002409: DUP2 0000240a: DUP2 0000240b: PUSH2 0x0100 0000240e: EXP 0000240f: DUP2 00002410: SLOAD 00002411: SWAP1 00002412: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002427: MUL 00002428: NOT 00002429: AND 0000242a: SWAP1 0000242b: SSTORE 0000242c: POP 0000242d: PUSH1 0x01 0000242f: ADD 00002430: PUSH2 0x23fe 00002433: JUMP 00002434: JUMPDEST 00002435: POP 00002436: SWAP1 00002437: JUMP 00002438: JUMPDEST 00002439: SWAP1 0000243a: JUMP 0000243b: INVALID 0000243c: LOG2 0000243d: PUSH6 0x627a7a723158 00002444: KECCAK256 00002445: DUP13 00002446: UNKNOWN(0xDD) 00002447: POP 00002448: PUSH24 0xc48bf4c54559101c99084b47077d644da8422d25d4f992a5 00002461: SWAP16 00002462: CALLCODE 00002463: BLOBHASH 00002464: SSTORE 00002465: PUSH5 0x736f6c6343 0000246b: STOP 0000246c: SDIV 0000246d: SIGNEXTEND 0000246e: STOP 0000246f: ORIGIN
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x89b9abcc",
"selector": "0x89b9abcc",
"calldata_variants": [
"0x89b9abcc",
"0x89b9abcc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8de66295",
"selector": "0x8de66295",
"calldata_variants": [
"0x8de66295",
"0x8de662950000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa4aa17cb",
"selector": "0xa4aa17cb",
"calldata_variants": [
"0xa4aa17cb",
"0xa4aa17cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3be04fa",
"selector": "0xc3be04fa",
"calldata_variants": [
"0xc3be04fa",
"0xc3be04fa0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6ec0c3a5",
"selector": "0x6ec0c3a5",
"calldata_variants": [
"0x6ec0c3a5",
"0x6ec0c3a50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70ed0ada",
"selector": "0x70ed0ada",
"calldata_variants": [
"0x70ed0ada",
"0x70ed0ada0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x79378e30",
"selector": "0x79378e30",
"calldata_variants": [
"0x79378e30",
"0x79378e300000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3818fe3c",
"selector": "0x3818fe3c",
"calldata_variants": [
"0x3818fe3c",
"0x3818fe3c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 7652,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7847,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9327,
"type": "tx_origin_used"
}
]
}
|
| medium | auth | codex | tx.origin used in authorization path (phishing-prone access control) | 75 | no | — |
viewevidence_json{
"evidence": "Auth guard list contains type `tx_origin_used` at pc 9327, and the basic block at pc 9327 includes the ORIGIN opcode.",
"locations": [
"pc:9327"
],
"recommendation": "Replace tx.origin checks with msg.sender-based authorization and explicit role/owner checks. If tx.origin is used only for non-auth logic, remove it from authorization paths.",
"exploit_scenario": "If a privileged check relies on tx.origin, a malicious contract can trick a privileged EOA into calling it and then forward execution so the check passes, enabling unauthorized actions. Because only bytecode is available, it\u2019s unclear which functions rely on this guard, but the artifact flags tx.origin usage inside auth guards."
}
|
| medium | other | codex | CALLCODE usage with computed target/value | 75 | no | — |
viewevidence_json{
"evidence": "Callsite shows CALLCODE at pc 9314 with computed target/value; basic block starting at pc 9276 includes CALLCODE followed by SSTORE.",
"locations": [
"pc:9314",
"pc:9276"
],
"recommendation": "Avoid CALLCODE; use DELEGATECALL only to trusted, immutable implementations. If dynamic targets are required, strictly constrain and validate them (e.g., immutable whitelist), and ensure upgrade paths are well-guarded.",
"exploit_scenario": "CALLCODE executes code in the caller\u2019s storage context (like DELEGATECALL). If the CALLCODE target or value can be influenced (e.g., via storage or calldata), an attacker could execute arbitrary code in the contract\u2019s storage context, potentially overwriting critical slots or draining funds. The bytecode summary shows the CALLCODE target/value are computed, but the actual source of the target is not visible here."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x38d6b41a15e69dfc17dd12b80ca0a3a7569a7d3044205f708fcc92d7b662ecc6
call_targets:
0xcf7cdbd3de63764f6724f55f1de79a7054085eb9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x38d6b41a15e69dfc17dd12b80ca0a3a7569a7d3044205f708fcc92d7b662ecc6",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xcf7cdbd3de63764f6724f55f1de79a7054085eb9"
],
"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": "0x89b9abcc",
"selector": "0x89b9abcc",
"calldata_variants": [
"0x89b9abcc",
"0x89b9abcc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8de66295",
"selector": "0x8de66295",
"calldata_variants": [
"0x8de66295",
"0x8de662950000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa4aa17cb",
"selector": "0xa4aa17cb",
"calldata_variants": [
"0xa4aa17cb",
"0xa4aa17cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3be04fa",
"selector": "0xc3be04fa",
"calldata_variants": [
"0xc3be04fa",
"0xc3be04fa0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6ec0c3a5",
"selector": "0x6ec0c3a5",
"calldata_variants": [
"0x6ec0c3a5",
"0x6ec0c3a50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70ed0ada",
"selector": "0x70ed0ada",
"calldata_variants": [
"0x70ed0ada",
"0x70ed0ada0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x79378e30",
"selector": "0x79378e30",
"calldata_variants": [
"0x79378e30",
"0x79378e300000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3818fe3c",
"selector": "0x3818fe3c",
"calldata_variants": [
"0x3818fe3c",
"0x3818fe3c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7330,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7441,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7980,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 6,
"guards_detected": [
{
"pc": 7652,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7847,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9327,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 6
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x38d6b41a15e69dfc17dd12b80ca0a3a7569a7d3044205f708fcc92d7b662ecc6
call_targets:
0xcf7cdbd3de63764f6724f55f1de79a7054085eb9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x38d6b41a15e69dfc17dd12b80ca0a3a7569a7d3044205f708fcc92d7b662ecc6",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xcf7cdbd3de63764f6724f55f1de79a7054085eb9"
],
"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": "0x89b9abcc",
"selector": "0x89b9abcc",
"calldata_variants": [
"0x89b9abcc",
"0x89b9abcc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8de66295",
"selector": "0x8de66295",
"calldata_variants": [
"0x8de66295",
"0x8de662950000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa4aa17cb",
"selector": "0xa4aa17cb",
"calldata_variants": [
"0xa4aa17cb",
"0xa4aa17cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3be04fa",
"selector": "0xc3be04fa",
"calldata_variants": [
"0xc3be04fa",
"0xc3be04fa0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6ec0c3a5",
"selector": "0x6ec0c3a5",
"calldata_variants": [
"0x6ec0c3a5",
"0x6ec0c3a50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70ed0ada",
"selector": "0x70ed0ada",
"calldata_variants": [
"0x70ed0ada",
"0x70ed0ada0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x79378e30",
"selector": "0x79378e30",
"calldata_variants": [
"0x79378e30",
"0x79378e300000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3818fe3c",
"selector": "0x3818fe3c",
"calldata_variants": [
"0x3818fe3c",
"0x3818fe3c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7330,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7441,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7980,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 6,
"guards_detected": [
{
"pc": 7652,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7847,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9327,
"type": "tx_origin_used"
}
]
}
|
| low | reentrancy | codex | Multiple external CALLs to computed targets/values (possible untrusted-call surface) | 65 | no | — |
viewevidence_json{
"evidence": "CALL sites at pcs 7330, 7441, 7980, 8443, 8750 show target_expression_category and value_expression_category as `computed` with no explicit returndata check in the artifact.",
"locations": [
"pc:7330",
"pc:7441",
"pc:7980",
"pc:8443",
"pc:8750"
],
"recommendation": "Verify each CALL target is trusted/constant; apply checks-effects-interactions and/or a reentrancy guard where state mutations precede external calls. Ensure return values are handled appropriately.",
"exploit_scenario": "If any computed CALL target/value can be influenced by a user, those external calls can trigger reentrancy or arbitrary external interactions before internal state updates. The bundle indicates several CALL sites with computed targets/values; however, validation hints the target may be constant in at least one trace, so this may be benign."
}
|