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

Analysis Run

019bab3d-7dae-718a-bd33-ed21b428c9ba

failed
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:08 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
Initializer is publicly callable, enabling proxy takeover if not initialized atomically
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
39102 artifact.fetch complete 1 / 3 3 months ago
39103 proxy.resolve complete 1 / 3 3 months ago
39104 tool.cast_disasm complete 1 / 3 3 months ago
39105 analysis.bundle complete 1 / 3 3 months ago
39106 capability.graph complete 1 / 3 3 months ago
39107 detector.run complete 1 / 3 3 months ago
39108 validation.fork complete 1 / 3 3 months ago
39249 report.consolidate complete 1 / 6 3 months ago
39250 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 slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-eonluff1) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-eonluff1) 'forge' returned non-zero exit code 1 Compiling 11 files with Solc 0.8.4 stdout: Solc 0.8.4 finished in 29.56ms Error: Compiler run failed: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:71:5: stderr: | stderr: 71 | function updateRollupAddress( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:132:5: stderr: | stderr: 132 | function updateRollupAddress( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:79:5: stderr: | stderr: 79 | function activeOutbox() public view returns (address) { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:78:5: stderr: | stderr: 78 | function activeOutbox() external view returns (address); stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:89:5: stderr: | stderr: 89 | function allowedDelayedInboxes( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:80:5: stderr: | stderr: 80 | function allowedDelayedInboxes( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:95:5: stderr: | stderr: 95 | function allowedOutboxes( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:84:5: stderr: | stderr: 84 | function allowedOutboxes( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:106:5: stderr: | stderr: 106 | function enqueueSequencerMessage( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:102:5: stderr: | stderr: 102 | function enqueueSequencerMessage( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:135:5: stderr: | stderr: 135 | function submitBatchSpendingReport( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:117:5: stderr: | stderr: 117 | function submitBatchSpendingReport( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:195:5: stderr: | stderr: 195 | function executeCall( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:90:5: stderr: | stderr: 90 | function executeCall( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:214:5: stderr: | stderr: 214 | function setSequencerInbox( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:124:5: stderr: | stderr: 124 | function setSequencerInbox( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:221:5: stderr: | stderr: 221 | function setDelayedInbox(address inbox, bool enabled) external onlyRollupOrOwner { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:128:5: stderr: | stderr: 128 | function setDelayedInbox(address inbox, bool enabled) external; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:240:5: stderr: | stderr: 240 | function setOutbox(address outbox, bool enabled) external onlyRollupOrOwner { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:130:5: stderr: | stderr: 130 | function setOutbox(address inbox, bool enabled) external; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:270:5: stderr: | stderr: 270 | function sequencerMessageCount() external view returns (uint256) { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IBridge.sol:98:5: stderr: | stderr: 98 | function sequencerMessageCount() external view returns (uint256); stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (9456): Overriding public state variable is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:42:5: stderr: | stderr: 42 | address[] public allowedDelayedInboxList; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Overridden public state variable is here: stderr: --> src/bridge/IBridge.sol:56:5: stderr: | stderr: 56 | function allowedDelayedInboxList( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding public state variable is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:43:5: stderr: | stderr: 43 | address[] public allowedOutboxList; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Overridden public state variable is here: stderr: --> src/bridge/IBridge.sol:60:5: stderr: | stderr: 60 | function allowedOutboxList( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding public state variable is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:48:5: stderr: | stderr: 48 | bytes32[] public delayedInboxAccs; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Overridden public state variable is here: stderr: --> src/bridge/IBridge.sol:65:5: stderr: | stderr: 65 | function delayedInboxAccs( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding public state variable is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:51:5: stderr: | stderr: 51 | bytes32[] public sequencerInboxAccs; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Overridden public state variable is here: stderr: --> src/bridge/IBridge.sol:70:5: stderr: | stderr: 70 | function sequencerInboxAccs( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding public state variable is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:53:5: stderr: | stderr: 53 | IOwnable public rollup; stderr: | ^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Overridden public state variable is here: stderr: --> src/bridge/IBridge.sol:74:5: stderr: | stderr: 74 | function rollup() external view returns (IOwnable); stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (9456): Overriding public state variable is missing "override" specifier. stderr: --> src/bridge/AbsBridge.sol:54:5: stderr: | stderr: 54 | address public sequencerInbox; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Overridden public state variable is here: stderr: --> src/bridge/IBridge.sol:76:5: stderr: | stderr: 76 | function sequencerInbox() external view returns (address); stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/Bridge.sol:22:5: stderr: | stderr: 22 | function initialize( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IEthBridge.sol:25:5: stderr: | stderr: 25 | function initialize( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9456): Overriding function is missing "override" specifier. stderr: --> src/bridge/Bridge.sol:30:5: stderr: | stderr: 30 | function enqueueDelayedMessage( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Overridden function is here: stderr: --> src/bridge/IEthBridge.sol:17:5: stderr: | stderr: 17 | function enqueueDelayedMessage( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "activeOutbox". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:79:5: stderr: | stderr: 79 | function activeOutbox() public view returns (address) { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:78:5: stderr: | stderr: 78 | function activeOutbox() external view returns (address); stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6480): Derived contract must override function "allowedDelayedInboxList". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:42:5: stderr: | stderr: 42 | address[] public allowedDelayedInboxList; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:56:5: stderr: | stderr: 56 | function allowedDelayedInboxList( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "allowedDelayedInboxes". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:89:5: stderr: | stderr: 89 | function allowedDelayedInboxes( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:80:5: stderr: | stderr: 80 | function allowedDelayedInboxes( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "allowedOutboxList". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:43:5: stderr: | stderr: 43 | address[] public allowedOutboxList; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:60:5: stderr: | stderr: 60 | function allowedOutboxList( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "allowedOutboxes". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:95:5: stderr: | stderr: 95 | function allowedOutboxes( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:84:5: stderr: | stderr: 84 | function allowedOutboxes( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "delayedInboxAccs". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:48:5: stderr: | stderr: 48 | bytes32[] public delayedInboxAccs; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:65:5: stderr: | stderr: 65 | function delayedInboxAccs( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "enqueueSequencerMessage". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:106:5: stderr: | stderr: 106 | function enqueueSequencerMessage( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:102:5: stderr: | stderr: 102 | function enqueueSequencerMessage( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "executeCall". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:195:5: stderr: | stderr: 195 | function executeCall( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:90:5: stderr: | stderr: 90 | function executeCall( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "rollup". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:53:5: stderr: | stderr: 53 | IOwnable public rollup; stderr: | ^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:74:5: stderr: | stderr: 74 | function rollup() external view returns (IOwnable); stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6480): Derived contract must override function "sequencerInbox". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:54:5: stderr: | stderr: 54 | address public sequencerInbox; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:76:5: stderr: | stderr: 76 | function sequencerInbox() external view returns (address); stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6480): Derived contract must override function "sequencerInboxAccs". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:51:5: stderr: | stderr: 51 | bytes32[] public sequencerInboxAccs; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:70:5: stderr: | stderr: 70 | function sequencerInboxAccs( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "sequencerMessageCount". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:270:5: stderr: | stderr: 270 | function sequencerMessageCount() external view returns (uint256) { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:98:5: stderr: | stderr: 98 | function sequencerMessageCount() external view returns (uint256); stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6480): Derived contract must override function "setDelayedInbox". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:221:5: stderr: | stderr: 221 | function setDelayedInbox(address inbox, bool enabled) external onlyRollupOrOwner { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:128:5: stderr: | stderr: 128 | function setDelayedInbox(address inbox, bool enabled) external; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6480): Derived contract must override function "setOutbox". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:240:5: stderr: | stderr: 240 | function setOutbox(address outbox, bool enabled) external onlyRollupOrOwner { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:130:5: stderr: | stderr: 130 | function setOutbox(address inbox, bool enabled) external; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6480): Derived contract must override function "setSequencerInbox". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:214:5: stderr: | stderr: 214 | function setSequencerInbox( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:124:5: stderr: | stderr: 124 | function setSequencerInbox( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "submitBatchSpendingReport". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:135:5: stderr: | stderr: 135 | function submitBatchSpendingReport( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:117:5: stderr: | stderr: 117 | function submitBatchSpendingReport( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (6480): Derived contract must override function "updateRollupAddress". Two or more base classes define function with same name and parameter types. stderr: --> src/bridge/Bridge.sol:18:1: stderr: | stderr: 18 | contract Bridge is AbsBridge, IEthBridge { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "AbsBridge": stderr: --> src/bridge/AbsBridge.sol:71:5: stderr: | stderr: 71 | function updateRollupAddress( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Definition in "IBridge": stderr: --> src/bridge/IBridge.sol:132:5: stderr: | stderr: 132 | function updateRollupAddress( stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: stderr: Error (9582): Member "basefee" not found or not visible after argument-dependent lookup in block. stderr: --> src/bridge/AbsBridge.sol:144:13: stderr: | stderr: 144 | block.basefee, stderr: | ^^^^^^^^^^^^^ 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-eonluff1/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-eonluff1)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-eonluff1)
'forge' returned non-zero exit code 1
Compiling 11 files with Solc 0.8.4
stdout: Solc 0.8.4 finished in 29.56ms
Error: Compiler run failed:
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:71:5:
stderr:    |
stderr: 71 |     function updateRollupAddress(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:    --> src/bridge/IBridge.sol:132:5:
stderr:     |
stderr: 132 |     function updateRollupAddress(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:79:5:
stderr:    |
stderr: 79 |     function activeOutbox() public view returns (address) {
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:   --> src/bridge/IBridge.sol:78:5:
stderr:    |
stderr: 78 |     function activeOutbox() external view returns (address);
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:89:5:
stderr:    |
stderr: 89 |     function allowedDelayedInboxes(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:   --> src/bridge/IBridge.sol:80:5:
stderr:    |
stderr: 80 |     function allowedDelayedInboxes(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:95:5:
stderr:    |
stderr: 95 |     function allowedOutboxes(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:   --> src/bridge/IBridge.sol:84:5:
stderr:    |
stderr: 84 |     function allowedOutboxes(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:    --> src/bridge/AbsBridge.sol:106:5:
stderr:     |
stderr: 106 |     function enqueueSequencerMessage(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:    --> src/bridge/IBridge.sol:102:5:
stderr:     |
stderr: 102 |     function enqueueSequencerMessage(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:    --> src/bridge/AbsBridge.sol:135:5:
stderr:     |
stderr: 135 |     function submitBatchSpendingReport(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:    --> src/bridge/IBridge.sol:117:5:
stderr:     |
stderr: 117 |     function submitBatchSpendingReport(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:    --> src/bridge/AbsBridge.sol:195:5:
stderr:     |
stderr: 195 |     function executeCall(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:   --> src/bridge/IBridge.sol:90:5:
stderr:    |
stderr: 90 |     function executeCall(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:    --> src/bridge/AbsBridge.sol:214:5:
stderr:     |
stderr: 214 |     function setSequencerInbox(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:    --> src/bridge/IBridge.sol:124:5:
stderr:     |
stderr: 124 |     function setSequencerInbox(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:    --> src/bridge/AbsBridge.sol:221:5:
stderr:     |
stderr: 221 |     function setDelayedInbox(address inbox, bool enabled) external onlyRollupOrOwner {
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:    --> src/bridge/IBridge.sol:128:5:
stderr:     |
stderr: 128 |     function setDelayedInbox(address inbox, bool enabled) external;
stderr:     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:    --> src/bridge/AbsBridge.sol:240:5:
stderr:     |
stderr: 240 |     function setOutbox(address outbox, bool enabled) external onlyRollupOrOwner {
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:    --> src/bridge/IBridge.sol:130:5:
stderr:     |
stderr: 130 |     function setOutbox(address inbox, bool enabled) external;
stderr:     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:    --> src/bridge/AbsBridge.sol:270:5:
stderr:     |
stderr: 270 |     function sequencerMessageCount() external view returns (uint256) {
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:   --> src/bridge/IBridge.sol:98:5:
stderr:    |
stderr: 98 |     function sequencerMessageCount() external view returns (uint256);
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (9456): Overriding public state variable is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:42:5:
stderr:    |
stderr: 42 |     address[] public allowedDelayedInboxList;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Overridden public state variable is here:
stderr:   --> src/bridge/IBridge.sol:56:5:
stderr:    |
stderr: 56 |     function allowedDelayedInboxList(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding public state variable is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:43:5:
stderr:    |
stderr: 43 |     address[] public allowedOutboxList;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Overridden public state variable is here:
stderr:   --> src/bridge/IBridge.sol:60:5:
stderr:    |
stderr: 60 |     function allowedOutboxList(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding public state variable is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:48:5:
stderr:    |
stderr: 48 |     bytes32[] public delayedInboxAccs;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Overridden public state variable is here:
stderr:   --> src/bridge/IBridge.sol:65:5:
stderr:    |
stderr: 65 |     function delayedInboxAccs(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding public state variable is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:51:5:
stderr:    |
stderr: 51 |     bytes32[] public sequencerInboxAccs;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Overridden public state variable is here:
stderr:   --> src/bridge/IBridge.sol:70:5:
stderr:    |
stderr: 70 |     function sequencerInboxAccs(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding public state variable is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:53:5:
stderr:    |
stderr: 53 |     IOwnable public rollup;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Overridden public state variable is here:
stderr:   --> src/bridge/IBridge.sol:74:5:
stderr:    |
stderr: 74 |     function rollup() external view returns (IOwnable);
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (9456): Overriding public state variable is missing "override" specifier.
stderr:   --> src/bridge/AbsBridge.sol:54:5:
stderr:    |
stderr: 54 |     address public sequencerInbox;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Overridden public state variable is here:
stderr:   --> src/bridge/IBridge.sol:76:5:
stderr:    |
stderr: 76 |     function sequencerInbox() external view returns (address);
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:   --> src/bridge/Bridge.sol:22:5:
stderr:    |
stderr: 22 |     function initialize(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:   --> src/bridge/IEthBridge.sol:25:5:
stderr:    |
stderr: 25 |     function initialize(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9456): Overriding function is missing "override" specifier.
stderr:   --> src/bridge/Bridge.sol:30:5:
stderr:    |
stderr: 30 |     function enqueueDelayedMessage(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Overridden function is here:
stderr:   --> src/bridge/IEthBridge.sol:17:5:
stderr:    |
stderr: 17 |     function enqueueDelayedMessage(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "activeOutbox". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:79:5:
stderr:    |
stderr: 79 |     function activeOutbox() public view returns (address) {
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:78:5:
stderr:    |
stderr: 78 |     function activeOutbox() external view returns (address);
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6480): Derived contract must override function "allowedDelayedInboxList". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:42:5:
stderr:    |
stderr: 42 |     address[] public allowedDelayedInboxList;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:56:5:
stderr:    |
stderr: 56 |     function allowedDelayedInboxList(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "allowedDelayedInboxes". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:89:5:
stderr:    |
stderr: 89 |     function allowedDelayedInboxes(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:80:5:
stderr:    |
stderr: 80 |     function allowedDelayedInboxes(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "allowedOutboxList". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:43:5:
stderr:    |
stderr: 43 |     address[] public allowedOutboxList;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:60:5:
stderr:    |
stderr: 60 |     function allowedOutboxList(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "allowedOutboxes". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:95:5:
stderr:    |
stderr: 95 |     function allowedOutboxes(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:84:5:
stderr:    |
stderr: 84 |     function allowedOutboxes(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "delayedInboxAccs". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:48:5:
stderr:    |
stderr: 48 |     bytes32[] public delayedInboxAccs;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:65:5:
stderr:    |
stderr: 65 |     function delayedInboxAccs(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "enqueueSequencerMessage". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:    --> src/bridge/AbsBridge.sol:106:5:
stderr:     |
stderr: 106 |     function enqueueSequencerMessage(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:    --> src/bridge/IBridge.sol:102:5:
stderr:     |
stderr: 102 |     function enqueueSequencerMessage(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "executeCall". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:    --> src/bridge/AbsBridge.sol:195:5:
stderr:     |
stderr: 195 |     function executeCall(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:90:5:
stderr:    |
stderr: 90 |     function executeCall(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "rollup". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:53:5:
stderr:    |
stderr: 53 |     IOwnable public rollup;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:74:5:
stderr:    |
stderr: 74 |     function rollup() external view returns (IOwnable);
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6480): Derived contract must override function "sequencerInbox". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:54:5:
stderr:    |
stderr: 54 |     address public sequencerInbox;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:76:5:
stderr:    |
stderr: 76 |     function sequencerInbox() external view returns (address);
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6480): Derived contract must override function "sequencerInboxAccs". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:51:5:
stderr:    |
stderr: 51 |     bytes32[] public sequencerInboxAccs;
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:70:5:
stderr:    |
stderr: 70 |     function sequencerInboxAccs(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "sequencerMessageCount". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:    --> src/bridge/AbsBridge.sol:270:5:
stderr:     |
stderr: 270 |     function sequencerMessageCount() external view returns (uint256) {
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:   --> src/bridge/IBridge.sol:98:5:
stderr:    |
stderr: 98 |     function sequencerMessageCount() external view returns (uint256);
stderr:    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6480): Derived contract must override function "setDelayedInbox". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:    --> src/bridge/AbsBridge.sol:221:5:
stderr:     |
stderr: 221 |     function setDelayedInbox(address inbox, bool enabled) external onlyRollupOrOwner {
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:    --> src/bridge/IBridge.sol:128:5:
stderr:     |
stderr: 128 |     function setDelayedInbox(address inbox, bool enabled) external;
stderr:     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6480): Derived contract must override function "setOutbox". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:    --> src/bridge/AbsBridge.sol:240:5:
stderr:     |
stderr: 240 |     function setOutbox(address outbox, bool enabled) external onlyRollupOrOwner {
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:    --> src/bridge/IBridge.sol:130:5:
stderr:     |
stderr: 130 |     function setOutbox(address inbox, bool enabled) external;
stderr:     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6480): Derived contract must override function "setSequencerInbox". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:    --> src/bridge/AbsBridge.sol:214:5:
stderr:     |
stderr: 214 |     function setSequencerInbox(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:    --> src/bridge/IBridge.sol:124:5:
stderr:     |
stderr: 124 |     function setSequencerInbox(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "submitBatchSpendingReport". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:    --> src/bridge/AbsBridge.sol:135:5:
stderr:     |
stderr: 135 |     function submitBatchSpendingReport(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:    --> src/bridge/IBridge.sol:117:5:
stderr:     |
stderr: 117 |     function submitBatchSpendingReport(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (6480): Derived contract must override function "updateRollupAddress". Two or more base classes define function with same name and parameter types.
stderr:   --> src/bridge/Bridge.sol:18:1:
stderr:    |
stderr: 18 | contract Bridge is AbsBridge, IEthBridge {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "AbsBridge": 
stderr:   --> src/bridge/AbsBridge.sol:71:5:
stderr:    |
stderr: 71 |     function updateRollupAddress(
stderr:    |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Definition in "IBridge": 
stderr:    --> src/bridge/IBridge.sol:132:5:
stderr:     |
stderr: 132 |     function updateRollupAddress(
stderr:     |     ^ (Relevant source part starts here and spans across multiple lines).
stderr: 
stderr: Error (9582): Member "basefee" not found or not visible after argument-dependent lookup in block.
stderr:    --> src/bridge/AbsBridge.sol:144:13:
stderr:     |
stderr: 144 |             block.basefee,
stderr:     |             ^^^^^^^^^^^^^
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-eonluff1/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
Unprotected initializer lets anyone take ownership if the proxy is deployed without calling initialize in the same transaction.
View stdout
{"no_findings":false,"summary":"Unprotected initializer lets anyone take ownership if the proxy is deployed without calling initialize in the same transaction.","findings":[{"severity":"critical","category":"upgradeability","title":"Initializer is publicly callable, enabling proxy takeover if not initialized atomically","exploit_scenario":"If the proxy is deployed without calling `initialize` in the same transaction, any account can call `initialize(rollup_)` via the proxy and set `rollup` to a malicious contract that returns the attacker as owner. The attacker then controls `onlyRollupOrOwner` functions (e.g., setting outboxes/inboxes or updating rollup), enabling full system takeover and potential escrow drain via allowed outbox execution.","recommendation":"Ensure `initialize` is executed atomically during proxy deployment (constructor `data` call) or add an access-control guard (e.g., `onlyProxyOwner`/admin) to `initialize`. Consider disabling initializers on the implementation to prevent misuse.","evidence":"`initialize` is `external` and only gated by `initializer` and `onlyDelegated`, with no caller authentication.","locations":["src/bridge/Bridge.sol:22"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-_s_a76zq
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bac37-77d0-7d33-a2cc-302055885d9d
--------
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
**Preparing to read AUDIT_BUNDLE file**
exec
/bin/bash -lc 'cat /tmp/codex-_s_a76zq/AUDIT_BUNDLE.txt' in /tmp/codex-_s_a76zq succeeded in 8ms:
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: src/bridge/AbsBridge.sol
================================================================================
// Copyright 2021-2022, Offchain Labs, Inc.
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
// SPDX-License-Identifier: BUSL-1.1

pragma solidity ^0.8.4;

import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol";

import {
    NotContract,
    NotRollupOrOwner,
    NotDelayedInbox,
    NotSequencerInbox,

thinking
**Identifying potential vulnerabilities and auditing risks**

I'm reviewing the code for reentrancy risks, unprotected initializer functions, and external calls semantics, especially focusing on executeCall and onlyRollupOrOwner modifiers. The main concern is the unprotected initializer allowing admin takeover if deployment isn't atomic, which I consider a high-critical risk. Other issues like allowed outboxes calling arbitrary contracts seem intended. I'll gather file line numbers for key functions to produce an audit JSON summary.
exec
/bin/bash -lc "nl -ba /tmp/codex-_s_a76zq/AUDIT_BUNDLE.txt | sed -n '80,220p'" in /tmp/codex-_s_a76zq succeeded in 7ms:
    80	        rollup = _rollup;
    81	        emit RollupUpdated(address(_rollup));
    82	    }
    83	
    84	    /// @dev returns the address of current active Outbox, or zero if no outbox is active
    85	    function activeOutbox() public view returns (address) {
    86	        address outbox = _activeOutbox;
    87	        // address zero is returned if no outbox is set, but the value used in storage
    88	        // is non-zero to save users some gas (as storage refunds are usually maxed out)
    89	        // EIP-1153 would help here.
    90	        // we don't return `EMPTY_ACTIVEOUTBOX` to avoid a breaking change on the current api
    91	        if (outbox == EMPTY_ACTIVEOUTBOX) return address(0);
    92	        return outbox;
    93	    }
    94	
    95	    function allowedDelayedInboxes(
    96	        address inbox
    97	    ) public view returns (bool) {
    98	        return allowedDelayedInboxesMap[inbox].allowed;
    99	    }

thinking
**Searching for Bridge initialization line numbers**
exec
/bin/bash -lc "nl -ba /tmp/codex-_s_a76zq/AUDIT_BUNDLE.txt | sed -n '260,360p'" in /tmp/codex-_s_a76zq succeeded in 6ms:
   260	            allowedOutboxesMap[allowedOutboxList[info.index]].index = info.index;
   261	            allowedOutboxList.pop();
   262	            delete allowedOutboxesMap[outbox];
   263	        }
   264	    }
   265	
   266	    function setSequencerReportedSubMessageCount(
   267	        uint256 newMsgCount
   268	    ) external onlyRollupOrOwner {
   269	        sequencerReportedSubMessageCount = newMsgCount;
   270	    }
   271	
   272	    function delayedMessageCount() external view override returns (uint256) {
   273	        return delayedInboxAccs.length;
   274	    }
   275	
   276	    function sequencerMessageCount() external view returns (uint256) {
   277	        return sequencerInboxAccs.length;
   278	    }
   279	

thinking
**Considering line number referencing**
exec
/bin/bash -lc 'nl -ba /tmp/codex-_s_a76zq/src/bridge/Bridge.sol' in /tmp/codex-_s_a76zq succeeded in 9ms:
     1	// Copyright 2021-2022, Offchain Labs, Inc.
     2	// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
     3	// SPDX-License-Identifier: BUSL-1.1
     4	
     5	pragma solidity ^0.8.4;
     6	
     7	import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
     8	import "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol";
     9	import "./AbsBridge.sol";
    10	import "./IEthBridge.sol";
    11	import "./Messages.sol";
    12	import "../libraries/DelegateCallAware.sol";
    13	
    14	/**
    15	 * @title Staging ground for incoming and outgoing messages
    16	 * @notice It is also the ETH escrow for value sent with these messages.
    17	 */
    18	contract Bridge is AbsBridge, IEthBridge {
    19	    using AddressUpgradeable for address;
    20	

thinking
**Analyzing Bridge initialization risks**
codex
{"no_findings":false,"summary":"Unprotected initializer lets anyone take ownership if the proxy is deployed without calling initialize in the same transaction.","findings":[{"severity":"critical","category":"upgradeability","title":"Initializer is publicly callable, enabling proxy takeover if not initialized atomically","exploit_scenario":"If the proxy is deployed without calling `initialize` in the same transaction, any account can call `initialize(rollup_)` via the proxy and set `rollup` to a malicious contract that returns the attacker as owner. The attacker then controls `onlyRollupOrOwner` functions (e.g., setting outboxes/inboxes or updating rollup), enabling full system takeover and potential escrow drain via allowed outbox execution.","recommendation":"Ensure `initialize` is executed atomically during proxy deployment (constructor `data` call) or add an access-control guard (e.g., `onlyProxyOwner`/admin) to `initialize`. Consider disabling initializers on the implementation to prevent misuse.","evidence":"`initialize` is `external` and only gated by `initializer` and `onlyDelegated`, with no caller authentication.","locations":["src/bridge/Bridge.sol:22"]}]}
tokens used
18,343
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T08:42:27.120395+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 11,
        "import_count": 11,
        "first_party_contracts_count": 9
    },
    "summary": "Unprotected initializer lets anyone take ownership if the proxy is deployed without calling initialize in the same transaction.",
    "raw_final": {
        "summary": "Unprotected initializer lets anyone take ownership if the proxy is deployed without calling initialize in the same transaction.",
        "findings": [
            {
                "title": "Initializer is publicly callable, enabling proxy takeover if not initialized atomically",
                "category": "upgradeability",
                "evidence": "`initialize` is `external` and only gated by `initializer` and `onlyDelegated`, with no caller authentication.",
                "severity": "critical",
                "locations": [
                    "src/bridge/Bridge.sol:22"
                ],
                "recommendation": "Ensure `initialize` is executed atomically during proxy deployment (constructor `data` call) or add an access-control guard (e.g., `onlyProxyOwner`/admin) to `initialize`. Consider disabling initializers on the implementation to prevent misuse.",
                "exploit_scenario": "If the proxy is deployed without calling `initialize` in the same transaction, any account can call `initialize(rollup_)` via the proxy and set `rollup` to a malicious contract that returns the attacker as owner. The attacker then controls `onlyRollupOrOwner` functions (e.g., setting outboxes/inboxes or updating rollup), enabling full system takeover and potential escrow drain via allowed outbox execution."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
7
EXT*/BALANCE
2
Total opcodes
4112
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x017f
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x9e5d4c49
00000019: GT
0000001a: PUSH2 0x00d6
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xd5719dc2
00000024: GT
00000025: PUSH2 0x007f
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xeca067ad
0000002f: GT
00000030: PUSH2 0x0059
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xeca067ad
0000003a: EQ
0000003b: PUSH2 0x0457
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xee35f327
00000045: EQ
00000046: PUSH2 0x046c
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf81ff3b3
00000050: EQ
00000051: PUSH2 0x048c
00000054: JUMPI
00000055: PUSH1 0x00
00000057: DUP1
00000058: REVERT
00000059: JUMPDEST
0000005a: DUP1
0000005b: PUSH4 0xd5719dc2
00000060: EQ
00000061: PUSH2 0x0417
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0xe76f5c8d
0000006b: EQ
0000006c: PUSH2 0x0437
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xe77145f4
00000076: EQ
00000077: PUSH2 0x0234
0000007a: JUMPI
0000007b: PUSH1 0x00
0000007d: DUP1
0000007e: REVERT
0000007f: JUMPDEST
00000080: DUP1
00000081: PUSH4 0xc4d66de8
00000086: GT
00000087: PUSH2 0x00b0
0000008a: JUMPI
0000008b: DUP1
0000008c: PUSH4 0xc4d66de8
00000091: EQ
00000092: PUSH2 0x03b7
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0xcb23bcb5
0000009c: EQ
0000009d: PUSH2 0x03d7
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xcee3d728
000000a7: EQ
000000a8: PUSH2 0x03f7
000000ab: JUMPI
000000ac: PUSH1 0x00
000000ae: DUP1
000000af: REVERT
000000b0: JUMPDEST
000000b1: DUP1
000000b2: PUSH4 0x9e5d4c49
000000b7: EQ
000000b8: PUSH2 0x0337
000000bb: JUMPI
000000bc: DUP1
000000bd: PUSH4 0xab5d8943
000000c2: EQ
000000c3: PUSH2 0x0365
000000c6: JUMPI
000000c7: DUP1
000000c8: PUSH4 0xae60bd13
000000cd: EQ
000000ce: PUSH2 0x037a
000000d1: JUMPI
000000d2: PUSH1 0x00
000000d4: DUP1
000000d5: REVERT
000000d6: JUMPDEST
000000d7: DUP1
000000d8: PUSH4 0x5fca4a16
000000dd: GT
000000de: PUSH2 0x0138
000000e1: JUMPI
000000e2: DUP1
000000e3: PUSH4 0x8db5993b
000000e8: GT
000000e9: PUSH2 0x0112
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0x8db5993b
000000f3: EQ
000000f4: PUSH2 0x02cc
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0x919cc706
000000fe: EQ
000000ff: PUSH2 0x02df
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0x945e1147
00000109: EQ
0000010a: PUSH2 0x02ff
0000010d: JUMPI
0000010e: PUSH1 0x00
00000110: DUP1
00000111: REVERT
00000112: JUMPDEST
00000113: DUP1
00000114: PUSH4 0x5fca4a16
00000119: EQ
0000011a: PUSH2 0x0256
0000011d: JUMPI
0000011e: DUP1
0000011f: PUSH4 0x7a88b107
00000124: EQ
00000125: PUSH2 0x026c
00000128: JUMPI
00000129: DUP1
0000012a: PUSH4 0x86598a56
0000012f: EQ
00000130: PUSH2 0x028c
00000133: JUMPI
00000134: PUSH1 0x00
00000136: DUP1
00000137: REVERT
00000138: JUMPDEST
00000139: DUP1
0000013a: PUSH4 0x413b35bd
0000013f: GT
00000140: PUSH2 0x0169
00000143: JUMPI
00000144: DUP1
00000145: PUSH4 0x413b35bd
0000014a: EQ
0000014b: PUSH2 0x01c8
0000014e: JUMPI
0000014f: DUP1
00000150: PUSH4 0x47fb24c5
00000155: EQ
00000156: PUSH2 0x0214
00000159: JUMPI
0000015a: DUP1
0000015b: PUSH4 0x4f61f850
00000160: EQ
00000161: PUSH2 0x0236
00000164: JUMPI
00000165: PUSH1 0x00
00000167: DUP1
00000168: REVERT
00000169: JUMPDEST
0000016a: DUP1
0000016b: PUSH3 0x84120c
0000016f: EQ
00000170: PUSH2 0x0184
00000173: JUMPI
00000174: DUP1
00000175: PUSH4 0x16bf5579
0000017a: EQ
0000017b: PUSH2 0x01a8
0000017e: JUMPI
0000017f: JUMPDEST
00000180: PUSH1 0x00
00000182: DUP1
00000183: REVERT
00000184: JUMPDEST
00000185: CALLVALUE
00000186: DUP1
00000187: ISZERO
00000188: PUSH2 0x0190
0000018b: JUMPI
0000018c: PUSH1 0x00
0000018e: DUP1
0000018f: REVERT
00000190: JUMPDEST
00000191: POP
00000192: PUSH1 0x07
00000194: SLOAD
00000195: JUMPDEST
00000196: PUSH1 0x40
00000198: MLOAD
00000199: SWAP1
0000019a: DUP2
0000019b: MSTORE
0000019c: PUSH1 0x20
0000019e: ADD
0000019f: JUMPDEST
000001a0: PUSH1 0x40
000001a2: MLOAD
000001a3: DUP1
000001a4: SWAP2
000001a5: SUB
000001a6: SWAP1
000001a7: RETURN
000001a8: JUMPDEST
000001a9: CALLVALUE
000001aa: DUP1
000001ab: ISZERO
000001ac: PUSH2 0x01b4
000001af: JUMPI
000001b0: PUSH1 0x00
000001b2: DUP1
000001b3: REVERT
000001b4: JUMPDEST
000001b5: POP
000001b6: PUSH2 0x0195
000001b9: PUSH2 0x01c3
000001bc: CALLDATASIZE
000001bd: PUSH1 0x04
000001bf: PUSH2 0x175e
000001c2: JUMP
000001c3: JUMPDEST
000001c4: PUSH2 0x04ac
000001c7: JUMP
000001c8: JUMPDEST
000001c9: CALLVALUE
000001ca: DUP1
000001cb: ISZERO
000001cc: PUSH2 0x01d4
000001cf: JUMPI
000001d0: PUSH1 0x00
000001d2: DUP1
000001d3: REVERT
000001d4: JUMPDEST
000001d5: POP
000001d6: PUSH2 0x0204
000001d9: PUSH2 0x01e3
000001dc: CALLDATASIZE
000001dd: PUSH1 0x04
000001df: PUSH2 0x178c
000001e2: JUMP
000001e3: JUMPDEST
000001e4: PUSH1 0x01
000001e6: PUSH1 0x01
000001e8: PUSH1 0xa0
000001ea: SHL
000001eb: SUB
000001ec: AND
000001ed: PUSH1 0x00
000001ef: SWAP1
000001f0: DUP2
000001f1: MSTORE
000001f2: PUSH1 0x02
000001f4: PUSH1 0x20
000001f6: MSTORE
000001f7: PUSH1 0x40
000001f9: SWAP1
000001fa: KECCAK256
000001fb: PUSH1 0x01
000001fd: ADD
000001fe: SLOAD
000001ff: PUSH1 0xff
00000201: AND
00000202: SWAP1
00000203: JUMP
00000204: JUMPDEST
00000205: PUSH1 0x40
00000207: MLOAD
00000208: SWAP1
00000209: ISZERO
0000020a: ISZERO
0000020b: DUP2
0000020c: MSTORE
0000020d: PUSH1 0x20
0000020f: ADD
00000210: PUSH2 0x019f
00000213: JUMP
00000214: JUMPDEST
00000215: CALLVALUE
00000216: DUP1
00000217: ISZERO
00000218: PUSH2 0x0220
0000021b: JUMPI
0000021c: PUSH1 0x00
0000021e: DUP1
0000021f: REVERT
00000220: JUMPDEST
00000221: POP
00000222: PUSH2 0x0234
00000225: PUSH2 0x022f
00000228: CALLDATASIZE
00000229: PUSH1 0x04
0000022b: PUSH2 0x17b0
0000022e: JUMP
0000022f: JUMPDEST
00000230: PUSH2 0x04cd
00000233: JUMP
00000234: JUMPDEST
00000235: STOP
00000236: JUMPDEST
00000237: CALLVALUE
00000238: DUP1
00000239: ISZERO
0000023a: PUSH2 0x0242
0000023d: JUMPI
0000023e: PUSH1 0x00
00000240: DUP1
00000241: REVERT
00000242: JUMPDEST
00000243: POP
00000244: PUSH2 0x0234
00000247: PUSH2 0x0251
0000024a: CALLDATASIZE
0000024b: PUSH1 0x04
0000024d: PUSH2 0x178c
00000250: JUMP
00000251: JUMPDEST
00000252: PUSH2 0x07d3
00000255: JUMP
00000256: JUMPDEST
00000257: CALLVALUE
00000258: DUP1
00000259: ISZERO
0000025a: PUSH2 0x0262
0000025d: JUMPI
0000025e: PUSH1 0x00
00000260: DUP1
00000261: REVERT
00000262: JUMPDEST
00000263: POP
00000264: PUSH2 0x0195
00000267: PUSH1 0x0a
00000269: SLOAD
0000026a: DUP2
0000026b: JUMP
0000026c: JUMPDEST
0000026d: CALLVALUE
0000026e: DUP1
0000026f: ISZERO
00000270: PUSH2 0x0278
00000273: JUMPI
00000274: PUSH1 0x00
00000276: DUP1
00000277: REVERT
00000278: JUMPDEST
00000279: POP
0000027a: PUSH2 0x0195
0000027d: PUSH2 0x0287
00000280: CALLDATASIZE
00000281: PUSH1 0x04
00000283: PUSH2 0x17ee
00000286: JUMP
00000287: JUMPDEST
00000288: PUSH2 0x08ff
0000028b: JUMP
0000028c: JUMPDEST
0000028d: CALLVALUE
0000028e: DUP1
0000028f: ISZERO
00000290: PUSH2 0x0298
00000293: JUMPI
00000294: PUSH1 0x00
00000296: DUP1
00000297: REVERT
00000298: JUMPDEST
00000299: POP
0000029a: PUSH2 0x02ac
0000029d: PUSH2 0x02a7
000002a0: CALLDATASIZE
000002a1: PUSH1 0x04
000002a3: PUSH2 0x181a
000002a6: JUMP
000002a7: JUMPDEST
000002a8: PUSH2 0x0960
000002ab: JUMP
000002ac: JUMPDEST
000002ad: PUSH1 0x40
000002af: DUP1
000002b0: MLOAD
000002b1: SWAP5
000002b2: DUP6
000002b3: MSTORE
000002b4: PUSH1 0x20
000002b6: DUP6
000002b7: ADD
000002b8: SWAP4
000002b9: SWAP1
000002ba: SWAP4
000002bb: MSTORE
000002bc: SWAP2
000002bd: DUP4
000002be: ADD
000002bf: MSTORE
000002c0: PUSH1 0x60
000002c2: DUP3
000002c3: ADD
000002c4: MSTORE
000002c5: PUSH1 0x80
000002c7: ADD
000002c8: PUSH2 0x019f
000002cb: JUMP
000002cc: JUMPDEST
000002cd: PUSH2 0x0195
000002d0: PUSH2 0x02da
000002d3: CALLDATASIZE
000002d4: PUSH1 0x04
000002d6: PUSH2 0x184c
000002d9: JUMP
000002da: JUMPDEST
000002db: PUSH2 0x0af6
000002de: JUMP
000002df: JUMPDEST
000002e0: CALLVALUE
000002e1: DUP1
000002e2: ISZERO
000002e3: PUSH2 0x02eb
000002e6: JUMPI
000002e7: PUSH1 0x00
000002e9: DUP1
000002ea: REVERT
000002eb: JUMPDEST
000002ec: POP
000002ed: PUSH2 0x0234
000002f0: PUSH2 0x02fa
000002f3: CALLDATASIZE
000002f4: PUSH1 0x04
000002f6: PUSH2 0x178c
000002f9: JUMP
000002fa: JUMPDEST
000002fb: PUSH2 0x0b0c
000002fe: JUMP
000002ff: JUMPDEST
00000300: CALLVALUE
00000301: DUP1
00000302: ISZERO
00000303: PUSH2 0x030b
00000306: JUMPI
00000307: PUSH1 0x00
00000309: DUP1
0000030a: REVERT
0000030b: JUMPDEST
0000030c: POP
0000030d: PUSH2 0x031f
00000310: PUSH2 0x031a
00000313: CALLDATASIZE
00000314: PUSH1 0x04
00000316: PUSH2 0x175e
00000319: JUMP
0000031a: JUMPDEST
0000031b: PUSH2 0x0c31
0000031e: JUMP
0000031f: JUMPDEST
00000320: PUSH1 0x40
00000322: MLOAD
00000323: PUSH1 0x01
00000325: PUSH1 0x01
00000327: PUSH1 0xa0
00000329: SHL
0000032a: SUB
0000032b: SWAP1
0000032c: SWAP2
0000032d: AND
0000032e: DUP2
0000032f: MSTORE
00000330: PUSH1 0x20
00000332: ADD
00000333: PUSH2 0x019f
00000336: JUMP
00000337: JUMPDEST
00000338: CALLVALUE
00000339: DUP1
0000033a: ISZERO
0000033b: PUSH2 0x0343
0000033e: JUMPI
0000033f: PUSH1 0x00
00000341: DUP1
00000342: REVERT
00000343: JUMPDEST
00000344: POP
00000345: PUSH2 0x0357
00000348: PUSH2 0x0352
0000034b: CALLDATASIZE
0000034c: PUSH1 0x04
0000034e: PUSH2 0x1893
00000351: JUMP
00000352: JUMPDEST
00000353: PUSH2 0x0c5b
00000356: JUMP
00000357: JUMPDEST
00000358: PUSH1 0x40
0000035a: MLOAD
0000035b: PUSH2 0x019f
0000035e: SWAP3
0000035f: SWAP2
00000360: SWAP1
00000361: PUSH2 0x1940
00000364: JUMP
00000365: JUMPDEST
00000366: CALLVALUE
00000367: DUP1
00000368: ISZERO
00000369: PUSH2 0x0371
0000036c: JUMPI
0000036d: PUSH1 0x00
0000036f: DUP1
00000370: REVERT
00000371: JUMPDEST
00000372: POP
00000373: PUSH2 0x031f
00000376: PUSH2 0x0df1
00000379: JUMP
0000037a: JUMPDEST
0000037b: CALLVALUE
0000037c: DUP1
0000037d: ISZERO
0000037e: PUSH2 0x0386
00000381: JUMPI
00000382: PUSH1 0x00
00000384: DUP1
00000385: REVERT
00000386: JUMPDEST
00000387: POP
00000388: PUSH2 0x0204
0000038b: PUSH2 0x0395
0000038e: CALLDATASIZE
0000038f: PUSH1 0x04
00000391: PUSH2 0x178c
00000394: JUMP
00000395: JUMPDEST
00000396: PUSH1 0x01
00000398: PUSH1 0x01
0000039a: PUSH1 0xa0
0000039c: SHL
0000039d: SUB
0000039e: AND
0000039f: PUSH1 0x00
000003a1: SWAP1
000003a2: DUP2
000003a3: MSTORE
000003a4: PUSH1 0x01
000003a6: PUSH1 0x20
000003a8: DUP2
000003a9: SWAP1
000003aa: MSTORE
000003ab: PUSH1 0x40
000003ad: SWAP1
000003ae: SWAP2
000003af: KECCAK256
000003b0: ADD
000003b1: SLOAD
000003b2: PUSH1 0xff
000003b4: AND
000003b5: SWAP1
000003b6: JUMP
000003b7: JUMPDEST
000003b8: CALLVALUE
000003b9: DUP1
000003ba: ISZERO
000003bb: PUSH2 0x03c3
000003be: JUMPI
000003bf: PUSH1 0x00
000003c1: DUP1
000003c2: REVERT
000003c3: JUMPDEST
000003c4: POP
000003c5: PUSH2 0x0234
000003c8: PUSH2 0x03d2
000003cb: CALLDATASIZE
000003cc: PUSH1 0x04
000003ce: PUSH2 0x178c
000003d1: JUMP
000003d2: JUMPDEST
000003d3: PUSH2 0x0e34
000003d6: JUMP
000003d7: JUMPDEST
000003d8: CALLVALUE
000003d9: DUP1
000003da: ISZERO
000003db: PUSH2 0x03e3
000003de: JUMPI
000003df: PUSH1 0x00
000003e1: DUP1
000003e2: REVERT
000003e3: JUMPDEST
000003e4: POP
000003e5: PUSH1 0x08
000003e7: SLOAD
000003e8: PUSH2 0x031f
000003eb: SWAP1
000003ec: PUSH1 0x01
000003ee: PUSH1 0x01
000003f0: PUSH1 0xa0
000003f2: SHL
000003f3: SUB
000003f4: AND
000003f5: DUP2
000003f6: JUMP
000003f7: JUMPDEST
000003f8: CALLVALUE
000003f9: DUP1
000003fa: ISZERO
000003fb: PUSH2 0x0403
000003fe: JUMPI
000003ff: PUSH1 0x00
00000401: DUP1
00000402: REVERT
00000403: JUMPDEST
00000404: POP
00000405: PUSH2 0x0234
00000408: PUSH2 0x0412
0000040b: CALLDATASIZE
0000040c: PUSH1 0x04
0000040e: PUSH2 0x17b0
00000411: JUMP
00000412: JUMPDEST
00000413: PUSH2 0x1058
00000416: JUMP
00000417: JUMPDEST
00000418: CALLVALUE
00000419: DUP1
0000041a: ISZERO
0000041b: PUSH2 0x0423
0000041e: JUMPI
0000041f: PUSH1 0x00
00000421: DUP1
00000422: REVERT
00000423: JUMPDEST
00000424: POP
00000425: PUSH2 0x0195
00000428: PUSH2 0x0432
0000042b: CALLDATASIZE
0000042c: PUSH1 0x04
0000042e: PUSH2 0x175e
00000431: JUMP
00000432: JUMPDEST
00000433: PUSH2 0x13c6
00000436: JUMP
00000437: JUMPDEST
00000438: CALLVALUE
00000439: DUP1
0000043a: ISZERO
0000043b: PUSH2 0x0443
0000043e: JUMPI
0000043f: PUSH1 0x00
00000441: DUP1
00000442: REVERT
00000443: JUMPDEST
00000444: POP
00000445: PUSH2 0x031f
00000448: PUSH2 0x0452
0000044b: CALLDATASIZE
0000044c: PUSH1 0x04
0000044e: PUSH2 0x175e
00000451: JUMP
00000452: JUMPDEST
00000453: PUSH2 0x13d6
00000456: JUMP
00000457: JUMPDEST
00000458: CALLVALUE
00000459: DUP1
0000045a: ISZERO
0000045b: PUSH2 0x0463
0000045e: JUMPI
0000045f: PUSH1 0x00
00000461: DUP1
00000462: REVERT
00000463: JUMPDEST
00000464: POP
00000465: PUSH1 0x06
00000467: SLOAD
00000468: PUSH2 0x0195
0000046b: JUMP
0000046c: JUMPDEST
0000046d: CALLVALUE
0000046e: DUP1
0000046f: ISZERO
00000470: PUSH2 0x0478
00000473: JUMPI
00000474: PUSH1 0x00
00000476: DUP1
00000477: REVERT
00000478: JUMPDEST
00000479: POP
0000047a: PUSH1 0x09
0000047c: SLOAD
0000047d: PUSH2 0x031f
00000480: SWAP1
00000481: PUSH1 0x01
00000483: PUSH1 0x01
00000485: PUSH1 0xa0
00000487: SHL
00000488: SUB
00000489: AND
0000048a: DUP2
0000048b: JUMP
0000048c: JUMPDEST
0000048d: CALLVALUE
0000048e: DUP1
0000048f: ISZERO
00000490: PUSH2 0x0498
00000493: JUMPI
00000494: PUSH1 0x00
00000496: DUP1
00000497: REVERT
00000498: JUMPDEST
00000499: POP
0000049a: PUSH2 0x0234
0000049d: PUSH2 0x04a7
000004a0: CALLDATASIZE
000004a1: PUSH1 0x04
000004a3: PUSH2 0x175e
000004a6: JUMP
000004a7: JUMPDEST
000004a8: PUSH2 0x13e6
000004ab: JUMP
000004ac: JUMPDEST
000004ad: PUSH1 0x07
000004af: DUP2
000004b0: DUP2
000004b1: SLOAD
000004b2: DUP2
000004b3: LT
000004b4: PUSH2 0x04bc
000004b7: JUMPI
000004b8: PUSH1 0x00
000004ba: DUP1
000004bb: REVERT
000004bc: JUMPDEST
000004bd: PUSH1 0x00
000004bf: SWAP2
000004c0: DUP3
000004c1: MSTORE
000004c2: PUSH1 0x20
000004c4: SWAP1
000004c5: SWAP2
000004c6: KECCAK256
000004c7: ADD
000004c8: SLOAD
000004c9: SWAP1
000004ca: POP
000004cb: DUP2
000004cc: JUMP
000004cd: JUMPDEST
000004ce: PUSH1 0x08
000004d0: SLOAD
000004d1: PUSH1 0x01
000004d3: PUSH1 0x01
000004d5: PUSH1 0xa0
000004d7: SHL
000004d8: SUB
000004d9: AND
000004da: CALLER
000004db: EQ
000004dc: PUSH2 0x059c
000004df: JUMPI
000004e0: PUSH1 0x08
000004e2: SLOAD
000004e3: PUSH1 0x40
000004e5: DUP1
000004e6: MLOAD
000004e7: PUSH4 0x8da5cb5b
000004ec: PUSH1 0xe0
000004ee: SHL
000004ef: DUP2
000004f0: MSTORE
000004f1: SWAP1
000004f2: MLOAD
000004f3: PUSH1 0x00
000004f5: SWAP3
000004f6: PUSH1 0x01
000004f8: PUSH1 0x01
000004fa: PUSH1 0xa0
000004fc: SHL
000004fd: SUB
000004fe: AND
000004ff: SWAP2
00000500: PUSH4 0x8da5cb5b
00000505: SWAP2
00000506: PUSH1 0x04
00000508: DUP1
00000509: DUP4
0000050a: ADD
0000050b: SWAP3
0000050c: PUSH1 0x20
0000050e: SWAP3
0000050f: SWAP2
00000510: SWAP1
00000511: DUP3
00000512: SWAP1
00000513: SUB
00000514: ADD
00000515: DUP2
00000516: DUP7
00000517: GAS
00000518: STATICCALL
00000519: ISZERO
0000051a: DUP1
0000051b: ISZERO
0000051c: PUSH2 0x0529
0000051f: JUMPI
00000520: RETURNDATASIZE
00000521: PUSH1 0x00
00000523: DUP1
00000524: RETURNDATACOPY
00000525: RETURNDATASIZE
00000526: PUSH1 0x00
00000528: REVERT
00000529: JUMPDEST
0000052a: POP
0000052b: POP
0000052c: POP
0000052d: POP
0000052e: PUSH1 0x40
00000530: MLOAD
00000531: RETURNDATASIZE
00000532: PUSH1 0x1f
00000534: NOT
00000535: PUSH1 0x1f
00000537: DUP3
00000538: ADD
00000539: AND
0000053a: DUP3
0000053b: ADD
0000053c: DUP1
0000053d: PUSH1 0x40
0000053f: MSTORE
00000540: POP
00000541: DUP2
00000542: ADD
00000543: SWAP1
00000544: PUSH2 0x054d
00000547: SWAP2
00000548: SWAP1
00000549: PUSH2 0x197c
0000054c: JUMP
0000054d: JUMPDEST
0000054e: SWAP1
0000054f: POP
00000550: CALLER
00000551: PUSH1 0x01
00000553: PUSH1 0x01
00000555: PUSH1 0xa0
00000557: SHL
00000558: SUB
00000559: DUP3
0000055a: AND
0000055b: EQ
0000055c: PUSH2 0x059a
0000055f: JUMPI
00000560: PUSH1 0x08
00000562: SLOAD
00000563: PUSH1 0x40
00000565: MLOAD
00000566: PUSH4 0x07396007
0000056b: PUSH1 0xe0
0000056d: SHL
0000056e: DUP2
0000056f: MSTORE
00000570: CALLER
00000571: PUSH1 0x04
00000573: DUP3
00000574: ADD
00000575: MSTORE
00000576: PUSH1 0x01
00000578: PUSH1 0x01
0000057a: PUSH1 0xa0
0000057c: SHL
0000057d: SUB
0000057e: SWAP2
0000057f: DUP3
00000580: AND
00000581: PUSH1 0x24
00000583: DUP3
00000584: ADD
00000585: MSTORE
00000586: SWAP1
00000587: DUP3
00000588: AND
00000589: PUSH1 0x44
0000058b: DUP3
0000058c: ADD
0000058d: MSTORE
0000058e: PUSH1 0x64
00000590: ADD
00000591: JUMPDEST
00000592: PUSH1 0x40
00000594: MLOAD
00000595: DUP1
00000596: SWAP2
00000597: SUB
00000598: SWAP1
00000599: REVERT
0000059a: JUMPDEST
0000059b: POP
0000059c: JUMPDEST
0000059d: PUSH1 0x01
0000059f: PUSH1 0x01
000005a1: PUSH1 0xa0
000005a3: SHL
000005a4: SUB
000005a5: DUP3
000005a6: AND
000005a7: PUSH1 0x00
000005a9: DUP2
000005aa: DUP2
000005ab: MSTORE
000005ac: PUSH1 0x01
000005ae: PUSH1 0x20
000005b0: DUP2
000005b1: DUP2
000005b2: MSTORE
000005b3: PUSH1 0x40
000005b5: SWAP3
000005b6: DUP4
000005b7: SWAP1
000005b8: KECCAK256
000005b9: SWAP2
000005ba: DUP3
000005bb: ADD
000005bc: SLOAD
000005bd: SWAP3
000005be: MLOAD
000005bf: DUP6
000005c0: ISZERO
000005c1: ISZERO
000005c2: DUP2
000005c3: MSTORE
000005c4: SWAP2
000005c5: SWAP4
000005c6: PUSH1 0xff
000005c8: SWAP1
000005c9: SWAP4
000005ca: AND
000005cb: SWAP3
000005cc: SWAP2
000005cd: PUSH32 0x6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521
000005ee: SWAP2
000005ef: ADD
000005f0: PUSH1 0x40
000005f2: MLOAD
000005f3: DUP1
000005f4: SWAP2
000005f5: SUB
000005f6: SWAP1
000005f7: LOG2
000005f8: DUP3
000005f9: ISZERO
000005fa: ISZERO
000005fb: DUP2
000005fc: ISZERO
000005fd: ISZERO
000005fe: SUB
000005ff: PUSH2 0x0608
00000602: JUMPI
00000603: POP
00000604: POP
00000605: POP
00000606: POP
00000607: JUMP
00000608: JUMPDEST
00000609: DUP3
0000060a: ISZERO
0000060b: PUSH2 0x06a3
0000060e: JUMPI
0000060f: PUSH1 0x40
00000611: DUP1
00000612: MLOAD
00000613: DUP1
00000614: DUP3
00000615: ADD
00000616: DUP3
00000617: MSTORE
00000618: PUSH1 0x03
0000061a: DUP1
0000061b: SLOAD
0000061c: DUP3
0000061d: MSTORE
0000061e: PUSH1 0x01
00000620: PUSH1 0x20
00000622: DUP1
00000623: DUP5
00000624: ADD
00000625: DUP3
00000626: DUP2
00000627: MSTORE
00000628: PUSH1 0x01
0000062a: PUSH1 0x01
0000062c: PUSH1 0xa0
0000062e: SHL
0000062f: SUB
00000630: DUP11
00000631: AND
00000632: PUSH1 0x00
00000634: DUP2
00000635: DUP2
00000636: MSTORE
00000637: SWAP3
00000638: DUP5
00000639: SWAP1
0000063a: MSTORE
0000063b: SWAP6
0000063c: DUP3
0000063d: KECCAK256
0000063e: SWAP5
0000063f: MLOAD
00000640: DUP6
00000641: SSTORE
00000642: MLOAD
00000643: SWAP4
00000644: DUP3
00000645: ADD
00000646: DUP1
00000647: SLOAD
00000648: PUSH1 0xff
0000064a: NOT
0000064b: AND
0000064c: SWAP5
0000064d: ISZERO
0000064e: ISZERO
0000064f: SWAP5
00000650: SWAP1
00000651: SWAP5
00000652: OR
00000653: SWAP1
00000654: SWAP4
00000655: SSTORE
00000656: DUP2
00000657: SLOAD
00000658: SWAP1
00000659: DUP2
0000065a: ADD
0000065b: DUP3
0000065c: SSTORE
0000065d: SWAP2
0000065e: MSTORE
0000065f: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b
00000680: ADD
00000681: DUP1
00000682: SLOAD
00000683: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000698: NOT
00000699: AND
0000069a: SWAP1
0000069b: SWAP2
0000069c: OR
0000069d: SWAP1
0000069e: SSTORE
0000069f: PUSH2 0x07cc
000006a2: JUMP
000006a3: JUMPDEST
000006a4: PUSH1 0x03
000006a6: DUP1
000006a7: SLOAD
000006a8: PUSH2 0x06b3
000006ab: SWAP1
000006ac: PUSH1 0x01
000006ae: SWAP1
000006af: PUSH2 0x1999
000006b2: JUMP
000006b3: JUMPDEST
000006b4: DUP2
000006b5: SLOAD
000006b6: DUP2
000006b7: LT
000006b8: PUSH2 0x06c3
000006bb: JUMPI
000006bc: PUSH2 0x06c3
000006bf: PUSH2 0x19ba
000006c2: JUMP
000006c3: JUMPDEST
000006c4: PUSH1 0x00
000006c6: SWAP2
000006c7: DUP3
000006c8: MSTORE
000006c9: PUSH1 0x20
000006cb: SWAP1
000006cc: SWAP2
000006cd: KECCAK256
000006ce: ADD
000006cf: SLOAD
000006d0: DUP3
000006d1: SLOAD
000006d2: PUSH1 0x03
000006d4: DUP1
000006d5: SLOAD
000006d6: PUSH1 0x01
000006d8: PUSH1 0x01
000006da: PUSH1 0xa0
000006dc: SHL
000006dd: SUB
000006de: SWAP1
000006df: SWAP4
000006e0: AND
000006e1: SWAP3
000006e2: SWAP1
000006e3: SWAP2
000006e4: SWAP1
000006e5: DUP2
000006e6: LT
000006e7: PUSH2 0x06f2
000006ea: JUMPI
000006eb: PUSH2 0x06f2
000006ee: PUSH2 0x19ba
000006f1: JUMP
000006f2: JUMPDEST
000006f3: SWAP1
000006f4: PUSH1 0x00
000006f6: MSTORE
000006f7: PUSH1 0x20
000006f9: PUSH1 0x00
000006fb: KECCAK256
000006fc: ADD
000006fd: PUSH1 0x00
000006ff: PUSH2 0x0100
00000702: EXP
00000703: DUP2
00000704: SLOAD
00000705: DUP2
00000706: PUSH1 0x01
00000708: PUSH1 0x01
0000070a: PUSH1 0xa0
0000070c: SHL
0000070d: SUB
0000070e: MUL
0000070f: NOT
00000710: AND
00000711: SWAP1
00000712: DUP4
00000713: PUSH1 0x01
00000715: PUSH1 0x01
00000717: PUSH1 0xa0
00000719: SHL
0000071a: SUB
0000071b: AND
0000071c: MUL
0000071d: OR
0000071e: SWAP1
0000071f: SSTORE
00000720: POP
00000721: DUP2
00000722: PUSH1 0x00
00000724: ADD
00000725: SLOAD
00000726: PUSH1 0x01
00000728: PUSH1 0x00
0000072a: PUSH1 0x03
0000072c: DUP6
0000072d: PUSH1 0x00
0000072f: ADD
00000730: SLOAD
00000731: DUP2
00000732: SLOAD
00000733: DUP2
00000734: LT
00000735: PUSH2 0x0740
00000738: JUMPI
00000739: PUSH2 0x0740
0000073c: PUSH2 0x19ba
0000073f: JUMP
00000740: JUMPDEST
00000741: PUSH1 0x00
00000743: SWAP2
00000744: DUP3
00000745: MSTORE
00000746: PUSH1 0x20
00000748: DUP1
00000749: DUP4
0000074a: KECCAK256
0000074b: SWAP1
0000074c: SWAP2
0000074d: ADD
0000074e: SLOAD
0000074f: PUSH1 0x01
00000751: PUSH1 0x01
00000753: PUSH1 0xa0
00000755: SHL
00000756: SUB
00000757: AND
00000758: DUP4
00000759: MSTORE
0000075a: DUP3
0000075b: ADD
0000075c: SWAP3
0000075d: SWAP1
0000075e: SWAP3
0000075f: MSTORE
00000760: PUSH1 0x40
00000762: ADD
00000763: SWAP1
00000764: KECCAK256
00000765: SSTORE
00000766: PUSH1 0x03
00000768: DUP1
00000769: SLOAD
0000076a: DUP1
0000076b: PUSH2 0x0776
0000076e: JUMPI
0000076f: PUSH2 0x0776
00000772: PUSH2 0x19d0
00000775: JUMP
00000776: JUMPDEST
00000777: PUSH1 0x00
00000779: DUP3
0000077a: DUP2
0000077b: MSTORE
0000077c: PUSH1 0x20
0000077e: DUP1
0000077f: DUP3
00000780: KECCAK256
00000781: DUP4
00000782: ADD
00000783: PUSH1 0x00
00000785: NOT
00000786: SWAP1
00000787: DUP2
00000788: ADD
00000789: DUP1
0000078a: SLOAD
0000078b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007a0: NOT
000007a1: AND
000007a2: SWAP1
000007a3: SSTORE
000007a4: SWAP1
000007a5: SWAP3
000007a6: ADD
000007a7: SWAP1
000007a8: SWAP3
000007a9: SSTORE
000007aa: PUSH1 0x01
000007ac: PUSH1 0x01
000007ae: PUSH1 0xa0
000007b0: SHL
000007b1: SUB
000007b2: DUP7
000007b3: AND
000007b4: DUP3
000007b5: MSTORE
000007b6: PUSH1 0x01
000007b8: SWAP1
000007b9: DUP2
000007ba: SWAP1
000007bb: MSTORE
000007bc: PUSH1 0x40
000007be: DUP3
000007bf: KECCAK256
000007c0: SWAP2
000007c1: DUP3
000007c2: SSTORE
000007c3: ADD
000007c4: DUP1
000007c5: SLOAD
000007c6: PUSH1 0xff
000007c8: NOT
000007c9: AND
000007ca: SWAP1
000007cb: SSTORE
000007cc: JUMPDEST
000007cd: POP
000007ce: POP
000007cf: JUMPDEST
000007d0: POP
000007d1: POP
000007d2: JUMP
000007d3: JUMPDEST
000007d4: PUSH1 0x08
000007d6: SLOAD
000007d7: PUSH1 0x01
000007d9: PUSH1 0x01
000007db: PUSH1 0xa0
000007dd: SHL
000007de: SUB
000007df: AND
000007e0: CALLER
000007e1: EQ
000007e2: PUSH2 0x089d
000007e5: JUMPI
000007e6: PUSH1 0x08
000007e8: SLOAD
000007e9: PUSH1 0x40
000007eb: DUP1
000007ec: MLOAD
000007ed: PUSH4 0x8da5cb5b
000007f2: PUSH1 0xe0
000007f4: SHL
000007f5: DUP2
000007f6: MSTORE
000007f7: SWAP1
000007f8: MLOAD
000007f9: PUSH1 0x00
000007fb: SWAP3
000007fc: PUSH1 0x01
000007fe: PUSH1 0x01
00000800: PUSH1 0xa0
00000802: SHL
00000803: SUB
00000804: AND
00000805: SWAP2
00000806: PUSH4 0x8da5cb5b
0000080b: SWAP2
0000080c: PUSH1 0x04
0000080e: DUP1
0000080f: DUP4
00000810: ADD
00000811: SWAP3
00000812: PUSH1 0x20
00000814: SWAP3
00000815: SWAP2
00000816: SWAP1
00000817: DUP3
00000818: SWAP1
00000819: SUB
0000081a: ADD
0000081b: DUP2
0000081c: DUP7
0000081d: GAS
0000081e: STATICCALL
0000081f: ISZERO
00000820: DUP1
00000821: ISZERO
00000822: PUSH2 0x082f
00000825: JUMPI
00000826: RETURNDATASIZE
00000827: PUSH1 0x00
00000829: DUP1
0000082a: RETURNDATACOPY
0000082b: RETURNDATASIZE
0000082c: PUSH1 0x00
0000082e: REVERT
0000082f: JUMPDEST
00000830: POP
00000831: POP
00000832: POP
00000833: POP
00000834: PUSH1 0x40
00000836: MLOAD
00000837: RETURNDATASIZE
00000838: PUSH1 0x1f
0000083a: NOT
0000083b: PUSH1 0x1f
0000083d: DUP3
0000083e: ADD
0000083f: AND
00000840: DUP3
00000841: ADD
00000842: DUP1
00000843: PUSH1 0x40
00000845: MSTORE
00000846: POP
00000847: DUP2
00000848: ADD
00000849: SWAP1
0000084a: PUSH2 0x0853
0000084d: SWAP2
0000084e: SWAP1
0000084f: PUSH2 0x197c
00000852: JUMP
00000853: JUMPDEST
00000854: SWAP1
00000855: POP
00000856: CALLER
00000857: PUSH1 0x01
00000859: PUSH1 0x01
0000085b: PUSH1 0xa0
0000085d: SHL
0000085e: SUB
0000085f: DUP3
00000860: AND
00000861: EQ
00000862: PUSH2 0x089b
00000865: JUMPI
00000866: PUSH1 0x08
00000868: SLOAD
00000869: PUSH1 0x40
0000086b: MLOAD
0000086c: PUSH4 0x07396007
00000871: PUSH1 0xe0
00000873: SHL
00000874: DUP2
00000875: MSTORE
00000876: CALLER
00000877: PUSH1 0x04
00000879: DUP3
0000087a: ADD
0000087b: MSTORE
0000087c: PUSH1 0x01
0000087e: PUSH1 0x01
00000880: PUSH1 0xa0
00000882: SHL
00000883: SUB
00000884: SWAP2
00000885: DUP3
00000886: AND
00000887: PUSH1 0x24
00000889: DUP3
0000088a: ADD
0000088b: MSTORE
0000088c: SWAP1
0000088d: DUP3
0000088e: AND
0000088f: PUSH1 0x44
00000891: DUP3
00000892: ADD
00000893: MSTORE
00000894: PUSH1 0x64
00000896: ADD
00000897: PUSH2 0x0591
0000089a: JUMP
0000089b: JUMPDEST
0000089c: POP
0000089d: JUMPDEST
0000089e: PUSH1 0x09
000008a0: DUP1
000008a1: SLOAD
000008a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008b7: NOT
000008b8: AND
000008b9: PUSH1 0x01
000008bb: PUSH1 0x01
000008bd: PUSH1 0xa0
000008bf: SHL
000008c0: SUB
000008c1: DUP4
000008c2: AND
000008c3: SWAP1
000008c4: DUP2
000008c5: OR
000008c6: SWAP1
000008c7: SWAP2
000008c8: SSTORE
000008c9: PUSH1 0x40
000008cb: MLOAD
000008cc: SWAP1
000008cd: DUP2
000008ce: MSTORE
000008cf: PUSH32 0x8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a
000008f0: SWAP1
000008f1: PUSH1 0x20
000008f3: ADD
000008f4: JUMPDEST
000008f5: PUSH1 0x40
000008f7: MLOAD
000008f8: DUP1
000008f9: SWAP2
000008fa: SUB
000008fb: SWAP1
000008fc: LOG1
000008fd: POP
000008fe: JUMP
000008ff: JUMPDEST
00000900: PUSH1 0x09
00000902: SLOAD
00000903: PUSH1 0x00
00000905: SWAP1
00000906: PUSH1 0x01
00000908: PUSH1 0x01
0000090a: PUSH1 0xa0
0000090c: SHL
0000090d: SUB
0000090e: AND
0000090f: CALLER
00000910: EQ
00000911: PUSH2 0x0948
00000914: JUMPI
00000915: PUSH1 0x40
00000917: MLOAD
00000918: PUSH32 0x88f84f0400000000000000000000000000000000000000000000000000000000
00000939: DUP2
0000093a: MSTORE
0000093b: CALLER
0000093c: PUSH1 0x04
0000093e: DUP3
0000093f: ADD
00000940: MSTORE
00000941: PUSH1 0x24
00000943: ADD
00000944: PUSH2 0x0591
00000947: JUMP
00000948: JUMPDEST
00000949: PUSH2 0x0957
0000094c: PUSH1 0x0d
0000094e: DUP5
0000094f: NUMBER
00000950: TIMESTAMP
00000951: BASEFEE
00000952: DUP8
00000953: PUSH2 0x14b5
00000956: JUMP
00000957: JUMPDEST
00000958: SWAP1
00000959: POP
0000095a: JUMPDEST
0000095b: SWAP3
0000095c: SWAP2
0000095d: POP
0000095e: POP
0000095f: JUMP
00000960: JUMPDEST
00000961: PUSH1 0x09
00000963: SLOAD
00000964: PUSH1 0x00
00000966: SWAP1
00000967: DUP2
00000968: SWAP1
00000969: DUP2
0000096a: SWAP1
0000096b: DUP2
0000096c: SWAP1
0000096d: PUSH1 0x01
0000096f: PUSH1 0x01
00000971: PUSH1 0xa0
00000973: SHL
00000974: SUB
00000975: AND
00000976: CALLER
00000977: EQ
00000978: PUSH2 0x09af
0000097b: JUMPI
0000097c: PUSH1 0x40
0000097e: MLOAD
0000097f: PUSH32 0x88f84f0400000000000000000000000000000000000000000000000000000000
000009a0: DUP2
000009a1: MSTORE
000009a2: CALLER
000009a3: PUSH1 0x04
000009a5: DUP3
000009a6: ADD
000009a7: MSTORE
000009a8: PUSH1 0x24
000009aa: ADD
000009ab: PUSH2 0x0591
000009ae: JUMP
000009af: JUMPDEST
000009b0: DUP6
000009b1: PUSH1 0x0a
000009b3: SLOAD
000009b4: EQ
000009b5: ISZERO
000009b6: DUP1
000009b7: ISZERO
000009b8: PUSH2 0x09c0
000009bb: JUMPI
000009bc: POP
000009bd: DUP6
000009be: ISZERO
000009bf: ISZERO
000009c0: JUMPDEST
000009c1: DUP1
000009c2: ISZERO
000009c3: PUSH2 0x09cd
000009c6: JUMPI
000009c7: POP
000009c8: PUSH1 0x0a
000009ca: SLOAD
000009cb: ISZERO
000009cc: ISZERO
000009cd: JUMPDEST
000009ce: ISZERO
000009cf: PUSH2 0x0a12
000009d2: JUMPI
000009d3: PUSH1 0x0a
000009d5: SLOAD
000009d6: PUSH1 0x40
000009d8: MLOAD
000009d9: PUSH32 0xe2051feb00000000000000000000000000000000000000000000000000000000
000009fa: DUP2
000009fb: MSTORE
000009fc: PUSH1 0x04
000009fe: DUP2
000009ff: ADD
00000a00: SWAP2
00000a01: SWAP1
00000a02: SWAP2
00000a03: MSTORE
00000a04: PUSH1 0x24
00000a06: DUP2
00000a07: ADD
00000a08: DUP8
00000a09: SWAP1
00000a0a: MSTORE
00000a0b: PUSH1 0x44
00000a0d: ADD
00000a0e: PUSH2 0x0591
00000a11: JUMP
00000a12: JUMPDEST
00000a13: PUSH1 0x0a
00000a15: DUP6
00000a16: SWAP1
00000a17: SSTORE
00000a18: PUSH1 0x07
00000a1a: SLOAD
00000a1b: SWAP4
00000a1c: POP
00000a1d: DUP4
00000a1e: ISZERO
00000a1f: PUSH2 0x0a4d
00000a22: JUMPI
00000a23: PUSH1 0x07
00000a25: PUSH2 0x0a2f
00000a28: PUSH1 0x01
00000a2a: DUP7
00000a2b: PUSH2 0x1999
00000a2e: JUMP
00000a2f: JUMPDEST
00000a30: DUP2
00000a31: SLOAD
00000a32: DUP2
00000a33: LT
00000a34: PUSH2 0x0a3f
00000a37: JUMPI
00000a38: PUSH2 0x0a3f
00000a3b: PUSH2 0x19ba
00000a3e: JUMP
00000a3f: JUMPDEST
00000a40: SWAP1
00000a41: PUSH1 0x00
00000a43: MSTORE
00000a44: PUSH1 0x20
00000a46: PUSH1 0x00
00000a48: KECCAK256
00000a49: ADD
00000a4a: SLOAD
00000a4b: SWAP3
00000a4c: POP
00000a4d: JUMPDEST
00000a4e: DUP7
00000a4f: ISZERO
00000a50: PUSH2 0x0a7e
00000a53: JUMPI
00000a54: PUSH1 0x06
00000a56: PUSH2 0x0a60
00000a59: PUSH1 0x01
00000a5b: DUP10
00000a5c: PUSH2 0x1999
00000a5f: JUMP
00000a60: JUMPDEST
00000a61: DUP2
00000a62: SLOAD
00000a63: DUP2
00000a64: LT
00000a65: PUSH2 0x0a70
00000a68: JUMPI
00000a69: PUSH2 0x0a70
00000a6c: PUSH2 0x19ba
00000a6f: JUMP
00000a70: JUMPDEST
00000a71: SWAP1
00000a72: PUSH1 0x00
00000a74: MSTORE
00000a75: PUSH1 0x20
00000a77: PUSH1 0x00
00000a79: KECCAK256
00000a7a: ADD
00000a7b: SLOAD
00000a7c: SWAP2
00000a7d: POP
00000a7e: JUMPDEST
00000a7f: PUSH1 0x40
00000a81: DUP1
00000a82: MLOAD
00000a83: PUSH1 0x20
00000a85: DUP2
00000a86: ADD
00000a87: DUP6
00000a88: SWAP1
00000a89: MSTORE
00000a8a: SWAP1
00000a8b: DUP2
00000a8c: ADD
00000a8d: DUP10
00000a8e: SWAP1
00000a8f: MSTORE
00000a90: PUSH1 0x60
00000a92: DUP2
00000a93: ADD
00000a94: DUP4
00000a95: SWAP1
00000a96: MSTORE
00000a97: PUSH1 0x80
00000a99: ADD
00000a9a: PUSH1 0x40
00000a9c: DUP1
00000a9d: MLOAD
00000a9e: PUSH1 0x1f
00000aa0: NOT
00000aa1: DUP2
00000aa2: DUP5
00000aa3: SUB
00000aa4: ADD
00000aa5: DUP2
00000aa6: MSTORE
00000aa7: SWAP2
00000aa8: SWAP1
00000aa9: MSTORE
00000aaa: DUP1
00000aab: MLOAD
00000aac: PUSH1 0x20
00000aae: SWAP1
00000aaf: SWAP2
00000ab0: ADD
00000ab1: KECCAK256
00000ab2: PUSH1 0x07
00000ab4: DUP1
00000ab5: SLOAD
00000ab6: PUSH1 0x01
00000ab8: DUP2
00000ab9: ADD
00000aba: DUP3
00000abb: SSTORE
00000abc: PUSH1 0x00
00000abe: SWAP2
00000abf: SWAP1
00000ac0: SWAP2
00000ac1: MSTORE
00000ac2: PUSH32 0xa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688
00000ae3: ADD
00000ae4: DUP2
00000ae5: SWAP1
00000ae6: SSTORE
00000ae7: SWAP4
00000ae8: SWAP9
00000ae9: SWAP3
00000aea: SWAP8
00000aeb: POP
00000aec: SWAP1
00000aed: SWAP6
00000aee: POP
00000aef: SWAP2
00000af0: SWAP4
00000af1: POP
00000af2: SWAP2
00000af3: POP
00000af4: POP
00000af5: JUMP
00000af6: JUMPDEST
00000af7: PUSH1 0x00
00000af9: PUSH2 0x0b04
00000afc: DUP5
00000afd: DUP5
00000afe: DUP5
00000aff: CALLVALUE
00000b00: PUSH2 0x1687
00000b03: JUMP
00000b04: JUMPDEST
00000b05: SWAP5
00000b06: SWAP4
00000b07: POP
00000b08: POP
00000b09: POP
00000b0a: POP
00000b0b: JUMP
00000b0c: JUMPDEST
00000b0d: PUSH1 0x08
00000b0f: SLOAD
00000b10: PUSH1 0x01
00000b12: PUSH1 0x01
00000b14: PUSH1 0xa0
00000b16: SHL
00000b17: SUB
00000b18: AND
00000b19: CALLER
00000b1a: EQ
00000b1b: PUSH2 0x0bd6
00000b1e: JUMPI
00000b1f: PUSH1 0x08
00000b21: SLOAD
00000b22: PUSH1 0x40
00000b24: DUP1
00000b25: MLOAD
00000b26: PUSH4 0x8da5cb5b
00000b2b: PUSH1 0xe0
00000b2d: SHL
00000b2e: DUP2
00000b2f: MSTORE
00000b30: SWAP1
00000b31: MLOAD
00000b32: PUSH1 0x00
00000b34: SWAP3
00000b35: PUSH1 0x01
00000b37: PUSH1 0x01
00000b39: PUSH1 0xa0
00000b3b: SHL
00000b3c: SUB
00000b3d: AND
00000b3e: SWAP2
00000b3f: PUSH4 0x8da5cb5b
00000b44: SWAP2
00000b45: PUSH1 0x04
00000b47: DUP1
00000b48: DUP4
00000b49: ADD
00000b4a: SWAP3
00000b4b: PUSH1 0x20
00000b4d: SWAP3
00000b4e: SWAP2
00000b4f: SWAP1
00000b50: DUP3
00000b51: SWAP1
00000b52: SUB
00000b53: ADD
00000b54: DUP2
00000b55: DUP7
00000b56: GAS
00000b57: STATICCALL
00000b58: ISZERO
00000b59: DUP1
00000b5a: ISZERO
00000b5b: PUSH2 0x0b68
00000b5e: JUMPI
00000b5f: RETURNDATASIZE
00000b60: PUSH1 0x00
00000b62: DUP1
00000b63: RETURNDATACOPY
00000b64: RETURNDATASIZE
00000b65: PUSH1 0x00
00000b67: REVERT
00000b68: JUMPDEST
00000b69: POP
00000b6a: POP
00000b6b: POP
00000b6c: POP
00000b6d: PUSH1 0x40
00000b6f: MLOAD
00000b70: RETURNDATASIZE
00000b71: PUSH1 0x1f
00000b73: NOT
00000b74: PUSH1 0x1f
00000b76: DUP3
00000b77: ADD
00000b78: AND
00000b79: DUP3
00000b7a: ADD
00000b7b: DUP1
00000b7c: PUSH1 0x40
00000b7e: MSTORE
00000b7f: POP
00000b80: DUP2
00000b81: ADD
00000b82: SWAP1
00000b83: PUSH2 0x0b8c
00000b86: SWAP2
00000b87: SWAP1
00000b88: PUSH2 0x197c
00000b8b: JUMP
00000b8c: JUMPDEST
00000b8d: SWAP1
00000b8e: POP
00000b8f: CALLER
00000b90: PUSH1 0x01
00000b92: PUSH1 0x01
00000b94: PUSH1 0xa0
00000b96: SHL
00000b97: SUB
00000b98: DUP3
00000b99: AND
00000b9a: EQ
00000b9b: PUSH2 0x0bd4
00000b9e: JUMPI
00000b9f: PUSH1 0x08
00000ba1: SLOAD
00000ba2: PUSH1 0x40
00000ba4: MLOAD
00000ba5: PUSH4 0x07396007
00000baa: PUSH1 0xe0
00000bac: SHL
00000bad: DUP2
00000bae: MSTORE
00000baf: CALLER
00000bb0: PUSH1 0x04
00000bb2: DUP3
00000bb3: ADD
00000bb4: MSTORE
00000bb5: PUSH1 0x01
00000bb7: PUSH1 0x01
00000bb9: PUSH1 0xa0
00000bbb: SHL
00000bbc: SUB
00000bbd: SWAP2
00000bbe: DUP3
00000bbf: AND
00000bc0: PUSH1 0x24
00000bc2: DUP3
00000bc3: ADD
00000bc4: MSTORE
00000bc5: SWAP1
00000bc6: DUP3
00000bc7: AND
00000bc8: PUSH1 0x44
00000bca: DUP3
00000bcb: ADD
00000bcc: MSTORE
00000bcd: PUSH1 0x64
00000bcf: ADD
00000bd0: PUSH2 0x0591
00000bd3: JUMP
00000bd4: JUMPDEST
00000bd5: POP
00000bd6: JUMPDEST
00000bd7: PUSH1 0x08
00000bd9: DUP1
00000bda: SLOAD
00000bdb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bf0: NOT
00000bf1: AND
00000bf2: PUSH1 0x01
00000bf4: PUSH1 0x01
00000bf6: PUSH1 0xa0
00000bf8: SHL
00000bf9: SUB
00000bfa: DUP4
00000bfb: AND
00000bfc: SWAP1
00000bfd: DUP2
00000bfe: OR
00000bff: SWAP1
00000c00: SWAP2
00000c01: SSTORE
00000c02: PUSH1 0x40
00000c04: MLOAD
00000c05: SWAP1
00000c06: DUP2
00000c07: MSTORE
00000c08: PUSH32 0xae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a
00000c29: SWAP1
00000c2a: PUSH1 0x20
00000c2c: ADD
00000c2d: PUSH2 0x08f4
00000c30: JUMP
00000c31: JUMPDEST
00000c32: PUSH1 0x04
00000c34: DUP2
00000c35: DUP2
00000c36: SLOAD
00000c37: DUP2
00000c38: LT
00000c39: PUSH2 0x0c41
00000c3c: JUMPI
00000c3d: PUSH1 0x00
00000c3f: DUP1
00000c40: REVERT
00000c41: JUMPDEST
00000c42: PUSH1 0x00
00000c44: SWAP2
00000c45: DUP3
00000c46: MSTORE
00000c47: PUSH1 0x20
00000c49: SWAP1
00000c4a: SWAP2
00000c4b: KECCAK256
00000c4c: ADD
00000c4d: SLOAD
00000c4e: PUSH1 0x01
00000c50: PUSH1 0x01
00000c52: PUSH1 0xa0
00000c54: SHL
00000c55: SUB
00000c56: AND
00000c57: SWAP1
00000c58: POP
00000c59: DUP2
00000c5a: JUMP
00000c5b: JUMPDEST
00000c5c: CALLER
00000c5d: PUSH1 0x00
00000c5f: SWAP1
00000c60: DUP2
00000c61: MSTORE
00000c62: PUSH1 0x02
00000c64: PUSH1 0x20
00000c66: MSTORE
00000c67: PUSH1 0x40
00000c69: DUP2
00000c6a: KECCAK256
00000c6b: PUSH1 0x01
00000c6d: ADD
00000c6e: SLOAD
00000c6f: PUSH1 0x60
00000c71: SWAP1
00000c72: PUSH1 0xff
00000c74: AND
00000c75: PUSH2 0x0cac
00000c78: JUMPI
00000c79: PUSH1 0x40
00000c7b: MLOAD
00000c7c: PUSH32 0x32ea82ab00000000000000000000000000000000000000000000000000000000
00000c9d: DUP2
00000c9e: MSTORE
00000c9f: CALLER
00000ca0: PUSH1 0x04
00000ca2: DUP3
00000ca3: ADD
00000ca4: MSTORE
00000ca5: PUSH1 0x24
00000ca7: ADD
00000ca8: PUSH2 0x0591
00000cab: JUMP
00000cac: JUMPDEST
00000cad: DUP3
00000cae: ISZERO
00000caf: DUP1
00000cb0: ISZERO
00000cb1: SWAP1
00000cb2: PUSH2 0x0cc3
00000cb5: JUMPI
00000cb6: POP
00000cb7: PUSH1 0x01
00000cb9: PUSH1 0x01
00000cbb: PUSH1 0xa0
00000cbd: SHL
00000cbe: SUB
00000cbf: DUP7
00000cc0: AND
00000cc1: EXTCODESIZE
00000cc2: ISZERO
00000cc3: JUMPDEST
00000cc4: ISZERO
00000cc5: PUSH2 0x0d05
00000cc8: JUMPI
00000cc9: PUSH1 0x40
00000ccb: MLOAD
00000ccc: PUSH32 0xb5cf5b8f00000000000000000000000000000000000000000000000000000000
00000ced: DUP2
00000cee: MSTORE
00000cef: PUSH1 0x01
00000cf1: PUSH1 0x01
00000cf3: PUSH1 0xa0
00000cf5: SHL
00000cf6: SUB
00000cf7: DUP8
00000cf8: AND
00000cf9: PUSH1 0x04
00000cfb: DUP3
00000cfc: ADD
00000cfd: MSTORE
00000cfe: PUSH1 0x24
00000d00: ADD
00000d01: PUSH2 0x0591
00000d04: JUMP
00000d05: JUMPDEST
00000d06: PUSH1 0x05
00000d08: DUP1
00000d09: SLOAD
00000d0a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d1f: NOT
00000d20: DUP2
00000d21: AND
00000d22: CALLER
00000d23: OR
00000d24: SWAP1
00000d25: SWAP2
00000d26: SSTORE
00000d27: PUSH1 0x40
00000d29: DUP1
00000d2a: MLOAD
00000d2b: PUSH1 0x20
00000d2d: PUSH1 0x1f
00000d2f: DUP8
00000d30: ADD
00000d31: DUP2
00000d32: SWAP1
00000d33: DIV
00000d34: DUP2
00000d35: MUL
00000d36: DUP3
00000d37: ADD
00000d38: DUP2
00000d39: ADD
00000d3a: SWAP1
00000d3b: SWAP3
00000d3c: MSTORE
00000d3d: DUP6
00000d3e: DUP2
00000d3f: MSTORE
00000d40: PUSH1 0x01
00000d42: PUSH1 0x01
00000d44: PUSH1 0xa0
00000d46: SHL
00000d47: SUB
00000d48: SWAP1
00000d49: SWAP3
00000d4a: AND
00000d4b: SWAP2
00000d4c: PUSH2 0x0d73
00000d4f: SWAP2
00000d50: DUP10
00000d51: SWAP2
00000d52: DUP10
00000d53: SWAP2
00000d54: DUP10
00000d55: SWAP1
00000d56: DUP10
00000d57: SWAP1
00000d58: DUP2
00000d59: SWAP1
00000d5a: DUP5
00000d5b: ADD
00000d5c: DUP4
00000d5d: DUP3
00000d5e: DUP1
00000d5f: DUP3
00000d60: DUP5
00000d61: CALLDATACOPY
00000d62: PUSH1 0x00
00000d64: SWAP3
00000d65: ADD
00000d66: SWAP2
00000d67: SWAP1
00000d68: SWAP2
00000d69: MSTORE
00000d6a: POP
00000d6b: PUSH2 0x16ef
00000d6e: SWAP3
00000d6f: POP
00000d70: POP
00000d71: POP
00000d72: JUMP
00000d73: JUMPDEST
00000d74: PUSH1 0x05
00000d76: DUP1
00000d77: SLOAD
00000d78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d8d: NOT
00000d8e: AND
00000d8f: PUSH1 0x01
00000d91: PUSH1 0x01
00000d93: PUSH1 0xa0
00000d95: SHL
00000d96: SUB
00000d97: DUP6
00000d98: DUP2
00000d99: AND
00000d9a: SWAP2
00000d9b: SWAP1
00000d9c: SWAP2
00000d9d: OR
00000d9e: SWAP1
00000d9f: SWAP2
00000da0: SSTORE
00000da1: PUSH1 0x40
00000da3: MLOAD
00000da4: SWAP3
00000da5: SWAP6
00000da6: POP
00000da7: SWAP1
00000da8: SWAP4
00000da9: POP
00000daa: DUP9
00000dab: AND
00000dac: SWAP1
00000dad: CALLER
00000dae: SWAP1
00000daf: PUSH32 0x2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d466
00000dd0: SWAP1
00000dd1: PUSH2 0x0ddf
00000dd4: SWAP1
00000dd5: DUP11
00000dd6: SWAP1
00000dd7: DUP11
00000dd8: SWAP1
00000dd9: DUP11
00000dda: SWAP1
00000ddb: PUSH2 0x19e6
00000dde: JUMP
00000ddf: JUMPDEST
00000de0: PUSH1 0x40
00000de2: MLOAD
00000de3: DUP1
00000de4: SWAP2
00000de5: SUB
00000de6: SWAP1
00000de7: LOG3
00000de8: POP
00000de9: SWAP5
00000dea: POP
00000deb: SWAP5
00000dec: SWAP3
00000ded: POP
00000dee: POP
00000def: POP
00000df0: JUMP
00000df1: JUMPDEST
00000df2: PUSH1 0x05
00000df4: SLOAD
00000df5: PUSH1 0x00
00000df7: SWAP1
00000df8: PUSH1 0x01
00000dfa: PUSH1 0x01
00000dfc: PUSH1 0xa0
00000dfe: SHL
00000dff: SUB
00000e00: AND
00000e01: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000001
00000e22: DUP2
00000e23: ADD
00000e24: PUSH2 0x0e2f
00000e27: JUMPI
00000e28: PUSH1 0x00
00000e2a: SWAP2
00000e2b: POP
00000e2c: POP
00000e2d: SWAP1
00000e2e: JUMP
00000e2f: JUMPDEST
00000e30: SWAP2
00000e31: SWAP1
00000e32: POP
00000e33: JUMP
00000e34: JUMPDEST
00000e35: PUSH1 0x00
00000e37: SLOAD
00000e38: PUSH2 0x0100
00000e3b: SWAP1
00000e3c: DIV
00000e3d: PUSH1 0xff
00000e3f: AND
00000e40: ISZERO
00000e41: DUP1
00000e42: DUP1
00000e43: ISZERO
00000e44: PUSH2 0x0e54
00000e47: JUMPI
00000e48: POP
00000e49: PUSH1 0x00
00000e4b: SLOAD
00000e4c: PUSH1 0x01
00000e4e: PUSH1 0xff
00000e50: SWAP1
00000e51: SWAP2
00000e52: AND
00000e53: LT
00000e54: JUMPDEST
00000e55: DUP1
00000e56: PUSH2 0x0e6e
00000e59: JUMPI
00000e5a: POP
00000e5b: ADDRESS
00000e5c: EXTCODESIZE
00000e5d: ISZERO
00000e5e: DUP1
00000e5f: ISZERO
00000e60: PUSH2 0x0e6e
00000e63: JUMPI
00000e64: POP
00000e65: PUSH1 0x00
00000e67: SLOAD
00000e68: PUSH1 0xff
00000e6a: AND
00000e6b: PUSH1 0x01
00000e6d: EQ
00000e6e: JUMPDEST
00000e6f: PUSH2 0x0efa
00000e72: JUMPI
00000e73: PUSH1 0x40
00000e75: MLOAD
00000e76: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e97: DUP2
00000e98: MSTORE
00000e99: PUSH1 0x20
00000e9b: PUSH1 0x04
00000e9d: DUP3
00000e9e: ADD
00000e9f: MSTORE
00000ea0: PUSH1 0x2e
00000ea2: PUSH1 0x24
00000ea4: DUP3
00000ea5: ADD
00000ea6: MSTORE
00000ea7: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00000ec8: PUSH1 0x44
00000eca: DUP3
00000ecb: ADD
00000ecc: MSTORE
00000ecd: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
00000eee: PUSH1 0x64
00000ef0: DUP3
00000ef1: ADD
00000ef2: MSTORE
00000ef3: PUSH1 0x84
00000ef5: ADD
00000ef6: PUSH2 0x0591
00000ef9: JUMP
00000efa: JUMPDEST
00000efb: PUSH1 0x00
00000efd: DUP1
00000efe: SLOAD
00000eff: PUSH1 0xff
00000f01: NOT
00000f02: AND
00000f03: PUSH1 0x01
00000f05: OR
00000f06: SWAP1
00000f07: SSTORE
00000f08: DUP1
00000f09: ISZERO
00000f0a: PUSH2 0x0f1d
00000f0d: JUMPI
00000f0e: PUSH1 0x00
00000f10: DUP1
00000f11: SLOAD
00000f12: PUSH2 0xff00
00000f15: NOT
00000f16: AND
00000f17: PUSH2 0x0100
00000f1a: OR
00000f1b: SWAP1
00000f1c: SSTORE
00000f1d: JUMPDEST
00000f1e: PUSH1 0x01
00000f20: PUSH1 0x01
00000f22: PUSH1 0xa0
00000f24: SHL
00000f25: SUB
00000f26: PUSH32 0x000000000000000000000000677ecf96dbfee1defbde8d2e905a39f73aa27b89
00000f47: AND
00000f48: ADDRESS
00000f49: SUB
00000f4a: PUSH2 0x0fd5
00000f4d: JUMPI
00000f4e: PUSH1 0x40
00000f50: MLOAD
00000f51: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000f72: DUP2
00000f73: MSTORE
00000f74: PUSH1 0x20
00000f76: PUSH1 0x04
00000f78: DUP3
00000f79: ADD
00000f7a: MSTORE
00000f7b: PUSH1 0x2c
00000f7d: PUSH1 0x24
00000f7f: DUP3
00000f80: ADD
00000f81: MSTORE
00000f82: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820
00000fa3: PUSH1 0x44
00000fa5: DUP3
00000fa6: ADD
00000fa7: MSTORE
00000fa8: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000
00000fc9: PUSH1 0x64
00000fcb: DUP3
00000fcc: ADD
00000fcd: MSTORE
00000fce: PUSH1 0x84
00000fd0: ADD
00000fd1: PUSH2 0x0591
00000fd4: JUMP
00000fd5: JUMPDEST
00000fd6: PUSH1 0x05
00000fd8: DUP1
00000fd9: SLOAD
00000fda: PUSH1 0x01
00000fdc: PUSH1 0x01
00000fde: PUSH1 0xa0
00000fe0: SHL
00000fe1: SUB
00000fe2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ff7: NOT
00000ff8: SWAP2
00000ff9: DUP3
00000ffa: AND
00000ffb: DUP2
00000ffc: OR
00000ffd: SWAP1
00000ffe: SWAP3
00000fff: SSTORE
00001000: PUSH1 0x08
00001002: DUP1
00001003: SLOAD
00001004: SWAP1
00001005: SWAP2
00001006: AND
00001007: SWAP2
00001008: DUP5
00001009: AND
0000100a: SWAP2
0000100b: SWAP1
0000100c: SWAP2
0000100d: OR
0000100e: SWAP1
0000100f: SSTORE
00001010: DUP1
00001011: ISZERO
00001012: PUSH2 0x07cf
00001015: JUMPI
00001016: PUSH1 0x00
00001018: DUP1
00001019: SLOAD
0000101a: PUSH2 0xff00
0000101d: NOT
0000101e: AND
0000101f: SWAP1
00001020: SSTORE
00001021: PUSH1 0x40
00001023: MLOAD
00001024: PUSH1 0x01
00001026: DUP2
00001027: MSTORE
00001028: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
00001049: SWAP1
0000104a: PUSH1 0x20
0000104c: ADD
0000104d: PUSH1 0x40
0000104f: MLOAD
00001050: DUP1
00001051: SWAP2
00001052: SUB
00001053: SWAP1
00001054: LOG1
00001055: POP
00001056: POP
00001057: JUMP
00001058: JUMPDEST
00001059: PUSH1 0x08
0000105b: SLOAD
0000105c: PUSH1 0x01
0000105e: PUSH1 0x01
00001060: PUSH1 0xa0
00001062: SHL
00001063: SUB
00001064: AND
00001065: CALLER
00001066: EQ
00001067: PUSH2 0x1122
0000106a: JUMPI
0000106b: PUSH1 0x08
0000106d: SLOAD
0000106e: PUSH1 0x40
00001070: DUP1
00001071: MLOAD
00001072: PUSH4 0x8da5cb5b
00001077: PUSH1 0xe0
00001079: SHL
0000107a: DUP2
0000107b: MSTORE
0000107c: SWAP1
0000107d: MLOAD
0000107e: PUSH1 0x00
00001080: SWAP3
00001081: PUSH1 0x01
00001083: PUSH1 0x01
00001085: PUSH1 0xa0
00001087: SHL
00001088: SUB
00001089: AND
0000108a: SWAP2
0000108b: PUSH4 0x8da5cb5b
00001090: SWAP2
00001091: PUSH1 0x04
00001093: DUP1
00001094: DUP4
00001095: ADD
00001096: SWAP3
00001097: PUSH1 0x20
00001099: SWAP3
0000109a: SWAP2
0000109b: SWAP1
0000109c: DUP3
0000109d: SWAP1
0000109e: SUB
0000109f: ADD
000010a0: DUP2
000010a1: DUP7
000010a2: GAS
000010a3: STATICCALL
000010a4: ISZERO
000010a5: DUP1
000010a6: ISZERO
000010a7: PUSH2 0x10b4
000010aa: JUMPI
000010ab: RETURNDATASIZE
000010ac: PUSH1 0x00
000010ae: DUP1
000010af: RETURNDATACOPY
000010b0: RETURNDATASIZE
000010b1: PUSH1 0x00
000010b3: REVERT
000010b4: JUMPDEST
000010b5: POP
000010b6: POP
000010b7: POP
000010b8: POP
000010b9: PUSH1 0x40
000010bb: MLOAD
000010bc: RETURNDATASIZE
000010bd: PUSH1 0x1f
000010bf: NOT
000010c0: PUSH1 0x1f
000010c2: DUP3
000010c3: ADD
000010c4: AND
000010c5: DUP3
000010c6: ADD
000010c7: DUP1
000010c8: PUSH1 0x40
000010ca: MSTORE
000010cb: POP
000010cc: DUP2
000010cd: ADD
000010ce: SWAP1
000010cf: PUSH2 0x10d8
000010d2: SWAP2
000010d3: SWAP1
000010d4: PUSH2 0x197c
000010d7: JUMP
000010d8: JUMPDEST
000010d9: SWAP1
000010da: POP
000010db: CALLER
000010dc: PUSH1 0x01
000010de: PUSH1 0x01
000010e0: PUSH1 0xa0
000010e2: SHL
000010e3: SUB
000010e4: DUP3
000010e5: AND
000010e6: EQ
000010e7: PUSH2 0x1120
000010ea: JUMPI
000010eb: PUSH1 0x08
000010ed: SLOAD
000010ee: PUSH1 0x40
000010f0: MLOAD
000010f1: PUSH4 0x07396007
000010f6: PUSH1 0xe0
000010f8: SHL
000010f9: DUP2
000010fa: MSTORE
000010fb: CALLER
000010fc: PUSH1 0x04
000010fe: DUP3
000010ff: ADD
00001100: MSTORE
00001101: PUSH1 0x01
00001103: PUSH1 0x01
00001105: PUSH1 0xa0
00001107: SHL
00001108: SUB
00001109: SWAP2
0000110a: DUP3
0000110b: AND
0000110c: PUSH1 0x24
0000110e: DUP3
0000110f: ADD
00001110: MSTORE
00001111: SWAP1
00001112: DUP3
00001113: AND
00001114: PUSH1 0x44
00001116: DUP3
00001117: ADD
00001118: MSTORE
00001119: PUSH1 0x64
0000111b: ADD
0000111c: PUSH2 0x0591
0000111f: JUMP
00001120: JUMPDEST
00001121: POP
00001122: JUMPDEST
00001123: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000001
00001144: PUSH1 0x01
00001146: PUSH1 0x01
00001148: PUSH1 0xa0
0000114a: SHL
0000114b: SUB
0000114c: DUP4
0000114d: AND
0000114e: ADD
0000114f: PUSH2 0x118f
00001152: JUMPI
00001153: PUSH1 0x40
00001155: MLOAD
00001156: PUSH32 0x77abed1000000000000000000000000000000000000000000000000000000000
00001177: DUP2
00001178: MSTORE
00001179: PUSH1 0x01
0000117b: PUSH1 0x01
0000117d: PUSH1 0xa0
0000117f: SHL
00001180: SUB
00001181: DUP4
00001182: AND
00001183: PUSH1 0x04
00001185: DUP3
00001186: ADD
00001187: MSTORE
00001188: PUSH1 0x24
0000118a: ADD
0000118b: PUSH2 0x0591
0000118e: JUMP
0000118f: JUMPDEST
00001190: PUSH1 0x01
00001192: PUSH1 0x01
00001194: PUSH1 0xa0
00001196: SHL
00001197: SUB
00001198: DUP3
00001199: AND
0000119a: PUSH1 0x00
0000119c: DUP2
0000119d: DUP2
0000119e: MSTORE
0000119f: PUSH1 0x02
000011a1: PUSH1 0x20
000011a3: SWAP1
000011a4: DUP2
000011a5: MSTORE
000011a6: PUSH1 0x40
000011a8: SWAP2
000011a9: DUP3
000011aa: SWAP1
000011ab: KECCAK256
000011ac: PUSH1 0x01
000011ae: DUP2
000011af: ADD
000011b0: SLOAD
000011b1: SWAP3
000011b2: MLOAD
000011b3: DUP6
000011b4: ISZERO
000011b5: ISZERO
000011b6: DUP2
000011b7: MSTORE
000011b8: SWAP1
000011b9: SWAP4
000011ba: PUSH1 0xff
000011bc: SWAP1
000011bd: SWAP4
000011be: AND
000011bf: SWAP3
000011c0: SWAP2
000011c1: PUSH32 0x49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa
000011e2: SWAP2
000011e3: ADD
000011e4: PUSH1 0x40
000011e6: MLOAD
000011e7: DUP1
000011e8: SWAP2
000011e9: SUB
000011ea: SWAP1
000011eb: LOG2
000011ec: DUP3
000011ed: ISZERO
000011ee: ISZERO
000011ef: DUP2
000011f0: ISZERO
000011f1: ISZERO
000011f2: SUB
000011f3: PUSH2 0x11fc
000011f6: JUMPI
000011f7: POP
000011f8: POP
000011f9: POP
000011fa: POP
000011fb: JUMP
000011fc: JUMPDEST
000011fd: DUP3
000011fe: ISZERO
000011ff: PUSH2 0x1298
00001202: JUMPI
00001203: PUSH1 0x40
00001205: DUP1
00001206: MLOAD
00001207: DUP1
00001208: DUP3
00001209: ADD
0000120a: DUP3
0000120b: MSTORE
0000120c: PUSH1 0x04
0000120e: DUP1
0000120f: SLOAD
00001210: DUP3
00001211: MSTORE
00001212: PUSH1 0x01
00001214: PUSH1 0x20
00001216: DUP1
00001217: DUP5
00001218: ADD
00001219: DUP3
0000121a: DUP2
0000121b: MSTORE
0000121c: PUSH1 0x01
0000121e: PUSH1 0x01
00001220: PUSH1 0xa0
00001222: SHL
00001223: SUB
00001224: DUP11
00001225: AND
00001226: PUSH1 0x00
00001228: DUP2
00001229: DUP2
0000122a: MSTORE
0000122b: PUSH1 0x02
0000122d: SWAP1
0000122e: SWAP4
0000122f: MSTORE
00001230: SWAP6
00001231: DUP3
00001232: KECCAK256
00001233: SWAP5
00001234: MLOAD
00001235: DUP6
00001236: SSTORE
00001237: MLOAD
00001238: SWAP4
00001239: DUP3
0000123a: ADD
0000123b: DUP1
0000123c: SLOAD
0000123d: PUSH1 0xff
0000123f: NOT
00001240: AND
00001241: SWAP5
00001242: ISZERO
00001243: ISZERO
00001244: SWAP5
00001245: SWAP1
00001246: SWAP5
00001247: OR
00001248: SWAP1
00001249: SWAP4
0000124a: SSTORE
0000124b: DUP2
0000124c: SLOAD
0000124d: SWAP1
0000124e: DUP2
0000124f: ADD
00001250: DUP3
00001251: SSTORE
00001252: SWAP2
00001253: MSTORE
00001254: PUSH32 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b
00001275: ADD
00001276: DUP1
00001277: SLOAD
00001278: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000128d: NOT
0000128e: AND
0000128f: SWAP1
00001290: SWAP2
00001291: OR
00001292: SWAP1
00001293: SSTORE
00001294: PUSH2 0x07cc
00001297: JUMP
00001298: JUMPDEST
00001299: PUSH1 0x04
0000129b: DUP1
0000129c: SLOAD
0000129d: PUSH2 0x12a8
000012a0: SWAP1
000012a1: PUSH1 0x01
000012a3: SWAP1
000012a4: PUSH2 0x1999
000012a7: JUMP
000012a8: JUMPDEST
000012a9: DUP2
000012aa: SLOAD
000012ab: DUP2
000012ac: LT
000012ad: PUSH2 0x12b8
000012b0: JUMPI
000012b1: PUSH2 0x12b8
000012b4: PUSH2 0x19ba
000012b7: JUMP
000012b8: JUMPDEST
000012b9: PUSH1 0x00
000012bb: SWAP2
000012bc: DUP3
000012bd: MSTORE
000012be: PUSH1 0x20
000012c0: SWAP1
000012c1: SWAP2
000012c2: KECCAK256
000012c3: ADD
000012c4: SLOAD
000012c5: DUP3
000012c6: SLOAD
000012c7: PUSH1 0x04
000012c9: DUP1
000012ca: SLOAD
000012cb: PUSH1 0x01
000012cd: PUSH1 0x01
000012cf: PUSH1 0xa0
000012d1: SHL
000012d2: SUB
000012d3: SWAP1
000012d4: SWAP4
000012d5: AND
000012d6: SWAP3
000012d7: SWAP1
000012d8: SWAP2
000012d9: SWAP1
000012da: DUP2
000012db: LT
000012dc: PUSH2 0x12e7
000012df: JUMPI
000012e0: PUSH2 0x12e7
000012e3: PUSH2 0x19ba
000012e6: JUMP
000012e7: JUMPDEST
000012e8: SWAP1
000012e9: PUSH1 0x00
000012eb: MSTORE
000012ec: PUSH1 0x20
000012ee: PUSH1 0x00
000012f0: KECCAK256
000012f1: ADD
000012f2: PUSH1 0x00
000012f4: PUSH2 0x0100
000012f7: EXP
000012f8: DUP2
000012f9: SLOAD
000012fa: DUP2
000012fb: PUSH1 0x01
000012fd: PUSH1 0x01
000012ff: PUSH1 0xa0
00001301: SHL
00001302: SUB
00001303: MUL
00001304: NOT
00001305: AND
00001306: SWAP1
00001307: DUP4
00001308: PUSH1 0x01
0000130a: PUSH1 0x01
0000130c: PUSH1 0xa0
0000130e: SHL
0000130f: SUB
00001310: AND
00001311: MUL
00001312: OR
00001313: SWAP1
00001314: SSTORE
00001315: POP
00001316: DUP2
00001317: PUSH1 0x00
00001319: ADD
0000131a: SLOAD
0000131b: PUSH1 0x02
0000131d: PUSH1 0x00
0000131f: PUSH1 0x04
00001321: DUP6
00001322: PUSH1 0x00
00001324: ADD
00001325: SLOAD
00001326: DUP2
00001327: SLOAD
00001328: DUP2
00001329: LT
0000132a: PUSH2 0x1335
0000132d: JUMPI
0000132e: PUSH2 0x1335
00001331: PUSH2 0x19ba
00001334: JUMP
00001335: JUMPDEST
00001336: PUSH1 0x00
00001338: SWAP2
00001339: DUP3
0000133a: MSTORE
0000133b: PUSH1 0x20
0000133d: DUP1
0000133e: DUP4
0000133f: KECCAK256
00001340: SWAP1
00001341: SWAP2
00001342: ADD
00001343: SLOAD
00001344: PUSH1 0x01
00001346: PUSH1 0x01
00001348: PUSH1 0xa0
0000134a: SHL
0000134b: SUB
0000134c: AND
0000134d: DUP4
0000134e: MSTORE
0000134f: DUP3
00001350: ADD
00001351: SWAP3
00001352: SWAP1
00001353: SWAP3
00001354: MSTORE
00001355: PUSH1 0x40
00001357: ADD
00001358: SWAP1
00001359: KECCAK256
0000135a: SSTORE
0000135b: PUSH1 0x04
0000135d: DUP1
0000135e: SLOAD
0000135f: DUP1
00001360: PUSH2 0x136b
00001363: JUMPI
00001364: PUSH2 0x136b
00001367: PUSH2 0x19d0
0000136a: JUMP
0000136b: JUMPDEST
0000136c: PUSH1 0x00
0000136e: DUP3
0000136f: DUP2
00001370: MSTORE
00001371: PUSH1 0x20
00001373: DUP1
00001374: DUP3
00001375: KECCAK256
00001376: DUP4
00001377: ADD
00001378: PUSH1 0x00
0000137a: NOT
0000137b: SWAP1
0000137c: DUP2
0000137d: ADD
0000137e: DUP1
0000137f: SLOAD
00001380: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001395: NOT
00001396: AND
00001397: SWAP1
00001398: SSTORE
00001399: SWAP1
0000139a: SWAP3
0000139b: ADD
0000139c: SWAP1
0000139d: SWAP3
0000139e: SSTORE
0000139f: PUSH1 0x01
000013a1: PUSH1 0x01
000013a3: PUSH1 0xa0
000013a5: SHL
000013a6: SUB
000013a7: DUP7
000013a8: AND
000013a9: DUP3
000013aa: MSTORE
000013ab: PUSH1 0x02
000013ad: SWAP1
000013ae: MSTORE
000013af: PUSH1 0x40
000013b1: DUP2
000013b2: KECCAK256
000013b3: SWAP1
000013b4: DUP2
000013b5: SSTORE
000013b6: PUSH1 0x01
000013b8: ADD
000013b9: DUP1
000013ba: SLOAD
000013bb: PUSH1 0xff
000013bd: NOT
000013be: AND
000013bf: SWAP1
000013c0: SSTORE
000013c1: POP
000013c2: POP
000013c3: POP
000013c4: POP
000013c5: JUMP
000013c6: JUMPDEST
000013c7: PUSH1 0x06
000013c9: DUP2
000013ca: DUP2
000013cb: SLOAD
000013cc: DUP2
000013cd: LT
000013ce: PUSH2 0x04bc
000013d1: JUMPI
000013d2: PUSH1 0x00
000013d4: DUP1
000013d5: REVERT
000013d6: JUMPDEST
000013d7: PUSH1 0x03
000013d9: DUP2
000013da: DUP2
000013db: SLOAD
000013dc: DUP2
000013dd: LT
000013de: PUSH2 0x0c41
000013e1: JUMPI
000013e2: PUSH1 0x00
000013e4: DUP1
000013e5: REVERT
000013e6: JUMPDEST
000013e7: PUSH1 0x08
000013e9: SLOAD
000013ea: PUSH1 0x01
000013ec: PUSH1 0x01
000013ee: PUSH1 0xa0
000013f0: SHL
000013f1: SUB
000013f2: AND
000013f3: CALLER
000013f4: EQ
000013f5: PUSH2 0x14b0
000013f8: JUMPI
000013f9: PUSH1 0x08
000013fb: SLOAD
000013fc: PUSH1 0x40
000013fe: DUP1
000013ff: MLOAD
00001400: PUSH4 0x8da5cb5b
00001405: PUSH1 0xe0
00001407: SHL
00001408: DUP2
00001409: MSTORE
0000140a: SWAP1
0000140b: MLOAD
0000140c: PUSH1 0x00
0000140e: SWAP3
0000140f: PUSH1 0x01
00001411: PUSH1 0x01
00001413: PUSH1 0xa0
00001415: SHL
00001416: SUB
00001417: AND
00001418: SWAP2
00001419: PUSH4 0x8da5cb5b
0000141e: SWAP2
0000141f: PUSH1 0x04
00001421: DUP1
00001422: DUP4
00001423: ADD
00001424: SWAP3
00001425: PUSH1 0x20
00001427: SWAP3
00001428: SWAP2
00001429: SWAP1
0000142a: DUP3
0000142b: SWAP1
0000142c: SUB
0000142d: ADD
0000142e: DUP2
0000142f: DUP7
00001430: GAS
00001431: STATICCALL
00001432: ISZERO
00001433: DUP1
00001434: ISZERO
00001435: PUSH2 0x1442
00001438: JUMPI
00001439: RETURNDATASIZE
0000143a: PUSH1 0x00
0000143c: DUP1
0000143d: RETURNDATACOPY
0000143e: RETURNDATASIZE
0000143f: PUSH1 0x00
00001441: REVERT
00001442: JUMPDEST
00001443: POP
00001444: POP
00001445: POP
00001446: POP
00001447: PUSH1 0x40
00001449: MLOAD
0000144a: RETURNDATASIZE
0000144b: PUSH1 0x1f
0000144d: NOT
0000144e: PUSH1 0x1f
00001450: DUP3
00001451: ADD
00001452: AND
00001453: DUP3
00001454: ADD
00001455: DUP1
00001456: PUSH1 0x40
00001458: MSTORE
00001459: POP
0000145a: DUP2
0000145b: ADD
0000145c: SWAP1
0000145d: PUSH2 0x1466
00001460: SWAP2
00001461: SWAP1
00001462: PUSH2 0x197c
00001465: JUMP
00001466: JUMPDEST
00001467: SWAP1
00001468: POP
00001469: CALLER
0000146a: PUSH1 0x01
0000146c: PUSH1 0x01
0000146e: PUSH1 0xa0
00001470: SHL
00001471: SUB
00001472: DUP3
00001473: AND
00001474: EQ
00001475: PUSH2 0x14ae
00001478: JUMPI
00001479: PUSH1 0x08
0000147b: SLOAD
0000147c: PUSH1 0x40
0000147e: MLOAD
0000147f: PUSH4 0x07396007
00001484: PUSH1 0xe0
00001486: SHL
00001487: DUP2
00001488: MSTORE
00001489: CALLER
0000148a: PUSH1 0x04
0000148c: DUP3
0000148d: ADD
0000148e: MSTORE
0000148f: PUSH1 0x01
00001491: PUSH1 0x01
00001493: PUSH1 0xa0
00001495: SHL
00001496: SUB
00001497: SWAP2
00001498: DUP3
00001499: AND
0000149a: PUSH1 0x24
0000149c: DUP3
0000149d: ADD
0000149e: MSTORE
0000149f: SWAP1
000014a0: DUP3
000014a1: AND
000014a2: PUSH1 0x44
000014a4: DUP3
000014a5: ADD
000014a6: MSTORE
000014a7: PUSH1 0x64
000014a9: ADD
000014aa: PUSH2 0x0591
000014ad: JUMP
000014ae: JUMPDEST
000014af: POP
000014b0: JUMPDEST
000014b1: PUSH1 0x0a
000014b3: SSTORE
000014b4: JUMP
000014b5: JUMPDEST
000014b6: PUSH1 0x06
000014b8: SLOAD
000014b9: PUSH1 0x40
000014bb: DUP1
000014bc: MLOAD
000014bd: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000
000014de: PUSH1 0xf8
000014e0: DUP11
000014e1: SWAP1
000014e2: SHL
000014e3: AND
000014e4: PUSH1 0x20
000014e6: DUP1
000014e7: DUP4
000014e8: ADD
000014e9: SWAP2
000014ea: SWAP1
000014eb: SWAP2
000014ec: MSTORE
000014ed: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
0000150e: PUSH1 0x60
00001510: DUP11
00001511: SWAP1
00001512: SHL
00001513: AND
00001514: PUSH1 0x21
00001516: DUP4
00001517: ADD
00001518: MSTORE
00001519: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000153a: PUSH1 0xc0
0000153c: DUP10
0000153d: DUP2
0000153e: SHL
0000153f: DUP3
00001540: AND
00001541: PUSH1 0x35
00001543: DUP6
00001544: ADD
00001545: MSTORE
00001546: DUP9
00001547: SWAP1
00001548: SHL
00001549: AND
0000154a: PUSH1 0x3d
0000154c: DUP4
0000154d: ADD
0000154e: MSTORE
0000154f: PUSH1 0x45
00001551: DUP3
00001552: ADD
00001553: DUP5
00001554: SWAP1
00001555: MSTORE
00001556: PUSH1 0x65
00001558: DUP3
00001559: ADD
0000155a: DUP7
0000155b: SWAP1
0000155c: MSTORE
0000155d: PUSH1 0x85
0000155f: DUP1
00001560: DUP4
00001561: ADD
00001562: DUP7
00001563: SWAP1
00001564: MSTORE
00001565: DUP4
00001566: MLOAD
00001567: DUP1
00001568: DUP5
00001569: SUB
0000156a: SWAP1
0000156b: SWAP2
0000156c: ADD
0000156d: DUP2
0000156e: MSTORE
0000156f: PUSH1 0xa5
00001571: SWAP1
00001572: SWAP3
00001573: ADD
00001574: SWAP1
00001575: SWAP3
00001576: MSTORE
00001577: DUP1
00001578: MLOAD
00001579: SWAP2
0000157a: ADD
0000157b: KECCAK256
0000157c: PUSH1 0x00
0000157e: SWAP2
0000157f: SWAP1
00001580: PUSH1 0x00
00001582: DUP3
00001583: ISZERO
00001584: PUSH2 0x15b2
00001587: JUMPI
00001588: PUSH1 0x06
0000158a: PUSH2 0x1594
0000158d: PUSH1 0x01
0000158f: DUP6
00001590: PUSH2 0x1999
00001593: JUMP
00001594: JUMPDEST
00001595: DUP2
00001596: SLOAD
00001597: DUP2
00001598: LT
00001599: PUSH2 0x15a4
0000159c: JUMPI
0000159d: PUSH2 0x15a4
000015a0: PUSH2 0x19ba
000015a3: JUMP
000015a4: JUMPDEST
000015a5: SWAP1
000015a6: PUSH1 0x00
000015a8: MSTORE
000015a9: PUSH1 0x20
000015ab: PUSH1 0x00
000015ad: KECCAK256
000015ae: ADD
000015af: SLOAD
000015b0: SWAP1
000015b1: POP
000015b2: JUMPDEST
000015b3: PUSH1 0x40
000015b5: DUP1
000015b6: MLOAD
000015b7: PUSH1 0x20
000015b9: DUP1
000015ba: DUP3
000015bb: ADD
000015bc: DUP5
000015bd: SWAP1
000015be: MSTORE
000015bf: DUP2
000015c0: DUP4
000015c1: ADD
000015c2: DUP6
000015c3: SWAP1
000015c4: MSTORE
000015c5: DUP3
000015c6: MLOAD
000015c7: DUP1
000015c8: DUP4
000015c9: SUB
000015ca: DUP5
000015cb: ADD
000015cc: DUP2
000015cd: MSTORE
000015ce: PUSH1 0x60
000015d0: DUP4
000015d1: ADD
000015d2: DUP1
000015d3: DUP6
000015d4: MSTORE
000015d5: DUP2
000015d6: MLOAD
000015d7: SWAP2
000015d8: SWAP1
000015d9: SWAP3
000015da: ADD
000015db: KECCAK256
000015dc: PUSH1 0x06
000015de: DUP1
000015df: SLOAD
000015e0: PUSH1 0x01
000015e2: DUP2
000015e3: ADD
000015e4: DUP3
000015e5: SSTORE
000015e6: PUSH1 0x00
000015e8: SWAP2
000015e9: SWAP1
000015ea: SWAP2
000015eb: MSTORE
000015ec: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f
0000160d: ADD
0000160e: SSTORE
0000160f: CALLER
00001610: SWAP1
00001611: MSTORE
00001612: PUSH1 0xff
00001614: DUP13
00001615: AND
00001616: PUSH1 0x80
00001618: DUP3
00001619: ADD
0000161a: MSTORE
0000161b: PUSH1 0x01
0000161d: PUSH1 0x01
0000161f: PUSH1 0xa0
00001621: SHL
00001622: SUB
00001623: DUP12
00001624: AND
00001625: PUSH1 0xa0
00001627: DUP3
00001628: ADD
00001629: MSTORE
0000162a: PUSH1 0xc0
0000162c: DUP2
0000162d: ADD
0000162e: DUP8
0000162f: SWAP1
00001630: MSTORE
00001631: PUSH1 0xe0
00001633: DUP2
00001634: ADD
00001635: DUP9
00001636: SWAP1
00001637: MSTORE
00001638: PUSH8 0xffffffffffffffff
00001641: DUP10
00001642: AND
00001643: PUSH2 0x0100
00001646: DUP3
00001647: ADD
00001648: MSTORE
00001649: SWAP1
0000164a: MLOAD
0000164b: DUP3
0000164c: SWAP2
0000164d: DUP6
0000164e: SWAP2
0000164f: PUSH32 0x5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1
00001670: SWAP2
00001671: DUP2
00001672: SWAP1
00001673: SUB
00001674: PUSH2 0x0120
00001677: ADD
00001678: SWAP1
00001679: LOG3
0000167a: POP
0000167b: SWAP1
0000167c: SWAP9
0000167d: SWAP8
0000167e: POP
0000167f: POP
00001680: POP
00001681: POP
00001682: POP
00001683: POP
00001684: POP
00001685: POP
00001686: JUMP
00001687: JUMPDEST
00001688: CALLER
00001689: PUSH1 0x00
0000168b: SWAP1
0000168c: DUP2
0000168d: MSTORE
0000168e: PUSH1 0x01
00001690: PUSH1 0x20
00001692: DUP2
00001693: SWAP1
00001694: MSTORE
00001695: PUSH1 0x40
00001697: DUP3
00001698: KECCAK256
00001699: ADD
0000169a: SLOAD
0000169b: PUSH1 0xff
0000169d: AND
0000169e: PUSH2 0x16d5
000016a1: JUMPI
000016a2: PUSH1 0x40
000016a4: MLOAD
000016a5: PUSH32 0xb6c60ea300000000000000000000000000000000000000000000000000000000
000016c6: DUP2
000016c7: MSTORE
000016c8: CALLER
000016c9: PUSH1 0x04
000016cb: DUP3
000016cc: ADD
000016cd: MSTORE
000016ce: PUSH1 0x24
000016d0: ADD
000016d1: PUSH2 0x0591
000016d4: JUMP
000016d5: JUMPDEST
000016d6: PUSH1 0x00
000016d8: PUSH2 0x16e5
000016db: DUP7
000016dc: DUP7
000016dd: NUMBER
000016de: TIMESTAMP
000016df: BASEFEE
000016e0: DUP10
000016e1: PUSH2 0x14b5
000016e4: JUMP
000016e5: JUMPDEST
000016e6: SWAP7
000016e7: SWAP6
000016e8: POP
000016e9: POP
000016ea: POP
000016eb: POP
000016ec: POP
000016ed: POP
000016ee: JUMP
000016ef: JUMPDEST
000016f0: PUSH1 0x00
000016f2: PUSH1 0x60
000016f4: DUP5
000016f5: PUSH1 0x01
000016f7: PUSH1 0x01
000016f9: PUSH1 0xa0
000016fb: SHL
000016fc: SUB
000016fd: AND
000016fe: DUP5
000016ff: DUP5
00001700: PUSH1 0x40
00001702: MLOAD
00001703: PUSH2 0x170c
00001706: SWAP2
00001707: SWAP1
00001708: PUSH2 0x1a1c
0000170b: JUMP
0000170c: JUMPDEST
0000170d: PUSH1 0x00
0000170f: PUSH1 0x40
00001711: MLOAD
00001712: DUP1
00001713: DUP4
00001714: SUB
00001715: DUP2
00001716: DUP6
00001717: DUP8
00001718: GAS
00001719: CALL
0000171a: SWAP3
0000171b: POP
0000171c: POP
0000171d: POP
0000171e: RETURNDATASIZE
0000171f: DUP1
00001720: PUSH1 0x00
00001722: DUP2
00001723: EQ
00001724: PUSH2 0x1749
00001727: JUMPI
00001728: PUSH1 0x40
0000172a: MLOAD
0000172b: SWAP2
0000172c: POP
0000172d: PUSH1 0x1f
0000172f: NOT
00001730: PUSH1 0x3f
00001732: RETURNDATASIZE
00001733: ADD
00001734: AND
00001735: DUP3
00001736: ADD
00001737: PUSH1 0x40
00001739: MSTORE
0000173a: RETURNDATASIZE
0000173b: DUP3
0000173c: MSTORE
0000173d: RETURNDATASIZE
0000173e: PUSH1 0x00
00001740: PUSH1 0x20
00001742: DUP5
00001743: ADD
00001744: RETURNDATACOPY
00001745: PUSH2 0x174e
00001748: JUMP
00001749: JUMPDEST
0000174a: PUSH1 0x60
0000174c: SWAP2
0000174d: POP
0000174e: JUMPDEST
0000174f: POP
00001750: SWAP1
00001751: SWAP7
00001752: SWAP1
00001753: SWAP6
00001754: POP
00001755: SWAP4
00001756: POP
00001757: POP
00001758: POP
00001759: POP
0000175a: JUMP
0000175b: JUMPDEST
0000175c: POP
0000175d: JUMP
0000175e: JUMPDEST
0000175f: PUSH1 0x00
00001761: PUSH1 0x20
00001763: DUP3
00001764: DUP5
00001765: SUB
00001766: SLT
00001767: ISZERO
00001768: PUSH2 0x1770
0000176b: JUMPI
0000176c: PUSH1 0x00
0000176e: DUP1
0000176f: REVERT
00001770: JUMPDEST
00001771: POP
00001772: CALLDATALOAD
00001773: SWAP2
00001774: SWAP1
00001775: POP
00001776: JUMP
00001777: JUMPDEST
00001778: PUSH1 0x01
0000177a: PUSH1 0x01
0000177c: PUSH1 0xa0
0000177e: SHL
0000177f: SUB
00001780: DUP2
00001781: AND
00001782: DUP2
00001783: EQ
00001784: PUSH2 0x175b
00001787: JUMPI
00001788: PUSH1 0x00
0000178a: DUP1
0000178b: REVERT
0000178c: JUMPDEST
0000178d: PUSH1 0x00
0000178f: PUSH1 0x20
00001791: DUP3
00001792: DUP5
00001793: SUB
00001794: SLT
00001795: ISZERO
00001796: PUSH2 0x179e
00001799: JUMPI
0000179a: PUSH1 0x00
0000179c: DUP1
0000179d: REVERT
0000179e: JUMPDEST
0000179f: DUP2
000017a0: CALLDATALOAD
000017a1: PUSH2 0x17a9
000017a4: DUP2
000017a5: PUSH2 0x1777
000017a8: JUMP
000017a9: JUMPDEST
000017aa: SWAP4
000017ab: SWAP3
000017ac: POP
000017ad: POP
000017ae: POP
000017af: JUMP
000017b0: JUMPDEST
000017b1: PUSH1 0x00
000017b3: DUP1
000017b4: PUSH1 0x40
000017b6: DUP4
000017b7: DUP6
000017b8: SUB
000017b9: SLT
000017ba: ISZERO
000017bb: PUSH2 0x17c3
000017be: JUMPI
000017bf: PUSH1 0x00
000017c1: DUP1
000017c2: REVERT
000017c3: JUMPDEST
000017c4: DUP3
000017c5: CALLDATALOAD
000017c6: PUSH2 0x17ce
000017c9: DUP2
000017ca: PUSH2 0x1777
000017cd: JUMP
000017ce: JUMPDEST
000017cf: SWAP2
000017d0: POP
000017d1: PUSH1 0x20
000017d3: DUP4
000017d4: ADD
000017d5: CALLDATALOAD
000017d6: DUP1
000017d7: ISZERO
000017d8: ISZERO
000017d9: DUP2
000017da: EQ
000017db: PUSH2 0x17e3
000017de: JUMPI
000017df: PUSH1 0x00
000017e1: DUP1
000017e2: REVERT
000017e3: JUMPDEST
000017e4: DUP1
000017e5: SWAP2
000017e6: POP
000017e7: POP
000017e8: SWAP3
000017e9: POP
000017ea: SWAP3
000017eb: SWAP1
000017ec: POP
000017ed: JUMP
000017ee: JUMPDEST
000017ef: PUSH1 0x00
000017f1: DUP1
000017f2: PUSH1 0x40
000017f4: DUP4
000017f5: DUP6
000017f6: SUB
000017f7: SLT
000017f8: ISZERO
000017f9: PUSH2 0x1801
000017fc: JUMPI
000017fd: PUSH1 0x00
000017ff: DUP1
00001800: REVERT
00001801: JUMPDEST
00001802: DUP3
00001803: CALLDATALOAD
00001804: PUSH2 0x180c
00001807: DUP2
00001808: PUSH2 0x1777
0000180b: JUMP
0000180c: JUMPDEST
0000180d: SWAP5
0000180e: PUSH1 0x20
00001810: SWAP4
00001811: SWAP1
00001812: SWAP4
00001813: ADD
00001814: CALLDATALOAD
00001815: SWAP4
00001816: POP
00001817: POP
00001818: POP
00001819: JUMP
0000181a: JUMPDEST
0000181b: PUSH1 0x00
0000181d: DUP1
0000181e: PUSH1 0x00
00001820: DUP1
00001821: PUSH1 0x80
00001823: DUP6
00001824: DUP8
00001825: SUB
00001826: SLT
00001827: ISZERO
00001828: PUSH2 0x1830
0000182b: JUMPI
0000182c: PUSH1 0x00
0000182e: DUP1
0000182f: REVERT
00001830: JUMPDEST
00001831: POP
00001832: POP
00001833: DUP3
00001834: CALLDATALOAD
00001835: SWAP5
00001836: PUSH1 0x20
00001838: DUP5
00001839: ADD
0000183a: CALLDATALOAD
0000183b: SWAP5
0000183c: POP
0000183d: PUSH1 0x40
0000183f: DUP5
00001840: ADD
00001841: CALLDATALOAD
00001842: SWAP4
00001843: PUSH1 0x60
00001845: ADD
00001846: CALLDATALOAD
00001847: SWAP3
00001848: POP
00001849: SWAP1
0000184a: POP
0000184b: JUMP
0000184c: JUMPDEST
0000184d: PUSH1 0x00
0000184f: DUP1
00001850: PUSH1 0x00
00001852: PUSH1 0x60
00001854: DUP5
00001855: DUP7
00001856: SUB
00001857: SLT
00001858: ISZERO
00001859: PUSH2 0x1861
0000185c: JUMPI
0000185d: PUSH1 0x00
0000185f: DUP1
00001860: REVERT
00001861: JUMPDEST
00001862: DUP4
00001863: CALLDATALOAD
00001864: PUSH1 0xff
00001866: DUP2
00001867: AND
00001868: DUP2
00001869: EQ
0000186a: PUSH2 0x1872
0000186d: JUMPI
0000186e: PUSH1 0x00
00001870: DUP1
00001871: REVERT
00001872: JUMPDEST
00001873: SWAP3
00001874: POP
00001875: PUSH1 0x20
00001877: DUP5
00001878: ADD
00001879: CALLDATALOAD
0000187a: PUSH2 0x1882
0000187d: DUP2
0000187e: PUSH2 0x1777
00001881: JUMP
00001882: JUMPDEST
00001883: SWAP3
00001884: SWAP6
00001885: SWAP3
00001886: SWAP5
00001887: POP
00001888: POP
00001889: POP
0000188a: PUSH1 0x40
0000188c: SWAP2
0000188d: SWAP1
0000188e: SWAP2
0000188f: ADD
00001890: CALLDATALOAD
00001891: SWAP1
00001892: JUMP
00001893: JUMPDEST
00001894: PUSH1 0x00
00001896: DUP1
00001897: PUSH1 0x00
00001899: DUP1
0000189a: PUSH1 0x60
0000189c: DUP6
0000189d: DUP8
0000189e: SUB
0000189f: SLT
000018a0: ISZERO
000018a1: PUSH2 0x18a9
000018a4: JUMPI
000018a5: PUSH1 0x00
000018a7: DUP1
000018a8: REVERT
000018a9: JUMPDEST
000018aa: DUP5
000018ab: CALLDATALOAD
000018ac: PUSH2 0x18b4
000018af: DUP2
000018b0: PUSH2 0x1777
000018b3: JUMP
000018b4: JUMPDEST
000018b5: SWAP4
000018b6: POP
000018b7: PUSH1 0x20
000018b9: DUP6
000018ba: ADD
000018bb: CALLDATALOAD
000018bc: SWAP3
000018bd: POP
000018be: PUSH1 0x40
000018c0: DUP6
000018c1: ADD
000018c2: CALLDATALOAD
000018c3: PUSH8 0xffffffffffffffff
000018cc: DUP1
000018cd: DUP3
000018ce: GT
000018cf: ISZERO
000018d0: PUSH2 0x18d8
000018d3: JUMPI
000018d4: PUSH1 0x00
000018d6: DUP1
000018d7: REVERT
000018d8: JUMPDEST
000018d9: DUP2
000018da: DUP8
000018db: ADD
000018dc: SWAP2
000018dd: POP
000018de: DUP8
000018df: PUSH1 0x1f
000018e1: DUP4
000018e2: ADD
000018e3: SLT
000018e4: PUSH2 0x18ec
000018e7: JUMPI
000018e8: PUSH1 0x00
000018ea: DUP1
000018eb: REVERT
000018ec: JUMPDEST
000018ed: DUP2
000018ee: CALLDATALOAD
000018ef: DUP2
000018f0: DUP2
000018f1: GT
000018f2: ISZERO
000018f3: PUSH2 0x18fb
000018f6: JUMPI
000018f7: PUSH1 0x00
000018f9: DUP1
000018fa: REVERT
000018fb: JUMPDEST
000018fc: DUP9
000018fd: PUSH1 0x20
000018ff: DUP3
00001900: DUP6
00001901: ADD
00001902: ADD
00001903: GT
00001904: ISZERO
00001905: PUSH2 0x190d
00001908: JUMPI
00001909: PUSH1 0x00
0000190b: DUP1
0000190c: REVERT
0000190d: JUMPDEST
0000190e: SWAP6
0000190f: SWAP9
00001910: SWAP5
00001911: SWAP8
00001912: POP
00001913: POP
00001914: PUSH1 0x20
00001916: ADD
00001917: SWAP5
00001918: POP
00001919: POP
0000191a: POP
0000191b: JUMP
0000191c: JUMPDEST
0000191d: PUSH1 0x00
0000191f: JUMPDEST
00001920: DUP4
00001921: DUP2
00001922: LT
00001923: ISZERO
00001924: PUSH2 0x1937
00001927: JUMPI
00001928: DUP2
00001929: DUP2
0000192a: ADD
0000192b: MLOAD
0000192c: DUP4
0000192d: DUP3
0000192e: ADD
0000192f: MSTORE
00001930: PUSH1 0x20
00001932: ADD
00001933: PUSH2 0x191f
00001936: JUMP
00001937: JUMPDEST
00001938: POP
00001939: POP
0000193a: PUSH1 0x00
0000193c: SWAP2
0000193d: ADD
0000193e: MSTORE
0000193f: JUMP
00001940: JUMPDEST
00001941: DUP3
00001942: ISZERO
00001943: ISZERO
00001944: DUP2
00001945: MSTORE
00001946: PUSH1 0x40
00001948: PUSH1 0x20
0000194a: DUP3
0000194b: ADD
0000194c: MSTORE
0000194d: PUSH1 0x00
0000194f: DUP3
00001950: MLOAD
00001951: DUP1
00001952: PUSH1 0x40
00001954: DUP5
00001955: ADD
00001956: MSTORE
00001957: PUSH2 0x1967
0000195a: DUP2
0000195b: PUSH1 0x60
0000195d: DUP6
0000195e: ADD
0000195f: PUSH1 0x20
00001961: DUP8
00001962: ADD
00001963: PUSH2 0x191c
00001966: JUMP
00001967: JUMPDEST
00001968: PUSH1 0x1f
0000196a: ADD
0000196b: PUSH1 0x1f
0000196d: NOT
0000196e: AND
0000196f: SWAP2
00001970: SWAP1
00001971: SWAP2
00001972: ADD
00001973: PUSH1 0x60
00001975: ADD
00001976: SWAP4
00001977: SWAP3
00001978: POP
00001979: POP
0000197a: POP
0000197b: JUMP
0000197c: JUMPDEST
0000197d: PUSH1 0x00
0000197f: PUSH1 0x20
00001981: DUP3
00001982: DUP5
00001983: SUB
00001984: SLT
00001985: ISZERO
00001986: PUSH2 0x198e
00001989: JUMPI
0000198a: PUSH1 0x00
0000198c: DUP1
0000198d: REVERT
0000198e: JUMPDEST
0000198f: DUP2
00001990: MLOAD
00001991: PUSH2 0x17a9
00001994: DUP2
00001995: PUSH2 0x1777
00001998: JUMP
00001999: JUMPDEST
0000199a: DUP2
0000199b: DUP2
0000199c: SUB
0000199d: DUP2
0000199e: DUP2
0000199f: GT
000019a0: ISZERO
000019a1: PUSH2 0x095a
000019a4: JUMPI
000019a5: PUSH4 0x4e487b71
000019aa: PUSH1 0xe0
000019ac: SHL
000019ad: PUSH1 0x00
000019af: MSTORE
000019b0: PUSH1 0x11
000019b2: PUSH1 0x04
000019b4: MSTORE
000019b5: PUSH1 0x24
000019b7: PUSH1 0x00
000019b9: REVERT
000019ba: JUMPDEST
000019bb: PUSH4 0x4e487b71
000019c0: PUSH1 0xe0
000019c2: SHL
000019c3: PUSH1 0x00
000019c5: MSTORE
000019c6: PUSH1 0x32
000019c8: PUSH1 0x04
000019ca: MSTORE
000019cb: PUSH1 0x24
000019cd: PUSH1 0x00
000019cf: REVERT
000019d0: JUMPDEST
000019d1: PUSH4 0x4e487b71
000019d6: PUSH1 0xe0
000019d8: SHL
000019d9: PUSH1 0x00
000019db: MSTORE
000019dc: PUSH1 0x31
000019de: PUSH1 0x04
000019e0: MSTORE
000019e1: PUSH1 0x24
000019e3: PUSH1 0x00
000019e5: REVERT
000019e6: JUMPDEST
000019e7: DUP4
000019e8: DUP2
000019e9: MSTORE
000019ea: PUSH1 0x40
000019ec: PUSH1 0x20
000019ee: DUP3
000019ef: ADD
000019f0: MSTORE
000019f1: DUP2
000019f2: PUSH1 0x40
000019f4: DUP3
000019f5: ADD
000019f6: MSTORE
000019f7: DUP2
000019f8: DUP4
000019f9: PUSH1 0x60
000019fb: DUP4
000019fc: ADD
000019fd: CALLDATACOPY
000019fe: PUSH1 0x00
00001a00: DUP2
00001a01: DUP4
00001a02: ADD
00001a03: PUSH1 0x60
00001a05: SWAP1
00001a06: DUP2
00001a07: ADD
00001a08: SWAP2
00001a09: SWAP1
00001a0a: SWAP2
00001a0b: MSTORE
00001a0c: PUSH1 0x1f
00001a0e: SWAP1
00001a0f: SWAP3
00001a10: ADD
00001a11: PUSH1 0x1f
00001a13: NOT
00001a14: AND
00001a15: ADD
00001a16: ADD
00001a17: SWAP3
00001a18: SWAP2
00001a19: POP
00001a1a: POP
00001a1b: JUMP
00001a1c: JUMPDEST
00001a1d: PUSH1 0x00
00001a1f: DUP3
00001a20: MLOAD
00001a21: PUSH2 0x1a2e
00001a24: DUP2
00001a25: DUP5
00001a26: PUSH1 0x20
00001a28: DUP8
00001a29: ADD
00001a2a: PUSH2 0x191c
00001a2d: JUMP
00001a2e: JUMPDEST
00001a2f: SWAP2
00001a30: SWAP1
00001a31: SWAP2
00001a32: ADD
00001a33: SWAP3
00001a34: SWAP2
00001a35: POP
00001a36: POP
00001a37: JUMP
00001a38: INVALID
00001a39: LOG2
00001a3a: PUSH5 0x6970667358
00001a40: UNKNOWN(0x22)
00001a41: SLT
00001a42: KECCAK256
00001a43: UNKNOWN(0xC8)
00001a44: UNKNOWN(0xA6)
00001a45: DUP2
00001a46: UNKNOWN(0xCD)
00001a47: SUB
00001a48: PUSH10 0xc07a070b6b477d8cffe9
00001a53: CALL
00001a54: SGT
00001a55: DUP15
00001a56: NOT
00001a57: SWAP4
00001a58: UNKNOWN(0x2A)
00001a59: BLOCKHASH
00001a5a: PUSH21

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability codex Initializer is publicly callable, enabling proxy takeover if not initialized atomically 90 no
view
evidence_json
{
    "evidence": "`initialize` is `external` and only gated by `initializer` and `onlyDelegated`, with no caller authentication.",
    "locations": [
        "src/bridge/Bridge.sol:22"
    ],
    "recommendation": "Ensure `initialize` is executed atomically during proxy deployment (constructor `data` call) or add an access-control guard (e.g., `onlyProxyOwner`/admin) to `initialize`. Consider disabling initializers on the implementation to prevent misuse.",
    "exploit_scenario": "If the proxy is deployed without calling `initialize` in the same transaction, any account can call `initialize(rollup_)` via the proxy and set `rollup` to a malicious contract that returns the attacker as owner. The attacker then controls `onlyRollupOrOwner` functions (e.g., setting outboxes/inboxes or updating rollup), enabling full system takeover and potential escrow drain via allowed outbox execution."
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x82a98e6bffa2c0d5bbb7fa099a53e42f4773a98c5caff65ca15b82f4bef92316
call_targets: 0x677ecf96dbfee1defbde8d2e905a39f73aa27b89
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x82a98e6bffa2c0d5bbb7fa099a53e42f4773a98c5caff65ca15b82f4bef92316",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x677ecf96dbfee1defbde8d2e905a39f73aa27b89"
    ],
    "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": "0xeca067ad",
            "selector": "0xeca067ad",
            "calldata_variants": [
                "0xeca067ad",
                "0xeca067ad0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xee35f327",
            "selector": "0xee35f327",
            "calldata_variants": [
                "0xee35f327",
                "0xee35f3270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf81ff3b3",
            "selector": "0xf81ff3b3",
            "calldata_variants": [
                "0xf81ff3b3",
                "0xf81ff3b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd5719dc2",
            "selector": "0xd5719dc2",
            "calldata_variants": [
                "0xd5719dc2",
                "0xd5719dc20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe76f5c8d",
            "selector": "0xe76f5c8d",
            "calldata_variants": [
                "0xe76f5c8d",
                "0xe76f5c8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe77145f4",
            "selector": "0xe77145f4",
            "calldata_variants": [
                "0xe77145f4",
                "0xe77145f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcb23bcb5",
            "selector": "0xcb23bcb5",
            "calldata_variants": [
                "0xcb23bcb5",
                "0xcb23bcb50000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5913,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6739,
            "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: 0x82a98e6bffa2c0d5bbb7fa099a53e42f4773a98c5caff65ca15b82f4bef92316
call_targets: 0x677ecf96dbfee1defbde8d2e905a39f73aa27b89
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x82a98e6bffa2c0d5bbb7fa099a53e42f4773a98c5caff65ca15b82f4bef92316",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x677ecf96dbfee1defbde8d2e905a39f73aa27b89"
    ],
    "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": "0xeca067ad",
            "selector": "0xeca067ad",
            "calldata_variants": [
                "0xeca067ad",
                "0xeca067ad0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xee35f327",
            "selector": "0xee35f327",
            "calldata_variants": [
                "0xee35f327",
                "0xee35f3270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf81ff3b3",
            "selector": "0xf81ff3b3",
            "calldata_variants": [
                "0xf81ff3b3",
                "0xf81ff3b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd5719dc2",
            "selector": "0xd5719dc2",
            "calldata_variants": [
                "0xd5719dc2",
                "0xd5719dc20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe76f5c8d",
            "selector": "0xe76f5c8d",
            "calldata_variants": [
                "0xe76f5c8d",
                "0xe76f5c8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe77145f4",
            "selector": "0xe77145f4",
            "calldata_variants": [
                "0xe77145f4",
                "0xe77145f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcb23bcb5",
            "selector": "0xcb23bcb5",
            "calldata_variants": [
                "0xcb23bcb5",
                "0xcb23bcb50000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5913,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6739,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}