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

Analysis Run

019bab3b-aaf6-737d-805c-4a5b8f6d3739

failed
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:06 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
Not yet
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 proxy context implementation known
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
38436 artifact.fetch complete 1 / 3 3 months ago
38437 proxy.resolve complete 1 / 3 3 months ago
38438 tool.cast_disasm complete 1 / 3 3 months ago
38439 analysis.bundle complete 1 / 3 3 months ago
38440 capability.graph complete 1 / 3 3 months ago
38441 detector.run complete 1 / 3 3 months ago
38442 validation.fork complete 1 / 3 3 months ago
39005 report.consolidate complete 1 / 6 3 months ago
39006 tool.slither failed 2 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes confirmed
Verified Source: yes
Proxy evidence
{
    "method": "etherscan+onchain",
    "status": "confirmed",
    "etherscan_hint": {
        "source": "etherscan",
        "etherscan": {
            "proxy_flag": true,
            "implementation": "0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d"
        }
    },
    "implementation": "0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d",
    "onchain_method": "eip1967"
}

Slither

tool.slither
Status
failed slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-wy4n20i6) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-wy4n20i6) 'forge' returned non-zero exit code 1 Error: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol: No solc version exists that matches the version requirement: ^0.8.22 Traceback (most recent call last): File "/var/www/tripwire/.venv/bin/slither", line 10, in <module> sys.exit(main()) ~~~~^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main main_impl(all_detector_classes=detectors, all_printer_classes=printers) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl ) = process_all(filename, args, detector_classes, printer_classes) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all compilations = compile_all(target, **vars(args)) File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all compilations.append(CryticCompile(target, **kwargs)) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__ self._compile(**kwargs) ~~~~~~~~~~~~~^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile self._platform.compile(self, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile hardhat_like_parsing( ~~~~~~~~~~~~~~~~~~~~^ crytic_compile, str(self._target), build_directory, str(self._project_root) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing raise InvalidCompilation(txt) crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command? /tmp/slither-wy4n20i6/out/build-info is not a directory.
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 1084, in run
    stdout_text, stderr_text, result_json = _run_slither(
                                            ~~~~~~~~~~~~^
        workspace,
        ^^^^^^^^^^
    ...<4 lines>...
        target_path=target_path,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
    raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-wy4n20i6)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-wy4n20i6)
'forge' returned non-zero exit code 1
Error: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol: No solc version exists that matches the version requirement: ^0.8.22
Traceback (most recent call last):
  File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
    main_impl(all_detector_classes=detectors, all_printer_classes=printers)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
        ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
    compilations = compile_all(target, **vars(args))
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
    compilations.append(CryticCompile(target, **kwargs))
                        ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
    self._compile(**kwargs)
    ~~~~~~~~~~~~~^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
    self._platform.compile(self, **kwargs)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
    hardhat_like_parsing(
    ~~~~~~~~~~~~~~~~~~~~^
        crytic_compile, str(self._target), build_directory, str(self._project_root)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
    raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-wy4n20i6/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
yes
Summary
Reviewed the first-party implementation sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the token router/collateral logic under the requested focus areas.
View stdout
{"no_findings":true,"summary":"Reviewed the first-party implementation sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the token router/collateral logic under the requested focus areas.","findings":[]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-rilhxer_
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bab81-e2be-7650-a7d5-05d870971794
--------
user
Context: The user requested the proxy at 0x81c2813aa88f66bca1e55838045aaceb72febfc1.
Audit the implementation at 0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d.
Findings should refer to the implementation unless explicitly about proxy mechanics.

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 AUDIT_BUNDLE file**
exec
/bin/bash -lc ls in /tmp/codex-rilhxer_ succeeded in 8ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
@hyperlane-xyz
@openzeppelin
exec
/bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 27ms:
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: @hyperlane-xyz/core/contracts/client/GasRouter.sol
================================================================================
// SPDX-License-Identifier: MIT OR Apache-2.0
pragma solidity >=0.6.11;

import {Router} from "./Router.sol";
import {StandardHookMetadata} from "../hooks/libs/StandardHookMetadata.sol";

abstract contract GasRouter is Router {
    // ============ Mutable Storage ============
    mapping(uint32 => uint256) public destinationGas;

    struct GasRouterConfig {
        uint32 domain;
        uint256 gas;
    }
exec
/bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 27ms:
    ) internal view virtual returns (uint256) {
        return
            mailbox.quoteDispatch(
                _destinationDomain,
                _recipient,
                _messageBody,
                _metadata(_destinationDomain),
                hook
            );
    }
}

================================================================================
FILE: @hyperlane-xyz/core/contracts/client/Router.sol
================================================================================
// SPDX-License-Identifier: MIT OR Apache-2.0
pragma solidity >=0.6.11;

// ============ Internal Imports ============
import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
exec
/bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 19ms:

    function _quoteDispatch(
        uint32 _destinationDomain,
        bytes memory _messageBody
    ) internal view virtual returns (uint256) {
        bytes32 _router = _mustHaveRemoteRouter(_destinationDomain);
        return super._quoteDispatch(_destinationDomain, _router, _messageBody);
    }
}

================================================================================
FILE: @hyperlane-xyz/core/contracts/hooks/libs/StandardHookMetadata.sol
================================================================================
// SPDX-License-Identifier: MIT OR Apache-2.0
pragma solidity >=0.8.0;

/*@@@@@@@       @@@@@@@@@
 @@@@@@@@@       @@@@@@@@@
  @@@@@@@@@       @@@@@@@@@
   @@@@@@@@@       @@@@@@@@@
exec
/bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 18ms:
    /**
     * @notice Post action after a message is dispatched via the Mailbox
     * @param metadata The metadata required for the hook
     * @param message The message passed from the Mailbox.dispatch() call
     */
    function postDispatch(
        bytes calldata metadata,
        bytes calldata message
    ) external payable;

    /**
     * @notice Compute the payment required by the postDispatch call
     * @param metadata The metadata required for the hook
     * @param message The message passed from the Mailbox.dispatch() call
     * @return Quoted payment for the postDispatch call
     */
    function quoteDispatch(
        bytes calldata metadata,
        bytes calldata message
    ) external view returns (uint256);
exec
/bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 12ms:
import {TypeCasts} from "@hyperlane-xyz/core/contracts/libs/TypeCasts.sol";
import {TokenMessage} from "./TokenMessage.sol";
import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol";

/**
 * @title Hyperlane Token Router that extends Router with abstract token (ERC20/ERC721) remote transfer functionality.
 * @author Abacus Works
 */
abstract contract TokenRouter is GasRouter {
    using TypeCasts for bytes32;
    using TypeCasts for address;
    using TokenMessage for bytes;

    // ============ KINESIS BRIDGE EXTENSIONS ============
    bytes32 private constant MAX_KADENA_CHAIN_ID_SLOT = keccak256("kinesis.bridge.tokenrouter.maxKadenaChainId");

    /**
     * @dev Emitted on `transferRemote` when a transfer message is dispatched.
     * @param destination The identifier of the destination chain.
     * @param recipientHash The hash of the recipient for filtering.

thinking
**Assessing upgradeable contract patterns and potential risks**

I'm carefully reviewing the upgradeable contract design, focusing on constructor vs initializer usage and immutables in proxy scenarios, along with possible reentrancy around token transfers and message handling. I’m weighing if unexpected behaviors or misconfigurations pose real vulnerabilities or are just design nuances.
exec
/bin/bash -lc 'tail -n 20 AUDIT_BUNDLE.txt' in /tmp/codex-rilhxer_ succeeded in 7ms:
     */
    function setMaxKadenaChainId(uint16 _newMaxChainId) public onlyOwner {
        uint16 currentMaxChainId = getMaxKadenaChainId();
        require(
            currentMaxChainId != _newMaxChainId, "TokenRouter: new max chain ID is the same as the current max chain ID"
        );

        StorageSlot.getUint256Slot(MAX_KADENA_CHAIN_ID_SLOT).value = _newMaxChainId;
        emit MaxKadenaChainIdSet(currentMaxChainId, _newMaxChainId);
    }

    /**
     * @notice Returns the maximum allowed Kadena chain ID for cross-chain transfers
     * @return The current maximum Kadena chain ID value
     */
    function getMaxKadenaChainId() public view returns (uint16) {
        return uint16(StorageSlot.getUint256Slot(MAX_KADENA_CHAIN_ID_SLOT).value);
    }
}


thinking
**Summarizing vulnerability analysis**
codex
{"no_findings":true,"summary":"Reviewed the first-party implementation sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the token router/collateral logic under the requested focus areas.","findings":[]}
tokens used
18,044
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T05:23:39.441983+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 28,
        "import_count": 34,
        "first_party_contracts_count": 14
    },
    "summary": "Reviewed the first-party implementation sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the token router/collateral logic under the requested focus areas.",
    "raw_final": {
        "summary": "Reviewed the first-party implementation sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the token router/collateral logic under the requested focus areas.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "proxy_context": {
        "proxy_run_id": "019bab3b-aaf6-737d-805c-4a5b8f6d3739",
        "proxy_address": "0x81c2813aa88f66bca1e55838045aaceb72febfc1",
        "implementation_run_id": "019bab3c-acf0-7088-b150-fa883a5349a3",
        "implementation_address": "0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d"
    },
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
2
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
0
EXT*/BALANCE
2
Total opcodes
1224
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: PUSH2 0x0013
00000009: JUMPI
0000000a: PUSH2 0x0011
0000000d: PUSH2 0x0017
00000010: JUMP
00000011: JUMPDEST
00000012: STOP
00000013: JUMPDEST
00000014: PUSH2 0x0011
00000017: JUMPDEST
00000018: PUSH2 0x001f
0000001b: PUSH2 0x0169
0000001e: JUMP
0000001f: JUMPDEST
00000020: PUSH1 0x01
00000022: PUSH1 0x01
00000024: PUSH1 0xa0
00000026: SHL
00000027: SUB
00000028: AND
00000029: CALLER
0000002a: SUB
0000002b: PUSH2 0x015f
0000002e: JUMPI
0000002f: PUSH1 0x60
00000031: PUSH1 0x01
00000033: PUSH1 0x01
00000035: PUSH1 0xe0
00000037: SHL
00000038: SUB
00000039: NOT
0000003a: PUSH1 0x00
0000003c: CALLDATALOAD
0000003d: AND
0000003e: PUSH4 0x64d3180d
00000043: PUSH1 0xe1
00000045: SHL
00000046: DUP2
00000047: ADD
00000048: PUSH2 0x005a
0000004b: JUMPI
0000004c: PUSH2 0x0053
0000004f: PUSH2 0x019c
00000052: JUMP
00000053: JUMPDEST
00000054: SWAP2
00000055: POP
00000056: PUSH2 0x0157
00000059: JUMP
0000005a: JUMPDEST
0000005b: PUSH4 0x587086bd
00000060: PUSH1 0xe1
00000062: SHL
00000063: PUSH1 0x01
00000065: PUSH1 0x01
00000067: PUSH1 0xe0
00000069: SHL
0000006a: SUB
0000006b: NOT
0000006c: DUP3
0000006d: AND
0000006e: ADD
0000006f: PUSH2 0x007a
00000072: JUMPI
00000073: PUSH2 0x0053
00000076: PUSH2 0x01f3
00000079: JUMP
0000007a: JUMPDEST
0000007b: PUSH4 0x070d7c69
00000080: PUSH1 0xe4
00000082: SHL
00000083: PUSH1 0x01
00000085: PUSH1 0x01
00000087: PUSH1 0xe0
00000089: SHL
0000008a: SUB
0000008b: NOT
0000008c: DUP3
0000008d: AND
0000008e: ADD
0000008f: PUSH2 0x009a
00000092: JUMPI
00000093: PUSH2 0x0053
00000096: PUSH2 0x0239
00000099: JUMP
0000009a: JUMPDEST
0000009b: PUSH3 0x1eb96f
0000009f: PUSH1 0xe6
000000a1: SHL
000000a2: PUSH1 0x01
000000a4: PUSH1 0x01
000000a6: PUSH1 0xe0
000000a8: SHL
000000a9: SUB
000000aa: NOT
000000ab: DUP3
000000ac: AND
000000ad: ADD
000000ae: PUSH2 0x00b9
000000b1: JUMPI
000000b2: PUSH2 0x0053
000000b5: PUSH2 0x026a
000000b8: JUMP
000000b9: JUMPDEST
000000ba: PUSH4 0xa39f25e5
000000bf: PUSH1 0xe0
000000c1: SHL
000000c2: PUSH1 0x01
000000c4: PUSH1 0x01
000000c6: PUSH1 0xe0
000000c8: SHL
000000c9: SUB
000000ca: NOT
000000cb: DUP3
000000cc: AND
000000cd: ADD
000000ce: PUSH2 0x00d9
000000d1: JUMPI
000000d2: PUSH2 0x0053
000000d5: PUSH2 0x02aa
000000d8: JUMP
000000d9: JUMPDEST
000000da: PUSH1 0x40
000000dc: MLOAD
000000dd: PUSH3 0x461bcd
000000e1: PUSH1 0xe5
000000e3: SHL
000000e4: DUP2
000000e5: MSTORE
000000e6: PUSH1 0x20
000000e8: PUSH1 0x04
000000ea: DUP3
000000eb: ADD
000000ec: MSTORE
000000ed: PUSH1 0x42
000000ef: PUSH1 0x24
000000f1: DUP3
000000f2: ADD
000000f3: MSTORE
000000f4: PUSH32 0x5472616e73706172656e745570677261646561626c6550726f78793a2061646d
00000115: PUSH1 0x44
00000117: DUP3
00000118: ADD
00000119: MSTORE
0000011a: PUSH32 0x696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267
0000013b: PUSH1 0x64
0000013d: DUP3
0000013e: ADD
0000013f: MSTORE
00000140: PUSH2 0x195d
00000143: PUSH1 0xf2
00000145: SHL
00000146: PUSH1 0x84
00000148: DUP3
00000149: ADD
0000014a: MSTORE
0000014b: PUSH1 0xa4
0000014d: ADD
0000014e: JUMPDEST
0000014f: PUSH1 0x40
00000151: MLOAD
00000152: DUP1
00000153: SWAP2
00000154: SUB
00000155: SWAP1
00000156: REVERT
00000157: JUMPDEST
00000158: DUP2
00000159: MLOAD
0000015a: PUSH1 0x20
0000015c: DUP4
0000015d: ADD
0000015e: RETURN
0000015f: JUMPDEST
00000160: PUSH2 0x0167
00000163: PUSH2 0x02be
00000166: JUMP
00000167: JUMPDEST
00000168: JUMP
00000169: JUMPDEST
0000016a: PUSH1 0x00
0000016c: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
0000018d: JUMPDEST
0000018e: SLOAD
0000018f: PUSH1 0x01
00000191: PUSH1 0x01
00000193: PUSH1 0xa0
00000195: SHL
00000196: SUB
00000197: AND
00000198: SWAP2
00000199: SWAP1
0000019a: POP
0000019b: JUMP
0000019c: JUMPDEST
0000019d: PUSH1 0x60
0000019f: PUSH2 0x01a6
000001a2: PUSH2 0x02ce
000001a5: JUMP
000001a6: JUMPDEST
000001a7: PUSH1 0x00
000001a9: PUSH2 0x01b5
000001ac: CALLDATASIZE
000001ad: PUSH1 0x04
000001af: DUP2
000001b0: DUP5
000001b1: PUSH2 0x0683
000001b4: JUMP
000001b5: JUMPDEST
000001b6: DUP2
000001b7: ADD
000001b8: SWAP1
000001b9: PUSH2 0x01c2
000001bc: SWAP2
000001bd: SWAP1
000001be: PUSH2 0x06c9
000001c1: JUMP
000001c2: JUMPDEST
000001c3: SWAP1
000001c4: POP
000001c5: PUSH2 0x01df
000001c8: DUP2
000001c9: PUSH1 0x40
000001cb: MLOAD
000001cc: DUP1
000001cd: PUSH1 0x20
000001cf: ADD
000001d0: PUSH1 0x40
000001d2: MSTORE
000001d3: DUP1
000001d4: PUSH1 0x00
000001d6: DUP2
000001d7: MSTORE
000001d8: POP
000001d9: PUSH1 0x00
000001db: PUSH2 0x02d9
000001de: JUMP
000001df: JUMPDEST
000001e0: POP
000001e1: POP
000001e2: PUSH1 0x40
000001e4: DUP1
000001e5: MLOAD
000001e6: PUSH1 0x20
000001e8: DUP2
000001e9: ADD
000001ea: SWAP1
000001eb: SWAP2
000001ec: MSTORE
000001ed: PUSH1 0x00
000001ef: DUP2
000001f0: MSTORE
000001f1: SWAP1
000001f2: JUMP
000001f3: JUMPDEST
000001f4: PUSH1 0x60
000001f6: PUSH1 0x00
000001f8: DUP1
000001f9: PUSH2 0x0205
000001fc: CALLDATASIZE
000001fd: PUSH1 0x04
000001ff: DUP2
00000200: DUP5
00000201: PUSH2 0x0683
00000204: JUMP
00000205: JUMPDEST
00000206: DUP2
00000207: ADD
00000208: SWAP1
00000209: PUSH2 0x0212
0000020c: SWAP2
0000020d: SWAP1
0000020e: PUSH2 0x06fa
00000211: JUMP
00000212: JUMPDEST
00000213: SWAP2
00000214: POP
00000215: SWAP2
00000216: POP
00000217: PUSH2 0x0222
0000021a: DUP3
0000021b: DUP3
0000021c: PUSH1 0x01
0000021e: PUSH2 0x02d9
00000221: JUMP
00000222: JUMPDEST
00000223: PUSH1 0x40
00000225: MLOAD
00000226: DUP1
00000227: PUSH1 0x20
00000229: ADD
0000022a: PUSH1 0x40
0000022c: MSTORE
0000022d: DUP1
0000022e: PUSH1 0x00
00000230: DUP2
00000231: MSTORE
00000232: POP
00000233: SWAP3
00000234: POP
00000235: POP
00000236: POP
00000237: SWAP1
00000238: JUMP
00000239: JUMPDEST
0000023a: PUSH1 0x60
0000023c: PUSH2 0x0243
0000023f: PUSH2 0x02ce
00000242: JUMP
00000243: JUMPDEST
00000244: PUSH1 0x00
00000246: PUSH2 0x0252
00000249: CALLDATASIZE
0000024a: PUSH1 0x04
0000024c: DUP2
0000024d: DUP5
0000024e: PUSH2 0x0683
00000251: JUMP
00000252: JUMPDEST
00000253: DUP2
00000254: ADD
00000255: SWAP1
00000256: PUSH2 0x025f
00000259: SWAP2
0000025a: SWAP1
0000025b: PUSH2 0x06c9
0000025e: JUMP
0000025f: JUMPDEST
00000260: SWAP1
00000261: POP
00000262: PUSH2 0x01df
00000265: DUP2
00000266: PUSH2 0x0305
00000269: JUMP
0000026a: JUMPDEST
0000026b: PUSH1 0x60
0000026d: PUSH2 0x0274
00000270: PUSH2 0x02ce
00000273: JUMP
00000274: JUMPDEST
00000275: PUSH1 0x00
00000277: PUSH2 0x027e
0000027a: PUSH2 0x0169
0000027d: JUMP
0000027e: JUMPDEST
0000027f: PUSH1 0x40
00000281: DUP1
00000282: MLOAD
00000283: PUSH1 0x01
00000285: PUSH1 0x01
00000287: PUSH1 0xa0
00000289: SHL
0000028a: SUB
0000028b: DUP4
0000028c: AND
0000028d: PUSH1 0x20
0000028f: DUP3
00000290: ADD
00000291: MSTORE
00000292: SWAP2
00000293: SWAP3
00000294: POP
00000295: ADD
00000296: PUSH1 0x40
00000298: MLOAD
00000299: PUSH1 0x20
0000029b: DUP2
0000029c: DUP4
0000029d: SUB
0000029e: SUB
0000029f: DUP2
000002a0: MSTORE
000002a1: SWAP1
000002a2: PUSH1 0x40
000002a4: MSTORE
000002a5: SWAP2
000002a6: POP
000002a7: POP
000002a8: SWAP1
000002a9: JUMP
000002aa: JUMPDEST
000002ab: PUSH1 0x60
000002ad: PUSH2 0x02b4
000002b0: PUSH2 0x02ce
000002b3: JUMP
000002b4: JUMPDEST
000002b5: PUSH1 0x00
000002b7: PUSH2 0x027e
000002ba: PUSH2 0x035c
000002bd: JUMP
000002be: JUMPDEST
000002bf: PUSH2 0x0167
000002c2: PUSH2 0x02c9
000002c5: PUSH2 0x035c
000002c8: JUMP
000002c9: JUMPDEST
000002ca: PUSH2 0x036b
000002cd: JUMP
000002ce: JUMPDEST
000002cf: CALLVALUE
000002d0: ISZERO
000002d1: PUSH2 0x0167
000002d4: JUMPI
000002d5: PUSH1 0x00
000002d7: DUP1
000002d8: REVERT
000002d9: JUMPDEST
000002da: PUSH2 0x02e2
000002dd: DUP4
000002de: PUSH2 0x038f
000002e1: JUMP
000002e2: JUMPDEST
000002e3: PUSH1 0x00
000002e5: DUP3
000002e6: MLOAD
000002e7: GT
000002e8: DUP1
000002e9: PUSH2 0x02ef
000002ec: JUMPI
000002ed: POP
000002ee: DUP1
000002ef: JUMPDEST
000002f0: ISZERO
000002f1: PUSH2 0x0300
000002f4: JUMPI
000002f5: PUSH2 0x02fe
000002f8: DUP4
000002f9: DUP4
000002fa: PUSH2 0x03cf
000002fd: JUMP
000002fe: JUMPDEST
000002ff: POP
00000300: JUMPDEST
00000301: POP
00000302: POP
00000303: POP
00000304: JUMP
00000305: JUMPDEST
00000306: PUSH32 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f
00000327: PUSH2 0x032e
0000032a: PUSH2 0x0169
0000032d: JUMP
0000032e: JUMPDEST
0000032f: PUSH1 0x40
00000331: DUP1
00000332: MLOAD
00000333: PUSH1 0x01
00000335: PUSH1 0x01
00000337: PUSH1 0xa0
00000339: SHL
0000033a: SUB
0000033b: SWAP3
0000033c: DUP4
0000033d: AND
0000033e: DUP2
0000033f: MSTORE
00000340: SWAP2
00000341: DUP5
00000342: AND
00000343: PUSH1 0x20
00000345: DUP4
00000346: ADD
00000347: MSTORE
00000348: ADD
00000349: PUSH1 0x40
0000034b: MLOAD
0000034c: DUP1
0000034d: SWAP2
0000034e: SUB
0000034f: SWAP1
00000350: LOG1
00000351: PUSH2 0x0359
00000354: DUP2
00000355: PUSH2 0x03fb
00000358: JUMP
00000359: JUMPDEST
0000035a: POP
0000035b: JUMP
0000035c: JUMPDEST
0000035d: PUSH1 0x00
0000035f: PUSH2 0x0366
00000362: PUSH2 0x04a4
00000365: JUMP
00000366: JUMPDEST
00000367: SWAP1
00000368: POP
00000369: SWAP1
0000036a: JUMP
0000036b: JUMPDEST
0000036c: CALLDATASIZE
0000036d: PUSH1 0x00
0000036f: DUP1
00000370: CALLDATACOPY
00000371: PUSH1 0x00
00000373: DUP1
00000374: CALLDATASIZE
00000375: PUSH1 0x00
00000377: DUP5
00000378: GAS
00000379: DELEGATECALL
0000037a: RETURNDATASIZE
0000037b: PUSH1 0x00
0000037d: DUP1
0000037e: RETURNDATACOPY
0000037f: DUP1
00000380: DUP1
00000381: ISZERO
00000382: PUSH2 0x038a
00000385: JUMPI
00000386: RETURNDATASIZE
00000387: PUSH1 0x00
00000389: RETURN
0000038a: JUMPDEST
0000038b: RETURNDATASIZE
0000038c: PUSH1 0x00
0000038e: REVERT
0000038f: JUMPDEST
00000390: PUSH2 0x0398
00000393: DUP2
00000394: PUSH2 0x04cc
00000397: JUMP
00000398: JUMPDEST
00000399: PUSH1 0x40
0000039b: MLOAD
0000039c: PUSH1 0x01
0000039e: PUSH1 0x01
000003a0: PUSH1 0xa0
000003a2: SHL
000003a3: SUB
000003a4: DUP3
000003a5: AND
000003a6: SWAP1
000003a7: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
000003c8: SWAP1
000003c9: PUSH1 0x00
000003cb: SWAP1
000003cc: LOG2
000003cd: POP
000003ce: JUMP
000003cf: JUMPDEST
000003d0: PUSH1 0x60
000003d2: PUSH2 0x03f4
000003d5: DUP4
000003d6: DUP4
000003d7: PUSH1 0x40
000003d9: MLOAD
000003da: DUP1
000003db: PUSH1 0x60
000003dd: ADD
000003de: PUSH1 0x40
000003e0: MSTORE
000003e1: DUP1
000003e2: PUSH1 0x27
000003e4: DUP2
000003e5: MSTORE
000003e6: PUSH1 0x20
000003e8: ADD
000003e9: PUSH2 0x0830
000003ec: PUSH1 0x27
000003ee: SWAP2
000003ef: CODECOPY
000003f0: PUSH2 0x0560
000003f3: JUMP
000003f4: JUMPDEST
000003f5: SWAP4
000003f6: SWAP3
000003f7: POP
000003f8: POP
000003f9: POP
000003fa: JUMP
000003fb: JUMPDEST
000003fc: PUSH1 0x01
000003fe: PUSH1 0x01
00000400: PUSH1 0xa0
00000402: SHL
00000403: SUB
00000404: DUP2
00000405: AND
00000406: PUSH2 0x0460
00000409: JUMPI
0000040a: PUSH1 0x40
0000040c: MLOAD
0000040d: PUSH3 0x461bcd
00000411: PUSH1 0xe5
00000413: SHL
00000414: DUP2
00000415: MSTORE
00000416: PUSH1 0x20
00000418: PUSH1 0x04
0000041a: DUP3
0000041b: ADD
0000041c: MSTORE
0000041d: PUSH1 0x26
0000041f: PUSH1 0x24
00000421: DUP3
00000422: ADD
00000423: MSTORE
00000424: PUSH32 0x455243313936373a206e65772061646d696e20697320746865207a65726f2061
00000445: PUSH1 0x44
00000447: DUP3
00000448: ADD
00000449: MSTORE
0000044a: PUSH6 0x646472657373
00000451: PUSH1 0xd0
00000453: SHL
00000454: PUSH1 0x64
00000456: DUP3
00000457: ADD
00000458: MSTORE
00000459: PUSH1 0x84
0000045b: ADD
0000045c: PUSH2 0x014e
0000045f: JUMP
00000460: JUMPDEST
00000461: DUP1
00000462: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
00000483: JUMPDEST
00000484: DUP1
00000485: SLOAD
00000486: PUSH1 0x01
00000488: PUSH1 0x01
0000048a: PUSH1 0xa0
0000048c: SHL
0000048d: SUB
0000048e: NOT
0000048f: AND
00000490: PUSH1 0x01
00000492: PUSH1 0x01
00000494: PUSH1 0xa0
00000496: SHL
00000497: SUB
00000498: SWAP3
00000499: SWAP1
0000049a: SWAP3
0000049b: AND
0000049c: SWAP2
0000049d: SWAP1
0000049e: SWAP2
0000049f: OR
000004a0: SWAP1
000004a1: SSTORE
000004a2: POP
000004a3: JUMP
000004a4: JUMPDEST
000004a5: PUSH1 0x00
000004a7: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
000004c8: PUSH2 0x018d
000004cb: JUMP
000004cc: JUMPDEST
000004cd: PUSH1 0x01
000004cf: PUSH1 0x01
000004d1: PUSH1 0xa0
000004d3: SHL
000004d4: SUB
000004d5: DUP2
000004d6: AND
000004d7: EXTCODESIZE
000004d8: PUSH2 0x0539
000004db: JUMPI
000004dc: PUSH1 0x40
000004de: MLOAD
000004df: PUSH3 0x461bcd
000004e3: PUSH1 0xe5
000004e5: SHL
000004e6: DUP2
000004e7: MSTORE
000004e8: PUSH1 0x20
000004ea: PUSH1 0x04
000004ec: DUP3
000004ed: ADD
000004ee: MSTORE
000004ef: PUSH1 0x2d
000004f1: PUSH1 0x24
000004f3: DUP3
000004f4: ADD
000004f5: MSTORE
000004f6: PUSH32 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e
00000517: PUSH1 0x44
00000519: DUP3
0000051a: ADD
0000051b: MSTORE
0000051c: PUSH13 0x1bdd08184818dbdb9d1c9858dd
0000052a: PUSH1 0x9a
0000052c: SHL
0000052d: PUSH1 0x64
0000052f: DUP3
00000530: ADD
00000531: MSTORE
00000532: PUSH1 0x84
00000534: ADD
00000535: PUSH2 0x014e
00000538: JUMP
00000539: JUMPDEST
0000053a: DUP1
0000053b: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
0000055c: PUSH2 0x0483
0000055f: JUMP
00000560: JUMPDEST
00000561: PUSH1 0x60
00000563: PUSH1 0x00
00000565: DUP1
00000566: DUP6
00000567: PUSH1 0x01
00000569: PUSH1 0x01
0000056b: PUSH1 0xa0
0000056d: SHL
0000056e: SUB
0000056f: AND
00000570: DUP6
00000571: PUSH1 0x40
00000573: MLOAD
00000574: PUSH2 0x057d
00000577: SWAP2
00000578: SWAP1
00000579: PUSH2 0x07e0
0000057c: JUMP
0000057d: JUMPDEST
0000057e: PUSH1 0x00
00000580: PUSH1 0x40
00000582: MLOAD
00000583: DUP1
00000584: DUP4
00000585: SUB
00000586: DUP2
00000587: DUP6
00000588: GAS
00000589: DELEGATECALL
0000058a: SWAP2
0000058b: POP
0000058c: POP
0000058d: RETURNDATASIZE
0000058e: DUP1
0000058f: PUSH1 0x00
00000591: DUP2
00000592: EQ
00000593: PUSH2 0x05b8
00000596: JUMPI
00000597: PUSH1 0x40
00000599: MLOAD
0000059a: SWAP2
0000059b: POP
0000059c: PUSH1 0x1f
0000059e: NOT
0000059f: PUSH1 0x3f
000005a1: RETURNDATASIZE
000005a2: ADD
000005a3: AND
000005a4: DUP3
000005a5: ADD
000005a6: PUSH1 0x40
000005a8: MSTORE
000005a9: RETURNDATASIZE
000005aa: DUP3
000005ab: MSTORE
000005ac: RETURNDATASIZE
000005ad: PUSH1 0x00
000005af: PUSH1 0x20
000005b1: DUP5
000005b2: ADD
000005b3: RETURNDATACOPY
000005b4: PUSH2 0x05bd
000005b7: JUMP
000005b8: JUMPDEST
000005b9: PUSH1 0x60
000005bb: SWAP2
000005bc: POP
000005bd: JUMPDEST
000005be: POP
000005bf: SWAP2
000005c0: POP
000005c1: SWAP2
000005c2: POP
000005c3: PUSH2 0x05ce
000005c6: DUP7
000005c7: DUP4
000005c8: DUP4
000005c9: DUP8
000005ca: PUSH2 0x05d8
000005cd: JUMP
000005ce: JUMPDEST
000005cf: SWAP7
000005d0: SWAP6
000005d1: POP
000005d2: POP
000005d3: POP
000005d4: POP
000005d5: POP
000005d6: POP
000005d7: JUMP
000005d8: JUMPDEST
000005d9: PUSH1 0x60
000005db: DUP4
000005dc: ISZERO
000005dd: PUSH2 0x0647
000005e0: JUMPI
000005e1: DUP3
000005e2: MLOAD
000005e3: PUSH1 0x00
000005e5: SUB
000005e6: PUSH2 0x0640
000005e9: JUMPI
000005ea: PUSH1 0x01
000005ec: PUSH1 0x01
000005ee: PUSH1 0xa0
000005f0: SHL
000005f1: SUB
000005f2: DUP6
000005f3: AND
000005f4: EXTCODESIZE
000005f5: PUSH2 0x0640
000005f8: JUMPI
000005f9: PUSH1 0x40
000005fb: MLOAD
000005fc: PUSH3 0x461bcd
00000600: PUSH1 0xe5
00000602: SHL
00000603: DUP2
00000604: MSTORE
00000605: PUSH1 0x20
00000607: PUSH1 0x04
00000609: DUP3
0000060a: ADD
0000060b: MSTORE
0000060c: PUSH1 0x1d
0000060e: PUSH1 0x24
00000610: DUP3
00000611: ADD
00000612: MSTORE
00000613: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00000634: PUSH1 0x44
00000636: DUP3
00000637: ADD
00000638: MSTORE
00000639: PUSH1 0x64
0000063b: ADD
0000063c: PUSH2 0x014e
0000063f: JUMP
00000640: JUMPDEST
00000641: POP
00000642: DUP2
00000643: PUSH2 0x0651
00000646: JUMP
00000647: JUMPDEST
00000648: PUSH2 0x0651
0000064b: DUP4
0000064c: DUP4
0000064d: PUSH2 0x0659
00000650: JUMP
00000651: JUMPDEST
00000652: SWAP5
00000653: SWAP4
00000654: POP
00000655: POP
00000656: POP
00000657: POP
00000658: JUMP
00000659: JUMPDEST
0000065a: DUP2
0000065b: MLOAD
0000065c: ISZERO
0000065d: PUSH2 0x0669
00000660: JUMPI
00000661: DUP2
00000662: MLOAD
00000663: DUP1
00000664: DUP4
00000665: PUSH1 0x20
00000667: ADD
00000668: REVERT
00000669: JUMPDEST
0000066a: DUP1
0000066b: PUSH1 0x40
0000066d: MLOAD
0000066e: PUSH3 0x461bcd
00000672: PUSH1 0xe5
00000674: SHL
00000675: DUP2
00000676: MSTORE
00000677: PUSH1 0x04
00000679: ADD
0000067a: PUSH2 0x014e
0000067d: SWAP2
0000067e: SWAP1
0000067f: PUSH2 0x07fc
00000682: JUMP
00000683: JUMPDEST
00000684: PUSH1 0x00
00000686: DUP1
00000687: DUP6
00000688: DUP6
00000689: GT
0000068a: ISZERO
0000068b: PUSH2 0x0693
0000068e: JUMPI
0000068f: PUSH1 0x00
00000691: DUP1
00000692: REVERT
00000693: JUMPDEST
00000694: DUP4
00000695: DUP7
00000696: GT
00000697: ISZERO
00000698: PUSH2 0x06a0
0000069b: JUMPI
0000069c: PUSH1 0x00
0000069e: DUP1
0000069f: REVERT
000006a0: JUMPDEST
000006a1: POP
000006a2: POP
000006a3: DUP3
000006a4: ADD
000006a5: SWAP4
000006a6: SWAP2
000006a7: SWAP1
000006a8: SWAP3
000006a9: SUB
000006aa: SWAP2
000006ab: POP
000006ac: JUMP
000006ad: JUMPDEST
000006ae: DUP1
000006af: CALLDATALOAD
000006b0: PUSH1 0x01
000006b2: PUSH1 0x01
000006b4: PUSH1 0xa0
000006b6: SHL
000006b7: SUB
000006b8: DUP2
000006b9: AND
000006ba: DUP2
000006bb: EQ
000006bc: PUSH2 0x06c4
000006bf: JUMPI
000006c0: PUSH1 0x00
000006c2: DUP1
000006c3: REVERT
000006c4: JUMPDEST
000006c5: SWAP2
000006c6: SWAP1
000006c7: POP
000006c8: JUMP
000006c9: JUMPDEST
000006ca: PUSH1 0x00
000006cc: PUSH1 0x20
000006ce: DUP3
000006cf: DUP5
000006d0: SUB
000006d1: SLT
000006d2: ISZERO
000006d3: PUSH2 0x06db
000006d6: JUMPI
000006d7: PUSH1 0x00
000006d9: DUP1
000006da: REVERT
000006db: JUMPDEST
000006dc: PUSH2 0x03f4
000006df: DUP3
000006e0: PUSH2 0x06ad
000006e3: JUMP
000006e4: JUMPDEST
000006e5: PUSH4 0x4e487b71
000006ea: PUSH1 0xe0
000006ec: SHL
000006ed: PUSH1 0x00
000006ef: MSTORE
000006f0: PUSH1 0x41
000006f2: PUSH1 0x04
000006f4: MSTORE
000006f5: PUSH1 0x24
000006f7: PUSH1 0x00
000006f9: REVERT
000006fa: JUMPDEST
000006fb: PUSH1 0x00
000006fd: DUP1
000006fe: PUSH1 0x40
00000700: DUP4
00000701: DUP6
00000702: SUB
00000703: SLT
00000704: ISZERO
00000705: PUSH2 0x070d
00000708: JUMPI
00000709: PUSH1 0x00
0000070b: DUP1
0000070c: REVERT
0000070d: JUMPDEST
0000070e: PUSH2 0x0716
00000711: DUP4
00000712: PUSH2 0x06ad
00000715: JUMP
00000716: JUMPDEST
00000717: SWAP2
00000718: POP
00000719: PUSH1 0x20
0000071b: DUP4
0000071c: ADD
0000071d: CALLDATALOAD
0000071e: PUSH8 0xffffffffffffffff
00000727: DUP1
00000728: DUP3
00000729: GT
0000072a: ISZERO
0000072b: PUSH2 0x0733
0000072e: JUMPI
0000072f: PUSH1 0x00
00000731: DUP1
00000732: REVERT
00000733: JUMPDEST
00000734: DUP2
00000735: DUP6
00000736: ADD
00000737: SWAP2
00000738: POP
00000739: DUP6
0000073a: PUSH1 0x1f
0000073c: DUP4
0000073d: ADD
0000073e: SLT
0000073f: PUSH2 0x0747
00000742: JUMPI
00000743: PUSH1 0x00
00000745: DUP1
00000746: REVERT
00000747: JUMPDEST
00000748: DUP2
00000749: CALLDATALOAD
0000074a: DUP2
0000074b: DUP2
0000074c: GT
0000074d: ISZERO
0000074e: PUSH2 0x0759
00000751: JUMPI
00000752: PUSH2 0x0759
00000755: PUSH2 0x06e4
00000758: JUMP
00000759: JUMPDEST
0000075a: PUSH1 0x40
0000075c: MLOAD
0000075d: PUSH1 0x1f
0000075f: DUP3
00000760: ADD
00000761: PUSH1 0x1f
00000763: NOT
00000764: SWAP1
00000765: DUP2
00000766: AND
00000767: PUSH1 0x3f
00000769: ADD
0000076a: AND
0000076b: DUP2
0000076c: ADD
0000076d: SWAP1
0000076e: DUP4
0000076f: DUP3
00000770: GT
00000771: DUP2
00000772: DUP4
00000773: LT
00000774: OR
00000775: ISZERO
00000776: PUSH2 0x0781
00000779: JUMPI
0000077a: PUSH2 0x0781
0000077d: PUSH2 0x06e4
00000780: JUMP
00000781: JUMPDEST
00000782: DUP2
00000783: PUSH1 0x40
00000785: MSTORE
00000786: DUP3
00000787: DUP2
00000788: MSTORE
00000789: DUP9
0000078a: PUSH1 0x20
0000078c: DUP5
0000078d: DUP8
0000078e: ADD
0000078f: ADD
00000790: GT
00000791: ISZERO
00000792: PUSH2 0x079a
00000795: JUMPI
00000796: PUSH1 0x00
00000798: DUP1
00000799: REVERT
0000079a: JUMPDEST
0000079b: DUP3
0000079c: PUSH1 0x20
0000079e: DUP7
0000079f: ADD
000007a0: PUSH1 0x20
000007a2: DUP4
000007a3: ADD
000007a4: CALLDATACOPY
000007a5: PUSH1 0x00
000007a7: PUSH1 0x20
000007a9: DUP5
000007aa: DUP4
000007ab: ADD
000007ac: ADD
000007ad: MSTORE
000007ae: DUP1
000007af: SWAP6
000007b0: POP
000007b1: POP
000007b2: POP
000007b3: POP
000007b4: POP
000007b5: POP
000007b6: SWAP3
000007b7: POP
000007b8: SWAP3
000007b9: SWAP1
000007ba: POP
000007bb: JUMP
000007bc: JUMPDEST
000007bd: PUSH1 0x00
000007bf: JUMPDEST
000007c0: DUP4
000007c1: DUP2
000007c2: LT
000007c3: ISZERO
000007c4: PUSH2 0x07d7
000007c7: JUMPI
000007c8: DUP2
000007c9: DUP2
000007ca: ADD
000007cb: MLOAD
000007cc: DUP4
000007cd: DUP3
000007ce: ADD
000007cf: MSTORE
000007d0: PUSH1 0x20
000007d2: ADD
000007d3: PUSH2 0x07bf
000007d6: JUMP
000007d7: JUMPDEST
000007d8: POP
000007d9: POP
000007da: PUSH1 0x00
000007dc: SWAP2
000007dd: ADD
000007de: MSTORE
000007df: JUMP
000007e0: JUMPDEST
000007e1: PUSH1 0x00
000007e3: DUP3
000007e4: MLOAD
000007e5: PUSH2 0x07f2
000007e8: DUP2
000007e9: DUP5
000007ea: PUSH1 0x20
000007ec: DUP8
000007ed: ADD
000007ee: PUSH2 0x07bc
000007f1: JUMP
000007f2: JUMPDEST
000007f3: SWAP2
000007f4: SWAP1
000007f5: SWAP2
000007f6: ADD
000007f7: SWAP3
000007f8: SWAP2
000007f9: POP
000007fa: POP
000007fb: JUMP
000007fc: JUMPDEST
000007fd: PUSH1 0x20
000007ff: DUP2
00000800: MSTORE
00000801: PUSH1 0x00
00000803: DUP3
00000804: MLOAD
00000805: DUP1
00000806: PUSH1 0x20
00000808: DUP5
00000809: ADD
0000080a: MSTORE
0000080b: PUSH2 0x081b
0000080e: DUP2
0000080f: PUSH1 0x40
00000811: DUP6
00000812: ADD
00000813: PUSH1 0x20
00000815: DUP8
00000816: ADD
00000817: PUSH2 0x07bc
0000081a: JUMP
0000081b: JUMPDEST
0000081c: PUSH1 0x1f
0000081e: ADD
0000081f: PUSH1 0x1f
00000821: NOT
00000822: AND
00000823: SWAP2
00000824: SWAP1
00000825: SWAP2
00000826: ADD
00000827: PUSH1 0x40
00000829: ADD
0000082a: SWAP3
0000082b: SWAP2
0000082c: POP
0000082d: POP
0000082e: JUMP
0000082f: INVALID
00000830: COINBASE
00000831: PUSH5 0x6472657373
00000837: GASPRICE
00000838: KECCAK256
00000839: PUSH13 0x6f772d6c6576656c2064656c65
00000847: PUSH8 0x6174652063616c6c
00000850: KECCAK256
00000851: PUSH7 0x61696c6564a264
00000859: PUSH10 0x70667358221220e92966
00000864: DUP16
00000865: PUSH17 0x3536730400e70e0e37b3bffe3818e0f424
00000877: UNKNOWN(0xE6)
00000878: PUSH30

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0x3a21601cfe92cfd8ca7fe520e0dde018ec24f1ee64c70957c383a0c44bdb9bb5
call_targets: 0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3a21601cfe92cfd8ca7fe520e0dde018ec24f1ee64c70957c383a0c44bdb9bb5",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d"
    ],
    "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": "0x",
            "selector": "fallback",
            "calldata_variants": [
                "0x"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 889,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 1417,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 2,
    "untrusted_delegatecall_count": 2
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 2
}