019bab3b-ac6c-7220-8780-0b3cf4eedfd4
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 |
|---|---|---|---|---|
| 38758 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38759 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38760 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38761 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38762 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38763 | detector.run | complete | 1 / 3 | 3 months ago |
| 38764 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39169 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Detected a delegatecall to a computed target; the bytecode does not make target trust or access control clear, so this is a high‑impact risk if reachable by untrusted callers.","findings":[{"severity":"high","category":"other","title":"Delegatecall to computed target enables arbitrary code execution if reachable","exploit_scenario":"A caller who can reach the delegatecall path and influence the target (and calldata) can execute arbitrary code in this contract’s storage context, potentially overwriting ownership/config slots or draining funds. If the entrypoint is owner‑only this risk is confined to a compromised owner or misconfiguration, but from bytecode alone the access control cannot be confirmed.","recommendation":"Restrict the delegatecall entrypoint to a strict admin/allowlist, validate target addresses, and prefer regular CALL for untrusted contracts. Add explicit access checks at the entrypoint and emit events for delegatecall usage.","evidence":"Detector evidence flags DELEGATECALL at pc 4497 with target_expression_category=\"computed\" and untrusted_delegatecall_count=1. Disassembly around pc 4445–4497 shows masking a stack‑provided address before DELEGATECALL; no explicit caller check appears in that block, and guard detection is heuristic.","locations":["pc:4497"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-5e8gcpy2
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019babe5-dd1e-7fe0-a733-2b1cb1be0744
--------
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
**Preparing to read BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-5e8gcpy2 succeeded in 12ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-5e8gcpy2 succeeded in 13ms:
{
"analysis_artifact": {
"address": "0x95fe5961368664c3da8879d7542149ddf0738d82",
"artifact_hash": "0x17d5a77707ddde1200661ddfd7a22084b1aa7b5f89707f16023e0b01f393250f",
"artifact_json": {
"auth": {
"guards": [
{
"pc": 3910,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4293,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"basic_blocks": [
thinking
**Analyzing bytecode for security patterns**
exec
/bin/bash -lc 'rg -n "storage|slot|eip1967|proxy|implementation|beacon" BYTECODE_BUNDLE.json' in /tmp/codex-5e8gcpy2 succeeded in 12ms:
11677: "storage": {
11679: "slots": [
11683: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11688: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11693: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11698: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11703: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11708: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11713: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11718: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11723: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11728: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11733: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11738: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11743: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11748: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11777: "storage": {
11779: "slots": [
11783: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11788: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
thinking
**Inspecting storage-related lines**
exec
/bin/bash -lc "sed -n '12760,12920p' BYTECODE_BUNDLE.json" in /tmp/codex-5e8gcpy2 succeeded in 7ms:
"0xe941fa78",
"0xf2fde38b",
"0x1694505e",
"0x2c76d7a6",
"0x2ec1be29",
"0x52e3c51c",
"0x893d20e8"
],
"sinks": {
"call": 11,
"create": 0,
"create2": 0,
"delegatecall": 1,
"selfdestruct": 0,
"staticcall": 1,
"upgrade_slot_write_suspected": false
},
"storage": {
"keccak_count": 1,
"reads": 15,
thinking
**Analyzing delegatecall risk in bytecode**
exec
/bin/bash -lc 'rg -n "call:4497|4497" BYTECODE_BUNDLE.json' in /tmp/codex-5e8gcpy2 succeeded in 7ms:
9237: "pc": 4497,
15439: "to": "call:4497",
15443: "from": "call:4497",
19428: "id": "call:4497",
19430: "pc": 4497,
19526: "pc": 4497,
thinking
**Checking callsites around line 19420**
exec
/bin/bash -lc "sed -n '19390,19580p' BYTECODE_BUNDLE.json" in /tmp/codex-5e8gcpy2 succeeded in 7ms:
},
{
"id": "call:2954",
"opcode": "STATICCALL",
"pc": 2954,
"type": "callsite"
},
{
"id": "call:3152",
"opcode": "CALL",
"pc": 3152,
"type": "callsite"
},
{
"id": "call:3440",
"opcode": "CALL",
"pc": 3440,
"type": "callsite"
},
{
thinking
**Analyzing potential delegatecall risks and reentrancy**
I'm piecing together possible security issues from the bytecode, focusing on dangerous delegatecalls to computed addresses without clear access control, which is high severity. I’m also examining withdraw and tip functions for reentrancy, but some patterns suggest no immediate risk. To confirm delegatecall safety, I plan to disassemble runtime bytecode around a key program counter using a Python script so I can understand surrounding opcodes and guards better.
exec
/bin/bash -lc "python - <<'PY'
import json
from binascii import unhexlify
with open('BYTECODE_BUNDLE.json','r') as f:
data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full']
if code_hex.startswith('0x'):
code_hex=code_hex[2:]
code=bytes.fromhex(code_hex)
# EVM opcodes mapping
opnames={
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
# Add PUSH/DUP/SWAP
for i in range(1,33):
opnames[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opnames[0x7f+i]=f'DUP{i}'
opnames[0x8f+i]=f'SWAP{i}'
# disassemble around pc range
start=4460
end=4545
pc=0
out=[]
while pc < len(code):
op=code[pc]
name=opnames.get(op, f'OP_{op:02x}')
pc_start=pc
pc+=1
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=code[pc:pc+n]
pc+=n
arg='0x'+imm.hex()
else:
arg=''
if start <= pc_start <= end:
out.append((pc_start,name,arg))
if pc_start> end:
break
for pc_start,name,arg in out:
if arg:
print(f\"{pc_start:5d}: {name} {arg}\")
else:
print(f\"{pc_start:5d}: {name}\")
PY" in /tmp/codex-5e8gcpy2 succeeded in 55ms:
4472: AND
4473: DUP5
4474: PUSH1 0x40
4476: MLOAD
4477: PUSH2 0x1186
4480: SWAP2
4481: SWAP1
4482: PUSH2 0x21e6
4485: JUMP
4486: JUMPDEST
4487: OP_5f
4488: PUSH1 0x40
4490: MLOAD
4491: DUP1
4492: DUP4
4493: SUB
4494: DUP2
4495: DUP6
4496: GAS
4497: DELEGATECALL
thinking
**Investigating delegatecall target computation**
exec
/bin/bash -lc "python - <<'PY'
import json
from binascii import unhexlify
with open('BYTECODE_BUNDLE.json','r') as f:
data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full']
if code_hex.startswith('0x'):
code_hex=code_hex[2:]
code=bytes.fromhex(code_hex)
opnames={
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for i in range(1,33):
opnames[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opnames[0x7f+i]=f'DUP{i}'
opnames[0x8f+i]=f'SWAP{i}'
start=4380
end=4520
pc=0
out=[]
while pc < len(code):
op=code[pc]
name=opnames.get(op, f'OP_{op:02x}')
pc_start=pc
pc+=1
arg=''
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=code[pc:pc+n]
pc+=n
arg='0x'+imm.hex()
if start <= pc_start <= end:
out.append((pc_start,name,arg))
if pc_start> end:
break
for pc_start,name,arg in out:
if arg:
print(f\"{pc_start:5d}: {name} {arg}\")
else:
print(f\"{pc_start:5d}: {name}\")
PY" in /tmp/codex-5e8gcpy2 succeeded in 72ms:
4380: DUP1
4381: OP_5f
4382: DUP1
4383: PUSH2 0x0100
4386: EXP
4387: DUP2
4388: SLOAD
4389: DUP2
4390: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
4411: MUL
4412: NOT
4413: AND
4414: SWAP1
4415: DUP4
4416: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
4437: AND
4438: MUL
4439: OR
4440: SWAP1
4441: SSTORE
thinking
**Analyzing delegatecall usage and safety checks**
I'm inspecting the function around 4445 that performs a delegatecall to an address passed as an argument, which looks risky without proper access control. I want to verify if there’s a msg.sender (CALLER) ownership check before the delegatecall to ensure only authorized callers can trigger it, so I'll disassemble and examine earlier code near 4300–4380 for such guards.
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json','r') as f:
data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full'][2:]
code=bytes.fromhex(code_hex)
opnames={
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for i in range(1,33):
opnames[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opnames[0x7f+i]=f'DUP{i}'
opnames[0x8f+i]=f'SWAP{i}'
start=4260
end=4445
pc=0
out=[]
while pc < len(code):
op=code[pc]
name=opnames.get(op, f'OP_{op:02x}')
pc_start=pc
pc+=1
arg=''
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=code[pc:pc+n]
pc+=n
arg='0x'+imm.hex()
if start <= pc_start <= end:
out.append((pc_start,name,arg))
if pc_start> end:
break
for pc_start,name,arg in out:
if arg:
print(f\"{pc_start:5d}: {name} {arg}\")
else:
print(f\"{pc_start:5d}: {name}\")
PY" in /tmp/codex-5e8gcpy2 succeeded in 77ms:
4270: AND
4271: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
4292: AND
4293: CALLER
4294: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
4315: AND
4316: EQ
4317: PUSH2 0x111b
4320: JUMPI
4321: PUSH1 0x40
4323: MLOAD
4324: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
4357: DUP2
4358: MSTORE
4359: PUSH1 0x04
4361: ADD
4362: PUSH2 0x1112
4365: SWAP1
4366: PUSH2 0x20c8
4369: JUMP
thinking
**Analyzing delegatecall owner checks**
exec
/bin/bash -lc "sed -n '15390,15480p' BYTECODE_BUNDLE.json" in /tmp/codex-5e8gcpy2 succeeded in 9ms:
"type": "contains"
},
{
"from": "call:3152",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:3427",
"to": "call:3440",
"type": "contains"
},
{
"from": "call:3440",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:3606",
"to": "call:3609",
thinking
**Analyzing risky delegatecall and external calls**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json','r') as f:
data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full'][2:]
code=bytes.fromhex(code_hex)
opnames={
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for i in range(1,33):
opnames[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opnames[0x7f+i]=f'DUP{i}'
opnames[0x8f+i]=f'SWAP{i}'
start=880
end=980
pc=0
out=[]
while pc < len(code):
op=code[pc]
name=opnames.get(op, f'OP_{op:02x}')
pc_start=pc
pc+=1
arg=''
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=code[pc:pc+n]
pc+=n
arg='0x'+imm.hex()
if start <= pc_start <= end:
out.append((pc_start,name,arg))
if pc_start> end:
break
for pc_start,name,arg in out:
if arg:
print(f\"{pc_start:5d}: {name} {arg}\")
else:
print(f\"{pc_start:5d}: {name}\")
PY" in /tmp/codex-5e8gcpy2 succeeded in 39ms:
880: GT
881: ISZERO
882: PUSH2 0x03ba
885: JUMPI
886: COINBASE
887: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
908: AND
909: PUSH2 0x08fc
912: DUP3
913: SWAP1
914: DUP2
915: ISZERO
916: MUL
917: SWAP1
918: PUSH1 0x40
920: MLOAD
921: OP_5f
922: PUSH1 0x40
924: MLOAD
925: DUP1
thinking
**Analyzing delegatecall and external calls risks**
This detailed analysis weighs the potential dangers of a delegatecall to a computed target address with uncertain access control, flagging it as a high-severity issue due to possible arbitrary code execution by untrusted callers. I also note external CALL instructions with ETH value to arbitrary addresses (like block.coinbase) which could pose a low-severity reentrancy risk without visible guards, but without clear state update context, I’m cautious not to overstate it. The key takeaway is that only the delegatecall finding is solidly critical, and limiting that to trusted callers is essential.
codex
{"no_findings":false,"summary":"Detected a delegatecall to a computed target; the bytecode does not make target trust or access control clear, so this is a high‑impact risk if reachable by untrusted callers.","findings":[{"severity":"high","category":"other","title":"Delegatecall to computed target enables arbitrary code execution if reachable","exploit_scenario":"A caller who can reach the delegatecall path and influence the target (and calldata) can execute arbitrary code in this contract’s storage context, potentially overwriting ownership/config slots or draining funds. If the entrypoint is owner‑only this risk is confined to a compromised owner or misconfiguration, but from bytecode alone the access control cannot be confirmed.","recommendation":"Restrict the delegatecall entrypoint to a strict admin/allowlist, validate target addresses, and prefer regular CALL for untrusted contracts. Add explicit access checks at the entrypoint and emit events for delegatecall usage.","evidence":"Detector evidence flags DELEGATECALL at pc 4497 with target_expression_category=\"computed\" and untrusted_delegatecall_count=1. Disassembly around pc 4445–4497 shows masking a stack‑provided address before DELEGATECALL; no explicit caller check appears in that block, and guard detection is heuristic.","locations":["pc:4497"]}]}
tokens used
80,847
{
"codex": {
"ran_at": "2026-01-11T07:15:52.160712+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 17718,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Detected a delegatecall to a computed target; the bytecode does not make target trust or access control clear, so this is a high\u2011impact risk if reachable by untrusted callers.",
"raw_final": {
"summary": "Detected a delegatecall to a computed target; the bytecode does not make target trust or access control clear, so this is a high\u2011impact risk if reachable by untrusted callers.",
"findings": [
{
"title": "Delegatecall to computed target enables arbitrary code execution if reachable",
"category": "other",
"evidence": "Detector evidence flags DELEGATECALL at pc 4497 with target_expression_category=\"computed\" and untrusted_delegatecall_count=1. Disassembly around pc 4445\u20134497 shows masking a stack\u2011provided address before DELEGATECALL; no explicit caller check appears in that block, and guard detection is heuristic.",
"severity": "high",
"locations": [
"pc:4497"
],
"recommendation": "Restrict the delegatecall entrypoint to a strict admin/allowlist, validate target addresses, and prefer regular CALL for untrusted contracts. Add explicit access checks at the entrypoint and emit events for delegatecall usage.",
"exploit_scenario": "A caller who can reach the delegatecall path and influence the target (and calldata) can execute arbitrary code in this contract\u2019s storage context, potentially overwriting ownership/config slots or draining funds. If the entrypoint is owner\u2011only this risk is confined to a compromised owner or misconfiguration, but from bytecode alone the access control cannot be confirmed."
}
],
"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 0x009f 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x8da5cb5b 00000018: GT 00000019: PUSH2 0x0063 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0x8da5cb5b 00000023: EQ 00000024: PUSH2 0x016e 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0x970fd18c 0000002e: EQ 0000002f: PUSH2 0x0198 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xde05e6a0 00000039: EQ 0000003a: PUSH2 0x01b4 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xe3cbfe9d 00000044: EQ 00000045: PUSH2 0x01d0 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xe941fa78 0000004f: EQ 00000050: PUSH2 0x01ec 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xf2fde38b 0000005a: EQ 0000005b: PUSH2 0x0202 0000005e: JUMPI 0000005f: PUSH2 0x00a6 00000062: JUMP 00000063: JUMPDEST 00000064: DUP1 00000065: PUSH4 0x1694505e 0000006a: EQ 0000006b: PUSH2 0x00aa 0000006e: JUMPI 0000006f: DUP1 00000070: PUSH4 0x2c76d7a6 00000075: EQ 00000076: PUSH2 0x00d4 00000079: JUMPI 0000007a: DUP1 0000007b: PUSH4 0x2ec1be29 00000080: EQ 00000081: PUSH2 0x00fe 00000084: JUMPI 00000085: DUP1 00000086: PUSH4 0x52e3c51c 0000008b: EQ 0000008c: PUSH2 0x0128 0000008f: JUMPI 00000090: DUP1 00000091: PUSH4 0x893d20e8 00000096: EQ 00000097: PUSH2 0x0144 0000009a: JUMPI 0000009b: PUSH2 0x00a6 0000009e: JUMP 0000009f: JUMPDEST 000000a0: CALLDATASIZE 000000a1: PUSH2 0x00a6 000000a4: JUMPI 000000a5: STOP 000000a6: JUMPDEST 000000a7: PUSH0 000000a8: DUP1 000000a9: REVERT 000000aa: JUMPDEST 000000ab: CALLVALUE 000000ac: DUP1 000000ad: ISZERO 000000ae: PUSH2 0x00b5 000000b1: JUMPI 000000b2: PUSH0 000000b3: DUP1 000000b4: REVERT 000000b5: JUMPDEST 000000b6: POP 000000b7: PUSH2 0x00be 000000ba: PUSH2 0x022a 000000bd: JUMP 000000be: JUMPDEST 000000bf: PUSH1 0x40 000000c1: MLOAD 000000c2: PUSH2 0x00cb 000000c5: SWAP2 000000c6: SWAP1 000000c7: PUSH2 0x129d 000000ca: JUMP 000000cb: JUMPDEST 000000cc: PUSH1 0x40 000000ce: MLOAD 000000cf: DUP1 000000d0: SWAP2 000000d1: SUB 000000d2: SWAP1 000000d3: RETURN 000000d4: JUMPDEST 000000d5: CALLVALUE 000000d6: DUP1 000000d7: ISZERO 000000d8: PUSH2 0x00df 000000db: JUMPI 000000dc: PUSH0 000000dd: DUP1 000000de: REVERT 000000df: JUMPDEST 000000e0: POP 000000e1: PUSH2 0x00e8 000000e4: PUSH2 0x024f 000000e7: JUMP 000000e8: JUMPDEST 000000e9: PUSH1 0x40 000000eb: MLOAD 000000ec: PUSH2 0x00f5 000000ef: SWAP2 000000f0: SWAP1 000000f1: PUSH2 0x12d6 000000f4: JUMP 000000f5: JUMPDEST 000000f6: PUSH1 0x40 000000f8: MLOAD 000000f9: DUP1 000000fa: SWAP2 000000fb: SUB 000000fc: SWAP1 000000fd: RETURN 000000fe: JUMPDEST 000000ff: CALLVALUE 00000100: DUP1 00000101: ISZERO 00000102: PUSH2 0x0109 00000105: JUMPI 00000106: PUSH0 00000107: DUP1 00000108: REVERT 00000109: JUMPDEST 0000010a: POP 0000010b: PUSH2 0x0112 0000010e: PUSH2 0x0274 00000111: JUMP 00000112: JUMPDEST 00000113: PUSH1 0x40 00000115: MLOAD 00000116: PUSH2 0x011f 00000119: SWAP2 0000011a: SWAP1 0000011b: PUSH2 0x130f 0000011e: JUMP 0000011f: JUMPDEST 00000120: PUSH1 0x40 00000122: MLOAD 00000123: DUP1 00000124: SWAP2 00000125: SUB 00000126: SWAP1 00000127: RETURN 00000128: JUMPDEST 00000129: PUSH2 0x0142 0000012c: PUSH1 0x04 0000012e: DUP1 0000012f: CALLDATASIZE 00000130: SUB 00000131: DUP2 00000132: ADD 00000133: SWAP1 00000134: PUSH2 0x013d 00000137: SWAP2 00000138: SWAP1 00000139: PUSH2 0x13cd 0000013c: JUMP 0000013d: JUMPDEST 0000013e: PUSH2 0x0299 00000141: JUMP 00000142: JUMPDEST 00000143: STOP 00000144: JUMPDEST 00000145: CALLVALUE 00000146: DUP1 00000147: ISZERO 00000148: PUSH2 0x014f 0000014b: JUMPI 0000014c: PUSH0 0000014d: DUP1 0000014e: REVERT 0000014f: JUMPDEST 00000150: POP 00000151: PUSH2 0x0158 00000154: PUSH2 0x0568 00000157: JUMP 00000158: JUMPDEST 00000159: PUSH1 0x40 0000015b: MLOAD 0000015c: PUSH2 0x0165 0000015f: SWAP2 00000160: SWAP1 00000161: PUSH2 0x1483 00000164: JUMP 00000165: JUMPDEST 00000166: PUSH1 0x40 00000168: MLOAD 00000169: DUP1 0000016a: SWAP2 0000016b: SUB 0000016c: SWAP1 0000016d: RETURN 0000016e: JUMPDEST 0000016f: CALLVALUE 00000170: DUP1 00000171: ISZERO 00000172: PUSH2 0x0179 00000175: JUMPI 00000176: PUSH0 00000177: DUP1 00000178: REVERT 00000179: JUMPDEST 0000017a: POP 0000017b: PUSH2 0x0182 0000017e: PUSH2 0x058f 00000181: JUMP 00000182: JUMPDEST 00000183: PUSH1 0x40 00000185: MLOAD 00000186: PUSH2 0x018f 00000189: SWAP2 0000018a: SWAP1 0000018b: PUSH2 0x1483 0000018e: JUMP 0000018f: JUMPDEST 00000190: PUSH1 0x40 00000192: MLOAD 00000193: DUP1 00000194: SWAP2 00000195: SUB 00000196: SWAP1 00000197: RETURN 00000198: JUMPDEST 00000199: PUSH2 0x01b2 0000019c: PUSH1 0x04 0000019e: DUP1 0000019f: CALLDATASIZE 000001a0: SUB 000001a1: DUP2 000001a2: ADD 000001a3: SWAP1 000001a4: PUSH2 0x01ad 000001a7: SWAP2 000001a8: SWAP1 000001a9: PUSH2 0x14f1 000001ac: JUMP 000001ad: JUMPDEST 000001ae: PUSH2 0x05b2 000001b1: JUMP 000001b2: JUMPDEST 000001b3: STOP 000001b4: JUMPDEST 000001b5: PUSH2 0x01ce 000001b8: PUSH1 0x04 000001ba: DUP1 000001bb: CALLDATASIZE 000001bc: SUB 000001bd: DUP2 000001be: ADD 000001bf: SWAP1 000001c0: PUSH2 0x01c9 000001c3: SWAP2 000001c4: SWAP1 000001c5: PUSH2 0x1587 000001c8: JUMP 000001c9: JUMPDEST 000001ca: PUSH2 0x0808 000001cd: JUMP 000001ce: JUMPDEST 000001cf: STOP 000001d0: JUMPDEST 000001d1: PUSH2 0x01ea 000001d4: PUSH1 0x04 000001d6: DUP1 000001d7: CALLDATASIZE 000001d8: SUB 000001d9: DUP2 000001da: ADD 000001db: SWAP1 000001dc: PUSH2 0x01e5 000001df: SWAP2 000001e0: SWAP1 000001e1: PUSH2 0x1647 000001e4: JUMP 000001e5: JUMPDEST 000001e6: PUSH2 0x0a12 000001e9: JUMP 000001ea: JUMPDEST 000001eb: STOP 000001ec: JUMPDEST 000001ed: CALLVALUE 000001ee: DUP1 000001ef: ISZERO 000001f0: PUSH2 0x01f7 000001f3: JUMPI 000001f4: PUSH0 000001f5: DUP1 000001f6: REVERT 000001f7: JUMPDEST 000001f8: POP 000001f9: PUSH2 0x0200 000001fc: PUSH2 0x0f0f 000001ff: JUMP 00000200: JUMPDEST 00000201: STOP 00000202: JUMPDEST 00000203: CALLVALUE 00000204: DUP1 00000205: ISZERO 00000206: PUSH2 0x020d 00000209: JUMPI 0000020a: PUSH0 0000020b: DUP1 0000020c: REVERT 0000020d: JUMPDEST 0000020e: POP 0000020f: PUSH2 0x0228 00000212: PUSH1 0x04 00000214: DUP1 00000215: CALLDATASIZE 00000216: SUB 00000217: DUP2 00000218: ADD 00000219: SWAP1 0000021a: PUSH2 0x0223 0000021d: SWAP2 0000021e: SWAP1 0000021f: PUSH2 0x16f1 00000222: JUMP 00000223: JUMPDEST 00000224: PUSH2 0x108e 00000227: JUMP 00000228: JUMPDEST 00000229: STOP 0000022a: JUMPDEST 0000022b: PUSH1 0x01 0000022d: PUSH0 0000022e: SWAP1 0000022f: SLOAD 00000230: SWAP1 00000231: PUSH2 0x0100 00000234: EXP 00000235: SWAP1 00000236: DIV 00000237: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000024c: AND 0000024d: DUP2 0000024e: JUMP 0000024f: JUMPDEST 00000250: PUSH1 0x02 00000252: PUSH0 00000253: SWAP1 00000254: SLOAD 00000255: SWAP1 00000256: PUSH2 0x0100 00000259: EXP 0000025a: SWAP1 0000025b: DIV 0000025c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000271: AND 00000272: DUP2 00000273: JUMP 00000274: JUMPDEST 00000275: PUSH1 0x03 00000277: PUSH0 00000278: SWAP1 00000279: SLOAD 0000027a: SWAP1 0000027b: PUSH2 0x0100 0000027e: EXP 0000027f: SWAP1 00000280: DIV 00000281: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000296: AND 00000297: DUP2 00000298: JUMP 00000299: JUMPDEST 0000029a: PUSH0 0000029b: CALLVALUE 0000029c: GT 0000029d: PUSH2 0x02db 000002a0: JUMPI 000002a1: PUSH1 0x40 000002a3: MLOAD 000002a4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000002c5: DUP2 000002c6: MSTORE 000002c7: PUSH1 0x04 000002c9: ADD 000002ca: PUSH2 0x02d2 000002cd: SWAP1 000002ce: PUSH2 0x1776 000002d1: JUMP 000002d2: JUMPDEST 000002d3: PUSH1 0x40 000002d5: MLOAD 000002d6: DUP1 000002d7: SWAP2 000002d8: SUB 000002d9: SWAP1 000002da: REVERT 000002db: JUMPDEST 000002dc: PUSH0 000002dd: DUP3 000002de: GT 000002df: DUP1 000002e0: ISZERO 000002e1: PUSH2 0x02eb 000002e4: JUMPI 000002e5: POP 000002e6: PUSH2 0x2710 000002e9: DUP3 000002ea: LT 000002eb: JUMPDEST 000002ec: PUSH2 0x032a 000002ef: JUMPI 000002f0: PUSH1 0x40 000002f2: MLOAD 000002f3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000314: DUP2 00000315: MSTORE 00000316: PUSH1 0x04 00000318: ADD 00000319: PUSH2 0x0321 0000031c: SWAP1 0000031d: PUSH2 0x1804 00000320: JUMP 00000321: JUMPDEST 00000322: PUSH1 0x40 00000324: MLOAD 00000325: DUP1 00000326: SWAP2 00000327: SUB 00000328: SWAP1 00000329: REVERT 0000032a: JUMPDEST 0000032b: DUP1 0000032c: CALLVALUE 0000032d: LT 0000032e: ISZERO 0000032f: PUSH2 0x036d 00000332: JUMPI 00000333: PUSH1 0x40 00000335: MLOAD 00000336: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000357: DUP2 00000358: MSTORE 00000359: PUSH1 0x04 0000035b: ADD 0000035c: PUSH2 0x0364 0000035f: SWAP1 00000360: PUSH2 0x186c 00000363: JUMP 00000364: JUMPDEST 00000365: PUSH1 0x40 00000367: MLOAD 00000368: DUP1 00000369: SWAP2 0000036a: SUB 0000036b: SWAP1 0000036c: REVERT 0000036d: JUMPDEST 0000036e: PUSH0 0000036f: DUP2 00000370: GT 00000371: ISZERO 00000372: PUSH2 0x03ba 00000375: JUMPI 00000376: COINBASE 00000377: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000038c: AND 0000038d: PUSH2 0x08fc 00000390: DUP3 00000391: SWAP1 00000392: DUP2 00000393: ISZERO 00000394: MUL 00000395: SWAP1 00000396: PUSH1 0x40 00000398: MLOAD 00000399: PUSH0 0000039a: PUSH1 0x40 0000039c: MLOAD 0000039d: DUP1 0000039e: DUP4 0000039f: SUB 000003a0: DUP2 000003a1: DUP6 000003a2: DUP9 000003a3: DUP9 000003a4: CALL 000003a5: SWAP4 000003a6: POP 000003a7: POP 000003a8: POP 000003a9: POP 000003aa: ISZERO 000003ab: DUP1 000003ac: ISZERO 000003ad: PUSH2 0x03b8 000003b0: JUMPI 000003b1: RETURNDATASIZE 000003b2: PUSH0 000003b3: DUP1 000003b4: RETURNDATACOPY 000003b5: RETURNDATASIZE 000003b6: PUSH0 000003b7: REVERT 000003b8: JUMPDEST 000003b9: POP 000003ba: JUMPDEST 000003bb: PUSH0 000003bc: PUSH2 0x2710 000003bf: DUP4 000003c0: DUP4 000003c1: CALLVALUE 000003c2: PUSH2 0x03cb 000003c5: SWAP2 000003c6: SWAP1 000003c7: PUSH2 0x18b7 000003ca: JUMP 000003cb: JUMPDEST 000003cc: PUSH2 0x03d5 000003cf: SWAP2 000003d0: SWAP1 000003d1: PUSH2 0x18ea 000003d4: JUMP 000003d5: JUMPDEST 000003d6: PUSH2 0x03df 000003d9: SWAP2 000003da: SWAP1 000003db: PUSH2 0x1958 000003de: JUMP 000003df: JUMPDEST 000003e0: SWAP1 000003e1: POP 000003e2: PUSH0 000003e3: DUP2 000003e4: DUP4 000003e5: CALLVALUE 000003e6: PUSH2 0x03ef 000003e9: SWAP2 000003ea: SWAP1 000003eb: PUSH2 0x18b7 000003ee: JUMP 000003ef: JUMPDEST 000003f0: PUSH2 0x03f9 000003f3: SWAP2 000003f4: SWAP1 000003f5: PUSH2 0x18b7 000003f8: JUMP 000003f9: JUMPDEST 000003fa: SWAP1 000003fb: POP 000003fc: PUSH0 000003fd: DUP2 000003fe: GT 000003ff: PUSH2 0x043d 00000402: JUMPI 00000403: PUSH1 0x40 00000405: MLOAD 00000406: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000427: DUP2 00000428: MSTORE 00000429: PUSH1 0x04 0000042b: ADD 0000042c: PUSH2 0x0434 0000042f: SWAP1 00000430: PUSH2 0x19d2 00000433: JUMP 00000434: JUMPDEST 00000435: PUSH1 0x40 00000437: MLOAD 00000438: DUP1 00000439: SWAP2 0000043a: SUB 0000043b: SWAP1 0000043c: REVERT 0000043d: JUMPDEST 0000043e: PUSH0 0000043f: PUSH1 0x40 00000441: MLOAD 00000442: DUP1 00000443: PUSH1 0xa0 00000445: ADD 00000446: PUSH1 0x40 00000448: MSTORE 00000449: DUP1 0000044a: DUP11 0000044b: DUP11 0000044c: DUP1 0000044d: DUP1 0000044e: PUSH1 0x1f 00000450: ADD 00000451: PUSH1 0x20 00000453: DUP1 00000454: SWAP2 00000455: DIV 00000456: MUL 00000457: PUSH1 0x20 00000459: ADD 0000045a: PUSH1 0x40 0000045c: MLOAD 0000045d: SWAP1 0000045e: DUP2 0000045f: ADD 00000460: PUSH1 0x40 00000462: MSTORE 00000463: DUP1 00000464: SWAP4 00000465: SWAP3 00000466: SWAP2 00000467: SWAP1 00000468: DUP2 00000469: DUP2 0000046a: MSTORE 0000046b: PUSH1 0x20 0000046d: ADD 0000046e: DUP4 0000046f: DUP4 00000470: DUP1 00000471: DUP3 00000472: DUP5 00000473: CALLDATACOPY 00000474: PUSH0 00000475: DUP2 00000476: DUP5 00000477: ADD 00000478: MSTORE 00000479: PUSH1 0x1f 0000047b: NOT 0000047c: PUSH1 0x1f 0000047e: DUP3 0000047f: ADD 00000480: AND 00000481: SWAP1 00000482: POP 00000483: DUP1 00000484: DUP4 00000485: ADD 00000486: SWAP3 00000487: POP 00000488: POP 00000489: POP 0000048a: POP 0000048b: POP 0000048c: POP 0000048d: POP 0000048e: DUP2 0000048f: MSTORE 00000490: PUSH1 0x20 00000492: ADD 00000493: CALLER 00000494: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004a9: AND 000004aa: DUP2 000004ab: MSTORE 000004ac: PUSH1 0x20 000004ae: ADD 000004af: DUP8 000004b0: DUP2 000004b1: MSTORE 000004b2: PUSH1 0x20 000004b4: ADD 000004b5: DUP4 000004b6: DUP2 000004b7: MSTORE 000004b8: PUSH1 0x20 000004ba: ADD 000004bb: DUP9 000004bc: DUP2 000004bd: MSTORE 000004be: POP 000004bf: SWAP1 000004c0: POP 000004c1: PUSH1 0x02 000004c3: PUSH0 000004c4: SWAP1 000004c5: SLOAD 000004c6: SWAP1 000004c7: PUSH2 0x0100 000004ca: EXP 000004cb: SWAP1 000004cc: DIV 000004cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004e2: AND 000004e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004f8: AND 000004f9: PUSH4 0xc04b8d59 000004fe: DUP4 000004ff: DUP4 00000500: PUSH1 0x40 00000502: MLOAD 00000503: DUP4 00000504: PUSH4 0xffffffff 00000509: AND 0000050a: PUSH1 0xe0 0000050c: SHL 0000050d: DUP2 0000050e: MSTORE 0000050f: PUSH1 0x04 00000511: ADD 00000512: PUSH2 0x051b 00000515: SWAP2 00000516: SWAP1 00000517: PUSH2 0x1b0b 0000051a: JUMP 0000051b: JUMPDEST 0000051c: PUSH1 0x20 0000051e: PUSH1 0x40 00000520: MLOAD 00000521: DUP1 00000522: DUP4 00000523: SUB 00000524: DUP2 00000525: DUP6 00000526: DUP9 00000527: GAS 00000528: CALL 00000529: ISZERO 0000052a: DUP1 0000052b: ISZERO 0000052c: PUSH2 0x0537 0000052f: JUMPI 00000530: RETURNDATASIZE 00000531: PUSH0 00000532: DUP1 00000533: RETURNDATACOPY 00000534: RETURNDATASIZE 00000535: PUSH0 00000536: REVERT 00000537: JUMPDEST 00000538: POP 00000539: POP 0000053a: POP 0000053b: POP 0000053c: POP 0000053d: PUSH1 0x40 0000053f: MLOAD 00000540: RETURNDATASIZE 00000541: PUSH1 0x1f 00000543: NOT 00000544: PUSH1 0x1f 00000546: DUP3 00000547: ADD 00000548: AND 00000549: DUP3 0000054a: ADD 0000054b: DUP1 0000054c: PUSH1 0x40 0000054e: MSTORE 0000054f: POP 00000550: DUP2 00000551: ADD 00000552: SWAP1 00000553: PUSH2 0x055c 00000556: SWAP2 00000557: SWAP1 00000558: PUSH2 0x1b3f 0000055b: JUMP 0000055c: JUMPDEST 0000055d: POP 0000055e: POP 0000055f: POP 00000560: POP 00000561: POP 00000562: POP 00000563: POP 00000564: POP 00000565: POP 00000566: POP 00000567: JUMP 00000568: JUMPDEST 00000569: PUSH0 0000056a: DUP1 0000056b: PUSH0 0000056c: SWAP1 0000056d: SLOAD 0000056e: SWAP1 0000056f: PUSH2 0x0100 00000572: EXP 00000573: SWAP1 00000574: DIV 00000575: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000058a: AND 0000058b: SWAP1 0000058c: POP 0000058d: SWAP1 0000058e: JUMP 0000058f: JUMPDEST 00000590: PUSH0 00000591: DUP1 00000592: SLOAD 00000593: SWAP1 00000594: PUSH2 0x0100 00000597: EXP 00000598: SWAP1 00000599: DIV 0000059a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005af: AND 000005b0: DUP2 000005b1: JUMP 000005b2: JUMPDEST 000005b3: PUSH0 000005b4: CALLVALUE 000005b5: GT 000005b6: PUSH2 0x05f4 000005b9: JUMPI 000005ba: PUSH1 0x40 000005bc: MLOAD 000005bd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000005de: DUP2 000005df: MSTORE 000005e0: PUSH1 0x04 000005e2: ADD 000005e3: PUSH2 0x05eb 000005e6: SWAP1 000005e7: PUSH2 0x1776 000005ea: JUMP 000005eb: JUMPDEST 000005ec: PUSH1 0x40 000005ee: MLOAD 000005ef: DUP1 000005f0: SWAP2 000005f1: SUB 000005f2: SWAP1 000005f3: REVERT 000005f4: JUMPDEST 000005f5: PUSH0 000005f6: DUP3 000005f7: GT 000005f8: DUP1 000005f9: ISZERO 000005fa: PUSH2 0x0604 000005fd: JUMPI 000005fe: POP 000005ff: PUSH2 0x2710 00000602: DUP3 00000603: LT 00000604: JUMPDEST 00000605: PUSH2 0x0643 00000608: JUMPI 00000609: PUSH1 0x40 0000060b: MLOAD 0000060c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000062d: DUP2 0000062e: MSTORE 0000062f: PUSH1 0x04 00000631: ADD 00000632: PUSH2 0x063a 00000635: SWAP1 00000636: PUSH2 0x1804 00000639: JUMP 0000063a: JUMPDEST 0000063b: PUSH1 0x40 0000063d: MLOAD 0000063e: DUP1 0000063f: SWAP2 00000640: SUB 00000641: SWAP1 00000642: REVERT 00000643: JUMPDEST 00000644: DUP1 00000645: CALLVALUE 00000646: LT 00000647: ISZERO 00000648: PUSH2 0x0686 0000064b: JUMPI 0000064c: PUSH1 0x40 0000064e: MLOAD 0000064f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000670: DUP2 00000671: MSTORE 00000672: PUSH1 0x04 00000674: ADD 00000675: PUSH2 0x067d 00000678: SWAP1 00000679: PUSH2 0x186c 0000067c: JUMP 0000067d: JUMPDEST 0000067e: PUSH1 0x40 00000680: MLOAD 00000681: DUP1 00000682: SWAP2 00000683: SUB 00000684: SWAP1 00000685: REVERT 00000686: JUMPDEST 00000687: PUSH0 00000688: DUP2 00000689: GT 0000068a: ISZERO 0000068b: PUSH2 0x06d3 0000068e: JUMPI 0000068f: COINBASE 00000690: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006a5: AND 000006a6: PUSH2 0x08fc 000006a9: DUP3 000006aa: SWAP1 000006ab: DUP2 000006ac: ISZERO 000006ad: MUL 000006ae: SWAP1 000006af: PUSH1 0x40 000006b1: MLOAD 000006b2: PUSH0 000006b3: PUSH1 0x40 000006b5: MLOAD 000006b6: DUP1 000006b7: DUP4 000006b8: SUB 000006b9: DUP2 000006ba: DUP6 000006bb: DUP9 000006bc: DUP9 000006bd: CALL 000006be: SWAP4 000006bf: POP 000006c0: POP 000006c1: POP 000006c2: POP 000006c3: ISZERO 000006c4: DUP1 000006c5: ISZERO 000006c6: PUSH2 0x06d1 000006c9: JUMPI 000006ca: RETURNDATASIZE 000006cb: PUSH0 000006cc: DUP1 000006cd: RETURNDATACOPY 000006ce: RETURNDATASIZE 000006cf: PUSH0 000006d0: REVERT 000006d1: JUMPDEST 000006d2: POP 000006d3: JUMPDEST 000006d4: PUSH0 000006d5: PUSH2 0x2710 000006d8: DUP4 000006d9: DUP4 000006da: CALLVALUE 000006db: PUSH2 0x06e4 000006de: SWAP2 000006df: SWAP1 000006e0: PUSH2 0x18b7 000006e3: JUMP 000006e4: JUMPDEST 000006e5: PUSH2 0x06ee 000006e8: SWAP2 000006e9: SWAP1 000006ea: PUSH2 0x18ea 000006ed: JUMP 000006ee: JUMPDEST 000006ef: PUSH2 0x06f8 000006f2: SWAP2 000006f3: SWAP1 000006f4: PUSH2 0x1958 000006f7: JUMP 000006f8: JUMPDEST 000006f9: SWAP1 000006fa: POP 000006fb: PUSH0 000006fc: DUP2 000006fd: DUP4 000006fe: CALLVALUE 000006ff: PUSH2 0x0708 00000702: SWAP2 00000703: SWAP1 00000704: PUSH2 0x18b7 00000707: JUMP 00000708: JUMPDEST 00000709: PUSH2 0x0712 0000070c: SWAP2 0000070d: SWAP1 0000070e: PUSH2 0x18b7 00000711: JUMP 00000712: JUMPDEST 00000713: SWAP1 00000714: POP 00000715: PUSH0 00000716: DUP2 00000717: GT 00000718: PUSH2 0x0756 0000071b: JUMPI 0000071c: PUSH1 0x40 0000071e: MLOAD 0000071f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000740: DUP2 00000741: MSTORE 00000742: PUSH1 0x04 00000744: ADD 00000745: PUSH2 0x074d 00000748: SWAP1 00000749: PUSH2 0x19d2 0000074c: JUMP 0000074d: JUMPDEST 0000074e: PUSH1 0x40 00000750: MLOAD 00000751: DUP1 00000752: SWAP2 00000753: SUB 00000754: SWAP1 00000755: REVERT 00000756: JUMPDEST 00000757: PUSH1 0x01 00000759: PUSH0 0000075a: SWAP1 0000075b: SLOAD 0000075c: SWAP1 0000075d: PUSH2 0x0100 00000760: EXP 00000761: SWAP1 00000762: DIV 00000763: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000778: AND 00000779: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000078e: AND 0000078f: PUSH4 0x7ff36ab5 00000794: DUP3 00000795: DUP9 00000796: DUP12 00000797: DUP12 00000798: CALLER 00000799: DUP12 0000079a: PUSH1 0x40 0000079c: MLOAD 0000079d: DUP8 0000079e: PUSH4 0xffffffff 000007a3: AND 000007a4: PUSH1 0xe0 000007a6: SHL 000007a7: DUP2 000007a8: MSTORE 000007a9: PUSH1 0x04 000007ab: ADD 000007ac: PUSH2 0x07b9 000007af: SWAP6 000007b0: SWAP5 000007b1: SWAP4 000007b2: SWAP3 000007b3: SWAP2 000007b4: SWAP1 000007b5: PUSH2 0x1c26 000007b8: JUMP 000007b9: JUMPDEST 000007ba: PUSH0 000007bb: PUSH1 0x40 000007bd: MLOAD 000007be: DUP1 000007bf: DUP4 000007c0: SUB 000007c1: DUP2 000007c2: DUP6 000007c3: DUP9 000007c4: GAS 000007c5: CALL 000007c6: ISZERO 000007c7: DUP1 000007c8: ISZERO 000007c9: PUSH2 0x07d4 000007cc: JUMPI 000007cd: RETURNDATASIZE 000007ce: PUSH0 000007cf: DUP1 000007d0: RETURNDATACOPY 000007d1: RETURNDATASIZE 000007d2: PUSH0 000007d3: REVERT 000007d4: JUMPDEST 000007d5: POP 000007d6: POP 000007d7: POP 000007d8: POP 000007d9: POP 000007da: PUSH1 0x40 000007dc: MLOAD 000007dd: RETURNDATASIZE 000007de: PUSH0 000007df: DUP3 000007e0: RETURNDATACOPY 000007e1: RETURNDATASIZE 000007e2: PUSH1 0x1f 000007e4: NOT 000007e5: PUSH1 0x1f 000007e7: DUP3 000007e8: ADD 000007e9: AND 000007ea: DUP3 000007eb: ADD 000007ec: DUP1 000007ed: PUSH1 0x40 000007ef: MSTORE 000007f0: POP 000007f1: DUP2 000007f2: ADD 000007f3: SWAP1 000007f4: PUSH2 0x07fd 000007f7: SWAP2 000007f8: SWAP1 000007f9: PUSH2 0x1daa 000007fc: JUMP 000007fd: JUMPDEST 000007fe: POP 000007ff: POP 00000800: POP 00000801: POP 00000802: POP 00000803: POP 00000804: POP 00000805: POP 00000806: POP 00000807: JUMP 00000808: JUMPDEST 00000809: PUSH0 0000080a: DUP2 0000080b: GT 0000080c: DUP1 0000080d: ISZERO 0000080e: PUSH2 0x0818 00000811: JUMPI 00000812: POP 00000813: PUSH2 0x2710 00000816: DUP2 00000817: LT 00000818: JUMPDEST 00000819: PUSH2 0x0857 0000081c: JUMPI 0000081d: PUSH1 0x40 0000081f: MLOAD 00000820: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000841: DUP2 00000842: MSTORE 00000843: PUSH1 0x04 00000845: ADD 00000846: PUSH2 0x084e 00000849: SWAP1 0000084a: PUSH2 0x1804 0000084d: JUMP 0000084e: JUMPDEST 0000084f: PUSH1 0x40 00000851: MLOAD 00000852: DUP1 00000853: SWAP2 00000854: SUB 00000855: SWAP1 00000856: REVERT 00000857: JUMPDEST 00000858: PUSH0 00000859: SELFBALANCE 0000085a: SWAP1 0000085b: POP 0000085c: PUSH0 0000085d: DUP8 0000085e: DUP6 0000085f: DUP9 00000860: DUP9 00000861: ADDRESS 00000862: DUP9 00000863: PUSH1 0x40 00000865: MLOAD 00000866: PUSH1 0x24 00000868: ADD 00000869: PUSH2 0x0877 0000086c: SWAP7 0000086d: SWAP6 0000086e: SWAP5 0000086f: SWAP4 00000870: SWAP3 00000871: SWAP2 00000872: SWAP1 00000873: PUSH2 0x1df1 00000876: JUMP 00000877: JUMPDEST 00000878: PUSH1 0x40 0000087a: MLOAD 0000087b: PUSH1 0x20 0000087d: DUP2 0000087e: DUP4 0000087f: SUB 00000880: SUB 00000881: DUP2 00000882: MSTORE 00000883: SWAP1 00000884: PUSH1 0x40 00000886: MSTORE 00000887: PUSH32 0x791ac94700000000000000000000000000000000000000000000000000000000 000008a8: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000008c5: NOT 000008c6: AND 000008c7: PUSH1 0x20 000008c9: DUP3 000008ca: ADD 000008cb: DUP1 000008cc: MLOAD 000008cd: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000008ea: DUP4 000008eb: DUP2 000008ec: DUP4 000008ed: AND 000008ee: OR 000008ef: DUP4 000008f0: MSTORE 000008f1: POP 000008f2: POP 000008f3: POP 000008f4: POP 000008f5: SWAP1 000008f6: POP 000008f7: PUSH2 0x0921 000008fa: PUSH1 0x01 000008fc: PUSH0 000008fd: SWAP1 000008fe: SLOAD 000008ff: SWAP1 00000900: PUSH2 0x0100 00000903: EXP 00000904: SWAP1 00000905: DIV 00000906: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000091b: AND 0000091c: DUP3 0000091d: PUSH2 0x115d 00000920: JUMP 00000921: JUMPDEST 00000922: POP 00000923: PUSH0 00000924: DUP3 00000925: SELFBALANCE 00000926: PUSH2 0x092f 00000929: SWAP2 0000092a: SWAP1 0000092b: PUSH2 0x18b7 0000092e: JUMP 0000092f: JUMPDEST 00000930: SWAP1 00000931: POP 00000932: PUSH0 00000933: PUSH2 0x2710 00000936: DUP6 00000937: DUP4 00000938: PUSH2 0x0941 0000093b: SWAP2 0000093c: SWAP1 0000093d: PUSH2 0x18ea 00000940: JUMP 00000941: JUMPDEST 00000942: PUSH2 0x094b 00000945: SWAP2 00000946: SWAP1 00000947: PUSH2 0x1958 0000094a: JUMP 0000094b: JUMPDEST 0000094c: SWAP1 0000094d: POP 0000094e: PUSH0 0000094f: DUP2 00000950: DUP4 00000951: PUSH2 0x095a 00000954: SWAP2 00000955: SWAP1 00000956: PUSH2 0x18b7 00000959: JUMP 0000095a: JUMPDEST 0000095b: SWAP1 0000095c: POP 0000095d: PUSH0 0000095e: CALLER 0000095f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000974: AND 00000975: DUP3 00000976: PUSH1 0x40 00000978: MLOAD 00000979: PUSH2 0x0981 0000097c: SWAP1 0000097d: PUSH2 0x1e78 00000980: JUMP 00000981: JUMPDEST 00000982: PUSH0 00000983: PUSH1 0x40 00000985: MLOAD 00000986: DUP1 00000987: DUP4 00000988: SUB 00000989: DUP2 0000098a: DUP6 0000098b: DUP8 0000098c: GAS 0000098d: CALL 0000098e: SWAP3 0000098f: POP 00000990: POP 00000991: POP 00000992: RETURNDATASIZE 00000993: DUP1 00000994: PUSH0 00000995: DUP2 00000996: EQ 00000997: PUSH2 0x09bb 0000099a: JUMPI 0000099b: PUSH1 0x40 0000099d: MLOAD 0000099e: SWAP2 0000099f: POP 000009a0: PUSH1 0x1f 000009a2: NOT 000009a3: PUSH1 0x3f 000009a5: RETURNDATASIZE 000009a6: ADD 000009a7: AND 000009a8: DUP3 000009a9: ADD 000009aa: PUSH1 0x40 000009ac: MSTORE 000009ad: RETURNDATASIZE 000009ae: DUP3 000009af: MSTORE 000009b0: RETURNDATASIZE 000009b1: PUSH0 000009b2: PUSH1 0x20 000009b4: DUP5 000009b5: ADD 000009b6: RETURNDATACOPY 000009b7: PUSH2 0x09c0 000009ba: JUMP 000009bb: JUMPDEST 000009bc: PUSH1 0x60 000009be: SWAP2 000009bf: POP 000009c0: JUMPDEST 000009c1: POP 000009c2: POP 000009c3: SWAP1 000009c4: POP 000009c5: DUP1 000009c6: PUSH2 0x0a04 000009c9: JUMPI 000009ca: PUSH1 0x40 000009cc: MLOAD 000009cd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000009ee: DUP2 000009ef: MSTORE 000009f0: PUSH1 0x04 000009f2: ADD 000009f3: PUSH2 0x09fb 000009f6: SWAP1 000009f7: PUSH2 0x1ed6 000009fa: JUMP 000009fb: JUMPDEST 000009fc: PUSH1 0x40 000009fe: MLOAD 000009ff: DUP1 00000a00: SWAP2 00000a01: SUB 00000a02: SWAP1 00000a03: REVERT 00000a04: JUMPDEST 00000a05: POP 00000a06: POP 00000a07: POP 00000a08: POP 00000a09: POP 00000a0a: POP 00000a0b: POP 00000a0c: POP 00000a0d: POP 00000a0e: POP 00000a0f: POP 00000a10: POP 00000a11: JUMP 00000a12: JUMPDEST 00000a13: PUSH0 00000a14: DUP2 00000a15: GT 00000a16: DUP1 00000a17: ISZERO 00000a18: PUSH2 0x0a22 00000a1b: JUMPI 00000a1c: POP 00000a1d: PUSH2 0x2710 00000a20: DUP2 00000a21: LT 00000a22: JUMPDEST 00000a23: PUSH2 0x0a61 00000a26: JUMPI 00000a27: PUSH1 0x40 00000a29: MLOAD 00000a2a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000a4b: DUP2 00000a4c: MSTORE 00000a4d: PUSH1 0x04 00000a4f: ADD 00000a50: PUSH2 0x0a58 00000a53: SWAP1 00000a54: PUSH2 0x1804 00000a57: JUMP 00000a58: JUMPDEST 00000a59: PUSH1 0x40 00000a5b: MLOAD 00000a5c: DUP1 00000a5d: SWAP2 00000a5e: SUB 00000a5f: SWAP1 00000a60: REVERT 00000a61: JUMPDEST 00000a62: PUSH0 00000a63: DUP6 00000a64: SWAP1 00000a65: POP 00000a66: DUP1 00000a67: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a7c: AND 00000a7d: PUSH4 0x23b872dd 00000a82: CALLER 00000a83: ADDRESS 00000a84: DUP9 00000a85: PUSH1 0x40 00000a87: MLOAD 00000a88: DUP5 00000a89: PUSH4 0xffffffff 00000a8e: AND 00000a8f: PUSH1 0xe0 00000a91: SHL 00000a92: DUP2 00000a93: MSTORE 00000a94: PUSH1 0x04 00000a96: ADD 00000a97: PUSH2 0x0aa2 00000a9a: SWAP4 00000a9b: SWAP3 00000a9c: SWAP2 00000a9d: SWAP1 00000a9e: PUSH2 0x1ef4 00000aa1: JUMP 00000aa2: JUMPDEST 00000aa3: PUSH1 0x20 00000aa5: PUSH1 0x40 00000aa7: MLOAD 00000aa8: DUP1 00000aa9: DUP4 00000aaa: SUB 00000aab: DUP2 00000aac: PUSH0 00000aad: DUP8 00000aae: GAS 00000aaf: CALL 00000ab0: ISZERO 00000ab1: DUP1 00000ab2: ISZERO 00000ab3: PUSH2 0x0abe 00000ab6: JUMPI 00000ab7: RETURNDATASIZE 00000ab8: PUSH0 00000ab9: DUP1 00000aba: RETURNDATACOPY 00000abb: RETURNDATASIZE 00000abc: PUSH0 00000abd: REVERT 00000abe: JUMPDEST 00000abf: POP 00000ac0: POP 00000ac1: POP 00000ac2: POP 00000ac3: PUSH1 0x40 00000ac5: MLOAD 00000ac6: RETURNDATASIZE 00000ac7: PUSH1 0x1f 00000ac9: NOT 00000aca: PUSH1 0x1f 00000acc: DUP3 00000acd: ADD 00000ace: AND 00000acf: DUP3 00000ad0: ADD 00000ad1: DUP1 00000ad2: PUSH1 0x40 00000ad4: MSTORE 00000ad5: POP 00000ad6: DUP2 00000ad7: ADD 00000ad8: SWAP1 00000ad9: PUSH2 0x0ae2 00000adc: SWAP2 00000add: SWAP1 00000ade: PUSH2 0x1f5e 00000ae1: JUMP 00000ae2: JUMPDEST 00000ae3: PUSH2 0x0b21 00000ae6: JUMPI 00000ae7: PUSH1 0x40 00000ae9: MLOAD 00000aea: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000b0b: DUP2 00000b0c: MSTORE 00000b0d: PUSH1 0x04 00000b0f: ADD 00000b10: PUSH2 0x0b18 00000b13: SWAP1 00000b14: PUSH2 0x1fd3 00000b17: JUMP 00000b18: JUMPDEST 00000b19: PUSH1 0x40 00000b1b: MLOAD 00000b1c: DUP1 00000b1d: SWAP2 00000b1e: SUB 00000b1f: SWAP1 00000b20: REVERT 00000b21: JUMPDEST 00000b22: PUSH0 00000b23: DUP2 00000b24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b39: AND 00000b3a: PUSH4 0xdd62ed3e 00000b3f: ADDRESS 00000b40: PUSH1 0x02 00000b42: PUSH0 00000b43: SWAP1 00000b44: SLOAD 00000b45: SWAP1 00000b46: PUSH2 0x0100 00000b49: EXP 00000b4a: SWAP1 00000b4b: DIV 00000b4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b61: AND 00000b62: PUSH1 0x40 00000b64: MLOAD 00000b65: DUP4 00000b66: PUSH4 0xffffffff 00000b6b: AND 00000b6c: PUSH1 0xe0 00000b6e: SHL 00000b6f: DUP2 00000b70: MSTORE 00000b71: PUSH1 0x04 00000b73: ADD 00000b74: PUSH2 0x0b7e 00000b77: SWAP3 00000b78: SWAP2 00000b79: SWAP1 00000b7a: PUSH2 0x1ff1 00000b7d: JUMP 00000b7e: JUMPDEST 00000b7f: PUSH1 0x20 00000b81: PUSH1 0x40 00000b83: MLOAD 00000b84: DUP1 00000b85: DUP4 00000b86: SUB 00000b87: DUP2 00000b88: DUP7 00000b89: GAS 00000b8a: STATICCALL 00000b8b: ISZERO 00000b8c: DUP1 00000b8d: ISZERO 00000b8e: PUSH2 0x0b99 00000b91: JUMPI 00000b92: RETURNDATASIZE 00000b93: PUSH0 00000b94: DUP1 00000b95: RETURNDATACOPY 00000b96: RETURNDATASIZE 00000b97: PUSH0 00000b98: REVERT 00000b99: JUMPDEST 00000b9a: POP 00000b9b: POP 00000b9c: POP 00000b9d: POP 00000b9e: PUSH1 0x40 00000ba0: MLOAD 00000ba1: RETURNDATASIZE 00000ba2: PUSH1 0x1f 00000ba4: NOT 00000ba5: PUSH1 0x1f 00000ba7: DUP3 00000ba8: ADD 00000ba9: AND 00000baa: DUP3 00000bab: ADD 00000bac: DUP1 00000bad: PUSH1 0x40 00000baf: MSTORE 00000bb0: POP 00000bb1: DUP2 00000bb2: ADD 00000bb3: SWAP1 00000bb4: PUSH2 0x0bbd 00000bb7: SWAP2 00000bb8: SWAP1 00000bb9: PUSH2 0x1b3f 00000bbc: JUMP 00000bbd: JUMPDEST 00000bbe: SWAP1 00000bbf: POP 00000bc0: DUP6 00000bc1: DUP2 00000bc2: LT 00000bc3: ISZERO 00000bc4: PUSH2 0x0c85 00000bc7: JUMPI 00000bc8: DUP2 00000bc9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bde: AND 00000bdf: PUSH4 0x095ea7b3 00000be4: PUSH1 0x02 00000be6: PUSH0 00000be7: SWAP1 00000be8: SLOAD 00000be9: SWAP1 00000bea: PUSH2 0x0100 00000bed: EXP 00000bee: SWAP1 00000bef: DIV 00000bf0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c05: AND 00000c06: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000c27: PUSH1 0x40 00000c29: MLOAD 00000c2a: DUP4 00000c2b: PUSH4 0xffffffff 00000c30: AND 00000c31: PUSH1 0xe0 00000c33: SHL 00000c34: DUP2 00000c35: MSTORE 00000c36: PUSH1 0x04 00000c38: ADD 00000c39: PUSH2 0x0c43 00000c3c: SWAP3 00000c3d: SWAP2 00000c3e: SWAP1 00000c3f: PUSH2 0x2018 00000c42: JUMP 00000c43: JUMPDEST 00000c44: PUSH1 0x20 00000c46: PUSH1 0x40 00000c48: MLOAD 00000c49: DUP1 00000c4a: DUP4 00000c4b: SUB 00000c4c: DUP2 00000c4d: PUSH0 00000c4e: DUP8 00000c4f: GAS 00000c50: CALL 00000c51: ISZERO 00000c52: DUP1 00000c53: ISZERO 00000c54: PUSH2 0x0c5f 00000c57: JUMPI 00000c58: RETURNDATASIZE 00000c59: PUSH0 00000c5a: DUP1 00000c5b: RETURNDATACOPY 00000c5c: RETURNDATASIZE 00000c5d: PUSH0 00000c5e: REVERT 00000c5f: JUMPDEST 00000c60: POP 00000c61: POP 00000c62: POP 00000c63: POP 00000c64: PUSH1 0x40 00000c66: MLOAD 00000c67: RETURNDATASIZE 00000c68: PUSH1 0x1f 00000c6a: NOT 00000c6b: PUSH1 0x1f 00000c6d: DUP3 00000c6e: ADD 00000c6f: AND 00000c70: DUP3 00000c71: ADD 00000c72: DUP1 00000c73: PUSH1 0x40 00000c75: MSTORE 00000c76: POP 00000c77: DUP2 00000c78: ADD 00000c79: SWAP1 00000c7a: PUSH2 0x0c83 00000c7d: SWAP2 00000c7e: SWAP1 00000c7f: PUSH2 0x1f5e 00000c82: JUMP 00000c83: JUMPDEST 00000c84: POP 00000c85: JUMPDEST 00000c86: PUSH0 00000c87: PUSH1 0x40 00000c89: MLOAD 00000c8a: DUP1 00000c8b: PUSH1 0xa0 00000c8d: ADD 00000c8e: PUSH1 0x40 00000c90: MSTORE 00000c91: DUP1 00000c92: DUP12 00000c93: DUP12 00000c94: DUP1 00000c95: DUP1 00000c96: PUSH1 0x1f 00000c98: ADD 00000c99: PUSH1 0x20 00000c9b: DUP1 00000c9c: SWAP2 00000c9d: DIV 00000c9e: MUL 00000c9f: PUSH1 0x20 00000ca1: ADD 00000ca2: PUSH1 0x40 00000ca4: MLOAD 00000ca5: SWAP1 00000ca6: DUP2 00000ca7: ADD 00000ca8: PUSH1 0x40 00000caa: MSTORE 00000cab: DUP1 00000cac: SWAP4 00000cad: SWAP3 00000cae: SWAP2 00000caf: SWAP1 00000cb0: DUP2 00000cb1: DUP2 00000cb2: MSTORE 00000cb3: PUSH1 0x20 00000cb5: ADD 00000cb6: DUP4 00000cb7: DUP4 00000cb8: DUP1 00000cb9: DUP3 00000cba: DUP5 00000cbb: CALLDATACOPY 00000cbc: PUSH0 00000cbd: DUP2 00000cbe: DUP5 00000cbf: ADD 00000cc0: MSTORE 00000cc1: PUSH1 0x1f 00000cc3: NOT 00000cc4: PUSH1 0x1f 00000cc6: DUP3 00000cc7: ADD 00000cc8: AND 00000cc9: SWAP1 00000cca: POP 00000ccb: DUP1 00000ccc: DUP4 00000ccd: ADD 00000cce: SWAP3 00000ccf: POP 00000cd0: POP 00000cd1: POP 00000cd2: POP 00000cd3: POP 00000cd4: POP 00000cd5: POP 00000cd6: DUP2 00000cd7: MSTORE 00000cd8: PUSH1 0x20 00000cda: ADD 00000cdb: ADDRESS 00000cdc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cf1: AND 00000cf2: DUP2 00000cf3: MSTORE 00000cf4: PUSH1 0x20 00000cf6: ADD 00000cf7: DUP7 00000cf8: DUP2 00000cf9: MSTORE 00000cfa: PUSH1 0x20 00000cfc: ADD 00000cfd: DUP9 00000cfe: DUP2 00000cff: MSTORE 00000d00: PUSH1 0x20 00000d02: ADD 00000d03: DUP8 00000d04: DUP2 00000d05: MSTORE 00000d06: POP 00000d07: SWAP1 00000d08: POP 00000d09: PUSH0 00000d0a: PUSH1 0x02 00000d0c: PUSH0 00000d0d: SWAP1 00000d0e: SLOAD 00000d0f: SWAP1 00000d10: PUSH2 0x0100 00000d13: EXP 00000d14: SWAP1 00000d15: DIV 00000d16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d2b: AND 00000d2c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d41: AND 00000d42: PUSH4 0xc04b8d59 00000d47: DUP4 00000d48: PUSH1 0x40 00000d4a: MLOAD 00000d4b: DUP3 00000d4c: PUSH4 0xffffffff 00000d51: AND 00000d52: PUSH1 0xe0 00000d54: SHL 00000d55: DUP2 00000d56: MSTORE 00000d57: PUSH1 0x04 00000d59: ADD 00000d5a: PUSH2 0x0d63 00000d5d: SWAP2 00000d5e: SWAP1 00000d5f: PUSH2 0x1b0b 00000d62: JUMP 00000d63: JUMPDEST 00000d64: PUSH1 0x20 00000d66: PUSH1 0x40 00000d68: MLOAD 00000d69: DUP1 00000d6a: DUP4 00000d6b: SUB 00000d6c: DUP2 00000d6d: PUSH0 00000d6e: DUP8 00000d6f: GAS 00000d70: CALL 00000d71: ISZERO 00000d72: DUP1 00000d73: ISZERO 00000d74: PUSH2 0x0d7f 00000d77: JUMPI 00000d78: RETURNDATASIZE 00000d79: PUSH0 00000d7a: DUP1 00000d7b: RETURNDATACOPY 00000d7c: RETURNDATASIZE 00000d7d: PUSH0 00000d7e: REVERT 00000d7f: JUMPDEST 00000d80: POP 00000d81: POP 00000d82: POP 00000d83: POP 00000d84: PUSH1 0x40 00000d86: MLOAD 00000d87: RETURNDATASIZE 00000d88: PUSH1 0x1f 00000d8a: NOT 00000d8b: PUSH1 0x1f 00000d8d: DUP3 00000d8e: ADD 00000d8f: AND 00000d90: DUP3 00000d91: ADD 00000d92: DUP1 00000d93: PUSH1 0x40 00000d95: MSTORE 00000d96: POP 00000d97: DUP2 00000d98: ADD 00000d99: SWAP1 00000d9a: PUSH2 0x0da3 00000d9d: SWAP2 00000d9e: SWAP1 00000d9f: PUSH2 0x1b3f 00000da2: JUMP 00000da3: JUMPDEST 00000da4: SWAP1 00000da5: POP 00000da6: PUSH1 0x03 00000da8: PUSH0 00000da9: SWAP1 00000daa: SLOAD 00000dab: SWAP1 00000dac: PUSH2 0x0100 00000daf: EXP 00000db0: SWAP1 00000db1: DIV 00000db2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dc7: AND 00000dc8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ddd: AND 00000dde: PUSH4 0x2e1a7d4d 00000de3: DUP3 00000de4: PUSH1 0x40 00000de6: MLOAD 00000de7: DUP3 00000de8: PUSH4 0xffffffff 00000ded: AND 00000dee: PUSH1 0xe0 00000df0: SHL 00000df1: DUP2 00000df2: MSTORE 00000df3: PUSH1 0x04 00000df5: ADD 00000df6: PUSH2 0x0dff 00000df9: SWAP2 00000dfa: SWAP1 00000dfb: PUSH2 0x203f 00000dfe: JUMP 00000dff: JUMPDEST 00000e00: PUSH0 00000e01: PUSH1 0x40 00000e03: MLOAD 00000e04: DUP1 00000e05: DUP4 00000e06: SUB 00000e07: DUP2 00000e08: PUSH0 00000e09: DUP8 00000e0a: DUP1 00000e0b: EXTCODESIZE 00000e0c: ISZERO 00000e0d: DUP1 00000e0e: ISZERO 00000e0f: PUSH2 0x0e16 00000e12: JUMPI 00000e13: PUSH0 00000e14: DUP1 00000e15: REVERT 00000e16: JUMPDEST 00000e17: POP 00000e18: GAS 00000e19: CALL 00000e1a: ISZERO 00000e1b: DUP1 00000e1c: ISZERO 00000e1d: PUSH2 0x0e28 00000e20: JUMPI 00000e21: RETURNDATASIZE 00000e22: PUSH0 00000e23: DUP1 00000e24: RETURNDATACOPY 00000e25: RETURNDATASIZE 00000e26: PUSH0 00000e27: REVERT 00000e28: JUMPDEST 00000e29: POP 00000e2a: POP 00000e2b: POP 00000e2c: POP 00000e2d: PUSH0 00000e2e: PUSH2 0x2710 00000e31: DUP7 00000e32: DUP4 00000e33: PUSH2 0x0e3c 00000e36: SWAP2 00000e37: SWAP1 00000e38: PUSH2 0x18ea 00000e3b: JUMP 00000e3c: JUMPDEST 00000e3d: PUSH2 0x0e46 00000e40: SWAP2 00000e41: SWAP1 00000e42: PUSH2 0x1958 00000e45: JUMP 00000e46: JUMPDEST 00000e47: SWAP1 00000e48: POP 00000e49: PUSH0 00000e4a: DUP2 00000e4b: DUP4 00000e4c: PUSH2 0x0e55 00000e4f: SWAP2 00000e50: SWAP1 00000e51: PUSH2 0x18b7 00000e54: JUMP 00000e55: JUMPDEST 00000e56: SWAP1 00000e57: POP 00000e58: PUSH0 00000e59: CALLER 00000e5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e6f: AND 00000e70: DUP3 00000e71: PUSH1 0x40 00000e73: MLOAD 00000e74: PUSH2 0x0e7c 00000e77: SWAP1 00000e78: PUSH2 0x1e78 00000e7b: JUMP 00000e7c: JUMPDEST 00000e7d: PUSH0 00000e7e: PUSH1 0x40 00000e80: MLOAD 00000e81: DUP1 00000e82: DUP4 00000e83: SUB 00000e84: DUP2 00000e85: DUP6 00000e86: DUP8 00000e87: GAS 00000e88: CALL 00000e89: SWAP3 00000e8a: POP 00000e8b: POP 00000e8c: POP 00000e8d: RETURNDATASIZE 00000e8e: DUP1 00000e8f: PUSH0 00000e90: DUP2 00000e91: EQ 00000e92: PUSH2 0x0eb6 00000e95: JUMPI 00000e96: PUSH1 0x40 00000e98: MLOAD 00000e99: SWAP2 00000e9a: POP 00000e9b: PUSH1 0x1f 00000e9d: NOT 00000e9e: PUSH1 0x3f 00000ea0: RETURNDATASIZE 00000ea1: ADD 00000ea2: AND 00000ea3: DUP3 00000ea4: ADD 00000ea5: PUSH1 0x40 00000ea7: MSTORE 00000ea8: RETURNDATASIZE 00000ea9: DUP3 00000eaa: MSTORE 00000eab: RETURNDATASIZE 00000eac: PUSH0 00000ead: PUSH1 0x20 00000eaf: DUP5 00000eb0: ADD 00000eb1: RETURNDATACOPY 00000eb2: PUSH2 0x0ebb 00000eb5: JUMP 00000eb6: JUMPDEST 00000eb7: PUSH1 0x60 00000eb9: SWAP2 00000eba: POP 00000ebb: JUMPDEST 00000ebc: POP 00000ebd: POP 00000ebe: SWAP1 00000ebf: POP 00000ec0: DUP1 00000ec1: PUSH2 0x0eff 00000ec4: JUMPI 00000ec5: PUSH1 0x40 00000ec7: MLOAD 00000ec8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ee9: DUP2 00000eea: MSTORE 00000eeb: PUSH1 0x04 00000eed: ADD 00000eee: PUSH2 0x0ef6 00000ef1: SWAP1 00000ef2: PUSH2 0x1ed6 00000ef5: JUMP 00000ef6: JUMPDEST 00000ef7: PUSH1 0x40 00000ef9: MLOAD 00000efa: DUP1 00000efb: SWAP2 00000efc: SUB 00000efd: SWAP1 00000efe: REVERT 00000eff: JUMPDEST 00000f00: POP 00000f01: POP 00000f02: POP 00000f03: POP 00000f04: POP 00000f05: POP 00000f06: POP 00000f07: POP 00000f08: POP 00000f09: POP 00000f0a: POP 00000f0b: POP 00000f0c: POP 00000f0d: POP 00000f0e: JUMP 00000f0f: JUMPDEST 00000f10: PUSH0 00000f11: DUP1 00000f12: SLOAD 00000f13: SWAP1 00000f14: PUSH2 0x0100 00000f17: EXP 00000f18: SWAP1 00000f19: DIV 00000f1a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f2f: AND 00000f30: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f45: AND 00000f46: CALLER 00000f47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f5c: AND 00000f5d: EQ 00000f5e: PUSH2 0x0f9c 00000f61: JUMPI 00000f62: PUSH1 0x40 00000f64: MLOAD 00000f65: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f86: DUP2 00000f87: MSTORE 00000f88: PUSH1 0x04 00000f8a: ADD 00000f8b: PUSH2 0x0f93 00000f8e: SWAP1 00000f8f: PUSH2 0x20c8 00000f92: JUMP 00000f93: JUMPDEST 00000f94: PUSH1 0x40 00000f96: MLOAD 00000f97: DUP1 00000f98: SWAP2 00000f99: SUB 00000f9a: SWAP1 00000f9b: REVERT 00000f9c: JUMPDEST 00000f9d: PUSH0 00000f9e: SELFBALANCE 00000f9f: SWAP1 00000fa0: POP 00000fa1: PUSH0 00000fa2: DUP2 00000fa3: GT 00000fa4: PUSH2 0x0fe2 00000fa7: JUMPI 00000fa8: PUSH1 0x40 00000faa: MLOAD 00000fab: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000fcc: DUP2 00000fcd: MSTORE 00000fce: PUSH1 0x04 00000fd0: ADD 00000fd1: PUSH2 0x0fd9 00000fd4: SWAP1 00000fd5: PUSH2 0x2130 00000fd8: JUMP 00000fd9: JUMPDEST 00000fda: PUSH1 0x40 00000fdc: MLOAD 00000fdd: DUP1 00000fde: SWAP2 00000fdf: SUB 00000fe0: SWAP1 00000fe1: REVERT 00000fe2: JUMPDEST 00000fe3: PUSH0 00000fe4: CALLER 00000fe5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ffa: AND 00000ffb: DUP3 00000ffc: PUSH1 0x40 00000ffe: MLOAD 00000fff: PUSH2 0x1007 00001002: SWAP1 00001003: PUSH2 0x1e78 00001006: JUMP 00001007: JUMPDEST 00001008: PUSH0 00001009: PUSH1 0x40 0000100b: MLOAD 0000100c: DUP1 0000100d: DUP4 0000100e: SUB 0000100f: DUP2 00001010: DUP6 00001011: DUP8 00001012: GAS 00001013: CALL 00001014: SWAP3 00001015: POP 00001016: POP 00001017: POP 00001018: RETURNDATASIZE 00001019: DUP1 0000101a: PUSH0 0000101b: DUP2 0000101c: EQ 0000101d: PUSH2 0x1041 00001020: JUMPI 00001021: PUSH1 0x40 00001023: MLOAD 00001024: SWAP2 00001025: POP 00001026: PUSH1 0x1f 00001028: NOT 00001029: PUSH1 0x3f 0000102b: RETURNDATASIZE 0000102c: ADD 0000102d: AND 0000102e: DUP3 0000102f: ADD 00001030: PUSH1 0x40 00001032: MSTORE 00001033: RETURNDATASIZE 00001034: DUP3 00001035: MSTORE 00001036: RETURNDATASIZE 00001037: PUSH0 00001038: PUSH1 0x20 0000103a: DUP5 0000103b: ADD 0000103c: RETURNDATACOPY 0000103d: PUSH2 0x1046 00001040: JUMP 00001041: JUMPDEST 00001042: PUSH1 0x60 00001044: SWAP2 00001045: POP 00001046: JUMPDEST 00001047: POP 00001048: POP 00001049: SWAP1 0000104a: POP 0000104b: DUP1 0000104c: PUSH2 0x108a 0000104f: JUMPI 00001050: PUSH1 0x40 00001052: MLOAD 00001053: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001074: DUP2 00001075: MSTORE 00001076: PUSH1 0x04 00001078: ADD 00001079: PUSH2 0x1081 0000107c: SWAP1 0000107d: PUSH2 0x2198 00001080: JUMP 00001081: JUMPDEST 00001082: PUSH1 0x40 00001084: MLOAD 00001085: DUP1 00001086: SWAP2 00001087: SUB 00001088: SWAP1 00001089: REVERT 0000108a: JUMPDEST 0000108b: POP 0000108c: POP 0000108d: JUMP 0000108e: JUMPDEST 0000108f: PUSH0 00001090: DUP1 00001091: SLOAD 00001092: SWAP1 00001093: PUSH2 0x0100 00001096: EXP 00001097: SWAP1 00001098: DIV 00001099: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010ae: AND 000010af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010c4: AND 000010c5: CALLER 000010c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010db: AND 000010dc: EQ 000010dd: PUSH2 0x111b 000010e0: JUMPI 000010e1: PUSH1 0x40 000010e3: MLOAD 000010e4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001105: DUP2 00001106: MSTORE 00001107: PUSH1 0x04 00001109: ADD 0000110a: PUSH2 0x1112 0000110d: SWAP1 0000110e: PUSH2 0x20c8 00001111: JUMP 00001112: JUMPDEST 00001113: PUSH1 0x40 00001115: MLOAD 00001116: DUP1 00001117: SWAP2 00001118: SUB 00001119: SWAP1 0000111a: REVERT 0000111b: JUMPDEST 0000111c: DUP1 0000111d: PUSH0 0000111e: DUP1 0000111f: PUSH2 0x0100 00001122: EXP 00001123: DUP2 00001124: SLOAD 00001125: DUP2 00001126: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000113b: MUL 0000113c: NOT 0000113d: AND 0000113e: SWAP1 0000113f: DUP4 00001140: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001155: AND 00001156: MUL 00001157: OR 00001158: SWAP1 00001159: SSTORE 0000115a: POP 0000115b: POP 0000115c: JUMP 0000115d: JUMPDEST 0000115e: PUSH1 0x60 00001160: PUSH0 00001161: DUP1 00001162: DUP5 00001163: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001178: AND 00001179: DUP5 0000117a: PUSH1 0x40 0000117c: MLOAD 0000117d: PUSH2 0x1186 00001180: SWAP2 00001181: SWAP1 00001182: PUSH2 0x21e6 00001185: JUMP 00001186: JUMPDEST 00001187: PUSH0 00001188: PUSH1 0x40 0000118a: MLOAD 0000118b: DUP1 0000118c: DUP4 0000118d: SUB 0000118e: DUP2 0000118f: DUP6 00001190: GAS 00001191: DELEGATECALL 00001192: SWAP2 00001193: POP 00001194: POP 00001195: RETURNDATASIZE 00001196: DUP1 00001197: PUSH0 00001198: DUP2 00001199: EQ 0000119a: PUSH2 0x11be 0000119d: JUMPI 0000119e: PUSH1 0x40 000011a0: MLOAD 000011a1: SWAP2 000011a2: POP 000011a3: PUSH1 0x1f 000011a5: NOT 000011a6: PUSH1 0x3f 000011a8: RETURNDATASIZE 000011a9: ADD 000011aa: AND 000011ab: DUP3 000011ac: ADD 000011ad: PUSH1 0x40 000011af: MSTORE 000011b0: RETURNDATASIZE 000011b1: DUP3 000011b2: MSTORE 000011b3: RETURNDATASIZE 000011b4: PUSH0 000011b5: PUSH1 0x20 000011b7: DUP5 000011b8: ADD 000011b9: RETURNDATACOPY 000011ba: PUSH2 0x11c3 000011bd: JUMP 000011be: JUMPDEST 000011bf: PUSH1 0x60 000011c1: SWAP2 000011c2: POP 000011c3: JUMPDEST 000011c4: POP 000011c5: SWAP2 000011c6: POP 000011c7: SWAP2 000011c8: POP 000011c9: DUP2 000011ca: PUSH2 0x1218 000011cd: JUMPI 000011ce: PUSH0 000011cf: DUP2 000011d0: MLOAD 000011d1: SUB 000011d2: PUSH2 0x1210 000011d5: JUMPI 000011d6: PUSH1 0x40 000011d8: MLOAD 000011d9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000011fa: DUP2 000011fb: MSTORE 000011fc: PUSH1 0x04 000011fe: ADD 000011ff: PUSH2 0x1207 00001202: SWAP1 00001203: PUSH2 0x2246 00001206: JUMP 00001207: JUMPDEST 00001208: PUSH1 0x40 0000120a: MLOAD 0000120b: DUP1 0000120c: SWAP2 0000120d: SUB 0000120e: SWAP1 0000120f: REVERT 00001210: JUMPDEST 00001211: DUP1 00001212: MLOAD 00001213: DUP2 00001214: PUSH1 0x20 00001216: ADD 00001217: REVERT 00001218: JUMPDEST 00001219: DUP1 0000121a: SWAP3 0000121b: POP 0000121c: POP 0000121d: POP 0000121e: SWAP3 0000121f: SWAP2 00001220: POP 00001221: POP 00001222: JUMP 00001223: JUMPDEST 00001224: PUSH0 00001225: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000123a: DUP3 0000123b: AND 0000123c: SWAP1 0000123d: POP 0000123e: SWAP2 0000123f: SWAP1 00001240: POP 00001241: JUMP 00001242: JUMPDEST 00001243: PUSH0 00001244: DUP2 00001245: SWAP1 00001246: POP 00001247: SWAP2 00001248: SWAP1 00001249: POP 0000124a: JUMP 0000124b: JUMPDEST 0000124c: PUSH0 0000124d: PUSH2 0x1265 00001250: PUSH2 0x1260 00001253: PUSH2 0x125b 00001256: DUP5 00001257: PUSH2 0x1223 0000125a: JUMP 0000125b: JUMPDEST 0000125c: PUSH2 0x1242 0000125f: JUMP 00001260: JUMPDEST 00001261: PUSH2 0x1223 00001264: JUMP 00001265: JUMPDEST 00001266: SWAP1 00001267: POP 00001268: SWAP2 00001269: SWAP1 0000126a: POP 0000126b: JUMP 0000126c: JUMPDEST 0000126d: PUSH0 0000126e: PUSH2 0x1276 00001271: DUP3 00001272: PUSH2 0x124b 00001275: JUMP 00001276: JUMPDEST 00001277: SWAP1 00001278: POP 00001279: SWAP2 0000127a: SWAP1 0000127b: POP 0000127c: JUMP 0000127d: JUMPDEST 0000127e: PUSH0 0000127f: PUSH2 0x1287 00001282: DUP3 00001283: PUSH2 0x126c 00001286: JUMP 00001287: JUMPDEST 00001288: SWAP1 00001289: POP 0000128a: SWAP2 0000128b: SWAP1 0000128c: POP 0000128d: JUMP 0000128e: JUMPDEST 0000128f: PUSH2 0x1297 00001292: DUP2 00001293: PUSH2 0x127d 00001296: JUMP 00001297: JUMPDEST 00001298: DUP3 00001299: MSTORE 0000129a: POP 0000129b: POP 0000129c: JUMP 0000129d: JUMPDEST 0000129e: PUSH0 0000129f: PUSH1 0x20 000012a1: DUP3 000012a2: ADD 000012a3: SWAP1 000012a4: POP 000012a5: PUSH2 0x12b0 000012a8: PUSH0 000012a9: DUP4 000012aa: ADD 000012ab: DUP5 000012ac: PUSH2 0x128e 000012af: JUMP 000012b0: JUMPDEST 000012b1: SWAP3 000012b2: SWAP2 000012b3: POP 000012b4: POP 000012b5: JUMP 000012b6: JUMPDEST 000012b7: PUSH0 000012b8: PUSH2 0x12c0 000012bb: DUP3 000012bc: PUSH2 0x126c 000012bf: JUMP 000012c0: JUMPDEST 000012c1: SWAP1 000012c2: POP 000012c3: SWAP2 000012c4: SWAP1 000012c5: POP 000012c6: JUMP 000012c7: JUMPDEST 000012c8: PUSH2 0x12d0 000012cb: DUP2 000012cc: PUSH2 0x12b6 000012cf: JUMP 000012d0: JUMPDEST 000012d1: DUP3 000012d2: MSTORE 000012d3: POP 000012d4: POP 000012d5: JUMP 000012d6: JUMPDEST 000012d7: PUSH0 000012d8: PUSH1 0x20 000012da: DUP3 000012db: ADD 000012dc: SWAP1 000012dd: POP 000012de: PUSH2 0x12e9 000012e1: PUSH0 000012e2: DUP4 000012e3: ADD 000012e4: DUP5 000012e5: PUSH2 0x12c7 000012e8: JUMP 000012e9: JUMPDEST 000012ea: SWAP3 000012eb: SWAP2 000012ec: POP 000012ed: POP 000012ee: JUMP 000012ef: JUMPDEST 000012f0: PUSH0 000012f1: PUSH2 0x12f9 000012f4: DUP3 000012f5: PUSH2 0x126c 000012f8: JUMP 000012f9: JUMPDEST 000012fa: SWAP1 000012fb: POP 000012fc: SWAP2 000012fd: SWAP1 000012fe: POP 000012ff: JUMP 00001300: JUMPDEST 00001301: PUSH2 0x1309 00001304: DUP2 00001305: PUSH2 0x12ef 00001308: JUMP 00001309: JUMPDEST 0000130a: DUP3 0000130b: MSTORE 0000130c: POP 0000130d: POP 0000130e: JUMP 0000130f: JUMPDEST 00001310: PUSH0 00001311: PUSH1 0x20 00001313: DUP3 00001314: ADD 00001315: SWAP1 00001316: POP 00001317: PUSH2 0x1322 0000131a: PUSH0 0000131b: DUP4 0000131c: ADD 0000131d: DUP5 0000131e: PUSH2 0x1300 00001321: JUMP 00001322: JUMPDEST 00001323: SWAP3 00001324: SWAP2 00001325: POP 00001326: POP 00001327: JUMP 00001328: JUMPDEST 00001329: PUSH0 0000132a: PUSH1 0x40 0000132c: MLOAD 0000132d: SWAP1 0000132e: POP 0000132f: SWAP1 00001330: JUMP 00001331: JUMPDEST 00001332: PUSH0 00001333: DUP1 00001334: REVERT 00001335: JUMPDEST 00001336: PUSH0 00001337: DUP1 00001338: REVERT 00001339: JUMPDEST 0000133a: PUSH0 0000133b: DUP1 0000133c: REVERT 0000133d: JUMPDEST 0000133e: PUSH0 0000133f: DUP1 00001340: REVERT 00001341: JUMPDEST 00001342: PUSH0 00001343: DUP1 00001344: REVERT 00001345: JUMPDEST 00001346: PUSH0 00001347: DUP1 00001348: DUP4 00001349: PUSH1 0x1f 0000134b: DUP5 0000134c: ADD 0000134d: SLT 0000134e: PUSH2 0x135a 00001351: JUMPI 00001352: PUSH2 0x1359 00001355: PUSH2 0x1339 00001358: JUMP 00001359: JUMPDEST 0000135a: JUMPDEST 0000135b: DUP3 0000135c: CALLDATALOAD 0000135d: SWAP1 0000135e: POP 0000135f: PUSH8 0xffffffffffffffff 00001368: DUP2 00001369: GT 0000136a: ISZERO 0000136b: PUSH2 0x1377 0000136e: JUMPI 0000136f: PUSH2 0x1376 00001372: PUSH2 0x133d 00001375: JUMP 00001376: JUMPDEST 00001377: JUMPDEST 00001378: PUSH1 0x20 0000137a: DUP4 0000137b: ADD 0000137c: SWAP2 0000137d: POP 0000137e: DUP4 0000137f: PUSH1 0x01 00001381: DUP3 00001382: MUL 00001383: DUP4 00001384: ADD 00001385: GT 00001386: ISZERO 00001387: PUSH2 0x1393 0000138a: JUMPI 0000138b: PUSH2 0x1392 0000138e: PUSH2 0x1341 00001391: JUMP 00001392: JUMPDEST 00001393: JUMPDEST 00001394: SWAP3 00001395: POP 00001396: SWAP3 00001397: SWAP1 00001398: POP 00001399: JUMP 0000139a: JUMPDEST 0000139b: PUSH0 0000139c: DUP2 0000139d: SWAP1 0000139e: POP 0000139f: SWAP2 000013a0: SWAP1 000013a1: POP 000013a2: JUMP 000013a3: JUMPDEST 000013a4: PUSH2 0x13ac 000013a7: DUP2 000013a8: PUSH2 0x139a 000013ab: JUMP 000013ac: JUMPDEST 000013ad: DUP2 000013ae: EQ 000013af: PUSH2 0x13b6 000013b2: JUMPI 000013b3: PUSH0 000013b4: DUP1 000013b5: REVERT 000013b6: JUMPDEST 000013b7: POP 000013b8: JUMP 000013b9: JUMPDEST 000013ba: PUSH0 000013bb: DUP2 000013bc: CALLDATALOAD 000013bd: SWAP1 000013be: POP 000013bf: PUSH2 0x13c7 000013c2: DUP2 000013c3: PUSH2 0x13a3 000013c6: JUMP 000013c7: JUMPDEST 000013c8: SWAP3 000013c9: SWAP2 000013ca: POP 000013cb: POP 000013cc: JUMP 000013cd: JUMPDEST 000013ce: PUSH0 000013cf: DUP1 000013d0: PUSH0 000013d1: DUP1 000013d2: PUSH0 000013d3: DUP1 000013d4: PUSH1 0xa0 000013d6: DUP8 000013d7: DUP10 000013d8: SUB 000013d9: SLT 000013da: ISZERO 000013db: PUSH2 0x13e7 000013de: JUMPI 000013df: PUSH2 0x13e6 000013e2: PUSH2 0x1331 000013e5: JUMP 000013e6: JUMPDEST 000013e7: JUMPDEST 000013e8: PUSH0 000013e9: DUP8 000013ea: ADD 000013eb: CALLDATALOAD 000013ec: PUSH8 0xffffffffffffffff 000013f5: DUP2 000013f6: GT 000013f7: ISZERO 000013f8: PUSH2 0x1404 000013fb: JUMPI 000013fc: PUSH2 0x1403 000013ff: PUSH2 0x1335 00001402: JUMP 00001403: JUMPDEST 00001404: JUMPDEST 00001405: PUSH2 0x1410 00001408: DUP10 00001409: DUP3 0000140a: DUP11 0000140b: ADD 0000140c: PUSH2 0x1345 0000140f: JUMP 00001410: JUMPDEST 00001411: SWAP7 00001412: POP 00001413: SWAP7 00001414: POP 00001415: POP 00001416: PUSH1 0x20 00001418: PUSH2 0x1423 0000141b: DUP10 0000141c: DUP3 0000141d: DUP11 0000141e: ADD 0000141f: PUSH2 0x13b9 00001422: JUMP 00001423: JUMPDEST 00001424: SWAP5 00001425: POP 00001426: POP 00001427: PUSH1 0x40 00001429: PUSH2 0x1434 0000142c: DUP10 0000142d: DUP3 0000142e: DUP11 0000142f: ADD 00001430: PUSH2 0x13b9 00001433: JUMP 00001434: JUMPDEST 00001435: SWAP4 00001436: POP 00001437: POP 00001438: PUSH1 0x60 0000143a: PUSH2 0x1445 0000143d: DUP10 0000143e: DUP3 0000143f: DUP11 00001440: ADD 00001441: PUSH2 0x13b9 00001444: JUMP 00001445: JUMPDEST 00001446: SWAP3 00001447: POP 00001448: POP 00001449: PUSH1 0x80 0000144b: PUSH2 0x1456 0000144e: DUP10 0000144f: DUP3 00001450: DUP11 00001451: ADD 00001452: PUSH2 0x13b9 00001455: JUMP 00001456: JUMPDEST 00001457: SWAP2 00001458: POP 00001459: POP 0000145a: SWAP3 0000145b: SWAP6 0000145c: POP 0000145d: SWAP3 0000145e: SWAP6 0000145f: POP 00001460: SWAP3 00001461: SWAP6 00001462: JUMP 00001463: JUMPDEST 00001464: PUSH0 00001465: PUSH2 0x146d 00001468: DUP3 00001469: PUSH2 0x1223 0000146c: JUMP 0000146d: JUMPDEST 0000146e: SWAP1 0000146f: POP 00001470: SWAP2 00001471: SWAP1 00001472: POP 00001473: JUMP 00001474: JUMPDEST 00001475: PUSH2 0x147d 00001478: DUP2 00001479: PUSH2 0x1463 0000147c: JUMP 0000147d: JUMPDEST 0000147e: DUP3 0000147f: MSTORE 00001480: POP 00001481: POP 00001482: JUMP 00001483: JUMPDEST 00001484: PUSH0 00001485: PUSH1 0x20 00001487: DUP3 00001488: ADD 00001489: SWAP1 0000148a: POP 0000148b: PUSH2 0x1496 0000148e: PUSH0 0000148f: DUP4 00001490: ADD 00001491: DUP5 00001492: PUSH2 0x1474 00001495: JUMP 00001496: JUMPDEST 00001497: SWAP3 00001498: SWAP2 00001499: POP 0000149a: POP 0000149b: JUMP 0000149c: JUMPDEST 0000149d: PUSH0 0000149e: DUP1 0000149f: DUP4 000014a0: PUSH1 0x1f 000014a2: DUP5 000014a3: ADD 000014a4: SLT 000014a5: PUSH2 0x14b1 000014a8: JUMPI 000014a9: PUSH2 0x14b0 000014ac: PUSH2 0x1339 000014af: JUMP 000014b0: JUMPDEST 000014b1: JUMPDEST 000014b2: DUP3 000014b3: CALLDATALOAD 000014b4: SWAP1 000014b5: POP 000014b6: PUSH8 0xffffffffffffffff 000014bf: DUP2 000014c0: GT 000014c1: ISZERO 000014c2: PUSH2 0x14ce 000014c5: JUMPI 000014c6: PUSH2 0x14cd 000014c9: PUSH2 0x133d 000014cc: JUMP 000014cd: JUMPDEST 000014ce: JUMPDEST 000014cf: PUSH1 0x20 000014d1: DUP4 000014d2: ADD 000014d3: SWAP2 000014d4: POP 000014d5: DUP4 000014d6: PUSH1 0x20 000014d8: DUP3 000014d9: MUL 000014da: DUP4 000014db: ADD 000014dc: GT 000014dd: ISZERO 000014de: PUSH2 0x14ea 000014e1: JUMPI 000014e2: PUSH2 0x14e9 000014e5: PUSH2 0x1341 000014e8: JUMP 000014e9: JUMPDEST 000014ea: JUMPDEST 000014eb: SWAP3 000014ec: POP 000014ed: SWAP3 000014ee: SWAP1 000014ef: POP 000014f0: JUMP 000014f1: JUMPDEST 000014f2: PUSH0 000014f3: DUP1 000014f4: PUSH0 000014f5: DUP1 000014f6: PUSH0 000014f7: DUP1 000014f8: PUSH1 0xa0 000014fa: DUP8 000014fb: DUP10 000014fc: SUB 000014fd: SLT 000014fe: ISZERO 000014ff: PUSH2 0x150b 00001502: JUMPI 00001503: PUSH2 0x150a 00001506: PUSH2 0x1331 00001509: JUMP 0000150a: JUMPDEST 0000150b: JUMPDEST 0000150c: PUSH0 0000150d: DUP8 0000150e: ADD 0000150f: CALLDATALOAD 00001510: PUSH8 0xffffffffffffffff 00001519: DUP2 0000151a: GT 0000151b: ISZERO 0000151c: PUSH2 0x1528 0000151f: JUMPI 00001520: PUSH2 0x1527 00001523: PUSH2 0x1335 00001526: JUMP 00001527: JUMPDEST 00001528: JUMPDEST 00001529: PUSH2 0x1534 0000152c: DUP10 0000152d: DUP3 0000152e: DUP11 0000152f: ADD 00001530: PUSH2 0x149c 00001533: JUMP 00001534: JUMPDEST 00001535: SWAP7 00001536: POP 00001537: SWAP7 00001538: POP 00001539: POP 0000153a: PUSH1 0x20 0000153c: PUSH2 0x1547 0000153f: DUP10 00001540: DUP3 00001541: DUP11 00001542: ADD 00001543: PUSH2 0x13b9 00001546: JUMP 00001547: JUMPDEST 00001548: SWAP5 00001549: POP 0000154a: POP 0000154b: PUSH1 0x40 0000154d: PUSH2 0x1558 00001550: DUP10 00001551: DUP3 00001552: DUP11 00001553: ADD 00001554: PUSH2 0x13b9 00001557: JUMP 00001558: JUMPDEST 00001559: SWAP4 0000155a: POP 0000155b: POP 0000155c: PUSH1 0x60 0000155e: PUSH2 0x1569 00001561: DUP10 00001562: DUP3 00001563: DUP11 00001564: ADD 00001565: PUSH2 0x13b9 00001568: JUMP 00001569: JUMPDEST 0000156a: SWAP3 0000156b: POP 0000156c: POP 0000156d: PUSH1 0x80 0000156f: PUSH2 0x157a 00001572: DUP10 00001573: DUP3 00001574: DUP11 00001575: ADD 00001576: PUSH2 0x13b9 00001579: JUMP 0000157a: JUMPDEST 0000157b: SWAP2 0000157c: POP 0000157d: POP 0000157e: SWAP3 0000157f: SWAP6 00001580: POP 00001581: SWAP3 00001582: SWAP6 00001583: POP 00001584: SWAP3 00001585: SWAP6 00001586: JUMP 00001587: JUMPDEST 00001588: PUSH0 00001589: DUP1 0000158a: PUSH0 0000158b: DUP1 0000158c: PUSH0 0000158d: DUP1 0000158e: PUSH1 0xa0 00001590: DUP8 00001591: DUP10 00001592: SUB 00001593: SLT 00001594: ISZERO 00001595: PUSH2 0x15a1 00001598: JUMPI 00001599: PUSH2 0x15a0 0000159c: PUSH2 0x1331 0000159f: JUMP 000015a0: JUMPDEST 000015a1: JUMPDEST 000015a2: PUSH0 000015a3: PUSH2 0x15ae 000015a6: DUP10 000015a7: DUP3 000015a8: DUP11 000015a9: ADD 000015aa: PUSH2 0x13b9 000015ad: JUMP 000015ae: JUMPDEST 000015af: SWAP7 000015b0: POP 000015b1: POP 000015b2: PUSH1 0x20 000015b4: DUP8 000015b5: ADD 000015b6: CALLDATALOAD 000015b7: PUSH8 0xffffffffffffffff 000015c0: DUP2 000015c1: GT 000015c2: ISZERO 000015c3: PUSH2 0x15cf 000015c6: JUMPI 000015c7: PUSH2 0x15ce 000015ca: PUSH2 0x1335 000015cd: JUMP 000015ce: JUMPDEST 000015cf: JUMPDEST 000015d0: PUSH2 0x15db 000015d3: DUP10 000015d4: DUP3 000015d5: DUP11 000015d6: ADD 000015d7: PUSH2 0x149c 000015da: JUMP 000015db: JUMPDEST 000015dc: SWAP6 000015dd: POP 000015de: SWAP6 000015df: POP 000015e0: POP 000015e1: PUSH1 0x40 000015e3: PUSH2 0x15ee 000015e6: DUP10 000015e7: DUP3 000015e8: DUP11 000015e9: ADD 000015ea: PUSH2 0x13b9 000015ed: JUMP 000015ee: JUMPDEST 000015ef: SWAP4 000015f0: POP 000015f1: POP 000015f2: PUSH1 0x60 000015f4: PUSH2 0x15ff 000015f7: DUP10 000015f8: DUP3 000015f9: DUP11 000015fa: ADD 000015fb: PUSH2 0x13b9 000015fe: JUMP 000015ff: JUMPDEST 00001600: SWAP3 00001601: POP 00001602: POP 00001603: PUSH1 0x80 00001605: PUSH2 0x1610 00001608: DUP10 00001609: DUP3 0000160a: DUP11 0000160b: ADD 0000160c: PUSH2 0x13b9 0000160f: JUMP 00001610: JUMPDEST 00001611: SWAP2 00001612: POP 00001613: POP 00001614: SWAP3 00001615: SWAP6 00001616: POP 00001617: SWAP3 00001618: SWAP6 00001619: POP 0000161a: SWAP3 0000161b: SWAP6 0000161c: JUMP 0000161d: JUMPDEST 0000161e: PUSH2 0x1626 00001621: DUP2 00001622: PUSH2 0x1463 00001625: JUMP 00001626: JUMPDEST 00001627: DUP2 00001628: EQ 00001629: PUSH2 0x1630 0000162c: JUMPI 0000162d: PUSH0 0000162e: DUP1 0000162f: REVERT 00001630: JUMPDEST 00001631: POP 00001632: JUMP 00001633: JUMPDEST 00001634: PUSH0 00001635: DUP2 00001636: CALLDATALOAD 00001637: SWAP1 00001638: POP 00001639: PUSH2 0x1641 0000163c: DUP2 0000163d: PUSH2 0x161d 00001640: JUMP 00001641: JUMPDEST 00001642: SWAP3 00001643: SWAP2 00001644: POP 00001645: POP 00001646: JUMP 00001647: JUMPDEST 00001648: PUSH0 00001649: DUP1 0000164a: PUSH0 0000164b: DUP1 0000164c: PUSH0 0000164d: DUP1 0000164e: PUSH0 0000164f: PUSH1 0xc0 00001651: DUP9 00001652: DUP11 00001653: SUB 00001654: SLT 00001655: ISZERO 00001656: PUSH2 0x1662 00001659: JUMPI 0000165a: PUSH2 0x1661 0000165d: PUSH2 0x1331 00001660: JUMP 00001661: JUMPDEST 00001662: JUMPDEST 00001663: PUSH0 00001664: DUP9 00001665: ADD 00001666: CALLDATALOAD 00001667: PUSH8 0xffffffffffffffff 00001670: DUP2 00001671: GT 00001672: ISZERO 00001673: PUSH2 0x167f 00001676: JUMPI 00001677: PUSH2 0x167e 0000167a: PUSH2 0x1335 0000167d: JUMP 0000167e: JUMPDEST 0000167f: JUMPDEST 00001680: PUSH2 0x168b 00001683: DUP11 00001684: DUP3 00001685: DUP12 00001686: ADD 00001687: PUSH2 0x1345 0000168a: JUMP 0000168b: JUMPDEST 0000168c: SWAP8 0000168d: POP 0000168e: SWAP8 0000168f: POP 00001690: POP 00001691: PUSH1 0x20 00001693: PUSH2 0x169e 00001696: DUP11 00001697: DUP3 00001698: DUP12 00001699: ADD 0000169a: PUSH2 0x1633 0000169d: JUMP 0000169e: JUMPDEST 0000169f: SWAP6 000016a0: POP 000016a1: POP 000016a2: PUSH1 0x40 000016a4: PUSH2 0x16af 000016a7: DUP11 000016a8: DUP3 000016a9: DUP12 000016aa: ADD 000016ab: PUSH2 0x13b9 000016ae: JUMP 000016af: JUMPDEST 000016b0: SWAP5 000016b1: POP 000016b2: POP 000016b3: PUSH1 0x60 000016b5: PUSH2 0x16c0 000016b8: DUP11 000016b9: DUP3 000016ba: DUP12 000016bb: ADD 000016bc: PUSH2 0x13b9 000016bf: JUMP 000016c0: JUMPDEST 000016c1: SWAP4 000016c2: POP 000016c3: POP 000016c4: PUSH1 0x80 000016c6: PUSH2 0x16d1 000016c9: DUP11 000016ca: DUP3 000016cb: DUP12 000016cc: ADD 000016cd: PUSH2 0x13b9 000016d0: JUMP 000016d1: JUMPDEST 000016d2: SWAP3 000016d3: POP 000016d4: POP 000016d5: PUSH1 0xa0 000016d7: PUSH2 0x16e2 000016da: DUP11 000016db: DUP3 000016dc: DUP12 000016dd: ADD 000016de: PUSH2 0x13b9 000016e1: JUMP 000016e2: JUMPDEST 000016e3: SWAP2 000016e4: POP 000016e5: POP 000016e6: SWAP3 000016e7: SWAP6 000016e8: SWAP9 000016e9: SWAP2 000016ea: SWAP5 000016eb: SWAP8 000016ec: POP 000016ed: SWAP3 000016ee: SWAP6 000016ef: POP 000016f0: JUMP 000016f1: JUMPDEST 000016f2: PUSH0 000016f3: PUSH1 0x20 000016f5: DUP3 000016f6: DUP5 000016f7: SUB 000016f8: SLT 000016f9: ISZERO 000016fa: PUSH2 0x1706 000016fd: JUMPI 000016fe: PUSH2 0x1705 00001701: PUSH2 0x1331 00001704: JUMP 00001705: JUMPDEST 00001706: JUMPDEST 00001707: PUSH0 00001708: PUSH2 0x1713 0000170b: DUP5 0000170c: DUP3 0000170d: DUP6 0000170e: ADD 0000170f: PUSH2 0x1633 00001712: JUMP 00001713: JUMPDEST 00001714: SWAP2 00001715: POP 00001716: POP 00001717: SWAP3 00001718: SWAP2 00001719: POP 0000171a: POP 0000171b: JUMP 0000171c: JUMPDEST 0000171d: PUSH0 0000171e: DUP3 0000171f: DUP3 00001720: MSTORE 00001721: PUSH1 0x20 00001723: DUP3 00001724: ADD 00001725: SWAP1 00001726: POP 00001727: SWAP3 00001728: SWAP2 00001729: POP 0000172a: POP 0000172b: JUMP 0000172c: JUMPDEST 0000172d: PUSH32 0x416d6f756e74206d7573742062652067726561746572207468616e2030000000 0000174e: PUSH0 0000174f: DUP3 00001750: ADD 00001751: MSTORE 00001752: POP 00001753: JUMP 00001754: JUMPDEST 00001755: PUSH0 00001756: PUSH2 0x1760 00001759: PUSH1 0x1d 0000175b: DUP4 0000175c: PUSH2 0x171c 0000175f: JUMP 00001760: JUMPDEST 00001761: SWAP2 00001762: POP 00001763: PUSH2 0x176b 00001766: DUP3 00001767: PUSH2 0x172c 0000176a: JUMP 0000176b: JUMPDEST 0000176c: PUSH1 0x20 0000176e: DUP3 0000176f: ADD 00001770: SWAP1 00001771: POP 00001772: SWAP2 00001773: SWAP1 00001774: POP 00001775: JUMP 00001776: JUMPDEST 00001777: PUSH0 00001778: PUSH1 0x20 0000177a: DUP3 0000177b: ADD 0000177c: SWAP1 0000177d: POP 0000177e: DUP2 0000177f: DUP2 00001780: SUB 00001781: PUSH0 00001782: DUP4 00001783: ADD 00001784: MSTORE 00001785: PUSH2 0x178d 00001788: DUP2 00001789: PUSH2 0x1754 0000178c: JUMP 0000178d: JUMPDEST 0000178e: SWAP1 0000178f: POP 00001790: SWAP2 00001791: SWAP1 00001792: POP 00001793: JUMP 00001794: JUMPDEST 00001795: PUSH32 0x4665652070657263656e74616765206d757374206265206265747765656e2030 000017b6: PUSH0 000017b7: DUP3 000017b8: ADD 000017b9: MSTORE 000017ba: PUSH32 0x20616e6420313030303000000000000000000000000000000000000000000000 000017db: PUSH1 0x20 000017dd: DUP3 000017de: ADD 000017df: MSTORE 000017e0: POP 000017e1: JUMP 000017e2: JUMPDEST 000017e3: PUSH0 000017e4: PUSH2 0x17ee 000017e7: PUSH1 0x2a 000017e9: DUP4 000017ea: PUSH2 0x171c 000017ed: JUMP 000017ee: JUMPDEST 000017ef: SWAP2 000017f0: POP 000017f1: PUSH2 0x17f9 000017f4: DUP3 000017f5: PUSH2 0x1794 000017f8: JUMP 000017f9: JUMPDEST 000017fa: PUSH1 0x40 000017fc: DUP3 000017fd: ADD 000017fe: SWAP1 000017ff: POP 00001800: SWAP2 00001801: SWAP1 00001802: POP 00001803: JUMP 00001804: JUMPDEST 00001805: PUSH0 00001806: PUSH1 0x20 00001808: DUP3 00001809: ADD 0000180a: SWAP1 0000180b: POP 0000180c: DUP2 0000180d: DUP2 0000180e: SUB 0000180f: PUSH0 00001810: DUP4 00001811: ADD 00001812: MSTORE 00001813: PUSH2 0x181b 00001816: DUP2 00001817: PUSH2 0x17e2 0000181a: JUMP 0000181b: JUMPDEST 0000181c: SWAP1 0000181d: POP 0000181e: SWAP2 0000181f: SWAP1 00001820: POP 00001821: JUMP 00001822: JUMPDEST 00001823: PUSH32 0x4e6f7420656e6f7567682045544820746f207061792074697000000000000000 00001844: PUSH0 00001845: DUP3 00001846: ADD 00001847: MSTORE 00001848: POP 00001849: JUMP 0000184a: JUMPDEST 0000184b: PUSH0 0000184c: PUSH2 0x1856 0000184f: PUSH1 0x19 00001851: DUP4 00001852: PUSH2 0x171c 00001855: JUMP 00001856: JUMPDEST 00001857: SWAP2 00001858: POP 00001859: PUSH2 0x1861 0000185c: DUP3 0000185d: PUSH2 0x1822 00001860: JUMP 00001861: JUMPDEST 00001862: PUSH1 0x20 00001864: DUP3 00001865: ADD 00001866: SWAP1 00001867: POP 00001868: SWAP2 00001869: SWAP1 0000186a: POP 0000186b: JUMP 0000186c: JUMPDEST 0000186d: PUSH0 0000186e: PUSH1 0x20 00001870: DUP3 00001871: ADD 00001872: SWAP1 00001873: POP 00001874: DUP2 00001875: DUP2 00001876: SUB 00001877: PUSH0 00001878: DUP4 00001879: ADD 0000187a: MSTORE 0000187b: PUSH2 0x1883 0000187e: DUP2 0000187f: PUSH2 0x184a 00001882: JUMP 00001883: JUMPDEST 00001884: SWAP1 00001885: POP 00001886: SWAP2 00001887: SWAP1 00001888: POP 00001889: JUMP 0000188a: JUMPDEST 0000188b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000018ac: PUSH0 000018ad: MSTORE 000018ae: PUSH1 0x11 000018b0: PUSH1 0x04 000018b2: MSTORE 000018b3: PUSH1 0x24 000018b5: PUSH0 000018b6: REVERT 000018b7: JUMPDEST 000018b8: PUSH0 000018b9: PUSH2 0x18c1 000018bc: DUP3 000018bd: PUSH2 0x139a 000018c0: JUMP 000018c1: JUMPDEST 000018c2: SWAP2 000018c3: POP 000018c4: PUSH2 0x18cc 000018c7: DUP4 000018c8: PUSH2 0x139a 000018cb: JUMP 000018cc: JUMPDEST 000018cd: SWAP3 000018ce: POP 000018cf: DUP3 000018d0: DUP3 000018d1: SUB 000018d2: SWAP1 000018d3: POP 000018d4: DUP2 000018d5: DUP2 000018d6: GT 000018d7: ISZERO 000018d8: PUSH2 0x18e4 000018db: JUMPI 000018dc: PUSH2 0x18e3 000018df: PUSH2 0x188a 000018e2: JUMP 000018e3: JUMPDEST 000018e4: JUMPDEST 000018e5: SWAP3 000018e6: SWAP2 000018e7: POP 000018e8: POP 000018e9: JUMP 000018ea: JUMPDEST 000018eb: PUSH0 000018ec: PUSH2 0x18f4 000018ef: DUP3 000018f0: PUSH2 0x139a 000018f3: JUMP 000018f4: JUMPDEST 000018f5: SWAP2 000018f6: POP 000018f7: PUSH2 0x18ff 000018fa: DUP4 000018fb: PUSH2 0x139a 000018fe: JUMP 000018ff: JUMPDEST 00001900: SWAP3 00001901: POP 00001902: DUP3 00001903: DUP3 00001904: MUL 00001905: PUSH2 0x190d 00001908: DUP2 00001909: PUSH2 0x139a 0000190c: JUMP 0000190d: JUMPDEST 0000190e: SWAP2 0000190f: POP 00001910: DUP3 00001911: DUP3 00001912: DIV 00001913: DUP5 00001914: EQ 00001915: DUP4 00001916: ISZERO 00001917: OR 00001918: PUSH2 0x1924 0000191b: JUMPI 0000191c: PUSH2 0x1923 0000191f: PUSH2 0x188a 00001922: JUMP 00001923: JUMPDEST 00001924: JUMPDEST 00001925: POP 00001926: SWAP3 00001927: SWAP2 00001928: POP 00001929: POP 0000192a: JUMP 0000192b: JUMPDEST 0000192c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000194d: PUSH0 0000194e: MSTORE 0000194f: PUSH1 0x12 00001951: PUSH1 0x04 00001953: MSTORE 00001954: PUSH1 0x24 00001956: PUSH0 00001957: REVERT 00001958: JUMPDEST 00001959: PUSH0 0000195a: PUSH2 0x1962 0000195d: DUP3 0000195e: PUSH2 0x139a 00001961: JUMP 00001962: JUMPDEST 00001963: SWAP2 00001964: POP 00001965: PUSH2 0x196d 00001968: DUP4 00001969: PUSH2 0x139a 0000196c: JUMP 0000196d: JUMPDEST 0000196e: SWAP3 0000196f: POP 00001970: DUP3 00001971: PUSH2 0x197d 00001974: JUMPI 00001975: PUSH2 0x197c 00001978: PUSH2 0x192b 0000197b: JUMP 0000197c: JUMPDEST 0000197d: JUMPDEST 0000197e: DUP3 0000197f: DUP3 00001980: DIV 00001981: SWAP1 00001982: POP 00001983: SWAP3 00001984: SWAP2 00001985: POP 00001986: POP 00001987: JUMP 00001988: JUMPDEST 00001989: PUSH32 0x4e6f7420656e6f7567682045544820746f206275790000000000000000000000 000019aa: PUSH0 000019ab: DUP3 000019ac: ADD 000019ad: MSTORE 000019ae: POP 000019af: JUMP 000019b0: JUMPDEST 000019b1: PUSH0 000019b2: PUSH2 0x19bc 000019b5: PUSH1 0x15 000019b7: DUP4 000019b8: PUSH2 0x171c 000019bb: JUMP 000019bc: JUMPDEST 000019bd: SWAP2 000019be: POP 000019bf: PUSH2 0x19c7 000019c2: DUP3 000019c3: PUSH2 0x1988 000019c6: JUMP 000019c7: JUMPDEST 000019c8: PUSH1 0x20 000019ca: DUP3 000019cb: ADD 000019cc: SWAP1 000019cd: POP 000019ce: SWAP2 000019cf: SWAP1 000019d0: POP 000019d1: JUMP 000019d2: JUMPDEST 000019d3: PUSH0 000019d4: PUSH1 0x20 000019d6: DUP3 000019d7: ADD 000019d8: SWAP1 000019d9: POP 000019da: DUP2 000019db: DUP2 000019dc: SUB 000019dd: PUSH0 000019de: DUP4 000019df: ADD 000019e0: MSTORE 000019e1: PUSH2 0x19e9 000019e4: DUP2 000019e5: PUSH2 0x19b0 000019e8: JUMP 000019e9: JUMPDEST 000019ea: SWAP1 000019eb: POP 000019ec: SWAP2 000019ed: SWAP1 000019ee: POP 000019ef: JUMP 000019f0: JUMPDEST 000019f1: PUSH0 000019f2: DUP2 000019f3: MLOAD 000019f4: SWAP1 000019f5: POP 000019f6: SWAP2 000019f7: SWAP1 000019f8: POP 000019f9: JUMP 000019fa: JUMPDEST 000019fb: PUSH0 000019fc: DUP3 000019fd: DUP3 000019fe: MSTORE 000019ff: PUSH1 0x20 00001a01: DUP3 00001a02: ADD 00001a03: SWAP1 00001a04: POP 00001a05: SWAP3 00001a06: SWAP2 00001a07: POP 00001a08: POP 00001a09: JUMP 00001a0a: JUMPDEST 00001a0b: PUSH0 00001a0c: JUMPDEST 00001a0d: DUP4 00001a0e: DUP2 00001a0f: LT 00001a10: ISZERO 00001a11: PUSH2 0x1a27 00001a14: JUMPI 00001a15: DUP1 00001a16: DUP3 00001a17: ADD 00001a18: MLOAD 00001a19: DUP2 00001a1a: DUP5 00001a1b: ADD 00001a1c: MSTORE 00001a1d: PUSH1 0x20 00001a1f: DUP2 00001a20: ADD 00001a21: SWAP1 00001a22: POP 00001a23: PUSH2 0x1a0c 00001a26: JUMP 00001a27: JUMPDEST 00001a28: PUSH0 00001a29: DUP5 00001a2a: DUP5 00001a2b: ADD 00001a2c: MSTORE 00001a2d: POP 00001a2e: POP 00001a2f: POP 00001a30: POP 00001a31: JUMP 00001a32: JUMPDEST 00001a33: PUSH0 00001a34: PUSH1 0x1f 00001a36: NOT 00001a37: PUSH1 0x1f 00001a39: DUP4 00001a3a: ADD 00001a3b: AND 00001a3c: SWAP1 00001a3d: POP 00001a3e: SWAP2 00001a3f: SWAP1 00001a40: POP 00001a41: JUMP 00001a42: JUMPDEST 00001a43: PUSH0 00001a44: PUSH2 0x1a4c 00001a47: DUP3 00001a48: PUSH2 0x19f0 00001a4b: JUMP 00001a4c: JUMPDEST 00001a4d: PUSH2 0x1a56 00001a50: DUP2 00001a51: DUP6 00001a52: PUSH2 0x19fa 00001a55: JUMP 00001a56: JUMPDEST 00001a57: SWAP4 00001a58: POP 00001a59: PUSH2 0x1a66 00001a5c: DUP2 00001a5d: DUP6 00001a5e: PUSH1 0x20 00001a60: DUP7 00001a61: ADD 00001a62: PUSH2 0x1a0a 00001a65: JUMP 00001a66: JUMPDEST 00001a67: PUSH2 0x1a6f 00001a6a: DUP2 00001a6b: PUSH2 0x1a32 00001a6e: JUMP 00001a6f: JUMPDEST 00001a70: DUP5 00001a71: ADD 00001a72: SWAP2 00001a73: POP 00001a74: POP 00001a75: SWAP3 00001a76: SWAP2 00001a77: POP 00001a78: POP 00001a79: JUMP 00001a7a: JUMPDEST 00001a7b: PUSH2 0x1a83 00001a7e: DUP2 00001a7f: PUSH2 0x1463 00001a82: JUMP 00001a83: JUMPDEST 00001a84: DUP3 00001a85: MSTORE 00001a86: POP 00001a87: POP 00001a88: JUMP 00001a89: JUMPDEST 00001a8a: PUSH2 0x1a92 00001a8d: DUP2 00001a8e: PUSH2 0x139a 00001a91: JUMP 00001a92: JUMPDEST 00001a93: DUP3 00001a94: MSTORE 00001a95: POP 00001a96: POP 00001a97: JUMP 00001a98: JUMPDEST 00001a99: PUSH0 00001a9a: PUSH1 0xa0 00001a9c: DUP4 00001a9d: ADD 00001a9e: PUSH0 00001a9f: DUP4 00001aa0: ADD 00001aa1: MLOAD 00001aa2: DUP5 00001aa3: DUP3 00001aa4: SUB 00001aa5: PUSH0 00001aa6: DUP7 00001aa7: ADD 00001aa8: MSTORE 00001aa9: PUSH2 0x1ab2 00001aac: DUP3 00001aad: DUP3 00001aae: PUSH2 0x1a42 00001ab1: JUMP 00001ab2: JUMPDEST 00001ab3: SWAP2 00001ab4: POP 00001ab5: POP 00001ab6: PUSH1 0x20 00001ab8: DUP4 00001ab9: ADD 00001aba: MLOAD 00001abb: PUSH2 0x1ac7 00001abe: PUSH1 0x20 00001ac0: DUP7 00001ac1: ADD 00001ac2: DUP3 00001ac3: PUSH2 0x1a7a 00001ac6: JUMP 00001ac7: JUMPDEST 00001ac8: POP 00001ac9: PUSH1 0x40 00001acb: DUP4 00001acc: ADD 00001acd: MLOAD 00001ace: PUSH2 0x1ada 00001ad1: PUSH1 0x40 00001ad3: DUP7 00001ad4: ADD 00001ad5: DUP3 00001ad6: PUSH2 0x1a89 00001ad9: JUMP 00001ada: JUMPDEST 00001adb: POP 00001adc: PUSH1 0x60 00001ade: DUP4 00001adf: ADD 00001ae0: MLOAD 00001ae1: PUSH2 0x1aed 00001ae4: PUSH1 0x60 00001ae6: DUP7 00001ae7: ADD 00001ae8: DUP3 00001ae9: PUSH2 0x1a89 00001aec: JUMP 00001aed: JUMPDEST 00001aee: POP 00001aef: PUSH1 0x80 00001af1: DUP4 00001af2: ADD 00001af3: MLOAD 00001af4: PUSH2 0x1b00 00001af7: PUSH1 0x80 00001af9: DUP7 00001afa: ADD 00001afb: DUP3 00001afc: PUSH2 0x1a89 00001aff: JUMP 00001b00: JUMPDEST 00001b01: POP 00001b02: DUP1 00001b03: SWAP2 00001b04: POP 00001b05: POP 00001b06: SWAP3 00001b07: SWAP2 00001b08: POP 00001b09: POP 00001b0a: JUMP 00001b0b: JUMPDEST 00001b0c: PUSH0 00001b0d: PUSH1 0x20 00001b0f: DUP3 00001b10: ADD 00001b11: SWAP1 00001b12: POP 00001b13: DUP2 00001b14: DUP2 00001b15: SUB 00001b16: PUSH0 00001b17: DUP4 00001b18: ADD 00001b19: MSTORE 00001b1a: PUSH2 0x1b23 00001b1d: DUP2 00001b1e: DUP5 00001b1f: PUSH2 0x1a98 00001b22: JUMP 00001b23: JUMPDEST 00001b24: SWAP1 00001b25: POP 00001b26: SWAP3 00001b27: SWAP2 00001b28: POP 00001b29: POP 00001b2a: JUMP 00001b2b: JUMPDEST 00001b2c: PUSH0 00001b2d: DUP2 00001b2e: MLOAD 00001b2f: SWAP1 00001b30: POP 00001b31: PUSH2 0x1b39 00001b34: DUP2 00001b35: PUSH2 0x13a3 00001b38: JUMP 00001b39: JUMPDEST 00001b3a: SWAP3 00001b3b: SWAP2 00001b3c: POP 00001b3d: POP 00001b3e: JUMP 00001b3f: JUMPDEST 00001b40: PUSH0 00001b41: PUSH1 0x20 00001b43: DUP3 00001b44: DUP5 00001b45: SUB 00001b46: SLT 00001b47: ISZERO 00001b48: PUSH2 0x1b54 00001b4b: JUMPI 00001b4c: PUSH2 0x1b53 00001b4f: PUSH2 0x1331 00001b52: JUMP 00001b53: JUMPDEST 00001b54: JUMPDEST 00001b55: PUSH0 00001b56: PUSH2 0x1b61 00001b59: DUP5 00001b5a: DUP3 00001b5b: DUP6 00001b5c: ADD 00001b5d: PUSH2 0x1b2b 00001b60: JUMP 00001b61: JUMPDEST 00001b62: SWAP2 00001b63: POP 00001b64: POP 00001b65: SWAP3 00001b66: SWAP2 00001b67: POP 00001b68: POP 00001b69: JUMP 00001b6a: JUMPDEST 00001b6b: PUSH2 0x1b73 00001b6e: DUP2 00001b6f: PUSH2 0x139a 00001b72: JUMP 00001b73: JUMPDEST 00001b74: DUP3 00001b75: MSTORE 00001b76: POP 00001b77: POP 00001b78: JUMP 00001b79: JUMPDEST 00001b7a: PUSH0 00001b7b: DUP3 00001b7c: DUP3 00001b7d: MSTORE 00001b7e: PUSH1 0x20 00001b80: DUP3 00001b81: ADD 00001b82: SWAP1 00001b83: POP 00001b84: SWAP3 00001b85: SWAP2 00001b86: POP 00001b87: POP 00001b88: JUMP 00001b89: JUMPDEST 00001b8a: PUSH0 00001b8b: DUP2 00001b8c: SWAP1 00001b8d: POP 00001b8e: SWAP2 00001b8f: SWAP1 00001b90: POP 00001b91: JUMP 00001b92: JUMPDEST 00001b93: PUSH0 00001b94: PUSH2 0x1b9d 00001b97: DUP4 00001b98: DUP4 00001b99: PUSH2 0x1a7a 00001b9c: JUMP 00001b9d: JUMPDEST 00001b9e: PUSH1 0x20 00001ba0: DUP4 00001ba1: ADD 00001ba2: SWAP1 00001ba3: POP 00001ba4: SWAP3 00001ba5: SWAP2 00001ba6: POP 00001ba7: POP 00001ba8: JUMP 00001ba9: JUMPDEST 00001baa: PUSH0 00001bab: PUSH2 0x1bb7 00001bae: PUSH1 0x20 00001bb0: DUP5 00001bb1: ADD 00001bb2: DUP5 00001bb3: PUSH2 0x1633 00001bb6: JUMP 00001bb7: JUMPDEST 00001bb8: SWAP1 00001bb9: POP 00001bba: SWAP3 00001bbb: SWAP2 00001bbc: POP 00001bbd: POP 00001bbe: JUMP 00001bbf: JUMPDEST 00001bc0: PUSH0 00001bc1: PUSH1 0x20 00001bc3: DUP3 00001bc4: ADD 00001bc5: SWAP1 00001bc6: POP 00001bc7: SWAP2 00001bc8: SWAP1 00001bc9: POP 00001bca: JUMP 00001bcb: JUMPDEST 00001bcc: PUSH0 00001bcd: PUSH2 0x1bd6 00001bd0: DUP4 00001bd1: DUP6 00001bd2: PUSH2 0x1b79 00001bd5: JUMP 00001bd6: JUMPDEST 00001bd7: SWAP4 00001bd8: POP 00001bd9: PUSH2 0x1be1 00001bdc: DUP3 00001bdd: PUSH2 0x1b89 00001be0: JUMP 00001be1: JUMPDEST 00001be2: DUP1 00001be3: PUSH0 00001be4: JUMPDEST 00001be5: DUP6 00001be6: DUP2 00001be7: LT 00001be8: ISZERO 00001be9: PUSH2 0x1c19 00001bec: JUMPI 00001bed: PUSH2 0x1bf6 00001bf0: DUP3 00001bf1: DUP5 00001bf2: PUSH2 0x1ba9 00001bf5: JUMP 00001bf6: JUMPDEST 00001bf7: PUSH2 0x1c00 00001bfa: DUP9 00001bfb: DUP3 00001bfc: PUSH2 0x1b92 00001bff: JUMP 00001c00: JUMPDEST 00001c01: SWAP8 00001c02: POP 00001c03: PUSH2 0x1c0b 00001c06: DUP4 00001c07: PUSH2 0x1bbf 00001c0a: JUMP 00001c0b: JUMPDEST 00001c0c: SWAP3 00001c0d: POP 00001c0e: POP 00001c0f: PUSH1 0x01 00001c11: DUP2 00001c12: ADD 00001c13: SWAP1 00001c14: POP 00001c15: PUSH2 0x1be4 00001c18: JUMP 00001c19: JUMPDEST 00001c1a: POP 00001c1b: DUP6 00001c1c: SWAP3 00001c1d: POP 00001c1e: POP 00001c1f: POP 00001c20: SWAP4 00001c21: SWAP3 00001c22: POP 00001c23: POP 00001c24: POP 00001c25: JUMP 00001c26: JUMPDEST 00001c27: PUSH0 00001c28: PUSH1 0x80 00001c2a: DUP3 00001c2b: ADD 00001c2c: SWAP1 00001c2d: POP 00001c2e: PUSH2 0x1c39 00001c31: PUSH0 00001c32: DUP4 00001c33: ADD 00001c34: DUP9 00001c35: PUSH2 0x1b6a 00001c38: JUMP 00001c39: JUMPDEST 00001c3a: DUP2 00001c3b: DUP2 00001c3c: SUB 00001c3d: PUSH1 0x20 00001c3f: DUP4 00001c40: ADD 00001c41: MSTORE 00001c42: PUSH2 0x1c4c 00001c45: DUP2 00001c46: DUP7 00001c47: DUP9 00001c48: PUSH2 0x1bcb 00001c4b: JUMP 00001c4c: JUMPDEST 00001c4d: SWAP1 00001c4e: POP 00001c4f: PUSH2 0x1c5b 00001c52: PUSH1 0x40 00001c54: DUP4 00001c55: ADD 00001c56: DUP6 00001c57: PUSH2 0x1474 00001c5a: JUMP 00001c5b: JUMPDEST 00001c5c: PUSH2 0x1c68 00001c5f: PUSH1 0x60 00001c61: DUP4 00001c62: ADD 00001c63: DUP5 00001c64: PUSH2 0x1b6a 00001c67: JUMP 00001c68: JUMPDEST 00001c69: SWAP7 00001c6a: SWAP6 00001c6b: POP 00001c6c: POP 00001c6d: POP 00001c6e: POP 00001c6f: POP 00001c70: POP 00001c71: JUMP 00001c72: JUMPDEST 00001c73: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001c94: PUSH0 00001c95: MSTORE 00001c96: PUSH1 0x41 00001c98: PUSH1 0x04 00001c9a: MSTORE 00001c9b: PUSH1 0x24 00001c9d: PUSH0 00001c9e: REVERT 00001c9f: JUMPDEST 00001ca0: PUSH2 0x1ca8 00001ca3: DUP3 00001ca4: PUSH2 0x1a32 00001ca7: JUMP 00001ca8: JUMPDEST 00001ca9: DUP2 00001caa: ADD 00001cab: DUP2 00001cac: DUP2 00001cad: LT 00001cae: PUSH8 0xffffffffffffffff 00001cb7: DUP3 00001cb8: GT 00001cb9: OR 00001cba: ISZERO 00001cbb: PUSH2 0x1cc7 00001cbe: JUMPI 00001cbf: PUSH2 0x1cc6 00001cc2: PUSH2 0x1c72 00001cc5: JUMP 00001cc6: JUMPDEST 00001cc7: JUMPDEST 00001cc8: DUP1 00001cc9: PUSH1 0x40 00001ccb: MSTORE 00001ccc: POP 00001ccd: POP 00001cce: POP 00001ccf: JUMP 00001cd0: JUMPDEST 00001cd1: PUSH0 00001cd2: PUSH2 0x1cd9 00001cd5: PUSH2 0x1328 00001cd8: JUMP 00001cd9: JUMPDEST 00001cda: SWAP1 00001cdb: POP 00001cdc: PUSH2 0x1ce5 00001cdf: DUP3 00001ce0: DUP3 00001ce1: PUSH2 0x1c9f 00001ce4: JUMP 00001ce5: JUMPDEST 00001ce6: SWAP2 00001ce7: SWAP1 00001ce8: POP 00001ce9: JUMP 00001cea: JUMPDEST 00001ceb: PUSH0 00001cec: PUSH8 0xffffffffffffffff 00001cf5: DUP3 00001cf6: GT 00001cf7: ISZERO 00001cf8: PUSH2 0x1d04 00001cfb: JUMPI 00001cfc: PUSH2 0x1d03 00001cff: PUSH2 0x1c72 00001d02: JUMP 00001d03: JUMPDEST 00001d04: JUMPDEST 00001d05: PUSH1 0x20 00001d07: DUP3 00001d08: MUL 00001d09: SWAP1 00001d0a: POP 00001d0b: PUSH1 0x20 00001d0d: DUP2 00001d0e: ADD 00001d0f: SWAP1 00001d10: POP 00001d11: SWAP2 00001d12: SWAP1 00001d13: POP 00001d14: JUMP 00001d15: JUMPDEST 00001d16: PUSH0 00001d17: PUSH2 0x1d27 00001d1a: PUSH2 0x1d22 00001d1d: DUP5 00001d1e: PUSH2 0x1cea 00001d21: JUMP 00001d22: JUMPDEST 00001d23: PUSH2 0x1cd0 00001d26: JUMP 00001d27: JUMPDEST 00001d28: SWAP1 00001d29: POP 00001d2a: DUP1 00001d2b: DUP4 00001d2c: DUP3 00001d2d: MSTORE 00001d2e: PUSH1 0x20 00001d30: DUP3 00001d31: ADD 00001d32: SWAP1 00001d33: POP 00001d34: PUSH1 0x20 00001d36: DUP5 00001d37: MUL 00001d38: DUP4 00001d39: ADD 00001d3a: DUP6 00001d3b: DUP2 00001d3c: GT 00001d3d: ISZERO 00001d3e: PUSH2 0x1d4a 00001d41: JUMPI 00001d42: PUSH2 0x1d49 00001d45: PUSH2 0x1341 00001d48: JUMP 00001d49: JUMPDEST 00001d4a: JUMPDEST 00001d4b: DUP4 00001d4c: JUMPDEST 00001d4d: DUP2 00001d4e: DUP2 00001d4f: LT 00001d50: ISZERO 00001d51: PUSH2 0x1d73 00001d54: JUMPI 00001d55: DUP1 00001d56: PUSH2 0x1d5f 00001d59: DUP9 00001d5a: DUP3 00001d5b: PUSH2 0x1b2b 00001d5e: JUMP 00001d5f: JUMPDEST 00001d60: DUP5 00001d61: MSTORE 00001d62: PUSH1 0x20 00001d64: DUP5 00001d65: ADD 00001d66: SWAP4 00001d67: POP 00001d68: POP 00001d69: PUSH1 0x20 00001d6b: DUP2 00001d6c: ADD 00001d6d: SWAP1 00001d6e: POP 00001d6f: PUSH2 0x1d4c 00001d72: JUMP 00001d73: JUMPDEST 00001d74: POP 00001d75: POP 00001d76: POP 00001d77: SWAP4 00001d78: SWAP3 00001d79: POP 00001d7a: POP 00001d7b: POP 00001d7c: JUMP 00001d7d: JUMPDEST 00001d7e: PUSH0 00001d7f: DUP3 00001d80: PUSH1 0x1f 00001d82: DUP4 00001d83: ADD 00001d84: SLT 00001d85: PUSH2 0x1d91 00001d88: JUMPI 00001d89: PUSH2 0x1d90 00001d8c: PUSH2 0x1339 00001d8f: JUMP 00001d90: JUMPDEST 00001d91: JUMPDEST 00001d92: DUP2 00001d93: MLOAD 00001d94: PUSH2 0x1da1 00001d97: DUP5 00001d98: DUP3 00001d99: PUSH1 0x20 00001d9b: DUP7 00001d9c: ADD 00001d9d: PUSH2 0x1d15 00001da0: JUMP 00001da1: JUMPDEST 00001da2: SWAP2 00001da3: POP 00001da4: POP 00001da5: SWAP3 00001da6: SWAP2 00001da7: POP 00001da8: POP 00001da9: JUMP 00001daa: JUMPDEST 00001dab: PUSH0 00001dac: PUSH1 0x20 00001dae: DUP3 00001daf: DUP5 00001db0: SUB 00001db1: SLT 00001db2: ISZERO 00001db3: PUSH2 0x1dbf 00001db6: JUMPI 00001db7: PUSH2 0x1dbe 00001dba: PUSH2 0x1331 00001dbd: JUMP 00001dbe: JUMPDEST 00001dbf: JUMPDEST 00001dc0: PUSH0 00001dc1: DUP3 00001dc2: ADD 00001dc3: MLOAD 00001dc4: PUSH8 0xffffffffffffffff 00001dcd: DUP2 00001dce: GT 00001dcf: ISZERO 00001dd0: PUSH2 0x1ddc 00001dd3: JUMPI 00001dd4: PUSH2 0x1ddb 00001dd7: PUSH2 0x1335 00001dda: JUMP 00001ddb: JUMPDEST 00001ddc: JUMPDEST 00001ddd: PUSH2 0x1de8 00001de0: DUP5 00001de1: DUP3 00001de2: DUP6 00001de3: ADD 00001de4: PUSH2 0x1d7d 00001de7: JUMP 00001de8: JUMPDEST 00001de9: SWAP2 00001dea: POP 00001deb: POP 00001dec: SWAP3 00001ded: SWAP2 00001dee: POP 00001def: POP 00001df0: JUMP 00001df1: JUMPDEST 00001df2: PUSH0 00001df3: PUSH1 0xa0 00001df5: DUP3 00001df6: ADD 00001df7: SWAP1 00001df8: POP 00001df9: PUSH2 0x1e04 00001dfc: PUSH0 00001dfd: DUP4 00001dfe: ADD 00001dff: DUP10 00001e00: PUSH2 0x1b6a 00001e03: JUMP 00001e04: JUMPDEST 00001e05: PUSH2 0x1e11 00001e08: PUSH1 0x20 00001e0a: DUP4 00001e0b: ADD 00001e0c: DUP9 00001e0d: PUSH2 0x1b6a 00001e10: JUMP 00001e11: JUMPDEST 00001e12: DUP2 00001e13: DUP2 00001e14: SUB 00001e15: PUSH1 0x40 00001e17: DUP4 00001e18: ADD 00001e19: MSTORE 00001e1a: PUSH2 0x1e24 00001e1d: DUP2 00001e1e: DUP7 00001e1f: DUP9 00001e20: PUSH2 0x1bcb 00001e23: JUMP 00001e24: JUMPDEST 00001e25: SWAP1 00001e26: POP 00001e27: PUSH2 0x1e33 00001e2a: PUSH1 0x60 00001e2c: DUP4 00001e2d: ADD 00001e2e: DUP6 00001e2f: PUSH2 0x1474 00001e32: JUMP 00001e33: JUMPDEST 00001e34: PUSH2 0x1e40 00001e37: PUSH1 0x80 00001e39: DUP4 00001e3a: ADD 00001e3b: DUP5 00001e3c: PUSH2 0x1b6a 00001e3f: JUMP 00001e40: JUMPDEST 00001e41: SWAP8 00001e42: SWAP7 00001e43: POP 00001e44: POP 00001e45: POP 00001e46: POP 00001e47: POP 00001e48: POP 00001e49: POP 00001e4a: JUMP 00001e4b: JUMPDEST 00001e4c: PUSH0 00001e4d: DUP2 00001e4e: SWAP1 00001e4f: POP 00001e50: SWAP3 00001e51: SWAP2 00001e52: POP 00001e53: POP 00001e54: JUMP 00001e55: JUMPDEST 00001e56: POP 00001e57: JUMP 00001e58: JUMPDEST 00001e59: PUSH0 00001e5a: PUSH2 0x1e63 00001e5d: PUSH0 00001e5e: DUP4 00001e5f: PUSH2 0x1e4b 00001e62: JUMP 00001e63: JUMPDEST 00001e64: SWAP2 00001e65: POP 00001e66: PUSH2 0x1e6e 00001e69: DUP3 00001e6a: PUSH2 0x1e55 00001e6d: JUMP 00001e6e: JUMPDEST 00001e6f: PUSH0 00001e70: DUP3 00001e71: ADD 00001e72: SWAP1 00001e73: POP 00001e74: SWAP2 00001e75: SWAP1 00001e76: POP 00001e77: JUMP 00001e78: JUMPDEST 00001e79: PUSH0 00001e7a: PUSH2 0x1e82 00001e7d: DUP3 00001e7e: PUSH2 0x1e58 00001e81: JUMP 00001e82: JUMPDEST 00001e83: SWAP2 00001e84: POP 00001e85: DUP2 00001e86: SWAP1 00001e87: POP 00001e88: SWAP2 00001e89: SWAP1 00001e8a: POP 00001e8b: JUMP 00001e8c: JUMPDEST 00001e8d: PUSH32 0x5472616e7366657220746f2075736572206661696c6564000000000000000000 00001eae: PUSH0 00001eaf: DUP3 00001eb0: ADD 00001eb1: MSTORE 00001eb2: POP 00001eb3: JUMP 00001eb4: JUMPDEST 00001eb5: PUSH0 00001eb6: PUSH2 0x1ec0 00001eb9: PUSH1 0x17 00001ebb: DUP4 00001ebc: PUSH2 0x171c 00001ebf: JUMP 00001ec0: JUMPDEST 00001ec1: SWAP2 00001ec2: POP 00001ec3: PUSH2 0x1ecb 00001ec6: DUP3 00001ec7: PUSH2 0x1e8c 00001eca: JUMP 00001ecb: JUMPDEST 00001ecc: PUSH1 0x20 00001ece: DUP3 00001ecf: ADD 00001ed0: SWAP1 00001ed1: POP 00001ed2: SWAP2 00001ed3: SWAP1 00001ed4: POP 00001ed5: JUMP 00001ed6: JUMPDEST 00001ed7: PUSH0 00001ed8: PUSH1 0x20 00001eda: DUP3 00001edb: ADD 00001edc: SWAP1 00001edd: POP 00001ede: DUP2 00001edf: DUP2 00001ee0: SUB 00001ee1: PUSH0 00001ee2: DUP4 00001ee3: ADD 00001ee4: MSTORE 00001ee5: PUSH2 0x1eed 00001ee8: DUP2 00001ee9: PUSH2 0x1eb4 00001eec: JUMP 00001eed: JUMPDEST 00001eee: SWAP1 00001eef: POP 00001ef0: SWAP2 00001ef1: SWAP1 00001ef2: POP 00001ef3: JUMP 00001ef4: JUMPDEST 00001ef5: PUSH0 00001ef6: PUSH1 0x60 00001ef8: DUP3 00001ef9: ADD 00001efa: SWAP1 00001efb: POP 00001efc: PUSH2 0x1f07 00001eff: PUSH0 00001f00: DUP4 00001f01: ADD 00001f02: DUP7 00001f03: PUSH2 0x1474 00001f06: JUMP 00001f07: JUMPDEST 00001f08: PUSH2 0x1f14 00001f0b: PUSH1 0x20 00001f0d: DUP4 00001f0e: ADD 00001f0f: DUP6 00001f10: PUSH2 0x1474 00001f13: JUMP 00001f14: JUMPDEST 00001f15: PUSH2 0x1f21 00001f18: PUSH1 0x40 00001f1a: DUP4 00001f1b: ADD 00001f1c: DUP5 00001f1d: PUSH2 0x1b6a 00001f20: JUMP 00001f21: JUMPDEST 00001f22: SWAP5 00001f23: SWAP4 00001f24: POP 00001f25: POP 00001f26: POP 00001f27: POP 00001f28: JUMP 00001f29: JUMPDEST 00001f2a: PUSH0 00001f2b: DUP2 00001f2c: ISZERO 00001f2d: ISZERO 00001f2e: SWAP1 00001f2f: POP 00001f30: SWAP2 00001f31: SWAP1 00001f32: POP 00001f33: JUMP 00001f34: JUMPDEST 00001f35: PUSH2 0x1f3d 00001f38: DUP2 00001f39: PUSH2 0x1f29 00001f3c: JUMP 00001f3d: JUMPDEST 00001f3e: DUP2 00001f3f: EQ 00001f40: PUSH2 0x1f47 00001f43: JUMPI 00001f44: PUSH0 00001f45: DUP1 00001f46: REVERT 00001f47: JUMPDEST 00001f48: POP 00001f49: JUMP 00001f4a: JUMPDEST 00001f4b: PUSH0 00001f4c: DUP2 00001f4d: MLOAD 00001f4e: SWAP1 00001f4f: POP 00001f50: PUSH2 0x1f58 00001f53: DUP2 00001f54: PUSH2 0x1f34 00001f57: JUMP 00001f58: JUMPDEST 00001f59: SWAP3 00001f5a: SWAP2 00001f5b: POP 00001f5c: POP 00001f5d: JUMP 00001f5e: JUMPDEST 00001f5f: PUSH0 00001f60: PUSH1 0x20 00001f62: DUP3 00001f63: DUP5 00001f64: SUB 00001f65: SLT 00001f66: ISZERO 00001f67: PUSH2 0x1f73 00001f6a: JUMPI 00001f6b: PUSH2 0x1f72 00001f6e: PUSH2 0x1331 00001f71: JUMP 00001f72: JUMPDEST 00001f73: JUMPDEST 00001f74: PUSH0 00001f75: PUSH2 0x1f80 00001f78: DUP5 00001f79: DUP3 00001f7a: DUP6 00001f7b: ADD 00001f7c: PUSH2 0x1f4a 00001f7f: JUMP 00001f80: JUMPDEST 00001f81: SWAP2 00001f82: POP 00001f83: POP 00001f84: SWAP3 00001f85: SWAP2 00001f86: POP 00001f87: POP 00001f88: JUMP 00001f89: JUMPDEST 00001f8a: PUSH32 0x7472616e7366657246726f6d206661696c656400000000000000000000000000 00001fab: PUSH0 00001fac: DUP3 00001fad: ADD 00001fae: MSTORE 00001faf: POP 00001fb0: JUMP 00001fb1: JUMPDEST 00001fb2: PUSH0 00001fb3: PUSH2 0x1fbd 00001fb6: PUSH1 0x13 00001fb8: DUP4 00001fb9: PUSH2 0x171c 00001fbc: JUMP 00001fbd: JUMPDEST 00001fbe: SWAP2 00001fbf: POP 00001fc0: PUSH2 0x1fc8 00001fc3: DUP3 00001fc4: PUSH2 0x1f89 00001fc7: JUMP 00001fc8: JUMPDEST 00001fc9: PUSH1 0x20 00001fcb: DUP3 00001fcc: ADD 00001fcd: SWAP1 00001fce: POP 00001fcf: SWAP2 00001fd0: SWAP1 00001fd1: POP 00001fd2: JUMP 00001fd3: JUMPDEST 00001fd4: PUSH0 00001fd5: PUSH1 0x20 00001fd7: DUP3 00001fd8: ADD 00001fd9: SWAP1 00001fda: POP 00001fdb: DUP2 00001fdc: DUP2 00001fdd: SUB 00001fde: PUSH0 00001fdf: DUP4 00001fe0: ADD 00001fe1: MSTORE 00001fe2: PUSH2 0x1fea 00001fe5: DUP2 00001fe6: PUSH2 0x1fb1 00001fe9: JUMP 00001fea: JUMPDEST 00001feb: SWAP1 00001fec: POP 00001fed: SWAP2 00001fee: SWAP1 00001fef: POP 00001ff0: JUMP 00001ff1: JUMPDEST 00001ff2: PUSH0 00001ff3: PUSH1 0x40 00001ff5: DUP3 00001ff6: ADD 00001ff7: SWAP1 00001ff8: POP 00001ff9: PUSH2 0x2004 00001ffc: PUSH0 00001ffd: DUP4 00001ffe: ADD 00001fff: DUP6 00002000: PUSH2 0x1474 00002003: JUMP 00002004: JUMPDEST 00002005: PUSH2 0x2011 00002008: PUSH1 0x20 0000200a: DUP4 0000200b: ADD 0000200c: DUP5 0000200d: PUSH2 0x1474 00002010: JUMP 00002011: JUMPDEST 00002012: SWAP4 00002013: SWAP3 00002014: POP 00002015: POP 00002016: POP 00002017: JUMP 00002018: JUMPDEST 00002019: PUSH0 0000201a: PUSH1 0x40 0000201c: DUP3 0000201d: ADD 0000201e: SWAP1 0000201f: POP 00002020: PUSH2 0x202b 00002023: PUSH0 00002024: DUP4 00002025: ADD 00002026: DUP6 00002027: PUSH2 0x1474 0000202a: JUMP 0000202b: JUMPDEST 0000202c: PUSH2 0x2038 0000202f: PUSH1 0x20 00002031: DUP4 00002032: ADD 00002033: DUP5 00002034: PUSH2 0x1b6a 00002037: JUMP 00002038: JUMPDEST 00002039: SWAP4 0000203a: SWAP3 0000203b: POP 0000203c: POP 0000203d: POP 0000203e: JUMP 0000203f: JUMPDEST 00002040: PUSH0 00002041: PUSH1 0x20 00002043: DUP3 00002044: ADD 00002045: SWAP1 00002046: POP 00002047: PUSH2 0x2052 0000204a: PUSH0 0000204b: DUP4 0000204c: ADD 0000204d: DUP5 0000204e: PUSH2 0x1b6a 00002051: JUMP 00002052: JUMPDEST 00002053: SWAP3 00002054: SWAP2 00002055: POP 00002056: POP 00002057: JUMP 00002058: JUMPDEST 00002059: PUSH32 0x4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e 0000207a: PUSH0 0000207b: DUP3 0000207c: ADD 0000207d: MSTORE 0000207e: PUSH32 0x6374696f6e000000000000000000000000000000000000000000000000000000 0000209f: PUSH1 0x20 000020a1: DUP3 000020a2: ADD 000020a3: MSTORE 000020a4: POP 000020a5: JUMP 000020a6: JUMPDEST 000020a7: PUSH0 000020a8: PUSH2 0x20b2 000020ab: PUSH1 0x25 000020ad: DUP4 000020ae: PUSH2 0x171c 000020b1: JUMP 000020b2: JUMPDEST 000020b3: SWAP2 000020b4: POP 000020b5: PUSH2 0x20bd 000020b8: DUP3 000020b9: PUSH2 0x2058 000020bc: JUMP 000020bd: JUMPDEST 000020be: PUSH1 0x40 000020c0: DUP3 000020c1: ADD 000020c2: SWAP1 000020c3: POP 000020c4: SWAP2 000020c5: SWAP1 000020c6: POP 000020c7: JUMP 000020c8: JUMPDEST 000020c9: PUSH0 000020ca: PUSH1 0x20 000020cc: DUP3 000020cd: ADD 000020ce: SWAP1 000020cf: POP 000020d0: DUP2 000020d1: DUP2 000020d2: SUB 000020d3: PUSH0 000020d4: DUP4 000020d5: ADD 000020d6: MSTORE 000020d7: PUSH2 0x20df 000020da: DUP2 000020db: PUSH2 0x20a6 000020de: JUMP 000020df: JUMPDEST 000020e0: SWAP1 000020e1: POP 000020e2: SWAP2 000020e3: SWAP1 000020e4: POP 000020e5: JUMP 000020e6: JUMPDEST 000020e7: PUSH32 0x4e6f2062616c616e636520746f20776974686472617700000000000000000000 00002108: PUSH0 00002109: DUP3 0000210a: ADD 0000210b: MSTORE 0000210c: POP 0000210d: JUMP 0000210e: JUMPDEST 0000210f: PUSH0 00002110: PUSH2 0x211a 00002113: PUSH1 0x16 00002115: DUP4 00002116: PUSH2 0x171c 00002119: JUMP 0000211a: JUMPDEST 0000211b: SWAP2 0000211c: POP 0000211d: PUSH2 0x2125 00002120: DUP3 00002121: PUSH2 0x20e6 00002124: JUMP 00002125: JUMPDEST 00002126: PUSH1 0x20 00002128: DUP3 00002129: ADD 0000212a: SWAP1 0000212b: POP 0000212c: SWAP2 0000212d: SWAP1 0000212e: POP 0000212f: JUMP 00002130: JUMPDEST 00002131: PUSH0 00002132: PUSH1 0x20 00002134: DUP3 00002135: ADD 00002136: SWAP1 00002137: POP 00002138: DUP2 00002139: DUP2 0000213a: SUB 0000213b: PUSH0 0000213c: DUP4 0000213d: ADD 0000213e: MSTORE 0000213f: PUSH2 0x2147 00002142: DUP2 00002143: PUSH2 0x210e 00002146: JUMP 00002147: JUMPDEST 00002148: SWAP1 00002149: POP 0000214a: SWAP2 0000214b: SWAP1 0000214c: POP 0000214d: JUMP 0000214e: JUMPDEST 0000214f: PUSH32 0x5769746864726177616c206661696c6564000000000000000000000000000000 00002170: PUSH0 00002171: DUP3 00002172: ADD 00002173: MSTORE 00002174: POP 00002175: JUMP 00002176: JUMPDEST 00002177: PUSH0 00002178: PUSH2 0x2182 0000217b: PUSH1 0x11 0000217d: DUP4 0000217e: PUSH2 0x171c 00002181: JUMP 00002182: JUMPDEST 00002183: SWAP2 00002184: POP 00002185: PUSH2 0x218d 00002188: DUP3 00002189: PUSH2 0x214e 0000218c: JUMP 0000218d: JUMPDEST 0000218e: PUSH1 0x20 00002190: DUP3 00002191: ADD 00002192: SWAP1 00002193: POP 00002194: SWAP2 00002195: SWAP1 00002196: POP 00002197: JUMP 00002198: JUMPDEST 00002199: PUSH0 0000219a: PUSH1 0x20 0000219c: DUP3 0000219d: ADD 0000219e: SWAP1 0000219f: POP 000021a0: DUP2 000021a1: DUP2 000021a2: SUB 000021a3: PUSH0 000021a4: DUP4 000021a5: ADD 000021a6: MSTORE 000021a7: PUSH2 0x21af 000021aa: DUP2 000021ab: PUSH2 0x2176 000021ae: JUMP 000021af: JUMPDEST 000021b0: SWAP1 000021b1: POP 000021b2: SWAP2 000021b3: SWAP1 000021b4: POP 000021b5: JUMP 000021b6: JUMPDEST 000021b7: PUSH0 000021b8: PUSH2 0x21c0 000021bb: DUP3 000021bc: PUSH2 0x19f0 000021bf: JUMP 000021c0: JUMPDEST 000021c1: PUSH2 0x21ca 000021c4: DUP2 000021c5: DUP6 000021c6: PUSH2 0x1e4b 000021c9: JUMP 000021ca: JUMPDEST 000021cb: SWAP4 000021cc: POP 000021cd: PUSH2 0x21da 000021d0: DUP2 000021d1: DUP6 000021d2: PUSH1 0x20 000021d4: DUP7 000021d5: ADD 000021d6: PUSH2 0x1a0a 000021d9: JUMP 000021da: JUMPDEST 000021db: DUP1 000021dc: DUP5 000021dd: ADD 000021de: SWAP2 000021df: POP 000021e0: POP 000021e1: SWAP3 000021e2: SWAP2 000021e3: POP 000021e4: POP 000021e5: JUMP 000021e6: JUMPDEST 000021e7: PUSH0 000021e8: PUSH2 0x21f1 000021eb: DUP3 000021ec: DUP5 000021ed: PUSH2 0x21b6 000021f0: JUMP 000021f1: JUMPDEST 000021f2: SWAP2 000021f3: POP 000021f4: DUP2 000021f5: SWAP1 000021f6: POP 000021f7: SWAP3 000021f8: SWAP2 000021f9: POP 000021fa: POP 000021fb: JUMP 000021fc: JUMPDEST 000021fd: PUSH32 0x64656c656761746563616c6c206572726f7220776974686f7574206461746100 0000221e: PUSH0 0000221f: DUP3 00002220: ADD 00002221: MSTORE 00002222: POP 00002223: JUMP 00002224: JUMPDEST 00002225: PUSH0 00002226: PUSH2 0x2230 00002229: PUSH1 0x1f 0000222b: DUP4 0000222c: PUSH2 0x171c 0000222f: JUMP 00002230: JUMPDEST 00002231: SWAP2 00002232: POP 00002233: PUSH2 0x223b 00002236: DUP3 00002237: PUSH2 0x21fc 0000223a: JUMP 0000223b: JUMPDEST 0000223c: PUSH1 0x20 0000223e: DUP3 0000223f: ADD 00002240: SWAP1 00002241: POP 00002242: SWAP2 00002243: SWAP1 00002244: POP 00002245: JUMP 00002246: JUMPDEST 00002247: PUSH0 00002248: PUSH1 0x20 0000224a: DUP3 0000224b: ADD 0000224c: SWAP1 0000224d: POP 0000224e: DUP2 0000224f: DUP2 00002250: SUB 00002251: PUSH0 00002252: DUP4 00002253: ADD 00002254: MSTORE 00002255: PUSH2 0x225d 00002258: DUP2 00002259: PUSH2 0x2224 0000225c: JUMP 0000225d: JUMPDEST 0000225e: SWAP1 0000225f: POP 00002260: SWAP2 00002261: SWAP1 00002262: POP 00002263: JUMP 00002264: INVALID 00002265: LOG2 00002266: PUSH5 0x6970667358 0000226c: UNKNOWN(0x22) 0000226d: SLT 0000226e: KECCAK256 0000226f: MLOAD 00002270: UNKNOWN(0x0E) 00002271: UNKNOWN(0xD1) 00002272: BLOBBASEFEE 00002273: UNKNOWN(0xB1) 00002274: CODECOPY 00002275: PUSH13 0xe5447cce8a39bd28ff749b9428 00002283: UNKNOWN(0xBB) 00002284: MCOPY 00002285: COINBASE 00002286: UNKNOWN(0xA8) 00002287: UNKNOWN(0xC6) 00002288: UNKNOWN(0xC4) 00002289: UNKNOWN(0xAC) 0000228a: UNKNOWN(0xB9) 0000228b: CODESIZE 0000228c: ISZERO 0000228d: SSTORE 0000228e: TLOAD 0000228f: PUSH5 0x736f6c6343 00002295: STOP 00002296: ADDMOD 00002297: XOR 00002298: STOP 00002299: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | codex | Delegatecall to computed target enables arbitrary code execution if reachable | 85 | no | — |
viewevidence_json{
"evidence": "Detector evidence flags DELEGATECALL at pc 4497 with target_expression_category=\"computed\" and untrusted_delegatecall_count=1. Disassembly around pc 4445\u20134497 shows masking a stack\u2011provided address before DELEGATECALL; no explicit caller check appears in that block, and guard detection is heuristic.",
"locations": [
"pc:4497"
],
"recommendation": "Restrict the delegatecall entrypoint to a strict admin/allowlist, validate target addresses, and prefer regular CALL for untrusted contracts. Add explicit access checks at the entrypoint and emit events for delegatecall usage.",
"exploit_scenario": "A caller who can reach the delegatecall path and influence the target (and calldata) can execute arbitrary code in this contract\u2019s storage context, potentially overwriting ownership/config slots or draining funds. If the entrypoint is owner\u2011only this risk is confined to a compromised owner or misconfiguration, but from bytecode alone the access control cannot be confirmed."
}
|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x3e87d86ffbf4c724bf90a3ff09c2ccadac29e7be8743e6496cfceca526eaba7d
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 132,
"trace_id": "0x3e87d86ffbf4c724bf90a3ff09c2ccadac29e7be8743e6496cfceca526eaba7d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x970fd18c",
"selector": "0x970fd18c",
"calldata_variants": [
"0x970fd18c",
"0x970fd18c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde05e6a0",
"selector": "0xde05e6a0",
"calldata_variants": [
"0xde05e6a0",
"0xde05e6a00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3cbfe9d",
"selector": "0xe3cbfe9d",
"calldata_variants": [
"0xe3cbfe9d",
"0xe3cbfe9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe941fa78",
"selector": "0xe941fa78",
"calldata_variants": [
"0xe941fa78",
"0xe941fa780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1694505e",
"selector": "0x1694505e",
"calldata_variants": [
"0x1694505e",
"0x1694505e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2c76d7a6",
"selector": "0x2c76d7a6",
"calldata_variants": [
"0x2c76d7a6",
"0x2c76d7a60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4497,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 3910,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4293,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x44ab04037bc855c2539ce4db50ed0869e7cb9f554cb1d7899c9421b6ce523371
call_targets:
0x95fe5961368664c3da8879d7542149ddf0738d82
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x44ab04037bc855c2539ce4db50ed0869e7cb9f554cb1d7899c9421b6ce523371",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x95fe5961368664c3da8879d7542149ddf0738d82"
],
"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": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x970fd18c",
"selector": "0x970fd18c",
"calldata_variants": [
"0x970fd18c",
"0x970fd18c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde05e6a0",
"selector": "0xde05e6a0",
"calldata_variants": [
"0xde05e6a0",
"0xde05e6a00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3cbfe9d",
"selector": "0xe3cbfe9d",
"calldata_variants": [
"0xe3cbfe9d",
"0xe3cbfe9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe941fa78",
"selector": "0xe941fa78",
"calldata_variants": [
"0xe941fa78",
"0xe941fa780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1694505e",
"selector": "0x1694505e",
"calldata_variants": [
"0x1694505e",
"0x1694505e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2c76d7a6",
"selector": "0x2c76d7a6",
"calldata_variants": [
"0x2c76d7a6",
"0x2c76d7a60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 932,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1320,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1725,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 11,
"guards_detected": [
{
"pc": 3910,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4293,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 11
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x44ab04037bc855c2539ce4db50ed0869e7cb9f554cb1d7899c9421b6ce523371
call_targets:
0x95fe5961368664c3da8879d7542149ddf0738d82
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x44ab04037bc855c2539ce4db50ed0869e7cb9f554cb1d7899c9421b6ce523371",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x95fe5961368664c3da8879d7542149ddf0738d82"
],
"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": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x970fd18c",
"selector": "0x970fd18c",
"calldata_variants": [
"0x970fd18c",
"0x970fd18c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde05e6a0",
"selector": "0xde05e6a0",
"calldata_variants": [
"0xde05e6a0",
"0xde05e6a00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3cbfe9d",
"selector": "0xe3cbfe9d",
"calldata_variants": [
"0xe3cbfe9d",
"0xe3cbfe9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe941fa78",
"selector": "0xe941fa78",
"calldata_variants": [
"0xe941fa78",
"0xe941fa780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1694505e",
"selector": "0x1694505e",
"calldata_variants": [
"0x1694505e",
"0x1694505e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2c76d7a6",
"selector": "0x2c76d7a6",
"calldata_variants": [
"0x2c76d7a6",
"0x2c76d7a60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 932,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1320,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1725,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 11,
"guards_detected": [
{
"pc": 3910,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4293,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 12
}
|