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

Analysis Run

019bb50b-e120-724d-80e7-fccefb42de00

failed
Chain ID
1
Address
Block Number
Created
Tue, Jan 13, 2026 1:50 AM
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
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
SELFDESTRUCT present
crit 0 high 0 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
40331 artifact.fetch complete 1 / 3 3 months ago
40332 proxy.resolve complete 1 / 3 3 months ago
40333 tool.cast_disasm complete 1 / 3 3 months ago
40334 analysis.bundle complete 1 / 3 3 months ago
40335 capability.graph complete 1 / 3 3 months ago
40336 detector.run complete 1 / 3 3 months ago
40337 validation.fork complete 1 / 3 3 months ago
40472 report.consolidate complete 1 / 6 3 months ago
40473 tool.slither failed 2 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
failed solc version 0.3.5 is too old for supported toolchain
Attempts
2 / 2
Findings
0
Solc
View stderr
Traceback (most recent call last):
  File "/var/www/tripwire/worker/worker.py", line 198, in main
    payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
  File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
    return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 1056, in run
    solc_path, solc_meta = _prepare_solc(chosen_version, workspace)
                           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 190, in _prepare_solc
    raise RuntimeError(f"solc version {default_version} is too old for supported toolchain")
RuntimeError: solc version 0.3.5 is too old for supported toolchain

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Found an access-control privilege escalation in whitelist management and unchecked arithmetic that can corrupt accounting totals.
View stdout
{"no_findings":false,"summary":"Found an access-control privilege escalation in whitelist management and unchecked arithmetic that can corrupt accounting totals.","findings":[{"severity":"medium","category":"access_control","title":"Any whitelisted account can grant withdrawal privileges to arbitrary addresses","exploit_scenario":"If any whitelisted key is compromised (or a whitelisted user behaves maliciously), the attacker can call `whitelistAdd` to add their own address. They can then withdraw up to 20% of the contract balance every 180 days, effectively gaining long‑term draining capability without an owner/administrator approval gate.","recommendation":"Restrict `whitelistAdd` to a dedicated admin/owner role (or require a multi‑sig), and consider separate roles for logging vs. fund withdrawal.","evidence":"`whitelistAdd` is only gated by `isOnWhitelist`, allowing any whitelisted account to add new members.","locations":["contracts/Contract.sol:171","contracts/Contract.sol:52"]},{"severity":"low","category":"math","title":"Unchecked arithmetic can overflow donation/withdrawal accounting","exploit_scenario":"A very large donation or withdrawal can overflow `donations`, `totalDonated`, or `totalWithdrawn`, corrupting these counters. While these values are not currently used for access control, they can become misleading or wrap to smaller values.","recommendation":"Use SafeMath (or Solidity >=0.8 with checked arithmetic) for all counter updates, or explicitly guard against overflow.","evidence":"`donations[msg.sender] += msg.value; totalDonated += msg.value; totalWithdrawn += amount;` without overflow checks.","locations":["contracts/Contract.sol:206","contracts/Contract.sol:227","contracts/Contract.sol:228"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-ds3yjjv3
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb51e-c874-7183-9d64-4870a0975f8e
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

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 and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Reading the bundle file**
exec
/bin/bash -lc 'cat /tmp/codex-ds3yjjv3/AUDIT_BUNDLE.txt' in /tmp/codex-ds3yjjv3 succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/Contract.sol
================================================================================
// A life-log, done for Charlyn Greeff, born 18 April 2016 @ 15h30 (1460993400)
//    Mother: Mirana Hotz, 16 December 1977 (251078400)
//    Father: Jaco Greeff, 11 June 1973 (108604800)
//
// version: 1.0.0
// source: https://github.com/jacogr/ethcontracts/tree/master/src/LifeLog

contract CharlyLifeLog {
  // allow a maximum 20% withdrawal at any time
  uint private constant MAX_WITHDRAW_DIV = 5; // 100/20

  // allow one withdrawal every 6 months/180 days
  uint private constant WITHDRAW_INTERVAL = 180 days;


thinking
**Analyzing Solidity contract security**

I’m auditing an old Solidity contract that uses `throw` and `send`, with no SafeMath for overflows. I’m checking for reentrancy, privilege escalation via whitelist management, potential DoS, and gas limitations on `send`. There are some access control concerns because any whitelisted address can add others, which could lead to privilege escalation if one key is compromised. The contract also relies on block timestamps and lacks owner-based restrictions, but the overall risks seem moderate with some design trade-offs. I’ll next gather line numbers for reporting.
exec
/bin/bash -lc 'nl -ba /tmp/codex-ds3yjjv3/contracts/Contract.sol' in /tmp/codex-ds3yjjv3 succeeded in 8ms:
     1	// A life-log, done for Charlyn Greeff, born 18 April 2016 @ 15h30 (1460993400)
     2	//    Mother: Mirana Hotz, 16 December 1977 (251078400)
     3	//    Father: Jaco Greeff, 11 June 1973 (108604800)
     4	//
     5	// version: 1.0.0
     6	// source: https://github.com/jacogr/ethcontracts/tree/master/src/LifeLog
     7	
     8	contract CharlyLifeLog {
     9	  // allow a maximum 20% withdrawal at any time
    10	  uint private constant MAX_WITHDRAW_DIV = 5; // 100/20
    11	
    12	  // allow one withdrawal every 6 months/180 days
    13	  uint private constant WITHDRAW_INTERVAL = 180 days;
    14	
    15	  // all the actual events that can be created
    16	  event LogDonation(address indexed by, uint loggedAt, uint amount);
    17	  event LogWithdrawal(address indexed by, uint loggedAt, uint amount);
    18	  event LogPersonNew(address indexed by, uint loggedAt, uint index);
    19	  event LogPersonUpdate(address indexed by, uint loggedAt, uint index, string field);
    20	  event LogWhitelistAdd(address indexed by, uint loggedAt, address addr);

thinking
**Summarizing security findings and preparing report**

I'm gathering key security issues: unrestricted whitelist additions risk unauthorized withdrawals (medium severity), and unchecked arithmetic can overflow donation and withdrawal totals (low severity). I’ll highlight exploit scenarios, relevant code lines, and produce a JSON report reflecting these findings with clear categories and recommendations.
codex
{"no_findings":false,"summary":"Found an access-control privilege escalation in whitelist management and unchecked arithmetic that can corrupt accounting totals.","findings":[{"severity":"medium","category":"access_control","title":"Any whitelisted account can grant withdrawal privileges to arbitrary addresses","exploit_scenario":"If any whitelisted key is compromised (or a whitelisted user behaves maliciously), the attacker can call `whitelistAdd` to add their own address. They can then withdraw up to 20% of the contract balance every 180 days, effectively gaining long‑term draining capability without an owner/administrator approval gate.","recommendation":"Restrict `whitelistAdd` to a dedicated admin/owner role (or require a multi‑sig), and consider separate roles for logging vs. fund withdrawal.","evidence":"`whitelistAdd` is only gated by `isOnWhitelist`, allowing any whitelisted account to add new members.","locations":["contracts/Contract.sol:171","contracts/Contract.sol:52"]},{"severity":"low","category":"math","title":"Unchecked arithmetic can overflow donation/withdrawal accounting","exploit_scenario":"A very large donation or withdrawal can overflow `donations`, `totalDonated`, or `totalWithdrawn`, corrupting these counters. While these values are not currently used for access control, they can become misleading or wrap to smaller values.","recommendation":"Use SafeMath (or Solidity >=0.8 with checked arithmetic) for all counter updates, or explicitly guard against overflow.","evidence":"`donations[msg.sender] += msg.value; totalDonated += msg.value; totalWithdrawn += amount;` without overflow checks.","locations":["contracts/Contract.sol:206","contracts/Contract.sol:227","contracts/Contract.sol:228"]}]}
tokens used
10,850
Metadata
{
    "codex": {
        "ran_at": "2026-01-13T02:11:30.920742+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "Found an access-control privilege escalation in whitelist management and unchecked arithmetic that can corrupt accounting totals.",
    "raw_final": {
        "summary": "Found an access-control privilege escalation in whitelist management and unchecked arithmetic that can corrupt accounting totals.",
        "findings": [
            {
                "title": "Any whitelisted account can grant withdrawal privileges to arbitrary addresses",
                "category": "access_control",
                "evidence": "`whitelistAdd` is only gated by `isOnWhitelist`, allowing any whitelisted account to add new members.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:171",
                    "contracts/Contract.sol:52"
                ],
                "recommendation": "Restrict `whitelistAdd` to a dedicated admin/owner role (or require a multi\u2011sig), and consider separate roles for logging vs. fund withdrawal.",
                "exploit_scenario": "If any whitelisted key is compromised (or a whitelisted user behaves maliciously), the attacker can call `whitelistAdd` to add their own address. They can then withdraw up to 20% of the contract balance every 180 days, effectively gaining long\u2011term draining capability without an owner/administrator approval gate."
            },
            {
                "title": "Unchecked arithmetic can overflow donation/withdrawal accounting",
                "category": "math",
                "evidence": "`donations[msg.sender] += msg.value; totalDonated += msg.value; totalWithdrawn += amount;` without overflow checks.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:206",
                    "contracts/Contract.sol:227",
                    "contracts/Contract.sol:228"
                ],
                "recommendation": "Use SafeMath (or Solidity >=0.8 with checked arithmetic) for all counter updates, or explicitly guard against overflow.",
                "exploit_scenario": "A very large donation or withdrawal can overflow `donations`, `totalDonated`, or `totalWithdrawn`, corrupting these counters. While these values are not currently used for access control, they can become misleading or wrap to smaller values."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
2
Total opcodes
2962
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x00ce
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH3 0xb37044
00000018: DUP2
00000019: EQ
0000001a: PUSH2 0x00d9
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x09a399a7
00000024: EQ
00000025: PUSH2 0x00e2
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x0af658ca
0000002f: EQ
00000030: PUSH2 0x0192
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0x0ce3151c
0000003a: EQ
0000003b: PUSH2 0x01c2
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0x2e1a7d4d
00000045: EQ
00000046: PUSH2 0x0232
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0x4a9b3f95
00000050: EQ
00000051: PUSH2 0x025f
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0x4b319713
0000005b: EQ
0000005c: PUSH2 0x02cf
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0x524fa7b9
00000066: EQ
00000067: PUSH2 0x02d8
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0x61591a7c
00000071: EQ
00000072: PUSH2 0x0305
00000075: JUMPI
00000076: DUP1
00000077: PUSH4 0x98866c1a
0000007c: EQ
0000007d: PUSH2 0x0335
00000080: JUMPI
00000081: DUP1
00000082: PUSH4 0x9b19251a
00000087: EQ
00000088: PUSH2 0x0365
0000008b: JUMPI
0000008c: DUP1
0000008d: PUSH4 0x9e7a13ad
00000092: EQ
00000093: PUSH2 0x0380
00000096: JUMPI
00000097: DUP1
00000098: PUSH4 0xa932ed0d
0000009d: EQ
0000009e: PUSH2 0x04a5
000000a1: JUMPI
000000a2: DUP1
000000a3: PUSH4 0xb60e72cc
000000a8: EQ
000000a9: PUSH2 0x04d2
000000ac: JUMPI
000000ad: DUP1
000000ae: PUSH4 0xb7e9f193
000000b3: EQ
000000b4: PUSH2 0x0540
000000b7: JUMPI
000000b8: DUP1
000000b9: PUSH4 0xcc6cb19a
000000be: EQ
000000bf: PUSH2 0x0549
000000c2: JUMPI
000000c3: DUP1
000000c4: PUSH4 0xed88c68e
000000c9: EQ
000000ca: PUSH2 0x0561
000000cd: JUMPI
000000ce: JUMPDEST
000000cf: PUSH2 0x0573
000000d2: PUSH2 0x0575
000000d5: PUSH2 0x0565
000000d8: JUMP
000000d9: JUMPDEST
000000da: PUSH2 0x0577
000000dd: PUSH1 0x01
000000df: SLOAD
000000e0: DUP2
000000e1: JUMP
000000e2: JUMPDEST
000000e3: PUSH1 0x40
000000e5: DUP1
000000e6: MLOAD
000000e7: PUSH1 0x20
000000e9: PUSH1 0x04
000000eb: DUP1
000000ec: CALLDATALOAD
000000ed: DUP1
000000ee: DUP3
000000ef: ADD
000000f0: CALLDATALOAD
000000f1: PUSH1 0x1f
000000f3: DUP2
000000f4: ADD
000000f5: DUP5
000000f6: SWAP1
000000f7: DIV
000000f8: DUP5
000000f9: MUL
000000fa: DUP6
000000fb: ADD
000000fc: DUP5
000000fd: ADD
000000fe: SWAP1
000000ff: SWAP6
00000100: MSTORE
00000101: DUP5
00000102: DUP5
00000103: MSTORE
00000104: PUSH2 0x0573
00000107: SWAP5
00000108: SWAP2
00000109: SWAP4
0000010a: PUSH1 0x24
0000010c: SWAP4
0000010d: SWAP1
0000010e: SWAP3
0000010f: SWAP2
00000110: DUP5
00000111: ADD
00000112: SWAP2
00000113: SWAP1
00000114: DUP2
00000115: SWAP1
00000116: DUP5
00000117: ADD
00000118: DUP4
00000119: DUP3
0000011a: DUP1
0000011b: DUP3
0000011c: DUP5
0000011d: CALLDATACOPY
0000011e: POP
0000011f: POP
00000120: PUSH1 0x40
00000122: DUP1
00000123: MLOAD
00000124: PUSH1 0x20
00000126: PUSH1 0x64
00000128: CALLDATALOAD
00000129: DUP1
0000012a: DUP12
0000012b: ADD
0000012c: CALLDATALOAD
0000012d: PUSH1 0x1f
0000012f: DUP2
00000130: ADD
00000131: DUP4
00000132: SWAP1
00000133: DIV
00000134: DUP4
00000135: MUL
00000136: DUP5
00000137: ADD
00000138: DUP4
00000139: ADD
0000013a: SWAP1
0000013b: SWAP5
0000013c: MSTORE
0000013d: DUP4
0000013e: DUP4
0000013f: MSTORE
00000140: SWAP8
00000141: SWAP10
00000142: DUP10
00000143: CALLDATALOAD
00000144: SWAP10
00000145: PUSH1 0x44
00000147: CALLDATALOAD
00000148: SWAP10
00000149: SWAP2
0000014a: SWAP9
0000014b: POP
0000014c: PUSH1 0x84
0000014e: SWAP8
0000014f: POP
00000150: SWAP3
00000151: SWAP6
00000152: POP
00000153: SWAP1
00000154: SWAP2
00000155: ADD
00000156: SWAP3
00000157: POP
00000158: DUP2
00000159: SWAP1
0000015a: DUP5
0000015b: ADD
0000015c: DUP4
0000015d: DUP3
0000015e: DUP1
0000015f: DUP3
00000160: DUP5
00000161: CALLDATACOPY
00000162: POP
00000163: SWAP5
00000164: SWAP7
00000165: POP
00000166: POP
00000167: POP
00000168: POP
00000169: POP
0000016a: POP
0000016b: POP
0000016c: PUSH1 0x01
0000016e: PUSH1 0xa0
00000170: PUSH1 0x02
00000172: EXP
00000173: SUB
00000174: CALLER
00000175: AND
00000176: PUSH1 0x00
00000178: SWAP1
00000179: DUP2
0000017a: MSTORE
0000017b: PUSH1 0x05
0000017d: PUSH1 0x20
0000017f: MSTORE
00000180: PUSH1 0x40
00000182: SWAP1
00000183: KECCAK256
00000184: SLOAD
00000185: PUSH1 0xff
00000187: AND
00000188: ISZERO
00000189: ISZERO
0000018a: PUSH2 0x0745
0000018d: JUMPI
0000018e: PUSH2 0x0002
00000191: JUMP
00000192: JUMPDEST
00000193: PUSH2 0x0573
00000196: PUSH1 0x04
00000198: CALLDATALOAD
00000199: PUSH1 0x24
0000019b: CALLDATALOAD
0000019c: PUSH1 0x01
0000019e: PUSH1 0xa0
000001a0: PUSH1 0x02
000001a2: EXP
000001a3: SUB
000001a4: CALLER
000001a5: AND
000001a6: PUSH1 0x00
000001a8: SWAP1
000001a9: DUP2
000001aa: MSTORE
000001ab: PUSH1 0x05
000001ad: PUSH1 0x20
000001af: MSTORE
000001b0: PUSH1 0x40
000001b2: SWAP1
000001b3: KECCAK256
000001b4: SLOAD
000001b5: PUSH1 0xff
000001b7: AND
000001b8: ISZERO
000001b9: ISZERO
000001ba: PUSH2 0x0a33
000001bd: JUMPI
000001be: PUSH2 0x0002
000001c1: JUMP
000001c2: JUMPDEST
000001c3: PUSH1 0x40
000001c5: DUP1
000001c6: MLOAD
000001c7: PUSH1 0x20
000001c9: PUSH1 0x24
000001cb: DUP1
000001cc: CALLDATALOAD
000001cd: PUSH1 0x04
000001cf: DUP2
000001d0: DUP2
000001d1: ADD
000001d2: CALLDATALOAD
000001d3: PUSH1 0x1f
000001d5: DUP2
000001d6: ADD
000001d7: DUP6
000001d8: SWAP1
000001d9: DIV
000001da: DUP6
000001db: MUL
000001dc: DUP7
000001dd: ADD
000001de: DUP6
000001df: ADD
000001e0: SWAP1
000001e1: SWAP7
000001e2: MSTORE
000001e3: DUP6
000001e4: DUP6
000001e5: MSTORE
000001e6: PUSH2 0x0573
000001e9: SWAP6
000001ea: DUP2
000001eb: CALLDATALOAD
000001ec: SWAP6
000001ed: SWAP2
000001ee: SWAP5
000001ef: PUSH1 0x44
000001f1: SWAP5
000001f2: SWAP3
000001f3: SWAP4
000001f4: SWAP1
000001f5: SWAP3
000001f6: ADD
000001f7: SWAP2
000001f8: DUP2
000001f9: SWAP1
000001fa: DUP5
000001fb: ADD
000001fc: DUP4
000001fd: DUP3
000001fe: DUP1
000001ff: DUP3
00000200: DUP5
00000201: CALLDATACOPY
00000202: POP
00000203: SWAP5
00000204: SWAP7
00000205: POP
00000206: POP
00000207: POP
00000208: POP
00000209: POP
0000020a: POP
0000020b: POP
0000020c: PUSH1 0x01
0000020e: PUSH1 0xa0
00000210: PUSH1 0x02
00000212: EXP
00000213: SUB
00000214: CALLER
00000215: AND
00000216: PUSH1 0x00
00000218: SWAP1
00000219: DUP2
0000021a: MSTORE
0000021b: PUSH1 0x05
0000021d: PUSH1 0x20
0000021f: MSTORE
00000220: PUSH1 0x40
00000222: SWAP1
00000223: KECCAK256
00000224: SLOAD
00000225: PUSH1 0xff
00000227: AND
00000228: ISZERO
00000229: ISZERO
0000022a: PUSH2 0x0c12
0000022d: JUMPI
0000022e: PUSH2 0x0002
00000231: JUMP
00000232: JUMPDEST
00000233: PUSH2 0x0573
00000236: PUSH1 0x04
00000238: CALLDATALOAD
00000239: PUSH1 0x01
0000023b: PUSH1 0xa0
0000023d: PUSH1 0x02
0000023f: EXP
00000240: SUB
00000241: CALLER
00000242: AND
00000243: PUSH1 0x00
00000245: SWAP1
00000246: DUP2
00000247: MSTORE
00000248: PUSH1 0x05
0000024a: PUSH1 0x20
0000024c: MSTORE
0000024d: PUSH1 0x40
0000024f: DUP2
00000250: KECCAK256
00000251: SLOAD
00000252: PUSH1 0xff
00000254: AND
00000255: ISZERO
00000256: ISZERO
00000257: PUSH2 0x0d30
0000025a: JUMPI
0000025b: PUSH2 0x0002
0000025e: JUMP
0000025f: JUMPDEST
00000260: PUSH1 0x40
00000262: DUP1
00000263: MLOAD
00000264: PUSH1 0x20
00000266: PUSH1 0x24
00000268: DUP1
00000269: CALLDATALOAD
0000026a: PUSH1 0x04
0000026c: DUP2
0000026d: DUP2
0000026e: ADD
0000026f: CALLDATALOAD
00000270: PUSH1 0x1f
00000272: DUP2
00000273: ADD
00000274: DUP6
00000275: SWAP1
00000276: DIV
00000277: DUP6
00000278: MUL
00000279: DUP7
0000027a: ADD
0000027b: DUP6
0000027c: ADD
0000027d: SWAP1
0000027e: SWAP7
0000027f: MSTORE
00000280: DUP6
00000281: DUP6
00000282: MSTORE
00000283: PUSH2 0x0573
00000286: SWAP6
00000287: DUP2
00000288: CALLDATALOAD
00000289: SWAP6
0000028a: SWAP2
0000028b: SWAP5
0000028c: PUSH1 0x44
0000028e: SWAP5
0000028f: SWAP3
00000290: SWAP4
00000291: SWAP1
00000292: SWAP3
00000293: ADD
00000294: SWAP2
00000295: DUP2
00000296: SWAP1
00000297: DUP5
00000298: ADD
00000299: DUP4
0000029a: DUP3
0000029b: DUP1
0000029c: DUP3
0000029d: DUP5
0000029e: CALLDATACOPY
0000029f: POP
000002a0: SWAP5
000002a1: SWAP7
000002a2: POP
000002a3: POP
000002a4: POP
000002a5: POP
000002a6: POP
000002a7: POP
000002a8: POP
000002a9: PUSH1 0x01
000002ab: PUSH1 0xa0
000002ad: PUSH1 0x02
000002af: EXP
000002b0: SUB
000002b1: CALLER
000002b2: AND
000002b3: PUSH1 0x00
000002b5: SWAP1
000002b6: DUP2
000002b7: MSTORE
000002b8: PUSH1 0x05
000002ba: PUSH1 0x20
000002bc: MSTORE
000002bd: PUSH1 0x40
000002bf: SWAP1
000002c0: KECCAK256
000002c1: SLOAD
000002c2: PUSH1 0xff
000002c4: AND
000002c5: ISZERO
000002c6: ISZERO
000002c7: PUSH2 0x0de4
000002ca: JUMPI
000002cb: PUSH2 0x0002
000002ce: JUMP
000002cf: JUMPDEST
000002d0: PUSH2 0x0577
000002d3: PUSH1 0x02
000002d5: SLOAD
000002d6: DUP2
000002d7: JUMP
000002d8: JUMPDEST
000002d9: PUSH2 0x0573
000002dc: PUSH1 0x04
000002de: CALLDATALOAD
000002df: PUSH1 0x01
000002e1: PUSH1 0xa0
000002e3: PUSH1 0x02
000002e5: EXP
000002e6: SUB
000002e7: CALLER
000002e8: AND
000002e9: PUSH1 0x00
000002eb: SWAP1
000002ec: DUP2
000002ed: MSTORE
000002ee: PUSH1 0x05
000002f0: PUSH1 0x20
000002f2: MSTORE
000002f3: PUSH1 0x40
000002f5: SWAP1
000002f6: KECCAK256
000002f7: SLOAD
000002f8: PUSH1 0xff
000002fa: AND
000002fb: ISZERO
000002fc: ISZERO
000002fd: PUSH2 0x0eca
00000300: JUMPI
00000301: PUSH2 0x0002
00000304: JUMP
00000305: JUMPDEST
00000306: PUSH2 0x0573
00000309: PUSH1 0x04
0000030b: CALLDATALOAD
0000030c: PUSH1 0x24
0000030e: CALLDATALOAD
0000030f: PUSH1 0x01
00000311: PUSH1 0xa0
00000313: PUSH1 0x02
00000315: EXP
00000316: SUB
00000317: CALLER
00000318: AND
00000319: PUSH1 0x00
0000031b: SWAP1
0000031c: DUP2
0000031d: MSTORE
0000031e: PUSH1 0x05
00000320: PUSH1 0x20
00000322: MSTORE
00000323: PUSH1 0x40
00000325: SWAP1
00000326: KECCAK256
00000327: SLOAD
00000328: PUSH1 0xff
0000032a: AND
0000032b: ISZERO
0000032c: ISZERO
0000032d: PUSH2 0x0f42
00000330: JUMPI
00000331: PUSH2 0x0002
00000334: JUMP
00000335: JUMPDEST
00000336: PUSH2 0x0573
00000339: PUSH1 0x04
0000033b: CALLDATALOAD
0000033c: PUSH1 0x24
0000033e: CALLDATALOAD
0000033f: PUSH1 0x01
00000341: PUSH1 0xa0
00000343: PUSH1 0x02
00000345: EXP
00000346: SUB
00000347: CALLER
00000348: AND
00000349: PUSH1 0x00
0000034b: SWAP1
0000034c: DUP2
0000034d: MSTORE
0000034e: PUSH1 0x05
00000350: PUSH1 0x20
00000352: MSTORE
00000353: PUSH1 0x40
00000355: SWAP1
00000356: KECCAK256
00000357: SLOAD
00000358: PUSH1 0xff
0000035a: AND
0000035b: ISZERO
0000035c: ISZERO
0000035d: PUSH2 0x0ffa
00000360: JUMPI
00000361: PUSH2 0x0002
00000364: JUMP
00000365: JUMPDEST
00000366: PUSH2 0x0589
00000369: PUSH1 0x04
0000036b: CALLDATALOAD
0000036c: PUSH1 0x05
0000036e: PUSH1 0x20
00000370: MSTORE
00000371: PUSH1 0x00
00000373: SWAP1
00000374: DUP2
00000375: MSTORE
00000376: PUSH1 0x40
00000378: SWAP1
00000379: KECCAK256
0000037a: SLOAD
0000037b: PUSH1 0xff
0000037d: AND
0000037e: DUP2
0000037f: JUMP
00000380: JUMPDEST
00000381: PUSH2 0x059d
00000384: PUSH1 0x04
00000386: CALLDATALOAD
00000387: PUSH1 0x03
00000389: DUP1
0000038a: SLOAD
0000038b: DUP3
0000038c: SWAP1
0000038d: DUP2
0000038e: LT
0000038f: ISZERO
00000390: PUSH2 0x0002
00000393: JUMPI
00000394: POP
00000395: PUSH1 0x00
00000397: MSTORE
00000398: PUSH1 0x07
0000039a: MUL
0000039b: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b
000003bc: DUP2
000003bd: ADD
000003be: SLOAD
000003bf: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c
000003e0: DUP3
000003e1: ADD
000003e2: SLOAD
000003e3: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d
00000404: DUP4
00000405: ADD
00000406: SLOAD
00000407: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85e
00000428: DUP5
00000429: ADD
0000042a: SLOAD
0000042b: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85f
0000044c: DUP6
0000044d: ADD
0000044e: SLOAD
0000044f: PUSH1 0xff
00000451: SWAP5
00000452: SWAP1
00000453: SWAP5
00000454: AND
00000455: SWAP5
00000456: SWAP3
00000457: SWAP4
00000458: SWAP2
00000459: SWAP3
0000045a: SWAP1
0000045b: SWAP2
0000045c: SWAP1
0000045d: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f860
0000047e: DUP2
0000047f: ADD
00000480: SWAP1
00000481: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f861
000004a2: ADD
000004a3: DUP8
000004a4: JUMP
000004a5: JUMPDEST
000004a6: PUSH2 0x0573
000004a9: PUSH1 0x04
000004ab: CALLDATALOAD
000004ac: PUSH1 0x01
000004ae: PUSH1 0xa0
000004b0: PUSH1 0x02
000004b2: EXP
000004b3: SUB
000004b4: CALLER
000004b5: AND
000004b6: PUSH1 0x00
000004b8: SWAP1
000004b9: DUP2
000004ba: MSTORE
000004bb: PUSH1 0x05
000004bd: PUSH1 0x20
000004bf: MSTORE
000004c0: PUSH1 0x40
000004c2: SWAP1
000004c3: KECCAK256
000004c4: SLOAD
000004c5: PUSH1 0xff
000004c7: AND
000004c8: ISZERO
000004c9: ISZERO
000004ca: PUSH2 0x10af
000004cd: JUMPI
000004ce: PUSH2 0x0002
000004d1: JUMP
000004d2: JUMPDEST
000004d3: PUSH1 0x40
000004d5: DUP1
000004d6: MLOAD
000004d7: PUSH1 0x20
000004d9: PUSH1 0x04
000004db: DUP1
000004dc: CALLDATALOAD
000004dd: DUP1
000004de: DUP3
000004df: ADD
000004e0: CALLDATALOAD
000004e1: PUSH1 0x1f
000004e3: DUP2
000004e4: ADD
000004e5: DUP5
000004e6: SWAP1
000004e7: DIV
000004e8: DUP5
000004e9: MUL
000004ea: DUP6
000004eb: ADD
000004ec: DUP5
000004ed: ADD
000004ee: SWAP1
000004ef: SWAP6
000004f0: MSTORE
000004f1: DUP5
000004f2: DUP5
000004f3: MSTORE
000004f4: PUSH2 0x0573
000004f7: SWAP5
000004f8: SWAP2
000004f9: SWAP4
000004fa: PUSH1 0x24
000004fc: SWAP4
000004fd: SWAP1
000004fe: SWAP3
000004ff: SWAP2
00000500: DUP5
00000501: ADD
00000502: SWAP2
00000503: SWAP1
00000504: DUP2
00000505: SWAP1
00000506: DUP5
00000507: ADD
00000508: DUP4
00000509: DUP3
0000050a: DUP1
0000050b: DUP3
0000050c: DUP5
0000050d: CALLDATACOPY
0000050e: POP
0000050f: SWAP5
00000510: SWAP7
00000511: POP
00000512: POP
00000513: SWAP4
00000514: CALLDATALOAD
00000515: SWAP4
00000516: POP
00000517: POP
00000518: POP
00000519: POP
0000051a: PUSH1 0x01
0000051c: PUSH1 0xa0
0000051e: PUSH1 0x02
00000520: EXP
00000521: SUB
00000522: CALLER
00000523: AND
00000524: PUSH1 0x00
00000526: SWAP1
00000527: DUP2
00000528: MSTORE
00000529: PUSH1 0x05
0000052b: PUSH1 0x20
0000052d: MSTORE
0000052e: PUSH1 0x40
00000530: DUP2
00000531: KECCAK256
00000532: SLOAD
00000533: PUSH1 0xff
00000535: AND
00000536: ISZERO
00000537: ISZERO
00000538: PUSH2 0x113f
0000053b: JUMPI
0000053c: PUSH2 0x0002
0000053f: JUMP
00000540: JUMPDEST
00000541: PUSH2 0x0577
00000544: PUSH1 0x00
00000546: SLOAD
00000547: DUP2
00000548: JUMP
00000549: JUMPDEST
0000054a: PUSH2 0x0577
0000054d: PUSH1 0x04
0000054f: CALLDATALOAD
00000550: PUSH1 0x04
00000552: PUSH1 0x20
00000554: MSTORE
00000555: PUSH1 0x00
00000557: SWAP1
00000558: DUP2
00000559: MSTORE
0000055a: PUSH1 0x40
0000055c: SWAP1
0000055d: KECCAK256
0000055e: SLOAD
0000055f: DUP2
00000560: JUMP
00000561: JUMPDEST
00000562: PUSH2 0x0573
00000565: JUMPDEST
00000566: CALLVALUE
00000567: PUSH1 0x00
00000569: EQ
0000056a: ISZERO
0000056b: PUSH2 0x06cb
0000056e: JUMPI
0000056f: PUSH2 0x0002
00000572: JUMP
00000573: JUMPDEST
00000574: STOP
00000575: JUMPDEST
00000576: JUMP
00000577: JUMPDEST
00000578: PUSH1 0x40
0000057a: DUP1
0000057b: MLOAD
0000057c: SWAP2
0000057d: DUP3
0000057e: MSTORE
0000057f: MLOAD
00000580: SWAP1
00000581: DUP2
00000582: SWAP1
00000583: SUB
00000584: PUSH1 0x20
00000586: ADD
00000587: SWAP1
00000588: RETURN
00000589: JUMPDEST
0000058a: PUSH1 0x40
0000058c: DUP1
0000058d: MLOAD
0000058e: SWAP2
0000058f: ISZERO
00000590: ISZERO
00000591: DUP3
00000592: MSTORE
00000593: MLOAD
00000594: SWAP1
00000595: DUP2
00000596: SWAP1
00000597: SUB
00000598: PUSH1 0x20
0000059a: ADD
0000059b: SWAP1
0000059c: RETURN
0000059d: JUMPDEST
0000059e: PUSH1 0x40
000005a0: DUP1
000005a1: MLOAD
000005a2: DUP9
000005a3: ISZERO
000005a4: ISZERO
000005a5: DUP2
000005a6: MSTORE
000005a7: PUSH1 0x20
000005a9: DUP2
000005aa: ADD
000005ab: DUP9
000005ac: SWAP1
000005ad: MSTORE
000005ae: SWAP1
000005af: DUP2
000005b0: ADD
000005b1: DUP7
000005b2: SWAP1
000005b3: MSTORE
000005b4: PUSH1 0x60
000005b6: DUP2
000005b7: ADD
000005b8: DUP6
000005b9: SWAP1
000005ba: MSTORE
000005bb: PUSH1 0x80
000005bd: DUP2
000005be: ADD
000005bf: DUP5
000005c0: SWAP1
000005c1: MSTORE
000005c2: PUSH1 0xe0
000005c4: PUSH1 0xa0
000005c6: DUP3
000005c7: ADD
000005c8: DUP2
000005c9: DUP2
000005ca: MSTORE
000005cb: DUP5
000005cc: SLOAD
000005cd: PUSH1 0x02
000005cf: PUSH1 0x01
000005d1: DUP3
000005d2: AND
000005d3: ISZERO
000005d4: PUSH2 0x0100
000005d7: SWAP1
000005d8: DUP2
000005d9: MUL
000005da: PUSH1 0x00
000005dc: NOT
000005dd: ADD
000005de: SWAP1
000005df: SWAP3
000005e0: AND
000005e1: DIV
000005e2: SWAP3
000005e3: DUP5
000005e4: ADD
000005e5: DUP4
000005e6: SWAP1
000005e7: MSTORE
000005e8: SWAP1
000005e9: SWAP2
000005ea: PUSH1 0xc0
000005ec: DUP5
000005ed: ADD
000005ee: SWAP2
000005ef: DUP5
000005f0: ADD
000005f1: SWAP1
000005f2: DUP7
000005f3: SWAP1
000005f4: DUP1
000005f5: ISZERO
000005f6: PUSH2 0x0640
000005f9: JUMPI
000005fa: DUP1
000005fb: PUSH1 0x1f
000005fd: LT
000005fe: PUSH2 0x0615
00000601: JUMPI
00000602: PUSH2 0x0100
00000605: DUP1
00000606: DUP4
00000607: SLOAD
00000608: DIV
00000609: MUL
0000060a: DUP4
0000060b: MSTORE
0000060c: SWAP2
0000060d: PUSH1 0x20
0000060f: ADD
00000610: SWAP2
00000611: PUSH2 0x0640
00000614: JUMP
00000615: JUMPDEST
00000616: DUP3
00000617: ADD
00000618: SWAP2
00000619: SWAP1
0000061a: PUSH1 0x00
0000061c: MSTORE
0000061d: PUSH1 0x20
0000061f: PUSH1 0x00
00000621: KECCAK256
00000622: SWAP1
00000623: JUMPDEST
00000624: DUP2
00000625: SLOAD
00000626: DUP2
00000627: MSTORE
00000628: SWAP1
00000629: PUSH1 0x01
0000062b: ADD
0000062c: SWAP1
0000062d: PUSH1 0x20
0000062f: ADD
00000630: DUP1
00000631: DUP4
00000632: GT
00000633: PUSH2 0x0623
00000636: JUMPI
00000637: DUP3
00000638: SWAP1
00000639: SUB
0000063a: PUSH1 0x1f
0000063c: AND
0000063d: DUP3
0000063e: ADD
0000063f: SWAP2
00000640: JUMPDEST
00000641: POP
00000642: POP
00000643: DUP4
00000644: DUP2
00000645: SUB
00000646: DUP3
00000647: MSTORE
00000648: DUP5
00000649: SLOAD
0000064a: PUSH1 0x02
0000064c: PUSH1 0x01
0000064e: DUP3
0000064f: AND
00000650: ISZERO
00000651: PUSH2 0x0100
00000654: MUL
00000655: PUSH1 0x00
00000657: NOT
00000658: ADD
00000659: SWAP1
0000065a: SWAP2
0000065b: AND
0000065c: DIV
0000065d: DUP1
0000065e: DUP3
0000065f: MSTORE
00000660: PUSH1 0x20
00000662: SWAP2
00000663: SWAP1
00000664: SWAP2
00000665: ADD
00000666: SWAP1
00000667: DUP6
00000668: SWAP1
00000669: DUP1
0000066a: ISZERO
0000066b: PUSH2 0x06b5
0000066e: JUMPI
0000066f: DUP1
00000670: PUSH1 0x1f
00000672: LT
00000673: PUSH2 0x068a
00000676: JUMPI
00000677: PUSH2 0x0100
0000067a: DUP1
0000067b: DUP4
0000067c: SLOAD
0000067d: DIV
0000067e: MUL
0000067f: DUP4
00000680: MSTORE
00000681: SWAP2
00000682: PUSH1 0x20
00000684: ADD
00000685: SWAP2
00000686: PUSH2 0x06b5
00000689: JUMP
0000068a: JUMPDEST
0000068b: DUP3
0000068c: ADD
0000068d: SWAP2
0000068e: SWAP1
0000068f: PUSH1 0x00
00000691: MSTORE
00000692: PUSH1 0x20
00000694: PUSH1 0x00
00000696: KECCAK256
00000697: SWAP1
00000698: JUMPDEST
00000699: DUP2
0000069a: SLOAD
0000069b: DUP2
0000069c: MSTORE
0000069d: SWAP1
0000069e: PUSH1 0x01
000006a0: ADD
000006a1: SWAP1
000006a2: PUSH1 0x20
000006a4: ADD
000006a5: DUP1
000006a6: DUP4
000006a7: GT
000006a8: PUSH2 0x0698
000006ab: JUMPI
000006ac: DUP3
000006ad: SWAP1
000006ae: SUB
000006af: PUSH1 0x1f
000006b1: AND
000006b2: DUP3
000006b3: ADD
000006b4: SWAP2
000006b5: JUMPDEST
000006b6: POP
000006b7: POP
000006b8: SWAP10
000006b9: POP
000006ba: POP
000006bb: POP
000006bc: POP
000006bd: POP
000006be: POP
000006bf: POP
000006c0: POP
000006c1: POP
000006c2: POP
000006c3: PUSH1 0x40
000006c5: MLOAD
000006c6: DUP1
000006c7: SWAP2
000006c8: SUB
000006c9: SWAP1
000006ca: RETURN
000006cb: JUMPDEST
000006cc: PUSH1 0x40
000006ce: DUP1
000006cf: MLOAD
000006d0: TIMESTAMP
000006d1: DUP2
000006d2: MSTORE
000006d3: CALLVALUE
000006d4: PUSH1 0x20
000006d6: DUP3
000006d7: ADD
000006d8: MSTORE
000006d9: DUP2
000006da: MLOAD
000006db: PUSH1 0x01
000006dd: PUSH1 0xa0
000006df: PUSH1 0x02
000006e1: EXP
000006e2: SUB
000006e3: CALLER
000006e4: AND
000006e5: SWAP3
000006e6: PUSH32 0x0a1930b762a25b24b07de059d1e257f20e78aa16db8c0408da9f67eb0a1bf010
00000707: SWAP3
00000708: DUP3
00000709: SWAP1
0000070a: SUB
0000070b: ADD
0000070c: SWAP1
0000070d: LOG2
0000070e: PUSH1 0x01
00000710: PUSH1 0xa0
00000712: PUSH1 0x02
00000714: EXP
00000715: SUB
00000716: CALLER
00000717: AND
00000718: PUSH1 0x00
0000071a: SWAP1
0000071b: DUP2
0000071c: MSTORE
0000071d: PUSH1 0x04
0000071f: PUSH1 0x20
00000721: MSTORE
00000722: PUSH1 0x40
00000724: SWAP1
00000725: KECCAK256
00000726: DUP1
00000727: SLOAD
00000728: CALLVALUE
00000729: SWAP1
0000072a: DUP2
0000072b: ADD
0000072c: SWAP1
0000072d: SWAP2
0000072e: SSTORE
0000072f: PUSH1 0x01
00000731: DUP1
00000732: SLOAD
00000733: SWAP1
00000734: SWAP2
00000735: ADD
00000736: SWAP1
00000737: SSTORE
00000738: JUMP
00000739: JUMPDEST
0000073a: POP
0000073b: POP
0000073c: POP
0000073d: POP
0000073e: POP
0000073f: JUMPDEST
00000740: POP
00000741: POP
00000742: POP
00000743: POP
00000744: JUMP
00000745: JUMPDEST
00000746: PUSH1 0x00
00000748: CALLVALUE
00000749: GT
0000074a: ISZERO
0000074b: PUSH2 0x0753
0000074e: JUMPI
0000074f: PUSH2 0x0002
00000752: JUMP
00000753: JUMPDEST
00000754: PUSH1 0x40
00000756: DUP1
00000757: MLOAD
00000758: PUSH1 0x03
0000075a: SLOAD
0000075b: TIMESTAMP
0000075c: DUP3
0000075d: MSTORE
0000075e: PUSH1 0x20
00000760: DUP3
00000761: ADD
00000762: MSTORE
00000763: DUP2
00000764: MLOAD
00000765: PUSH1 0x01
00000767: PUSH1 0xa0
00000769: PUSH1 0x02
0000076b: EXP
0000076c: SUB
0000076d: CALLER
0000076e: AND
0000076f: SWAP3
00000770: PUSH32 0x5aa5b9d199f63ebcb0a81969bddfcc1f1d736706d8b97e5598df464c87b44044
00000791: SWAP3
00000792: DUP3
00000793: SWAP1
00000794: SUB
00000795: ADD
00000796: SWAP1
00000797: LOG2
00000798: PUSH1 0x03
0000079a: PUSH1 0x00
0000079c: POP
0000079d: DUP1
0000079e: SLOAD
0000079f: DUP1
000007a0: PUSH1 0x01
000007a2: ADD
000007a3: DUP3
000007a4: DUP2
000007a5: DUP2
000007a6: SLOAD
000007a7: DUP2
000007a8: DUP4
000007a9: SSTORE
000007aa: DUP2
000007ab: DUP2
000007ac: ISZERO
000007ad: GT
000007ae: PUSH2 0x07d0
000007b1: JUMPI
000007b2: PUSH1 0x07
000007b4: MUL
000007b5: DUP2
000007b6: PUSH1 0x07
000007b8: MUL
000007b9: DUP4
000007ba: PUSH1 0x00
000007bc: MSTORE
000007bd: PUSH1 0x20
000007bf: PUSH1 0x00
000007c1: KECCAK256
000007c2: SWAP2
000007c3: DUP3
000007c4: ADD
000007c5: SWAP2
000007c6: ADD
000007c7: PUSH2 0x07d0
000007ca: SWAP2
000007cb: SWAP1
000007cc: PUSH2 0x08a4
000007cf: JUMP
000007d0: JUMPDEST
000007d1: POP
000007d2: POP
000007d3: POP
000007d4: SWAP2
000007d5: SWAP1
000007d6: SWAP1
000007d7: PUSH1 0x00
000007d9: MSTORE
000007da: PUSH1 0x20
000007dc: PUSH1 0x00
000007de: KECCAK256
000007df: SWAP1
000007e0: PUSH1 0x07
000007e2: MUL
000007e3: ADD
000007e4: PUSH1 0x00
000007e6: POP
000007e7: PUSH1 0x40
000007e9: DUP1
000007ea: MLOAD
000007eb: PUSH1 0xe0
000007ed: DUP2
000007ee: ADD
000007ef: DUP3
000007f0: MSTORE
000007f1: PUSH1 0x01
000007f3: DUP1
000007f4: DUP3
000007f5: MSTORE
000007f6: TIMESTAMP
000007f7: PUSH1 0x20
000007f9: DUP4
000007fa: DUP2
000007fb: ADD
000007fc: DUP3
000007fd: SWAP1
000007fe: MSTORE
000007ff: PUSH1 0x00
00000801: SWAP5
00000802: DUP5
00000803: ADD
00000804: DUP6
00000805: SWAP1
00000806: MSTORE
00000807: PUSH1 0x60
00000809: DUP5
0000080a: ADD
0000080b: DUP11
0000080c: SWAP1
0000080d: MSTORE
0000080e: PUSH1 0x80
00000810: DUP5
00000811: ADD
00000812: DUP10
00000813: SWAP1
00000814: MSTORE
00000815: PUSH1 0xa0
00000817: DUP5
00000818: ADD
00000819: DUP12
0000081a: SWAP1
0000081b: MSTORE
0000081c: PUSH1 0xc0
0000081e: DUP5
0000081f: ADD
00000820: DUP9
00000821: SWAP1
00000822: MSTORE
00000823: DUP6
00000824: SLOAD
00000825: PUSH1 0xff
00000827: NOT
00000828: AND
00000829: DUP4
0000082a: OR
0000082b: DUP7
0000082c: SSTORE
0000082d: DUP6
0000082e: DUP4
0000082f: ADD
00000830: SWAP2
00000831: SWAP1
00000832: SWAP2
00000833: SSTORE
00000834: PUSH1 0x02
00000836: DUP1
00000837: DUP7
00000838: ADD
00000839: DUP6
0000083a: SWAP1
0000083b: SSTORE
0000083c: PUSH1 0x03
0000083e: DUP7
0000083f: ADD
00000840: DUP11
00000841: SWAP1
00000842: SSTORE
00000843: PUSH1 0x04
00000845: DUP7
00000846: ADD
00000847: DUP10
00000848: SWAP1
00000849: SSTORE
0000084a: DUP11
0000084b: MLOAD
0000084c: PUSH1 0x05
0000084e: DUP8
0000084f: ADD
00000850: DUP1
00000851: SLOAD
00000852: DUP2
00000853: DUP9
00000854: MSTORE
00000855: SWAP7
00000856: DUP5
00000857: SWAP1
00000858: KECCAK256
00000859: SWAP6
0000085a: SWAP8
0000085b: SWAP7
0000085c: SWAP1
0000085d: SWAP6
0000085e: SWAP5
0000085f: DUP2
00000860: AND
00000861: ISZERO
00000862: PUSH2 0x0100
00000865: MUL
00000866: PUSH1 0x00
00000868: NOT
00000869: ADD
0000086a: AND
0000086b: SWAP2
0000086c: SWAP1
0000086d: SWAP2
0000086e: DIV
0000086f: PUSH1 0x1f
00000871: SWAP1
00000872: DUP2
00000873: ADD
00000874: DUP4
00000875: SWAP1
00000876: DIV
00000877: DUP5
00000878: ADD
00000879: SWAP4
0000087a: SWAP2
0000087b: SWAP3
0000087c: DUP13
0000087d: ADD
0000087e: SWAP1
0000087f: DUP4
00000880: SWAP1
00000881: LT
00000882: PUSH2 0x0974
00000885: JUMPI
00000886: DUP1
00000887: MLOAD
00000888: PUSH1 0xff
0000088a: NOT
0000088b: AND
0000088c: DUP4
0000088d: DUP1
0000088e: ADD
0000088f: OR
00000890: DUP6
00000891: SSTORE
00000892: JUMPDEST
00000893: POP
00000894: PUSH2 0x09a4
00000897: SWAP3
00000898: SWAP2
00000899: POP
0000089a: PUSH2 0x093e
0000089d: JUMP
0000089e: JUMPDEST
0000089f: POP
000008a0: POP
000008a1: PUSH1 0x07
000008a3: ADD
000008a4: JUMPDEST
000008a5: DUP1
000008a6: DUP3
000008a7: GT
000008a8: ISZERO
000008a9: PUSH2 0x0952
000008ac: JUMPI
000008ad: DUP1
000008ae: SLOAD
000008af: PUSH1 0xff
000008b1: NOT
000008b2: AND
000008b3: DUP2
000008b4: SSTORE
000008b5: PUSH1 0x00
000008b7: PUSH1 0x01
000008b9: DUP3
000008ba: DUP2
000008bb: ADD
000008bc: DUP3
000008bd: SWAP1
000008be: SSTORE
000008bf: PUSH1 0x02
000008c1: DUP1
000008c2: DUP5
000008c3: ADD
000008c4: DUP4
000008c5: SWAP1
000008c6: SSTORE
000008c7: PUSH1 0x03
000008c9: DUP5
000008ca: ADD
000008cb: DUP4
000008cc: SWAP1
000008cd: SSTORE
000008ce: PUSH1 0x04
000008d0: DUP5
000008d1: ADD
000008d2: DUP4
000008d3: SWAP1
000008d4: SSTORE
000008d5: PUSH1 0x05
000008d7: DUP5
000008d8: ADD
000008d9: DUP1
000008da: SLOAD
000008db: DUP5
000008dc: DUP3
000008dd: SSTORE
000008de: SWAP1
000008df: SWAP3
000008e0: DUP2
000008e1: AND
000008e2: ISZERO
000008e3: PUSH2 0x0100
000008e6: MUL
000008e7: PUSH1 0x00
000008e9: NOT
000008ea: ADD
000008eb: AND
000008ec: DIV
000008ed: PUSH1 0x1f
000008ef: DUP2
000008f0: SWAP1
000008f1: LT
000008f2: PUSH2 0x0924
000008f5: JUMPI
000008f6: POP
000008f7: JUMPDEST
000008f8: POP
000008f9: PUSH1 0x06
000008fb: DUP3
000008fc: ADD
000008fd: PUSH1 0x00
000008ff: POP
00000900: DUP1
00000901: SLOAD
00000902: PUSH1 0x01
00000904: DUP2
00000905: PUSH1 0x01
00000907: AND
00000908: ISZERO
00000909: PUSH2 0x0100
0000090c: MUL
0000090d: SUB
0000090e: AND
0000090f: PUSH1 0x02
00000911: SWAP1
00000912: DIV
00000913: PUSH1 0x00
00000915: DUP3
00000916: SSTORE
00000917: DUP1
00000918: PUSH1 0x1f
0000091a: LT
0000091b: PUSH2 0x0956
0000091e: JUMPI
0000091f: POP
00000920: PUSH2 0x089e
00000923: JUMP
00000924: JUMPDEST
00000925: PUSH1 0x1f
00000927: ADD
00000928: PUSH1 0x20
0000092a: SWAP1
0000092b: DIV
0000092c: SWAP1
0000092d: PUSH1 0x00
0000092f: MSTORE
00000930: PUSH1 0x20
00000932: PUSH1 0x00
00000934: KECCAK256
00000935: SWAP1
00000936: DUP2
00000937: ADD
00000938: SWAP1
00000939: PUSH2 0x08f7
0000093c: SWAP2
0000093d: SWAP1
0000093e: JUMPDEST
0000093f: DUP1
00000940: DUP3
00000941: GT
00000942: ISZERO
00000943: PUSH2 0x0952
00000946: JUMPI
00000947: PUSH1 0x00
00000949: DUP2
0000094a: SSTORE
0000094b: PUSH1 0x01
0000094d: ADD
0000094e: PUSH2 0x093e
00000951: JUMP
00000952: JUMPDEST
00000953: POP
00000954: SWAP1
00000955: JUMP
00000956: JUMPDEST
00000957: PUSH1 0x1f
00000959: ADD
0000095a: PUSH1 0x20
0000095c: SWAP1
0000095d: DIV
0000095e: SWAP1
0000095f: PUSH1 0x00
00000961: MSTORE
00000962: PUSH1 0x20
00000964: PUSH1 0x00
00000966: KECCAK256
00000967: SWAP1
00000968: DUP2
00000969: ADD
0000096a: SWAP1
0000096b: PUSH2 0x089e
0000096e: SWAP2
0000096f: SWAP1
00000970: PUSH2 0x093e
00000973: JUMP
00000974: JUMPDEST
00000975: DUP3
00000976: DUP1
00000977: ADD
00000978: PUSH1 0x01
0000097a: ADD
0000097b: DUP6
0000097c: SSTORE
0000097d: DUP3
0000097e: ISZERO
0000097f: PUSH2 0x0892
00000982: JUMPI
00000983: SWAP2
00000984: DUP3
00000985: ADD
00000986: JUMPDEST
00000987: DUP3
00000988: DUP2
00000989: GT
0000098a: ISZERO
0000098b: PUSH2 0x0892
0000098e: JUMPI
0000098f: DUP3
00000990: MLOAD
00000991: DUP3
00000992: PUSH1 0x00
00000994: POP
00000995: SSTORE
00000996: SWAP2
00000997: PUSH1 0x20
00000999: ADD
0000099a: SWAP2
0000099b: SWAP1
0000099c: PUSH1 0x01
0000099e: ADD
0000099f: SWAP1
000009a0: PUSH2 0x0986
000009a3: JUMP
000009a4: JUMPDEST
000009a5: POP
000009a6: POP
000009a7: PUSH1 0xc0
000009a9: DUP3
000009aa: ADD
000009ab: MLOAD
000009ac: DUP2
000009ad: PUSH1 0x06
000009af: ADD
000009b0: PUSH1 0x00
000009b2: POP
000009b3: SWAP1
000009b4: DUP1
000009b5: MLOAD
000009b6: SWAP1
000009b7: PUSH1 0x20
000009b9: ADD
000009ba: SWAP1
000009bb: DUP3
000009bc: DUP1
000009bd: SLOAD
000009be: PUSH1 0x01
000009c0: DUP2
000009c1: PUSH1 0x01
000009c3: AND
000009c4: ISZERO
000009c5: PUSH2 0x0100
000009c8: MUL
000009c9: SUB
000009ca: AND
000009cb: PUSH1 0x02
000009cd: SWAP1
000009ce: DIV
000009cf: SWAP1
000009d0: PUSH1 0x00
000009d2: MSTORE
000009d3: PUSH1 0x20
000009d5: PUSH1 0x00
000009d7: KECCAK256
000009d8: SWAP1
000009d9: PUSH1 0x1f
000009db: ADD
000009dc: PUSH1 0x20
000009de: SWAP1
000009df: DIV
000009e0: DUP2
000009e1: ADD
000009e2: SWAP3
000009e3: DUP3
000009e4: PUSH1 0x1f
000009e6: LT
000009e7: PUSH2 0x0a03
000009ea: JUMPI
000009eb: DUP1
000009ec: MLOAD
000009ed: PUSH1 0xff
000009ef: NOT
000009f0: AND
000009f1: DUP4
000009f2: DUP1
000009f3: ADD
000009f4: OR
000009f5: DUP6
000009f6: SSTORE
000009f7: JUMPDEST
000009f8: POP
000009f9: PUSH2 0x0739
000009fc: SWAP3
000009fd: SWAP2
000009fe: POP
000009ff: PUSH2 0x093e
00000a02: JUMP
00000a03: JUMPDEST
00000a04: DUP3
00000a05: DUP1
00000a06: ADD
00000a07: PUSH1 0x01
00000a09: ADD
00000a0a: DUP6
00000a0b: SSTORE
00000a0c: DUP3
00000a0d: ISZERO
00000a0e: PUSH2 0x09f7
00000a11: JUMPI
00000a12: SWAP2
00000a13: DUP3
00000a14: ADD
00000a15: JUMPDEST
00000a16: DUP3
00000a17: DUP2
00000a18: GT
00000a19: ISZERO
00000a1a: PUSH2 0x09f7
00000a1d: JUMPI
00000a1e: DUP3
00000a1f: MLOAD
00000a20: DUP3
00000a21: PUSH1 0x00
00000a23: POP
00000a24: SSTORE
00000a25: SWAP2
00000a26: PUSH1 0x20
00000a28: ADD
00000a29: SWAP2
00000a2a: SWAP1
00000a2b: PUSH1 0x01
00000a2d: ADD
00000a2e: SWAP1
00000a2f: PUSH2 0x0a15
00000a32: JUMP
00000a33: JUMPDEST
00000a34: PUSH1 0x00
00000a36: CALLVALUE
00000a37: GT
00000a38: ISZERO
00000a39: PUSH2 0x0a41
00000a3c: JUMPI
00000a3d: PUSH2 0x0002
00000a40: JUMP
00000a41: JUMPDEST
00000a42: DUP1
00000a43: PUSH1 0x03
00000a45: PUSH1 0x00
00000a47: POP
00000a48: DUP4
00000a49: DUP2
00000a4a: SLOAD
00000a4b: DUP2
00000a4c: LT
00000a4d: ISZERO
00000a4e: PUSH2 0x0002
00000a51: JUMPI
00000a52: POP
00000a53: PUSH1 0x00
00000a55: MSTORE
00000a56: POP
00000a57: PUSH1 0x07
00000a59: DUP3
00000a5a: MUL
00000a5b: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b
00000a7c: ADD
00000a7d: DUP1
00000a7e: SLOAD
00000a7f: PUSH1 0xff
00000a81: NOT
00000a82: AND
00000a83: DUP3
00000a84: OR
00000a85: SWAP1
00000a86: SSTORE
00000a87: DUP1
00000a88: ISZERO
00000a89: PUSH2 0x0b6a
00000a8c: JUMPI
00000a8d: PUSH1 0x40
00000a8f: DUP1
00000a90: MLOAD
00000a91: TIMESTAMP
00000a92: DUP2
00000a93: MSTORE
00000a94: PUSH1 0x20
00000a96: DUP2
00000a97: ADD
00000a98: DUP5
00000a99: SWAP1
00000a9a: MSTORE
00000a9b: PUSH1 0x60
00000a9d: DUP2
00000a9e: DUP4
00000a9f: ADD
00000aa0: DUP2
00000aa1: SWAP1
00000aa2: MSTORE
00000aa3: PUSH1 0x06
00000aa5: SWAP1
00000aa6: DUP3
00000aa7: ADD
00000aa8: MSTORE
00000aa9: PUSH32 0x6163746976650000000000000000000000000000000000000000000000000000
00000aca: PUSH1 0x80
00000acc: DUP3
00000acd: ADD
00000ace: MSTORE
00000acf: SWAP1
00000ad0: MLOAD
00000ad1: PUSH1 0x01
00000ad3: PUSH1 0xa0
00000ad5: PUSH1 0x02
00000ad7: EXP
00000ad8: SUB
00000ad9: CALLER
00000ada: AND
00000adb: SWAP2
00000adc: PUSH1 0x00
00000ade: DUP1
00000adf: MLOAD
00000ae0: PUSH1 0x20
00000ae2: PUSH2 0x1209
00000ae5: DUP4
00000ae6: CODECOPY
00000ae7: DUP2
00000ae8: MLOAD
00000ae9: SWAP2
00000aea: MSTORE
00000aeb: SWAP2
00000aec: SWAP1
00000aed: DUP2
00000aee: SWAP1
00000aef: SUB
00000af0: PUSH1 0xa0
00000af2: ADD
00000af3: SWAP1
00000af4: LOG2
00000af5: TIMESTAMP
00000af6: PUSH1 0x03
00000af8: PUSH1 0x00
00000afa: POP
00000afb: DUP4
00000afc: DUP2
00000afd: SLOAD
00000afe: DUP2
00000aff: LT
00000b00: ISZERO
00000b01: PUSH2 0x0002
00000b04: JUMPI
00000b05: PUSH1 0x00
00000b07: DUP3
00000b08: DUP2
00000b09: MSTORE
00000b0a: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c
00000b2b: PUSH1 0x07
00000b2d: DUP4
00000b2e: MUL
00000b2f: ADD
00000b30: SWAP4
00000b31: SWAP1
00000b32: SWAP4
00000b33: SSTORE
00000b34: DUP2
00000b35: SLOAD
00000b36: DUP2
00000b37: LT
00000b38: ISZERO
00000b39: PUSH2 0x0002
00000b3c: JUMPI
00000b3d: POP
00000b3e: POP
00000b3f: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d
00000b60: PUSH1 0x07
00000b62: DUP5
00000b63: MUL
00000b64: ADD
00000b65: SSTORE
00000b66: PUSH2 0x0c0e
00000b69: JUMP
00000b6a: JUMPDEST
00000b6b: PUSH1 0x40
00000b6d: DUP1
00000b6e: MLOAD
00000b6f: TIMESTAMP
00000b70: DUP2
00000b71: MSTORE
00000b72: PUSH1 0x20
00000b74: DUP2
00000b75: ADD
00000b76: DUP5
00000b77: SWAP1
00000b78: MSTORE
00000b79: PUSH1 0x60
00000b7b: DUP2
00000b7c: DUP4
00000b7d: ADD
00000b7e: DUP2
00000b7f: SWAP1
00000b80: MSTORE
00000b81: PUSH1 0x08
00000b83: SWAP1
00000b84: DUP3
00000b85: ADD
00000b86: MSTORE
00000b87: PUSH32 0x696e616374697665000000000000000000000000000000000000000000000000
00000ba8: PUSH1 0x80
00000baa: DUP3
00000bab: ADD
00000bac: MSTORE
00000bad: SWAP1
00000bae: MLOAD
00000baf: PUSH1 0x01
00000bb1: PUSH1 0xa0
00000bb3: PUSH1 0x02
00000bb5: EXP
00000bb6: SUB
00000bb7: CALLER
00000bb8: AND
00000bb9: SWAP2
00000bba: PUSH1 0x00
00000bbc: DUP1
00000bbd: MLOAD
00000bbe: PUSH1 0x20
00000bc0: PUSH2 0x1209
00000bc3: DUP4
00000bc4: CODECOPY
00000bc5: DUP2
00000bc6: MLOAD
00000bc7: SWAP2
00000bc8: MSTORE
00000bc9: SWAP2
00000bca: SWAP1
00000bcb: DUP2
00000bcc: SWAP1
00000bcd: SUB
00000bce: PUSH1 0xa0
00000bd0: ADD
00000bd1: SWAP1
00000bd2: LOG2
00000bd3: TIMESTAMP
00000bd4: PUSH1 0x03
00000bd6: PUSH1 0x00
00000bd8: POP
00000bd9: DUP4
00000bda: DUP2
00000bdb: SLOAD
00000bdc: DUP2
00000bdd: LT
00000bde: ISZERO
00000bdf: PUSH2 0x0002
00000be2: JUMPI
00000be3: POP
00000be4: PUSH1 0x00
00000be6: MSTORE
00000be7: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d
00000c08: PUSH1 0x07
00000c0a: DUP5
00000c0b: MUL
00000c0c: ADD
00000c0d: SSTORE
00000c0e: JUMPDEST
00000c0f: POP
00000c10: POP
00000c11: JUMP
00000c12: JUMPDEST
00000c13: PUSH1 0x00
00000c15: CALLVALUE
00000c16: GT
00000c17: ISZERO
00000c18: PUSH2 0x0c20
00000c1b: JUMPI
00000c1c: PUSH2 0x0002
00000c1f: JUMP
00000c20: JUMPDEST
00000c21: PUSH1 0x40
00000c23: DUP1
00000c24: MLOAD
00000c25: TIMESTAMP
00000c26: DUP2
00000c27: MSTORE
00000c28: PUSH1 0x20
00000c2a: DUP2
00000c2b: ADD
00000c2c: DUP5
00000c2d: SWAP1
00000c2e: MSTORE
00000c2f: PUSH1 0x60
00000c31: DUP2
00000c32: DUP4
00000c33: ADD
00000c34: DUP2
00000c35: SWAP1
00000c36: MSTORE
00000c37: PUSH1 0x08
00000c39: SWAP1
00000c3a: DUP3
00000c3b: ADD
00000c3c: MSTORE
00000c3d: PUSH32 0x72656c6174696f6e000000000000000000000000000000000000000000000000
00000c5e: PUSH1 0x80
00000c60: DUP3
00000c61: ADD
00000c62: MSTORE
00000c63: SWAP1
00000c64: MLOAD
00000c65: PUSH1 0x01
00000c67: PUSH1 0xa0
00000c69: PUSH1 0x02
00000c6b: EXP
00000c6c: SUB
00000c6d: CALLER
00000c6e: AND
00000c6f: SWAP2
00000c70: PUSH1 0x00
00000c72: DUP1
00000c73: MLOAD
00000c74: PUSH1 0x20
00000c76: PUSH2 0x1209
00000c79: DUP4
00000c7a: CODECOPY
00000c7b: DUP2
00000c7c: MLOAD
00000c7d: SWAP2
00000c7e: MSTORE
00000c7f: SWAP2
00000c80: SWAP1
00000c81: DUP2
00000c82: SWAP1
00000c83: SUB
00000c84: PUSH1 0xa0
00000c86: ADD
00000c87: SWAP1
00000c88: LOG2
00000c89: DUP1
00000c8a: PUSH1 0x03
00000c8c: PUSH1 0x00
00000c8e: POP
00000c8f: DUP4
00000c90: DUP2
00000c91: SLOAD
00000c92: DUP2
00000c93: LT
00000c94: ISZERO
00000c95: PUSH2 0x0002
00000c98: JUMPI
00000c99: SWAP1
00000c9a: PUSH1 0x00
00000c9c: MSTORE
00000c9d: PUSH1 0x20
00000c9f: PUSH1 0x00
00000ca1: KECCAK256
00000ca2: SWAP1
00000ca3: PUSH1 0x07
00000ca5: MUL
00000ca6: ADD
00000ca7: PUSH1 0x00
00000ca9: POP
00000caa: PUSH1 0x06
00000cac: ADD
00000cad: PUSH1 0x00
00000caf: POP
00000cb0: SWAP1
00000cb1: DUP1
00000cb2: MLOAD
00000cb3: SWAP1
00000cb4: PUSH1 0x20
00000cb6: ADD
00000cb7: SWAP1
00000cb8: DUP3
00000cb9: DUP1
00000cba: SLOAD
00000cbb: PUSH1 0x01
00000cbd: DUP2
00000cbe: PUSH1 0x01
00000cc0: AND
00000cc1: ISZERO
00000cc2: PUSH2 0x0100
00000cc5: MUL
00000cc6: SUB
00000cc7: AND
00000cc8: PUSH1 0x02
00000cca: SWAP1
00000ccb: DIV
00000ccc: SWAP1
00000ccd: PUSH1 0x00
00000ccf: MSTORE
00000cd0: PUSH1 0x20
00000cd2: PUSH1 0x00
00000cd4: KECCAK256
00000cd5: SWAP1
00000cd6: PUSH1 0x1f
00000cd8: ADD
00000cd9: PUSH1 0x20
00000cdb: SWAP1
00000cdc: DIV
00000cdd: DUP2
00000cde: ADD
00000cdf: SWAP3
00000ce0: DUP3
00000ce1: PUSH1 0x1f
00000ce3: LT
00000ce4: PUSH2 0x0d00
00000ce7: JUMPI
00000ce8: DUP1
00000ce9: MLOAD
00000cea: PUSH1 0xff
00000cec: NOT
00000ced: AND
00000cee: DUP4
00000cef: DUP1
00000cf0: ADD
00000cf1: OR
00000cf2: DUP6
00000cf3: SSTORE
00000cf4: JUMPDEST
00000cf5: POP
00000cf6: PUSH2 0x073f
00000cf9: SWAP3
00000cfa: SWAP2
00000cfb: POP
00000cfc: PUSH2 0x093e
00000cff: JUMP
00000d00: JUMPDEST
00000d01: DUP3
00000d02: DUP1
00000d03: ADD
00000d04: PUSH1 0x01
00000d06: ADD
00000d07: DUP6
00000d08: SSTORE
00000d09: DUP3
00000d0a: ISZERO
00000d0b: PUSH2 0x0cf4
00000d0e: JUMPI
00000d0f: SWAP2
00000d10: DUP3
00000d11: ADD
00000d12: JUMPDEST
00000d13: DUP3
00000d14: DUP2
00000d15: GT
00000d16: ISZERO
00000d17: PUSH2 0x0cf4
00000d1a: JUMPI
00000d1b: DUP3
00000d1c: MLOAD
00000d1d: DUP3
00000d1e: PUSH1 0x00
00000d20: POP
00000d21: SSTORE
00000d22: SWAP2
00000d23: PUSH1 0x20
00000d25: ADD
00000d26: SWAP2
00000d27: SWAP1
00000d28: PUSH1 0x01
00000d2a: ADD
00000d2b: SWAP1
00000d2c: PUSH2 0x0d12
00000d2f: JUMP
00000d30: JUMPDEST
00000d31: PUSH1 0x00
00000d33: CALLVALUE
00000d34: GT
00000d35: ISZERO
00000d36: PUSH2 0x0d3e
00000d39: JUMPI
00000d3a: PUSH2 0x0002
00000d3d: JUMP
00000d3e: JUMPDEST
00000d3f: POP
00000d40: PUSH1 0x05
00000d42: ADDRESS
00000d43: PUSH1 0x01
00000d45: PUSH1 0xa0
00000d47: PUSH1 0x02
00000d49: EXP
00000d4a: SUB
00000d4b: AND
00000d4c: BALANCE
00000d4d: DIV
00000d4e: DUP1
00000d4f: DUP3
00000d50: GT
00000d51: DUP1
00000d52: PUSH2 0x0d5c
00000d55: JUMPI
00000d56: POP
00000d57: PUSH1 0x00
00000d59: SLOAD
00000d5a: TIMESTAMP
00000d5b: LT
00000d5c: JUMPDEST
00000d5d: ISZERO
00000d5e: PUSH2 0x0d66
00000d61: JUMPI
00000d62: PUSH2 0x0002
00000d65: JUMP
00000d66: JUMPDEST
00000d67: PUSH1 0x40
00000d69: DUP1
00000d6a: MLOAD
00000d6b: TIMESTAMP
00000d6c: DUP2
00000d6d: MSTORE
00000d6e: PUSH1 0x20
00000d70: DUP2
00000d71: ADD
00000d72: DUP5
00000d73: SWAP1
00000d74: MSTORE
00000d75: DUP2
00000d76: MLOAD
00000d77: PUSH1 0x01
00000d79: PUSH1 0xa0
00000d7b: PUSH1 0x02
00000d7d: EXP
00000d7e: SUB
00000d7f: CALLER
00000d80: AND
00000d81: SWAP3
00000d82: PUSH32 0xf9226daf630542048a23086c6af599511aac100ec8f532793cc9697d061bed7e
00000da3: SWAP3
00000da4: DUP3
00000da5: SWAP1
00000da6: SUB
00000da7: ADD
00000da8: SWAP1
00000da9: LOG2
00000daa: PUSH1 0x40
00000dac: MLOAD
00000dad: PUSH3 0xed4e00
00000db1: TIMESTAMP
00000db2: ADD
00000db3: PUSH1 0x00
00000db5: SWAP1
00000db6: DUP2
00000db7: SSTORE
00000db8: PUSH1 0x02
00000dba: DUP1
00000dbb: SLOAD
00000dbc: DUP6
00000dbd: ADD
00000dbe: SWAP1
00000dbf: SSTORE
00000dc0: PUSH1 0x01
00000dc2: PUSH1 0xa0
00000dc4: PUSH1 0x02
00000dc6: EXP
00000dc7: SUB
00000dc8: CALLER
00000dc9: AND
00000dca: SWAP2
00000dcb: DUP5
00000dcc: SWAP1
00000dcd: DUP3
00000dce: DUP2
00000dcf: DUP2
00000dd0: DUP2
00000dd1: DUP6
00000dd2: DUP9
00000dd3: DUP4
00000dd4: CALL
00000dd5: SWAP4
00000dd6: POP
00000dd7: POP
00000dd8: POP
00000dd9: POP
00000dda: ISZERO
00000ddb: ISZERO
00000ddc: PUSH2 0x0c0e
00000ddf: JUMPI
00000de0: PUSH2 0x0002
00000de3: JUMP
00000de4: JUMPDEST
00000de5: PUSH1 0x00
00000de7: CALLVALUE
00000de8: GT
00000de9: ISZERO
00000dea: PUSH2 0x0df2
00000ded: JUMPI
00000dee: PUSH2 0x0002
00000df1: JUMP
00000df2: JUMPDEST
00000df3: PUSH1 0x40
00000df5: DUP1
00000df6: MLOAD
00000df7: TIMESTAMP
00000df8: DUP2
00000df9: MSTORE
00000dfa: PUSH1 0x20
00000dfc: DUP2
00000dfd: ADD
00000dfe: DUP5
00000dff: SWAP1
00000e00: MSTORE
00000e01: PUSH1 0x60
00000e03: DUP2
00000e04: DUP4
00000e05: ADD
00000e06: DUP2
00000e07: SWAP1
00000e08: MSTORE
00000e09: PUSH1 0x04
00000e0b: SWAP1
00000e0c: DUP3
00000e0d: ADD
00000e0e: MSTORE
00000e0f: PUSH32 0x6e616d6500000000000000000000000000000000000000000000000000000000
00000e30: PUSH1 0x80
00000e32: DUP3
00000e33: ADD
00000e34: MSTORE
00000e35: SWAP1
00000e36: MLOAD
00000e37: PUSH1 0x01
00000e39: PUSH1 0xa0
00000e3b: PUSH1 0x02
00000e3d: EXP
00000e3e: SUB
00000e3f: CALLER
00000e40: AND
00000e41: SWAP2
00000e42: PUSH1 0x00
00000e44: DUP1
00000e45: MLOAD
00000e46: PUSH1 0x20
00000e48: PUSH2 0x1209
00000e4b: DUP4
00000e4c: CODECOPY
00000e4d: DUP2
00000e4e: MLOAD
00000e4f: SWAP2
00000e50: MSTORE
00000e51: SWAP2
00000e52: SWAP1
00000e53: DUP2
00000e54: SWAP1
00000e55: SUB
00000e56: PUSH1 0xa0
00000e58: ADD
00000e59: SWAP1
00000e5a: LOG2
00000e5b: DUP1
00000e5c: PUSH1 0x03
00000e5e: PUSH1 0x00
00000e60: POP
00000e61: DUP4
00000e62: DUP2
00000e63: SLOAD
00000e64: DUP2
00000e65: LT
00000e66: ISZERO
00000e67: PUSH2 0x0002
00000e6a: JUMPI
00000e6b: SWAP1
00000e6c: PUSH1 0x00
00000e6e: MSTORE
00000e6f: PUSH1 0x20
00000e71: PUSH1 0x00
00000e73: KECCAK256
00000e74: SWAP1
00000e75: PUSH1 0x07
00000e77: MUL
00000e78: ADD
00000e79: PUSH1 0x00
00000e7b: POP
00000e7c: PUSH1 0x05
00000e7e: ADD
00000e7f: PUSH1 0x00
00000e81: POP
00000e82: SWAP1
00000e83: DUP1
00000e84: MLOAD
00000e85: SWAP1
00000e86: PUSH1 0x20
00000e88: ADD
00000e89: SWAP1
00000e8a: DUP3
00000e8b: DUP1
00000e8c: SLOAD
00000e8d: PUSH1 0x01
00000e8f: DUP2
00000e90: PUSH1 0x01
00000e92: AND
00000e93: ISZERO
00000e94: PUSH2 0x0100
00000e97: MUL
00000e98: SUB
00000e99: AND
00000e9a: PUSH1 0x02
00000e9c: SWAP1
00000e9d: DIV
00000e9e: SWAP1
00000e9f: PUSH1 0x00
00000ea1: MSTORE
00000ea2: PUSH1 0x20
00000ea4: PUSH1 0x00
00000ea6: KECCAK256
00000ea7: SWAP1
00000ea8: PUSH1 0x1f
00000eaa: ADD
00000eab: PUSH1 0x20
00000ead: SWAP1
00000eae: DIV
00000eaf: DUP2
00000eb0: ADD
00000eb1: SWAP3
00000eb2: DUP3
00000eb3: PUSH1 0x1f
00000eb5: LT
00000eb6: PUSH2 0x0d00
00000eb9: JUMPI
00000eba: DUP1
00000ebb: MLOAD
00000ebc: PUSH1 0xff
00000ebe: NOT
00000ebf: AND
00000ec0: DUP4
00000ec1: DUP1
00000ec2: ADD
00000ec3: OR
00000ec4: DUP6
00000ec5: SSTORE
00000ec6: PUSH2 0x0cf4
00000ec9: JUMP
00000eca: JUMPDEST
00000ecb: PUSH1 0x00
00000ecd: CALLVALUE
00000ece: GT
00000ecf: ISZERO
00000ed0: PUSH2 0x0ed8
00000ed3: JUMPI
00000ed4: PUSH2 0x0002
00000ed7: JUMP
00000ed8: JUMPDEST
00000ed9: PUSH1 0x40
00000edb: DUP1
00000edc: MLOAD
00000edd: TIMESTAMP
00000ede: DUP2
00000edf: MSTORE
00000ee0: PUSH1 0x01
00000ee2: PUSH1 0xa0
00000ee4: PUSH1 0x02
00000ee6: EXP
00000ee7: SUB
00000ee8: DUP4
00000ee9: DUP2
00000eea: AND
00000eeb: PUSH1 0x20
00000eed: DUP4
00000eee: ADD
00000eef: MSTORE
00000ef0: DUP3
00000ef1: MLOAD
00000ef2: CALLER
00000ef3: SWAP1
00000ef4: SWAP2
00000ef5: AND
00000ef6: SWAP3
00000ef7: PUSH32 0xf322770c728e27409a4149dc5c836b593d091f33a1ca6752108e6a8f2494430b
00000f18: SWAP3
00000f19: DUP3
00000f1a: SWAP1
00000f1b: SUB
00000f1c: ADD
00000f1d: SWAP1
00000f1e: LOG2
00000f1f: PUSH1 0x01
00000f21: PUSH1 0xa0
00000f23: PUSH1 0x02
00000f25: EXP
00000f26: SUB
00000f27: AND
00000f28: PUSH1 0x00
00000f2a: SWAP1
00000f2b: DUP2
00000f2c: MSTORE
00000f2d: PUSH1 0x05
00000f2f: PUSH1 0x20
00000f31: MSTORE
00000f32: PUSH1 0x40
00000f34: SWAP1
00000f35: KECCAK256
00000f36: DUP1
00000f37: SLOAD
00000f38: PUSH1 0xff
00000f3a: NOT
00000f3b: AND
00000f3c: PUSH1 0x01
00000f3e: OR
00000f3f: SWAP1
00000f40: SSTORE
00000f41: JUMP
00000f42: JUMPDEST
00000f43: PUSH1 0x00
00000f45: CALLVALUE
00000f46: GT
00000f47: ISZERO
00000f48: PUSH2 0x0f50
00000f4b: JUMPI
00000f4c: PUSH2 0x0002
00000f4f: JUMP
00000f50: JUMPDEST
00000f51: PUSH1 0x40
00000f53: DUP1
00000f54: MLOAD
00000f55: TIMESTAMP
00000f56: DUP2
00000f57: MSTORE
00000f58: PUSH1 0x20
00000f5a: DUP2
00000f5b: ADD
00000f5c: DUP5
00000f5d: SWAP1
00000f5e: MSTORE
00000f5f: PUSH1 0x60
00000f61: DUP2
00000f62: DUP4
00000f63: ADD
00000f64: DUP2
00000f65: SWAP1
00000f66: MSTORE
00000f67: PUSH1 0x0b
00000f69: SWAP1
00000f6a: DUP3
00000f6b: ADD
00000f6c: MSTORE
00000f6d: PUSH32 0x646174654f664269727468000000000000000000000000000000000000000000
00000f8e: PUSH1 0x80
00000f90: DUP3
00000f91: ADD
00000f92: MSTORE
00000f93: SWAP1
00000f94: MLOAD
00000f95: PUSH1 0x01
00000f97: PUSH1 0xa0
00000f99: PUSH1 0x02
00000f9b: EXP
00000f9c: SUB
00000f9d: CALLER
00000f9e: AND
00000f9f: SWAP2
00000fa0: PUSH1 0x00
00000fa2: DUP1
00000fa3: MLOAD
00000fa4: PUSH1 0x20
00000fa6: PUSH2 0x1209
00000fa9: DUP4
00000faa: CODECOPY
00000fab: DUP2
00000fac: MLOAD
00000fad: SWAP2
00000fae: MSTORE
00000faf: SWAP2
00000fb0: SWAP1
00000fb1: DUP2
00000fb2: SWAP1
00000fb3: SUB
00000fb4: PUSH1 0xa0
00000fb6: ADD
00000fb7: SWAP1
00000fb8: LOG2
00000fb9: DUP1
00000fba: PUSH1 0x03
00000fbc: PUSH1 0x00
00000fbe: POP
00000fbf: DUP4
00000fc0: DUP2
00000fc1: SLOAD
00000fc2: DUP2
00000fc3: LT
00000fc4: ISZERO
00000fc5: PUSH2 0x0002
00000fc8: JUMPI
00000fc9: POP
00000fca: PUSH1 0x00
00000fcc: MSTORE
00000fcd: POP
00000fce: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85e
00000fef: PUSH1 0x07
00000ff1: SWAP1
00000ff2: SWAP3
00000ff3: MUL
00000ff4: SWAP2
00000ff5: SWAP1
00000ff6: SWAP2
00000ff7: ADD
00000ff8: SSTORE
00000ff9: JUMP
00000ffa: JUMPDEST
00000ffb: PUSH1 0x00
00000ffd: CALLVALUE
00000ffe: GT
00000fff: ISZERO
00001000: PUSH2 0x1008
00001003: JUMPI
00001004: PUSH2 0x0002
00001007: JUMP
00001008: JUMPDEST
00001009: PUSH1 0x40
0000100b: DUP1
0000100c: MLOAD
0000100d: TIMESTAMP
0000100e: DUP2
0000100f: MSTORE
00001010: PUSH1 0x20
00001012: DUP2
00001013: ADD
00001014: DUP5
00001015: SWAP1
00001016: MSTORE
00001017: PUSH1 0x60
00001019: DUP2
0000101a: DUP4
0000101b: ADD
0000101c: DUP2
0000101d: SWAP1
0000101e: MSTORE
0000101f: PUSH1 0x0b
00001021: SWAP1
00001022: DUP3
00001023: ADD
00001024: MSTORE
00001025: PUSH32 0x646174654f664465617468000000000000000000000000000000000000000000
00001046: PUSH1 0x80
00001048: DUP3
00001049: ADD
0000104a: MSTORE
0000104b: SWAP1
0000104c: MLOAD
0000104d: PUSH1 0x01
0000104f: PUSH1 0xa0
00001051: PUSH1 0x02
00001053: EXP
00001054: SUB
00001055: CALLER
00001056: AND
00001057: SWAP2
00001058: PUSH1 0x00
0000105a: DUP1
0000105b: MLOAD
0000105c: PUSH1 0x20
0000105e: PUSH2 0x1209
00001061: DUP4
00001062: CODECOPY
00001063: DUP2
00001064: MLOAD
00001065: SWAP2
00001066: MSTORE
00001067: SWAP2
00001068: SWAP1
00001069: DUP2
0000106a: SWAP1
0000106b: SUB
0000106c: PUSH1 0xa0
0000106e: ADD
0000106f: SWAP1
00001070: LOG2
00001071: DUP1
00001072: PUSH1 0x03
00001074: PUSH1 0x00
00001076: POP
00001077: DUP4
00001078: DUP2
00001079: SLOAD
0000107a: DUP2
0000107b: LT
0000107c: ISZERO
0000107d: PUSH2 0x0002
00001080: JUMPI
00001081: POP
00001082: PUSH1 0x00
00001084: MSTORE
00001085: POP
00001086: PUSH1 0x07
00001088: SWAP1
00001089: SWAP2
0000108a: MUL
0000108b: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85f
000010ac: ADD
000010ad: SSTORE
000010ae: JUMP
000010af: JUMPDEST
000010b0: PUSH1 0x00
000010b2: CALLVALUE
000010b3: GT
000010b4: ISZERO
000010b5: PUSH2 0x10bd
000010b8: JUMPI
000010b9: PUSH2 0x0002
000010bc: JUMP
000010bd: JUMPDEST
000010be: DUP1
000010bf: PUSH1 0x01
000010c1: PUSH1 0xa0
000010c3: PUSH1 0x02
000010c5: EXP
000010c6: SUB
000010c7: AND
000010c8: CALLER
000010c9: PUSH1 0x01
000010cb: PUSH1 0xa0
000010cd: PUSH1 0x02
000010cf: EXP
000010d0: SUB
000010d1: AND
000010d2: EQ
000010d3: ISZERO
000010d4: ISZERO
000010d5: PUSH2 0x10dd
000010d8: JUMPI
000010d9: PUSH2 0x0002
000010dc: JUMP
000010dd: JUMPDEST
000010de: PUSH1 0x40
000010e0: DUP1
000010e1: MLOAD
000010e2: TIMESTAMP
000010e3: DUP2
000010e4: MSTORE
000010e5: SWAP1
000010e6: MLOAD
000010e7: PUSH1 0x01
000010e9: PUSH1 0xa0
000010eb: PUSH1 0x02
000010ed: EXP
000010ee: SUB
000010ef: CALLER
000010f0: AND
000010f1: SWAP2
000010f2: PUSH32 0xb1174177b1e536b4d6b97c975a189ab2ccd9037fa4c0b102f1a95ef7abcaa395
00001113: SWAP2
00001114: SWAP1
00001115: DUP2
00001116: SWAP1
00001117: SUB
00001118: PUSH1 0x20
0000111a: ADD
0000111b: SWAP1
0000111c: LOG2
0000111d: PUSH1 0x01
0000111f: PUSH1 0xa0
00001121: PUSH1 0x02
00001123: EXP
00001124: SUB
00001125: CALLER
00001126: AND
00001127: PUSH1 0x00
00001129: SWAP1
0000112a: DUP2
0000112b: MSTORE
0000112c: PUSH1 0x05
0000112e: PUSH1 0x20
00001130: MSTORE
00001131: PUSH1 0x40
00001133: SWAP1
00001134: KECCAK256
00001135: DUP1
00001136: SLOAD
00001137: PUSH1 0xff
00001139: NOT
0000113a: AND
0000113b: SWAP1
0000113c: SSTORE
0000113d: POP
0000113e: JUMP
0000113f: JUMPDEST
00001140: PUSH1 0x00
00001142: CALLVALUE
00001143: GT
00001144: ISZERO
00001145: PUSH2 0x114d
00001148: JUMPI
00001149: PUSH2 0x0002
0000114c: JUMP
0000114d: JUMPDEST
0000114e: POP
0000114f: DUP1
00001150: PUSH1 0x00
00001152: DUP2
00001153: EQ
00001154: ISZERO
00001155: PUSH2 0x115b
00001158: JUMPI
00001159: POP
0000115a: TIMESTAMP
0000115b: JUMPDEST
0000115c: CALLER
0000115d: PUSH1 0x01
0000115f: PUSH1 0xa0
00001161: PUSH1 0x02
00001163: EXP
00001164: SUB
00001165: AND
00001166: PUSH32 0x55126d301f76226fe91bfddf7e88369685733743a9738a17fd30c0cefbb9431f
00001187: TIMESTAMP
00001188: DUP4
00001189: DUP7
0000118a: PUSH1 0x40
0000118c: MLOAD
0000118d: DUP1
0000118e: DUP5
0000118f: DUP2
00001190: MSTORE
00001191: PUSH1 0x20
00001193: ADD
00001194: DUP4
00001195: DUP2
00001196: MSTORE
00001197: PUSH1 0x20
00001199: ADD
0000119a: DUP1
0000119b: PUSH1 0x20
0000119d: ADD
0000119e: DUP3
0000119f: DUP2
000011a0: SUB
000011a1: DUP3
000011a2: MSTORE
000011a3: DUP4
000011a4: DUP2
000011a5: DUP2
000011a6: MLOAD
000011a7: DUP2
000011a8: MSTORE
000011a9: PUSH1 0x20
000011ab: ADD
000011ac: SWAP2
000011ad: POP
000011ae: DUP1
000011af: MLOAD
000011b0: SWAP1
000011b1: PUSH1 0x20
000011b3: ADD
000011b4: SWAP1
000011b5: DUP1
000011b6: DUP4
000011b7: DUP4
000011b8: DUP3
000011b9: SWAP1
000011ba: PUSH1 0x00
000011bc: PUSH1 0x04
000011be: PUSH1 0x20
000011c0: DUP5
000011c1: PUSH1 0x1f
000011c3: ADD
000011c4: DIV
000011c5: PUSH1 0x0f
000011c7: MUL
000011c8: PUSH1 0x03
000011ca: ADD
000011cb: CALL
000011cc: POP
000011cd: SWAP1
000011ce: POP
000011cf: SWAP1
000011d0: DUP2
000011d1: ADD
000011d2: SWAP1
000011d3: PUSH1 0x1f
000011d5: AND
000011d6: DUP1
000011d7: ISZERO
000011d8: PUSH2 0x11f5
000011db: JUMPI
000011dc: DUP1
000011dd: DUP3
000011de: SUB
000011df: DUP1
000011e0: MLOAD
000011e1: PUSH1 0x01
000011e3: DUP4
000011e4: PUSH1 0x20
000011e6: SUB
000011e7: PUSH2 0x0100
000011ea: EXP
000011eb: SUB
000011ec: NOT
000011ed: AND
000011ee: DUP2
000011ef: MSTORE
000011f0: PUSH1 0x20
000011f2: ADD
000011f3: SWAP2
000011f4: POP
000011f5: JUMPDEST
000011f6: POP
000011f7: SWAP5
000011f8: POP
000011f9: POP
000011fa: POP
000011fb: POP
000011fc: POP
000011fd: PUSH1 0x40
000011ff: MLOAD
00001200: DUP1
00001201: SWAP2
00001202: SUB
00001203: SWAP1
00001204: LOG2
00001205: POP
00001206: POP
00001207: POP
00001208: JUMP
00001209: UNKNOWN(0x25)
0000120a: CALLER
0000120b: SELFDESTRUCT
0000120c: SWAP5
0000120d: BALANCE
0000120e: MSTORE8
0000120f: PUSH10 0x6e0bb72454179e4e4700
0000121a: LT
0000121b: DUP10
0000121c: UNKNOWN(0xFC)
0000121d: DUP11
0000121e: UNKNOWN(0xA7)
0000121f: UNKNOWN(0xC5)
00001220: UNKNOWN(0xB3)
00001221: UNKNOWN(0xC9)
00001222: UNKNOWN(0xDA)
00001223: UNKNOWN(0xD5)
00001224: PUSH19

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other cast SELFDESTRUCT present 85 no
view
evidence_json
{
    "notes": "selfdestruct can remove contract code and send funds; review reachability",
    "selfdestruct_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xcbe5a42d3d807d51fcddec56be7689bdcd9be41afed803f574a155d88561d873
call_targets: 0x5a5eff38da95b0d58b6c616f2699168b480953c9
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xcbe5a42d3d807d51fcddec56be7689bdcd9be41afed803f574a155d88561d873",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5a5eff38da95b0d58b6c616f2699168b480953c9"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x09a399a7",
            "selector": "0x09a399a7",
            "calldata_variants": [
                "0x09a399a7",
                "0x09a399a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0af658ca",
            "selector": "0x0af658ca",
            "calldata_variants": [
                "0x0af658ca",
                "0x0af658ca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ce3151c",
            "selector": "0x0ce3151c",
            "calldata_variants": [
                "0x0ce3151c",
                "0x0ce3151c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a9b3f95",
            "selector": "0x4a9b3f95",
            "calldata_variants": [
                "0x4a9b3f95",
                "0x4a9b3f950000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4b319713",
            "selector": "0x4b319713",
            "calldata_variants": [
                "0x4b319713",
                "0x4b3197130000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x524fa7b9",
            "selector": "0x524fa7b9",
            "calldata_variants": [
                "0x524fa7b9",
                "0x524fa7b90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x61591a7c",
            "selector": "0x61591a7c",
            "calldata_variants": [
                "0x61591a7c",
                "0x61591a7c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3540,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4555,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xcbe5a42d3d807d51fcddec56be7689bdcd9be41afed803f574a155d88561d873
call_targets: 0x5a5eff38da95b0d58b6c616f2699168b480953c9
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xcbe5a42d3d807d51fcddec56be7689bdcd9be41afed803f574a155d88561d873",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5a5eff38da95b0d58b6c616f2699168b480953c9"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x09a399a7",
            "selector": "0x09a399a7",
            "calldata_variants": [
                "0x09a399a7",
                "0x09a399a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0af658ca",
            "selector": "0x0af658ca",
            "calldata_variants": [
                "0x0af658ca",
                "0x0af658ca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ce3151c",
            "selector": "0x0ce3151c",
            "calldata_variants": [
                "0x0ce3151c",
                "0x0ce3151c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a9b3f95",
            "selector": "0x4a9b3f95",
            "calldata_variants": [
                "0x4a9b3f95",
                "0x4a9b3f950000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4b319713",
            "selector": "0x4b319713",
            "calldata_variants": [
                "0x4b319713",
                "0x4b3197130000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x524fa7b9",
            "selector": "0x524fa7b9",
            "calldata_variants": [
                "0x524fa7b9",
                "0x524fa7b90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x61591a7c",
            "selector": "0x61591a7c",
            "calldata_variants": [
                "0x61591a7c",
                "0x61591a7c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3540,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4555,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
high other detector SELFDESTRUCT reachable 65 no no
view
trace_id: 0x039dbc005da6d84d13e7d39ac51ea7425afb7e91d4bdc16b13c398d57652f359
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x039dbc005da6d84d13e7d39ac51ea7425afb7e91d4bdc16b13c398d57652f359",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x09a399a7",
            "selector": "0x09a399a7",
            "calldata_variants": [
                "0x09a399a7",
                "0x09a399a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0af658ca",
            "selector": "0x0af658ca",
            "calldata_variants": [
                "0x0af658ca",
                "0x0af658ca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ce3151c",
            "selector": "0x0ce3151c",
            "calldata_variants": [
                "0x0ce3151c",
                "0x0ce3151c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a9b3f95",
            "selector": "0x4a9b3f95",
            "calldata_variants": [
                "0x4a9b3f95",
                "0x4a9b3f950000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4b319713",
            "selector": "0x4b319713",
            "calldata_variants": [
                "0x4b319713",
                "0x4b3197130000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x524fa7b9",
            "selector": "0x524fa7b9",
            "calldata_variants": [
                "0x524fa7b9",
                "0x524fa7b90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x61591a7c",
            "selector": "0x61591a7c",
            "calldata_variants": [
                "0x61591a7c",
                "0x61591a7c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [],
    "selfdestruct_count": 1
}
medium access_control codex Any whitelisted account can grant withdrawal privileges to arbitrary addresses 75 no
view
evidence_json
{
    "evidence": "`whitelistAdd` is only gated by `isOnWhitelist`, allowing any whitelisted account to add new members.",
    "locations": [
        "contracts/Contract.sol:171",
        "contracts/Contract.sol:52"
    ],
    "recommendation": "Restrict `whitelistAdd` to a dedicated admin/owner role (or require a multi\u2011sig), and consider separate roles for logging vs. fund withdrawal.",
    "exploit_scenario": "If any whitelisted key is compromised (or a whitelisted user behaves maliciously), the attacker can call `whitelistAdd` to add their own address. They can then withdraw up to 20% of the contract balance every 180 days, effectively gaining long\u2011term draining capability without an owner/administrator approval gate."
}
low math codex Unchecked arithmetic can overflow donation/withdrawal accounting 65 no
view
evidence_json
{
    "evidence": "`donations[msg.sender] += msg.value; totalDonated += msg.value; totalWithdrawn += amount;` without overflow checks.",
    "locations": [
        "contracts/Contract.sol:206",
        "contracts/Contract.sol:227",
        "contracts/Contract.sol:228"
    ],
    "recommendation": "Use SafeMath (or Solidity >=0.8 with checked arithmetic) for all counter updates, or explicitly guard against overflow.",
    "exploit_scenario": "A very large donation or withdrawal can overflow `donations`, `totalDonated`, or `totalWithdrawn`, corrupting these counters. While these values are not currently used for access control, they can become misleading or wrap to smaller values."
}