019be3d6-8282-7361-9368-6a167143af5d
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 |
|---|---|---|---|---|
| 40666 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 40667 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 40668 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 40669 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 40670 | capability.graph | complete | 1 / 3 | 2 months ago |
| 40671 | detector.run | complete | 1 / 3 | 2 months ago |
| 40672 | validation.fork | complete | 1 / 3 | 2 months ago |
| 41270 | report.consolidate | complete | 1 / 6 | 2 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode shows two low-level CALL sites with computed targets/values. One CALL is followed by an SSTORE (effects after interaction), and another CALL’s success handling is unclear. No delegatecall/proxy behavior detected in the bundle.","findings":[{"severity":"medium","category":"reentrancy","title":"External CALL before state update (possible reentrancy if target untrusted)","exploit_scenario":"If the CALL at pc 0x1e6c targets an untrusted contract, that contract can reenter before the subsequent SSTORE executes, potentially exploiting temporarily inconsistent state or bypassing intended sequencing. This risk depends on whether the callee is attacker-controlled (target appears storage-derived).","recommendation":"Follow checks-effects-interactions: move critical state updates before the external CALL, add a reentrancy guard, and restrict/validate the call target if it is configurable.","evidence":"CALL at pc 0x1e6c is followed by an SSTORE in the next block (pc 0x1e82). No guards detected in the bundle. Target is derived from storage with an EXTCODESIZE check earlier in the sequence.","locations":["pc:0x1e6c","pc:0x1e82"]},{"severity":"low","category":"other","title":"Low-level CALL with computed target/value and unclear success enforcement","exploit_scenario":"If the CALL at pc 0x2f79 uses a caller-controlled target/value, the contract could be coerced into arbitrary external calls or ETH transfers. The bytecode sequence appears to discard the CALL success flag and only compares RETURNDATASIZE, so a failed call may be treated as success. Validation indicates a constant self-target in one trace, so the risk is uncertain and may be benign depending on actual target flow.","recommendation":"Validate or whitelist the call target and value, and explicitly check the CALL success flag before proceeding. Handle return data in a way compatible with expected ABI (e.g., require success and accept empty/32-byte returns if calling ERC20s).","evidence":"CALL at pc 0x2f79 with computed target/value; opcodes show CALL followed by SWAP/POP operations and a RETURNDATASIZE equality check. Detector findings report computed target/value and possible ETH value transfer; guards_detected is empty, and validation did not confirm a variable target.","locations":["pc:0x2f79"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-abiqypvr
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be410-5cfc-7591-847c-b4828bf1bc46
--------
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 using shell command**
exec
/bin/bash -lc ls in /tmp/codex-abiqypvr succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-abiqypvr succeeded in 12ms:
{
"analysis_artifact": {
"address": "0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e",
"artifact_hash": "0xb502b2495fe6174bae4b785642d3f35c480a4f2363050a2cdd919e5e2fe18c11",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0x635c2eced0a12ff86c199f2381fa274374b43ad17b6da9f41d493b80c5f32868",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATASIZE",
"LT",
"PUSH2",
thinking
**Scoping analysis on storage and callsites**
I'm targeting relevant data on storage slots and callsites by searching the bytecode bundle JSON for those keywords to locate detectors and evidence efficiently despite the file's large size.
exec
/bin/bash -lc 'rg -n "storage|slot|proxy|EIP-1967|delegatecall|beacon" BYTECODE_BUNDLE.json' in /tmp/codex-abiqypvr succeeded in 11ms:
15006: "delegatecall": 0,
15010: "storage": {
15012: "slots": [
15016: "slot": "0x000000000000000000000000000000000000000000000000000000000000000e"
15021: "slot": "0x0000000000000000000000000000000000000000000000000000000000000010"
15026: "slot": "0x000000000000000000000000000000000000000000000000000000000000000d"
15031: "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
15036: "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
15041: "slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
15046: "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
15051: "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
15056: "slot": "0x0000000000000000000000000000000000000000000000000000000000000009"
15061: "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
15066: "slot": "0x000000000000000000000000000000000000000000000000000000000000000f"
15071: "slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
15076: "slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
15081: "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
15086: "slot": "0x000000000000000000000000000000000000000000000000000000000000000d"
15091: "slot": "0x0000000000000000000000000000000000000000000000000000000000000009"
15096: "slot": "0x0000000000000000000000000000000000000000000000000000000000000009"
thinking
**Planning focused search on callsites and evidence**
exec
/bin/bash -lc 'rg -n "callsites|evidence_bundle|callsite" BYTECODE_BUNDLE.json' in /tmp/codex-abiqypvr succeeded in 7ms:
11194: "callsites": [
44747: "type": "callsite"
44753: "type": "callsite"
44759: "type": "callsite"
exec
/bin/bash -lc "sed -n '11180,11260p' BYTECODE_BUNDLE.json" in /tmp/codex-abiqypvr succeeded in 11ms:
"OP_22",
"SLT",
"SHA3",
"OP_28",
"OP_DB",
"PUSH9",
"BALANCE",
"CALLER",
"OP_BA",
"PUSH28"
],
"start_pc": 14283
}
],
"callsites": [
{
"opcode": "STATICCALL",
"pc": 3253,
"returndata_checked": null,
"target_expression_category": "computed",
thinking
**Analyzing call target evidence**
The call target appears constant to self, suggesting internal calls that could trigger reentrancy via fallback, but current detector flags might be false positives; more detailed evidence on state changes and CALL sites in the bytecode or evidence bundle is needed.
exec
/bin/bash -lc 'rg -n "evidence_bundle|evidence" BYTECODE_BUNDLE.json' in /tmp/codex-abiqypvr succeeded in 13ms:
36091: "proxy_evidence": {
45085: "evidence_json": {
45130: "evidence_json": {
exec
/bin/bash -lc "sed -n '45060,45160p' BYTECODE_BUNDLE.json" in /tmp/codex-abiqypvr succeeded in 12ms:
"selector": "0x01ffc9a7",
"type": "function"
},
{
"entry_pc": 130842681,
"id": "fn:0x04c2e308",
"selector": "0x04c2e308",
"type": "function"
},
{
"entry_pc": null,
"id": "fn:0x07cc8039",
"selector": "0x07cc8039",
"type": "function"
}
],
"version": "capability_graph_v1"
},
"id": 1148,
"updated_at": "2026-01-22T03:54:56.000000Z",
exec
/bin/bash -lc "sed -n '45160,45220p' BYTECODE_BUNDLE.json" in /tmp/codex-abiqypvr succeeded in 15ms:
"0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e"
],
"classification": "constant_target",
"confirmed": false,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "sink_reached",
"target_varies": false,
"trace_id": "0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b",
"trace_mode": "callTracer"
}
}
],
"heuristics_summary": {
"create2_count": 0,
"delegatecall_count": 0,
"flags": [],
"selfdestruct_count": 0
}
thinking
**Assessing external calls for return checks**
I'm analyzing callsites at 7788 and 12153, where CALL opcodes occur with no detected return value checks, which risks silent failures or reentrancy. Next, I'll locate basic blocks spanning those PCs to confirm if the calls target self or external contracts and gather concrete opcode context.
thinking
**Planning JSON parsing for basic blocks**
I'm preparing a small Python script to read the JSON and identify the basic block covering PC 7788 by parsing start and end PCs, enabling precise opcode context extraction for analysis.
exec
/bin/bash -lc "python - <<'PY'
import json
import sys
path='BYTECODE_BUNDLE.json'
with open(path) as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
call_pcs=[7788,12153,3253]
for pc in call_pcs:
bb=[b for b in blocks if b.get('start_pc') is not None and b['start_pc']<=pc<=b['end_pc']]
print('pc',pc,'blocks',len(bb))
for b in bb[:3]:
print(' start',b['start_pc'],'end',b['end_pc'],'hash',b.get('hash'))
print(' opcodes',b.get('opcodes'))
print('---')
PY" in /tmp/codex-abiqypvr succeeded in 43ms:
pc 7788 blocks 1
start 7785 end 7795 hash 0x74b22583c64805aa62dd205c2e663cb1f23d200f218da0a2b2e724158aa2fd01
opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 12153 blocks 1
start 12140 end 12167 hash 0x384720ec1f842cb9f2c6f9a6f0bc3507eafe3454a821c932aa2387e85fab4638
opcodes ['JUMPDEST', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_87', 'GAS', 'CALL', 'OP_92', 'POP', 'POP', 'POP', 'RETURNDATASIZE', 'OP_80', 'PUSH1', 'OP_81', 'EQ', 'PUSH2', 'JUMPI']
---
pc 3253 blocks 1
start 3159 end 3260 hash 0xabf65ebb8e5e6ee287d6bb8ee273c9701a446f8cbd8ac5e95d1c83ccd307fff2
opcodes ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'MLOAD', 'PUSH32', 'OP_81', 'MSTORE', 'ADDRESS', 'PUSH1', 'OP_82', 'ADD', 'MSTORE', 'PUSH1', 'OP_91', 'PUSH20', 'AND', 'OP_90', 'PUSH4', 'OP_90', 'PUSH1', 'ADD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_86', 'GAS', 'STATICCALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---
thinking
**Analyzing CALL instruction checks**
The CALL opcode sequences suggest runtime checks on call success and returndata, likely enforcing require(success) patterns. Precise revert confirmation or returndata usage is uncertain without fuller context, but call targets may include internal calls to self, indicating low-risk behavior.
thinking
**Assessing self-call risks and access control**
CALL targets appear as the contract’s own address, indicating self-calls that may enable internal function reentrancy but not external attacker reentrancy; this suggests low severity risk. No explicit access control guards are detected around these calls, so if public functions reach them, there could be risk—though evidence is inconclusive, warranting a conservative low-to-medium severity finding.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
# create map start_pc->block
by_start={b['start_pc']:b for b in blocks if b.get('start_pc') is not None}
# find block containing 12153
for b in blocks:
if b.get('start_pc') is not None and b['start_pc']<=12153<=b['end_pc']:
blk=b
break
print('block',blk['start_pc'],blk['end_pc'])
print(blk['opcodes'])
# show following block by start_pc ascending
starts=sorted([b['start_pc'] for b in blocks if b.get('start_pc') is not None])
idx=starts.index(blk['start_pc'])
for s in starts[idx+1:idx+6]:
b=by_start[s]
print('next',b['start_pc'],b['end_pc'],b['opcodes'])
PY" in /tmp/codex-abiqypvr succeeded in 41ms:
block 12140 12167
['JUMPDEST', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_87', 'GAS', 'CALL', 'OP_92', 'POP', 'POP', 'POP', 'RETURNDATASIZE', 'OP_80', 'PUSH1', 'OP_81', 'EQ', 'PUSH2', 'JUMPI']
next 12168 12200 ['PUSH1', 'MLOAD', 'OP_91', 'POP', 'PUSH1', 'NOT', 'PUSH1', 'RETURNDATASIZE', 'ADD', 'AND', 'OP_82', 'ADD', 'PUSH1', 'MSTORE', 'RETURNDATASIZE', 'OP_82', 'MSTORE', 'RETURNDATASIZE', 'PUSH1', 'PUSH1', 'OP_84', 'ADD', 'RETURNDATACOPY', 'PUSH2', 'JUMP']
next 12201 12205 ['JUMPDEST', 'PUSH1', 'OP_91', 'POP']
next 12206 12221 ['JUMPDEST', 'POP', 'OP_91', 'POP', 'OP_91', 'POP', 'PUSH2', 'OP_86', 'OP_83', 'OP_83', 'PUSH2', 'JUMP']
next 12222 12231 ['JUMPDEST', 'OP_96', 'OP_95', 'POP', 'POP', 'POP', 'POP', 'POP', 'POP', 'JUMP']
next 12232 12239 ['JUMPDEST', 'PUSH1', 'OP_82', 'PUSH2', 'JUMPI']
thinking
**Analyzing call success and returndatasize checks**
The call result’s success flag appears to be discarded without explicit checking, while the code compares returndatasize to determine flow; this suggests reliance on return data presence rather than call success status.
thinking
**Noting call success discard and inspecting next call**
The CALL at pc 12153 discards the success flag and inspects only returndata size, potentially ignoring failure; next, I'll examine the call block at 7785 for comparison.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
for b in blocks:
if b.get('start_pc') is not None and b['start_pc']<=7788<=b['end_pc']:
print(b['start_pc'],b['end_pc'],b['opcodes'])
break
PY" in /tmp/codex-abiqypvr succeeded in 43ms:
7785 7795 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
thinking
**Planning further block inspection**
I'll examine blocks after 7785 to gather context needed to decide if a revert is necessary.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
by_start={b['start_pc']:b for b in blocks if b.get('start_pc') is not None}
starts=sorted(by_start)
# find index for block containing 7788
blk=None
for b in blocks:
if b.get('start_pc') is not None and b['start_pc']<=7788<=b['end_pc']:
blk=b
break
idx=starts.index(blk['start_pc'])
print('block',blk['start_pc'],blk['end_pc'],blk['opcodes'])
for s in starts[idx+1:idx+6]:
b=by_start[s]
print('next',b['start_pc'],b['end_pc'],b['opcodes'])
PY" in /tmp/codex-abiqypvr succeeded in 39ms:
block 7785 7795 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
next 7796 7804 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
next 7805 7809 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP']
next 7810 7822 ['JUMPDEST', 'POP', 'POP', 'POP', 'PUSH2', 'PUSH1', 'PUSH1', 'SSTORE', 'JUMP']
next 7823 7829 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'POP', 'JUMP']
next 7830 7906 ['JUMPDEST', 'PUSH1', 'PUSH32', 'OP_82', 'AND', 'PUSH32', 'EQ', 'OP_80', 'PUSH2', 'JUMPI']
thinking
**Planning deeper call target analysis**
I'm focusing on tracing the call target at instruction 7788 to determine if it's derived from input or storage, since the call includes enforced success but no guard detection—this could allow ETH transfers if externally reachable. Next, I'll inspect earlier blocks around 7760–7785 using CFG or code inspection for more context.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
by_start={b['start_pc']:b for b in blocks if b.get('start_pc') is not None}
starts=sorted(by_start)
# show some blocks before 7785
idx=starts.index(7785)
for s in starts[idx-5:idx+1]:
b=by_start[s]
print('block',b['start_pc'],b['end_pc'],b['opcodes'])
PY" in /tmp/codex-abiqypvr succeeded in 40ms:
block 7540 7561 ['JUMPDEST', 'PUSH1', 'MLOAD', 'OP_80', 'OP_91', 'SUB', 'OP_90', 'SHA3', 'OP_89', 'PUSH1', 'MLOAD', 'PUSH2', 'OP_91', 'OP_90', 'PUSH2', 'JUMP']
block 7562 7641 ['JUMPDEST', 'PUSH1', 'OP_80', 'MLOAD', 'OP_91', 'OP_82', 'OP_90', 'SUB', 'OP_82', 'SHA3', 'OP_8B', 'OP_83', 'MSTORE', 'PUSH1', 'OP_83', 'ADD', 'OP_87', 'OP_90', 'MSTORE', 'OP_90', 'OP_82', 'ADD', 'OP_85', 'OP_90', 'MSTORE', 'OP_90', 'PUSH32', 'OP_90', 'PUSH1', 'ADD', 'PUSH1', 'MLOAD', 'OP_80', 'OP_91', 'SUB', 'OP_90', 'OP_A4', 'PUSH2', 'PUSH2', 'JUMP']
block 7642 7647 ['JUMPDEST', 'ISZERO', 'PUSH2', 'JUMPI']
block 7648 7780 ['PUSH1', 'SLOAD', 'PUSH20', 'AND', 'PUSH1', 'MLOAD', 'PUSH32', 'OP_81', 'MSTORE', 'ADDRESS', 'PUSH1', 'OP_82', 'ADD', 'MSTORE', 'PUSH20', 'OP_87', 'OP_81', 'AND', 'PUSH1', 'OP_83', 'ADD', 'MSTORE', 'OP_91', 'OP_90', 'OP_91', 'AND', 'OP_90', 'PUSH4', 'OP_90', 'PUSH1', 'ADD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'PUSH1', 'OP_87', 'OP_80', 'EXTCODESIZE', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 7781 7784 ['PUSH1', 'OP_80', 'REVERT']
block 7785 7795 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
thinking
**Analyzing call target sourcing**
The call target comes from a storage slot checked by EXTCODESIZE, implying an external contract address stored on-chain, not user input. There's no clear access control on setting this storage, suggesting potential risk of arbitrary external calls, possibly with ETH value transferred.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
by_start={b['start_pc']:b for b in blocks if b.get('start_pc') is not None}
starts=sorted(by_start)
# find block containing 12153
start=None
for b in blocks:
if b.get('start_pc') is not None and b['start_pc']<=12153<=b['end_pc']:
start=b['start_pc']
break
idx=starts.index(start)
for s in starts[idx-5:idx+1]:
b=by_start[s]
print('block',b['start_pc'],b['end_pc'],b['opcodes'])
PY" in /tmp/codex-abiqypvr succeeded in 37ms:
block 11988 12007 ['POP', 'OP_80', 'OP_80', 'PUSH1', 'ADD', 'OP_90', 'MLOAD', 'OP_81', 'ADD', 'OP_90', 'PUSH2', 'OP_91', 'OP_90', 'PUSH2', 'JUMP']
block 12008 12009 ['JUMPDEST', 'ISZERO']
block 12010 12015 ['JUMPDEST', 'ISZERO', 'PUSH2', 'JUMPI']
block 12016 12088 ['PUSH1', 'MLOAD', 'PUSH32', 'OP_81', 'MSTORE', 'PUSH20', 'OP_84', 'AND', 'PUSH1', 'OP_82', 'ADD', 'MSTORE', 'PUSH1', 'ADD', 'PUSH2', 'JUMP']
block 12089 12139 ['JUMPDEST', 'PUSH1', 'PUSH2', 'OP_83', 'OP_83', 'PUSH1', 'OP_84', 'PUSH1', 'OP_80', 'OP_85', 'PUSH20', 'AND', 'OP_84', 'OP_86', 'PUSH1', 'MLOAD', 'PUSH2', 'OP_91', 'OP_90', 'PUSH2', 'JUMP']
block 12140 12167 ['JUMPDEST', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_87', 'GAS', 'CALL', 'OP_92', 'POP', 'POP', 'POP', 'RETURNDATASIZE', 'OP_80', 'PUSH1', 'OP_81', 'EQ', 'PUSH2', 'JUMPI']
thinking
**Analyzing call target trustworthiness**
The call target appears user-controlled from calldata with no clear access control, risking arbitrary external calls or ETH transfers and reentrancy; plan to draft JSON finding detailing severity, categories like reentrancy, and evidence from specific callsites and guards detection.
thinking
**Detailing callsites and reentrancy risks**
I've identified two key findings: (1) a medium-severity reentrancy risk from an external call at pc 0x1e6c followed by a state update at pc 0x1e82 with no guards, and (2) a low-severity issue at pc 0x2f79 where a low-level call to a computed target discards the success flag and relies only on returndata size, creating potential logic inconsistencies; both findings will include precise bytecode locations and nuanced evidence reflecting uncertainty about call target trust.
exec
/bin/bash -lc "python - <<'PY'
print(hex(7788), hex(7810), hex(12153))
PY" in /tmp/codex-abiqypvr succeeded in 47ms:
0x1e6c 0x1e82 0x2f79
thinking
**Crafting detailed JSON output with findings**
I'm preparing structured JSON with two findings including severity, titles, exploit scenarios, recommendations, evidence containing precise program counter info, and locations, all fitting the prescribed schema and with clear summaries reflecting uncertainty where needed.
thinking
**Including uncertainty and guard detection in JSON**
codex
{"no_findings":false,"summary":"Bytecode shows two low-level CALL sites with computed targets/values. One CALL is followed by an SSTORE (effects after interaction), and another CALL’s success handling is unclear. No delegatecall/proxy behavior detected in the bundle.","findings":[{"severity":"medium","category":"reentrancy","title":"External CALL before state update (possible reentrancy if target untrusted)","exploit_scenario":"If the CALL at pc 0x1e6c targets an untrusted contract, that contract can reenter before the subsequent SSTORE executes, potentially exploiting temporarily inconsistent state or bypassing intended sequencing. This risk depends on whether the callee is attacker-controlled (target appears storage-derived).","recommendation":"Follow checks-effects-interactions: move critical state updates before the external CALL, add a reentrancy guard, and restrict/validate the call target if it is configurable.","evidence":"CALL at pc 0x1e6c is followed by an SSTORE in the next block (pc 0x1e82). No guards detected in the bundle. Target is derived from storage with an EXTCODESIZE check earlier in the sequence.","locations":["pc:0x1e6c","pc:0x1e82"]},{"severity":"low","category":"other","title":"Low-level CALL with computed target/value and unclear success enforcement","exploit_scenario":"If the CALL at pc 0x2f79 uses a caller-controlled target/value, the contract could be coerced into arbitrary external calls or ETH transfers. The bytecode sequence appears to discard the CALL success flag and only compares RETURNDATASIZE, so a failed call may be treated as success. Validation indicates a constant self-target in one trace, so the risk is uncertain and may be benign depending on actual target flow.","recommendation":"Validate or whitelist the call target and value, and explicitly check the CALL success flag before proceeding. Handle return data in a way compatible with expected ABI (e.g., require success and accept empty/32-byte returns if calling ERC20s).","evidence":"CALL at pc 0x2f79 with computed target/value; opcodes show CALL followed by SWAP/POP operations and a RETURNDATASIZE equality check. Detector findings report computed target/value and possible ETH value transfer; guards_detected is empty, and validation did not confirm a variable target.","locations":["pc:0x2f79"]}]}
tokens used
55,708
{
"codex": {
"ran_at": "2026-01-22T04:59:58.407861+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 28674,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode shows two low-level CALL sites with computed targets/values. One CALL is followed by an SSTORE (effects after interaction), and another CALL\u2019s success handling is unclear. No delegatecall/proxy behavior detected in the bundle.",
"raw_final": {
"summary": "Bytecode shows two low-level CALL sites with computed targets/values. One CALL is followed by an SSTORE (effects after interaction), and another CALL\u2019s success handling is unclear. No delegatecall/proxy behavior detected in the bundle.",
"findings": [
{
"title": "External CALL before state update (possible reentrancy if target untrusted)",
"category": "reentrancy",
"evidence": "CALL at pc 0x1e6c is followed by an SSTORE in the next block (pc 0x1e82). No guards detected in the bundle. Target is derived from storage with an EXTCODESIZE check earlier in the sequence.",
"severity": "medium",
"locations": [
"pc:0x1e6c",
"pc:0x1e82"
],
"recommendation": "Follow checks-effects-interactions: move critical state updates before the external CALL, add a reentrancy guard, and restrict/validate the call target if it is configurable.",
"exploit_scenario": "If the CALL at pc 0x1e6c targets an untrusted contract, that contract can reenter before the subsequent SSTORE executes, potentially exploiting temporarily inconsistent state or bypassing intended sequencing. This risk depends on whether the callee is attacker-controlled (target appears storage-derived)."
},
{
"title": "Low-level CALL with computed target/value and unclear success enforcement",
"category": "other",
"evidence": "CALL at pc 0x2f79 with computed target/value; opcodes show CALL followed by SWAP/POP operations and a RETURNDATASIZE equality check. Detector findings report computed target/value and possible ETH value transfer; guards_detected is empty, and validation did not confirm a variable target.",
"severity": "low",
"locations": [
"pc:0x2f79"
],
"recommendation": "Validate or whitelist the call target and value, and explicitly check the CALL success flag before proceeding. Handle return data in a way compatible with expected ABI (e.g., require success and accept empty/32-byte returns if calling ERC20s).",
"exploit_scenario": "If the CALL at pc 0x2f79 uses a caller-controlled target/value, the contract could be coerced into arbitrary external calls or ETH transfers. The bytecode sequence appears to discard the CALL success flag and only compares RETURNDATASIZE, so a failed call may be treated as success. Validation indicates a constant self-target in one trace, so the risk is uncertain and may be benign depending on actual target flow."
}
],
"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 0x0338 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x72db749d 00000019: GT 0000001a: PUSH2 0x01b0 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xa0929cda 00000024: GT 00000025: PUSH2 0x00ec 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xced72f87 0000002f: GT 00000030: PUSH2 0x0095 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xd73792a9 0000003a: GT 0000003b: PUSH2 0x006f 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd73792a9 00000045: EQ 00000046: PUSH2 0x0a8b 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xe7b0610f 00000050: EQ 00000051: PUSH2 0x0aa1 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf2225e1e 0000005b: EQ 0000005c: PUSH2 0x0abe 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf7e80312 00000066: EQ 00000067: PUSH2 0x0ade 0000006a: JUMPI 0000006b: PUSH2 0x03ca 0000006e: JUMP 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0xced72f87 00000076: EQ 00000077: PUSH2 0x0a41 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xd431b1ac 00000081: EQ 00000082: PUSH2 0x0a56 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xd547741f 0000008c: EQ 0000008d: PUSH2 0x0a6b 00000090: JUMPI 00000091: PUSH2 0x03ca 00000094: JUMP 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0xa9c53252 0000009c: GT 0000009d: PUSH2 0x00c6 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xa9c53252 000000a7: EQ 000000a8: PUSH2 0x09de 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xca15c873 000000b2: EQ 000000b3: PUSH2 0x0a0e 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xcdd6554e 000000bd: EQ 000000be: PUSH2 0x0a2e 000000c1: JUMPI 000000c2: PUSH2 0x03ca 000000c5: JUMP 000000c6: JUMPDEST 000000c7: DUP1 000000c8: PUSH4 0xa0929cda 000000cd: EQ 000000ce: PUSH2 0x0994 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0xa217fddf 000000d8: EQ 000000d9: PUSH2 0x09b4 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0xa6b27314 000000e3: EQ 000000e4: PUSH2 0x09c9 000000e7: JUMPI 000000e8: PUSH2 0x03ca 000000eb: JUMP 000000ec: JUMPDEST 000000ed: DUP1 000000ee: PUSH4 0x848cb5c6 000000f3: GT 000000f4: PUSH2 0x0159 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0x91d14854 000000fe: GT 000000ff: PUSH2 0x0133 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x91d14854 00000109: EQ 0000010a: PUSH2 0x08eb 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x93c7357f 00000114: EQ 00000115: PUSH2 0x093c 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x99959cb5 0000011f: EQ 00000120: PUSH2 0x095c 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x9a574538 0000012a: EQ 0000012b: PUSH2 0x0974 0000012e: JUMPI 0000012f: PUSH2 0x03ca 00000132: JUMP 00000133: JUMPDEST 00000134: DUP1 00000135: PUSH4 0x848cb5c6 0000013a: EQ 0000013b: PUSH2 0x0896 0000013e: JUMPI 0000013f: DUP1 00000140: PUSH4 0x8705fcd4 00000145: EQ 00000146: PUSH2 0x08ab 00000149: JUMPI 0000014a: DUP1 0000014b: PUSH4 0x9010d07c 00000150: EQ 00000151: PUSH2 0x08cb 00000154: JUMPI 00000155: PUSH2 0x03ca 00000158: JUMP 00000159: JUMPDEST 0000015a: DUP1 0000015b: PUSH4 0x7a051cc8 00000160: GT 00000161: PUSH2 0x018a 00000164: JUMPI 00000165: DUP1 00000166: PUSH4 0x7a051cc8 0000016b: EQ 0000016c: PUSH2 0x0836 0000016f: JUMPI 00000170: DUP1 00000171: PUSH4 0x7f57237d 00000176: EQ 00000177: PUSH2 0x0856 0000017a: JUMPI 0000017b: DUP1 0000017c: PUSH4 0x80828156 00000181: EQ 00000182: PUSH2 0x0881 00000185: JUMPI 00000186: PUSH2 0x03ca 00000189: JUMP 0000018a: JUMPDEST 0000018b: DUP1 0000018c: PUSH4 0x72db749d 00000191: EQ 00000192: PUSH2 0x07c2 00000195: JUMPI 00000196: DUP1 00000197: PUSH4 0x776e10b1 0000019c: EQ 0000019d: PUSH2 0x07e2 000001a0: JUMPI 000001a1: DUP1 000001a2: PUSH4 0x797669c9 000001a7: EQ 000001a8: PUSH2 0x0802 000001ab: JUMPI 000001ac: PUSH2 0x03ca 000001af: JUMP 000001b0: JUMPDEST 000001b1: DUP1 000001b2: PUSH4 0x392e53cd 000001b7: GT 000001b8: PUSH2 0x027f 000001bb: JUMPI 000001bc: DUP1 000001bd: PUSH4 0x59694be6 000001c2: GT 000001c3: PUSH2 0x0228 000001c6: JUMPI 000001c7: DUP1 000001c8: PUSH4 0x5e4b5f7d 000001cd: GT 000001ce: PUSH2 0x0202 000001d1: JUMPI 000001d2: DUP1 000001d3: PUSH4 0x5e4b5f7d 000001d8: EQ 000001d9: PUSH2 0x074d 000001dc: JUMPI 000001dd: DUP1 000001de: PUSH4 0x605b4223 000001e3: EQ 000001e4: PUSH2 0x076d 000001e7: JUMPI 000001e8: DUP1 000001e9: PUSH4 0x66b8042d 000001ee: EQ 000001ef: PUSH2 0x078d 000001f2: JUMPI 000001f3: DUP1 000001f4: PUSH4 0x69fe0e2d 000001f9: EQ 000001fa: PUSH2 0x07a2 000001fd: JUMPI 000001fe: PUSH2 0x03ca 00000201: JUMP 00000202: JUMPDEST 00000203: DUP1 00000204: PUSH4 0x59694be6 00000209: EQ 0000020a: PUSH2 0x06f0 0000020d: JUMPI 0000020e: DUP1 0000020f: PUSH4 0x5a6ba496 00000214: EQ 00000215: PUSH2 0x0710 00000218: JUMPI 00000219: DUP1 0000021a: PUSH4 0x5c975abb 0000021f: EQ 00000220: PUSH2 0x0730 00000223: JUMPI 00000224: PUSH2 0x03ca 00000227: JUMP 00000228: JUMPDEST 00000229: DUP1 0000022a: PUSH4 0x50017f3e 0000022f: GT 00000230: PUSH2 0x0259 00000233: JUMPI 00000234: DUP1 00000235: PUSH4 0x50017f3e 0000023a: EQ 0000023b: PUSH2 0x0690 0000023e: JUMPI 0000023f: DUP1 00000240: PUSH4 0x5149dc42 00000245: EQ 00000246: PUSH2 0x06b0 00000249: JUMPI 0000024a: DUP1 0000024b: PUSH4 0x52ca9f74 00000250: EQ 00000251: PUSH2 0x06d0 00000254: JUMPI 00000255: PUSH2 0x03ca 00000258: JUMP 00000259: JUMPDEST 0000025a: DUP1 0000025b: PUSH4 0x392e53cd 00000260: EQ 00000261: PUSH2 0x062d 00000264: JUMPI 00000265: DUP1 00000266: PUSH4 0x4a95b337 0000026b: EQ 0000026c: PUSH2 0x0645 0000026f: JUMPI 00000270: DUP1 00000271: PUSH4 0x4e7ceacb 00000276: EQ 00000277: PUSH2 0x0665 0000027a: JUMPI 0000027b: PUSH2 0x03ca 0000027e: JUMP 0000027f: JUMPDEST 00000280: DUP1 00000281: PUSH4 0x12065fe0 00000286: GT 00000287: PUSH2 0x02e1 0000028a: JUMPI 0000028b: DUP1 0000028c: PUSH4 0x2f2ff15d 00000291: GT 00000292: PUSH2 0x02bb 00000295: JUMPI 00000296: DUP1 00000297: PUSH4 0x2f2ff15d 0000029c: EQ 0000029d: PUSH2 0x05d8 000002a0: JUMPI 000002a1: DUP1 000002a2: PUSH4 0x3408e470 000002a7: EQ 000002a8: PUSH2 0x05f8 000002ab: JUMPI 000002ac: DUP1 000002ad: PUSH4 0x36568abe 000002b2: EQ 000002b3: PUSH2 0x060d 000002b6: JUMPI 000002b7: PUSH2 0x03ca 000002ba: JUMP 000002bb: JUMPDEST 000002bc: DUP1 000002bd: PUSH4 0x12065fe0 000002c2: EQ 000002c3: PUSH2 0x0573 000002c6: JUMPI 000002c7: DUP1 000002c8: PUSH4 0x1383f9e1 000002cd: EQ 000002ce: PUSH2 0x0588 000002d1: JUMPI 000002d2: DUP1 000002d3: PUSH4 0x248a9ca3 000002d8: EQ 000002d9: PUSH2 0x05a8 000002dc: JUMPI 000002dd: PUSH2 0x03ca 000002e0: JUMP 000002e1: JUMPDEST 000002e2: DUP1 000002e3: PUSH4 0x0cd236fd 000002e8: GT 000002e9: PUSH2 0x0312 000002ec: JUMPI 000002ed: DUP1 000002ee: PUSH4 0x0cd236fd 000002f3: EQ 000002f4: PUSH2 0x04da 000002f7: JUMPI 000002f8: DUP1 000002f9: PUSH4 0x0fff9ceb 000002fe: EQ 000002ff: PUSH2 0x0526 00000302: JUMPI 00000303: DUP1 00000304: PUSH4 0x10fe9ae8 00000309: EQ 0000030a: PUSH2 0x0548 0000030d: JUMPI 0000030e: PUSH2 0x03ca 00000311: JUMP 00000312: JUMPDEST 00000313: DUP1 00000314: PUSH4 0x01ffc9a7 00000319: EQ 0000031a: PUSH2 0x0452 0000031d: JUMPI 0000031e: DUP1 0000031f: PUSH4 0x04c2e308 00000324: EQ 00000325: PUSH2 0x0487 00000328: JUMPI 00000329: DUP1 0000032a: PUSH4 0x07cc8039 0000032f: EQ 00000330: PUSH2 0x04a6 00000333: JUMPI 00000334: PUSH2 0x03ca 00000337: JUMP 00000338: JUMPDEST 00000339: CALLDATASIZE 0000033a: PUSH2 0x03ca 0000033d: JUMPI 0000033e: PUSH1 0x40 00000340: MLOAD 00000341: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000362: DUP2 00000363: MSTORE 00000364: PUSH1 0x20 00000366: PUSH1 0x04 00000368: DUP3 00000369: ADD 0000036a: MSTORE 0000036b: PUSH1 0x35 0000036d: PUSH1 0x24 0000036f: DUP3 00000370: ADD 00000371: MSTORE 00000372: PUSH32 0x5468697320636f6e747261637420646f6573206e6f7420616363657074206469 00000393: PUSH1 0x44 00000395: DUP3 00000396: ADD 00000397: MSTORE 00000398: PUSH32 0x726563742076616c7565207472616e7366657273210000000000000000000000 000003b9: PUSH1 0x64 000003bb: DUP3 000003bc: ADD 000003bd: MSTORE 000003be: PUSH1 0x84 000003c0: ADD 000003c1: JUMPDEST 000003c2: PUSH1 0x40 000003c4: MLOAD 000003c5: DUP1 000003c6: SWAP2 000003c7: SUB 000003c8: SWAP1 000003c9: REVERT 000003ca: JUMPDEST 000003cb: PUSH1 0x40 000003cd: MLOAD 000003ce: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000003ef: DUP2 000003f0: MSTORE 000003f1: PUSH1 0x20 000003f3: PUSH1 0x04 000003f5: DUP3 000003f6: ADD 000003f7: MSTORE 000003f8: PUSH1 0x35 000003fa: PUSH1 0x24 000003fc: DUP3 000003fd: ADD 000003fe: MSTORE 000003ff: PUSH32 0x5468697320636f6e747261637420646f6573206e6f7420616363657074206469 00000420: PUSH1 0x44 00000422: DUP3 00000423: ADD 00000424: MSTORE 00000425: PUSH32 0x726563742076616c7565207472616e7366657273210000000000000000000000 00000446: PUSH1 0x64 00000448: DUP3 00000449: ADD 0000044a: MSTORE 0000044b: PUSH1 0x84 0000044d: ADD 0000044e: PUSH2 0x03c1 00000451: JUMP 00000452: JUMPDEST 00000453: CALLVALUE 00000454: DUP1 00000455: ISZERO 00000456: PUSH2 0x045e 00000459: JUMPI 0000045a: PUSH1 0x00 0000045c: DUP1 0000045d: REVERT 0000045e: JUMPDEST 0000045f: POP 00000460: PUSH2 0x0472 00000463: PUSH2 0x046d 00000466: CALLDATASIZE 00000467: PUSH1 0x04 00000469: PUSH2 0x3099 0000046c: JUMP 0000046d: JUMPDEST 0000046e: PUSH2 0x0afe 00000471: JUMP 00000472: JUMPDEST 00000473: PUSH1 0x40 00000475: MLOAD 00000476: SWAP1 00000477: ISZERO 00000478: ISZERO 00000479: DUP2 0000047a: MSTORE 0000047b: PUSH1 0x20 0000047d: ADD 0000047e: JUMPDEST 0000047f: PUSH1 0x40 00000481: MLOAD 00000482: DUP1 00000483: SWAP2 00000484: SUB 00000485: SWAP1 00000486: RETURN 00000487: JUMPDEST 00000488: CALLVALUE 00000489: DUP1 0000048a: ISZERO 0000048b: PUSH2 0x0493 0000048e: JUMPI 0000048f: PUSH1 0x00 00000491: DUP1 00000492: REVERT 00000493: JUMPDEST 00000494: POP 00000495: PUSH1 0x0e 00000497: SLOAD 00000498: JUMPDEST 00000499: PUSH1 0x40 0000049b: MLOAD 0000049c: SWAP1 0000049d: DUP2 0000049e: MSTORE 0000049f: PUSH1 0x20 000004a1: ADD 000004a2: PUSH2 0x047e 000004a5: JUMP 000004a6: JUMPDEST 000004a7: CALLVALUE 000004a8: DUP1 000004a9: ISZERO 000004aa: PUSH2 0x04b2 000004ad: JUMPI 000004ae: PUSH1 0x00 000004b0: DUP1 000004b1: REVERT 000004b2: JUMPDEST 000004b3: POP 000004b4: PUSH2 0x0498 000004b7: PUSH32 0x3a68886f0fdd43fd745090961de493dbef78fedcafd00c2109b3f906c62707c8 000004d8: DUP2 000004d9: JUMP 000004da: JUMPDEST 000004db: CALLVALUE 000004dc: DUP1 000004dd: ISZERO 000004de: PUSH2 0x04e6 000004e1: JUMPI 000004e2: PUSH1 0x00 000004e4: DUP1 000004e5: REVERT 000004e6: JUMPDEST 000004e7: POP 000004e8: PUSH1 0x10 000004ea: SLOAD 000004eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000500: AND 00000501: JUMPDEST 00000502: PUSH1 0x40 00000504: MLOAD 00000505: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000051a: SWAP1 0000051b: SWAP2 0000051c: AND 0000051d: DUP2 0000051e: MSTORE 0000051f: PUSH1 0x20 00000521: ADD 00000522: PUSH2 0x047e 00000525: JUMP 00000526: JUMPDEST 00000527: CALLVALUE 00000528: DUP1 00000529: ISZERO 0000052a: PUSH2 0x0532 0000052d: JUMPI 0000052e: PUSH1 0x00 00000530: DUP1 00000531: REVERT 00000532: JUMPDEST 00000533: POP 00000534: PUSH2 0x0546 00000537: PUSH2 0x0541 0000053a: CALLDATASIZE 0000053b: PUSH1 0x04 0000053d: PUSH2 0x31b5 00000540: JUMP 00000541: JUMPDEST 00000542: PUSH2 0x0b5a 00000545: JUMP 00000546: JUMPDEST 00000547: STOP 00000548: JUMPDEST 00000549: CALLVALUE 0000054a: DUP1 0000054b: ISZERO 0000054c: PUSH2 0x0554 0000054f: JUMPI 00000550: PUSH1 0x00 00000552: DUP1 00000553: REVERT 00000554: JUMPDEST 00000555: POP 00000556: PUSH1 0x0d 00000558: SLOAD 00000559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000056e: AND 0000056f: PUSH2 0x0501 00000572: JUMP 00000573: JUMPDEST 00000574: CALLVALUE 00000575: DUP1 00000576: ISZERO 00000577: PUSH2 0x057f 0000057a: JUMPI 0000057b: PUSH1 0x00 0000057d: DUP1 0000057e: REVERT 0000057f: JUMPDEST 00000580: POP 00000581: PUSH2 0x0498 00000584: PUSH2 0x0c57 00000587: JUMP 00000588: JUMPDEST 00000589: CALLVALUE 0000058a: DUP1 0000058b: ISZERO 0000058c: PUSH2 0x0594 0000058f: JUMPI 00000590: PUSH1 0x00 00000592: DUP1 00000593: REVERT 00000594: JUMPDEST 00000595: POP 00000596: PUSH2 0x0472 00000599: PUSH2 0x05a3 0000059c: CALLDATASIZE 0000059d: PUSH1 0x04 0000059f: PUSH2 0x31fa 000005a2: JUMP 000005a3: JUMPDEST 000005a4: PUSH2 0x0cef 000005a7: JUMP 000005a8: JUMPDEST 000005a9: CALLVALUE 000005aa: DUP1 000005ab: ISZERO 000005ac: PUSH2 0x05b4 000005af: JUMPI 000005b0: PUSH1 0x00 000005b2: DUP1 000005b3: REVERT 000005b4: JUMPDEST 000005b5: POP 000005b6: PUSH2 0x0498 000005b9: PUSH2 0x05c3 000005bc: CALLDATASIZE 000005bd: PUSH1 0x04 000005bf: PUSH2 0x3237 000005c2: JUMP 000005c3: JUMPDEST 000005c4: PUSH1 0x00 000005c6: SWAP1 000005c7: DUP2 000005c8: MSTORE 000005c9: PUSH1 0x20 000005cb: DUP2 000005cc: SWAP1 000005cd: MSTORE 000005ce: PUSH1 0x40 000005d0: SWAP1 000005d1: KECCAK256 000005d2: PUSH1 0x01 000005d4: ADD 000005d5: SLOAD 000005d6: SWAP1 000005d7: JUMP 000005d8: JUMPDEST 000005d9: CALLVALUE 000005da: DUP1 000005db: ISZERO 000005dc: PUSH2 0x05e4 000005df: JUMPI 000005e0: PUSH1 0x00 000005e2: DUP1 000005e3: REVERT 000005e4: JUMPDEST 000005e5: POP 000005e6: PUSH2 0x0546 000005e9: PUSH2 0x05f3 000005ec: CALLDATASIZE 000005ed: PUSH1 0x04 000005ef: PUSH2 0x3282 000005f2: JUMP 000005f3: JUMPDEST 000005f4: PUSH2 0x0d1a 000005f7: JUMP 000005f8: JUMPDEST 000005f9: CALLVALUE 000005fa: DUP1 000005fb: ISZERO 000005fc: PUSH2 0x0604 000005ff: JUMPI 00000600: PUSH1 0x00 00000602: DUP1 00000603: REVERT 00000604: JUMPDEST 00000605: POP 00000606: PUSH1 0x04 00000608: SLOAD 00000609: PUSH2 0x0498 0000060c: JUMP 0000060d: JUMPDEST 0000060e: CALLVALUE 0000060f: DUP1 00000610: ISZERO 00000611: PUSH2 0x0619 00000614: JUMPI 00000615: PUSH1 0x00 00000617: DUP1 00000618: REVERT 00000619: JUMPDEST 0000061a: POP 0000061b: PUSH2 0x0546 0000061e: PUSH2 0x0628 00000621: CALLDATASIZE 00000622: PUSH1 0x04 00000624: PUSH2 0x3282 00000627: JUMP 00000628: JUMPDEST 00000629: PUSH2 0x0d45 0000062c: JUMP 0000062d: JUMPDEST 0000062e: CALLVALUE 0000062f: DUP1 00000630: ISZERO 00000631: PUSH2 0x0639 00000634: JUMPI 00000635: PUSH1 0x00 00000637: DUP1 00000638: REVERT 00000639: JUMPDEST 0000063a: POP 0000063b: PUSH1 0x03 0000063d: SLOAD 0000063e: PUSH1 0xff 00000640: AND 00000641: PUSH2 0x0472 00000644: JUMP 00000645: JUMPDEST 00000646: CALLVALUE 00000647: DUP1 00000648: ISZERO 00000649: PUSH2 0x0651 0000064c: JUMPI 0000064d: PUSH1 0x00 0000064f: DUP1 00000650: REVERT 00000651: JUMPDEST 00000652: POP 00000653: PUSH2 0x0546 00000656: PUSH2 0x0660 00000659: CALLDATASIZE 0000065a: PUSH1 0x04 0000065c: PUSH2 0x32b2 0000065f: JUMP 00000660: JUMPDEST 00000661: PUSH2 0x0da3 00000664: JUMP 00000665: JUMPDEST 00000666: CALLVALUE 00000667: DUP1 00000668: ISZERO 00000669: PUSH2 0x0671 0000066c: JUMPI 0000066d: PUSH1 0x00 0000066f: DUP1 00000670: REVERT 00000671: JUMPDEST 00000672: POP 00000673: PUSH1 0x08 00000675: SLOAD 00000676: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000068b: AND 0000068c: PUSH2 0x0501 0000068f: JUMP 00000690: JUMPDEST 00000691: CALLVALUE 00000692: DUP1 00000693: ISZERO 00000694: PUSH2 0x069c 00000697: JUMPI 00000698: PUSH1 0x00 0000069a: DUP1 0000069b: REVERT 0000069c: JUMPDEST 0000069d: POP 0000069e: PUSH2 0x0546 000006a1: PUSH2 0x06ab 000006a4: CALLDATASIZE 000006a5: PUSH1 0x04 000006a7: PUSH2 0x3237 000006aa: JUMP 000006ab: JUMPDEST 000006ac: PUSH2 0x0ebd 000006af: JUMP 000006b0: JUMPDEST 000006b1: CALLVALUE 000006b2: DUP1 000006b3: ISZERO 000006b4: PUSH2 0x06bc 000006b7: JUMPI 000006b8: PUSH1 0x00 000006ba: DUP1 000006bb: REVERT 000006bc: JUMPDEST 000006bd: POP 000006be: PUSH2 0x0546 000006c1: PUSH2 0x06cb 000006c4: CALLDATASIZE 000006c5: PUSH1 0x04 000006c7: PUSH2 0x3237 000006ca: JUMP 000006cb: JUMPDEST 000006cc: PUSH2 0x0f2c 000006cf: JUMP 000006d0: JUMPDEST 000006d1: CALLVALUE 000006d2: DUP1 000006d3: ISZERO 000006d4: PUSH2 0x06dc 000006d7: JUMPI 000006d8: PUSH1 0x00 000006da: DUP1 000006db: REVERT 000006dc: JUMPDEST 000006dd: POP 000006de: PUSH2 0x0546 000006e1: PUSH2 0x06eb 000006e4: CALLDATASIZE 000006e5: PUSH1 0x04 000006e7: PUSH2 0x32dd 000006ea: JUMP 000006eb: JUMPDEST 000006ec: PUSH2 0x1037 000006ef: JUMP 000006f0: JUMPDEST 000006f1: CALLVALUE 000006f2: DUP1 000006f3: ISZERO 000006f4: PUSH2 0x06fc 000006f7: JUMPI 000006f8: PUSH1 0x00 000006fa: DUP1 000006fb: REVERT 000006fc: JUMPDEST 000006fd: POP 000006fe: PUSH2 0x0546 00000701: PUSH2 0x070b 00000704: CALLDATASIZE 00000705: PUSH1 0x04 00000707: PUSH2 0x32fa 0000070a: JUMP 0000070b: JUMPDEST 0000070c: PUSH2 0x10ba 0000070f: JUMP 00000710: JUMPDEST 00000711: CALLVALUE 00000712: DUP1 00000713: ISZERO 00000714: PUSH2 0x071c 00000717: JUMPI 00000718: PUSH1 0x00 0000071a: DUP1 0000071b: REVERT 0000071c: JUMPDEST 0000071d: POP 0000071e: PUSH2 0x0546 00000721: PUSH2 0x072b 00000724: CALLDATASIZE 00000725: PUSH1 0x04 00000727: PUSH2 0x32dd 0000072a: JUMP 0000072b: JUMPDEST 0000072c: PUSH2 0x11ec 0000072f: JUMP 00000730: JUMPDEST 00000731: CALLVALUE 00000732: DUP1 00000733: ISZERO 00000734: PUSH2 0x073c 00000737: JUMPI 00000738: PUSH1 0x00 0000073a: DUP1 0000073b: REVERT 0000073c: JUMPDEST 0000073d: POP 0000073e: PUSH1 0x03 00000740: SLOAD 00000741: PUSH2 0x0100 00000744: SWAP1 00000745: DIV 00000746: PUSH1 0xff 00000748: AND 00000749: PUSH2 0x0472 0000074c: JUMP 0000074d: JUMPDEST 0000074e: CALLVALUE 0000074f: DUP1 00000750: ISZERO 00000751: PUSH2 0x0759 00000754: JUMPI 00000755: PUSH1 0x00 00000757: DUP1 00000758: REVERT 00000759: JUMPDEST 0000075a: POP 0000075b: PUSH2 0x0546 0000075e: PUSH2 0x0768 00000761: CALLDATASIZE 00000762: PUSH1 0x04 00000764: PUSH2 0x32b2 00000767: JUMP 00000768: JUMPDEST 00000769: PUSH2 0x1263 0000076c: JUMP 0000076d: JUMPDEST 0000076e: CALLVALUE 0000076f: DUP1 00000770: ISZERO 00000771: PUSH2 0x0779 00000774: JUMPI 00000775: PUSH1 0x00 00000777: DUP1 00000778: REVERT 00000779: JUMPDEST 0000077a: POP 0000077b: PUSH2 0x0498 0000077e: PUSH2 0x0788 00000781: CALLDATASIZE 00000782: PUSH1 0x04 00000784: PUSH2 0x3237 00000787: JUMP 00000788: JUMPDEST 00000789: PUSH2 0x12bd 0000078c: JUMP 0000078d: JUMPDEST 0000078e: CALLVALUE 0000078f: DUP1 00000790: ISZERO 00000791: PUSH2 0x0799 00000794: JUMPI 00000795: PUSH1 0x00 00000797: DUP1 00000798: REVERT 00000799: JUMPDEST 0000079a: POP 0000079b: PUSH1 0x05 0000079d: SLOAD 0000079e: PUSH2 0x0498 000007a1: JUMP 000007a2: JUMPDEST 000007a3: CALLVALUE 000007a4: DUP1 000007a5: ISZERO 000007a6: PUSH2 0x07ae 000007a9: JUMPI 000007aa: PUSH1 0x00 000007ac: DUP1 000007ad: REVERT 000007ae: JUMPDEST 000007af: POP 000007b0: PUSH2 0x0546 000007b3: PUSH2 0x07bd 000007b6: CALLDATASIZE 000007b7: PUSH1 0x04 000007b9: PUSH2 0x3237 000007bc: JUMP 000007bd: JUMPDEST 000007be: PUSH2 0x12e2 000007c1: JUMP 000007c2: JUMPDEST 000007c3: CALLVALUE 000007c4: DUP1 000007c5: ISZERO 000007c6: PUSH2 0x07ce 000007c9: JUMPI 000007ca: PUSH1 0x00 000007cc: DUP1 000007cd: REVERT 000007ce: JUMPDEST 000007cf: POP 000007d0: PUSH2 0x0498 000007d3: PUSH2 0x07dd 000007d6: CALLDATASIZE 000007d7: PUSH1 0x04 000007d9: PUSH2 0x31fa 000007dc: JUMP 000007dd: JUMPDEST 000007de: PUSH2 0x1350 000007e1: JUMP 000007e2: JUMPDEST 000007e3: CALLVALUE 000007e4: DUP1 000007e5: ISZERO 000007e6: PUSH2 0x07ee 000007e9: JUMPI 000007ea: PUSH1 0x00 000007ec: DUP1 000007ed: REVERT 000007ee: JUMPDEST 000007ef: POP 000007f0: PUSH2 0x0546 000007f3: PUSH2 0x07fd 000007f6: CALLDATASIZE 000007f7: PUSH1 0x04 000007f9: PUSH2 0x32dd 000007fc: JUMP 000007fd: JUMPDEST 000007fe: PUSH2 0x1378 00000801: JUMP 00000802: JUMPDEST 00000803: CALLVALUE 00000804: DUP1 00000805: ISZERO 00000806: PUSH2 0x080e 00000809: JUMPI 0000080a: PUSH1 0x00 0000080c: DUP1 0000080d: REVERT 0000080e: JUMPDEST 0000080f: POP 00000810: PUSH2 0x0498 00000813: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00000834: DUP2 00000835: JUMP 00000836: JUMPDEST 00000837: CALLVALUE 00000838: DUP1 00000839: ISZERO 0000083a: PUSH2 0x0842 0000083d: JUMPI 0000083e: PUSH1 0x00 00000840: DUP1 00000841: REVERT 00000842: JUMPDEST 00000843: POP 00000844: PUSH2 0x0546 00000847: PUSH2 0x0851 0000084a: CALLDATASIZE 0000084b: PUSH1 0x04 0000084d: PUSH2 0x3237 00000850: JUMP 00000851: JUMPDEST 00000852: PUSH2 0x1493 00000855: JUMP 00000856: JUMPDEST 00000857: CALLVALUE 00000858: DUP1 00000859: ISZERO 0000085a: PUSH2 0x0862 0000085d: JUMPI 0000085e: PUSH1 0x00 00000860: DUP1 00000861: REVERT 00000862: JUMPDEST 00000863: POP 00000864: PUSH1 0x09 00000866: SLOAD 00000867: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000087c: AND 0000087d: PUSH2 0x0501 00000880: JUMP 00000881: JUMPDEST 00000882: CALLVALUE 00000883: DUP1 00000884: ISZERO 00000885: PUSH2 0x088d 00000888: JUMPI 00000889: PUSH1 0x00 0000088b: DUP1 0000088c: REVERT 0000088d: JUMPDEST 0000088e: POP 0000088f: PUSH2 0x0472 00000892: PUSH2 0x14ff 00000895: JUMP 00000896: JUMPDEST 00000897: CALLVALUE 00000898: DUP1 00000899: ISZERO 0000089a: PUSH2 0x08a2 0000089d: JUMPI 0000089e: PUSH1 0x00 000008a0: DUP1 000008a1: REVERT 000008a2: JUMPDEST 000008a3: POP 000008a4: PUSH2 0x0546 000008a7: PUSH2 0x1546 000008aa: JUMP 000008ab: JUMPDEST 000008ac: CALLVALUE 000008ad: DUP1 000008ae: ISZERO 000008af: PUSH2 0x08b7 000008b2: JUMPI 000008b3: PUSH1 0x00 000008b5: DUP1 000008b6: REVERT 000008b7: JUMPDEST 000008b8: POP 000008b9: PUSH2 0x0546 000008bc: PUSH2 0x08c6 000008bf: CALLDATASIZE 000008c0: PUSH1 0x04 000008c2: PUSH2 0x32b2 000008c5: JUMP 000008c6: JUMPDEST 000008c7: PUSH2 0x155c 000008ca: JUMP 000008cb: JUMPDEST 000008cc: CALLVALUE 000008cd: DUP1 000008ce: ISZERO 000008cf: PUSH2 0x08d7 000008d2: JUMPI 000008d3: PUSH1 0x00 000008d5: DUP1 000008d6: REVERT 000008d7: JUMPDEST 000008d8: POP 000008d9: PUSH2 0x0501 000008dc: PUSH2 0x08e6 000008df: CALLDATASIZE 000008e0: PUSH1 0x04 000008e2: PUSH2 0x33c6 000008e5: JUMP 000008e6: JUMPDEST 000008e7: PUSH2 0x15e3 000008ea: JUMP 000008eb: JUMPDEST 000008ec: CALLVALUE 000008ed: DUP1 000008ee: ISZERO 000008ef: PUSH2 0x08f7 000008f2: JUMPI 000008f3: PUSH1 0x00 000008f5: DUP1 000008f6: REVERT 000008f7: JUMPDEST 000008f8: POP 000008f9: PUSH2 0x0472 000008fc: PUSH2 0x0906 000008ff: CALLDATASIZE 00000900: PUSH1 0x04 00000902: PUSH2 0x3282 00000905: JUMP 00000906: JUMPDEST 00000907: PUSH1 0x00 00000909: SWAP2 0000090a: DUP3 0000090b: MSTORE 0000090c: PUSH1 0x20 0000090e: DUP3 0000090f: DUP2 00000910: MSTORE 00000911: PUSH1 0x40 00000913: DUP1 00000914: DUP5 00000915: KECCAK256 00000916: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000092b: SWAP4 0000092c: SWAP1 0000092d: SWAP4 0000092e: AND 0000092f: DUP5 00000930: MSTORE 00000931: SWAP2 00000932: SWAP1 00000933: MSTORE 00000934: SWAP1 00000935: KECCAK256 00000936: SLOAD 00000937: PUSH1 0xff 00000939: AND 0000093a: SWAP1 0000093b: JUMP 0000093c: JUMPDEST 0000093d: CALLVALUE 0000093e: DUP1 0000093f: ISZERO 00000940: PUSH2 0x0948 00000943: JUMPI 00000944: PUSH1 0x00 00000946: DUP1 00000947: REVERT 00000948: JUMPDEST 00000949: POP 0000094a: PUSH2 0x0498 0000094d: PUSH2 0x0957 00000950: CALLDATASIZE 00000951: PUSH1 0x04 00000953: PUSH2 0x3237 00000956: JUMP 00000957: JUMPDEST 00000958: PUSH2 0x1602 0000095b: JUMP 0000095c: JUMPDEST 0000095d: CALLVALUE 0000095e: DUP1 0000095f: ISZERO 00000960: PUSH2 0x0968 00000963: JUMPI 00000964: PUSH1 0x00 00000966: DUP1 00000967: REVERT 00000968: JUMPDEST 00000969: POP 0000096a: PUSH1 0x06 0000096c: SLOAD 0000096d: PUSH1 0xff 0000096f: AND 00000970: PUSH2 0x0472 00000973: JUMP 00000974: JUMPDEST 00000975: CALLVALUE 00000976: DUP1 00000977: ISZERO 00000978: PUSH2 0x0980 0000097b: JUMPI 0000097c: PUSH1 0x00 0000097e: DUP1 0000097f: REVERT 00000980: JUMPDEST 00000981: POP 00000982: PUSH2 0x0546 00000985: PUSH2 0x098f 00000988: CALLDATASIZE 00000989: PUSH1 0x04 0000098b: PUSH2 0x33e8 0000098e: JUMP 0000098f: JUMPDEST 00000990: PUSH2 0x1610 00000993: JUMP 00000994: JUMPDEST 00000995: CALLVALUE 00000996: DUP1 00000997: ISZERO 00000998: PUSH2 0x09a0 0000099b: JUMPI 0000099c: PUSH1 0x00 0000099e: DUP1 0000099f: REVERT 000009a0: JUMPDEST 000009a1: POP 000009a2: PUSH2 0x0472 000009a5: PUSH2 0x09af 000009a8: CALLDATASIZE 000009a9: PUSH1 0x04 000009ab: PUSH2 0x342f 000009ae: JUMP 000009af: JUMPDEST 000009b0: PUSH2 0x1749 000009b3: JUMP 000009b4: JUMPDEST 000009b5: CALLVALUE 000009b6: DUP1 000009b7: ISZERO 000009b8: PUSH2 0x09c0 000009bb: JUMPI 000009bc: PUSH1 0x00 000009be: DUP1 000009bf: REVERT 000009c0: JUMPDEST 000009c1: POP 000009c2: PUSH2 0x0498 000009c5: PUSH1 0x00 000009c7: DUP2 000009c8: JUMP 000009c9: JUMPDEST 000009ca: CALLVALUE 000009cb: DUP1 000009cc: ISZERO 000009cd: PUSH2 0x09d5 000009d0: JUMPI 000009d1: PUSH1 0x00 000009d3: DUP1 000009d4: REVERT 000009d5: JUMPDEST 000009d6: POP 000009d7: PUSH1 0x0f 000009d9: SLOAD 000009da: PUSH2 0x0498 000009dd: JUMP 000009de: JUMPDEST 000009df: CALLVALUE 000009e0: DUP1 000009e1: ISZERO 000009e2: PUSH2 0x09ea 000009e5: JUMPI 000009e6: PUSH1 0x00 000009e8: DUP1 000009e9: REVERT 000009ea: JUMPDEST 000009eb: POP 000009ec: PUSH1 0x08 000009ee: SLOAD 000009ef: PUSH21 0x010000000000000000000000000000000000000000 00000a05: SWAP1 00000a06: DIV 00000a07: PUSH1 0xff 00000a09: AND 00000a0a: PUSH2 0x0472 00000a0d: JUMP 00000a0e: JUMPDEST 00000a0f: CALLVALUE 00000a10: DUP1 00000a11: ISZERO 00000a12: PUSH2 0x0a1a 00000a15: JUMPI 00000a16: PUSH1 0x00 00000a18: DUP1 00000a19: REVERT 00000a1a: JUMPDEST 00000a1b: POP 00000a1c: PUSH2 0x0498 00000a1f: PUSH2 0x0a29 00000a22: CALLDATASIZE 00000a23: PUSH1 0x04 00000a25: PUSH2 0x3237 00000a28: JUMP 00000a29: JUMPDEST 00000a2a: PUSH2 0x176b 00000a2d: JUMP 00000a2e: JUMPDEST 00000a2f: PUSH2 0x0546 00000a32: PUSH2 0x0a3c 00000a35: CALLDATASIZE 00000a36: PUSH1 0x04 00000a38: PUSH2 0x3470 00000a3b: JUMP 00000a3c: JUMPDEST 00000a3d: PUSH2 0x1782 00000a40: JUMP 00000a41: JUMPDEST 00000a42: CALLVALUE 00000a43: DUP1 00000a44: ISZERO 00000a45: PUSH2 0x0a4d 00000a48: JUMPI 00000a49: PUSH1 0x00 00000a4b: DUP1 00000a4c: REVERT 00000a4d: JUMPDEST 00000a4e: POP 00000a4f: PUSH1 0x07 00000a51: SLOAD 00000a52: PUSH2 0x0498 00000a55: JUMP 00000a56: JUMPDEST 00000a57: CALLVALUE 00000a58: DUP1 00000a59: ISZERO 00000a5a: PUSH2 0x0a62 00000a5d: JUMPI 00000a5e: PUSH1 0x00 00000a60: DUP1 00000a61: REVERT 00000a62: JUMPDEST 00000a63: POP 00000a64: PUSH2 0x0546 00000a67: PUSH2 0x1aae 00000a6a: JUMP 00000a6b: JUMPDEST 00000a6c: CALLVALUE 00000a6d: DUP1 00000a6e: ISZERO 00000a6f: PUSH2 0x0a77 00000a72: JUMPI 00000a73: PUSH1 0x00 00000a75: DUP1 00000a76: REVERT 00000a77: JUMPDEST 00000a78: POP 00000a79: PUSH2 0x0546 00000a7c: PUSH2 0x0a86 00000a7f: CALLDATASIZE 00000a80: PUSH1 0x04 00000a82: PUSH2 0x3282 00000a85: JUMP 00000a86: JUMPDEST 00000a87: PUSH2 0x1ac1 00000a8a: JUMP 00000a8b: JUMPDEST 00000a8c: CALLVALUE 00000a8d: DUP1 00000a8e: ISZERO 00000a8f: PUSH2 0x0a97 00000a92: JUMPI 00000a93: PUSH1 0x00 00000a95: DUP1 00000a96: REVERT 00000a97: JUMPDEST 00000a98: POP 00000a99: PUSH2 0x0498 00000a9c: PUSH2 0x2710 00000a9f: DUP2 00000aa0: JUMP 00000aa1: JUMPDEST 00000aa2: CALLVALUE 00000aa3: DUP1 00000aa4: ISZERO 00000aa5: PUSH2 0x0aad 00000aa8: JUMPI 00000aa9: PUSH1 0x00 00000aab: DUP1 00000aac: REVERT 00000aad: JUMPDEST 00000aae: POP 00000aaf: PUSH1 0x06 00000ab1: SLOAD 00000ab2: PUSH2 0x0100 00000ab5: SWAP1 00000ab6: DIV 00000ab7: PUSH1 0xff 00000ab9: AND 00000aba: PUSH2 0x0472 00000abd: JUMP 00000abe: JUMPDEST 00000abf: CALLVALUE 00000ac0: DUP1 00000ac1: ISZERO 00000ac2: PUSH2 0x0aca 00000ac5: JUMPI 00000ac6: PUSH1 0x00 00000ac8: DUP1 00000ac9: REVERT 00000aca: JUMPDEST 00000acb: POP 00000acc: PUSH2 0x0546 00000acf: PUSH2 0x0ad9 00000ad2: CALLDATASIZE 00000ad3: PUSH1 0x04 00000ad5: PUSH2 0x3237 00000ad8: JUMP 00000ad9: JUMPDEST 00000ada: PUSH2 0x1ae6 00000add: JUMP 00000ade: JUMPDEST 00000adf: CALLVALUE 00000ae0: DUP1 00000ae1: ISZERO 00000ae2: PUSH2 0x0aea 00000ae5: JUMPI 00000ae6: PUSH1 0x00 00000ae8: DUP1 00000ae9: REVERT 00000aea: JUMPDEST 00000aeb: POP 00000aec: PUSH2 0x0546 00000aef: PUSH2 0x0af9 00000af2: CALLDATASIZE 00000af3: PUSH1 0x04 00000af5: PUSH2 0x34dd 00000af8: JUMP 00000af9: JUMPDEST 00000afa: PUSH2 0x1bf1 00000afd: JUMP 00000afe: JUMPDEST 00000aff: PUSH1 0x00 00000b01: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000b22: DUP3 00000b23: AND 00000b24: PUSH32 0x10fe9ae800000000000000000000000000000000000000000000000000000000 00000b45: EQ 00000b46: DUP1 00000b47: PUSH2 0x0b54 00000b4a: JUMPI 00000b4b: POP 00000b4c: PUSH2 0x0b54 00000b4f: DUP3 00000b50: PUSH2 0x1e96 00000b53: JUMP 00000b54: JUMPDEST 00000b55: SWAP3 00000b56: SWAP2 00000b57: POP 00000b58: POP 00000b59: JUMP 00000b5a: JUMPDEST 00000b5b: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00000b7c: PUSH2 0x0b84 00000b7f: DUP2 00000b80: PUSH2 0x1f2d 00000b83: JUMP 00000b84: JUMPDEST 00000b85: DUP2 00000b86: PUSH1 0x0b 00000b88: DUP5 00000b89: PUSH1 0x40 00000b8b: MLOAD 00000b8c: PUSH2 0x0b95 00000b8f: SWAP2 00000b90: SWAP1 00000b91: PUSH2 0x3589 00000b94: JUMP 00000b95: JUMPDEST 00000b96: SWAP1 00000b97: DUP2 00000b98: MSTORE 00000b99: PUSH1 0x20 00000b9b: ADD 00000b9c: PUSH1 0x40 00000b9e: MLOAD 00000b9f: DUP1 00000ba0: SWAP2 00000ba1: SUB 00000ba2: SWAP1 00000ba3: KECCAK256 00000ba4: SLOAD 00000ba5: SUB 00000ba6: PUSH2 0x0bdb 00000ba9: JUMPI 00000baa: PUSH1 0x40 00000bac: MLOAD 00000bad: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000 00000bce: DUP2 00000bcf: MSTORE 00000bd0: PUSH1 0x04 00000bd2: ADD 00000bd3: PUSH1 0x40 00000bd5: MLOAD 00000bd6: DUP1 00000bd7: SWAP2 00000bd8: SUB 00000bd9: SWAP1 00000bda: REVERT 00000bdb: JUMPDEST 00000bdc: PUSH32 0xafd4b9329987f82f16db56b008381c15a5c25c9018735782692a94ebb7150992 00000bfd: DUP4 00000bfe: PUSH1 0x0b 00000c00: DUP6 00000c01: PUSH1 0x40 00000c03: MLOAD 00000c04: PUSH2 0x0c0d 00000c07: SWAP2 00000c08: SWAP1 00000c09: PUSH2 0x3589 00000c0c: JUMP 00000c0d: JUMPDEST 00000c0e: SWAP1 00000c0f: DUP2 00000c10: MSTORE 00000c11: PUSH1 0x40 00000c13: MLOAD 00000c14: SWAP1 00000c15: DUP2 00000c16: SWAP1 00000c17: SUB 00000c18: PUSH1 0x20 00000c1a: ADD 00000c1b: DUP2 00000c1c: KECCAK256 00000c1d: SLOAD 00000c1e: PUSH2 0x0c29 00000c21: SWAP3 00000c22: SWAP2 00000c23: DUP7 00000c24: SWAP1 00000c25: PUSH2 0x35ef 00000c28: JUMP 00000c29: JUMPDEST 00000c2a: PUSH1 0x40 00000c2c: MLOAD 00000c2d: DUP1 00000c2e: SWAP2 00000c2f: SUB 00000c30: SWAP1 00000c31: LOG1 00000c32: DUP2 00000c33: PUSH1 0x0b 00000c35: DUP5 00000c36: PUSH1 0x40 00000c38: MLOAD 00000c39: PUSH2 0x0c42 00000c3c: SWAP2 00000c3d: SWAP1 00000c3e: PUSH2 0x3589 00000c41: JUMP 00000c42: JUMPDEST 00000c43: SWAP1 00000c44: DUP2 00000c45: MSTORE 00000c46: PUSH1 0x40 00000c48: MLOAD 00000c49: SWAP1 00000c4a: DUP2 00000c4b: SWAP1 00000c4c: SUB 00000c4d: PUSH1 0x20 00000c4f: ADD 00000c50: SWAP1 00000c51: KECCAK256 00000c52: SSTORE 00000c53: POP 00000c54: POP 00000c55: POP 00000c56: JUMP 00000c57: JUMPDEST 00000c58: PUSH1 0x0d 00000c5a: SLOAD 00000c5b: PUSH1 0x40 00000c5d: MLOAD 00000c5e: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00000c7f: DUP2 00000c80: MSTORE 00000c81: ADDRESS 00000c82: PUSH1 0x04 00000c84: DUP3 00000c85: ADD 00000c86: MSTORE 00000c87: PUSH1 0x00 00000c89: SWAP2 00000c8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c9f: AND 00000ca0: SWAP1 00000ca1: PUSH4 0x70a08231 00000ca6: SWAP1 00000ca7: PUSH1 0x24 00000ca9: ADD 00000caa: PUSH1 0x20 00000cac: PUSH1 0x40 00000cae: MLOAD 00000caf: DUP1 00000cb0: DUP4 00000cb1: SUB 00000cb2: DUP2 00000cb3: DUP7 00000cb4: GAS 00000cb5: STATICCALL 00000cb6: ISZERO 00000cb7: DUP1 00000cb8: ISZERO 00000cb9: PUSH2 0x0cc6 00000cbc: JUMPI 00000cbd: RETURNDATASIZE 00000cbe: PUSH1 0x00 00000cc0: DUP1 00000cc1: RETURNDATACOPY 00000cc2: RETURNDATASIZE 00000cc3: PUSH1 0x00 00000cc5: REVERT 00000cc6: JUMPDEST 00000cc7: POP 00000cc8: POP 00000cc9: POP 00000cca: POP 00000ccb: PUSH1 0x40 00000ccd: MLOAD 00000cce: RETURNDATASIZE 00000ccf: PUSH1 0x1f 00000cd1: NOT 00000cd2: PUSH1 0x1f 00000cd4: DUP3 00000cd5: ADD 00000cd6: AND 00000cd7: DUP3 00000cd8: ADD 00000cd9: DUP1 00000cda: PUSH1 0x40 00000cdc: MSTORE 00000cdd: POP 00000cde: DUP2 00000cdf: ADD 00000ce0: SWAP1 00000ce1: PUSH2 0x0cea 00000ce4: SWAP2 00000ce5: SWAP1 00000ce6: PUSH2 0x3614 00000ce9: JUMP 00000cea: JUMPDEST 00000ceb: SWAP1 00000cec: POP 00000ced: SWAP1 00000cee: JUMP 00000cef: JUMPDEST 00000cf0: PUSH1 0x00 00000cf2: PUSH1 0x0a 00000cf4: DUP3 00000cf5: PUSH1 0x40 00000cf7: MLOAD 00000cf8: PUSH2 0x0d01 00000cfb: SWAP2 00000cfc: SWAP1 00000cfd: PUSH2 0x3589 00000d00: JUMP 00000d01: JUMPDEST 00000d02: SWAP1 00000d03: DUP2 00000d04: MSTORE 00000d05: PUSH1 0x40 00000d07: MLOAD 00000d08: SWAP1 00000d09: DUP2 00000d0a: SWAP1 00000d0b: SUB 00000d0c: PUSH1 0x20 00000d0e: ADD 00000d0f: SWAP1 00000d10: KECCAK256 00000d11: SLOAD 00000d12: PUSH1 0xff 00000d14: AND 00000d15: SWAP3 00000d16: SWAP2 00000d17: POP 00000d18: POP 00000d19: JUMP 00000d1a: JUMPDEST 00000d1b: PUSH1 0x00 00000d1d: DUP3 00000d1e: DUP2 00000d1f: MSTORE 00000d20: PUSH1 0x20 00000d22: DUP2 00000d23: SWAP1 00000d24: MSTORE 00000d25: PUSH1 0x40 00000d27: SWAP1 00000d28: KECCAK256 00000d29: PUSH1 0x01 00000d2b: ADD 00000d2c: SLOAD 00000d2d: PUSH2 0x0d35 00000d30: DUP2 00000d31: PUSH2 0x1f2d 00000d34: JUMP 00000d35: JUMPDEST 00000d36: PUSH2 0x0d3f 00000d39: DUP4 00000d3a: DUP4 00000d3b: PUSH2 0x1f37 00000d3e: JUMP 00000d3f: JUMPDEST 00000d40: POP 00000d41: POP 00000d42: POP 00000d43: POP 00000d44: JUMP 00000d45: JUMPDEST 00000d46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d5b: DUP2 00000d5c: AND 00000d5d: CALLER 00000d5e: EQ 00000d5f: PUSH2 0x0d94 00000d62: JUMPI 00000d63: PUSH1 0x40 00000d65: MLOAD 00000d66: PUSH32 0x6697b23200000000000000000000000000000000000000000000000000000000 00000d87: DUP2 00000d88: MSTORE 00000d89: PUSH1 0x04 00000d8b: ADD 00000d8c: PUSH1 0x40 00000d8e: MLOAD 00000d8f: DUP1 00000d90: SWAP2 00000d91: SUB 00000d92: SWAP1 00000d93: REVERT 00000d94: JUMPDEST 00000d95: PUSH2 0x0d9e 00000d98: DUP3 00000d99: DUP3 00000d9a: PUSH2 0x1f6c 00000d9d: JUMP 00000d9e: JUMPDEST 00000d9f: POP 00000da0: POP 00000da1: POP 00000da2: JUMP 00000da3: JUMPDEST 00000da4: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00000dc5: PUSH2 0x0dcd 00000dc8: DUP2 00000dc9: PUSH2 0x1f2d 00000dcc: JUMP 00000dcd: JUMPDEST 00000dce: PUSH1 0x09 00000dd0: SLOAD 00000dd1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000de6: DUP1 00000de7: DUP5 00000de8: AND 00000de9: SWAP2 00000dea: AND 00000deb: SUB 00000dec: PUSH2 0x0e21 00000def: JUMPI 00000df0: PUSH1 0x40 00000df2: MLOAD 00000df3: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000 00000e14: DUP2 00000e15: MSTORE 00000e16: PUSH1 0x04 00000e18: ADD 00000e19: PUSH1 0x40 00000e1b: MLOAD 00000e1c: DUP1 00000e1d: SWAP2 00000e1e: SUB 00000e1f: SWAP1 00000e20: REVERT 00000e21: JUMPDEST 00000e22: PUSH1 0x09 00000e24: SLOAD 00000e25: PUSH1 0x40 00000e27: DUP1 00000e28: MLOAD 00000e29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e3e: SWAP3 00000e3f: DUP4 00000e40: AND 00000e41: DUP2 00000e42: MSTORE 00000e43: SWAP2 00000e44: DUP5 00000e45: AND 00000e46: PUSH1 0x20 00000e48: DUP4 00000e49: ADD 00000e4a: MSTORE 00000e4b: PUSH32 0x49371ecb237c5f56c577ec4e13abb704592c57843c51f88df6b40074639f7e5d 00000e6c: SWAP2 00000e6d: ADD 00000e6e: PUSH1 0x40 00000e70: MLOAD 00000e71: DUP1 00000e72: SWAP2 00000e73: SUB 00000e74: SWAP1 00000e75: LOG1 00000e76: POP 00000e77: PUSH1 0x09 00000e79: DUP1 00000e7a: SLOAD 00000e7b: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000e9c: AND 00000e9d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000eb2: SWAP3 00000eb3: SWAP1 00000eb4: SWAP3 00000eb5: AND 00000eb6: SWAP2 00000eb7: SWAP1 00000eb8: SWAP2 00000eb9: OR 00000eba: SWAP1 00000ebb: SSTORE 00000ebc: JUMP 00000ebd: JUMPDEST 00000ebe: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00000edf: PUSH2 0x0ee7 00000ee2: DUP2 00000ee3: PUSH2 0x1f2d 00000ee6: JUMP 00000ee7: JUMPDEST 00000ee8: PUSH2 0x0ef3 00000eeb: CALLER 00000eec: JUMPDEST 00000eed: ADDRESS 00000eee: DUP5 00000eef: PUSH2 0x1f99 00000ef2: JUMP 00000ef3: JUMPDEST 00000ef4: PUSH1 0x40 00000ef6: MLOAD 00000ef7: DUP3 00000ef8: DUP2 00000ef9: MSTORE 00000efa: CALLER 00000efb: SWAP1 00000efc: PUSH32 0x9936746a4565f9766fa768f88f56a7487c78780ac179562773d1c75c5269537e 00000f1d: SWAP1 00000f1e: PUSH1 0x20 00000f20: ADD 00000f21: PUSH1 0x40 00000f23: MLOAD 00000f24: DUP1 00000f25: SWAP2 00000f26: SUB 00000f27: SWAP1 00000f28: LOG2 00000f29: POP 00000f2a: POP 00000f2b: JUMP 00000f2c: JUMPDEST 00000f2d: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00000f4e: PUSH2 0x0f56 00000f51: DUP2 00000f52: PUSH2 0x1f2d 00000f55: JUMP 00000f56: JUMPDEST 00000f57: DUP2 00000f58: PUSH1 0x0e 00000f5a: SLOAD 00000f5b: SUB 00000f5c: PUSH2 0x0f64 00000f5f: JUMPI 00000f60: PUSH1 0x00 00000f62: DUP1 00000f63: REVERT 00000f64: JUMPDEST 00000f65: DUP2 00000f66: PUSH1 0x0f 00000f68: SLOAD 00000f69: GT 00000f6a: PUSH2 0x0ff5 00000f6d: JUMPI 00000f6e: PUSH1 0x40 00000f70: MLOAD 00000f71: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f92: DUP2 00000f93: MSTORE 00000f94: PUSH1 0x20 00000f96: PUSH1 0x04 00000f98: DUP3 00000f99: ADD 00000f9a: MSTORE 00000f9b: PUSH1 0x37 00000f9d: PUSH1 0x24 00000f9f: DUP3 00000fa0: ADD 00000fa1: MSTORE 00000fa2: PUSH32 0x4d6178486f7442616c616e63652063616e6e6f74206265206269676765722074 00000fc3: PUSH1 0x44 00000fc5: DUP3 00000fc6: ADD 00000fc7: MSTORE 00000fc8: PUSH32 0x68616e207769746864726177616c54726573686f6c6421000000000000000000 00000fe9: PUSH1 0x64 00000feb: DUP3 00000fec: ADD 00000fed: MSTORE 00000fee: PUSH1 0x84 00000ff0: ADD 00000ff1: PUSH2 0x03c1 00000ff4: JUMP 00000ff5: JUMPDEST 00000ff6: PUSH1 0x0e 00000ff8: SLOAD 00000ff9: PUSH1 0x40 00000ffb: DUP1 00000ffc: MLOAD 00000ffd: SWAP2 00000ffe: DUP3 00000fff: MSTORE 00001000: PUSH1 0x20 00001002: DUP3 00001003: ADD 00001004: DUP5 00001005: SWAP1 00001006: MSTORE 00001007: PUSH32 0x0f5bd0230a22aa79e1483c1be57ae094a45560496dd4d70e0a796b9eacb31986 00001028: SWAP2 00001029: ADD 0000102a: PUSH1 0x40 0000102c: MLOAD 0000102d: DUP1 0000102e: SWAP2 0000102f: SUB 00001030: SWAP1 00001031: LOG1 00001032: POP 00001033: PUSH1 0x0e 00001035: SSTORE 00001036: JUMP 00001037: JUMPDEST 00001038: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00001059: PUSH2 0x1061 0000105c: DUP2 0000105d: PUSH2 0x1f2d 00001060: JUMP 00001061: JUMPDEST 00001062: DUP2 00001063: ISZERO 00001064: ISZERO 00001065: PUSH1 0x06 00001067: PUSH1 0x01 00001069: SWAP1 0000106a: SLOAD 0000106b: SWAP1 0000106c: PUSH2 0x0100 0000106f: EXP 00001070: SWAP1 00001071: DIV 00001072: PUSH1 0xff 00001074: AND 00001075: ISZERO 00001076: ISZERO 00001077: SUB 00001078: PUSH2 0x10ad 0000107b: JUMPI 0000107c: PUSH1 0x40 0000107e: MLOAD 0000107f: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000 000010a0: DUP2 000010a1: MSTORE 000010a2: PUSH1 0x04 000010a4: ADD 000010a5: PUSH1 0x40 000010a7: MLOAD 000010a8: DUP1 000010a9: SWAP2 000010aa: SUB 000010ab: SWAP1 000010ac: REVERT 000010ad: JUMPDEST 000010ae: PUSH2 0x10b6 000010b1: DUP3 000010b2: PUSH2 0x203a 000010b5: JUMP 000010b6: JUMPDEST 000010b7: POP 000010b8: POP 000010b9: JUMP 000010ba: JUMPDEST 000010bb: PUSH2 0x10c2 000010be: PUSH2 0x210d 000010c1: JUMP 000010c2: JUMPDEST 000010c3: PUSH1 0x00 000010c5: PUSH2 0x10cd 000010c8: DUP2 000010c9: PUSH2 0x1f2d 000010cc: JUMP 000010cd: JUMPDEST 000010ce: PUSH2 0x10d8 000010d1: PUSH1 0x00 000010d3: DUP15 000010d4: PUSH2 0x1f37 000010d7: JUMP 000010d8: JUMPDEST 000010d9: POP 000010da: PUSH2 0x1103 000010dd: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 000010fe: DUP15 000010ff: PUSH2 0x1f37 00001102: JUMP 00001103: JUMPDEST 00001104: POP 00001105: PUSH2 0x112e 00001108: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00001129: DUP14 0000112a: PUSH2 0x1f37 0000112d: JUMP 0000112e: JUMPDEST 0000112f: POP 00001130: PUSH2 0x1159 00001133: PUSH32 0x3a68886f0fdd43fd745090961de493dbef78fedcafd00c2109b3f906c62707c8 00001154: DUP13 00001155: PUSH2 0x1f37 00001158: JUMP 00001159: JUMPDEST 0000115a: POP 0000115b: PUSH2 0x1163 0000115e: DUP11 0000115f: PUSH1 0x04 00001161: SSTORE 00001162: JUMP 00001163: JUMPDEST 00001164: PUSH2 0x116c 00001167: DUP7 00001168: PUSH2 0x217c 0000116b: JUMP 0000116c: JUMPDEST 0000116d: PUSH2 0x1175 00001170: DUP8 00001171: PUSH2 0x2217 00001174: JUMP 00001175: JUMPDEST 00001176: PUSH2 0x117e 00001179: DUP10 0000117a: PUSH2 0x22c3 0000117d: JUMP 0000117e: JUMPDEST 0000117f: PUSH2 0x1187 00001182: DUP9 00001183: PUSH2 0x203a 00001186: JUMP 00001187: JUMPDEST 00001188: PUSH2 0x1190 0000118b: DUP3 0000118c: PUSH2 0x238c 0000118f: JUMP 00001190: JUMPDEST 00001191: PUSH1 0x0e 00001193: DUP6 00001194: SWAP1 00001195: SSTORE 00001196: PUSH1 0x0f 00001198: DUP5 00001199: SWAP1 0000119a: SSTORE 0000119b: PUSH2 0x11a3 0000119e: DUP4 0000119f: PUSH2 0x2476 000011a2: JUMP 000011a3: JUMPDEST 000011a4: PUSH2 0x11ab 000011a7: PUSH2 0x2511 000011aa: JUMP 000011ab: JUMPDEST 000011ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011c1: DUP14 000011c2: AND 000011c3: CALLER 000011c4: EQ 000011c5: PUSH2 0x11d5 000011c8: JUMPI 000011c9: PUSH2 0x11d3 000011cc: PUSH1 0x00 000011ce: CALLER 000011cf: PUSH2 0x1f6c 000011d2: JUMP 000011d3: JUMPDEST 000011d4: POP 000011d5: JUMPDEST 000011d6: PUSH2 0x11dd 000011d9: PUSH2 0x2528 000011dc: JUMP 000011dd: JUMPDEST 000011de: POP 000011df: POP 000011e0: POP 000011e1: POP 000011e2: POP 000011e3: POP 000011e4: POP 000011e5: POP 000011e6: POP 000011e7: POP 000011e8: POP 000011e9: POP 000011ea: POP 000011eb: JUMP 000011ec: JUMPDEST 000011ed: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 0000120e: PUSH2 0x1216 00001211: DUP2 00001212: PUSH2 0x1f2d 00001215: JUMP 00001216: JUMPDEST 00001217: PUSH1 0x06 00001219: SLOAD 0000121a: DUP3 0000121b: ISZERO 0000121c: ISZERO 0000121d: PUSH1 0xff 0000121f: SWAP1 00001220: SWAP2 00001221: AND 00001222: ISZERO 00001223: ISZERO 00001224: SUB 00001225: PUSH2 0x125a 00001228: JUMPI 00001229: PUSH1 0x40 0000122b: MLOAD 0000122c: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000 0000124d: DUP2 0000124e: MSTORE 0000124f: PUSH1 0x04 00001251: ADD 00001252: PUSH1 0x40 00001254: MLOAD 00001255: DUP1 00001256: SWAP2 00001257: SUB 00001258: SWAP1 00001259: REVERT 0000125a: JUMPDEST 0000125b: PUSH2 0x10b6 0000125e: DUP3 0000125f: PUSH2 0x22c3 00001262: JUMP 00001263: JUMPDEST 00001264: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00001285: PUSH2 0x128d 00001288: DUP2 00001289: PUSH2 0x1f2d 0000128c: JUMP 0000128d: JUMPDEST 0000128e: PUSH1 0x10 00001290: SLOAD 00001291: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012a6: DUP1 000012a7: DUP5 000012a8: AND 000012a9: SWAP2 000012aa: AND 000012ab: SUB 000012ac: PUSH2 0x12b4 000012af: JUMPI 000012b0: PUSH1 0x00 000012b2: DUP1 000012b3: REVERT 000012b4: JUMPDEST 000012b5: PUSH2 0x10b6 000012b8: DUP3 000012b9: PUSH2 0x2476 000012bc: JUMP 000012bd: JUMPDEST 000012be: PUSH1 0x06 000012c0: SLOAD 000012c1: PUSH1 0x00 000012c3: SWAP1 000012c4: PUSH2 0x0100 000012c7: SWAP1 000012c8: DIV 000012c9: PUSH1 0xff 000012cb: AND 000012cc: JUMPDEST 000012cd: ISZERO 000012ce: PUSH2 0x12da 000012d1: JUMPI 000012d2: PUSH2 0x0b54 000012d5: DUP3 000012d6: PUSH2 0x25ad 000012d9: JUMP 000012da: JUMPDEST 000012db: POP 000012dc: PUSH1 0x00 000012de: SWAP2 000012df: SWAP1 000012e0: POP 000012e1: JUMP 000012e2: JUMPDEST 000012e3: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00001304: PUSH2 0x130c 00001307: DUP2 00001308: PUSH2 0x1f2d 0000130b: JUMP 0000130c: JUMPDEST 0000130d: DUP2 0000130e: PUSH1 0x07 00001310: SLOAD 00001311: SUB 00001312: PUSH2 0x1347 00001315: JUMPI 00001316: PUSH1 0x40 00001318: MLOAD 00001319: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000 0000133a: DUP2 0000133b: MSTORE 0000133c: PUSH1 0x04 0000133e: ADD 0000133f: PUSH1 0x40 00001341: MLOAD 00001342: DUP1 00001343: SWAP2 00001344: SUB 00001345: SWAP1 00001346: REVERT 00001347: JUMPDEST 00001348: PUSH2 0x10b6 0000134b: DUP3 0000134c: PUSH2 0x2217 0000134f: JUMP 00001350: JUMPDEST 00001351: PUSH1 0x00 00001353: PUSH1 0x0b 00001355: DUP3 00001356: PUSH1 0x40 00001358: MLOAD 00001359: PUSH2 0x1362 0000135c: SWAP2 0000135d: SWAP1 0000135e: PUSH2 0x3589 00001361: JUMP 00001362: JUMPDEST 00001363: SWAP1 00001364: DUP2 00001365: MSTORE 00001366: PUSH1 0x20 00001368: ADD 00001369: PUSH1 0x40 0000136b: MLOAD 0000136c: DUP1 0000136d: SWAP2 0000136e: SUB 0000136f: SWAP1 00001370: KECCAK256 00001371: SLOAD 00001372: SWAP1 00001373: POP 00001374: SWAP2 00001375: SWAP1 00001376: POP 00001377: JUMP 00001378: JUMPDEST 00001379: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 0000139a: PUSH2 0x13a2 0000139d: DUP2 0000139e: PUSH2 0x1f2d 000013a1: JUMP 000013a2: JUMPDEST 000013a3: DUP2 000013a4: ISZERO 000013a5: ISZERO 000013a6: PUSH1 0x08 000013a8: PUSH1 0x14 000013aa: SWAP1 000013ab: SLOAD 000013ac: SWAP1 000013ad: PUSH2 0x0100 000013b0: EXP 000013b1: SWAP1 000013b2: DIV 000013b3: PUSH1 0xff 000013b5: AND 000013b6: ISZERO 000013b7: ISZERO 000013b8: SUB 000013b9: PUSH2 0x13ee 000013bc: JUMPI 000013bd: PUSH1 0x40 000013bf: MLOAD 000013c0: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000 000013e1: DUP2 000013e2: MSTORE 000013e3: PUSH1 0x04 000013e5: ADD 000013e6: PUSH1 0x40 000013e8: MLOAD 000013e9: DUP1 000013ea: SWAP2 000013eb: SUB 000013ec: SWAP1 000013ed: REVERT 000013ee: JUMPDEST 000013ef: PUSH1 0x08 000013f1: SLOAD 000013f2: PUSH1 0x40 000013f4: DUP1 000013f5: MLOAD 000013f6: PUSH21 0x010000000000000000000000000000000000000000 0000140c: SWAP1 0000140d: SWAP3 0000140e: DIV 0000140f: PUSH1 0xff 00001411: AND 00001412: ISZERO 00001413: ISZERO 00001414: DUP3 00001415: MSTORE 00001416: DUP4 00001417: ISZERO 00001418: ISZERO 00001419: PUSH1 0x20 0000141b: DUP4 0000141c: ADD 0000141d: MSTORE 0000141e: PUSH32 0xd877b1097bc5bc66c13b1aa139e2dcba8e06bb4ef76c5af6684995c14fd237ba 0000143f: SWAP2 00001440: ADD 00001441: PUSH1 0x40 00001443: MLOAD 00001444: DUP1 00001445: SWAP2 00001446: SUB 00001447: SWAP1 00001448: LOG1 00001449: POP 0000144a: PUSH1 0x08 0000144c: DUP1 0000144d: SLOAD 0000144e: SWAP2 0000144f: ISZERO 00001450: ISZERO 00001451: PUSH21 0x010000000000000000000000000000000000000000 00001467: MUL 00001468: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff 00001489: SWAP1 0000148a: SWAP3 0000148b: AND 0000148c: SWAP2 0000148d: SWAP1 0000148e: SWAP2 0000148f: OR 00001490: SWAP1 00001491: SSTORE 00001492: JUMP 00001493: JUMPDEST 00001494: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 000014b5: PUSH2 0x14bd 000014b8: DUP2 000014b9: PUSH2 0x1f2d 000014bc: JUMP 000014bd: JUMPDEST 000014be: PUSH1 0x05 000014c0: SLOAD 000014c1: PUSH1 0x40 000014c3: DUP1 000014c4: MLOAD 000014c5: SWAP2 000014c6: DUP3 000014c7: MSTORE 000014c8: PUSH1 0x20 000014ca: DUP3 000014cb: ADD 000014cc: DUP5 000014cd: SWAP1 000014ce: MSTORE 000014cf: PUSH32 0xbead02a13f814bc937763103a9ad868c46a71a65a1395c3e906885226ada0fc1 000014f0: SWAP2 000014f1: ADD 000014f2: PUSH1 0x40 000014f4: MLOAD 000014f5: DUP1 000014f6: SWAP2 000014f7: SUB 000014f8: SWAP1 000014f9: LOG1 000014fa: POP 000014fb: PUSH1 0x05 000014fd: SSTORE 000014fe: JUMP 000014ff: JUMPDEST 00001500: PUSH1 0x08 00001502: SLOAD 00001503: PUSH1 0x00 00001505: SWAP1 00001506: PUSH21 0x010000000000000000000000000000000000000000 0000151c: SWAP1 0000151d: DIV 0000151e: PUSH1 0xff 00001520: AND 00001521: DUP1 00001522: ISZERO 00001523: PUSH2 0x0cea 00001526: JUMPI 00001527: POP 00001528: POP 00001529: PUSH1 0x09 0000152b: SLOAD 0000152c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001541: AND 00001542: ISZERO 00001543: ISZERO 00001544: SWAP1 00001545: JUMP 00001546: JUMPDEST 00001547: PUSH1 0x00 00001549: PUSH2 0x1551 0000154c: DUP2 0000154d: PUSH2 0x1f2d 00001550: JUMP 00001551: JUMPDEST 00001552: PUSH2 0x1559 00001555: PUSH2 0x263d 00001558: JUMP 00001559: JUMPDEST 0000155a: POP 0000155b: JUMP 0000155c: JUMPDEST 0000155d: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 0000157e: PUSH2 0x1586 00001581: DUP2 00001582: PUSH2 0x1f2d 00001585: JUMP 00001586: JUMPDEST 00001587: PUSH1 0x08 00001589: SLOAD 0000158a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000159f: DUP1 000015a0: DUP5 000015a1: AND 000015a2: SWAP2 000015a3: AND 000015a4: SUB 000015a5: PUSH2 0x15da 000015a8: JUMPI 000015a9: PUSH1 0x40 000015ab: MLOAD 000015ac: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000 000015cd: DUP2 000015ce: MSTORE 000015cf: PUSH1 0x04 000015d1: ADD 000015d2: PUSH1 0x40 000015d4: MLOAD 000015d5: DUP1 000015d6: SWAP2 000015d7: SUB 000015d8: SWAP1 000015d9: REVERT 000015da: JUMPDEST 000015db: PUSH2 0x10b6 000015de: DUP3 000015df: PUSH2 0x217c 000015e2: JUMP 000015e3: JUMPDEST 000015e4: PUSH1 0x00 000015e6: DUP3 000015e7: DUP2 000015e8: MSTORE 000015e9: PUSH1 0x01 000015eb: PUSH1 0x20 000015ed: MSTORE 000015ee: PUSH1 0x40 000015f0: DUP2 000015f1: KECCAK256 000015f2: PUSH2 0x15fb 000015f5: SWAP1 000015f6: DUP4 000015f7: PUSH2 0x2694 000015fa: JUMP 000015fb: JUMPDEST 000015fc: SWAP4 000015fd: SWAP3 000015fe: POP 000015ff: POP 00001600: POP 00001601: JUMP 00001602: JUMPDEST 00001603: PUSH1 0x00 00001605: PUSH2 0x12cc 00001608: PUSH1 0x06 0000160a: SLOAD 0000160b: PUSH1 0xff 0000160d: AND 0000160e: SWAP1 0000160f: JUMP 00001610: JUMPDEST 00001611: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00001632: PUSH2 0x163a 00001635: DUP2 00001636: PUSH2 0x1f2d 00001639: JUMP 0000163a: JUMPDEST 0000163b: DUP2 0000163c: ISZERO 0000163d: ISZERO 0000163e: PUSH1 0x0a 00001640: DUP5 00001641: PUSH1 0x40 00001643: MLOAD 00001644: PUSH2 0x164d 00001647: SWAP2 00001648: SWAP1 00001649: PUSH2 0x3589 0000164c: JUMP 0000164d: JUMPDEST 0000164e: SWAP1 0000164f: DUP2 00001650: MSTORE 00001651: PUSH1 0x40 00001653: MLOAD 00001654: SWAP1 00001655: DUP2 00001656: SWAP1 00001657: SUB 00001658: PUSH1 0x20 0000165a: ADD 0000165b: SWAP1 0000165c: KECCAK256 0000165d: SLOAD 0000165e: PUSH1 0xff 00001660: AND 00001661: ISZERO 00001662: ISZERO 00001663: SUB 00001664: PUSH2 0x1699 00001667: JUMPI 00001668: PUSH1 0x40 0000166a: MLOAD 0000166b: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000 0000168c: DUP2 0000168d: MSTORE 0000168e: PUSH1 0x04 00001690: ADD 00001691: PUSH1 0x40 00001693: MLOAD 00001694: DUP1 00001695: SWAP2 00001696: SUB 00001697: SWAP1 00001698: REVERT 00001699: JUMPDEST 0000169a: PUSH32 0x558f778dd9a235deda0934eea93c307e3548dbe8b341bc1253e1e540fc2f0240 000016bb: DUP4 000016bc: PUSH1 0x0a 000016be: DUP6 000016bf: PUSH1 0x40 000016c1: MLOAD 000016c2: PUSH2 0x16cb 000016c5: SWAP2 000016c6: SWAP1 000016c7: PUSH2 0x3589 000016ca: JUMP 000016cb: JUMPDEST 000016cc: SWAP1 000016cd: DUP2 000016ce: MSTORE 000016cf: PUSH1 0x40 000016d1: MLOAD 000016d2: SWAP1 000016d3: DUP2 000016d4: SWAP1 000016d5: SUB 000016d6: PUSH1 0x20 000016d8: ADD 000016d9: DUP2 000016da: KECCAK256 000016db: SLOAD 000016dc: PUSH2 0x16ed 000016df: SWAP3 000016e0: SWAP2 000016e1: PUSH1 0xff 000016e3: SWAP1 000016e4: SWAP2 000016e5: AND 000016e6: SWAP1 000016e7: DUP7 000016e8: SWAP1 000016e9: PUSH2 0x362d 000016ec: JUMP 000016ed: JUMPDEST 000016ee: PUSH1 0x40 000016f0: MLOAD 000016f1: DUP1 000016f2: SWAP2 000016f3: SUB 000016f4: SWAP1 000016f5: LOG1 000016f6: DUP2 000016f7: PUSH1 0x0a 000016f9: DUP5 000016fa: PUSH1 0x40 000016fc: MLOAD 000016fd: PUSH2 0x1706 00001700: SWAP2 00001701: SWAP1 00001702: PUSH2 0x3589 00001705: JUMP 00001706: JUMPDEST 00001707: SWAP1 00001708: DUP2 00001709: MSTORE 0000170a: PUSH1 0x40 0000170c: MLOAD 0000170d: SWAP1 0000170e: DUP2 0000170f: SWAP1 00001710: SUB 00001711: PUSH1 0x20 00001713: ADD 00001714: SWAP1 00001715: KECCAK256 00001716: DUP1 00001717: SLOAD 00001718: SWAP2 00001719: ISZERO 0000171a: ISZERO 0000171b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000173c: SWAP1 0000173d: SWAP3 0000173e: AND 0000173f: SWAP2 00001740: SWAP1 00001741: SWAP2 00001742: OR 00001743: SWAP1 00001744: SSTORE 00001745: POP 00001746: POP 00001747: POP 00001748: JUMP 00001749: JUMPDEST 0000174a: PUSH1 0x00 0000174c: DUP1 0000174d: PUSH2 0x1755 00001750: DUP2 00001751: PUSH2 0x1f2d 00001754: JUMP 00001755: JUMPDEST 00001756: PUSH2 0x1760 00001759: DUP6 0000175a: DUP6 0000175b: DUP6 0000175c: PUSH2 0x26a0 0000175f: JUMP 00001760: JUMPDEST 00001761: POP 00001762: PUSH1 0x01 00001764: SWAP5 00001765: SWAP4 00001766: POP 00001767: POP 00001768: POP 00001769: POP 0000176a: JUMP 0000176b: JUMPDEST 0000176c: PUSH1 0x00 0000176e: DUP2 0000176f: DUP2 00001770: MSTORE 00001771: PUSH1 0x01 00001773: PUSH1 0x20 00001775: MSTORE 00001776: PUSH1 0x40 00001778: DUP2 00001779: KECCAK256 0000177a: PUSH2 0x0b54 0000177d: SWAP1 0000177e: PUSH2 0x272d 00001781: JUMP 00001782: JUMPDEST 00001783: PUSH2 0x178a 00001786: PUSH2 0x2737 00001789: JUMP 0000178a: JUMPDEST 0000178b: PUSH2 0x1792 0000178e: PUSH2 0x2779 00001791: JUMP 00001792: JUMPDEST 00001793: PUSH2 0x179a 00001796: PUSH2 0x27e5 00001799: JUMP 0000179a: JUMPDEST 0000179b: PUSH2 0x17a3 0000179e: DUP4 0000179f: PUSH2 0x0cef 000017a2: JUMP 000017a3: JUMPDEST 000017a4: PUSH2 0x1809 000017a7: JUMPI 000017a8: PUSH1 0x40 000017aa: MLOAD 000017ab: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000017cc: DUP2 000017cd: MSTORE 000017ce: PUSH1 0x20 000017d0: PUSH1 0x04 000017d2: DUP3 000017d3: ADD 000017d4: MSTORE 000017d5: PUSH1 0x1b 000017d7: PUSH1 0x24 000017d9: DUP3 000017da: ADD 000017db: MSTORE 000017dc: PUSH32 0x436861696e4964206973206e6f742077686974656c6973746564210000000000 000017fd: PUSH1 0x44 000017ff: DUP3 00001800: ADD 00001801: MSTORE 00001802: PUSH1 0x64 00001804: ADD 00001805: PUSH2 0x03c1 00001808: JUMP 00001809: JUMPDEST 0000180a: PUSH2 0x1812 0000180d: DUP4 0000180e: PUSH2 0x1350 00001811: JUMP 00001812: JUMPDEST 00001813: DUP2 00001814: GT 00001815: PUSH2 0x18a0 00001818: JUMPI 00001819: PUSH1 0x40 0000181b: MLOAD 0000181c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000183d: DUP2 0000183e: MSTORE 0000183f: PUSH1 0x20 00001841: PUSH1 0x04 00001843: DUP3 00001844: ADD 00001845: MSTORE 00001846: PUSH1 0x2d 00001848: PUSH1 0x24 0000184a: DUP3 0000184b: ADD 0000184c: MSTORE 0000184d: PUSH32 0x5472616e7366657220616d6f756e74206d757374206265206772656174657220 0000186e: PUSH1 0x44 00001870: DUP3 00001871: ADD 00001872: MSTORE 00001873: PUSH32 0x7468616e206d696e696d756d2100000000000000000000000000000000000000 00001894: PUSH1 0x64 00001896: DUP3 00001897: ADD 00001898: MSTORE 00001899: PUSH1 0x84 0000189b: ADD 0000189c: PUSH2 0x03c1 0000189f: JUMP 000018a0: JUMPDEST 000018a1: DUP1 000018a2: PUSH1 0x00 000018a4: PUSH2 0x18b5 000018a7: PUSH1 0x06 000018a9: SLOAD 000018aa: PUSH1 0xff 000018ac: PUSH2 0x0100 000018af: SWAP1 000018b0: SWAP2 000018b1: DIV 000018b2: AND 000018b3: SWAP1 000018b4: JUMP 000018b5: JUMPDEST 000018b6: ISZERO 000018b7: PUSH2 0x195e 000018ba: JUMPI 000018bb: PUSH2 0x18c3 000018be: DUP4 000018bf: PUSH2 0x25ad 000018c2: JUMP 000018c3: JUMPDEST 000018c4: SWAP1 000018c5: POP 000018c6: PUSH2 0x18cf 000018c9: DUP2 000018ca: DUP5 000018cb: PUSH2 0x3686 000018ce: JUMP 000018cf: JUMPDEST 000018d0: SWAP2 000018d1: POP 000018d2: PUSH2 0x18f5 000018d5: CALLER 000018d6: PUSH1 0x08 000018d8: SLOAD 000018d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018ee: AND 000018ef: JUMPDEST 000018f0: DUP4 000018f1: PUSH2 0x1f99 000018f4: JUMP 000018f5: JUMPDEST 000018f6: PUSH1 0x08 000018f8: SLOAD 000018f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000190e: AND 0000190f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001924: AND 00001925: PUSH32 0x58793df5f4d270351f09efd433db93c69432142b69dc7ee38195fc630478c79f 00001946: DUP3 00001947: PUSH1 0x40 00001949: MLOAD 0000194a: PUSH2 0x1955 0000194d: SWAP2 0000194e: DUP2 0000194f: MSTORE 00001950: PUSH1 0x20 00001952: ADD 00001953: SWAP1 00001954: JUMP 00001955: JUMPDEST 00001956: PUSH1 0x40 00001958: MLOAD 00001959: DUP1 0000195a: SWAP2 0000195b: SUB 0000195c: SWAP1 0000195d: LOG2 0000195e: JUMPDEST 0000195f: PUSH2 0x1967 00001962: CALLER 00001963: PUSH2 0x0eec 00001966: JUMP 00001967: JUMPDEST 00001968: PUSH1 0x40 0000196a: MLOAD 0000196b: DUP3 0000196c: DUP2 0000196d: MSTORE 0000196e: CALLER 0000196f: SWAP1 00001970: PUSH32 0x9936746a4565f9766fa768f88f56a7487c78780ac179562773d1c75c5269537e 00001991: SWAP1 00001992: PUSH1 0x20 00001994: ADD 00001995: PUSH1 0x40 00001997: MLOAD 00001998: DUP1 00001999: SWAP2 0000199a: SUB 0000199b: SWAP1 0000199c: LOG2 0000199d: PUSH1 0x40 0000199f: MLOAD 000019a0: CALLER 000019a1: SWAP1 000019a2: PUSH2 0x19ac 000019a5: SWAP1 000019a6: DUP8 000019a7: SWAP1 000019a8: PUSH2 0x3589 000019ab: JUMP 000019ac: JUMPDEST 000019ad: PUSH1 0x40 000019af: MLOAD 000019b0: DUP1 000019b1: SWAP2 000019b2: SUB 000019b3: SWAP1 000019b4: KECCAK256 000019b5: PUSH32 0xe018479759b1e949537a237f8def7ac5729eb80674560f76a979aed637e6f383 000019d6: PUSH2 0x19de 000019d9: PUSH1 0x05 000019db: SLOAD 000019dc: SWAP1 000019dd: JUMP 000019de: JUMPDEST 000019df: DUP8 000019e0: DUP7 000019e1: DUP7 000019e2: PUSH1 0x40 000019e4: MLOAD 000019e5: PUSH2 0x19f1 000019e8: SWAP5 000019e9: SWAP4 000019ea: SWAP3 000019eb: SWAP2 000019ec: SWAP1 000019ed: PUSH2 0x3699 000019f0: JUMP 000019f1: JUMPDEST 000019f2: PUSH1 0x40 000019f4: MLOAD 000019f5: DUP1 000019f6: SWAP2 000019f7: SUB 000019f8: SWAP1 000019f9: LOG3 000019fa: PUSH2 0x1a01 000019fd: PUSH2 0x2511 00001a00: JUMP 00001a01: JUMPDEST 00001a02: PUSH1 0x0f 00001a04: SLOAD 00001a05: PUSH2 0x1a0c 00001a08: PUSH2 0x0c57 00001a0b: JUMP 00001a0c: JUMPDEST 00001a0d: GT 00001a0e: ISZERO 00001a0f: PUSH2 0x1aa2 00001a12: JUMPI 00001a13: PUSH1 0x00 00001a15: PUSH1 0x0e 00001a17: SLOAD 00001a18: PUSH2 0x1a1f 00001a1b: PUSH2 0x0c57 00001a1e: JUMP 00001a1f: JUMPDEST 00001a20: PUSH2 0x1a29 00001a23: SWAP2 00001a24: SWAP1 00001a25: PUSH2 0x3686 00001a28: JUMP 00001a29: JUMPDEST 00001a2a: PUSH1 0x10 00001a2c: SLOAD 00001a2d: SWAP1 00001a2e: SWAP2 00001a2f: POP 00001a30: PUSH2 0x1a51 00001a33: SWAP1 00001a34: ADDRESS 00001a35: SWAP1 00001a36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a4b: AND 00001a4c: DUP4 00001a4d: PUSH2 0x1f99 00001a50: JUMP 00001a51: JUMPDEST 00001a52: PUSH1 0x10 00001a54: SLOAD 00001a55: PUSH1 0x40 00001a57: MLOAD 00001a58: DUP3 00001a59: DUP2 00001a5a: MSTORE 00001a5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a70: SWAP1 00001a71: SWAP2 00001a72: AND 00001a73: SWAP1 00001a74: PUSH32 0xe541104353a547eab02b4055f4f9ba8b927d7a3b345e1122d417dccd18f53931 00001a95: SWAP1 00001a96: PUSH1 0x20 00001a98: ADD 00001a99: PUSH1 0x40 00001a9b: MLOAD 00001a9c: DUP1 00001a9d: SWAP2 00001a9e: SUB 00001a9f: SWAP1 00001aa0: LOG2 00001aa1: POP 00001aa2: JUMPDEST 00001aa3: POP 00001aa4: POP 00001aa5: PUSH2 0x0d9e 00001aa8: PUSH1 0x01 00001aaa: PUSH1 0x02 00001aac: SSTORE 00001aad: JUMP 00001aae: JUMPDEST 00001aaf: PUSH1 0x00 00001ab1: PUSH2 0x1ab9 00001ab4: DUP2 00001ab5: PUSH2 0x1f2d 00001ab8: JUMP 00001ab9: JUMPDEST 00001aba: PUSH2 0x1559 00001abd: PUSH2 0x2826 00001ac0: JUMP 00001ac1: JUMPDEST 00001ac2: PUSH1 0x00 00001ac4: DUP3 00001ac5: DUP2 00001ac6: MSTORE 00001ac7: PUSH1 0x20 00001ac9: DUP2 00001aca: SWAP1 00001acb: MSTORE 00001acc: PUSH1 0x40 00001ace: SWAP1 00001acf: KECCAK256 00001ad0: PUSH1 0x01 00001ad2: ADD 00001ad3: SLOAD 00001ad4: PUSH2 0x1adc 00001ad7: DUP2 00001ad8: PUSH2 0x1f2d 00001adb: JUMP 00001adc: JUMPDEST 00001add: PUSH2 0x0d3f 00001ae0: DUP4 00001ae1: DUP4 00001ae2: PUSH2 0x1f6c 00001ae5: JUMP 00001ae6: JUMPDEST 00001ae7: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f 00001b08: PUSH2 0x1b10 00001b0b: DUP2 00001b0c: PUSH2 0x1f2d 00001b0f: JUMP 00001b10: JUMPDEST 00001b11: DUP2 00001b12: PUSH1 0x0f 00001b14: SLOAD 00001b15: SUB 00001b16: PUSH2 0x1b1e 00001b19: JUMPI 00001b1a: PUSH1 0x00 00001b1c: DUP1 00001b1d: REVERT 00001b1e: JUMPDEST 00001b1f: PUSH1 0x0e 00001b21: SLOAD 00001b22: DUP3 00001b23: GT 00001b24: PUSH2 0x1baf 00001b27: JUMPI 00001b28: PUSH1 0x40 00001b2a: MLOAD 00001b2b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001b4c: DUP2 00001b4d: MSTORE 00001b4e: PUSH1 0x20 00001b50: PUSH1 0x04 00001b52: DUP3 00001b53: ADD 00001b54: MSTORE 00001b55: PUSH1 0x35 00001b57: PUSH1 0x24 00001b59: DUP3 00001b5a: ADD 00001b5b: MSTORE 00001b5c: PUSH32 0x5769746864726177616c54726573686f6c64206d757374206265206269676765 00001b7d: PUSH1 0x44 00001b7f: DUP3 00001b80: ADD 00001b81: MSTORE 00001b82: PUSH32 0x72207468616e206d6178486f7442616c616e6365210000000000000000000000 00001ba3: PUSH1 0x64 00001ba5: DUP3 00001ba6: ADD 00001ba7: MSTORE 00001ba8: PUSH1 0x84 00001baa: ADD 00001bab: PUSH2 0x03c1 00001bae: JUMP 00001baf: JUMPDEST 00001bb0: PUSH1 0x0f 00001bb2: SLOAD 00001bb3: PUSH1 0x40 00001bb5: DUP1 00001bb6: MLOAD 00001bb7: SWAP2 00001bb8: DUP3 00001bb9: MSTORE 00001bba: PUSH1 0x20 00001bbc: DUP3 00001bbd: ADD 00001bbe: DUP5 00001bbf: SWAP1 00001bc0: MSTORE 00001bc1: PUSH32 0x1adb426056931f3893f5a036e49474ea8ac139f52ba9cccc70426aab8ac1fbc7 00001be2: SWAP2 00001be3: ADD 00001be4: PUSH1 0x40 00001be6: MLOAD 00001be7: DUP1 00001be8: SWAP2 00001be9: SUB 00001bea: SWAP1 00001beb: LOG1 00001bec: POP 00001bed: PUSH1 0x0f 00001bef: SSTORE 00001bf0: JUMP 00001bf1: JUMPDEST 00001bf2: PUSH2 0x1bf9 00001bf5: PUSH2 0x2737 00001bf8: JUMP 00001bf9: JUMPDEST 00001bfa: PUSH2 0x1c01 00001bfd: PUSH2 0x2779 00001c00: JUMP 00001c01: JUMPDEST 00001c02: PUSH2 0x1c09 00001c05: PUSH2 0x27e5 00001c08: JUMP 00001c09: JUMPDEST 00001c0a: PUSH32 0x3a68886f0fdd43fd745090961de493dbef78fedcafd00c2109b3f906c62707c8 00001c2b: PUSH2 0x1c33 00001c2e: DUP2 00001c2f: PUSH2 0x1f2d 00001c32: JUMP 00001c33: JUMPDEST 00001c34: PUSH2 0x1c3d 00001c37: DUP7 00001c38: DUP7 00001c39: PUSH2 0x2882 00001c3c: JUMP 00001c3d: JUMPDEST 00001c3e: DUP2 00001c3f: PUSH1 0x00 00001c41: PUSH2 0x1c4c 00001c44: PUSH1 0x06 00001c46: SLOAD 00001c47: PUSH1 0xff 00001c49: AND 00001c4a: SWAP1 00001c4b: JUMP 00001c4c: JUMPDEST 00001c4d: ISZERO 00001c4e: PUSH2 0x1cf4 00001c51: JUMPI 00001c52: PUSH2 0x1c5a 00001c55: DUP5 00001c56: PUSH2 0x25ad 00001c59: JUMP 00001c5a: JUMPDEST 00001c5b: SWAP1 00001c5c: POP 00001c5d: PUSH2 0x1c7f 00001c60: ADDRESS 00001c61: PUSH2 0x18ef 00001c64: PUSH1 0x08 00001c66: SLOAD 00001c67: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c7c: AND 00001c7d: SWAP1 00001c7e: JUMP 00001c7f: JUMPDEST 00001c80: PUSH1 0x08 00001c82: SLOAD 00001c83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c98: AND 00001c99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cae: AND 00001caf: PUSH32 0x58793df5f4d270351f09efd433db93c69432142b69dc7ee38195fc630478c79f 00001cd0: DUP3 00001cd1: PUSH1 0x40 00001cd3: MLOAD 00001cd4: PUSH2 0x1cdf 00001cd7: SWAP2 00001cd8: DUP2 00001cd9: MSTORE 00001cda: PUSH1 0x20 00001cdc: ADD 00001cdd: SWAP1 00001cde: JUMP 00001cdf: JUMPDEST 00001ce0: PUSH1 0x40 00001ce2: MLOAD 00001ce3: DUP1 00001ce4: SWAP2 00001ce5: SUB 00001ce6: SWAP1 00001ce7: LOG2 00001ce8: PUSH2 0x1cf1 00001ceb: DUP2 00001cec: DUP6 00001ced: PUSH2 0x3686 00001cf0: JUMP 00001cf1: JUMPDEST 00001cf2: SWAP2 00001cf3: POP 00001cf4: JUMPDEST 00001cf5: PUSH2 0x1cff 00001cf8: ADDRESS 00001cf9: DUP7 00001cfa: DUP5 00001cfb: PUSH2 0x1f99 00001cfe: JUMP 00001cff: JUMPDEST 00001d00: DUP5 00001d01: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d16: AND 00001d17: PUSH32 0x8c8f77105ce8ee99e391fd4da140bc14a988eb4cf878b240bfed9b10ae7c6758 00001d38: DUP4 00001d39: PUSH1 0x40 00001d3b: MLOAD 00001d3c: PUSH2 0x1d47 00001d3f: SWAP2 00001d40: DUP2 00001d41: MSTORE 00001d42: PUSH1 0x20 00001d44: ADD 00001d45: SWAP1 00001d46: JUMP 00001d47: JUMPDEST 00001d48: PUSH1 0x40 00001d4a: MLOAD 00001d4b: DUP1 00001d4c: SWAP2 00001d4d: SUB 00001d4e: SWAP1 00001d4f: LOG2 00001d50: DUP5 00001d51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d66: AND 00001d67: DUP7 00001d68: PUSH1 0x40 00001d6a: MLOAD 00001d6b: PUSH2 0x1d74 00001d6e: SWAP2 00001d6f: SWAP1 00001d70: PUSH2 0x3589 00001d73: JUMP 00001d74: JUMPDEST 00001d75: PUSH1 0x40 00001d77: MLOAD 00001d78: DUP1 00001d79: SWAP2 00001d7a: SUB 00001d7b: SWAP1 00001d7c: KECCAK256 00001d7d: DUP10 00001d7e: PUSH1 0x40 00001d80: MLOAD 00001d81: PUSH2 0x1d8a 00001d84: SWAP2 00001d85: SWAP1 00001d86: PUSH2 0x3589 00001d89: JUMP 00001d8a: JUMPDEST 00001d8b: PUSH1 0x40 00001d8d: DUP1 00001d8e: MLOAD 00001d8f: SWAP2 00001d90: DUP3 00001d91: SWAP1 00001d92: SUB 00001d93: DUP3 00001d94: KECCAK256 00001d95: DUP12 00001d96: DUP4 00001d97: MSTORE 00001d98: PUSH1 0x20 00001d9a: DUP4 00001d9b: ADD 00001d9c: DUP8 00001d9d: SWAP1 00001d9e: MSTORE 00001d9f: SWAP1 00001da0: DUP3 00001da1: ADD 00001da2: DUP6 00001da3: SWAP1 00001da4: MSTORE 00001da5: SWAP1 00001da6: PUSH32 0x3ec450082f2489098a948b09fef486373fd1c855628384ba4054ed1e02b92799 00001dc7: SWAP1 00001dc8: PUSH1 0x60 00001dca: ADD 00001dcb: PUSH1 0x40 00001dcd: MLOAD 00001dce: DUP1 00001dcf: SWAP2 00001dd0: SUB 00001dd1: SWAP1 00001dd2: LOG4 00001dd3: PUSH2 0x1dda 00001dd6: PUSH2 0x14ff 00001dd9: JUMP 00001dda: JUMPDEST 00001ddb: ISZERO 00001ddc: PUSH2 0x1e82 00001ddf: JUMPI 00001de0: PUSH1 0x09 00001de2: SLOAD 00001de3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001df8: AND 00001df9: PUSH1 0x40 00001dfb: MLOAD 00001dfc: PUSH32 0xc2e6d02500000000000000000000000000000000000000000000000000000000 00001e1d: DUP2 00001e1e: MSTORE 00001e1f: ADDRESS 00001e20: PUSH1 0x04 00001e22: DUP3 00001e23: ADD 00001e24: MSTORE 00001e25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e3a: DUP8 00001e3b: DUP2 00001e3c: AND 00001e3d: PUSH1 0x24 00001e3f: DUP4 00001e40: ADD 00001e41: MSTORE 00001e42: SWAP2 00001e43: SWAP1 00001e44: SWAP2 00001e45: AND 00001e46: SWAP1 00001e47: PUSH4 0xc2e6d025 00001e4c: SWAP1 00001e4d: PUSH1 0x44 00001e4f: ADD 00001e50: PUSH1 0x00 00001e52: PUSH1 0x40 00001e54: MLOAD 00001e55: DUP1 00001e56: DUP4 00001e57: SUB 00001e58: DUP2 00001e59: PUSH1 0x00 00001e5b: DUP8 00001e5c: DUP1 00001e5d: EXTCODESIZE 00001e5e: ISZERO 00001e5f: DUP1 00001e60: ISZERO 00001e61: PUSH2 0x1e69 00001e64: JUMPI 00001e65: PUSH1 0x00 00001e67: DUP1 00001e68: REVERT 00001e69: JUMPDEST 00001e6a: POP 00001e6b: GAS 00001e6c: CALL 00001e6d: ISZERO 00001e6e: DUP1 00001e6f: ISZERO 00001e70: PUSH2 0x1e7d 00001e73: JUMPI 00001e74: RETURNDATASIZE 00001e75: PUSH1 0x00 00001e77: DUP1 00001e78: RETURNDATACOPY 00001e79: RETURNDATASIZE 00001e7a: PUSH1 0x00 00001e7c: REVERT 00001e7d: JUMPDEST 00001e7e: POP 00001e7f: POP 00001e80: POP 00001e81: POP 00001e82: JUMPDEST 00001e83: POP 00001e84: POP 00001e85: POP 00001e86: PUSH2 0x1e8f 00001e89: PUSH1 0x01 00001e8b: PUSH1 0x02 00001e8d: SSTORE 00001e8e: JUMP 00001e8f: JUMPDEST 00001e90: POP 00001e91: POP 00001e92: POP 00001e93: POP 00001e94: POP 00001e95: JUMP 00001e96: JUMPDEST 00001e97: PUSH1 0x00 00001e99: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001eba: DUP3 00001ebb: AND 00001ebc: PUSH32 0x5e660c6a00000000000000000000000000000000000000000000000000000000 00001edd: EQ 00001ede: DUP1 00001edf: PUSH2 0x0b54 00001ee2: JUMPI 00001ee3: POP 00001ee4: PUSH32 0xa0929cda00000000000000000000000000000000000000000000000000000000 00001f05: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001f26: DUP4 00001f27: AND 00001f28: EQ 00001f29: PUSH2 0x0b54 00001f2c: JUMP 00001f2d: JUMPDEST 00001f2e: PUSH2 0x1559 00001f31: DUP2 00001f32: CALLER 00001f33: PUSH2 0x2977 00001f36: JUMP 00001f37: JUMPDEST 00001f38: PUSH1 0x00 00001f3a: DUP1 00001f3b: PUSH2 0x1f44 00001f3e: DUP5 00001f3f: DUP5 00001f40: PUSH2 0x29fd 00001f43: JUMP 00001f44: JUMPDEST 00001f45: SWAP1 00001f46: POP 00001f47: DUP1 00001f48: ISZERO 00001f49: PUSH2 0x15fb 00001f4c: JUMPI 00001f4d: PUSH1 0x00 00001f4f: DUP5 00001f50: DUP2 00001f51: MSTORE 00001f52: PUSH1 0x01 00001f54: PUSH1 0x20 00001f56: MSTORE 00001f57: PUSH1 0x40 00001f59: SWAP1 00001f5a: KECCAK256 00001f5b: PUSH2 0x1f64 00001f5e: SWAP1 00001f5f: DUP5 00001f60: PUSH2 0x2af9 00001f63: JUMP 00001f64: JUMPDEST 00001f65: POP 00001f66: SWAP4 00001f67: SWAP3 00001f68: POP 00001f69: POP 00001f6a: POP 00001f6b: JUMP 00001f6c: JUMPDEST 00001f6d: PUSH1 0x00 00001f6f: DUP1 00001f70: PUSH2 0x1f79 00001f73: DUP5 00001f74: DUP5 00001f75: PUSH2 0x2b1b 00001f78: JUMP 00001f79: JUMPDEST 00001f7a: SWAP1 00001f7b: POP 00001f7c: DUP1 00001f7d: ISZERO 00001f7e: PUSH2 0x15fb 00001f81: JUMPI 00001f82: PUSH1 0x00 00001f84: DUP5 00001f85: DUP2 00001f86: MSTORE 00001f87: PUSH1 0x01 00001f89: PUSH1 0x20 00001f8b: MSTORE 00001f8c: PUSH1 0x40 00001f8e: SWAP1 00001f8f: KECCAK256 00001f90: PUSH2 0x1f64 00001f93: SWAP1 00001f94: DUP5 00001f95: PUSH2 0x2bd6 00001f98: JUMP 00001f99: JUMPDEST 00001f9a: ADDRESS 00001f9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fb0: DUP5 00001fb1: AND 00001fb2: SUB 00001fb3: PUSH2 0x1ff7 00001fb6: JUMPI 00001fb7: PUSH2 0x0d9e 00001fba: DUP3 00001fbb: DUP3 00001fbc: PUSH2 0x1fda 00001fbf: PUSH1 0x0d 00001fc1: SLOAD 00001fc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fd7: AND 00001fd8: SWAP1 00001fd9: JUMP 00001fda: JUMPDEST 00001fdb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ff0: AND 00001ff1: SWAP2 00001ff2: SWAP1 00001ff3: PUSH2 0x2bf8 00001ff6: JUMP 00001ff7: JUMPDEST 00001ff8: PUSH2 0x0d9e 00001ffb: DUP4 00001ffc: DUP4 00001ffd: DUP4 00001ffe: PUSH2 0x201c 00002001: PUSH1 0x0d 00002003: SLOAD 00002004: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002019: AND 0000201a: SWAP1 0000201b: JUMP 0000201c: JUMPDEST 0000201d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002032: AND 00002033: SWAP3 00002034: SWAP2 00002035: SWAP1 00002036: PUSH2 0x2c79 00002039: JUMP 0000203a: JUMPDEST 0000203b: DUP1 0000203c: ISZERO 0000203d: PUSH2 0x208f 00002040: JUMPI 00002041: PUSH1 0x08 00002043: SLOAD 00002044: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002059: AND 0000205a: PUSH2 0x208f 0000205d: JUMPI 0000205e: PUSH1 0x40 00002060: MLOAD 00002061: PUSH32 0xd92e233d00000000000000000000000000000000000000000000000000000000 00002082: DUP2 00002083: MSTORE 00002084: PUSH1 0x04 00002086: ADD 00002087: PUSH1 0x40 00002089: MLOAD 0000208a: DUP1 0000208b: SWAP2 0000208c: SUB 0000208d: SWAP1 0000208e: REVERT 0000208f: JUMPDEST 00002090: PUSH1 0x06 00002092: SLOAD 00002093: PUSH1 0x40 00002095: DUP1 00002096: MLOAD 00002097: PUSH2 0x0100 0000209a: SWAP1 0000209b: SWAP3 0000209c: DIV 0000209d: PUSH1 0xff 0000209f: AND 000020a0: ISZERO 000020a1: ISZERO 000020a2: DUP3 000020a3: MSTORE 000020a4: DUP3 000020a5: ISZERO 000020a6: ISZERO 000020a7: PUSH1 0x20 000020a9: DUP4 000020aa: ADD 000020ab: MSTORE 000020ac: PUSH32 0xf391c490de99c2c515c09ccd9d70362856bd19e0feda0a1f557d069ede9fabee 000020cd: SWAP2 000020ce: ADD 000020cf: PUSH1 0x40 000020d1: MLOAD 000020d2: DUP1 000020d3: SWAP2 000020d4: SUB 000020d5: SWAP1 000020d6: LOG1 000020d7: PUSH1 0x06 000020d9: DUP1 000020da: SLOAD 000020db: SWAP2 000020dc: ISZERO 000020dd: ISZERO 000020de: PUSH2 0x0100 000020e1: MUL 000020e2: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 00002103: SWAP1 00002104: SWAP3 00002105: AND 00002106: SWAP2 00002107: SWAP1 00002108: SWAP2 00002109: OR 0000210a: SWAP1 0000210b: SSTORE 0000210c: JUMP 0000210d: JUMPDEST 0000210e: PUSH1 0x03 00002110: SLOAD 00002111: PUSH1 0xff 00002113: AND 00002114: ISZERO 00002115: PUSH2 0x217a 00002118: JUMPI 00002119: PUSH1 0x40 0000211b: MLOAD 0000211c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000213d: DUP2 0000213e: MSTORE 0000213f: PUSH1 0x20 00002141: PUSH1 0x04 00002143: DUP3 00002144: ADD 00002145: MSTORE 00002146: PUSH1 0x18 00002148: PUSH1 0x24 0000214a: DUP3 0000214b: ADD 0000214c: MSTORE 0000214d: PUSH32 0x496e697469616c697a65643a20496e697469616c697a65640000000000000000 0000216e: PUSH1 0x44 00002170: DUP3 00002171: ADD 00002172: MSTORE 00002173: PUSH1 0x64 00002175: ADD 00002176: PUSH2 0x03c1 00002179: JUMP 0000217a: JUMPDEST 0000217b: JUMP 0000217c: JUMPDEST 0000217d: PUSH1 0x08 0000217f: SLOAD 00002180: PUSH1 0x40 00002182: DUP1 00002183: MLOAD 00002184: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002199: SWAP3 0000219a: DUP4 0000219b: AND 0000219c: DUP2 0000219d: MSTORE 0000219e: SWAP2 0000219f: DUP4 000021a0: AND 000021a1: PUSH1 0x20 000021a3: DUP4 000021a4: ADD 000021a5: MSTORE 000021a6: PUSH32 0x12aeedbe105c518128d60ce786ade81525990783e6a01c9f849a47954c5043b7 000021c7: SWAP2 000021c8: ADD 000021c9: PUSH1 0x40 000021cb: MLOAD 000021cc: DUP1 000021cd: SWAP2 000021ce: SUB 000021cf: SWAP1 000021d0: LOG1 000021d1: PUSH1 0x08 000021d3: DUP1 000021d4: SLOAD 000021d5: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000021f6: AND 000021f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000220c: SWAP3 0000220d: SWAP1 0000220e: SWAP3 0000220f: AND 00002210: SWAP2 00002211: SWAP1 00002212: SWAP2 00002213: OR 00002214: SWAP1 00002215: SSTORE 00002216: JUMP 00002217: JUMPDEST 00002218: PUSH2 0x2710 0000221b: DUP2 0000221c: LT 0000221d: PUSH2 0x2282 00002220: JUMPI 00002221: PUSH1 0x40 00002223: MLOAD 00002224: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002245: DUP2 00002246: MSTORE 00002247: PUSH1 0x20 00002249: PUSH1 0x04 0000224b: DUP3 0000224c: ADD 0000224d: MSTORE 0000224e: PUSH1 0x1f 00002250: PUSH1 0x24 00002252: DUP3 00002253: ADD 00002254: MSTORE 00002255: PUSH32 0x4665652063616e6e6f7420626520626967676572207468616e20313030252100 00002276: PUSH1 0x44 00002278: DUP3 00002279: ADD 0000227a: MSTORE 0000227b: PUSH1 0x64 0000227d: ADD 0000227e: PUSH2 0x03c1 00002281: JUMP 00002282: JUMPDEST 00002283: PUSH1 0x07 00002285: SLOAD 00002286: PUSH1 0x40 00002288: DUP1 00002289: MLOAD 0000228a: SWAP2 0000228b: DUP3 0000228c: MSTORE 0000228d: PUSH1 0x20 0000228f: DUP3 00002290: ADD 00002291: DUP4 00002292: SWAP1 00002293: MSTORE 00002294: PUSH32 0x5fc463da23c1b063e66f9e352006a7fbe8db7223c455dc429e881a2dfe2f94f1 000022b5: SWAP2 000022b6: ADD 000022b7: PUSH1 0x40 000022b9: MLOAD 000022ba: DUP1 000022bb: SWAP2 000022bc: SUB 000022bd: SWAP1 000022be: LOG1 000022bf: PUSH1 0x07 000022c1: SSTORE 000022c2: JUMP 000022c3: JUMPDEST 000022c4: DUP1 000022c5: ISZERO 000022c6: PUSH2 0x2318 000022c9: JUMPI 000022ca: PUSH1 0x08 000022cc: SLOAD 000022cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022e2: AND 000022e3: PUSH2 0x2318 000022e6: JUMPI 000022e7: PUSH1 0x40 000022e9: MLOAD 000022ea: PUSH32 0xd92e233d00000000000000000000000000000000000000000000000000000000 0000230b: DUP2 0000230c: MSTORE 0000230d: PUSH1 0x04 0000230f: ADD 00002310: PUSH1 0x40 00002312: MLOAD 00002313: DUP1 00002314: SWAP2 00002315: SUB 00002316: SWAP1 00002317: REVERT 00002318: JUMPDEST 00002319: PUSH1 0x06 0000231b: SLOAD 0000231c: PUSH1 0x40 0000231e: DUP1 0000231f: MLOAD 00002320: PUSH1 0xff 00002322: SWAP1 00002323: SWAP3 00002324: AND 00002325: ISZERO 00002326: ISZERO 00002327: DUP3 00002328: MSTORE 00002329: DUP3 0000232a: ISZERO 0000232b: ISZERO 0000232c: PUSH1 0x20 0000232e: DUP4 0000232f: ADD 00002330: MSTORE 00002331: PUSH32 0x25466a505dbb0b2e87070fe4cc9c80f1cd1a7ef8b74b24be03e4b39195bcb0ab 00002352: SWAP2 00002353: ADD 00002354: PUSH1 0x40 00002356: MLOAD 00002357: DUP1 00002358: SWAP2 00002359: SUB 0000235a: SWAP1 0000235b: LOG1 0000235c: PUSH1 0x06 0000235e: DUP1 0000235f: SLOAD 00002360: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00002381: AND 00002382: SWAP2 00002383: ISZERO 00002384: ISZERO 00002385: SWAP2 00002386: SWAP1 00002387: SWAP2 00002388: OR 00002389: SWAP1 0000238a: SSTORE 0000238b: JUMP 0000238c: JUMPDEST 0000238d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023a2: DUP2 000023a3: AND 000023a4: PUSH2 0x242f 000023a7: JUMPI 000023a8: PUSH1 0x40 000023aa: MLOAD 000023ab: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000023cc: DUP2 000023cd: MSTORE 000023ce: PUSH1 0x20 000023d0: PUSH1 0x04 000023d2: DUP3 000023d3: ADD 000023d4: MSTORE 000023d5: PUSH1 0x22 000023d7: PUSH1 0x24 000023d9: DUP3 000023da: ADD 000023db: MSTORE 000023dc: PUSH32 0x546f6b656e20616464726573732063616e6e6f74206265203020616464726573 000023fd: PUSH1 0x44 000023ff: DUP3 00002400: ADD 00002401: MSTORE 00002402: PUSH32 0x7321000000000000000000000000000000000000000000000000000000000000 00002423: PUSH1 0x64 00002425: DUP3 00002426: ADD 00002427: MSTORE 00002428: PUSH1 0x84 0000242a: ADD 0000242b: PUSH2 0x03c1 0000242e: JUMP 0000242f: JUMPDEST 00002430: PUSH1 0x0d 00002432: DUP1 00002433: SLOAD 00002434: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002455: AND 00002456: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000246b: SWAP3 0000246c: SWAP1 0000246d: SWAP3 0000246e: AND 0000246f: SWAP2 00002470: SWAP1 00002471: SWAP2 00002472: OR 00002473: SWAP1 00002474: SSTORE 00002475: JUMP 00002476: JUMPDEST 00002477: PUSH1 0x10 00002479: SLOAD 0000247a: PUSH1 0x40 0000247c: DUP1 0000247d: MLOAD 0000247e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002493: SWAP3 00002494: DUP4 00002495: AND 00002496: DUP2 00002497: MSTORE 00002498: SWAP2 00002499: DUP4 0000249a: AND 0000249b: PUSH1 0x20 0000249d: DUP4 0000249e: ADD 0000249f: MSTORE 000024a0: PUSH32 0x9742dcbf5b448e2d46c3d9a3f1a01a93b9f413c5079bf9212caad5d3bdebb9bd 000024c1: SWAP2 000024c2: ADD 000024c3: PUSH1 0x40 000024c5: MLOAD 000024c6: DUP1 000024c7: SWAP2 000024c8: SUB 000024c9: SWAP1 000024ca: LOG1 000024cb: PUSH1 0x10 000024cd: DUP1 000024ce: SLOAD 000024cf: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000024f0: AND 000024f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002506: SWAP3 00002507: SWAP1 00002508: SWAP3 00002509: AND 0000250a: SWAP2 0000250b: SWAP1 0000250c: SWAP2 0000250d: OR 0000250e: SWAP1 0000250f: SSTORE 00002510: JUMP 00002511: JUMPDEST 00002512: PUSH1 0x05 00002514: DUP1 00002515: SLOAD 00002516: SWAP1 00002517: PUSH1 0x00 00002519: PUSH2 0x2521 0000251c: DUP4 0000251d: PUSH2 0x36c5 00002520: JUMP 00002521: JUMPDEST 00002522: SWAP2 00002523: SWAP1 00002524: POP 00002525: SSTORE 00002526: POP 00002527: JUMP 00002528: JUMPDEST 00002529: PUSH2 0x2530 0000252c: PUSH2 0x210d 0000252f: JUMP 00002530: JUMPDEST 00002531: PUSH1 0x03 00002533: DUP1 00002534: SLOAD 00002535: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00002556: AND 00002557: PUSH1 0x01 00002559: OR 0000255a: SWAP1 0000255b: SSTORE 0000255c: PUSH32 0xb8bb5a08c752924168166e254455ca6708ef2ac4cfd39bba39eb5a5b89f0cbd6 0000257d: PUSH2 0x2583 00002580: CALLER 00002581: SWAP1 00002582: JUMP 00002583: JUMPDEST 00002584: PUSH1 0x40 00002586: MLOAD 00002587: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000259c: SWAP1 0000259d: SWAP2 0000259e: AND 0000259f: DUP2 000025a0: MSTORE 000025a1: PUSH1 0x20 000025a3: ADD 000025a4: PUSH1 0x40 000025a6: MLOAD 000025a7: DUP1 000025a8: SWAP2 000025a9: SUB 000025aa: SWAP1 000025ab: LOG1 000025ac: JUMP 000025ad: JUMPDEST 000025ae: PUSH1 0x00 000025b0: DUP1 000025b1: PUSH2 0x25b9 000025b4: PUSH1 0x07 000025b6: SLOAD 000025b7: SWAP1 000025b8: JUMP 000025b9: JUMPDEST 000025ba: SWAP1 000025bb: POP 000025bc: PUSH1 0x00 000025be: DUP2 000025bf: GT 000025c0: PUSH2 0x2625 000025c3: JUMPI 000025c4: PUSH1 0x40 000025c6: MLOAD 000025c7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000025e8: DUP2 000025e9: MSTORE 000025ea: PUSH1 0x20 000025ec: PUSH1 0x04 000025ee: DUP3 000025ef: ADD 000025f0: MSTORE 000025f1: PUSH1 0x0e 000025f3: PUSH1 0x24 000025f5: DUP3 000025f6: ADD 000025f7: MSTORE 000025f8: PUSH32 0x466565206973206e6f7420736574000000000000000000000000000000000000 00002619: PUSH1 0x44 0000261b: DUP3 0000261c: ADD 0000261d: MSTORE 0000261e: PUSH1 0x64 00002620: ADD 00002621: PUSH2 0x03c1 00002624: JUMP 00002625: JUMPDEST 00002626: PUSH2 0x262f 00002629: DUP2 0000262a: DUP5 0000262b: PUSH2 0x36fd 0000262e: JUMP 0000262f: JUMPDEST 00002630: SWAP2 00002631: POP 00002632: PUSH2 0x15fb 00002635: PUSH2 0x2710 00002638: DUP4 00002639: PUSH2 0x3714 0000263c: JUMP 0000263d: JUMPDEST 0000263e: PUSH2 0x2645 00002641: PUSH2 0x2cbf 00002644: JUMP 00002645: JUMPDEST 00002646: PUSH1 0x03 00002648: DUP1 00002649: SLOAD 0000264a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 0000266b: AND 0000266c: SWAP1 0000266d: SSTORE 0000266e: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 0000268f: CALLER 00002690: PUSH2 0x2583 00002693: JUMP 00002694: JUMPDEST 00002695: PUSH1 0x00 00002697: PUSH2 0x15fb 0000269a: DUP4 0000269b: DUP4 0000269c: PUSH2 0x2d00 0000269f: JUMP 000026a0: JUMPDEST 000026a1: PUSH2 0x26c1 000026a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026b9: DUP5 000026ba: AND 000026bb: DUP4 000026bc: DUP4 000026bd: PUSH2 0x2bf8 000026c0: JUMP 000026c1: JUMPDEST 000026c2: DUP2 000026c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026d8: AND 000026d9: DUP4 000026da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026ef: AND 000026f0: PUSH32 0xc00a88ee4656f9bf9caef53a29be902b0017cf1e454eaed6526c08b8c2e106cf 00002711: DUP4 00002712: PUSH1 0x40 00002714: MLOAD 00002715: PUSH2 0x2720 00002718: SWAP2 00002719: DUP2 0000271a: MSTORE 0000271b: PUSH1 0x20 0000271d: ADD 0000271e: SWAP1 0000271f: JUMP 00002720: JUMPDEST 00002721: PUSH1 0x40 00002723: MLOAD 00002724: DUP1 00002725: SWAP2 00002726: SUB 00002727: SWAP1 00002728: LOG3 00002729: POP 0000272a: POP 0000272b: POP 0000272c: JUMP 0000272d: JUMPDEST 0000272e: PUSH1 0x00 00002730: PUSH2 0x0b54 00002733: DUP3 00002734: SLOAD 00002735: SWAP1 00002736: JUMP 00002737: JUMPDEST 00002738: PUSH1 0x03 0000273a: SLOAD 0000273b: PUSH2 0x0100 0000273e: SWAP1 0000273f: DIV 00002740: PUSH1 0xff 00002742: AND 00002743: ISZERO 00002744: PUSH2 0x217a 00002747: JUMPI 00002748: PUSH1 0x40 0000274a: MLOAD 0000274b: PUSH32 0xd93c066500000000000000000000000000000000000000000000000000000000 0000276c: DUP2 0000276d: MSTORE 0000276e: PUSH1 0x04 00002770: ADD 00002771: PUSH1 0x40 00002773: MLOAD 00002774: DUP1 00002775: SWAP2 00002776: SUB 00002777: SWAP1 00002778: REVERT 00002779: JUMPDEST 0000277a: PUSH1 0x03 0000277c: SLOAD 0000277d: PUSH1 0xff 0000277f: AND 00002780: PUSH2 0x217a 00002783: JUMPI 00002784: PUSH1 0x40 00002786: MLOAD 00002787: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000027a8: DUP2 000027a9: MSTORE 000027aa: PUSH1 0x20 000027ac: PUSH1 0x04 000027ae: DUP3 000027af: ADD 000027b0: MSTORE 000027b1: PUSH1 0x1c 000027b3: PUSH1 0x24 000027b5: DUP3 000027b6: ADD 000027b7: MSTORE 000027b8: PUSH32 0x496e697469616c697a65643a206e6f7420696e697469616c697a656400000000 000027d9: PUSH1 0x44 000027db: DUP3 000027dc: ADD 000027dd: MSTORE 000027de: PUSH1 0x64 000027e0: ADD 000027e1: PUSH2 0x03c1 000027e4: JUMP 000027e5: JUMPDEST 000027e6: PUSH1 0x02 000027e8: DUP1 000027e9: SLOAD 000027ea: SUB 000027eb: PUSH2 0x2820 000027ee: JUMPI 000027ef: PUSH1 0x40 000027f1: MLOAD 000027f2: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000 00002813: DUP2 00002814: MSTORE 00002815: PUSH1 0x04 00002817: ADD 00002818: PUSH1 0x40 0000281a: MLOAD 0000281b: DUP1 0000281c: SWAP2 0000281d: SUB 0000281e: SWAP1 0000281f: REVERT 00002820: JUMPDEST 00002821: PUSH1 0x02 00002823: DUP1 00002824: SSTORE 00002825: JUMP 00002826: JUMPDEST 00002827: PUSH2 0x282e 0000282a: PUSH2 0x2737 0000282d: JUMP 0000282e: JUMPDEST 0000282f: PUSH1 0x03 00002831: DUP1 00002832: SLOAD 00002833: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 00002854: AND 00002855: PUSH2 0x0100 00002858: OR 00002859: SWAP1 0000285a: SSTORE 0000285b: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 0000287c: PUSH2 0x2583 0000287f: CALLER 00002880: SWAP1 00002881: JUMP 00002882: JUMPDEST 00002883: PUSH2 0x288c 00002886: DUP3 00002887: DUP3 00002888: PUSH2 0x2d2a 0000288b: JUMP 0000288c: JUMPDEST 0000288d: ISZERO 0000288e: PUSH2 0x2919 00002891: JUMPI 00002892: PUSH1 0x40 00002894: MLOAD 00002895: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000028b6: DUP2 000028b7: MSTORE 000028b8: PUSH1 0x20 000028ba: PUSH1 0x04 000028bc: DUP3 000028bd: ADD 000028be: MSTORE 000028bf: PUSH1 0x2c 000028c1: PUSH1 0x24 000028c3: DUP3 000028c4: ADD 000028c5: MSTORE 000028c6: PUSH32 0x4d6967726174696f6e496420666f72207468697320636861696e496420616c72 000028e7: PUSH1 0x44 000028e9: DUP3 000028ea: ADD 000028eb: MSTORE 000028ec: PUSH32 0x6561647920657869737473210000000000000000000000000000000000000000 0000290d: PUSH1 0x64 0000290f: DUP3 00002910: ADD 00002911: MSTORE 00002912: PUSH1 0x84 00002914: ADD 00002915: PUSH2 0x03c1 00002918: JUMP 00002919: JUMPDEST 0000291a: PUSH1 0x01 0000291c: PUSH1 0x0c 0000291e: DUP4 0000291f: PUSH1 0x40 00002921: MLOAD 00002922: PUSH2 0x292b 00002925: SWAP2 00002926: SWAP1 00002927: PUSH2 0x3589 0000292a: JUMP 0000292b: JUMPDEST 0000292c: SWAP1 0000292d: DUP2 0000292e: MSTORE 0000292f: PUSH1 0x40 00002931: DUP1 00002932: MLOAD 00002933: PUSH1 0x20 00002935: SWAP3 00002936: DUP2 00002937: SWAP1 00002938: SUB 00002939: DUP4 0000293a: ADD 0000293b: SWAP1 0000293c: KECCAK256 0000293d: PUSH1 0x00 0000293f: SWAP5 00002940: DUP6 00002941: MSTORE 00002942: SWAP1 00002943: SWAP2 00002944: MSTORE 00002945: SWAP1 00002946: SWAP2 00002947: KECCAK256 00002948: DUP1 00002949: SLOAD 0000294a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000296b: AND 0000296c: SWAP2 0000296d: ISZERO 0000296e: ISZERO 0000296f: SWAP2 00002970: SWAP1 00002971: SWAP2 00002972: OR 00002973: SWAP1 00002974: SSTORE 00002975: POP 00002976: JUMP 00002977: JUMPDEST 00002978: PUSH1 0x00 0000297a: DUP3 0000297b: DUP2 0000297c: MSTORE 0000297d: PUSH1 0x20 0000297f: DUP2 00002980: DUP2 00002981: MSTORE 00002982: PUSH1 0x40 00002984: DUP1 00002985: DUP4 00002986: KECCAK256 00002987: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000299c: DUP6 0000299d: AND 0000299e: DUP5 0000299f: MSTORE 000029a0: SWAP1 000029a1: SWAP2 000029a2: MSTORE 000029a3: SWAP1 000029a4: KECCAK256 000029a5: SLOAD 000029a6: PUSH1 0xff 000029a8: AND 000029a9: PUSH2 0x10b6 000029ac: JUMPI 000029ad: PUSH1 0x40 000029af: MLOAD 000029b0: PUSH32 0xe2517d3f00000000000000000000000000000000000000000000000000000000 000029d1: DUP2 000029d2: MSTORE 000029d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029e8: DUP3 000029e9: AND 000029ea: PUSH1 0x04 000029ec: DUP3 000029ed: ADD 000029ee: MSTORE 000029ef: PUSH1 0x24 000029f1: DUP2 000029f2: ADD 000029f3: DUP4 000029f4: SWAP1 000029f5: MSTORE 000029f6: PUSH1 0x44 000029f8: ADD 000029f9: PUSH2 0x03c1 000029fc: JUMP 000029fd: JUMPDEST 000029fe: PUSH1 0x00 00002a00: DUP3 00002a01: DUP2 00002a02: MSTORE 00002a03: PUSH1 0x20 00002a05: DUP2 00002a06: DUP2 00002a07: MSTORE 00002a08: PUSH1 0x40 00002a0a: DUP1 00002a0b: DUP4 00002a0c: KECCAK256 00002a0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a22: DUP6 00002a23: AND 00002a24: DUP5 00002a25: MSTORE 00002a26: SWAP1 00002a27: SWAP2 00002a28: MSTORE 00002a29: DUP2 00002a2a: KECCAK256 00002a2b: SLOAD 00002a2c: PUSH1 0xff 00002a2e: AND 00002a2f: PUSH2 0x2af1 00002a32: JUMPI 00002a33: PUSH1 0x00 00002a35: DUP4 00002a36: DUP2 00002a37: MSTORE 00002a38: PUSH1 0x20 00002a3a: DUP2 00002a3b: DUP2 00002a3c: MSTORE 00002a3d: PUSH1 0x40 00002a3f: DUP1 00002a40: DUP4 00002a41: KECCAK256 00002a42: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a57: DUP7 00002a58: AND 00002a59: DUP5 00002a5a: MSTORE 00002a5b: SWAP1 00002a5c: SWAP2 00002a5d: MSTORE 00002a5e: SWAP1 00002a5f: KECCAK256 00002a60: DUP1 00002a61: SLOAD 00002a62: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00002a83: AND 00002a84: PUSH1 0x01 00002a86: OR 00002a87: SWAP1 00002a88: SSTORE 00002a89: PUSH2 0x2a8f 00002a8c: CALLER 00002a8d: SWAP1 00002a8e: JUMP 00002a8f: JUMPDEST 00002a90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002aa5: AND 00002aa6: DUP3 00002aa7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002abc: AND 00002abd: DUP5 00002abe: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 00002adf: PUSH1 0x40 00002ae1: MLOAD 00002ae2: PUSH1 0x40 00002ae4: MLOAD 00002ae5: DUP1 00002ae6: SWAP2 00002ae7: SUB 00002ae8: SWAP1 00002ae9: LOG4 00002aea: POP 00002aeb: PUSH1 0x01 00002aed: PUSH2 0x0b54 00002af0: JUMP 00002af1: JUMPDEST 00002af2: POP 00002af3: PUSH1 0x00 00002af5: PUSH2 0x0b54 00002af8: JUMP 00002af9: JUMPDEST 00002afa: PUSH1 0x00 00002afc: PUSH2 0x15fb 00002aff: DUP4 00002b00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b15: DUP5 00002b16: AND 00002b17: PUSH2 0x2d69 00002b1a: JUMP 00002b1b: JUMPDEST 00002b1c: PUSH1 0x00 00002b1e: DUP3 00002b1f: DUP2 00002b20: MSTORE 00002b21: PUSH1 0x20 00002b23: DUP2 00002b24: DUP2 00002b25: MSTORE 00002b26: PUSH1 0x40 00002b28: DUP1 00002b29: DUP4 00002b2a: KECCAK256 00002b2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b40: DUP6 00002b41: AND 00002b42: DUP5 00002b43: MSTORE 00002b44: SWAP1 00002b45: SWAP2 00002b46: MSTORE 00002b47: DUP2 00002b48: KECCAK256 00002b49: SLOAD 00002b4a: PUSH1 0xff 00002b4c: AND 00002b4d: ISZERO 00002b4e: PUSH2 0x2af1 00002b51: JUMPI 00002b52: PUSH1 0x00 00002b54: DUP4 00002b55: DUP2 00002b56: MSTORE 00002b57: PUSH1 0x20 00002b59: DUP2 00002b5a: DUP2 00002b5b: MSTORE 00002b5c: PUSH1 0x40 00002b5e: DUP1 00002b5f: DUP4 00002b60: KECCAK256 00002b61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b76: DUP7 00002b77: AND 00002b78: DUP1 00002b79: DUP6 00002b7a: MSTORE 00002b7b: SWAP3 00002b7c: MSTORE 00002b7d: DUP1 00002b7e: DUP4 00002b7f: KECCAK256 00002b80: DUP1 00002b81: SLOAD 00002b82: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00002ba3: AND 00002ba4: SWAP1 00002ba5: SSTORE 00002ba6: MLOAD 00002ba7: CALLER 00002ba8: SWAP3 00002ba9: DUP7 00002baa: SWAP2 00002bab: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 00002bcc: SWAP2 00002bcd: SWAP1 00002bce: LOG4 00002bcf: POP 00002bd0: PUSH1 0x01 00002bd2: PUSH2 0x0b54 00002bd5: JUMP 00002bd6: JUMPDEST 00002bd7: PUSH1 0x00 00002bd9: PUSH2 0x15fb 00002bdc: DUP4 00002bdd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bf2: DUP5 00002bf3: AND 00002bf4: PUSH2 0x2db0 00002bf7: JUMP 00002bf8: JUMPDEST 00002bf9: PUSH1 0x40 00002bfb: MLOAD 00002bfc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c11: DUP4 00002c12: DUP2 00002c13: AND 00002c14: PUSH1 0x24 00002c16: DUP4 00002c17: ADD 00002c18: MSTORE 00002c19: PUSH1 0x44 00002c1b: DUP3 00002c1c: ADD 00002c1d: DUP4 00002c1e: SWAP1 00002c1f: MSTORE 00002c20: PUSH2 0x0d9e 00002c23: SWAP2 00002c24: DUP6 00002c25: SWAP2 00002c26: DUP3 00002c27: AND 00002c28: SWAP1 00002c29: PUSH4 0xa9059cbb 00002c2e: SWAP1 00002c2f: PUSH1 0x64 00002c31: ADD 00002c32: JUMPDEST 00002c33: PUSH1 0x40 00002c35: MLOAD 00002c36: PUSH1 0x20 00002c38: DUP2 00002c39: DUP4 00002c3a: SUB 00002c3b: SUB 00002c3c: DUP2 00002c3d: MSTORE 00002c3e: SWAP1 00002c3f: PUSH1 0x40 00002c41: MSTORE 00002c42: SWAP2 00002c43: POP 00002c44: PUSH1 0xe0 00002c46: SHL 00002c47: PUSH1 0x20 00002c49: DUP3 00002c4a: ADD 00002c4b: DUP1 00002c4c: MLOAD 00002c4d: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002c6a: DUP4 00002c6b: DUP2 00002c6c: DUP4 00002c6d: AND 00002c6e: OR 00002c6f: DUP4 00002c70: MSTORE 00002c71: POP 00002c72: POP 00002c73: POP 00002c74: POP 00002c75: PUSH2 0x2ea3 00002c78: JUMP 00002c79: JUMPDEST 00002c7a: PUSH1 0x40 00002c7c: MLOAD 00002c7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c92: DUP5 00002c93: DUP2 00002c94: AND 00002c95: PUSH1 0x24 00002c97: DUP4 00002c98: ADD 00002c99: MSTORE 00002c9a: DUP4 00002c9b: DUP2 00002c9c: AND 00002c9d: PUSH1 0x44 00002c9f: DUP4 00002ca0: ADD 00002ca1: MSTORE 00002ca2: PUSH1 0x64 00002ca4: DUP3 00002ca5: ADD 00002ca6: DUP4 00002ca7: SWAP1 00002ca8: MSTORE 00002ca9: PUSH2 0x0d3f 00002cac: SWAP2 00002cad: DUP7 00002cae: SWAP2 00002caf: DUP3 00002cb0: AND 00002cb1: SWAP1 00002cb2: PUSH4 0x23b872dd 00002cb7: SWAP1 00002cb8: PUSH1 0x84 00002cba: ADD 00002cbb: PUSH2 0x2c32 00002cbe: JUMP 00002cbf: JUMPDEST 00002cc0: PUSH1 0x03 00002cc2: SLOAD 00002cc3: PUSH2 0x0100 00002cc6: SWAP1 00002cc7: DIV 00002cc8: PUSH1 0xff 00002cca: AND 00002ccb: PUSH2 0x217a 00002cce: JUMPI 00002ccf: PUSH1 0x40 00002cd1: MLOAD 00002cd2: PUSH32 0x8dfc202b00000000000000000000000000000000000000000000000000000000 00002cf3: DUP2 00002cf4: MSTORE 00002cf5: PUSH1 0x04 00002cf7: ADD 00002cf8: PUSH1 0x40 00002cfa: MLOAD 00002cfb: DUP1 00002cfc: SWAP2 00002cfd: SUB 00002cfe: SWAP1 00002cff: REVERT 00002d00: JUMPDEST 00002d01: PUSH1 0x00 00002d03: DUP3 00002d04: PUSH1 0x00 00002d06: ADD 00002d07: DUP3 00002d08: DUP2 00002d09: SLOAD 00002d0a: DUP2 00002d0b: LT 00002d0c: PUSH2 0x2d17 00002d0f: JUMPI 00002d10: PUSH2 0x2d17 00002d13: PUSH2 0x374f 00002d16: JUMP 00002d17: JUMPDEST 00002d18: SWAP1 00002d19: PUSH1 0x00 00002d1b: MSTORE 00002d1c: PUSH1 0x20 00002d1e: PUSH1 0x00 00002d20: KECCAK256 00002d21: ADD 00002d22: SLOAD 00002d23: SWAP1 00002d24: POP 00002d25: SWAP3 00002d26: SWAP2 00002d27: POP 00002d28: POP 00002d29: JUMP 00002d2a: JUMPDEST 00002d2b: PUSH1 0x00 00002d2d: PUSH1 0x0c 00002d2f: DUP4 00002d30: PUSH1 0x40 00002d32: MLOAD 00002d33: PUSH2 0x2d3c 00002d36: SWAP2 00002d37: SWAP1 00002d38: PUSH2 0x3589 00002d3b: JUMP 00002d3c: JUMPDEST 00002d3d: SWAP1 00002d3e: DUP2 00002d3f: MSTORE 00002d40: PUSH1 0x40 00002d42: DUP1 00002d43: MLOAD 00002d44: SWAP2 00002d45: DUP3 00002d46: SWAP1 00002d47: SUB 00002d48: PUSH1 0x20 00002d4a: SWAP1 00002d4b: DUP2 00002d4c: ADD 00002d4d: SWAP1 00002d4e: SWAP3 00002d4f: KECCAK256 00002d50: PUSH1 0x00 00002d52: DUP6 00002d53: DUP2 00002d54: MSTORE 00002d55: SWAP3 00002d56: MSTORE 00002d57: SWAP1 00002d58: KECCAK256 00002d59: SLOAD 00002d5a: PUSH1 0xff 00002d5c: AND 00002d5d: ISZERO 00002d5e: ISZERO 00002d5f: PUSH1 0x01 00002d61: EQ 00002d62: SWAP1 00002d63: POP 00002d64: SWAP3 00002d65: SWAP2 00002d66: POP 00002d67: POP 00002d68: JUMP 00002d69: JUMPDEST 00002d6a: PUSH1 0x00 00002d6c: DUP2 00002d6d: DUP2 00002d6e: MSTORE 00002d6f: PUSH1 0x01 00002d71: DUP4 00002d72: ADD 00002d73: PUSH1 0x20 00002d75: MSTORE 00002d76: PUSH1 0x40 00002d78: DUP2 00002d79: KECCAK256 00002d7a: SLOAD 00002d7b: PUSH2 0x2af1 00002d7e: JUMPI 00002d7f: POP 00002d80: DUP2 00002d81: SLOAD 00002d82: PUSH1 0x01 00002d84: DUP2 00002d85: DUP2 00002d86: ADD 00002d87: DUP5 00002d88: SSTORE 00002d89: PUSH1 0x00 00002d8b: DUP5 00002d8c: DUP2 00002d8d: MSTORE 00002d8e: PUSH1 0x20 00002d90: DUP1 00002d91: DUP3 00002d92: KECCAK256 00002d93: SWAP1 00002d94: SWAP4 00002d95: ADD 00002d96: DUP5 00002d97: SWAP1 00002d98: SSTORE 00002d99: DUP5 00002d9a: SLOAD 00002d9b: DUP5 00002d9c: DUP3 00002d9d: MSTORE 00002d9e: DUP3 00002d9f: DUP7 00002da0: ADD 00002da1: SWAP1 00002da2: SWAP4 00002da3: MSTORE 00002da4: PUSH1 0x40 00002da6: SWAP1 00002da7: KECCAK256 00002da8: SWAP2 00002da9: SWAP1 00002daa: SWAP2 00002dab: SSTORE 00002dac: PUSH2 0x0b54 00002daf: JUMP 00002db0: JUMPDEST 00002db1: PUSH1 0x00 00002db3: DUP2 00002db4: DUP2 00002db5: MSTORE 00002db6: PUSH1 0x01 00002db8: DUP4 00002db9: ADD 00002dba: PUSH1 0x20 00002dbc: MSTORE 00002dbd: PUSH1 0x40 00002dbf: DUP2 00002dc0: KECCAK256 00002dc1: SLOAD 00002dc2: DUP1 00002dc3: ISZERO 00002dc4: PUSH2 0x2e99 00002dc7: JUMPI 00002dc8: PUSH1 0x00 00002dca: PUSH2 0x2dd4 00002dcd: PUSH1 0x01 00002dcf: DUP4 00002dd0: PUSH2 0x3686 00002dd3: JUMP 00002dd4: JUMPDEST 00002dd5: DUP6 00002dd6: SLOAD 00002dd7: SWAP1 00002dd8: SWAP2 00002dd9: POP 00002dda: PUSH1 0x00 00002ddc: SWAP1 00002ddd: PUSH2 0x2de8 00002de0: SWAP1 00002de1: PUSH1 0x01 00002de3: SWAP1 00002de4: PUSH2 0x3686 00002de7: JUMP 00002de8: JUMPDEST 00002de9: SWAP1 00002dea: POP 00002deb: DUP1 00002dec: DUP3 00002ded: EQ 00002dee: PUSH2 0x2e4d 00002df1: JUMPI 00002df2: PUSH1 0x00 00002df4: DUP7 00002df5: PUSH1 0x00 00002df7: ADD 00002df8: DUP3 00002df9: DUP2 00002dfa: SLOAD 00002dfb: DUP2 00002dfc: LT 00002dfd: PUSH2 0x2e08 00002e00: JUMPI 00002e01: PUSH2 0x2e08 00002e04: PUSH2 0x374f 00002e07: JUMP 00002e08: JUMPDEST 00002e09: SWAP1 00002e0a: PUSH1 0x00 00002e0c: MSTORE 00002e0d: PUSH1 0x20 00002e0f: PUSH1 0x00 00002e11: KECCAK256 00002e12: ADD 00002e13: SLOAD 00002e14: SWAP1 00002e15: POP 00002e16: DUP1 00002e17: DUP8 00002e18: PUSH1 0x00 00002e1a: ADD 00002e1b: DUP5 00002e1c: DUP2 00002e1d: SLOAD 00002e1e: DUP2 00002e1f: LT 00002e20: PUSH2 0x2e2b 00002e23: JUMPI 00002e24: PUSH2 0x2e2b 00002e27: PUSH2 0x374f 00002e2a: JUMP 00002e2b: JUMPDEST 00002e2c: PUSH1 0x00 00002e2e: SWAP2 00002e2f: DUP3 00002e30: MSTORE 00002e31: PUSH1 0x20 00002e33: DUP1 00002e34: DUP4 00002e35: KECCAK256 00002e36: SWAP1 00002e37: SWAP2 00002e38: ADD 00002e39: SWAP3 00002e3a: SWAP1 00002e3b: SWAP3 00002e3c: SSTORE 00002e3d: SWAP2 00002e3e: DUP3 00002e3f: MSTORE 00002e40: PUSH1 0x01 00002e42: DUP9 00002e43: ADD 00002e44: SWAP1 00002e45: MSTORE 00002e46: PUSH1 0x40 00002e48: SWAP1 00002e49: KECCAK256 00002e4a: DUP4 00002e4b: SWAP1 00002e4c: SSTORE 00002e4d: JUMPDEST 00002e4e: DUP6 00002e4f: SLOAD 00002e50: DUP7 00002e51: SWAP1 00002e52: DUP1 00002e53: PUSH2 0x2e5e 00002e56: JUMPI 00002e57: PUSH2 0x2e5e 00002e5a: PUSH2 0x377e 00002e5d: JUMP 00002e5e: JUMPDEST 00002e5f: PUSH1 0x01 00002e61: SWAP1 00002e62: SUB 00002e63: DUP2 00002e64: DUP2 00002e65: SWAP1 00002e66: PUSH1 0x00 00002e68: MSTORE 00002e69: PUSH1 0x20 00002e6b: PUSH1 0x00 00002e6d: KECCAK256 00002e6e: ADD 00002e6f: PUSH1 0x00 00002e71: SWAP1 00002e72: SSTORE 00002e73: SWAP1 00002e74: SSTORE 00002e75: DUP6 00002e76: PUSH1 0x01 00002e78: ADD 00002e79: PUSH1 0x00 00002e7b: DUP7 00002e7c: DUP2 00002e7d: MSTORE 00002e7e: PUSH1 0x20 00002e80: ADD 00002e81: SWAP1 00002e82: DUP2 00002e83: MSTORE 00002e84: PUSH1 0x20 00002e86: ADD 00002e87: PUSH1 0x00 00002e89: KECCAK256 00002e8a: PUSH1 0x00 00002e8c: SWAP1 00002e8d: SSTORE 00002e8e: PUSH1 0x01 00002e90: SWAP4 00002e91: POP 00002e92: POP 00002e93: POP 00002e94: POP 00002e95: PUSH2 0x0b54 00002e98: JUMP 00002e99: JUMPDEST 00002e9a: PUSH1 0x00 00002e9c: SWAP2 00002e9d: POP 00002e9e: POP 00002e9f: PUSH2 0x0b54 00002ea2: JUMP 00002ea3: JUMPDEST 00002ea4: PUSH1 0x00 00002ea6: PUSH2 0x2ec5 00002ea9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ebe: DUP5 00002ebf: AND 00002ec0: DUP4 00002ec1: PUSH2 0x2f39 00002ec4: JUMP 00002ec5: JUMPDEST 00002ec6: SWAP1 00002ec7: POP 00002ec8: DUP1 00002ec9: MLOAD 00002eca: PUSH1 0x00 00002ecc: EQ 00002ecd: ISZERO 00002ece: DUP1 00002ecf: ISZERO 00002ed0: PUSH2 0x2eea 00002ed3: JUMPI 00002ed4: POP 00002ed5: DUP1 00002ed6: DUP1 00002ed7: PUSH1 0x20 00002ed9: ADD 00002eda: SWAP1 00002edb: MLOAD 00002edc: DUP2 00002edd: ADD 00002ede: SWAP1 00002edf: PUSH2 0x2ee8 00002ee2: SWAP2 00002ee3: SWAP1 00002ee4: PUSH2 0x37ad 00002ee7: JUMP 00002ee8: JUMPDEST 00002ee9: ISZERO 00002eea: JUMPDEST 00002eeb: ISZERO 00002eec: PUSH2 0x0d9e 00002eef: JUMPI 00002ef0: PUSH1 0x40 00002ef2: MLOAD 00002ef3: PUSH32 0x5274afe700000000000000000000000000000000000000000000000000000000 00002f14: DUP2 00002f15: MSTORE 00002f16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f2b: DUP5 00002f2c: AND 00002f2d: PUSH1 0x04 00002f2f: DUP3 00002f30: ADD 00002f31: MSTORE 00002f32: PUSH1 0x24 00002f34: ADD 00002f35: PUSH2 0x03c1 00002f38: JUMP 00002f39: JUMPDEST 00002f3a: PUSH1 0x60 00002f3c: PUSH2 0x15fb 00002f3f: DUP4 00002f40: DUP4 00002f41: PUSH1 0x00 00002f43: DUP5 00002f44: PUSH1 0x00 00002f46: DUP1 00002f47: DUP6 00002f48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f5d: AND 00002f5e: DUP5 00002f5f: DUP7 00002f60: PUSH1 0x40 00002f62: MLOAD 00002f63: PUSH2 0x2f6c 00002f66: SWAP2 00002f67: SWAP1 00002f68: PUSH2 0x3589 00002f6b: JUMP 00002f6c: JUMPDEST 00002f6d: PUSH1 0x00 00002f6f: PUSH1 0x40 00002f71: MLOAD 00002f72: DUP1 00002f73: DUP4 00002f74: SUB 00002f75: DUP2 00002f76: DUP6 00002f77: DUP8 00002f78: GAS 00002f79: CALL 00002f7a: SWAP3 00002f7b: POP 00002f7c: POP 00002f7d: POP 00002f7e: RETURNDATASIZE 00002f7f: DUP1 00002f80: PUSH1 0x00 00002f82: DUP2 00002f83: EQ 00002f84: PUSH2 0x2fa9 00002f87: JUMPI 00002f88: PUSH1 0x40 00002f8a: MLOAD 00002f8b: SWAP2 00002f8c: POP 00002f8d: PUSH1 0x1f 00002f8f: NOT 00002f90: PUSH1 0x3f 00002f92: RETURNDATASIZE 00002f93: ADD 00002f94: AND 00002f95: DUP3 00002f96: ADD 00002f97: PUSH1 0x40 00002f99: MSTORE 00002f9a: RETURNDATASIZE 00002f9b: DUP3 00002f9c: MSTORE 00002f9d: RETURNDATASIZE 00002f9e: PUSH1 0x00 00002fa0: PUSH1 0x20 00002fa2: DUP5 00002fa3: ADD 00002fa4: RETURNDATACOPY 00002fa5: PUSH2 0x2fae 00002fa8: JUMP 00002fa9: JUMPDEST 00002faa: PUSH1 0x60 00002fac: SWAP2 00002fad: POP 00002fae: JUMPDEST 00002faf: POP 00002fb0: SWAP2 00002fb1: POP 00002fb2: SWAP2 00002fb3: POP 00002fb4: PUSH2 0x2fbe 00002fb7: DUP7 00002fb8: DUP4 00002fb9: DUP4 00002fba: PUSH2 0x2fc8 00002fbd: JUMP 00002fbe: JUMPDEST 00002fbf: SWAP7 00002fc0: SWAP6 00002fc1: POP 00002fc2: POP 00002fc3: POP 00002fc4: POP 00002fc5: POP 00002fc6: POP 00002fc7: JUMP 00002fc8: JUMPDEST 00002fc9: PUSH1 0x60 00002fcb: DUP3 00002fcc: PUSH2 0x2fdd 00002fcf: JUMPI 00002fd0: PUSH2 0x2fd8 00002fd3: DUP3 00002fd4: PUSH2 0x3057 00002fd7: JUMP 00002fd8: JUMPDEST 00002fd9: PUSH2 0x15fb 00002fdc: JUMP 00002fdd: JUMPDEST 00002fde: DUP2 00002fdf: MLOAD 00002fe0: ISZERO 00002fe1: DUP1 00002fe2: ISZERO 00002fe3: PUSH2 0x3001 00002fe6: JUMPI 00002fe7: POP 00002fe8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ffd: DUP5 00002ffe: AND 00002fff: EXTCODESIZE 00003000: ISZERO 00003001: JUMPDEST 00003002: ISZERO 00003003: PUSH2 0x3050 00003006: JUMPI 00003007: PUSH1 0x40 00003009: MLOAD 0000300a: PUSH32 0x9996b31500000000000000000000000000000000000000000000000000000000 0000302b: DUP2 0000302c: MSTORE 0000302d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003042: DUP6 00003043: AND 00003044: PUSH1 0x04 00003046: DUP3 00003047: ADD 00003048: MSTORE 00003049: PUSH1 0x24 0000304b: ADD 0000304c: PUSH2 0x03c1 0000304f: JUMP 00003050: JUMPDEST 00003051: POP 00003052: DUP1 00003053: PUSH2 0x15fb 00003056: JUMP 00003057: JUMPDEST 00003058: DUP1 00003059: MLOAD 0000305a: ISZERO 0000305b: PUSH2 0x3067 0000305e: JUMPI 0000305f: DUP1 00003060: MLOAD 00003061: DUP1 00003062: DUP3 00003063: PUSH1 0x20 00003065: ADD 00003066: REVERT 00003067: JUMPDEST 00003068: PUSH1 0x40 0000306a: MLOAD 0000306b: PUSH32 0x1425ea4200000000000000000000000000000000000000000000000000000000 0000308c: DUP2 0000308d: MSTORE 0000308e: PUSH1 0x04 00003090: ADD 00003091: PUSH1 0x40 00003093: MLOAD 00003094: DUP1 00003095: SWAP2 00003096: SUB 00003097: SWAP1 00003098: REVERT 00003099: JUMPDEST 0000309a: PUSH1 0x00 0000309c: PUSH1 0x20 0000309e: DUP3 0000309f: DUP5 000030a0: SUB 000030a1: SLT 000030a2: ISZERO 000030a3: PUSH2 0x30ab 000030a6: JUMPI 000030a7: PUSH1 0x00 000030a9: DUP1 000030aa: REVERT 000030ab: JUMPDEST 000030ac: DUP2 000030ad: CALLDATALOAD 000030ae: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000030cf: DUP2 000030d0: AND 000030d1: DUP2 000030d2: EQ 000030d3: PUSH2 0x15fb 000030d6: JUMPI 000030d7: PUSH1 0x00 000030d9: DUP1 000030da: REVERT 000030db: JUMPDEST 000030dc: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000030fd: PUSH1 0x00 000030ff: MSTORE 00003100: PUSH1 0x41 00003102: PUSH1 0x04 00003104: MSTORE 00003105: PUSH1 0x24 00003107: PUSH1 0x00 00003109: REVERT 0000310a: JUMPDEST 0000310b: PUSH1 0x00 0000310d: DUP3 0000310e: PUSH1 0x1f 00003110: DUP4 00003111: ADD 00003112: SLT 00003113: PUSH2 0x311b 00003116: JUMPI 00003117: PUSH1 0x00 00003119: DUP1 0000311a: REVERT 0000311b: JUMPDEST 0000311c: DUP2 0000311d: CALLDATALOAD 0000311e: PUSH8 0xffffffffffffffff 00003127: DUP1 00003128: DUP3 00003129: GT 0000312a: ISZERO 0000312b: PUSH2 0x3136 0000312e: JUMPI 0000312f: PUSH2 0x3136 00003132: PUSH2 0x30db 00003135: JUMP 00003136: JUMPDEST 00003137: PUSH1 0x40 00003139: MLOAD 0000313a: PUSH1 0x1f 0000313c: DUP4 0000313d: ADD 0000313e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000315f: SWAP1 00003160: DUP2 00003161: AND 00003162: PUSH1 0x3f 00003164: ADD 00003165: AND 00003166: DUP2 00003167: ADD 00003168: SWAP1 00003169: DUP3 0000316a: DUP3 0000316b: GT 0000316c: DUP2 0000316d: DUP4 0000316e: LT 0000316f: OR 00003170: ISZERO 00003171: PUSH2 0x317c 00003174: JUMPI 00003175: PUSH2 0x317c 00003178: PUSH2 0x30db 0000317b: JUMP 0000317c: JUMPDEST 0000317d: DUP2 0000317e: PUSH1 0x40 00003180: MSTORE 00003181: DUP4 00003182: DUP2 00003183: MSTORE 00003184: DUP7 00003185: PUSH1 0x20 00003187: DUP6 00003188: DUP9 00003189: ADD 0000318a: ADD 0000318b: GT 0000318c: ISZERO 0000318d: PUSH2 0x3195 00003190: JUMPI 00003191: PUSH1 0x00 00003193: DUP1 00003194: REVERT 00003195: JUMPDEST 00003196: DUP4 00003197: PUSH1 0x20 00003199: DUP8 0000319a: ADD 0000319b: PUSH1 0x20 0000319d: DUP4 0000319e: ADD 0000319f: CALLDATACOPY 000031a0: PUSH1 0x00 000031a2: PUSH1 0x20 000031a4: DUP6 000031a5: DUP4 000031a6: ADD 000031a7: ADD 000031a8: MSTORE 000031a9: DUP1 000031aa: SWAP5 000031ab: POP 000031ac: POP 000031ad: POP 000031ae: POP 000031af: POP 000031b0: SWAP3 000031b1: SWAP2 000031b2: POP 000031b3: POP 000031b4: JUMP 000031b5: JUMPDEST 000031b6: PUSH1 0x00 000031b8: DUP1 000031b9: PUSH1 0x40 000031bb: DUP4 000031bc: DUP6 000031bd: SUB 000031be: SLT 000031bf: ISZERO 000031c0: PUSH2 0x31c8 000031c3: JUMPI 000031c4: PUSH1 0x00 000031c6: DUP1 000031c7: REVERT 000031c8: JUMPDEST 000031c9: DUP3 000031ca: CALLDATALOAD 000031cb: PUSH8 0xffffffffffffffff 000031d4: DUP2 000031d5: GT 000031d6: ISZERO 000031d7: PUSH2 0x31df 000031da: JUMPI 000031db: PUSH1 0x00 000031dd: DUP1 000031de: REVERT 000031df: JUMPDEST 000031e0: PUSH2 0x31eb 000031e3: DUP6 000031e4: DUP3 000031e5: DUP7 000031e6: ADD 000031e7: PUSH2 0x310a 000031ea: JUMP 000031eb: JUMPDEST 000031ec: SWAP6 000031ed: PUSH1 0x20 000031ef: SWAP5 000031f0: SWAP1 000031f1: SWAP5 000031f2: ADD 000031f3: CALLDATALOAD 000031f4: SWAP5 000031f5: POP 000031f6: POP 000031f7: POP 000031f8: POP 000031f9: JUMP 000031fa: JUMPDEST 000031fb: PUSH1 0x00 000031fd: PUSH1 0x20 000031ff: DUP3 00003200: DUP5 00003201: SUB 00003202: SLT 00003203: ISZERO 00003204: PUSH2 0x320c 00003207: JUMPI 00003208: PUSH1 0x00 0000320a: DUP1 0000320b: REVERT 0000320c: JUMPDEST 0000320d: DUP2 0000320e: CALLDATALOAD 0000320f: PUSH8 0xffffffffffffffff 00003218: DUP2 00003219: GT 0000321a: ISZERO 0000321b: PUSH2 0x3223 0000321e: JUMPI 0000321f: PUSH1 0x00 00003221: DUP1 00003222: REVERT 00003223: JUMPDEST 00003224: PUSH2 0x322f 00003227: DUP5 00003228: DUP3 00003229: DUP6 0000322a: ADD 0000322b: PUSH2 0x310a 0000322e: JUMP 0000322f: JUMPDEST 00003230: SWAP5 00003231: SWAP4 00003232: POP 00003233: POP 00003234: POP 00003235: POP 00003236: JUMP 00003237: JUMPDEST 00003238: PUSH1 0x00 0000323a: PUSH1 0x20 0000323c: DUP3 0000323d: DUP5 0000323e: SUB 0000323f: SLT 00003240: ISZERO 00003241: PUSH2 0x3249 00003244: JUMPI 00003245: PUSH1 0x00 00003247: DUP1 00003248: REVERT 00003249: JUMPDEST 0000324a: POP 0000324b: CALLDATALOAD 0000324c: SWAP2 0000324d: SWAP1 0000324e: POP 0000324f: JUMP 00003250: JUMPDEST 00003251: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003266: DUP2 00003267: AND 00003268: DUP2 00003269: EQ 0000326a: PUSH2 0x1559 0000326d: JUMPI 0000326e: PUSH1 0x00 00003270: DUP1 00003271: REVERT 00003272: JUMPDEST 00003273: DUP1 00003274: CALLDATALOAD 00003275: PUSH2 0x327d 00003278: DUP2 00003279: PUSH2 0x3250 0000327c: JUMP 0000327d: JUMPDEST 0000327e: SWAP2 0000327f: SWAP1 00003280: POP 00003281: JUMP 00003282: JUMPDEST 00003283: PUSH1 0x00 00003285: DUP1 00003286: PUSH1 0x40 00003288: DUP4 00003289: DUP6 0000328a: SUB 0000328b: SLT 0000328c: ISZERO 0000328d: PUSH2 0x3295 00003290: JUMPI 00003291: PUSH1 0x00 00003293: DUP1 00003294: REVERT 00003295: JUMPDEST 00003296: DUP3 00003297: CALLDATALOAD 00003298: SWAP2 00003299: POP 0000329a: PUSH1 0x20 0000329c: DUP4 0000329d: ADD 0000329e: CALLDATALOAD 0000329f: PUSH2 0x32a7 000032a2: DUP2 000032a3: PUSH2 0x3250 000032a6: JUMP 000032a7: JUMPDEST 000032a8: DUP1 000032a9: SWAP2 000032aa: POP 000032ab: POP 000032ac: SWAP3 000032ad: POP 000032ae: SWAP3 000032af: SWAP1 000032b0: POP 000032b1: JUMP 000032b2: JUMPDEST 000032b3: PUSH1 0x00 000032b5: PUSH1 0x20 000032b7: DUP3 000032b8: DUP5 000032b9: SUB 000032ba: SLT 000032bb: ISZERO 000032bc: PUSH2 0x32c4 000032bf: JUMPI 000032c0: PUSH1 0x00 000032c2: DUP1 000032c3: REVERT 000032c4: JUMPDEST 000032c5: DUP2 000032c6: CALLDATALOAD 000032c7: PUSH2 0x15fb 000032ca: DUP2 000032cb: PUSH2 0x3250 000032ce: JUMP 000032cf: JUMPDEST 000032d0: DUP1 000032d1: ISZERO 000032d2: ISZERO 000032d3: DUP2 000032d4: EQ 000032d5: PUSH2 0x1559 000032d8: JUMPI 000032d9: PUSH1 0x00 000032db: DUP1 000032dc: REVERT 000032dd: JUMPDEST 000032de: PUSH1 0x00 000032e0: PUSH1 0x20 000032e2: DUP3 000032e3: DUP5 000032e4: SUB 000032e5: SLT 000032e6: ISZERO 000032e7: PUSH2 0x32ef 000032ea: JUMPI 000032eb: PUSH1 0x00 000032ed: DUP1 000032ee: REVERT 000032ef: JUMPDEST 000032f0: DUP2 000032f1: CALLDATALOAD 000032f2: PUSH2 0x15fb 000032f5: DUP2 000032f6: PUSH2 0x32cf 000032f9: JUMP 000032fa: JUMPDEST 000032fb: PUSH1 0x00 000032fd: DUP1 000032fe: PUSH1 0x00 00003300: DUP1 00003301: PUSH1 0x00 00003303: DUP1 00003304: PUSH1 0x00 00003306: DUP1 00003307: PUSH1 0x00 00003309: DUP1 0000330a: PUSH1 0x00 0000330c: DUP1 0000330d: PUSH2 0x0180 00003310: DUP14 00003311: DUP16 00003312: SUB 00003313: SLT 00003314: ISZERO 00003315: PUSH2 0x331d 00003318: JUMPI 00003319: PUSH1 0x00 0000331b: DUP1 0000331c: REVERT 0000331d: JUMPDEST 0000331e: DUP13 0000331f: CALLDATALOAD 00003320: PUSH2 0x3328 00003323: DUP2 00003324: PUSH2 0x3250 00003327: JUMP 00003328: JUMPDEST 00003329: SWAP12 0000332a: POP 0000332b: PUSH1 0x20 0000332d: DUP14 0000332e: ADD 0000332f: CALLDATALOAD 00003330: PUSH2 0x3338 00003333: DUP2 00003334: PUSH2 0x3250 00003337: JUMP 00003338: JUMPDEST 00003339: SWAP11 0000333a: POP 0000333b: PUSH1 0x40 0000333d: DUP14 0000333e: ADD 0000333f: CALLDATALOAD 00003340: PUSH2 0x3348 00003343: DUP2 00003344: PUSH2 0x3250 00003347: JUMP 00003348: JUMPDEST 00003349: SWAP10 0000334a: POP 0000334b: PUSH1 0x60 0000334d: DUP14 0000334e: ADD 0000334f: CALLDATALOAD 00003350: SWAP9 00003351: POP 00003352: PUSH1 0x80 00003354: DUP14 00003355: ADD 00003356: CALLDATALOAD 00003357: PUSH2 0x335f 0000335a: DUP2 0000335b: PUSH2 0x32cf 0000335e: JUMP 0000335f: JUMPDEST 00003360: SWAP8 00003361: POP 00003362: PUSH1 0xa0 00003364: DUP14 00003365: ADD 00003366: CALLDATALOAD 00003367: PUSH2 0x336f 0000336a: DUP2 0000336b: PUSH2 0x32cf 0000336e: JUMP 0000336f: JUMPDEST 00003370: SWAP7 00003371: POP 00003372: PUSH1 0xc0 00003374: DUP14 00003375: ADD 00003376: CALLDATALOAD 00003377: SWAP6 00003378: POP 00003379: PUSH1 0xe0 0000337b: DUP14 0000337c: ADD 0000337d: CALLDATALOAD 0000337e: PUSH2 0x3386 00003381: DUP2 00003382: PUSH2 0x3250 00003385: JUMP 00003386: JUMPDEST 00003387: SWAP5 00003388: POP 00003389: PUSH2 0x0100 0000338c: DUP14 0000338d: ADD 0000338e: CALLDATALOAD 0000338f: SWAP4 00003390: POP 00003391: PUSH2 0x0120 00003394: DUP14 00003395: ADD 00003396: CALLDATALOAD 00003397: SWAP3 00003398: POP 00003399: PUSH2 0x33a5 0000339c: PUSH2 0x0140 0000339f: DUP15 000033a0: ADD 000033a1: PUSH2 0x3272 000033a4: JUMP 000033a5: JUMPDEST 000033a6: SWAP2 000033a7: POP 000033a8: PUSH2 0x33b4 000033ab: PUSH2 0x0160 000033ae: DUP15 000033af: ADD 000033b0: PUSH2 0x3272 000033b3: JUMP 000033b4: JUMPDEST 000033b5: SWAP1 000033b6: POP 000033b7: SWAP3 000033b8: SWAP6 000033b9: SWAP9 000033ba: SWAP12 000033bb: POP 000033bc: SWAP3 000033bd: SWAP6 000033be: SWAP9 000033bf: SWAP12 000033c0: POP 000033c1: SWAP3 000033c2: SWAP6 000033c3: SWAP9 000033c4: SWAP12 000033c5: JUMP 000033c6: JUMPDEST 000033c7: PUSH1 0x00 000033c9: DUP1 000033ca: PUSH1 0x40 000033cc: DUP4 000033cd: DUP6 000033ce: SUB 000033cf: SLT 000033d0: ISZERO 000033d1: PUSH2 0x33d9 000033d4: JUMPI 000033d5: PUSH1 0x00 000033d7: DUP1 000033d8: REVERT 000033d9: JUMPDEST 000033da: POP 000033db: POP 000033dc: DUP1 000033dd: CALLDATALOAD 000033de: SWAP3 000033df: PUSH1 0x20 000033e1: SWAP1 000033e2: SWAP2 000033e3: ADD 000033e4: CALLDATALOAD 000033e5: SWAP2 000033e6: POP 000033e7: JUMP 000033e8: JUMPDEST 000033e9: PUSH1 0x00 000033eb: DUP1 000033ec: PUSH1 0x40 000033ee: DUP4 000033ef: DUP6 000033f0: SUB 000033f1: SLT 000033f2: ISZERO 000033f3: PUSH2 0x33fb 000033f6: JUMPI 000033f7: PUSH1 0x00 000033f9: DUP1 000033fa: REVERT 000033fb: JUMPDEST 000033fc: DUP3 000033fd: CALLDATALOAD 000033fe: PUSH8 0xffffffffffffffff 00003407: DUP2 00003408: GT 00003409: ISZERO 0000340a: PUSH2 0x3412 0000340d: JUMPI 0000340e: PUSH1 0x00 00003410: DUP1 00003411: REVERT 00003412: JUMPDEST 00003413: PUSH2 0x341e 00003416: DUP6 00003417: DUP3 00003418: DUP7 00003419: ADD 0000341a: PUSH2 0x310a 0000341d: JUMP 0000341e: JUMPDEST 0000341f: SWAP3 00003420: POP 00003421: POP 00003422: PUSH1 0x20 00003424: DUP4 00003425: ADD 00003426: CALLDATALOAD 00003427: PUSH2 0x32a7 0000342a: DUP2 0000342b: PUSH2 0x32cf 0000342e: JUMP 0000342f: JUMPDEST 00003430: PUSH1 0x00 00003432: DUP1 00003433: PUSH1 0x00 00003435: PUSH1 0x60 00003437: DUP5 00003438: DUP7 00003439: SUB 0000343a: SLT 0000343b: ISZERO 0000343c: PUSH2 0x3444 0000343f: JUMPI 00003440: PUSH1 0x00 00003442: DUP1 00003443: REVERT 00003444: JUMPDEST 00003445: DUP4 00003446: CALLDATALOAD 00003447: PUSH2 0x344f 0000344a: DUP2 0000344b: PUSH2 0x3250 0000344e: JUMP 0000344f: JUMPDEST 00003450: SWAP3 00003451: POP 00003452: PUSH1 0x20 00003454: DUP5 00003455: ADD 00003456: CALLDATALOAD 00003457: PUSH2 0x345f 0000345a: DUP2 0000345b: PUSH2 0x3250 0000345e: JUMP 0000345f: JUMPDEST 00003460: SWAP3 00003461: SWAP6 00003462: SWAP3 00003463: SWAP5 00003464: POP 00003465: POP 00003466: POP 00003467: PUSH1 0x40 00003469: SWAP2 0000346a: SWAP1 0000346b: SWAP2 0000346c: ADD 0000346d: CALLDATALOAD 0000346e: SWAP1 0000346f: JUMP 00003470: JUMPDEST 00003471: PUSH1 0x00 00003473: DUP1 00003474: PUSH1 0x00 00003476: PUSH1 0x60 00003478: DUP5 00003479: DUP7 0000347a: SUB 0000347b: SLT 0000347c: ISZERO 0000347d: PUSH2 0x3485 00003480: JUMPI 00003481: PUSH1 0x00 00003483: DUP1 00003484: REVERT 00003485: JUMPDEST 00003486: DUP4 00003487: CALLDATALOAD 00003488: PUSH8 0xffffffffffffffff 00003491: DUP1 00003492: DUP3 00003493: GT 00003494: ISZERO 00003495: PUSH2 0x349d 00003498: JUMPI 00003499: PUSH1 0x00 0000349b: DUP1 0000349c: REVERT 0000349d: JUMPDEST 0000349e: PUSH2 0x34a9 000034a1: DUP8 000034a2: DUP4 000034a3: DUP9 000034a4: ADD 000034a5: PUSH2 0x310a 000034a8: JUMP 000034a9: JUMPDEST 000034aa: SWAP5 000034ab: POP 000034ac: PUSH1 0x20 000034ae: DUP7 000034af: ADD 000034b0: CALLDATALOAD 000034b1: SWAP2 000034b2: POP 000034b3: DUP1 000034b4: DUP3 000034b5: GT 000034b6: ISZERO 000034b7: PUSH2 0x34bf 000034ba: JUMPI 000034bb: PUSH1 0x00 000034bd: DUP1 000034be: REVERT 000034bf: JUMPDEST 000034c0: POP 000034c1: PUSH2 0x34cc 000034c4: DUP7 000034c5: DUP3 000034c6: DUP8 000034c7: ADD 000034c8: PUSH2 0x310a 000034cb: JUMP 000034cc: JUMPDEST 000034cd: SWAP3 000034ce: POP 000034cf: POP 000034d0: PUSH1 0x40 000034d2: DUP5 000034d3: ADD 000034d4: CALLDATALOAD 000034d5: SWAP1 000034d6: POP 000034d7: SWAP3 000034d8: POP 000034d9: SWAP3 000034da: POP 000034db: SWAP3 000034dc: JUMP 000034dd: JUMPDEST 000034de: PUSH1 0x00 000034e0: DUP1 000034e1: PUSH1 0x00 000034e3: DUP1 000034e4: PUSH1 0x00 000034e6: PUSH1 0xa0 000034e8: DUP7 000034e9: DUP9 000034ea: SUB 000034eb: SLT 000034ec: ISZERO 000034ed: PUSH2 0x34f5 000034f0: JUMPI 000034f1: PUSH1 0x00 000034f3: DUP1 000034f4: REVERT 000034f5: JUMPDEST 000034f6: DUP6 000034f7: CALLDATALOAD 000034f8: PUSH8 0xffffffffffffffff 00003501: DUP1 00003502: DUP3 00003503: GT 00003504: ISZERO 00003505: PUSH2 0x350d 00003508: JUMPI 00003509: PUSH1 0x00 0000350b: DUP1 0000350c: REVERT 0000350d: JUMPDEST 0000350e: PUSH2 0x3519 00003511: DUP10 00003512: DUP4 00003513: DUP11 00003514: ADD 00003515: PUSH2 0x310a 00003518: JUMP 00003519: JUMPDEST 0000351a: SWAP7 0000351b: POP 0000351c: PUSH1 0x20 0000351e: DUP9 0000351f: ADD 00003520: CALLDATALOAD 00003521: SWAP6 00003522: POP 00003523: PUSH1 0x40 00003525: DUP9 00003526: ADD 00003527: CALLDATALOAD 00003528: SWAP2 00003529: POP 0000352a: DUP1 0000352b: DUP3 0000352c: GT 0000352d: ISZERO 0000352e: PUSH2 0x3536 00003531: JUMPI 00003532: PUSH1 0x00 00003534: DUP1 00003535: REVERT 00003536: JUMPDEST 00003537: POP 00003538: PUSH2 0x3543 0000353b: DUP9 0000353c: DUP3 0000353d: DUP10 0000353e: ADD 0000353f: PUSH2 0x310a 00003542: JUMP 00003543: JUMPDEST 00003544: SWAP4 00003545: POP 00003546: POP 00003547: PUSH1 0x60 00003549: DUP7 0000354a: ADD 0000354b: CALLDATALOAD 0000354c: PUSH2 0x3554 0000354f: DUP2 00003550: PUSH2 0x3250 00003553: JUMP 00003554: JUMPDEST 00003555: SWAP5 00003556: SWAP8 00003557: SWAP4 00003558: SWAP7 00003559: POP 0000355a: SWAP2 0000355b: SWAP5 0000355c: PUSH1 0x80 0000355e: ADD 0000355f: CALLDATALOAD 00003560: SWAP3 00003561: SWAP2 00003562: POP 00003563: POP 00003564: JUMP 00003565: JUMPDEST 00003566: PUSH1 0x00 00003568: JUMPDEST 00003569: DUP4 0000356a: DUP2 0000356b: LT 0000356c: ISZERO 0000356d: PUSH2 0x3580 00003570: JUMPI 00003571: DUP2 00003572: DUP2 00003573: ADD 00003574: MLOAD 00003575: DUP4 00003576: DUP3 00003577: ADD 00003578: MSTORE 00003579: PUSH1 0x20 0000357b: ADD 0000357c: PUSH2 0x3568 0000357f: JUMP 00003580: JUMPDEST 00003581: POP 00003582: POP 00003583: PUSH1 0x00 00003585: SWAP2 00003586: ADD 00003587: MSTORE 00003588: JUMP 00003589: JUMPDEST 0000358a: PUSH1 0x00 0000358c: DUP3 0000358d: MLOAD 0000358e: PUSH2 0x359b 00003591: DUP2 00003592: DUP5 00003593: PUSH1 0x20 00003595: DUP8 00003596: ADD 00003597: PUSH2 0x3565 0000359a: JUMP 0000359b: JUMPDEST 0000359c: SWAP2 0000359d: SWAP1 0000359e: SWAP2 0000359f: ADD 000035a0: SWAP3 000035a1: SWAP2 000035a2: POP 000035a3: POP 000035a4: JUMP 000035a5: JUMPDEST 000035a6: PUSH1 0x00 000035a8: DUP2 000035a9: MLOAD 000035aa: DUP1 000035ab: DUP5 000035ac: MSTORE 000035ad: PUSH2 0x35bd 000035b0: DUP2 000035b1: PUSH1 0x20 000035b3: DUP7 000035b4: ADD 000035b5: PUSH1 0x20 000035b7: DUP7 000035b8: ADD 000035b9: PUSH2 0x3565 000035bc: JUMP 000035bd: JUMPDEST 000035be: PUSH1 0x1f 000035c0: ADD 000035c1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000035e2: AND 000035e3: SWAP3 000035e4: SWAP1 000035e5: SWAP3 000035e6: ADD 000035e7: PUSH1 0x20 000035e9: ADD 000035ea: SWAP3 000035eb: SWAP2 000035ec: POP 000035ed: POP 000035ee: JUMP 000035ef: JUMPDEST 000035f0: PUSH1 0x60 000035f2: DUP2 000035f3: MSTORE 000035f4: PUSH1 0x00 000035f6: PUSH2 0x3602 000035f9: PUSH1 0x60 000035fb: DUP4 000035fc: ADD 000035fd: DUP7 000035fe: PUSH2 0x35a5 00003601: JUMP 00003602: JUMPDEST 00003603: PUSH1 0x20 00003605: DUP4 00003606: ADD 00003607: SWAP5 00003608: SWAP1 00003609: SWAP5 0000360a: MSTORE 0000360b: POP 0000360c: PUSH1 0x40 0000360e: ADD 0000360f: MSTORE 00003610: SWAP2 00003611: SWAP1 00003612: POP 00003613: JUMP 00003614: JUMPDEST 00003615: PUSH1 0x00 00003617: PUSH1 0x20 00003619: DUP3 0000361a: DUP5 0000361b: SUB 0000361c: SLT 0000361d: ISZERO 0000361e: PUSH2 0x3626 00003621: JUMPI 00003622: PUSH1 0x00 00003624: DUP1 00003625: REVERT 00003626: JUMPDEST 00003627: POP 00003628: MLOAD 00003629: SWAP2 0000362a: SWAP1 0000362b: POP 0000362c: JUMP 0000362d: JUMPDEST 0000362e: PUSH1 0x60 00003630: DUP2 00003631: MSTORE 00003632: PUSH1 0x00 00003634: PUSH2 0x3640 00003637: PUSH1 0x60 00003639: DUP4 0000363a: ADD 0000363b: DUP7 0000363c: PUSH2 0x35a5 0000363f: JUMP 00003640: JUMPDEST 00003641: SWAP4 00003642: ISZERO 00003643: ISZERO 00003644: PUSH1 0x20 00003646: DUP4 00003647: ADD 00003648: MSTORE 00003649: POP 0000364a: SWAP1 0000364b: ISZERO 0000364c: ISZERO 0000364d: PUSH1 0x40 0000364f: SWAP1 00003650: SWAP2 00003651: ADD 00003652: MSTORE 00003653: SWAP2 00003654: SWAP1 00003655: POP 00003656: JUMP 00003657: JUMPDEST 00003658: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003679: PUSH1 0x00 0000367b: MSTORE 0000367c: PUSH1 0x11 0000367e: PUSH1 0x04 00003680: MSTORE 00003681: PUSH1 0x24 00003683: PUSH1 0x00 00003685: REVERT 00003686: JUMPDEST 00003687: DUP2 00003688: DUP2 00003689: SUB 0000368a: DUP2 0000368b: DUP2 0000368c: GT 0000368d: ISZERO 0000368e: PUSH2 0x0b54 00003691: JUMPI 00003692: PUSH2 0x0b54 00003695: PUSH2 0x3657 00003698: JUMP 00003699: JUMPDEST 0000369a: DUP5 0000369b: DUP2 0000369c: MSTORE 0000369d: PUSH1 0x80 0000369f: PUSH1 0x20 000036a1: DUP3 000036a2: ADD 000036a3: MSTORE 000036a4: PUSH1 0x00 000036a6: PUSH2 0x36b2 000036a9: PUSH1 0x80 000036ab: DUP4 000036ac: ADD 000036ad: DUP7 000036ae: PUSH2 0x35a5 000036b1: JUMP 000036b2: JUMPDEST 000036b3: PUSH1 0x40 000036b5: DUP4 000036b6: ADD 000036b7: SWAP5 000036b8: SWAP1 000036b9: SWAP5 000036ba: MSTORE 000036bb: POP 000036bc: PUSH1 0x60 000036be: ADD 000036bf: MSTORE 000036c0: SWAP3 000036c1: SWAP2 000036c2: POP 000036c3: POP 000036c4: JUMP 000036c5: JUMPDEST 000036c6: PUSH1 0x00 000036c8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000036e9: DUP3 000036ea: SUB 000036eb: PUSH2 0x36f6 000036ee: JUMPI 000036ef: PUSH2 0x36f6 000036f2: PUSH2 0x3657 000036f5: JUMP 000036f6: JUMPDEST 000036f7: POP 000036f8: PUSH1 0x01 000036fa: ADD 000036fb: SWAP1 000036fc: JUMP 000036fd: JUMPDEST 000036fe: DUP1 000036ff: DUP3 00003700: MUL 00003701: DUP2 00003702: ISZERO 00003703: DUP3 00003704: DUP3 00003705: DIV 00003706: DUP5 00003707: EQ 00003708: OR 00003709: PUSH2 0x0b54 0000370c: JUMPI 0000370d: PUSH2 0x0b54 00003710: PUSH2 0x3657 00003713: JUMP 00003714: JUMPDEST 00003715: PUSH1 0x00 00003717: DUP3 00003718: PUSH2 0x374a 0000371b: JUMPI 0000371c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000373d: PUSH1 0x00 0000373f: MSTORE 00003740: PUSH1 0x12 00003742: PUSH1 0x04 00003744: MSTORE 00003745: PUSH1 0x24 00003747: PUSH1 0x00 00003749: REVERT 0000374a: JUMPDEST 0000374b: POP 0000374c: DIV 0000374d: SWAP1 0000374e: JUMP 0000374f: JUMPDEST 00003750: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003771: PUSH1 0x00 00003773: MSTORE 00003774: PUSH1 0x32 00003776: PUSH1 0x04 00003778: MSTORE 00003779: PUSH1 0x24 0000377b: PUSH1 0x00 0000377d: REVERT 0000377e: JUMPDEST 0000377f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000037a0: PUSH1 0x00 000037a2: MSTORE 000037a3: PUSH1 0x31 000037a5: PUSH1 0x04 000037a7: MSTORE 000037a8: PUSH1 0x24 000037aa: PUSH1 0x00 000037ac: REVERT 000037ad: JUMPDEST 000037ae: PUSH1 0x00 000037b0: PUSH1 0x20 000037b2: DUP3 000037b3: DUP5 000037b4: SUB 000037b5: SLT 000037b6: ISZERO 000037b7: PUSH2 0x37bf 000037ba: JUMPI 000037bb: PUSH1 0x00 000037bd: DUP1 000037be: REVERT 000037bf: JUMPDEST 000037c0: DUP2 000037c1: MLOAD 000037c2: PUSH2 0x15fb 000037c5: DUP2 000037c6: PUSH2 0x32cf 000037c9: JUMP 000037ca: INVALID 000037cb: LOG2 000037cc: PUSH5 0x6970667358 000037d2: UNKNOWN(0x22) 000037d3: SLT 000037d4: KECCAK256 000037d5: UNKNOWN(0x28) 000037d6: UNKNOWN(0xDB) 000037d7: PUSH9 0xa600810151d4a17571 000037e1: BALANCE 000037e2: CALLER 000037e3: UNKNOWN(0xBA) 000037e4: PUSH28
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b
call_targets:
0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e"
],
"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": "0xd73792a9",
"selector": "0xd73792a9",
"calldata_variants": [
"0xd73792a9",
"0xd73792a90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7b0610f",
"selector": "0xe7b0610f",
"calldata_variants": [
"0xe7b0610f",
"0xe7b0610f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2225e1e",
"selector": "0xf2225e1e",
"calldata_variants": [
"0xf2225e1e",
"0xf2225e1e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7e80312",
"selector": "0xf7e80312",
"calldata_variants": [
"0xf7e80312",
"0xf7e803120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xced72f87",
"selector": "0xced72f87",
"calldata_variants": [
"0xced72f87",
"0xced72f870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd431b1ac",
"selector": "0xd431b1ac",
"calldata_variants": [
"0xd431b1ac",
"0xd431b1ac0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9c53252",
"selector": "0xa9c53252",
"calldata_variants": [
"0xa9c53252",
"0xa9c532520000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7788,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 12153,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b
call_targets:
0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e"
],
"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": "0xd73792a9",
"selector": "0xd73792a9",
"calldata_variants": [
"0xd73792a9",
"0xd73792a90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7b0610f",
"selector": "0xe7b0610f",
"calldata_variants": [
"0xe7b0610f",
"0xe7b0610f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2225e1e",
"selector": "0xf2225e1e",
"calldata_variants": [
"0xf2225e1e",
"0xf2225e1e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7e80312",
"selector": "0xf7e80312",
"calldata_variants": [
"0xf7e80312",
"0xf7e803120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xced72f87",
"selector": "0xced72f87",
"calldata_variants": [
"0xced72f87",
"0xced72f870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd431b1ac",
"selector": "0xd431b1ac",
"calldata_variants": [
"0xd431b1ac",
"0xd431b1ac0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9c53252",
"selector": "0xa9c53252",
"calldata_variants": [
"0xa9c53252",
"0xa9c532520000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7788,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 12153,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| medium | reentrancy | codex | External CALL before state update (possible reentrancy if target untrusted) | 75 | no | — |
viewevidence_json{
"evidence": "CALL at pc 0x1e6c is followed by an SSTORE in the next block (pc 0x1e82). No guards detected in the bundle. Target is derived from storage with an EXTCODESIZE check earlier in the sequence.",
"locations": [
"pc:0x1e6c",
"pc:0x1e82"
],
"recommendation": "Follow checks-effects-interactions: move critical state updates before the external CALL, add a reentrancy guard, and restrict/validate the call target if it is configurable.",
"exploit_scenario": "If the CALL at pc 0x1e6c targets an untrusted contract, that contract can reenter before the subsequent SSTORE executes, potentially exploiting temporarily inconsistent state or bypassing intended sequencing. This risk depends on whether the callee is attacker-controlled (target appears storage-derived)."
}
|
| low | other | codex | Low-level CALL with computed target/value and unclear success enforcement | 65 | no | — |
viewevidence_json{
"evidence": "CALL at pc 0x2f79 with computed target/value; opcodes show CALL followed by SWAP/POP operations and a RETURNDATASIZE equality check. Detector findings report computed target/value and possible ETH value transfer; guards_detected is empty, and validation did not confirm a variable target.",
"locations": [
"pc:0x2f79"
],
"recommendation": "Validate or whitelist the call target and value, and explicitly check the CALL success flag before proceeding. Handle return data in a way compatible with expected ABI (e.g., require success and accept empty/32-byte returns if calling ERC20s).",
"exploit_scenario": "If the CALL at pc 0x2f79 uses a caller-controlled target/value, the contract could be coerced into arbitrary external calls or ETH transfers. The bytecode sequence appears to discard the CALL success flag and only compares RETURNDATASIZE, so a failed call may be treated as success. Validation indicates a constant self-target in one trace, so the risk is uncertain and may be benign depending on actual target flow."
}
|