TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019b3831-b4e0-71c5-8142-0d761b2b7ab8

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 7:59 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
2
Validated
2
Source
Bytecode only
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 2 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
57 artifact.fetch complete 1 / 3 3 months ago
58 tool.cast_disasm complete 1 / 3 3 months ago
43027 analysis.bundle complete 1 / 3 1 week ago
43028 capability.graph complete 1 / 3 1 week ago
43029 detector.run complete 1 / 3 1 week ago
43030 validation.fork complete 1 / 3 1 week ago
44684 report.consolidate complete 1 / 6 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Bytecode review found one high-confidence arithmetic/accounting issue and two lower-confidence ETH-transfer hazards. No proxy/delegatecall pattern was present (`is_proxy=false`, `delegatecall_count=0`).
View stdout
{"no_findings":false,"summary":"Bytecode review found one high-confidence arithmetic/accounting issue and two lower-confidence ETH-transfer hazards. No proxy/delegatecall pattern was present (`is_proxy=false`, `delegatecall_count=0`).","findings":[{"severity":"high","category":"math","title":"Cooldown/lock check uses reversed subtraction, collapsing the wait period","exploit_scenario":"Selectors `0x3ccfd60b` and `0x959499b6` both gate ETH payouts with a timestamp check derived from `lastActionTs - block.timestamp`. In this old wrapping-arithmetic bytecode, once `block.timestamp` moves past the stored timestamp, the subtraction underflows to a huge value and the guard stops blocking. An attacker can therefore claim/withdraw again after only the next block instead of waiting the configured interval in slot `0x06`, draining rewards or principal much faster than intended.","recommendation":"Rebuild the guard as `block.timestamp - lastActionTs >= cooldown` (or equivalent) using checked arithmetic, and add explicit tests for same-block, next-block, and full-cooldown cases. Any helper/view function that reports remaining time should also use the corrected direction.","evidence":"At `pc:0x621-0x629` the contract loads slot `0x06`, then computes `mapping(slot0x0b, caller) - TIMESTAMP` via `TIMESTAMP; SUB`, followed by `LT` and a conditional jump. The same pattern appears again at `pc:0x7fb-0x813` and `pc:0x973-0x9ab`. A related view/helper path also returns `mapping(slot0x0b, caller) - TIMESTAMP`, corroborating the reversed subtraction. This is bytecode-level inference, but the opcode order is explicit.","locations":["pc:0x621","pc:0x622","pc:0x625","pc:0x626","pc:0x7fb","pc:0x80c","pc:0x80f","pc:0x973","pc:0x9a4","pc:0x9a7","selector:0x3ccfd60b","selector:0x959499b6","selector:0x8351a0d4"]},{"severity":"medium","category":"other","title":"Fallback/unknown-selector path silently accepts ETH without crediting sender","exploit_scenario":"A user who sends plain ETH to the contract, or calls it with an unknown selector and nonzero `msg.value`, reaches the default `STOP` path instead of the deposit bookkeeping. The ETH remains in contract balance, but the sender is never credited in the per-user storage used by withdrawal logic, so those funds are effectively lost from that sender's perspective.","recommendation":"Make `receive`/fallback revert unless the transfer is meant to be a deposit, or route plain ETH into the same accounting path as the explicit deposit function(s). Add tests for empty calldata, bad selectors, and forced ETH delivery edge cases.","evidence":"`CALLDATASIZE; ISZERO; PUSH2 0x0103; JUMPI` at startup sends empty-calldata calls to the default handler, and unmatched selectors fall through `PUSH2 0x0103; JUMP` at `pc:0xff-0x102`. The destination at `pc:0x103/0x104` is just `JUMPDEST; STOP`, with no revert and no storage updates. By contrast, deposit accounting (`slot0x0a[caller] += CALLVALUE`) only appears in the explicit deposit path starting at `pc:0x543` (`selector:0xd0e30db0`).","locations":["pc:0x5","pc:0x7","pc:0xff","pc:0x103","pc:0x104","pc:0x5a4","selector:0xd0e30db0","selector:0x0de9cacd"]},{"severity":"low","category":"other","title":"ETH payouts are sent with stipend-only CALL semantics, which can lock funds for contract recipients","exploit_scenario":"The payout sites at `pc:0x8cc` and `pc:0xa01` send ETH to `CALLER` using a `CALL` sequence with no `GAS` opcode and a pushed zero gas argument. That implies stipend-only value transfer semantics. EOAs will usually succeed, but many contract wallets/fallbacks will revert or need more than the stipend, causing claims/withdrawals to fail and potentially leaving funds stuck for those users.","recommendation":"Use a modern low-level call pattern that forwards adequate gas and handles failures explicitly, then reorder state changes into checks-effects-interactions or add a reentrancy guard. If only EOAs are intended, enforce that explicitly rather than relying on stipend behavior.","evidence":"Detector findings flagged reachable value-bearing CALLs at `pc:0x714`, `pc:0x8cb`, and `pc:0xa01`. Manual stack reconstruction of the bytecode around the user-facing payout sites shows the CALL gas argument is built from `PUSH1 0x00` rather than `GAS`, so these are stipend-only ETH sends. This is an inference from opcode order, but the absence of a `GAS` opcode before the calls is explicit.","locations":["pc:0x8cb","pc:0xa01","selector:0x3ccfd60b","selector:0x959499b6"]}]}
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-h9rar2qn
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5a09-776d-78e0-ad44-1988141663f9
--------
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.
warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime.
exec
/bin/bash -lc pwd in /tmp/codex-h9rar2qn
 succeeded in 0ms:
/tmp/codex-h9rar2qn

exec
/bin/bash -lc 'rg --files' in /tmp/codex-h9rar2qn
 succeeded in 0ms:
codex-output-schema.json
BYTECODE_BUNDLE.json

exec
/bin/bash -lc "sed -n '1,260p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
{
  "analysis_artifact": {
    "address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
    "artifact_hash": "0x133b743085ce7d1fca5259afc54948e5e13fd3a5521cba7c10ddde7ac4b254e2",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 10,
          "hash": "0xf336db1ca08fe797ccf50bdaaa65326fa7e12bf90f0d2e021619d898eb4a7e84",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "CALLDATASIZE",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 0
        },
        {
          "end_pc": 56,
          "hash": "0x2798806f4363a706abe40122c73de70c90f1dfd040aa05c5d02e1bd34aba9c50",
          "opcodes": [
            "PUSH1",
            "CALLDATALOAD",
            "PUSH29",
            "OP_90",
            "DIV",
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 11
        },
        {
          "end_pc": 67,
          "hash": "0x10e4b33cf1c0b16666e1bb30b5bdd930e8a0ec4f81105b3b1dc8729719ba91d6",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 57
        },
        {
          "end_pc": 78,
          "hash": "0xec9e6245c12c844e20f8b5265a4e2fad67f5e62488b34458cb86f19c5411c39e",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 68
        },
        {
          "end_pc": 89,
          "hash": "0x91b1c04ba5395a70a3005b6b909e41d31e2f7c8417918bb65ae4459ff7e89eb8",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 79
        },
        {
          "end_pc": 100,
          "hash": "0x80de406eeb9c3150b4307ac6240df7744a36fd15ba015640857e4b2c93db6576",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 90
        },
        {
          "end_pc": 111,
          "hash": "0x1c47a21e30b61917cd306dbe6eee72530d831b5fc78d550aa059d0ab2d2cb687",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 101
        },
        {
          "end_pc": 122,
          "hash": "0x9091bee25124e916ec9ae8385b941c8347c10270250b6c0a559618f3c6feb2c5",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 112
        },
        {
          "end_pc": 133,
          "hash": "0x2b1aae06b00dd90f6f3114d27ef2deed4023c1b6fd0ecfa262161908eb39353d",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 123
        },
        {
          "end_pc": 144,
          "hash": "0x42b81294903e05a9dabe6db81e5cd3b07a78c14617fb143f1745589302f55f23",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 134
        },
        {
          "end_pc": 155,
          "hash": "0x1eba687776fa4787f27d5cb4e2b69980f647b72a713acc9dad31c6188113ec00",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 145
        },
        {
          "end_pc": 166,
          "hash": "0xa90c2430b3dc03504cb81c13c8bd51ad644442eaf12b808e6ee36e29eb1ecf5b",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 156
        },
        {
          "end_pc": 177,
          "hash": "0x72970614c1e7604b82c467cb70c7f8e0cd952c0c0dda4f40072eeaeb3fd17374",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 167
        },
        {
          "end_pc": 188,
          "hash": "0x5fa3a4ed6041e2671e094c40fa97ea6c3d158a3ae5ef3f182d9420d1db01f26e",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 178
        },
        {
          "end_pc": 199,
          "hash": "0x28a303a8a96dde8a496b90fd076616569bb88a1e24fccfa4911b8862e7c5daef",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 189
        },
        {
          "end_pc": 210,
          "hash": "0x72e526d03b976768c9ecc521048ff1ee1be65e3df9c8752a0fe489dc0930ed97",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 200
        },
        {
          "end_pc": 221,
          "hash": "0x7e31ac2bfffb4e252cca67adb14868a343a0ea7fc01890acdb51470569a9349f",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 211
        },
        {
          "end_pc": 232,
          "hash": "0xd745f724e876a814e3264e895dd0fb2be06ac7bdf02c4d7e5b4967a700fa349d",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 222
        },
        {
          "end_pc": 243,
          "hash": "0x37f39d4975d6ffda50e3a2cf4e5b92381f40d7525b59f2d154c52e7dcb288043",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 233
        },
        {
          "end_pc": 254,
          "hash": "0x7241e7c748473c46315eef5fb8e0e5c4eb6b2e5f273760e2adc279cf557f0866",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 244
        },
        {
          "end_pc": 258,
          "hash": "0xedd5fb9222fbdb522830ec1fdc4f746554a69f5e9e222481bad2b917bcd1417f",
          "opcodes": [

exec
/bin/bash -lc "sed -n '1,220p' codex-output-schema.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
{"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
exec
/bin/bash -lc 'wc -l BYTECODE_BUNDLE.json' in /tmp/codex-h9rar2qn
 succeeded in 0ms:
7954 BYTECODE_BUNDLE.json

exec
/bin/bash -lc "rg -n 'detector|selector|delegatecall|callsite|storage|proxy|EIP|1967|beacon|selfdestruct|reentr|upgrade|admin|owner|auth|external_calls|findings|DELEGATECALL|CALLCODE|STATICCALL|CALL\\b' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
6:      "auth": {
1650:            "CALL",
1904:            "CALL",
2121:            "CALL",
2292:      "callsites": [
2294:          "opcode": "CALL",
2301:          "opcode": "CALL",
2308:          "opcode": "CALL",
2773:      "dispatcher_type": "selector_jump_table",
2777:          "selector": "0x0de9cacd"
2781:          "selector": "0x12065fe0"
2785:          "selector": "0x13060833"
2789:          "selector": "0x27e235e3"
2793:          "selector": "0x3ccfd60b"
2797:          "selector": "0x481c6a75"
2801:          "selector": "0x4afdd0e7"
2805:          "selector": "0x5294010f"
2809:          "selector": "0x679dffb4"
2813:          "selector": "0x8351a0d4"
2817:          "selector": "0x8b3aa967"
2821:          "selector": "0x959499b6"
2825:          "selector": "0x978bbdb9"
2829:          "selector": "0xbbd4e8c9"
2833:          "selector": "0xd0e30db0"
2837:          "selector": "0xd9607482"
2841:          "selector": "0xea362937"
2845:          "selector": "0xedf26d9b"
2849:          "selector": "0xfc7e286d"
2854:          "auth": {
2858:          "selector": "0x0de9cacd",
2861:            "delegatecall": 0,
2862:            "selfdestruct": 0,
2865:          "storage": {
3028:          "auth": {
3032:          "selector": "0x12065fe0",
3035:            "delegatecall": 0,
3036:            "selfdestruct": 0,
3039:          "storage": {
3202:          "auth": {
3206:          "selector": "0x13060833",
3209:            "delegatecall": 0,
3210:            "selfdestruct": 0,
3213:          "storage": {
3376:          "auth": {
3380:          "selector": "0x27e235e3",
3383:            "delegatecall": 0,
3384:            "selfdestruct": 0,
3387:          "storage": {
3550:          "auth": {
3554:          "selector": "0x3ccfd60b",
3557:            "delegatecall": 0,
3558:            "selfdestruct": 0,
3561:          "storage": {
3724:          "auth": {
3728:          "selector": "0x481c6a75",
3731:            "delegatecall": 0,
3732:            "selfdestruct": 0,
3735:          "storage": {
3898:          "auth": {
3902:          "selector": "0x4afdd0e7",
3905:            "delegatecall": 0,
3906:            "selfdestruct": 0,
3909:          "storage": {
4072:          "auth": {
4076:          "selector": "0x5294010f",
4079:            "delegatecall": 0,
4080:            "selfdestruct": 0,
4083:          "storage": {
4246:          "auth": {
4250:          "selector": "0x679dffb4",
4253:            "delegatecall": 0,
4254:            "selfdestruct": 0,
4257:          "storage": {
4420:          "auth": {
4424:          "selector": "0x8351a0d4",
4427:            "delegatecall": 0,
4428:            "selfdestruct": 0,
4431:          "storage": {
4594:          "auth": {
4598:          "selector": "0x8b3aa967",
4601:            "delegatecall": 0,
4602:            "selfdestruct": 0,
4605:          "storage": {
4768:          "auth": {
4772:          "selector": "0x959499b6",
4775:            "delegatecall": 0,
4776:            "selfdestruct": 0,
4779:          "storage": {
4942:          "auth": {
4946:          "selector": "0x978bbdb9",
4949:            "delegatecall": 0,
4950:            "selfdestruct": 0,
4953:          "storage": {
5116:          "auth": {
5120:          "selector": "0xbbd4e8c9",
5123:            "delegatecall": 0,
5124:            "selfdestruct": 0,
5127:          "storage": {
5290:          "auth": {
5294:          "selector": "0xd0e30db0",
5297:            "delegatecall": 0,
5298:            "selfdestruct": 0,
5301:          "storage": {
5464:          "auth": {
5468:          "selector": "0xd9607482",
5471:            "delegatecall": 0,
5472:            "selfdestruct": 0,
5475:          "storage": {
5638:          "auth": {
5642:          "selector": "0xea362937",
5645:            "delegatecall": 0,
5646:            "selfdestruct": 0,
5649:          "storage": {
5812:          "auth": {
5816:          "selector": "0xedf26d9b",
5819:            "delegatecall": 0,
5820:            "selfdestruct": 0,
5823:          "storage": {
5986:          "auth": {
5990:          "selector": "0xfc7e286d",
5993:            "delegatecall": 0,
5994:            "selfdestruct": 0,
5997:          "storage": {
6160:      "selectors": [
6185:        "delegatecall": 0,
6186:        "selfdestruct": 0,
6188:        "upgrade_slot_write_suspected": false
6190:      "storage": {
6381:    "is_proxy": false,
7700:          "opcode": "CALL",
7702:          "type": "callsite"
7706:          "opcode": "CALL",
7708:          "type": "callsite"
7712:          "opcode": "CALL",
7714:          "type": "callsite"
7723:          "selector": "0x0de9cacd",
7729:          "selector": "0x12065fe0",
7735:          "selector": "0x13060833",
7741:          "selector": "0x27e235e3",
7747:          "selector": "0x3ccfd60b",
7753:          "selector": "0x481c6a75",
7759:          "selector": "0x4afdd0e7",
7765:          "selector": "0x5294010f",
7771:          "selector": "0x679dffb4",
7777:          "selector": "0x8351a0d4",
7783:          "selector": "0x8b3aa967",
7789:          "selector": "0x959499b6",
7795:          "selector": "0x978bbdb9",
7801:          "selector": "0xbbd4e8c9",
7807:          "selector": "0xd0e30db0",
7813:          "selector": "0xd9607482",
7819:          "selector": "0xea362937",
7825:          "selector": "0xedf26d9b",
7831:          "selector": "0xfc7e286d",
7841:  "detector_findings": [
7848:            "opcode": "CALL",
7855:            "opcode": "CALL",
7862:            "opcode": "CALL",
7873:        "sink": "CALL"
7876:      "title": "Untrusted CALL target/value reachable",
7888:        "sink": "CALL",
7901:            "opcode": "CALL",
7908:            "opcode": "CALL",
7915:            "opcode": "CALL",
7925:        "sink": "CALL",
7941:        "sink": "CALL",
7951:    "delegatecall_count": 0,
7953:    "selfdestruct_count": 0

exec
/bin/bash -lc "sed -n '2288,2325p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
          ],
          "start_pc": 2781
        }
      ],
      "callsites": [
        {
          "opcode": "CALL",
          "pc": 1812,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 2251,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 2561,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "cfg_edges": [
        {
          "from": "bb:0",
          "to": "bb:259",
          "type": "control_flow"
        },
        {
          "from": "bb:0",
          "to": "bb:11",
          "type": "control_flow_fallthrough"
        },

exec
/bin/bash -lc "sed -n '2770,2868p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
        }
      ],
      "cfg_hash": "0x5a18b6de2b21725b02f1bbd48f48ce3017dc2a59f3ec0da63345c6842732cef8",
      "dispatcher_type": "selector_jump_table",
      "function_entries": [
        {
          "entry_pc": 302407648,
          "selector": "0x0de9cacd"
        },
        {
          "entry_pc": 319162419,
          "selector": "0x12065fe0"
        },
        {
          "entry_pc": 669136355,
          "selector": "0x13060833"
        },
        {
          "entry_pc": 1020253707,
          "selector": "0x27e235e3"
        },
        {
          "entry_pc": 1209821813,
          "selector": "0x3ccfd60b"
        },
        {
          "entry_pc": 1258148071,
          "selector": "0x481c6a75"
        },
        {
          "entry_pc": 1385431311,
          "selector": "0x4afdd0e7"
        },
        {
          "entry_pc": 1738407860,
          "selector": "0x5294010f"
        },
        {
          "entry_pc": 2203164884,
          "selector": "0x679dffb4"
        },
        {
          "entry_pc": 2335877479,
          "selector": "0x8351a0d4"
        },
        {
          "entry_pc": 2509543862,
          "selector": "0x8b3aa967"
        },
        {
          "entry_pc": 2542517689,
          "selector": "0x959499b6"
        },
        {
          "entry_pc": 3151292617,
          "selector": "0x978bbdb9"
        },
        {
          "entry_pc": 3504541104,
          "selector": "0xbbd4e8c9"
        },
        {
          "entry_pc": 3646977154,
          "selector": "0xd0e30db0"
        },
        {
          "entry_pc": 3929418039,
          "selector": "0xd9607482"
        },
        {
          "entry_pc": 3992087963,
          "selector": "0xea362937"
        },
        {
          "entry_pc": 4236126317,
          "selector": "0xedf26d9b"
        },
        {
          "entry_pc": null,
          "selector": "0xfc7e286d"
        }
      ],
      "functions": [
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 302407648,
          "selector": "0x0de9cacd",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 49,
            "slots": [
              {

exec
/bin/bash -lc "sed -n '6160,6215p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
      "selectors": [
        "0x0de9cacd",
        "0x12065fe0",
        "0x13060833",
        "0x27e235e3",
        "0x3ccfd60b",
        "0x481c6a75",
        "0x4afdd0e7",
        "0x5294010f",
        "0x679dffb4",
        "0x8351a0d4",
        "0x8b3aa967",
        "0x959499b6",
        "0x978bbdb9",
        "0xbbd4e8c9",
        "0xd0e30db0",
        "0xd9607482",
        "0xea362937",
        "0xedf26d9b",
        "0xfc7e286d"
      ],
      "sinks": {
        "call": 3,
        "create": 0,
        "create2": 0,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0,
        "upgrade_slot_write_suspected": false
      },
      "storage": {
        "keccak_count": 25,
        "reads": 49,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 942,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 951,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 960,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 969,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",

exec
/bin/bash -lc "sed -n '7841,7954p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
  "detector_findings": [
    {
      "confidence": 60,
      "evidence_json": {
        "call_count": 3,
        "examples": [
          {
            "opcode": "CALL",
            "pc": 1812,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 2251,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 2561,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          }
        ],
        "guards_detected": [],
        "untrusted_call_count": 3
      },
      "normalized_json": {
        "sink": "CALL"
      },
      "severity": "high",
      "title": "Untrusted CALL target/value reachable",
      "validated": true,
      "validation_json": {
        "attempts": 1,
        "call_targets": [
          "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
          "0xee291517c6290faf94dee71647c27b9737b2a2d2"
        ],
        "classification": "target_varies",
        "confirmed": true,
        "errors": 0,
        "matched_probe": null,
        "sink": "CALL",
        "status": "confirmed",
        "target_varies": true,
        "trace_id": "0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205",
        "trace_mode": "callTracer"
      }
    },
    {
      "confidence": 55,
      "evidence_json": {
        "eth_value_calls": 3,
        "examples": [
          {
            "opcode": "CALL",
            "pc": 1812,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 2251,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 2561,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          }
        ],
        "guards_detected": []
      },
      "normalized_json": {
        "sink": "CALL",
        "value": "nonzero"
      },
      "severity": "high",
      "title": "ETH value transfer possible",
      "validated": true,
      "validation_json": {
        "attempts": 1,
        "call_targets": [
          "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
          "0xee291517c6290faf94dee71647c27b9737b2a2d2"
        ],
        "classification": "target_varies",
        "confirmed": true,
        "errors": 0,
        "matched_probe": null,
        "sink": "CALL",
        "status": "confirmed",
        "target_varies": true,
        "trace_id": "0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205",
        "trace_mode": "callTracer"
      }
    }
  ],
  "heuristics_summary": {
    "create2_count": 0,
    "delegatecall_count": 0,
    "flags": [],
    "selfdestruct_count": 0
  }

exec
/bin/bash -lc "rg -n '1812|2251|2561|0xee291517c6290faf94dee71647c27b9737b2a2d2|0x4f0255319faa4a7915856300f5ff98a2fe86ae97|942|951|960|969' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
3:    "address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
175:          "hash": "0x5fa3a4ed6041e2671e094c40fa97ea6c3d158a3ae5ef3f182d9420d1db01f26e",
312:          "hash": "0xa0e960585bbedae271178bcaa0ae42c95c208977deac1f70aa6442d051e78d77",
356:          "hash": "0xdff6332724fc859ba624854f4a6829d7f96046693a2e706c90d9b2f78ea70ec0",
448:          "hash": "0xc1dd9fc3d89426be78cab80a7b14322f37769ed43cb8b5d024c72da22234c358",
502:          "hash": "0xe8ea0761ba35708495496541403cffd5d4bdcf89c9965e87951b0b364efe6abb",
2096:          "hash": "0xf23b1ef87c37af42d82aa1094203c5061f993d5a6de08330fcf6dabade2ec52b",
2295:          "pc": 1812,
2302:          "pc": 2251,
2309:          "pc": 2561,
2837:          "selector": "0xd9607482"
2870:                "pc": 942,
2875:                "pc": 951,
2880:                "pc": 960,
2885:                "pc": 969,
3044:                "pc": 942,
3049:                "pc": 951,
3054:                "pc": 960,
3059:                "pc": 969,
3218:                "pc": 942,
3223:                "pc": 951,
3228:                "pc": 960,
3233:                "pc": 969,
3392:                "pc": 942,
3397:                "pc": 951,
3402:                "pc": 960,
3407:                "pc": 969,
3566:                "pc": 942,
3571:                "pc": 951,
3576:                "pc": 960,
3581:                "pc": 969,
3740:                "pc": 942,
3745:                "pc": 951,
3750:                "pc": 960,
3755:                "pc": 969,
3914:                "pc": 942,
3919:                "pc": 951,
3924:                "pc": 960,
3929:                "pc": 969,
4088:                "pc": 942,
4093:                "pc": 951,
4098:                "pc": 960,
4103:                "pc": 969,
4262:                "pc": 942,
4267:                "pc": 951,
4272:                "pc": 960,
4277:                "pc": 969,
4436:                "pc": 942,
4441:                "pc": 951,
4446:                "pc": 960,
4451:                "pc": 969,
4610:                "pc": 942,
4615:                "pc": 951,
4620:                "pc": 960,
4625:                "pc": 969,
4784:                "pc": 942,
4789:                "pc": 951,
4794:                "pc": 960,
4799:                "pc": 969,
4958:                "pc": 942,
4963:                "pc": 951,
4968:                "pc": 960,
4973:                "pc": 969,
5132:                "pc": 942,
5137:                "pc": 951,
5142:                "pc": 960,
5147:                "pc": 969,
5306:                "pc": 942,
5311:                "pc": 951,
5316:                "pc": 960,
5321:                "pc": 969,
5468:          "selector": "0xd9607482",
5480:                "pc": 942,
5485:                "pc": 951,
5490:                "pc": 960,
5495:                "pc": 969,
5654:                "pc": 942,
5659:                "pc": 951,
5664:                "pc": 960,
5669:                "pc": 969,
5828:                "pc": 942,
5833:                "pc": 951,
5838:                "pc": 960,
5843:                "pc": 969,
6002:                "pc": 942,
6007:                "pc": 951,
6012:                "pc": 960,
6017:                "pc": 969,
6176:        "0xd9607482",
6196:            "pc": 942,
6201:            "pc": 951,
6206:            "pc": 960,
6211:            "pc": 969,
6363:    "address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
6383:      "full": "0x60606040523615610103576000357c0100000000000000000000000000000000000000000000000000000000900480630de9cacd1461010557806312065fe014610112578063130608331461013357806327e235e31461015a5780633ccfd60b14610181578063481c6a751461018e5780634afdd0e7146101c55780635294010f146101e6578063679dffb4146102075780638351a0d4146102285780638b3aa96714610249578063959499b61461026a578063978bbdb914610277578063bbd4e8c914610298578063d0e30db0146102b9578063d9607482146102c6578063ea362937146102e7578063edf26d9b14610308578063fc7e286d1461034557610103565b005b6101106004506105ea565b005b61011d60045061036c565b6040518082815260200191505060405180910390f35b61014460048035906020015061043a565b6040518082815260200191505060405180910390f35b61016b600480359060200150610404565b6040518082815260200191505060405180910390f35b61018c6004506107d4565b005b6101996004506103de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101d06004506103a8565b6040518082815260200191505060405180910390f35b6101f16004506103d5565b6040518082815260200191505060405180910390f35b61021260045061048d565b6040518082815260200191505060405180910390f35b6102336004506104c9565b6040518082815260200191505060405180910390f35b610254600450610505565b6040518082815260200191505060405180910390f35b61027560045061096c565b005b6102826004506103b1565b6040518082815260200191505060405180910390f35b6102a36004506103cc565b6040518082815260200191505060405180910390f35b6102c4600450610543565b005b6102d16004506103c3565b6040518082815260200191505060405180910390f35b6102f26004506103ba565b6040518082815260200191505060405180910390f35b610319600480359060200150610455565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61035660048035906020015061041f565b6040518082815260200191505060405180910390f35b6000600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506103a5565b90565b60036000505481565b60046000505481565b60056000505481565b60066000505481565b60076000505481565b60086000505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6000506020528060005260406000206000915090505481565b600b6000506020528060005260406000206000915090505481565b600d6000506020528060005260406000206000915090505481565b600e60005060205280600052604060002060009150909054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506104c6565b90565b6000600c60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050549050610502565b90565b6000600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442039050610540565b90565b6007600081815054600101919050819055504260056000508190555033600e6000506000600760005054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555034600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828282505401925050819055506105e76105ea565b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442031015156107d15760646004600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020402046001600050819055506001600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020403600260005081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000600160005054604051809050600060405180830381858888f1935050505050600260005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540192505081905550600260005054600c60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282825054019250508190555042600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054420310151561096957600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054013073ffffffffffffffffffffffffffffffffffffffff16311115610968573373ffffffffffffffffffffffffffffffffffffffff166000600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505401604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610967576000600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055506000600a60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b5b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050544203101515610adc576002600050543073ffffffffffffffffffffffffffffffffffffffff16311115610adb573373ffffffffffffffffffffffffffffffffffffffff166000600260005054604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610ada5742600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005081905550600d60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540392505081905550610ad96105ea565b5b5b5b5b56",
6392:    "address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
6931:          "from": "fn:0xd9607482",
6947:          "to": "call:1812",
6951:          "from": "call:1812",
6957:          "to": "call:2251",
6961:          "from": "call:2251",
6967:          "to": "call:2561",
6971:          "from": "call:2561",
7070:          "hash": "0x5fa3a4ed6041e2671e094c40fa97ea6c3d158a3ae5ef3f182d9420d1db01f26e",
7154:          "hash": "0xa0e960585bbedae271178bcaa0ae42c95c208977deac1f70aa6442d051e78d77",
7168:          "hash": "0xdff6332724fc859ba624854f4a6829d7f96046693a2e706c90d9b2f78ea70ec0",
7203:          "hash": "0xc1dd9fc3d89426be78cab80a7b14322f37769ed43cb8b5d024c72da22234c358",
7224:          "hash": "0xe8ea0761ba35708495496541403cffd5d4bdcf89c9965e87951b0b364efe6abb",
7651:          "hash": "0xf23b1ef87c37af42d82aa1094203c5061f993d5a6de08330fcf6dabade2ec52b",
7699:          "id": "call:1812",
7701:          "pc": 1812,
7705:          "id": "call:2251",
7707:          "pc": 2251,
7711:          "id": "call:2561",
7713:          "pc": 2561,
7812:          "id": "fn:0xd9607482",
7813:          "selector": "0xd9607482",
7849:            "pc": 1812,
7856:            "pc": 2251,
7863:            "pc": 2561,
7881:          "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
7882:          "0xee291517c6290faf94dee71647c27b9737b2a2d2"
7902:            "pc": 1812,
7909:            "pc": 2251,
7916:            "pc": 2561,
7934:          "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
7935:          "0xee291517c6290faf94dee71647c27b9737b2a2d2"

exec
/bin/bash -lc "sed -n '1560,1705p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
            "ADD",
            "PUSH1",
            "SHA3",
            "PUSH1",
            "POP",
            "SLOAD",
            "MUL",
            "DIV",
            "MUL",
            "DIV",
            "PUSH1",
            "PUSH1",
            "POP",
            "OP_81",
            "OP_90",
            "SSTORE",
            "POP",
            "PUSH1",
            "PUSH1",
            "POP",
            "SLOAD",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "POP",
            "SLOAD",
            "PUSH1",
            "PUSH1",
            "POP",
            "PUSH1",
            "CALLER",
            "PUSH20",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "PUSH1",
            "SHA3",
            "PUSH1",
            "POP",
            "SLOAD",
            "MUL",
            "DIV",
            "SUB",
            "PUSH1",
            "PUSH1",
            "POP",
            "OP_81",
            "OP_90",
            "SSTORE",
            "POP",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "SLOAD",
            "OP_90",
            "PUSH2",
            "EXP",
            "OP_90",
            "DIV",
            "PUSH20",
            "AND",
            "PUSH20",
            "AND",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "POP",
            "SLOAD",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_90",
            "POP",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_83",
            "SUB",
            "OP_81",
            "OP_85",
            "OP_88",
            "OP_88",
            "CALL",
            "OP_93",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "PUSH1",
            "POP",
            "SLOAD",
            "PUSH1",
            "PUSH1",
            "POP",
            "PUSH1",
            "CALLER",
            "PUSH20",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "PUSH1",
            "SHA3",
            "PUSH1",
            "OP_82",
            "OP_82",
            "OP_82",
            "POP",
            "SLOAD",
            "ADD",
            "OP_92",
            "POP",
            "POP",
            "OP_81",
            "OP_90",
            "SSTORE",
            "POP",
            "PUSH1",
            "PUSH1",
            "POP",
            "SLOAD",
            "PUSH1",
            "PUSH1",
            "POP",
            "PUSH1",
            "CALLER",
            "PUSH20",
            "AND",
            "OP_81",
            "MSTORE",

exec
/bin/bash -lc "sed -n '1860,1935p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
            "PUSH20",
            "AND",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "POP",
            "SLOAD",
            "PUSH1",
            "PUSH1",
            "POP",
            "PUSH1",
            "CALLER",
            "PUSH20",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "PUSH1",
            "SHA3",
            "PUSH1",
            "POP",
            "SLOAD",
            "ADD",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_90",
            "POP",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_83",
            "SUB",
            "OP_81",
            "OP_85",
            "OP_88",
            "OP_88",
            "CALL",
            "OP_93",
            "POP",
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "PUSH1",
            "PUSH2",
            "EXP",
            "OP_81",
            "SLOAD",
            "OP_81",
            "PUSH1",
            "MUL",
            "NOT",
            "AND",
            "OP_90",
            "OP_83",
            "MUL",
            "OR",
            "OP_90",
            "SSTORE",
            "POP",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "SLOAD",
            "OP_90",
            "PUSH2",
            "EXP",
            "OP_90",

exec
/bin/bash -lc "sed -n '2080,2145p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
            "PUSH1",
            "POP",
            "SLOAD",
            "ADDRESS",
            "PUSH20",
            "AND",
            "BALANCE",
            "GT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 2476
        },
        {
          "end_pc": 2610,
          "hash": "0xf23b1ef87c37af42d82aa1094203c5061f993d5a6de08330fcf6dabade2ec52b",
          "opcodes": [
            "CALLER",
            "PUSH20",
            "AND",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "POP",
            "SLOAD",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_90",
            "POP",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_83",
            "SUB",
            "OP_81",
            "OP_85",
            "OP_88",
            "OP_88",
            "CALL",
            "OP_93",
            "POP",
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "PUSH1",
            "PUSH2",
            "EXP",
            "OP_81",
            "SLOAD",
            "OP_81",
            "PUSH1",
            "MUL",
            "NOT",
            "AND",
            "OP_90",
            "OP_83",
            "MUL",
            "OR",
            "OP_90",
            "SSTORE",
            "POP",
            "PUSH1",

exec
js_repl in /tmp/codex-h9rar2qn
2026-04-04T19:48:42.000298Z ERROR codex_core::tools::router: error=Cannot read properties of undefined (reading 'full')
 exited 1 in 159ms:
Cannot read properties of undefined (reading 'full')
exec
js_repl in /tmp/codex-h9rar2qn
2026-04-04T19:48:45.997233Z ERROR codex_core::tools::router: error=Identifier 'fs' has already been declared
 exited 1 in 7ms:
Identifier 'fs' has already been declared
exec
js_repl in /tmp/codex-h9rar2qn
 succeeded in 3ms:
[
  'analysis_artifact',
  'analysis_run',
  'artifact',
  'capability_graph',
  'detector_findings',
  'heuristics_summary'
]
[
  'address',
  'artifact_hash',
  'artifact_json',
  'block_number',
  'chain_id',
  'codehash',
  'created_at',
  'id',
  'updated_at',
  'version'
]
[
  'auth',
  'basic_blocks',
  'callsites',
  'cfg_edges',
  'cfg_hash',
  'dispatcher_type',
  'function_entries',
  'functions',
  'selectors',
  'sinks',
  'storage',
  'version'
]
exec
js_repl in /tmp/codex-h9rar2qn
 succeeded in 5ms:
object [
  'codehash',
  'compiler_json',
  'implementation_address',
  'is_proxy',
  'runtime_bytecode',
  'verified_source'
]
exec
js_repl in /tmp/codex-h9rar2qn
2026-04-04T19:48:55.770491Z ERROR codex_core::tools::router: error=names is not defined
 exited 1 in 13ms:
names is not defined
exec
js_repl in /tmp/codex-h9rar2qn
 succeeded in 11ms:
{
  "len": 1560,
  "around1812": [
    {
      "pc": 1720,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 1722,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1724,
      "op": "POP"
    },
    {
      "pc": 1725,
      "op": "DUP2"
    },
    {
      "pc": 1726,
      "op": "SWAP1"
    },
    {
      "pc": 1727,
      "op": "SSTORE"
    },
    {
      "pc": 1728,
      "op": "POP"
    },
    {
      "pc": 1729,
      "op": "PUSH1",
      "arg": "0x09"
    },
    {
      "pc": 1731,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1733,
      "op": "SWAP1"
    },
    {
      "pc": 1734,
      "op": "SLOAD"
    },
    {
      "pc": 1735,
      "op": "SWAP1"
    },
    {
      "pc": 1736,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 1739,
      "op": "EXP"
    },
    {
      "pc": 1740,
      "op": "SWAP1"
    },
    {
      "pc": 1741,
      "op": "DIV"
    },
    {
      "pc": 1742,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1763,
      "op": "AND"
    },
    {
      "pc": 1764,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1785,
      "op": "AND"
    },
    {
      "pc": 1786,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1788,
      "op": "PUSH1",
      "arg": "0x01"
    },
    {
      "pc": 1790,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1792,
      "op": "POP"
    },
    {
      "pc": 1793,
      "op": "SLOAD"
    },
    {
      "pc": 1794,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 1796,
      "op": "MLOAD"
    },
    {
      "pc": 1797,
      "op": "DUP1"
    },
    {
      "pc": 1798,
      "op": "SWAP1"
    },
    {
      "pc": 1799,
      "op": "POP"
    },
    {
      "pc": 1800,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1802,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 1804,
      "op": "MLOAD"
    },
    {
      "pc": 1805,
      "op": "DUP1"
    },
    {
      "pc": 1806,
      "op": "DUP4"
    },
    {
      "pc": 1807,
      "op": "SUB"
    },
    {
      "pc": 1808,
      "op": "DUP2"
    },
    {
      "pc": 1809,
      "op": "DUP6"
    },
    {
      "pc": 1810,
      "op": "DUP9"
    },
    {
      "pc": 1811,
      "op": "DUP9"
    },
    {
      "pc": 1812,
      "op": "CALL"
    },
    {
      "pc": 1813,
      "op": "SWAP4"
    },
    {
      "pc": 1814,
      "op": "POP"
    },
    {
      "pc": 1815,
      "op": "POP"
    },
    {
      "pc": 1816,
      "op": "POP"
    },
    {
      "pc": 1817,
      "op": "POP"
    },
    {
      "pc": 1818,
      "op": "POP"
    },
    {
      "pc": 1819,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 1821,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1823,
      "op": "POP"
    },
    {
      "pc": 1824,
      "op": "SLOAD"
    },
    {
      "pc": 1825,
      "op": "PUSH1",
      "arg": "0x0d"
    },
    {
      "pc": 1827,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1829,
      "op": "POP"
    },
    {
      "pc": 1830,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1832,
      "op": "CALLER"
    },
    {
      "pc": 1833,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1854,
      "op": "AND"
    },
    {
      "pc": 1855,
      "op": "DUP2"
    },
    {
      "pc": 1856,
      "op": "MSTORE"
    },
    {
      "pc": 1857,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1859,
      "op": "ADD"
    },
    {
      "pc": 1860,
      "op": "SWAP1"
    },
    {
      "pc": 1861,
      "op": "DUP2"
    },
    {
      "pc": 1862,
      "op": "MSTORE"
    },
    {
      "pc": 1863,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1865,
      "op": "ADD"
    },
    {
      "pc": 1866,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1868,
      "op": "SHA3"
    },
    {
      "pc": 1869,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1871,
      "op": "DUP3"
    },
    {
      "pc": 1872,
      "op": "DUP3"
    },
    {
      "pc": 1873,
      "op": "DUP3"
    },
    {
      "pc": 1874,
      "op": "POP"
    },
    {
      "pc": 1875,
      "op": "SLOAD"
    },
    {
      "pc": 1876,
      "op": "ADD"
    },
    {
      "pc": 1877,
      "op": "SWAP3"
    },
    {
      "pc": 1878,
      "op": "POP"
    },
    {
      "pc": 1879,
      "op": "POP"
    },
    {
      "pc": 1880,
      "op": "DUP2"
    },
    {
      "pc": 1881,
      "op": "SWAP1"
    }
  ],
  "around2251": [
    {
      "pc": 2188,
      "op": "POP"
    },
    {
      "pc": 2189,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2191,
      "op": "CALLER"
    },
    {
      "pc": 2192,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2213,
      "op": "AND"
    },
    {
      "pc": 2214,
      "op": "DUP2"
    },
    {
      "pc": 2215,
      "op": "MSTORE"
    },
    {
      "pc": 2216,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2218,
      "op": "ADD"
    },
    {
      "pc": 2219,
      "op": "SWAP1"
    },
    {
      "pc": 2220,
      "op": "DUP2"
    },
    {
      "pc": 2221,
      "op": "MSTORE"
    },
    {
      "pc": 2222,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2224,
      "op": "ADD"
    },
    {
      "pc": 2225,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2227,
      "op": "SHA3"
    },
    {
      "pc": 2228,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2230,
      "op": "POP"
    },
    {
      "pc": 2231,
      "op": "SLOAD"
    },
    {
      "pc": 2232,
      "op": "ADD"
    },
    {
      "pc": 2233,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 2235,
      "op": "MLOAD"
    },
    {
      "pc": 2236,
      "op": "DUP1"
    },
    {
      "pc": 2237,
      "op": "SWAP1"
    },
    {
      "pc": 2238,
      "op": "POP"
    },
    {
      "pc": 2239,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2241,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 2243,
      "op": "MLOAD"
    },
    {
      "pc": 2244,
      "op": "DUP1"
    },
    {
      "pc": 2245,
      "op": "DUP4"
    },
    {
      "pc": 2246,
      "op": "SUB"
    },
    {
      "pc": 2247,
      "op": "DUP2"
    },
    {
      "pc": 2248,
      "op": "DUP6"
    },
    {
      "pc": 2249,
      "op": "DUP9"
    },
    {
      "pc": 2250,
      "op": "DUP9"
    },
    {
      "pc": 2251,
      "op": "CALL"
    },
    {
      "pc": 2252,
      "op": "SWAP4"
    },
    {
      "pc": 2253,
      "op": "POP"
    },
    {
      "pc": 2254,
      "op": "POP"
    },
    {
      "pc": 2255,
      "op": "POP"
    },
    {
      "pc": 2256,
      "op": "POP"
    },
    {
      "pc": 2257,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2259,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2261,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 2264,
      "op": "EXP"
    },
    {
      "pc": 2265,
      "op": "DUP2"
    },
    {
      "pc": 2266,
      "op": "SLOAD"
    },
    {
      "pc": 2267,
      "op": "DUP2"
    },
    {
      "pc": 2268,
      "op": "PUSH1",
      "arg": "0xff"
    },
    {
      "pc": 2270,
      "op": "MUL"
    },
    {
      "pc": 2271,
      "op": "NOT"
    },
    {
      "pc": 2272,
      "op": "AND"
    },
    {
      "pc": 2273,
      "op": "SWAP1"
    },
    {
      "pc": 2274,
      "op": "DUP4"
    },
    {
      "pc": 2275,
      "op": "MUL"
    },
    {
      "pc": 2276,
      "op": "OR"
    },
    {
      "pc": 2277,
      "op": "SWAP1"
    },
    {
      "pc": 2278,
      "op": "SSTORE"
    },
    {
      "pc": 2279,
      "op": "POP"
    },
    {
      "pc": 2280,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2282,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2284,
      "op": "SWAP1"
    },
    {
      "pc": 2285,
      "op": "SLOAD"
    },
    {
      "pc": 2286,
      "op": "SWAP1"
    },
    {
      "pc": 2287,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 2290,
      "op": "EXP"
    },
    {
      "pc": 2291,
      "op": "SWAP1"
    },
    {
      "pc": 2292,
      "op": "DIV"
    },
    {
      "pc": 2293,
      "op": "PUSH1",
      "arg": "0xff"
    },
    {
      "pc": 2295,
      "op": "AND"
    },
    {
      "pc": 2296,
      "op": "ISZERO"
    }
  ],
  "around2561": [
    {
      "pc": 2476,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 2478,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2480,
      "op": "POP"
    },
    {
      "pc": 2481,
      "op": "SLOAD"
    },
    {
      "pc": 2482,
      "op": "ADDRESS"
    },
    {
      "pc": 2483,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2504,
      "op": "AND"
    },
    {
      "pc": 2505,
      "op": "BALANCE"
    },
    {
      "pc": 2506,
      "op": "GT"
    },
    {
      "pc": 2507,
      "op": "ISZERO"
    },
    {
      "pc": 2508,
      "op": "PUSH2",
      "arg": "0x0adb"
    },
    {
      "pc": 2511,
      "op": "JUMPI"
    },
    {
      "pc": 2512,
      "op": "CALLER"
    },
    {
      "pc": 2513,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2534,
      "op": "AND"
    },
    {
      "pc": 2535,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2537,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 2539,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2541,
      "op": "POP"
    },
    {
      "pc": 2542,
      "op": "SLOAD"
    },
    {
      "pc": 2543,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 2545,
      "op": "MLOAD"
    },
    {
      "pc": 2546,
      "op": "DUP1"
    },
    {
      "pc": 2547,
      "op": "SWAP1"
    },
    {
      "pc": 2548,
      "op": "POP"
    },
    {
      "pc": 2549,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2551,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 2553,
      "op": "MLOAD"
    },
    {
      "pc": 2554,
      "op": "DUP1"
    },
    {
      "pc": 2555,
      "op": "DUP4"
    },
    {
      "pc": 2556,
      "op": "SUB"
    },
    {
      "pc": 2557,
      "op": "DUP2"
    },
    {
      "pc": 2558,
      "op": "DUP6"
    },
    {
      "pc": 2559,
      "op": "DUP9"
    },
    {
      "pc": 2560,
      "op": "DUP9"
    },
    {
      "pc": 2561,
      "op": "CALL"
    },
    {
      "pc": 2562,
      "op": "SWAP4"
    },
    {
      "pc": 2563,
      "op": "POP"
    },
    {
      "pc": 2564,
      "op": "POP"
    },
    {
      "pc": 2565,
      "op": "POP"
    },
    {
      "pc": 2566,
      "op": "POP"
    },
    {
      "pc": 2567,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2569,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2571,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 2574,
      "op": "EXP"
    },
    {
      "pc": 2575,
      "op": "DUP2"
    },
    {
      "pc": 2576,
      "op": "SLOAD"
    },
    {
      "pc": 2577,
      "op": "DUP2"
    },
    {
      "pc": 2578,
      "op": "PUSH1",
      "arg": "0xff"
    },
    {
      "pc": 2580,
      "op": "MUL"
    },
    {
      "pc": 2581,
      "op": "NOT"
    },
    {
      "pc": 2582,
      "op": "AND"
    },
    {
      "pc": 2583,
      "op": "SWAP1"
    },
    {
      "pc": 2584,
      "op": "DUP4"
    },
    {
      "pc": 2585,
      "op": "MUL"
    },
    {
      "pc": 2586,
      "op": "OR"
    },
    {
      "pc": 2587,
      "op": "SWAP1"
    },
    {
      "pc": 2588,
      "op": "SSTORE"
    },
    {
      "pc": 2589,
      "op": "POP"
    },
    {
      "pc": 2590,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2592,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2594,
      "op": "SWAP1"
    },
    {
      "pc": 2595,
      "op": "SLOAD"
    },
    {
      "pc": 2596,
      "op": "SWAP1"
    },
    {
      "pc": 2597,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 2600,
      "op": "EXP"
    },
    {
      "pc": 2601,
      "op": "SWAP1"
    },
    {
      "pc": 2602,
      "op": "DIV"
    },
    {
      "pc": 2603,
      "op": "PUSH1",
      "arg": "0xff"
    },
    {
      "pc": 2605,
      "op": "AND"
    },
    {
      "pc": 2606,
      "op": "ISZERO"
    }
  ]
}
exec
js_repl in /tmp/codex-h9rar2qn
 succeeded in 11ms:
{
  "f543": [
    {
      "pc": 1347,
      "op": "JUMPDEST"
    },
    {
      "pc": 1348,
      "op": "PUSH1",
      "arg": "0x07"
    },
    {
      "pc": 1350,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1352,
      "op": "DUP2"
    },
    {
      "pc": 1353,
      "op": "DUP2"
    },
    {
      "pc": 1354,
      "op": "POP"
    },
    {
      "pc": 1355,
      "op": "SLOAD"
    },
    {
      "pc": 1356,
      "op": "PUSH1",
      "arg": "0x01"
    },
    {
      "pc": 1358,
      "op": "ADD"
    },
    {
      "pc": 1359,
      "op": "SWAP2"
    },
    {
      "pc": 1360,
      "op": "SWAP1"
    },
    {
      "pc": 1361,
      "op": "POP"
    },
    {
      "pc": 1362,
      "op": "DUP2"
    },
    {
      "pc": 1363,
      "op": "SWAP1"
    },
    {
      "pc": 1364,
      "op": "SSTORE"
    },
    {
      "pc": 1365,
      "op": "POP"
    },
    {
      "pc": 1366,
      "op": "TIMESTAMP"
    },
    {
      "pc": 1367,
      "op": "PUSH1",
      "arg": "0x05"
    },
    {
      "pc": 1369,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1371,
      "op": "POP"
    },
    {
      "pc": 1372,
      "op": "DUP2"
    },
    {
      "pc": 1373,
      "op": "SWAP1"
    },
    {
      "pc": 1374,
      "op": "SSTORE"
    },
    {
      "pc": 1375,
      "op": "POP"
    },
    {
      "pc": 1376,
      "op": "CALLER"
    },
    {
      "pc": 1377,
      "op": "PUSH1",
      "arg": "0x0e"
    },
    {
      "pc": 1379,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1381,
      "op": "POP"
    },
    {
      "pc": 1382,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1384,
      "op": "PUSH1",
      "arg": "0x07"
    },
    {
      "pc": 1386,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1388,
      "op": "POP"
    },
    {
      "pc": 1389,
      "op": "SLOAD"
    },
    {
      "pc": 1390,
      "op": "DUP2"
    },
    {
      "pc": 1391,
      "op": "MSTORE"
    },
    {
      "pc": 1392,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1394,
      "op": "ADD"
    },
    {
      "pc": 1395,
      "op": "SWAP1"
    },
    {
      "pc": 1396,
      "op": "DUP2"
    },
    {
      "pc": 1397,
      "op": "MSTORE"
    },
    {
      "pc": 1398,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1400,
      "op": "ADD"
    },
    {
      "pc": 1401,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1403,
      "op": "SHA3"
    },
    {
      "pc": 1404,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1406,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 1409,
      "op": "EXP"
    },
    {
      "pc": 1410,
      "op": "DUP2"
    },
    {
      "pc": 1411,
      "op": "SLOAD"
    },
    {
      "pc": 1412,
      "op": "DUP2"
    },
    {
      "pc": 1413,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1434,
      "op": "MUL"
    },
    {
      "pc": 1435,
      "op": "NOT"
    },
    {
      "pc": 1436,
      "op": "AND"
    },
    {
      "pc": 1437,
      "op": "SWAP1"
    },
    {
      "pc": 1438,
      "op": "DUP4"
    },
    {
      "pc": 1439,
      "op": "MUL"
    },
    {
      "pc": 1440,
      "op": "OR"
    },
    {
      "pc": 1441,
      "op": "SWAP1"
    },
    {
      "pc": 1442,
      "op": "SSTORE"
    },
    {
      "pc": 1443,
      "op": "POP"
    },
    {
      "pc": 1444,
      "op": "CALLVALUE"
    },
    {
      "pc": 1445,
      "op": "PUSH1",
      "arg": "0x0a"
    },
    {
      "pc": 1447,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1449,
      "op": "POP"
    },
    {
      "pc": 1450,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1452,
      "op": "CALLER"
    },
    {
      "pc": 1453,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1474,
      "op": "AND"
    },
    {
      "pc": 1475,
      "op": "DUP2"
    },
    {
      "pc": 1476,
      "op": "MSTORE"
    },
    {
      "pc": 1477,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1479,
      "op": "ADD"
    },
    {
      "pc": 1480,
      "op": "SWAP1"
    },
    {
      "pc": 1481,
      "op": "DUP2"
    },
    {
      "pc": 1482,
      "op": "MSTORE"
    },
    {
      "pc": 1483,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1485,
      "op": "ADD"
    },
    {
      "pc": 1486,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1488,
      "op": "SHA3"
    },
    {
      "pc": 1489,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1491,
      "op": "DUP3"
    },
    {
      "pc": 1492,
      "op": "DUP3"
    },
    {
      "pc": 1493,
      "op": "DUP3"
    },
    {
      "pc": 1494,
      "op": "POP"
    },
    {
      "pc": 1495,
      "op": "SLOAD"
    },
    {
      "pc": 1496,
      "op": "ADD"
    },
    {
      "pc": 1497,
      "op": "SWAP3"
    },
    {
      "pc": 1498,
      "op": "POP"
    },
    {
      "pc": 1499,
      "op": "POP"
    },
    {
      "pc": 1500,
      "op": "DUP2"
    },
    {
      "pc": 1501,
      "op": "SWAP1"
    },
    {
      "pc": 1502,
      "op": "SSTORE"
    },
    {
      "pc": 1503,
      "op": "POP"
    },
    {
      "pc": 1504,
      "op": "PUSH2",
      "arg": "0x05e7"
    },
    {
      "pc": 1507,
      "op": "PUSH2",
      "arg": "0x05ea"
    },
    {
      "pc": 1510,
      "op": "JUMP"
    },
    {
      "pc": 1511,
      "op": "JUMPDEST"
    },
    {
      "pc": 1512,
      "op": "JUMPDEST"
    },
    {
      "pc": 1513,
      "op": "JUMP"
    }
  ],
  "f5ea": [
    {
      "pc": 1514,
      "op": "JUMPDEST"
    },
    {
      "pc": 1515,
      "op": "PUSH1",
      "arg": "0x06"
    },
    {
      "pc": 1517,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1519,
      "op": "POP"
    },
    {
      "pc": 1520,
      "op": "SLOAD"
    },
    {
      "pc": 1521,
      "op": "PUSH1",
      "arg": "0x0b"
    },
    {
      "pc": 1523,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1525,
      "op": "POP"
    },
    {
      "pc": 1526,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1528,
      "op": "CALLER"
    },
    {
      "pc": 1529,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1550,
      "op": "AND"
    },
    {
      "pc": 1551,
      "op": "DUP2"
    },
    {
      "pc": 1552,
      "op": "MSTORE"
    },
    {
      "pc": 1553,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1555,
      "op": "ADD"
    },
    {
      "pc": 1556,
      "op": "SWAP1"
    },
    {
      "pc": 1557,
      "op": "DUP2"
    },
    {
      "pc": 1558,
      "op": "MSTORE"
    },
    {
      "pc": 1559,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1561,
      "op": "ADD"
    },
    {
      "pc": 1562,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1564,
      "op": "SHA3"
    },
    {
      "pc": 1565,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1567,
      "op": "POP"
    },
    {
      "pc": 1568,
      "op": "SLOAD"
    },
    {
      "pc": 1569,
      "op": "TIMESTAMP"
    },
    {
      "pc": 1570,
      "op": "SUB"
    },
    {
      "pc": 1571,
      "op": "LT"
    },
    {
      "pc": 1572,
      "op": "ISZERO"
    },
    {
      "pc": 1573,
      "op": "ISZERO"
    },
    {
      "pc": 1574,
      "op": "PUSH2",
      "arg": "0x07d1"
    },
    {
      "pc": 1577,
      "op": "JUMPI"
    },
    {
      "pc": 1578,
      "op": "PUSH1",
      "arg": "0x64"
    },
    {
      "pc": 1580,
      "op": "PUSH1",
      "arg": "0x04"
    },
    {
      "pc": 1582,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1584,
      "op": "POP"
    },
    {
      "pc": 1585,
      "op": "SLOAD"
    },
    {
      "pc": 1586,
      "op": "PUSH1",
      "arg": "0x64"
    },
    {
      "pc": 1588,
      "op": "PUSH1",
      "arg": "0x03"
    },
    {
      "pc": 1590,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1592,
      "op": "POP"
    },
    {
      "pc": 1593,
      "op": "SLOAD"
    },
    {
      "pc": 1594,
      "op": "PUSH1",
      "arg": "0x0a"
    },
    {
      "pc": 1596,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1598,
      "op": "POP"
    },
    {
      "pc": 1599,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1601,
      "op": "CALLER"
    },
    {
      "pc": 1602,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1623,
      "op": "AND"
    },
    {
      "pc": 1624,
      "op": "DUP2"
    },
    {
      "pc": 1625,
      "op": "MSTORE"
    },
    {
      "pc": 1626,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1628,
      "op": "ADD"
    },
    {
      "pc": 1629,
      "op": "SWAP1"
    },
    {
      "pc": 1630,
      "op": "DUP2"
    },
    {
      "pc": 1631,
      "op": "MSTORE"
    },
    {
      "pc": 1632,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1634,
      "op": "ADD"
    },
    {
      "pc": 1635,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1637,
      "op": "SHA3"
    },
    {
      "pc": 1638,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1640,
      "op": "POP"
    },
    {
      "pc": 1641,
      "op": "SLOAD"
    },
    {
      "pc": 1642,
      "op": "MUL"
    },
    {
      "pc": 1643,
      "op": "DIV"
    },
    {
      "pc": 1644,
      "op": "MUL"
    },
    {
      "pc": 1645,
      "op": "DIV"
    },
    {
      "pc": 1646,
      "op": "PUSH1",
      "arg": "0x01"
    },
    {
      "pc": 1648,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1650,
      "op": "POP"
    },
    {
      "pc": 1651,
      "op": "DUP2"
    },
    {
      "pc": 1652,
      "op": "SWAP1"
    },
    {
      "pc": 1653,
      "op": "SSTORE"
    },
    {
      "pc": 1654,
      "op": "POP"
    },
    {
      "pc": 1655,
      "op": "PUSH1",
      "arg": "0x01"
    },
    {
      "pc": 1657,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1659,
      "op": "POP"
    },
    {
      "pc": 1660,
      "op": "SLOAD"
    },
    {
      "pc": 1661,
      "op": "PUSH1",
      "arg": "0x64"
    },
    {
      "pc": 1663,
      "op": "PUSH1",
      "arg": "0x03"
    },
    {
      "pc": 1665,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1667,
      "op": "POP"
    },
    {
      "pc": 1668,
      "op": "SLOAD"
    },
    {
      "pc": 1669,
      "op": "PUSH1",
      "arg": "0x0a"
    },
    {
      "pc": 1671,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1673,
      "op": "POP"
    },
    {
      "pc": 1674,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1676,
      "op": "CALLER"
    },
    {
      "pc": 1677,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1698,
      "op": "AND"
    },
    {
      "pc": 1699,
      "op": "DUP2"
    },
    {
      "pc": 1700,
      "op": "MSTORE"
    },
    {
      "pc": 1701,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1703,
      "op": "ADD"
    },
    {
      "pc": 1704,
      "op": "SWAP1"
    },
    {
      "pc": 1705,
      "op": "DUP2"
    },
    {
      "pc": 1706,
      "op": "MSTORE"
    },
    {
      "pc": 1707,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1709,
      "op": "ADD"
    },
    {
      "pc": 1710,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1712,
      "op": "SHA3"
    },
    {
      "pc": 1713,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1715,
      "op": "POP"
    },
    {
      "pc": 1716,
      "op": "SLOAD"
    },
    {
      "pc": 1717,
      "op": "MUL"
    },
    {
      "pc": 1718,
      "op": "DIV"
    },
    {
      "pc": 1719,
      "op": "SUB"
    },
    {
      "pc": 1720,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 1722,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1724,
      "op": "POP"
    },
    {
      "pc": 1725,
      "op": "DUP2"
    },
    {
      "pc": 1726,
      "op": "SWAP1"
    },
    {
      "pc": 1727,
      "op": "SSTORE"
    },
    {
      "pc": 1728,
      "op": "POP"
    },
    {
      "pc": 1729,
      "op": "PUSH1",
      "arg": "0x09"
    },
    {
      "pc": 1731,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1733,
      "op": "SWAP1"
    },
    {
      "pc": 1734,
      "op": "SLOAD"
    },
    {
      "pc": 1735,
      "op": "SWAP1"
    },
    {
      "pc": 1736,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 1739,
      "op": "EXP"
    },
    {
      "pc": 1740,
      "op": "SWAP1"
    },
    {
      "pc": 1741,
      "op": "DIV"
    },
    {
      "pc": 1742,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1763,
      "op": "AND"
    },
    {
      "pc": 1764,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1785,
      "op": "AND"
    },
    {
      "pc": 1786,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1788,
      "op": "PUSH1",
      "arg": "0x01"
    },
    {
      "pc": 1790,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1792,
      "op": "POP"
    },
    {
      "pc": 1793,
      "op": "SLOAD"
    },
    {
      "pc": 1794,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 1796,
      "op": "MLOAD"
    },
    {
      "pc": 1797,
      "op": "DUP1"
    },
    {
      "pc": 1798,
      "op": "SWAP1"
    },
    {
      "pc": 1799,
      "op": "POP"
    },
    {
      "pc": 1800,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1802,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 1804,
      "op": "MLOAD"
    },
    {
      "pc": 1805,
      "op": "DUP1"
    },
    {
      "pc": 1806,
      "op": "DUP4"
    },
    {
      "pc": 1807,
      "op": "SUB"
    },
    {
      "pc": 1808,
      "op": "DUP2"
    },
    {
      "pc": 1809,
      "op": "DUP6"
    },
    {
      "pc": 1810,
      "op": "DUP9"
    },
    {
      "pc": 1811,
      "op": "DUP9"
    },
    {
      "pc": 1812,
      "op": "CALL"
    },
    {
      "pc": 1813,
      "op": "SWAP4"
    },
    {
      "pc": 1814,
      "op": "POP"
    },
    {
      "pc": 1815,
      "op": "POP"
    },
    {
      "pc": 1816,
      "op": "POP"
    },
    {
      "pc": 1817,
      "op": "POP"
    },
    {
      "pc": 1818,
      "op": "POP"
    },
    {
      "pc": 1819,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 1821,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1823,
      "op": "POP"
    },
    {
      "pc": 1824,
      "op": "SLOAD"
    },
    {
      "pc": 1825,
      "op": "PUSH1",
      "arg": "0x0d"
    },
    {
      "pc": 1827,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1829,
      "op": "POP"
    },
    {
      "pc": 1830,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1832,
      "op": "CALLER"
    },
    {
      "pc": 1833,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1854,
      "op": "AND"
    },
    {
      "pc": 1855,
      "op": "DUP2"
    },
    {
      "pc": 1856,
      "op": "MSTORE"
    },
    {
      "pc": 1857,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1859,
      "op": "ADD"
    },
    {
      "pc": 1860,
      "op": "SWAP1"
    },
    {
      "pc": 1861,
      "op": "DUP2"
    },
    {
      "pc": 1862,
      "op": "MSTORE"
    },
    {
      "pc": 1863,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1865,
      "op": "ADD"
    },
    {
      "pc": 1866,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1868,
      "op": "SHA3"
    },
    {
      "pc": 1869,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1871,
      "op": "DUP3"
    },
    {
      "pc": 1872,
      "op": "DUP3"
    },
    {
      "pc": 1873,
      "op": "DUP3"
    },
    {
      "pc": 1874,
      "op": "POP"
    },
    {
      "pc": 1875,
      "op": "SLOAD"
    },
    {
      "pc": 1876,
      "op": "ADD"
    },
    {
      "pc": 1877,
      "op": "SWAP3"
    },
    {
      "pc": 1878,
      "op": "POP"
    },
    {
      "pc": 1879,
      "op": "POP"
    },
    {
      "pc": 1880,
      "op": "DUP2"
    },
    {
      "pc": 1881,
      "op": "SWAP1"
    },
    {
      "pc": 1882,
      "op": "SSTORE"
    },
    {
      "pc": 1883,
      "op": "POP"
    },
    {
      "pc": 1884,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 1886,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1888,
      "op": "POP"
    },
    {
      "pc": 1889,
      "op": "SLOAD"
    },
    {
      "pc": 1890,
      "op": "PUSH1",
      "arg": "0x0c"
    },
    {
      "pc": 1892,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1894,
      "op": "POP"
    },
    {
      "pc": 1895,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1897,
      "op": "CALLER"
    },
    {
      "pc": 1898,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1919,
      "op": "AND"
    },
    {
      "pc": 1920,
      "op": "DUP2"
    },
    {
      "pc": 1921,
      "op": "MSTORE"
    },
    {
      "pc": 1922,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1924,
      "op": "ADD"
    },
    {
      "pc": 1925,
      "op": "SWAP1"
    },
    {
      "pc": 1926,
      "op": "DUP2"
    },
    {
      "pc": 1927,
      "op": "MSTORE"
    },
    {
      "pc": 1928,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1930,
      "op": "ADD"
    },
    {
      "pc": 1931,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1933,
      "op": "SHA3"
    },
    {
      "pc": 1934,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1936,
      "op": "DUP3"
    },
    {
      "pc": 1937,
      "op": "DUP3"
    },
    {
      "pc": 1938,
      "op": "DUP3"
    },
    {
      "pc": 1939,
      "op": "POP"
    },
    {
      "pc": 1940,
      "op": "SLOAD"
    },
    {
      "pc": 1941,
      "op": "ADD"
    },
    {
      "pc": 1942,
      "op": "SWAP3"
    },
    {
      "pc": 1943,
      "op": "POP"
    },
    {
      "pc": 1944,
      "op": "POP"
    },
    {
      "pc": 1945,
      "op": "DUP2"
    },
    {
      "pc": 1946,
      "op": "SWAP1"
    },
    {
      "pc": 1947,
      "op": "SSTORE"
    },
    {
      "pc": 1948,
      "op": "POP"
    },
    {
      "pc": 1949,
      "op": "TIMESTAMP"
    },
    {
      "pc": 1950,
      "op": "PUSH1",
      "arg": "0x0b"
    },
    {
      "pc": 1952,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1954,
      "op": "POP"
    },
    {
      "pc": 1955,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1957,
      "op": "CALLER"
    },
    {
      "pc": 1958,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 1979,
      "op": "AND"
    },
    {
      "pc": 1980,
      "op": "DUP2"
    },
    {
      "pc": 1981,
      "op": "MSTORE"
    },
    {
      "pc": 1982,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1984,
      "op": "ADD"
    },
    {
      "pc": 1985,
      "op": "SWAP1"
    },
    {
      "pc": 1986,
      "op": "DUP2"
    },
    {
      "pc": 1987,
      "op": "MSTORE"
    },
    {
      "pc": 1988,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 1990,
      "op": "ADD"
    },
    {
      "pc": 1991,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1993,
      "op": "SHA3"
    },
    {
      "pc": 1994,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 1996,
      "op": "POP"
    },
    {
      "pc": 1997,
      "op": "DUP2"
    },
    {
      "pc": 1998,
      "op": "SWAP1"
    },
    {
      "pc": 1999,
      "op": "SSTORE"
    },
    {
      "pc": 2000,
      "op": "POP"
    },
    {
      "pc": 2001,
      "op": "JUMPDEST"
    },
    {
      "pc": 2002,
      "op": "JUMPDEST"
    },
    {
      "pc": 2003,
      "op": "JUMP"
    }
  ],
  "f7d4": [
    {
      "pc": 2004,
      "op": "JUMPDEST"
    },
    {
      "pc": 2005,
      "op": "PUSH1",
      "arg": "0x06"
    },
    {
      "pc": 2007,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2009,
      "op": "POP"
    },
    {
      "pc": 2010,
      "op": "SLOAD"
    },
    {
      "pc": 2011,
      "op": "PUSH1",
      "arg": "0x0b"
    },
    {
      "pc": 2013,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2015,
      "op": "POP"
    },
    {
      "pc": 2016,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2018,
      "op": "CALLER"
    },
    {
      "pc": 2019,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2040,
      "op": "AND"
    },
    {
      "pc": 2041,
      "op": "DUP2"
    },
    {
      "pc": 2042,
      "op": "MSTORE"
    },
    {
      "pc": 2043,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2045,
      "op": "ADD"
    },
    {
      "pc": 2046,
      "op": "SWAP1"
    },
    {
      "pc": 2047,
      "op": "DUP2"
    },
    {
      "pc": 2048,
      "op": "MSTORE"
    },
    {
      "pc": 2049,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2051,
      "op": "ADD"
    },
    {
      "pc": 2052,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2054,
      "op": "SHA3"
    },
    {
      "pc": 2055,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2057,
      "op": "POP"
    },
    {
      "pc": 2058,
      "op": "SLOAD"
    },
    {
      "pc": 2059,
      "op": "TIMESTAMP"
    },
    {
      "pc": 2060,
      "op": "SUB"
    },
    {
      "pc": 2061,
      "op": "LT"
    },
    {
      "pc": 2062,
      "op": "ISZERO"
    },
    {
      "pc": 2063,
      "op": "ISZERO"
    },
    {
      "pc": 2064,
      "op": "PUSH2",
      "arg": "0x0969"
    },
    {
      "pc": 2067,
      "op": "JUMPI"
    },
    {
      "pc": 2068,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 2070,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2072,
      "op": "POP"
    },
    {
      "pc": 2073,
      "op": "SLOAD"
    },
    {
      "pc": 2074,
      "op": "PUSH1",
      "arg": "0x0a"
    },
    {
      "pc": 2076,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2078,
      "op": "POP"
    },
    {
      "pc": 2079,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2081,
      "op": "CALLER"
    },
    {
      "pc": 2082,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2103,
      "op": "AND"
    },
    {
      "pc": 2104,
      "op": "DUP2"
    },
    {
      "pc": 2105,
      "op": "MSTORE"
    },
    {
      "pc": 2106,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2108,
      "op": "ADD"
    },
    {
      "pc": 2109,
      "op": "SWAP1"
    },
    {
      "pc": 2110,
      "op": "DUP2"
    },
    {
      "pc": 2111,
      "op": "MSTORE"
    },
    {
      "pc": 2112,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2114,
      "op": "ADD"
    },
    {
      "pc": 2115,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2117,
      "op": "SHA3"
    },
    {
      "pc": 2118,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2120,
      "op": "POP"
    },
    {
      "pc": 2121,
      "op": "SLOAD"
    },
    {
      "pc": 2122,
      "op": "ADD"
    },
    {
      "pc": 2123,
      "op": "ADDRESS"
    },
    {
      "pc": 2124,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2145,
      "op": "AND"
    },
    {
      "pc": 2146,
      "op": "BALANCE"
    },
    {
      "pc": 2147,
      "op": "GT"
    },
    {
      "pc": 2148,
      "op": "ISZERO"
    },
    {
      "pc": 2149,
      "op": "PUSH2",
      "arg": "0x0968"
    },
    {
      "pc": 2152,
      "op": "JUMPI"
    },
    {
      "pc": 2153,
      "op": "CALLER"
    },
    {
      "pc": 2154,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2175,
      "op": "AND"
    },
    {
      "pc": 2176,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2178,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 2180,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2182,
      "op": "POP"
    },
    {
      "pc": 2183,
      "op": "SLOAD"
    },
    {
      "pc": 2184,
      "op": "PUSH1",
      "arg": "0x0a"
    },
    {
      "pc": 2186,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2188,
      "op": "POP"
    },
    {
      "pc": 2189,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2191,
      "op": "CALLER"
    },
    {
      "pc": 2192,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2213,
      "op": "AND"
    },
    {
      "pc": 2214,
      "op": "DUP2"
    },
    {
      "pc": 2215,
      "op": "MSTORE"
    },
    {
      "pc": 2216,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2218,
      "op": "ADD"
    },
    {
      "pc": 2219,
      "op": "SWAP1"
    },
    {
      "pc": 2220,
      "op": "DUP2"
    },
    {
      "pc": 2221,
      "op": "MSTORE"
    },
    {
      "pc": 2222,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2224,
      "op": "ADD"
    },
    {
      "pc": 2225,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2227,
      "op": "SHA3"
    },
    {
      "pc": 2228,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2230,
      "op": "POP"
    },
    {
      "pc": 2231,
      "op": "SLOAD"
    },
    {
      "pc": 2232,
      "op": "ADD"
    },
    {
      "pc": 2233,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 2235,
      "op": "MLOAD"
    },
    {
      "pc": 2236,
      "op": "DUP1"
    },
    {
      "pc": 2237,
      "op": "SWAP1"
    },
    {
      "pc": 2238,
      "op": "POP"
    },
    {
      "pc": 2239,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2241,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 2243,
      "op": "MLOAD"
    },
    {
      "pc": 2244,
      "op": "DUP1"
    },
    {
      "pc": 2245,
      "op": "DUP4"
    },
    {
      "pc": 2246,
      "op": "SUB"
    },
    {
      "pc": 2247,
      "op": "DUP2"
    },
    {
      "pc": 2248,
      "op": "DUP6"
    },
    {
      "pc": 2249,
      "op": "DUP9"
    },
    {
      "pc": 2250,
      "op": "DUP9"
    },
    {
      "pc": 2251,
      "op": "CALL"
    },
    {
      "pc": 2252,
      "op": "SWAP4"
    },
    {
      "pc": 2253,
      "op": "POP"
    },
    {
      "pc": 2254,
      "op": "POP"
    },
    {
      "pc": 2255,
      "op": "POP"
    },
    {
      "pc": 2256,
      "op": "POP"
    },
    {
      "pc": 2257,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2259,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2261,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 2264,
      "op": "EXP"
    },
    {
      "pc": 2265,
      "op": "DUP2"
    },
    {
      "pc": 2266,
      "op": "SLOAD"
    },
    {
      "pc": 2267,
      "op": "DUP2"
    },
    {
      "pc": 2268,
      "op": "PUSH1",
      "arg": "0xff"
    },
    {
      "pc": 2270,
      "op": "MUL"
    },
    {
      "pc": 2271,
      "op": "NOT"
    },
    {
      "pc": 2272,
      "op": "AND"
    },
    {
      "pc": 2273,
      "op": "SWAP1"
    },
    {
      "pc": 2274,
      "op": "DUP4"
    },
    {
      "pc": 2275,
      "op": "MUL"
    },
    {
      "pc": 2276,
      "op": "OR"
    },
    {
      "pc": 2277,
      "op": "SWAP1"
    },
    {
      "pc": 2278,
      "op": "SSTORE"
    },
    {
      "pc": 2279,
      "op": "POP"
    },
    {
      "pc": 2280,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2282,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2284,
      "op": "SWAP1"
    },
    {
      "pc": 2285,
      "op": "SLOAD"
    },
    {
      "pc": 2286,
      "op": "SWAP1"
    },
    {
      "pc": 2287,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 2290,
      "op": "EXP"
    },
    {
      "pc": 2291,
      "op": "SWAP1"
    },
    {
      "pc": 2292,
      "op": "DIV"
    },
    {
      "pc": 2293,
      "op": "PUSH1",
      "arg": "0xff"
    },
    {
      "pc": 2295,
      "op": "AND"
    },
    {
      "pc": 2296,
      "op": "ISZERO"
    },
    {
      "pc": 2297,
      "op": "PUSH2",
      "arg": "0x0967"
    },
    {
      "pc": 2300,
      "op": "JUMPI"
    },
    {
      "pc": 2301,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2303,
      "op": "PUSH1",
      "arg": "0x0d"
    },
    {
      "pc": 2305,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2307,
      "op": "POP"
    },
    {
      "pc": 2308,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2310,
      "op": "CALLER"
    },
    {
      "pc": 2311,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2332,
      "op": "AND"
    },
    {
      "pc": 2333,
      "op": "DUP2"
    },
    {
      "pc": 2334,
      "op": "MSTORE"
    },
    {
      "pc": 2335,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2337,
      "op": "ADD"
    },
    {
      "pc": 2338,
      "op": "SWAP1"
    },
    {
      "pc": 2339,
      "op": "DUP2"
    },
    {
      "pc": 2340,
      "op": "MSTORE"
    },
    {
      "pc": 2341,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2343,
      "op": "ADD"
    },
    {
      "pc": 2344,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2346,
      "op": "SHA3"
    },
    {
      "pc": 2347,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2349,
      "op": "POP"
    },
    {
      "pc": 2350,
      "op": "DUP2"
    },
    {
      "pc": 2351,
      "op": "SWAP1"
    },
    {
      "pc": 2352,
      "op": "SSTORE"
    },
    {
      "pc": 2353,
      "op": "POP"
    },
    {
      "pc": 2354,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2356,
      "op": "PUSH1",
      "arg": "0x0a"
    },
    {
      "pc": 2358,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2360,
      "op": "POP"
    },
    {
      "pc": 2361,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2363,
      "op": "CALLER"
    },
    {
      "pc": 2364,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2385,
      "op": "AND"
    },
    {
      "pc": 2386,
      "op": "DUP2"
    },
    {
      "pc": 2387,
      "op": "MSTORE"
    },
    {
      "pc": 2388,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2390,
      "op": "ADD"
    },
    {
      "pc": 2391,
      "op": "SWAP1"
    },
    {
      "pc": 2392,
      "op": "DUP2"
    },
    {
      "pc": 2393,
      "op": "MSTORE"
    },
    {
      "pc": 2394,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2396,
      "op": "ADD"
    },
    {
      "pc": 2397,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2399,
      "op": "SHA3"
    },
    {
      "pc": 2400,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2402,
      "op": "POP"
    },
    {
      "pc": 2403,
      "op": "DUP2"
    },
    {
      "pc": 2404,
      "op": "SWAP1"
    },
    {
      "pc": 2405,
      "op": "SSTORE"
    },
    {
      "pc": 2406,
      "op": "POP"
    },
    {
      "pc": 2407,
      "op": "JUMPDEST"
    },
    {
      "pc": 2408,
      "op": "JUMPDEST"
    },
    {
      "pc": 2409,
      "op": "JUMPDEST"
    },
    {
      "pc": 2410,
      "op": "JUMPDEST"
    },
    {
      "pc": 2411,
      "op": "JUMP"
    }
  ],
  "f96c": [
    {
      "pc": 2412,
      "op": "JUMPDEST"
    },
    {
      "pc": 2413,
      "op": "PUSH1",
      "arg": "0x06"
    },
    {
      "pc": 2415,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2417,
      "op": "POP"
    },
    {
      "pc": 2418,
      "op": "SLOAD"
    },
    {
      "pc": 2419,
      "op": "PUSH1",
      "arg": "0x0b"
    },
    {
      "pc": 2421,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2423,
      "op": "POP"
    },
    {
      "pc": 2424,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2426,
      "op": "CALLER"
    },
    {
      "pc": 2427,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2448,
      "op": "AND"
    },
    {
      "pc": 2449,
      "op": "DUP2"
    },
    {
      "pc": 2450,
      "op": "MSTORE"
    },
    {
      "pc": 2451,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2453,
      "op": "ADD"
    },
    {
      "pc": 2454,
      "op": "SWAP1"
    },
    {
      "pc": 2455,
      "op": "DUP2"
    },
    {
      "pc": 2456,
      "op": "MSTORE"
    },
    {
      "pc": 2457,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2459,
      "op": "ADD"
    },
    {
      "pc": 2460,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2462,
      "op": "SHA3"
    },
    {
      "pc": 2463,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2465,
      "op": "POP"
    },
    {
      "pc": 2466,
      "op": "SLOAD"
    },
    {
      "pc": 2467,
      "op": "TIMESTAMP"
    },
    {
      "pc": 2468,
      "op": "SUB"
    },
    {
      "pc": 2469,
      "op": "LT"
    },
    {
      "pc": 2470,
      "op": "ISZERO"
    },
    {
      "pc": 2471,
      "op": "ISZERO"
    },
    {
      "pc": 2472,
      "op": "PUSH2",
      "arg": "0x0adc"
    },
    {
      "pc": 2475,
      "op": "JUMPI"
    },
    {
      "pc": 2476,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 2478,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2480,
      "op": "POP"
    },
    {
      "pc": 2481,
      "op": "SLOAD"
    },
    {
      "pc": 2482,
      "op": "ADDRESS"
    },
    {
      "pc": 2483,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2504,
      "op": "AND"
    },
    {
      "pc": 2505,
      "op": "BALANCE"
    },
    {
      "pc": 2506,
      "op": "GT"
    },
    {
      "pc": 2507,
      "op": "ISZERO"
    },
    {
      "pc": 2508,
      "op": "PUSH2",
      "arg": "0x0adb"
    },
    {
      "pc": 2511,
      "op": "JUMPI"
    },
    {
      "pc": 2512,
      "op": "CALLER"
    },
    {
      "pc": 2513,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2534,
      "op": "AND"
    },
    {
      "pc": 2535,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2537,
      "op": "PUSH1",
      "arg": "0x02"
    },
    {
      "pc": 2539,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2541,
      "op": "POP"
    },
    {
      "pc": 2542,
      "op": "SLOAD"
    },
    {
      "pc": 2543,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 2545,
      "op": "MLOAD"
    },
    {
      "pc": 2546,
      "op": "DUP1"
    },
    {
      "pc": 2547,
      "op": "SWAP1"
    },
    {
      "pc": 2548,
      "op": "POP"
    },
    {
      "pc": 2549,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2551,
      "op": "PUSH1",
      "arg": "0x40"
    },
    {
      "pc": 2553,
      "op": "MLOAD"
    },
    {
      "pc": 2554,
      "op": "DUP1"
    },
    {
      "pc": 2555,
      "op": "DUP4"
    },
    {
      "pc": 2556,
      "op": "SUB"
    },
    {
      "pc": 2557,
      "op": "DUP2"
    },
    {
      "pc": 2558,
      "op": "DUP6"
    },
    {
      "pc": 2559,
      "op": "DUP9"
    },
    {
      "pc": 2560,
      "op": "DUP9"
    },
    {
      "pc": 2561,
      "op": "CALL"
    },
    {
      "pc": 2562,
      "op": "SWAP4"
    },
    {
      "pc": 2563,
      "op": "POP"
    },
    {
      "pc": 2564,
      "op": "POP"
    },
    {
      "pc": 2565,
      "op": "POP"
    },
    {
      "pc": 2566,
      "op": "POP"
    },
    {
      "pc": 2567,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2569,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2571,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 2574,
      "op": "EXP"
    },
    {
      "pc": 2575,
      "op": "DUP2"
    },
    {
      "pc": 2576,
      "op": "SLOAD"
    },
    {
      "pc": 2577,
      "op": "DUP2"
    },
    {
      "pc": 2578,
      "op": "PUSH1",
      "arg": "0xff"
    },
    {
      "pc": 2580,
      "op": "MUL"
    },
    {
      "pc": 2581,
      "op": "NOT"
    },
    {
      "pc": 2582,
      "op": "AND"
    },
    {
      "pc": 2583,
      "op": "SWAP1"
    },
    {
      "pc": 2584,
      "op": "DUP4"
    },
    {
      "pc": 2585,
      "op": "MUL"
    },
    {
      "pc": 2586,
      "op": "OR"
    },
    {
      "pc": 2587,
      "op": "SWAP1"
    },
    {
      "pc": 2588,
      "op": "SSTORE"
    },
    {
      "pc": 2589,
      "op": "POP"
    },
    {
      "pc": 2590,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2592,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2594,
      "op": "SWAP1"
    },
    {
      "pc": 2595,
      "op": "SLOAD"
    },
    {
      "pc": 2596,
      "op": "SWAP1"
    },
    {
      "pc": 2597,
      "op": "PUSH2",
      "arg": "0x0100"
    },
    {
      "pc": 2600,
      "op": "EXP"
    },
    {
      "pc": 2601,
      "op": "SWAP1"
    },
    {
      "pc": 2602,
      "op": "DIV"
    },
    {
      "pc": 2603,
      "op": "PUSH1",
      "arg": "0xff"
    },
    {
      "pc": 2605,
      "op": "AND"
    },
    {
      "pc": 2606,
      "op": "ISZERO"
    },
    {
      "pc": 2607,
      "op": "PUSH2",
      "arg": "0x0ada"
    },
    {
      "pc": 2610,
      "op": "JUMPI"
    },
    {
      "pc": 2611,
      "op": "TIMESTAMP"
    },
    {
      "pc": 2612,
      "op": "PUSH1",
      "arg": "0x0b"
    },
    {
      "pc": 2614,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2616,
      "op": "POP"
    },
    {
      "pc": 2617,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2619,
      "op": "CALLER"
    },
    {
      "pc": 2620,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2641,
      "op": "AND"
    },
    {
      "pc": 2642,
      "op": "DUP2"
    },
    {
      "pc": 2643,
      "op": "MSTORE"
    },
    {
      "pc": 2644,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2646,
      "op": "ADD"
    },
    {
      "pc": 2647,
      "op": "SWAP1"
    },
    {
      "pc": 2648,
      "op": "DUP2"
    },
    {
      "pc": 2649,
      "op": "MSTORE"
    },
    {
      "pc": 2650,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2652,
      "op": "ADD"
    },
    {
      "pc": 2653,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2655,
      "op": "SHA3"
    },
    {
      "pc": 2656,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2658,
      "op": "POP"
    },
    {
      "pc": 2659,
      "op": "DUP2"
    },
    {
      "pc": 2660,
      "op": "SWAP1"
    },
    {
      "pc": 2661,
      "op": "SSTORE"
    },
    {
      "pc": 2662,
      "op": "POP"
    },
    {
      "pc": 2663,
      "op": "PUSH1",
      "arg": "0x0d"
    },
    {
      "pc": 2665,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2667,
      "op": "POP"
    },
    {
      "pc": 2668,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2670,
      "op": "CALLER"
    },
    {
      "pc": 2671,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2692,
      "op": "AND"
    },
    {
      "pc": 2693,
      "op": "DUP2"
    },
    {
      "pc": 2694,
      "op": "MSTORE"
    },
    {
      "pc": 2695,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2697,
      "op": "ADD"
    },
    {
      "pc": 2698,
      "op": "SWAP1"
    },
    {
      "pc": 2699,
      "op": "DUP2"
    },
    {
      "pc": 2700,
      "op": "MSTORE"
    },
    {
      "pc": 2701,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2703,
      "op": "ADD"
    },
    {
      "pc": 2704,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2706,
      "op": "SHA3"
    },
    {
      "pc": 2707,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2709,
      "op": "POP"
    },
    {
      "pc": 2710,
      "op": "SLOAD"
    },
    {
      "pc": 2711,
      "op": "PUSH1",
      "arg": "0x0d"
    },
    {
      "pc": 2713,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2715,
      "op": "POP"
    },
    {
      "pc": 2716,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2718,
      "op": "CALLER"
    },
    {
      "pc": 2719,
      "op": "PUSH20",
      "arg": "0xffffffffffffffffffffffffffffffffffffffff"
    },
    {
      "pc": 2740,
      "op": "AND"
    },
    {
      "pc": 2741,
      "op": "DUP2"
    },
    {
      "pc": 2742,
      "op": "MSTORE"
    },
    {
      "pc": 2743,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2745,
      "op": "ADD"
    },
    {
      "pc": 2746,
      "op": "SWAP1"
    },
    {
      "pc": 2747,
      "op": "DUP2"
    },
    {
      "pc": 2748,
      "op": "MSTORE"
    },
    {
      "pc": 2749,
      "op": "PUSH1",
      "arg": "0x20"
    },
    {
      "pc": 2751,
      "op": "ADD"
    },
    {
      "pc": 2752,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2754,
      "op": "SHA3"
    },
    {
      "pc": 2755,
      "op": "PUSH1",
      "arg": "0x00"
    },
    {
      "pc": 2757,
      "op": "DUP3"
    },
    {
      "pc": 2758,
      "op": "DUP3"
    },
    {
      "pc": 2759,
      "op": "DUP3"
    },
    {
      "pc": 2760,
      "op": "POP"
    },
    {
      "pc": 2761,
      "op": "SLOAD"
    },
    {
      "pc": 2762,
      "op": "SUB"
    },
    {
      "pc": 2763,
      "op": "SWAP3"
    },
    {
      "pc": 2764,
      "op": "POP"
    },
    {
      "pc": 2765,
      "op": "POP"
    },
    {
      "pc": 2766,
      "op": "DUP2"
    },
    {
      "pc": 2767,
      "op": "SWAP1"
    },
    {
      "pc": 2768,
      "op": "SSTORE"
    },
    {
      "pc": 2769,
      "op": "POP"
    },
    {
      "pc": 2770,
      "op": "PUSH2",
      "arg": "0x0ad9"
    },
    {
      "pc": 2773,
      "op": "PUSH2",
      "arg": "0x05ea"
    },
    {
      "pc": 2776,
      "op": "JUMP"
    },
    {
      "pc": 2777,
      "op": "JUMPDEST"
    },
    {
      "pc": 2778,
      "op": "JUMPDEST"
    },
    {
      "pc": 2779,
      "op": "JUMPDEST"
    },
    {
      "pc": 2780,
      "op": "JUMPDEST"
    }
  ]
}
exec
js_repl in /tmp/codex-h9rar2qn
 succeeded in 1ms:
[
  {
    "pc": 0,
    "op": "PUSH1",
    "arg": "0x60"
  },
  {
    "pc": 2,
    "op": "PUSH1",
    "arg": "0x40"
  },
  {
    "pc": 4,
    "op": "MSTORE"
  },
  {
    "pc": 5,
    "op": "CALLDATASIZE"
  },
  {
    "pc": 6,
    "op": "ISZERO"
  },
  {
    "pc": 7,
    "op": "PUSH2",
    "arg": "0x0103"
  },
  {
    "pc": 10,
    "op": "JUMPI"
  },
  {
    "pc": 11,
    "op": "PUSH1",
    "arg": "0x00"
  },
  {
    "pc": 13,
    "op": "CALLDATALOAD"
  },
  {
    "pc": 14,
    "op": "PUSH29",
    "arg": "0x0100000000000000000000000000000000000000000000000000000000"
  },
  {
    "pc": 44,
    "op": "SWAP1"
  },
  {
    "pc": 45,
    "op": "DIV"
  },
  {
    "pc": 46,
    "op": "DUP1"
  },
  {
    "pc": 47,
    "op": "PUSH4",
    "arg": "0x0de9cacd"
  },
  {
    "pc": 52,
    "op": "EQ"
  },
  {
    "pc": 53,
    "op": "PUSH2",
    "arg": "0x0105"
  },
  {
    "pc": 56,
    "op": "JUMPI"
  },
  {
    "pc": 57,
    "op": "DUP1"
  },
  {
    "pc": 58,
    "op": "PUSH4",
    "arg": "0x12065fe0"
  },
  {
    "pc": 63,
    "op": "EQ"
  },
  {
    "pc": 64,
    "op": "PUSH2",
    "arg": "0x0112"
  },
  {
    "pc": 67,
    "op": "JUMPI"
  },
  {
    "pc": 68,
    "op": "DUP1"
  },
  {
    "pc": 69,
    "op": "PUSH4",
    "arg": "0x13060833"
  },
  {
    "pc": 74,
    "op": "EQ"
  },
  {
    "pc": 75,
    "op": "PUSH2",
    "arg": "0x0133"
  },
  {
    "pc": 78,
    "op": "JUMPI"
  },
  {
    "pc": 79,
    "op": "DUP1"
  },
  {
    "pc": 80,
    "op": "PUSH4",
    "arg": "0x27e235e3"
  },
  {
    "pc": 85,
    "op": "EQ"
  },
  {
    "pc": 86,
    "op": "PUSH2",
    "arg": "0x015a"
  },
  {
    "pc": 89,
    "op": "JUMPI"
  },
  {
    "pc": 90,
    "op": "DUP1"
  },
  {
    "pc": 91,
    "op": "PUSH4",
    "arg": "0x3ccfd60b"
  },
  {
    "pc": 96,
    "op": "EQ"
  },
  {
    "pc": 97,
    "op": "PUSH2",
    "arg": "0x0181"
  },
  {
    "pc": 100,
    "op": "JUMPI"
  },
  {
    "pc": 101,
    "op": "DUP1"
  },
  {
    "pc": 102,
    "op": "PUSH4",
    "arg": "0x481c6a75"
  },
  {
    "pc": 107,
    "op": "EQ"
  },
  {
    "pc": 108,
    "op": "PUSH2",
    "arg": "0x018e"
  },
  {
    "pc": 111,
    "op": "JUMPI"
  },
  {
    "pc": 112,
    "op": "DUP1"
  },
  {
    "pc": 113,
    "op": "PUSH4",
    "arg": "0x4afdd0e7"
  },
  {
    "pc": 118,
    "op": "EQ"
  },
  {
    "pc": 119,
    "op": "PUSH2",
    "arg": "0x01c5"
  },
  {
    "pc": 122,
    "op": "JUMPI"
  },
  {
    "pc": 123,
    "op": "DUP1"
  },
  {
    "pc": 124,
    "op": "PUSH4",
    "arg": "0x5294010f"
  },
  {
    "pc": 129,
    "op": "EQ"
  },
  {
    "pc": 130,
    "op": "PUSH2",
    "arg": "0x01e6"
  },
  {
    "pc": 133,
    "op": "JUMPI"
  },
  {
    "pc": 134,
    "op": "DUP1"
  },
  {
    "pc": 135,
    "op": "PUSH4",
    "arg": "0x679dffb4"
  },
  {
    "pc": 140,
    "op": "EQ"
  },
  {
    "pc": 141,
    "op": "PUSH2",
    "arg": "0x0207"
  },
  {
    "pc": 144,
    "op": "JUMPI"
  },
  {
    "pc": 145,
    "op": "DUP1"
  },
  {
    "pc": 146,
    "op": "PUSH4",
    "arg": "0x8351a0d4"
  },
  {
    "pc": 151,
    "op": "EQ"
  },
  {
    "pc": 152,
    "op": "PUSH2",
    "arg": "0x0228"
  },
  {
    "pc": 155,
    "op": "JUMPI"
  },
  {
    "pc": 156,
    "op": "DUP1"
  },
  {
    "pc": 157,
    "op": "PUSH4",
    "arg": "0x8b3aa967"
  },
  {
    "pc": 162,
    "op": "EQ"
  },
  {
    "pc": 163,
    "op": "PUSH2",
    "arg": "0x0249"
  },
  {
    "pc": 166,
    "op": "JUMPI"
  },
  {
    "pc": 167,
    "op": "DUP1"
  },
  {
    "pc": 168,
    "op": "PUSH4",
    "arg": "0x959499b6"
  },
  {
    "pc": 173,
    "op": "EQ"
  },
  {
    "pc": 174,
    "op": "PUSH2",
    "arg": "0x026a"
  },
  {
    "pc": 177,
    "op": "JUMPI"
  },
  {
    "pc": 178,
    "op": "DUP1"
  },
  {
    "pc": 179,
    "op": "PUSH4",
    "arg": "0x978bbdb9"
  },
  {
    "pc": 184,
    "op": "EQ"
  },
  {
    "pc": 185,
    "op": "PUSH2",
    "arg": "0x0277"
  },
  {
    "pc": 188,
    "op": "JUMPI"
  },
  {
    "pc": 189,
    "op": "DUP1"
  },
  {
    "pc": 190,
    "op": "PUSH4",
    "arg": "0xbbd4e8c9"
  },
  {
    "pc": 195,
    "op": "EQ"
  },
  {
    "pc": 196,
    "op": "PUSH2",
    "arg": "0x0298"
  },
  {
    "pc": 199,
    "op": "JUMPI"
  },
  {
    "pc": 200,
    "op": "DUP1"
  },
  {
    "pc": 201,
    "op": "PUSH4",
    "arg": "0xd0e30db0"
  },
  {
    "pc": 206,
    "op": "EQ"
  },
  {
    "pc": 207,
    "op": "PUSH2",
    "arg": "0x02b9"
  },
  {
    "pc": 210,
    "op": "JUMPI"
  },
  {
    "pc": 211,
    "op": "DUP1"
  },
  {
    "pc": 212,
    "op": "PUSH4",
    "arg": "0xd9607482"
  },
  {
    "pc": 217,
    "op": "EQ"
  },
  {
    "pc": 218,
    "op": "PUSH2",
    "arg": "0x02c6"
  },
  {
    "pc": 221,
    "op": "JUMPI"
  },
  {
    "pc": 222,
    "op": "DUP1"
  },
  {
    "pc": 223,
    "op": "PUSH4",
    "arg": "0xea362937"
  },
  {
    "pc": 228,
    "op": "EQ"
  },
  {
    "pc": 229,
    "op": "PUSH2",
    "arg": "0x02e7"
  },
  {
    "pc": 232,
    "op": "JUMPI"
  },
  {
    "pc": 233,
    "op": "DUP1"
  },
  {
    "pc": 234,
    "op": "PUSH4",
    "arg": "0xedf26d9b"
  },
  {
    "pc": 239,
    "op": "EQ"
  },
  {
    "pc": 240,
    "op": "PUSH2",
    "arg": "0x0308"
  },
  {
    "pc": 243,
    "op": "JUMPI"
  },
  {
    "pc": 244,
    "op": "DUP1"
  },
  {
    "pc": 245,
    "op": "PUSH4",
    "arg": "0xfc7e286d"
  },
  {
    "pc": 250,
    "op": "EQ"
  },
  {
    "pc": 251,
    "op": "PUSH2",
    "arg": "0x0345"
  },
  {
    "pc": 254,
    "op": "JUMPI"
  },
  {
    "pc": 255,
    "op": "PUSH2",
    "arg": "0x0103"
  },
  {
    "pc": 258,
    "op": "JUMP"
  },
  {
    "pc": 259,
    "op": "JUMPDEST"
  },
  {
    "pc": 260,
    "op": "STOP"
  },
  {
    "pc": 261,
    "op": "JUMPDEST"
  },
  {
    "pc": 262,
    "op": "PUSH2",
    "arg": "0x0110"
  },
  {
    "pc": 265,
    "op": "PUSH1",
    "arg": "0x04"
  },
  {
    "pc": 267,
    "op": "POP"
  },
  {
    "pc": 268,
    "op": "PUSH2",
    "arg": "0x05ea"
  },
  {
    "pc": 271,
    "op": "JUMP"
  },
  {
    "pc": 272,
    "op": "JUMPDEST"
  },
  {
    "pc": 273,
    "op": "STOP"
  },
  {
    "pc": 274,
    "op": "JUMPDEST"
  }
]
exec
js_repl in /tmp/codex-h9rar2qn
 succeeded in 28ms:
{
  "call2251": [
    {
      "pc": 2215,
      "mstore": "mstore[0x00] = (caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
      "stack": [
        "(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
        "0x00",
        "sload[0x02]",
        "0x0a",
        "0x00"
      ]
    },
    {
      "pc": 2221,
      "mstore": "mstore[(0x00 ADD 0x20)] = 0x0a",
      "stack": [
        "(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
        "0x00",
        "sload[0x02]",
        "(0x00 ADD 0x20)"
      ]
    },
    {
      "pc": 2251,
      "call": {
        "gas": "0x00",
        "to": "(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
        "value": "(sload[0x02] ADD sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)])",
        "inOffset": "mload[0x40]",
        "inSize": "(mload[0x40] SUB mload[0x40])",
        "outOffset": "mload[0x40]",
        "outSize": "0x00"
      },
      "stackBefore": [
        "(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
        "0x00",
        "(sload[0x02] ADD sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)])",
        "mload[0x40]"
      ]
    }
  ],
  "call2561": [
    {
      "pc": 2561,
      "call": {
        "gas": "0x00",
        "to": "(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
        "value": "sload[0x02]",
        "inOffset": "mload[0x40]",
        "inSize": "(mload[0x40] SUB mload[0x40])",
        "outOffset": "mload[0x40]",
        "outSize": "0x00"
      },
      "stackBefore": [
        "(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
        "0x00",
        "sload[0x02]",
        "mload[0x40]"
      ]
    }
  ],
  "call1812": [
    {
      "pc": 1812,
      "call": {
        "gas": "0x00",
        "to": "((((0x00 EXP 0x0100) DIV sload[0x09]) AND 0xffffffffffffffffffffffffffffffffffffffff) AND 0xffffffffffffffffffffffffffffffffffffffff)",
        "value": "sload[0x01]",
        "inOffset": "mload[0x40]",
        "inSize": "(mload[0x40] SUB mload[0x40])",
        "outOffset": "mload[0x40]",
        "outSize": "0x00"
      },
      "stackBefore": [
        "((((0x00 EXP 0x0100) DIV sload[0x09]) AND 0xffffffffffffffffffffffffffffffffffffffff) AND 0xffffffffffffffffffffffffffffffffffffffff)",
        "0x00",
        "sload[0x01]",
        "mload[0x40]"
      ]
    }
  ]
}
exec
/bin/bash -lc "sed -n '6380,6425p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
    "implementation_address": null,
    "is_proxy": false,
    "runtime_bytecode": {
      "full": "0x60606040523615610103576000357c0100000000000000000000000000000000000000000000000000000000900480630de9cacd1461010557806312065fe014610112578063130608331461013357806327e235e31461015a5780633ccfd60b14610181578063481c6a751461018e5780634afdd0e7146101c55780635294010f146101e6578063679dffb4146102075780638351a0d4146102285780638b3aa96714610249578063959499b61461026a578063978bbdb914610277578063bbd4e8c914610298578063d0e30db0146102b9578063d9607482146102c6578063ea362937146102e7578063edf26d9b14610308578063fc7e286d1461034557610103565b005b6101106004506105ea565b005b61011d60045061036c565b6040518082815260200191505060405180910390f35b61014460048035906020015061043a565b6040518082815260200191505060405180910390f35b61016b600480359060200150610404565b6040518082815260200191505060405180910390f35b61018c6004506107d4565b005b6101996004506103de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101d06004506103a8565b6040518082815260200191505060405180910390f35b6101f16004506103d5565b6040518082815260200191505060405180910390f35b61021260045061048d565b6040518082815260200191505060405180910390f35b6102336004506104c9565b6040518082815260200191505060405180910390f35b610254600450610505565b6040518082815260200191505060405180910390f35b61027560045061096c565b005b6102826004506103b1565b6040518082815260200191505060405180910390f35b6102a36004506103cc565b6040518082815260200191505060405180910390f35b6102c4600450610543565b005b6102d16004506103c3565b6040518082815260200191505060405180910390f35b6102f26004506103ba565b6040518082815260200191505060405180910390f35b610319600480359060200150610455565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61035660048035906020015061041f565b6040518082815260200191505060405180910390f35b6000600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506103a5565b90565b60036000505481565b60046000505481565b60056000505481565b60066000505481565b60076000505481565b60086000505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6000506020528060005260406000206000915090505481565b600b6000506020528060005260406000206000915090505481565b600d6000506020528060005260406000206000915090505481565b600e60005060205280600052604060002060009150909054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506104c6565b90565b6000600c60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050549050610502565b90565b6000600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442039050610540565b90565b6007600081815054600101919050819055504260056000508190555033600e6000506000600760005054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555034600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828282505401925050819055506105e76105ea565b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442031015156107d15760646004600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020402046001600050819055506001600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020403600260005081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000600160005054604051809050600060405180830381858888f1935050505050600260005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540192505081905550600260005054600c60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282825054019250508190555042600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054420310151561096957600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054013073ffffffffffffffffffffffffffffffffffffffff16311115610968573373ffffffffffffffffffffffffffffffffffffffff166000600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505401604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610967576000600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055506000600a60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b5b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050544203101515610adc576002600050543073ffffffffffffffffffffffffffffffffffffffff16311115610adb573373ffffffffffffffffffffffffffffffffffffffff166000600260005054604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610ada5742600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005081905550600d60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540392505081905550610ad96105ea565b5b5b5b5b56",
      "head": null,
      "length": 5568,
      "tail": null,
      "truncated": false
    },
    "verified_source": false
  },
  "capability_graph": {
    "address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
    "block_number": null,
    "chain_id": 1,
    "codehash": "0xbf43ab865a7833ab42f9194a702d0d8f509b6b0233df29ada98c8613a8ca5f50",
    "created_at": "2026-04-04T19:44:29.000000Z",
    "graph_hash": "0x3ea70eaf6afa2caa4e1c4996d31461209c10c903d1f548df453d5fd67e52b254",
    "graph_json": {
      "edges": [
        {
          "from": "bb:0",
          "to": "bb:259",
          "type": "control_flow"
        },
        {
          "from": "bb:0",
          "to": "bb:11",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:11",
          "to": "bb:261",
          "type": "control_flow"
        },
        {
          "from": "bb:11",
          "to": "bb:57",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:57",
          "to": "bb:274",
          "type": "control_flow"
        },
        {

exec
/bin/bash -lc "sed -n '6930,6975p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
        {
          "from": "fn:0xd9607482",
          "to": "bb:3929418039",
          "type": "entry"
        },
        {
          "from": "fn:0xea362937",
          "to": "bb:3992087963",
          "type": "entry"
        },
        {
          "from": "fn:0xedf26d9b",
          "to": "bb:4236126317",
          "type": "entry"
        },
        {
          "from": "bb:1578",
          "to": "call:1812",
          "type": "contains"
        },
        {
          "from": "call:1812",
          "to": "sink:call",
          "type": "capability"
        },
        {
          "from": "bb:2153",
          "to": "call:2251",
          "type": "contains"
        },
        {
          "from": "call:2251",
          "to": "sink:call",
          "type": "capability"
        },
        {
          "from": "bb:2512",
          "to": "call:2561",
          "type": "contains"
        },
        {
          "from": "call:2561",
          "to": "sink:call",
          "type": "capability"
        }
      ],

exec
/bin/bash -lc "rg -n 'compiler_json|solc|version' BYTECODE_BUNDLE.json | sed -n '1,80p'" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
6352:      "version": "analysis_artifact_v1"
6360:    "version": "analysis_artifact_v1"
6375:    "compiler_json": {
7835:      "version": "capability_graph_v1"
7839:    "version": "capability_graph_v1"

exec
/bin/bash -lc "sed -n '6375,6388p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
 succeeded in 0ms:
    "compiler_json": {
      "etherscan": {
        "skipped": true
      }
    },
    "implementation_address": null,
    "is_proxy": false,
    "runtime_bytecode": {
      "full": "0x60606040523615610103576000357c0100000000000000000000000000000000000000000000000000000000900480630de9cacd1461010557806312065fe014610112578063130608331461013357806327e235e31461015a5780633ccfd60b14610181578063481c6a751461018e5780634afdd0e7146101c55780635294010f146101e6578063679dffb4146102075780638351a0d4146102285780638b3aa96714610249578063959499b61461026a578063978bbdb914610277578063bbd4e8c914610298578063d0e30db0146102b9578063d9607482146102c6578063ea362937146102e7578063edf26d9b14610308578063fc7e286d1461034557610103565b005b6101106004506105ea565b005b61011d60045061036c565b6040518082815260200191505060405180910390f35b61014460048035906020015061043a565b6040518082815260200191505060405180910390f35b61016b600480359060200150610404565b6040518082815260200191505060405180910390f35b61018c6004506107d4565b005b6101996004506103de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101d06004506103a8565b6040518082815260200191505060405180910390f35b6101f16004506103d5565b6040518082815260200191505060405180910390f35b61021260045061048d565b6040518082815260200191505060405180910390f35b6102336004506104c9565b6040518082815260200191505060405180910390f35b610254600450610505565b6040518082815260200191505060405180910390f35b61027560045061096c565b005b6102826004506103b1565b6040518082815260200191505060405180910390f35b6102a36004506103cc565b6040518082815260200191505060405180910390f35b6102c4600450610543565b005b6102d16004506103c3565b6040518082815260200191505060405180910390f35b6102f26004506103ba565b6040518082815260200191505060405180910390f35b610319600480359060200150610455565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61035660048035906020015061041f565b6040518082815260200191505060405180910390f35b6000600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506103a5565b90565b60036000505481565b60046000505481565b60056000505481565b60066000505481565b60076000505481565b60086000505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6000506020528060005260406000206000915090505481565b600b6000506020528060005260406000206000915090505481565b600d6000506020528060005260406000206000915090505481565b600e60005060205280600052604060002060009150909054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506104c6565b90565b6000600c60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050549050610502565b90565b6000600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442039050610540565b90565b6007600081815054600101919050819055504260056000508190555033600e6000506000600760005054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555034600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828282505401925050819055506105e76105ea565b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442031015156107d15760646004600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020402046001600050819055506001600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020403600260005081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000600160005054604051809050600060405180830381858888f1935050505050600260005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540192505081905550600260005054600c60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282825054019250508190555042600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054420310151561096957600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054013073ffffffffffffffffffffffffffffffffffffffff16311115610968573373ffffffffffffffffffffffffffffffffffffffff166000600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505401604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610967576000600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055506000600a60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b5b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050544203101515610adc576002600050543073ffffffffffffffffffffffffffffffffffffffff16311115610adb573373ffffffffffffffffffffffffffffffffffffffff166000600260005054604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610ada5742600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005081905550600d60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540392505081905550610ad96105ea565b5b5b5b5b56",
      "head": null,
      "length": 5568,
      "tail": null,
      "truncated": false
    },

exec
js_repl in /tmp/codex-h9rar2qn
 succeeded in 5ms:
[
  {
    "pc": 1259,
    "mstore": "mstore[0x00] = (caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
    "stack": [
      "0x00",
      "0x0c",
      "0x00"
    ]
  },
  {
    "pc": 1265,
    "mstore": "mstore[(0x00 ADD 0x20)] = 0x0c",
    "stack": [
      "0x00",
      "(0x00 ADD 0x20)"
    ]
  },
  {
    "pc": 1281,
    "jump": "0x0502",
    "stack": [
      "sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)]"
    ]
  },
  {
    "pc": 1284,
    "jump": "?",
    "stack": []
  },
  {
    "pc": 1319,
    "mstore": "mstore[0x00] = (caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
    "stack": [
      "0x00",
      "0x0b",
      "0x00"
    ]
  },
  {
    "pc": 1325,
    "mstore": "mstore[(0x00 ADD 0x20)] = 0x0b",
    "stack": [
      "0x00",
      "(0x00 ADD 0x20)"
    ]
  },
  {
    "pc": 1343,
    "jump": "0x0540",
    "stack": [
      "(sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)] SUB timestamp)"
    ]
  },
  {
    "pc": 1346,
    "jump": "sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)]",
    "stack": []
  }
]
codex
{"no_findings":false,"summary":"Bytecode review found one high-confidence arithmetic/accounting issue and two lower-confidence ETH-transfer hazards. No proxy/delegatecall pattern was present (`is_proxy=false`, `delegatecall_count=0`).","findings":[{"severity":"high","category":"math","title":"Cooldown/lock check uses reversed subtraction, collapsing the wait period","exploit_scenario":"Selectors `0x3ccfd60b` and `0x959499b6` both gate ETH payouts with a timestamp check derived from `lastActionTs - block.timestamp`. In this old wrapping-arithmetic bytecode, once `block.timestamp` moves past the stored timestamp, the subtraction underflows to a huge value and the guard stops blocking. An attacker can therefore claim/withdraw again after only the next block instead of waiting the configured interval in slot `0x06`, draining rewards or principal much faster than intended.","recommendation":"Rebuild the guard as `block.timestamp - lastActionTs >= cooldown` (or equivalent) using checked arithmetic, and add explicit tests for same-block, next-block, and full-cooldown cases. Any helper/view function that reports remaining time should also use the corrected direction.","evidence":"At `pc:0x621-0x629` the contract loads slot `0x06`, then computes `mapping(slot0x0b, caller) - TIMESTAMP` via `TIMESTAMP; SUB`, followed by `LT` and a conditional jump. The same pattern appears again at `pc:0x7fb-0x813` and `pc:0x973-0x9ab`. A related view/helper path also returns `mapping(slot0x0b, caller) - TIMESTAMP`, corroborating the reversed subtraction. This is bytecode-level inference, but the opcode order is explicit.","locations":["pc:0x621","pc:0x622","pc:0x625","pc:0x626","pc:0x7fb","pc:0x80c","pc:0x80f","pc:0x973","pc:0x9a4","pc:0x9a7","selector:0x3ccfd60b","selector:0x959499b6","selector:0x8351a0d4"]},{"severity":"medium","category":"other","title":"Fallback/unknown-selector path silently accepts ETH without crediting sender","exploit_scenario":"A user who sends plain ETH to the contract, or calls it with an unknown selector and nonzero `msg.value`, reaches the default `STOP` path instead of the deposit bookkeeping. The ETH remains in contract balance, but the sender is never credited in the per-user storage used by withdrawal logic, so those funds are effectively lost from that sender's perspective.","recommendation":"Make `receive`/fallback revert unless the transfer is meant to be a deposit, or route plain ETH into the same accounting path as the explicit deposit function(s). Add tests for empty calldata, bad selectors, and forced ETH delivery edge cases.","evidence":"`CALLDATASIZE; ISZERO; PUSH2 0x0103; JUMPI` at startup sends empty-calldata calls to the default handler, and unmatched selectors fall through `PUSH2 0x0103; JUMP` at `pc:0xff-0x102`. The destination at `pc:0x103/0x104` is just `JUMPDEST; STOP`, with no revert and no storage updates. By contrast, deposit accounting (`slot0x0a[caller] += CALLVALUE`) only appears in the explicit deposit path starting at `pc:0x543` (`selector:0xd0e30db0`).","locations":["pc:0x5","pc:0x7","pc:0xff","pc:0x103","pc:0x104","pc:0x5a4","selector:0xd0e30db0","selector:0x0de9cacd"]},{"severity":"low","category":"other","title":"ETH payouts are sent with stipend-only CALL semantics, which can lock funds for contract recipients","exploit_scenario":"The payout sites at `pc:0x8cc` and `pc:0xa01` send ETH to `CALLER` using a `CALL` sequence with no `GAS` opcode and a pushed zero gas argument. That implies stipend-only value transfer semantics. EOAs will usually succeed, but many contract wallets/fallbacks will revert or need more than the stipend, causing claims/withdrawals to fail and potentially leaving funds stuck for those users.","recommendation":"Use a modern low-level call pattern that forwards adequate gas and handles failures explicitly, then reorder state changes into checks-effects-interactions or add a reentrancy guard. If only EOAs are intended, enforce that explicitly rather than relying on stipend behavior.","evidence":"Detector findings flagged reachable value-bearing CALLs at `pc:0x714`, `pc:0x8cb`, and `pc:0xa01`. Manual stack reconstruction of the bytecode around the user-facing payout sites shows the CALL gas argument is built from `PUSH1 0x00` rather than `GAS`, so these are stipend-only ETH sends. This is an inference from opcode order, but the absence of a `GAS` opcode before the calls is explicit.","locations":["pc:0x8cb","pc:0xa01","selector:0x3ccfd60b","selector:0x959499b6"]}]}
tokens used
86,049
Metadata
{
    "codex": {
        "ran_at": "2026-04-04T19:52:08.679880+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 5568,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode review found one high-confidence arithmetic/accounting issue and two lower-confidence ETH-transfer hazards. No proxy/delegatecall pattern was present (`is_proxy=false`, `delegatecall_count=0`).",
    "raw_final": {
        "summary": "Bytecode review found one high-confidence arithmetic/accounting issue and two lower-confidence ETH-transfer hazards. No proxy/delegatecall pattern was present (`is_proxy=false`, `delegatecall_count=0`).",
        "findings": [
            {
                "title": "Cooldown/lock check uses reversed subtraction, collapsing the wait period",
                "category": "math",
                "evidence": "At `pc:0x621-0x629` the contract loads slot `0x06`, then computes `mapping(slot0x0b, caller) - TIMESTAMP` via `TIMESTAMP; SUB`, followed by `LT` and a conditional jump. The same pattern appears again at `pc:0x7fb-0x813` and `pc:0x973-0x9ab`. A related view/helper path also returns `mapping(slot0x0b, caller) - TIMESTAMP`, corroborating the reversed subtraction. This is bytecode-level inference, but the opcode order is explicit.",
                "severity": "high",
                "locations": [
                    "pc:0x621",
                    "pc:0x622",
                    "pc:0x625",
                    "pc:0x626",
                    "pc:0x7fb",
                    "pc:0x80c",
                    "pc:0x80f",
                    "pc:0x973",
                    "pc:0x9a4",
                    "pc:0x9a7",
                    "selector:0x3ccfd60b",
                    "selector:0x959499b6",
                    "selector:0x8351a0d4"
                ],
                "recommendation": "Rebuild the guard as `block.timestamp - lastActionTs >= cooldown` (or equivalent) using checked arithmetic, and add explicit tests for same-block, next-block, and full-cooldown cases. Any helper/view function that reports remaining time should also use the corrected direction.",
                "exploit_scenario": "Selectors `0x3ccfd60b` and `0x959499b6` both gate ETH payouts with a timestamp check derived from `lastActionTs - block.timestamp`. In this old wrapping-arithmetic bytecode, once `block.timestamp` moves past the stored timestamp, the subtraction underflows to a huge value and the guard stops blocking. An attacker can therefore claim/withdraw again after only the next block instead of waiting the configured interval in slot `0x06`, draining rewards or principal much faster than intended."
            },
            {
                "title": "Fallback/unknown-selector path silently accepts ETH without crediting sender",
                "category": "other",
                "evidence": "`CALLDATASIZE; ISZERO; PUSH2 0x0103; JUMPI` at startup sends empty-calldata calls to the default handler, and unmatched selectors fall through `PUSH2 0x0103; JUMP` at `pc:0xff-0x102`. The destination at `pc:0x103/0x104` is just `JUMPDEST; STOP`, with no revert and no storage updates. By contrast, deposit accounting (`slot0x0a[caller] += CALLVALUE`) only appears in the explicit deposit path starting at `pc:0x543` (`selector:0xd0e30db0`).",
                "severity": "medium",
                "locations": [
                    "pc:0x5",
                    "pc:0x7",
                    "pc:0xff",
                    "pc:0x103",
                    "pc:0x104",
                    "pc:0x5a4",
                    "selector:0xd0e30db0",
                    "selector:0x0de9cacd"
                ],
                "recommendation": "Make `receive`/fallback revert unless the transfer is meant to be a deposit, or route plain ETH into the same accounting path as the explicit deposit function(s). Add tests for empty calldata, bad selectors, and forced ETH delivery edge cases.",
                "exploit_scenario": "A user who sends plain ETH to the contract, or calls it with an unknown selector and nonzero `msg.value`, reaches the default `STOP` path instead of the deposit bookkeeping. The ETH remains in contract balance, but the sender is never credited in the per-user storage used by withdrawal logic, so those funds are effectively lost from that sender's perspective."
            },
            {
                "title": "ETH payouts are sent with stipend-only CALL semantics, which can lock funds for contract recipients",
                "category": "other",
                "evidence": "Detector findings flagged reachable value-bearing CALLs at `pc:0x714`, `pc:0x8cb`, and `pc:0xa01`. Manual stack reconstruction of the bytecode around the user-facing payout sites shows the CALL gas argument is built from `PUSH1 0x00` rather than `GAS`, so these are stipend-only ETH sends. This is an inference from opcode order, but the absence of a `GAS` opcode before the calls is explicit.",
                "severity": "low",
                "locations": [
                    "pc:0x8cb",
                    "pc:0xa01",
                    "selector:0x3ccfd60b",
                    "selector:0x959499b6"
                ],
                "recommendation": "Use a modern low-level call pattern that forwards adequate gas and handles failures explicitly, then reorder state changes into checks-effects-interactions or add a reentrancy guard. If only EOAs are intended, enforce that explicitly rather than relying on stipend behavior.",
                "exploit_scenario": "The payout sites at `pc:0x8cc` and `pc:0xa01` send ETH to `CALLER` using a `CALL` sequence with no `GAS` opcode and a pushed zero gas argument. That implies stipend-only value transfer semantics. EOAs will usually succeed, but many contract wallets/fallbacks will revert or need more than the stipend, causing claims/withdrawals to fail and potentially leaving funds stuck for those users."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
2
Total opcodes
1560
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0103
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x0de9cacd
00000034: EQ
00000035: PUSH2 0x0105
00000038: JUMPI
00000039: DUP1
0000003a: PUSH4 0x12065fe0
0000003f: EQ
00000040: PUSH2 0x0112
00000043: JUMPI
00000044: DUP1
00000045: PUSH4 0x13060833
0000004a: EQ
0000004b: PUSH2 0x0133
0000004e: JUMPI
0000004f: DUP1
00000050: PUSH4 0x27e235e3
00000055: EQ
00000056: PUSH2 0x015a
00000059: JUMPI
0000005a: DUP1
0000005b: PUSH4 0x3ccfd60b
00000060: EQ
00000061: PUSH2 0x0181
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0x481c6a75
0000006b: EQ
0000006c: PUSH2 0x018e
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0x4afdd0e7
00000076: EQ
00000077: PUSH2 0x01c5
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x5294010f
00000081: EQ
00000082: PUSH2 0x01e6
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0x679dffb4
0000008c: EQ
0000008d: PUSH2 0x0207
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0x8351a0d4
00000097: EQ
00000098: PUSH2 0x0228
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0x8b3aa967
000000a2: EQ
000000a3: PUSH2 0x0249
000000a6: JUMPI
000000a7: DUP1
000000a8: PUSH4 0x959499b6
000000ad: EQ
000000ae: PUSH2 0x026a
000000b1: JUMPI
000000b2: DUP1
000000b3: PUSH4 0x978bbdb9
000000b8: EQ
000000b9: PUSH2 0x0277
000000bc: JUMPI
000000bd: DUP1
000000be: PUSH4 0xbbd4e8c9
000000c3: EQ
000000c4: PUSH2 0x0298
000000c7: JUMPI
000000c8: DUP1
000000c9: PUSH4 0xd0e30db0
000000ce: EQ
000000cf: PUSH2 0x02b9
000000d2: JUMPI
000000d3: DUP1
000000d4: PUSH4 0xd9607482
000000d9: EQ
000000da: PUSH2 0x02c6
000000dd: JUMPI
000000de: DUP1
000000df: PUSH4 0xea362937
000000e4: EQ
000000e5: PUSH2 0x02e7
000000e8: JUMPI
000000e9: DUP1
000000ea: PUSH4 0xedf26d9b
000000ef: EQ
000000f0: PUSH2 0x0308
000000f3: JUMPI
000000f4: DUP1
000000f5: PUSH4 0xfc7e286d
000000fa: EQ
000000fb: PUSH2 0x0345
000000fe: JUMPI
000000ff: PUSH2 0x0103
00000102: JUMP
00000103: JUMPDEST
00000104: STOP
00000105: JUMPDEST
00000106: PUSH2 0x0110
00000109: PUSH1 0x04
0000010b: POP
0000010c: PUSH2 0x05ea
0000010f: JUMP
00000110: JUMPDEST
00000111: STOP
00000112: JUMPDEST
00000113: PUSH2 0x011d
00000116: PUSH1 0x04
00000118: POP
00000119: PUSH2 0x036c
0000011c: JUMP
0000011d: JUMPDEST
0000011e: PUSH1 0x40
00000120: MLOAD
00000121: DUP1
00000122: DUP3
00000123: DUP2
00000124: MSTORE
00000125: PUSH1 0x20
00000127: ADD
00000128: SWAP2
00000129: POP
0000012a: POP
0000012b: PUSH1 0x40
0000012d: MLOAD
0000012e: DUP1
0000012f: SWAP2
00000130: SUB
00000131: SWAP1
00000132: RETURN
00000133: JUMPDEST
00000134: PUSH2 0x0144
00000137: PUSH1 0x04
00000139: DUP1
0000013a: CALLDATALOAD
0000013b: SWAP1
0000013c: PUSH1 0x20
0000013e: ADD
0000013f: POP
00000140: PUSH2 0x043a
00000143: JUMP
00000144: JUMPDEST
00000145: PUSH1 0x40
00000147: MLOAD
00000148: DUP1
00000149: DUP3
0000014a: DUP2
0000014b: MSTORE
0000014c: PUSH1 0x20
0000014e: ADD
0000014f: SWAP2
00000150: POP
00000151: POP
00000152: PUSH1 0x40
00000154: MLOAD
00000155: DUP1
00000156: SWAP2
00000157: SUB
00000158: SWAP1
00000159: RETURN
0000015a: JUMPDEST
0000015b: PUSH2 0x016b
0000015e: PUSH1 0x04
00000160: DUP1
00000161: CALLDATALOAD
00000162: SWAP1
00000163: PUSH1 0x20
00000165: ADD
00000166: POP
00000167: PUSH2 0x0404
0000016a: JUMP
0000016b: JUMPDEST
0000016c: PUSH1 0x40
0000016e: MLOAD
0000016f: DUP1
00000170: DUP3
00000171: DUP2
00000172: MSTORE
00000173: PUSH1 0x20
00000175: ADD
00000176: SWAP2
00000177: POP
00000178: POP
00000179: PUSH1 0x40
0000017b: MLOAD
0000017c: DUP1
0000017d: SWAP2
0000017e: SUB
0000017f: SWAP1
00000180: RETURN
00000181: JUMPDEST
00000182: PUSH2 0x018c
00000185: PUSH1 0x04
00000187: POP
00000188: PUSH2 0x07d4
0000018b: JUMP
0000018c: JUMPDEST
0000018d: STOP
0000018e: JUMPDEST
0000018f: PUSH2 0x0199
00000192: PUSH1 0x04
00000194: POP
00000195: PUSH2 0x03de
00000198: JUMP
00000199: JUMPDEST
0000019a: PUSH1 0x40
0000019c: MLOAD
0000019d: DUP1
0000019e: DUP3
0000019f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001b4: AND
000001b5: DUP2
000001b6: MSTORE
000001b7: PUSH1 0x20
000001b9: ADD
000001ba: SWAP2
000001bb: POP
000001bc: POP
000001bd: PUSH1 0x40
000001bf: MLOAD
000001c0: DUP1
000001c1: SWAP2
000001c2: SUB
000001c3: SWAP1
000001c4: RETURN
000001c5: JUMPDEST
000001c6: PUSH2 0x01d0
000001c9: PUSH1 0x04
000001cb: POP
000001cc: PUSH2 0x03a8
000001cf: JUMP
000001d0: JUMPDEST
000001d1: PUSH1 0x40
000001d3: MLOAD
000001d4: DUP1
000001d5: DUP3
000001d6: DUP2
000001d7: MSTORE
000001d8: PUSH1 0x20
000001da: ADD
000001db: SWAP2
000001dc: POP
000001dd: POP
000001de: PUSH1 0x40
000001e0: MLOAD
000001e1: DUP1
000001e2: SWAP2
000001e3: SUB
000001e4: SWAP1
000001e5: RETURN
000001e6: JUMPDEST
000001e7: PUSH2 0x01f1
000001ea: PUSH1 0x04
000001ec: POP
000001ed: PUSH2 0x03d5
000001f0: JUMP
000001f1: JUMPDEST
000001f2: PUSH1 0x40
000001f4: MLOAD
000001f5: DUP1
000001f6: DUP3
000001f7: DUP2
000001f8: MSTORE
000001f9: PUSH1 0x20
000001fb: ADD
000001fc: SWAP2
000001fd: POP
000001fe: POP
000001ff: PUSH1 0x40
00000201: MLOAD
00000202: DUP1
00000203: SWAP2
00000204: SUB
00000205: SWAP1
00000206: RETURN
00000207: JUMPDEST
00000208: PUSH2 0x0212
0000020b: PUSH1 0x04
0000020d: POP
0000020e: PUSH2 0x048d
00000211: JUMP
00000212: JUMPDEST
00000213: PUSH1 0x40
00000215: MLOAD
00000216: DUP1
00000217: DUP3
00000218: DUP2
00000219: MSTORE
0000021a: PUSH1 0x20
0000021c: ADD
0000021d: SWAP2
0000021e: POP
0000021f: POP
00000220: PUSH1 0x40
00000222: MLOAD
00000223: DUP1
00000224: SWAP2
00000225: SUB
00000226: SWAP1
00000227: RETURN
00000228: JUMPDEST
00000229: PUSH2 0x0233
0000022c: PUSH1 0x04
0000022e: POP
0000022f: PUSH2 0x04c9
00000232: JUMP
00000233: JUMPDEST
00000234: PUSH1 0x40
00000236: MLOAD
00000237: DUP1
00000238: DUP3
00000239: DUP2
0000023a: MSTORE
0000023b: PUSH1 0x20
0000023d: ADD
0000023e: SWAP2
0000023f: POP
00000240: POP
00000241: PUSH1 0x40
00000243: MLOAD
00000244: DUP1
00000245: SWAP2
00000246: SUB
00000247: SWAP1
00000248: RETURN
00000249: JUMPDEST
0000024a: PUSH2 0x0254
0000024d: PUSH1 0x04
0000024f: POP
00000250: PUSH2 0x0505
00000253: JUMP
00000254: JUMPDEST
00000255: PUSH1 0x40
00000257: MLOAD
00000258: DUP1
00000259: DUP3
0000025a: DUP2
0000025b: MSTORE
0000025c: PUSH1 0x20
0000025e: ADD
0000025f: SWAP2
00000260: POP
00000261: POP
00000262: PUSH1 0x40
00000264: MLOAD
00000265: DUP1
00000266: SWAP2
00000267: SUB
00000268: SWAP1
00000269: RETURN
0000026a: JUMPDEST
0000026b: PUSH2 0x0275
0000026e: PUSH1 0x04
00000270: POP
00000271: PUSH2 0x096c
00000274: JUMP
00000275: JUMPDEST
00000276: STOP
00000277: JUMPDEST
00000278: PUSH2 0x0282
0000027b: PUSH1 0x04
0000027d: POP
0000027e: PUSH2 0x03b1
00000281: JUMP
00000282: JUMPDEST
00000283: PUSH1 0x40
00000285: MLOAD
00000286: DUP1
00000287: DUP3
00000288: DUP2
00000289: MSTORE
0000028a: PUSH1 0x20
0000028c: ADD
0000028d: SWAP2
0000028e: POP
0000028f: POP
00000290: PUSH1 0x40
00000292: MLOAD
00000293: DUP1
00000294: SWAP2
00000295: SUB
00000296: SWAP1
00000297: RETURN
00000298: JUMPDEST
00000299: PUSH2 0x02a3
0000029c: PUSH1 0x04
0000029e: POP
0000029f: PUSH2 0x03cc
000002a2: JUMP
000002a3: JUMPDEST
000002a4: PUSH1 0x40
000002a6: MLOAD
000002a7: DUP1
000002a8: DUP3
000002a9: DUP2
000002aa: MSTORE
000002ab: PUSH1 0x20
000002ad: ADD
000002ae: SWAP2
000002af: POP
000002b0: POP
000002b1: PUSH1 0x40
000002b3: MLOAD
000002b4: DUP1
000002b5: SWAP2
000002b6: SUB
000002b7: SWAP1
000002b8: RETURN
000002b9: JUMPDEST
000002ba: PUSH2 0x02c4
000002bd: PUSH1 0x04
000002bf: POP
000002c0: PUSH2 0x0543
000002c3: JUMP
000002c4: JUMPDEST
000002c5: STOP
000002c6: JUMPDEST
000002c7: PUSH2 0x02d1
000002ca: PUSH1 0x04
000002cc: POP
000002cd: PUSH2 0x03c3
000002d0: JUMP
000002d1: JUMPDEST
000002d2: PUSH1 0x40
000002d4: MLOAD
000002d5: DUP1
000002d6: DUP3
000002d7: DUP2
000002d8: MSTORE
000002d9: PUSH1 0x20
000002db: ADD
000002dc: SWAP2
000002dd: POP
000002de: POP
000002df: PUSH1 0x40
000002e1: MLOAD
000002e2: DUP1
000002e3: SWAP2
000002e4: SUB
000002e5: SWAP1
000002e6: RETURN
000002e7: JUMPDEST
000002e8: PUSH2 0x02f2
000002eb: PUSH1 0x04
000002ed: POP
000002ee: PUSH2 0x03ba
000002f1: JUMP
000002f2: JUMPDEST
000002f3: PUSH1 0x40
000002f5: MLOAD
000002f6: DUP1
000002f7: DUP3
000002f8: DUP2
000002f9: MSTORE
000002fa: PUSH1 0x20
000002fc: ADD
000002fd: SWAP2
000002fe: POP
000002ff: POP
00000300: PUSH1 0x40
00000302: MLOAD
00000303: DUP1
00000304: SWAP2
00000305: SUB
00000306: SWAP1
00000307: RETURN
00000308: JUMPDEST
00000309: PUSH2 0x0319
0000030c: PUSH1 0x04
0000030e: DUP1
0000030f: CALLDATALOAD
00000310: SWAP1
00000311: PUSH1 0x20
00000313: ADD
00000314: POP
00000315: PUSH2 0x0455
00000318: JUMP
00000319: JUMPDEST
0000031a: PUSH1 0x40
0000031c: MLOAD
0000031d: DUP1
0000031e: DUP3
0000031f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000334: AND
00000335: DUP2
00000336: MSTORE
00000337: PUSH1 0x20
00000339: ADD
0000033a: SWAP2
0000033b: POP
0000033c: POP
0000033d: PUSH1 0x40
0000033f: MLOAD
00000340: DUP1
00000341: SWAP2
00000342: SUB
00000343: SWAP1
00000344: RETURN
00000345: JUMPDEST
00000346: PUSH2 0x0356
00000349: PUSH1 0x04
0000034b: DUP1
0000034c: CALLDATALOAD
0000034d: SWAP1
0000034e: PUSH1 0x20
00000350: ADD
00000351: POP
00000352: PUSH2 0x041f
00000355: JUMP
00000356: JUMPDEST
00000357: PUSH1 0x40
00000359: MLOAD
0000035a: DUP1
0000035b: DUP3
0000035c: DUP2
0000035d: MSTORE
0000035e: PUSH1 0x20
00000360: ADD
00000361: SWAP2
00000362: POP
00000363: POP
00000364: PUSH1 0x40
00000366: MLOAD
00000367: DUP1
00000368: SWAP2
00000369: SUB
0000036a: SWAP1
0000036b: RETURN
0000036c: JUMPDEST
0000036d: PUSH1 0x00
0000036f: PUSH1 0x0a
00000371: PUSH1 0x00
00000373: POP
00000374: PUSH1 0x00
00000376: CALLER
00000377: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000038c: AND
0000038d: DUP2
0000038e: MSTORE
0000038f: PUSH1 0x20
00000391: ADD
00000392: SWAP1
00000393: DUP2
00000394: MSTORE
00000395: PUSH1 0x20
00000397: ADD
00000398: PUSH1 0x00
0000039a: KECCAK256
0000039b: PUSH1 0x00
0000039d: POP
0000039e: SLOAD
0000039f: SWAP1
000003a0: POP
000003a1: PUSH2 0x03a5
000003a4: JUMP
000003a5: JUMPDEST
000003a6: SWAP1
000003a7: JUMP
000003a8: JUMPDEST
000003a9: PUSH1 0x03
000003ab: PUSH1 0x00
000003ad: POP
000003ae: SLOAD
000003af: DUP2
000003b0: JUMP
000003b1: JUMPDEST
000003b2: PUSH1 0x04
000003b4: PUSH1 0x00
000003b6: POP
000003b7: SLOAD
000003b8: DUP2
000003b9: JUMP
000003ba: JUMPDEST
000003bb: PUSH1 0x05
000003bd: PUSH1 0x00
000003bf: POP
000003c0: SLOAD
000003c1: DUP2
000003c2: JUMP
000003c3: JUMPDEST
000003c4: PUSH1 0x06
000003c6: PUSH1 0x00
000003c8: POP
000003c9: SLOAD
000003ca: DUP2
000003cb: JUMP
000003cc: JUMPDEST
000003cd: PUSH1 0x07
000003cf: PUSH1 0x00
000003d1: POP
000003d2: SLOAD
000003d3: DUP2
000003d4: JUMP
000003d5: JUMPDEST
000003d6: PUSH1 0x08
000003d8: PUSH1 0x00
000003da: POP
000003db: SLOAD
000003dc: DUP2
000003dd: JUMP
000003de: JUMPDEST
000003df: PUSH1 0x09
000003e1: PUSH1 0x00
000003e3: SWAP1
000003e4: SLOAD
000003e5: SWAP1
000003e6: PUSH2 0x0100
000003e9: EXP
000003ea: SWAP1
000003eb: DIV
000003ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000401: AND
00000402: DUP2
00000403: JUMP
00000404: JUMPDEST
00000405: PUSH1 0x0a
00000407: PUSH1 0x00
00000409: POP
0000040a: PUSH1 0x20
0000040c: MSTORE
0000040d: DUP1
0000040e: PUSH1 0x00
00000410: MSTORE
00000411: PUSH1 0x40
00000413: PUSH1 0x00
00000415: KECCAK256
00000416: PUSH1 0x00
00000418: SWAP2
00000419: POP
0000041a: SWAP1
0000041b: POP
0000041c: SLOAD
0000041d: DUP2
0000041e: JUMP
0000041f: JUMPDEST
00000420: PUSH1 0x0b
00000422: PUSH1 0x00
00000424: POP
00000425: PUSH1 0x20
00000427: MSTORE
00000428: DUP1
00000429: PUSH1 0x00
0000042b: MSTORE
0000042c: PUSH1 0x40
0000042e: PUSH1 0x00
00000430: KECCAK256
00000431: PUSH1 0x00
00000433: SWAP2
00000434: POP
00000435: SWAP1
00000436: POP
00000437: SLOAD
00000438: DUP2
00000439: JUMP
0000043a: JUMPDEST
0000043b: PUSH1 0x0d
0000043d: PUSH1 0x00
0000043f: POP
00000440: PUSH1 0x20
00000442: MSTORE
00000443: DUP1
00000444: PUSH1 0x00
00000446: MSTORE
00000447: PUSH1 0x40
00000449: PUSH1 0x00
0000044b: KECCAK256
0000044c: PUSH1 0x00
0000044e: SWAP2
0000044f: POP
00000450: SWAP1
00000451: POP
00000452: SLOAD
00000453: DUP2
00000454: JUMP
00000455: JUMPDEST
00000456: PUSH1 0x0e
00000458: PUSH1 0x00
0000045a: POP
0000045b: PUSH1 0x20
0000045d: MSTORE
0000045e: DUP1
0000045f: PUSH1 0x00
00000461: MSTORE
00000462: PUSH1 0x40
00000464: PUSH1 0x00
00000466: KECCAK256
00000467: PUSH1 0x00
00000469: SWAP2
0000046a: POP
0000046b: SWAP1
0000046c: SWAP1
0000046d: SLOAD
0000046e: SWAP1
0000046f: PUSH2 0x0100
00000472: EXP
00000473: SWAP1
00000474: DIV
00000475: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000048a: AND
0000048b: DUP2
0000048c: JUMP
0000048d: JUMPDEST
0000048e: PUSH1 0x00
00000490: PUSH1 0x0d
00000492: PUSH1 0x00
00000494: POP
00000495: PUSH1 0x00
00000497: CALLER
00000498: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004ad: AND
000004ae: DUP2
000004af: MSTORE
000004b0: PUSH1 0x20
000004b2: ADD
000004b3: SWAP1
000004b4: DUP2
000004b5: MSTORE
000004b6: PUSH1 0x20
000004b8: ADD
000004b9: PUSH1 0x00
000004bb: KECCAK256
000004bc: PUSH1 0x00
000004be: POP
000004bf: SLOAD
000004c0: SWAP1
000004c1: POP
000004c2: PUSH2 0x04c6
000004c5: JUMP
000004c6: JUMPDEST
000004c7: SWAP1
000004c8: JUMP
000004c9: JUMPDEST
000004ca: PUSH1 0x00
000004cc: PUSH1 0x0c
000004ce: PUSH1 0x00
000004d0: POP
000004d1: PUSH1 0x00
000004d3: CALLER
000004d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004e9: AND
000004ea: DUP2
000004eb: MSTORE
000004ec: PUSH1 0x20
000004ee: ADD
000004ef: SWAP1
000004f0: DUP2
000004f1: MSTORE
000004f2: PUSH1 0x20
000004f4: ADD
000004f5: PUSH1 0x00
000004f7: KECCAK256
000004f8: PUSH1 0x00
000004fa: POP
000004fb: SLOAD
000004fc: SWAP1
000004fd: POP
000004fe: PUSH2 0x0502
00000501: JUMP
00000502: JUMPDEST
00000503: SWAP1
00000504: JUMP
00000505: JUMPDEST
00000506: PUSH1 0x00
00000508: PUSH1 0x0b
0000050a: PUSH1 0x00
0000050c: POP
0000050d: PUSH1 0x00
0000050f: CALLER
00000510: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000525: AND
00000526: DUP2
00000527: MSTORE
00000528: PUSH1 0x20
0000052a: ADD
0000052b: SWAP1
0000052c: DUP2
0000052d: MSTORE
0000052e: PUSH1 0x20
00000530: ADD
00000531: PUSH1 0x00
00000533: KECCAK256
00000534: PUSH1 0x00
00000536: POP
00000537: SLOAD
00000538: TIMESTAMP
00000539: SUB
0000053a: SWAP1
0000053b: POP
0000053c: PUSH2 0x0540
0000053f: JUMP
00000540: JUMPDEST
00000541: SWAP1
00000542: JUMP
00000543: JUMPDEST
00000544: PUSH1 0x07
00000546: PUSH1 0x00
00000548: DUP2
00000549: DUP2
0000054a: POP
0000054b: SLOAD
0000054c: PUSH1 0x01
0000054e: ADD
0000054f: SWAP2
00000550: SWAP1
00000551: POP
00000552: DUP2
00000553: SWAP1
00000554: SSTORE
00000555: POP
00000556: TIMESTAMP
00000557: PUSH1 0x05
00000559: PUSH1 0x00
0000055b: POP
0000055c: DUP2
0000055d: SWAP1
0000055e: SSTORE
0000055f: POP
00000560: CALLER
00000561: PUSH1 0x0e
00000563: PUSH1 0x00
00000565: POP
00000566: PUSH1 0x00
00000568: PUSH1 0x07
0000056a: PUSH1 0x00
0000056c: POP
0000056d: SLOAD
0000056e: DUP2
0000056f: MSTORE
00000570: PUSH1 0x20
00000572: ADD
00000573: SWAP1
00000574: DUP2
00000575: MSTORE
00000576: PUSH1 0x20
00000578: ADD
00000579: PUSH1 0x00
0000057b: KECCAK256
0000057c: PUSH1 0x00
0000057e: PUSH2 0x0100
00000581: EXP
00000582: DUP2
00000583: SLOAD
00000584: DUP2
00000585: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000059a: MUL
0000059b: NOT
0000059c: AND
0000059d: SWAP1
0000059e: DUP4
0000059f: MUL
000005a0: OR
000005a1: SWAP1
000005a2: SSTORE
000005a3: POP
000005a4: CALLVALUE
000005a5: PUSH1 0x0a
000005a7: PUSH1 0x00
000005a9: POP
000005aa: PUSH1 0x00
000005ac: CALLER
000005ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005c2: AND
000005c3: DUP2
000005c4: MSTORE
000005c5: PUSH1 0x20
000005c7: ADD
000005c8: SWAP1
000005c9: DUP2
000005ca: MSTORE
000005cb: PUSH1 0x20
000005cd: ADD
000005ce: PUSH1 0x00
000005d0: KECCAK256
000005d1: PUSH1 0x00
000005d3: DUP3
000005d4: DUP3
000005d5: DUP3
000005d6: POP
000005d7: SLOAD
000005d8: ADD
000005d9: SWAP3
000005da: POP
000005db: POP
000005dc: DUP2
000005dd: SWAP1
000005de: SSTORE
000005df: POP
000005e0: PUSH2 0x05e7
000005e3: PUSH2 0x05ea
000005e6: JUMP
000005e7: JUMPDEST
000005e8: JUMPDEST
000005e9: JUMP
000005ea: JUMPDEST
000005eb: PUSH1 0x06
000005ed: PUSH1 0x00
000005ef: POP
000005f0: SLOAD
000005f1: PUSH1 0x0b
000005f3: PUSH1 0x00
000005f5: POP
000005f6: PUSH1 0x00
000005f8: CALLER
000005f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000060e: AND
0000060f: DUP2
00000610: MSTORE
00000611: PUSH1 0x20
00000613: ADD
00000614: SWAP1
00000615: DUP2
00000616: MSTORE
00000617: PUSH1 0x20
00000619: ADD
0000061a: PUSH1 0x00
0000061c: KECCAK256
0000061d: PUSH1 0x00
0000061f: POP
00000620: SLOAD
00000621: TIMESTAMP
00000622: SUB
00000623: LT
00000624: ISZERO
00000625: ISZERO
00000626: PUSH2 0x07d1
00000629: JUMPI
0000062a: PUSH1 0x64
0000062c: PUSH1 0x04
0000062e: PUSH1 0x00
00000630: POP
00000631: SLOAD
00000632: PUSH1 0x64
00000634: PUSH1 0x03
00000636: PUSH1 0x00
00000638: POP
00000639: SLOAD
0000063a: PUSH1 0x0a
0000063c: PUSH1 0x00
0000063e: POP
0000063f: PUSH1 0x00
00000641: CALLER
00000642: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000657: AND
00000658: DUP2
00000659: MSTORE
0000065a: PUSH1 0x20
0000065c: ADD
0000065d: SWAP1
0000065e: DUP2
0000065f: MSTORE
00000660: PUSH1 0x20
00000662: ADD
00000663: PUSH1 0x00
00000665: KECCAK256
00000666: PUSH1 0x00
00000668: POP
00000669: SLOAD
0000066a: MUL
0000066b: DIV
0000066c: MUL
0000066d: DIV
0000066e: PUSH1 0x01
00000670: PUSH1 0x00
00000672: POP
00000673: DUP2
00000674: SWAP1
00000675: SSTORE
00000676: POP
00000677: PUSH1 0x01
00000679: PUSH1 0x00
0000067b: POP
0000067c: SLOAD
0000067d: PUSH1 0x64
0000067f: PUSH1 0x03
00000681: PUSH1 0x00
00000683: POP
00000684: SLOAD
00000685: PUSH1 0x0a
00000687: PUSH1 0x00
00000689: POP
0000068a: PUSH1 0x00
0000068c: CALLER
0000068d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006a2: AND
000006a3: DUP2
000006a4: MSTORE
000006a5: PUSH1 0x20
000006a7: ADD
000006a8: SWAP1
000006a9: DUP2
000006aa: MSTORE
000006ab: PUSH1 0x20
000006ad: ADD
000006ae: PUSH1 0x00
000006b0: KECCAK256
000006b1: PUSH1 0x00
000006b3: POP
000006b4: SLOAD
000006b5: MUL
000006b6: DIV
000006b7: SUB
000006b8: PUSH1 0x02
000006ba: PUSH1 0x00
000006bc: POP
000006bd: DUP2
000006be: SWAP1
000006bf: SSTORE
000006c0: POP
000006c1: PUSH1 0x09
000006c3: PUSH1 0x00
000006c5: SWAP1
000006c6: SLOAD
000006c7: SWAP1
000006c8: PUSH2 0x0100
000006cb: EXP
000006cc: SWAP1
000006cd: DIV
000006ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006e3: AND
000006e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006f9: AND
000006fa: PUSH1 0x00
000006fc: PUSH1 0x01
000006fe: PUSH1 0x00
00000700: POP
00000701: SLOAD
00000702: PUSH1 0x40
00000704: MLOAD
00000705: DUP1
00000706: SWAP1
00000707: POP
00000708: PUSH1 0x00
0000070a: PUSH1 0x40
0000070c: MLOAD
0000070d: DUP1
0000070e: DUP4
0000070f: SUB
00000710: DUP2
00000711: DUP6
00000712: DUP9
00000713: DUP9
00000714: CALL
00000715: SWAP4
00000716: POP
00000717: POP
00000718: POP
00000719: POP
0000071a: POP
0000071b: PUSH1 0x02
0000071d: PUSH1 0x00
0000071f: POP
00000720: SLOAD
00000721: PUSH1 0x0d
00000723: PUSH1 0x00
00000725: POP
00000726: PUSH1 0x00
00000728: CALLER
00000729: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000073e: AND
0000073f: DUP2
00000740: MSTORE
00000741: PUSH1 0x20
00000743: ADD
00000744: SWAP1
00000745: DUP2
00000746: MSTORE
00000747: PUSH1 0x20
00000749: ADD
0000074a: PUSH1 0x00
0000074c: KECCAK256
0000074d: PUSH1 0x00
0000074f: DUP3
00000750: DUP3
00000751: DUP3
00000752: POP
00000753: SLOAD
00000754: ADD
00000755: SWAP3
00000756: POP
00000757: POP
00000758: DUP2
00000759: SWAP1
0000075a: SSTORE
0000075b: POP
0000075c: PUSH1 0x02
0000075e: PUSH1 0x00
00000760: POP
00000761: SLOAD
00000762: PUSH1 0x0c
00000764: PUSH1 0x00
00000766: POP
00000767: PUSH1 0x00
00000769: CALLER
0000076a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000077f: AND
00000780: DUP2
00000781: MSTORE
00000782: PUSH1 0x20
00000784: ADD
00000785: SWAP1
00000786: DUP2
00000787: MSTORE
00000788: PUSH1 0x20
0000078a: ADD
0000078b: PUSH1 0x00
0000078d: KECCAK256
0000078e: PUSH1 0x00
00000790: DUP3
00000791: DUP3
00000792: DUP3
00000793: POP
00000794: SLOAD
00000795: ADD
00000796: SWAP3
00000797: POP
00000798: POP
00000799: DUP2
0000079a: SWAP1
0000079b: SSTORE
0000079c: POP
0000079d: TIMESTAMP
0000079e: PUSH1 0x0b
000007a0: PUSH1 0x00
000007a2: POP
000007a3: PUSH1 0x00
000007a5: CALLER
000007a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007bb: AND
000007bc: DUP2
000007bd: MSTORE
000007be: PUSH1 0x20
000007c0: ADD
000007c1: SWAP1
000007c2: DUP2
000007c3: MSTORE
000007c4: PUSH1 0x20
000007c6: ADD
000007c7: PUSH1 0x00
000007c9: KECCAK256
000007ca: PUSH1 0x00
000007cc: POP
000007cd: DUP2
000007ce: SWAP1
000007cf: SSTORE
000007d0: POP
000007d1: JUMPDEST
000007d2: JUMPDEST
000007d3: JUMP
000007d4: JUMPDEST
000007d5: PUSH1 0x06
000007d7: PUSH1 0x00
000007d9: POP
000007da: SLOAD
000007db: PUSH1 0x0b
000007dd: PUSH1 0x00
000007df: POP
000007e0: PUSH1 0x00
000007e2: CALLER
000007e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007f8: AND
000007f9: DUP2
000007fa: MSTORE
000007fb: PUSH1 0x20
000007fd: ADD
000007fe: SWAP1
000007ff: DUP2
00000800: MSTORE
00000801: PUSH1 0x20
00000803: ADD
00000804: PUSH1 0x00
00000806: KECCAK256
00000807: PUSH1 0x00
00000809: POP
0000080a: SLOAD
0000080b: TIMESTAMP
0000080c: SUB
0000080d: LT
0000080e: ISZERO
0000080f: ISZERO
00000810: PUSH2 0x0969
00000813: JUMPI
00000814: PUSH1 0x02
00000816: PUSH1 0x00
00000818: POP
00000819: SLOAD
0000081a: PUSH1 0x0a
0000081c: PUSH1 0x00
0000081e: POP
0000081f: PUSH1 0x00
00000821: CALLER
00000822: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000837: AND
00000838: DUP2
00000839: MSTORE
0000083a: PUSH1 0x20
0000083c: ADD
0000083d: SWAP1
0000083e: DUP2
0000083f: MSTORE
00000840: PUSH1 0x20
00000842: ADD
00000843: PUSH1 0x00
00000845: KECCAK256
00000846: PUSH1 0x00
00000848: POP
00000849: SLOAD
0000084a: ADD
0000084b: ADDRESS
0000084c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000861: AND
00000862: BALANCE
00000863: GT
00000864: ISZERO
00000865: PUSH2 0x0968
00000868: JUMPI
00000869: CALLER
0000086a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000087f: AND
00000880: PUSH1 0x00
00000882: PUSH1 0x02
00000884: PUSH1 0x00
00000886: POP
00000887: SLOAD
00000888: PUSH1 0x0a
0000088a: PUSH1 0x00
0000088c: POP
0000088d: PUSH1 0x00
0000088f: CALLER
00000890: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008a5: AND
000008a6: DUP2
000008a7: MSTORE
000008a8: PUSH1 0x20
000008aa: ADD
000008ab: SWAP1
000008ac: DUP2
000008ad: MSTORE
000008ae: PUSH1 0x20
000008b0: ADD
000008b1: PUSH1 0x00
000008b3: KECCAK256
000008b4: PUSH1 0x00
000008b6: POP
000008b7: SLOAD
000008b8: ADD
000008b9: PUSH1 0x40
000008bb: MLOAD
000008bc: DUP1
000008bd: SWAP1
000008be: POP
000008bf: PUSH1 0x00
000008c1: PUSH1 0x40
000008c3: MLOAD
000008c4: DUP1
000008c5: DUP4
000008c6: SUB
000008c7: DUP2
000008c8: DUP6
000008c9: DUP9
000008ca: DUP9
000008cb: CALL
000008cc: SWAP4
000008cd: POP
000008ce: POP
000008cf: POP
000008d0: POP
000008d1: PUSH1 0x00
000008d3: PUSH1 0x00
000008d5: PUSH2 0x0100
000008d8: EXP
000008d9: DUP2
000008da: SLOAD
000008db: DUP2
000008dc: PUSH1 0xff
000008de: MUL
000008df: NOT
000008e0: AND
000008e1: SWAP1
000008e2: DUP4
000008e3: MUL
000008e4: OR
000008e5: SWAP1
000008e6: SSTORE
000008e7: POP
000008e8: PUSH1 0x00
000008ea: PUSH1 0x00
000008ec: SWAP1
000008ed: SLOAD
000008ee: SWAP1
000008ef: PUSH2 0x0100
000008f2: EXP
000008f3: SWAP1
000008f4: DIV
000008f5: PUSH1 0xff
000008f7: AND
000008f8: ISZERO
000008f9: PUSH2 0x0967
000008fc: JUMPI
000008fd: PUSH1 0x00
000008ff: PUSH1 0x0d
00000901: PUSH1 0x00
00000903: POP
00000904: PUSH1 0x00
00000906: CALLER
00000907: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000091c: AND
0000091d: DUP2
0000091e: MSTORE
0000091f: PUSH1 0x20
00000921: ADD
00000922: SWAP1
00000923: DUP2
00000924: MSTORE
00000925: PUSH1 0x20
00000927: ADD
00000928: PUSH1 0x00
0000092a: KECCAK256
0000092b: PUSH1 0x00
0000092d: POP
0000092e: DUP2
0000092f: SWAP1
00000930: SSTORE
00000931: POP
00000932: PUSH1 0x00
00000934: PUSH1 0x0a
00000936: PUSH1 0x00
00000938: POP
00000939: PUSH1 0x00
0000093b: CALLER
0000093c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000951: AND
00000952: DUP2
00000953: MSTORE
00000954: PUSH1 0x20
00000956: ADD
00000957: SWAP1
00000958: DUP2
00000959: MSTORE
0000095a: PUSH1 0x20
0000095c: ADD
0000095d: PUSH1 0x00
0000095f: KECCAK256
00000960: PUSH1 0x00
00000962: POP
00000963: DUP2
00000964: SWAP1
00000965: SSTORE
00000966: POP
00000967: JUMPDEST
00000968: JUMPDEST
00000969: JUMPDEST
0000096a: JUMPDEST
0000096b: JUMP
0000096c: JUMPDEST
0000096d: PUSH1 0x06
0000096f: PUSH1 0x00
00000971: POP
00000972: SLOAD
00000973: PUSH1 0x0b
00000975: PUSH1 0x00
00000977: POP
00000978: PUSH1 0x00
0000097a: CALLER
0000097b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000990: AND
00000991: DUP2
00000992: MSTORE
00000993: PUSH1 0x20
00000995: ADD
00000996: SWAP1
00000997: DUP2
00000998: MSTORE
00000999: PUSH1 0x20
0000099b: ADD
0000099c: PUSH1 0x00
0000099e: KECCAK256
0000099f: PUSH1 0x00
000009a1: POP
000009a2: SLOAD
000009a3: TIMESTAMP
000009a4: SUB
000009a5: LT
000009a6: ISZERO
000009a7: ISZERO
000009a8: PUSH2 0x0adc
000009ab: JUMPI
000009ac: PUSH1 0x02
000009ae: PUSH1 0x00
000009b0: POP
000009b1: SLOAD
000009b2: ADDRESS
000009b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009c8: AND
000009c9: BALANCE
000009ca: GT
000009cb: ISZERO
000009cc: PUSH2 0x0adb
000009cf: JUMPI
000009d0: CALLER
000009d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009e6: AND
000009e7: PUSH1 0x00
000009e9: PUSH1 0x02
000009eb: PUSH1 0x00
000009ed: POP
000009ee: SLOAD
000009ef: PUSH1 0x40
000009f1: MLOAD
000009f2: DUP1
000009f3: SWAP1
000009f4: POP
000009f5: PUSH1 0x00
000009f7: PUSH1 0x40
000009f9: MLOAD
000009fa: DUP1
000009fb: DUP4
000009fc: SUB
000009fd: DUP2
000009fe: DUP6
000009ff: DUP9
00000a00: DUP9
00000a01: CALL
00000a02: SWAP4
00000a03: POP
00000a04: POP
00000a05: POP
00000a06: POP
00000a07: PUSH1 0x00
00000a09: PUSH1 0x00
00000a0b: PUSH2 0x0100
00000a0e: EXP
00000a0f: DUP2
00000a10: SLOAD
00000a11: DUP2
00000a12: PUSH1 0xff
00000a14: MUL
00000a15: NOT
00000a16: AND
00000a17: SWAP1
00000a18: DUP4
00000a19: MUL
00000a1a: OR
00000a1b: SWAP1
00000a1c: SSTORE
00000a1d: POP
00000a1e: PUSH1 0x00
00000a20: PUSH1 0x00
00000a22: SWAP1
00000a23: SLOAD
00000a24: SWAP1
00000a25: PUSH2 0x0100
00000a28: EXP
00000a29: SWAP1
00000a2a: DIV
00000a2b: PUSH1 0xff
00000a2d: AND
00000a2e: ISZERO
00000a2f: PUSH2 0x0ada
00000a32: JUMPI
00000a33: TIMESTAMP
00000a34: PUSH1 0x0b
00000a36: PUSH1 0x00
00000a38: POP
00000a39: PUSH1 0x00
00000a3b: CALLER
00000a3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a51: AND
00000a52: DUP2
00000a53: MSTORE
00000a54: PUSH1 0x20
00000a56: ADD
00000a57: SWAP1
00000a58: DUP2
00000a59: MSTORE
00000a5a: PUSH1 0x20
00000a5c: ADD
00000a5d: PUSH1 0x00
00000a5f: KECCAK256
00000a60: PUSH1 0x00
00000a62: POP
00000a63: DUP2
00000a64: SWAP1
00000a65: SSTORE
00000a66: POP
00000a67: PUSH1 0x0d
00000a69: PUSH1 0x00
00000a6b: POP
00000a6c: PUSH1 0x00
00000a6e: CALLER
00000a6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a84: AND
00000a85: DUP2
00000a86: MSTORE
00000a87: PUSH1 0x20
00000a89: ADD
00000a8a: SWAP1
00000a8b: DUP2
00000a8c: MSTORE
00000a8d: PUSH1 0x20
00000a8f: ADD
00000a90: PUSH1 0x00
00000a92: KECCAK256
00000a93: PUSH1 0x00
00000a95: POP
00000a96: SLOAD
00000a97: PUSH1 0x0d
00000a99: PUSH1 0x00
00000a9b: POP
00000a9c: PUSH1 0x00
00000a9e: CALLER
00000a9f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ab4: AND
00000ab5: DUP2
00000ab6: MSTORE
00000ab7: PUSH1 0x20
00000ab9: ADD
00000aba: SWAP1
00000abb: DUP2
00000abc: MSTORE
00000abd: PUSH1 0x20
00000abf: ADD
00000ac0: PUSH1 0x00
00000ac2: KECCAK256
00000ac3: PUSH1 0x00
00000ac5: DUP3
00000ac6: DUP3
00000ac7: DUP3
00000ac8: POP
00000ac9: SLOAD
00000aca: SUB
00000acb: SWAP3
00000acc: POP
00000acd: POP
00000ace: DUP2
00000acf: SWAP1
00000ad0: SSTORE
00000ad1: POP
00000ad2: PUSH2 0x0ad9
00000ad5: PUSH2 0x05ea
00000ad8: JUMP
00000ad9: JUMPDEST
00000ada: JUMPDEST
00000adb: JUMPDEST
00000adc: JUMPDEST
00000add: JUMPDEST
00000ade: JUMP
View stderr
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high math codex Cooldown/lock check uses reversed subtraction, collapsing the wait period 85 no
view
evidence_json
{
    "evidence": "At `pc:0x621-0x629` the contract loads slot `0x06`, then computes `mapping(slot0x0b, caller) - TIMESTAMP` via `TIMESTAMP; SUB`, followed by `LT` and a conditional jump. The same pattern appears again at `pc:0x7fb-0x813` and `pc:0x973-0x9ab`. A related view/helper path also returns `mapping(slot0x0b, caller) - TIMESTAMP`, corroborating the reversed subtraction. This is bytecode-level inference, but the opcode order is explicit.",
    "locations": [
        "pc:0x621",
        "pc:0x622",
        "pc:0x625",
        "pc:0x626",
        "pc:0x7fb",
        "pc:0x80c",
        "pc:0x80f",
        "pc:0x973",
        "pc:0x9a4",
        "pc:0x9a7",
        "selector:0x3ccfd60b",
        "selector:0x959499b6",
        "selector:0x8351a0d4"
    ],
    "recommendation": "Rebuild the guard as `block.timestamp - lastActionTs >= cooldown` (or equivalent) using checked arithmetic, and add explicit tests for same-block, next-block, and full-cooldown cases. Any helper/view function that reports remaining time should also use the corrected direction.",
    "exploit_scenario": "Selectors `0x3ccfd60b` and `0x959499b6` both gate ETH payouts with a timestamp check derived from `lastActionTs - block.timestamp`. In this old wrapping-arithmetic bytecode, once `block.timestamp` moves past the stored timestamp, the subtraction underflows to a huge value and the guard stops blocking. An attacker can therefore claim/withdraw again after only the next block instead of waiting the configured interval in slot `0x06`, draining rewards or principal much faster than intended."
}
high other detector Untrusted CALL target/value reachable 60 yes yes
view
trace_id: 0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205
call_targets: 0x4f0255319faa4a7915856300f5ff98a2fe86ae97, 0xee291517c6290faf94dee71647c27b9737b2a2d2
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
        "0xee291517c6290faf94dee71647c27b9737b2a2d2"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0de9cacd",
            "selector": "0x0de9cacd",
            "calldata_variants": [
                "0x0de9cacd",
                "0x0de9cacd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x12065fe0",
            "selector": "0x12065fe0",
            "calldata_variants": [
                "0x12065fe0",
                "0x12065fe00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x13060833",
            "selector": "0x13060833",
            "calldata_variants": [
                "0x13060833",
                "0x130608330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x27e235e3",
            "selector": "0x27e235e3",
            "calldata_variants": [
                "0x27e235e3",
                "0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ccfd60b",
            "selector": "0x3ccfd60b",
            "calldata_variants": [
                "0x3ccfd60b",
                "0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x481c6a75",
            "selector": "0x481c6a75",
            "calldata_variants": [
                "0x481c6a75",
                "0x481c6a750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4afdd0e7",
            "selector": "0x4afdd0e7",
            "calldata_variants": [
                "0x4afdd0e7",
                "0x4afdd0e70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5294010f",
            "selector": "0x5294010f",
            "calldata_variants": [
                "0x5294010f",
                "0x5294010f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1812,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2251,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2561,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [],
    "untrusted_call_count": 3
}
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205
call_targets: 0x4f0255319faa4a7915856300f5ff98a2fe86ae97, 0xee291517c6290faf94dee71647c27b9737b2a2d2
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
        "0xee291517c6290faf94dee71647c27b9737b2a2d2"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0de9cacd",
            "selector": "0x0de9cacd",
            "calldata_variants": [
                "0x0de9cacd",
                "0x0de9cacd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x12065fe0",
            "selector": "0x12065fe0",
            "calldata_variants": [
                "0x12065fe0",
                "0x12065fe00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x13060833",
            "selector": "0x13060833",
            "calldata_variants": [
                "0x13060833",
                "0x130608330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x27e235e3",
            "selector": "0x27e235e3",
            "calldata_variants": [
                "0x27e235e3",
                "0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ccfd60b",
            "selector": "0x3ccfd60b",
            "calldata_variants": [
                "0x3ccfd60b",
                "0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x481c6a75",
            "selector": "0x481c6a75",
            "calldata_variants": [
                "0x481c6a75",
                "0x481c6a750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4afdd0e7",
            "selector": "0x4afdd0e7",
            "calldata_variants": [
                "0x4afdd0e7",
                "0x4afdd0e70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5294010f",
            "selector": "0x5294010f",
            "calldata_variants": [
                "0x5294010f",
                "0x5294010f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1812,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2251,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2561,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": []
}
medium other codex Fallback/unknown-selector path silently accepts ETH without crediting sender 75 no
view
evidence_json
{
    "evidence": "`CALLDATASIZE; ISZERO; PUSH2 0x0103; JUMPI` at startup sends empty-calldata calls to the default handler, and unmatched selectors fall through `PUSH2 0x0103; JUMP` at `pc:0xff-0x102`. The destination at `pc:0x103/0x104` is just `JUMPDEST; STOP`, with no revert and no storage updates. By contrast, deposit accounting (`slot0x0a[caller] += CALLVALUE`) only appears in the explicit deposit path starting at `pc:0x543` (`selector:0xd0e30db0`).",
    "locations": [
        "pc:0x5",
        "pc:0x7",
        "pc:0xff",
        "pc:0x103",
        "pc:0x104",
        "pc:0x5a4",
        "selector:0xd0e30db0",
        "selector:0x0de9cacd"
    ],
    "recommendation": "Make `receive`/fallback revert unless the transfer is meant to be a deposit, or route plain ETH into the same accounting path as the explicit deposit function(s). Add tests for empty calldata, bad selectors, and forced ETH delivery edge cases.",
    "exploit_scenario": "A user who sends plain ETH to the contract, or calls it with an unknown selector and nonzero `msg.value`, reaches the default `STOP` path instead of the deposit bookkeeping. The ETH remains in contract balance, but the sender is never credited in the per-user storage used by withdrawal logic, so those funds are effectively lost from that sender's perspective."
}
low other codex ETH payouts are sent with stipend-only CALL semantics, which can lock funds for contract recipients 65 no
view
evidence_json
{
    "evidence": "Detector findings flagged reachable value-bearing CALLs at `pc:0x714`, `pc:0x8cb`, and `pc:0xa01`. Manual stack reconstruction of the bytecode around the user-facing payout sites shows the CALL gas argument is built from `PUSH1 0x00` rather than `GAS`, so these are stipend-only ETH sends. This is an inference from opcode order, but the absence of a `GAS` opcode before the calls is explicit.",
    "locations": [
        "pc:0x8cb",
        "pc:0xa01",
        "selector:0x3ccfd60b",
        "selector:0x959499b6"
    ],
    "recommendation": "Use a modern low-level call pattern that forwards adequate gas and handles failures explicitly, then reorder state changes into checks-effects-interactions or add a reentrancy guard. If only EOAs are intended, enforce that explicitly rather than relying on stipend behavior.",
    "exploit_scenario": "The payout sites at `pc:0x8cc` and `pc:0xa01` send ETH to `CALLER` using a `CALL` sequence with no `GAS` opcode and a pushed zero gas argument. That implies stipend-only value transfer semantics. EOAs will usually succeed, but many contract wallets/fallbacks will revert or need more than the stipend, causing claims/withdrawals to fail and potentially leaving funds stuck for those users."
}