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

Analysis Run

3fa187e1-76d0-4757-95f2-cd89d189d08b

complete
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 4:48 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
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
30528 report.consolidate complete 1 / 1 3 months ago
104027 artifact.fetch complete 1 / 3 1 week ago
104028 tool.cast_disasm complete 1 / 3 1 week ago
104029 analysis.bundle complete 1 / 3 1 week ago
104030 capability.graph complete 1 / 3 1 week ago
104031 detector.run complete 1 / 3 1 week ago
104032 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found 1 medium-severity issue where auto-acceptance can finalize bids that are underfunded or not evenly splittable, causing underpayment and/or stuck dust.
View stderr
[codex:520867] OpenAI Codex v0.77.0 (research preview)
[codex:520867] --------
[codex:520867] workdir: /tmp/codex-multi-ont651uv
[codex:520867] model: gpt-5.2-codex
[codex:520867] provider: openai
[codex:520867] approval: never
[codex:520867] sandbox: read-only
[codex:520867] reasoning effort: xhigh
[codex:520867] reasoning summaries: auto
[codex:520867] session id: 019b6af9-a4d6-7aa0-9267-f1c7f60e2c6e
[codex:520867] --------
[codex:520867] user
[codex:520867] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:520867] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:520867] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:520867] 
[codex:520867] Scope rules:
[codex:520867] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:520867] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:520867] 
[codex:520867] Output MUST be valid JSON matching the provided schema.
[codex:520867] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:520867] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:520867] 
[codex:520867] Output constraints (IMPORTANT):
[codex:520867] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:520867] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:520867] mcp startup: no servers
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Checking for AGENTS instructions**
[codex:520867] exec
[codex:520867] /bin/bash -lc ls in /tmp/codex-multi-ont651uv succeeded in 6ms:
[codex:520867] AUDIT_BUNDLE.txt
[codex:520867] codex-output-schema.json
[codex:520867] contracts
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Searching for AGENTS-related files**
[codex:520867] exec
[codex:520867] /bin/bash -lc "rg --files -g 'AGENTS.md'" in /tmp/codex-multi-ont651uv exited 1 in 8ms:
[codex:520867] 
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Checking for instructions in AUDIT_BUNDLE.txt**
[codex:520867] exec
[codex:520867] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-ont651uv succeeded in 5ms:
[codex:520867] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:520867] 
[codex:520867] ================================================================================
[codex:520867] FILE: contracts/@openzeppelin/contracts/GSN/Context.sol
[codex:520867] ================================================================================
[codex:520867] // SPDX-License-Identifier: MIT
[codex:520867] 
[codex:520867] pragma solidity ^0.6.0;
[codex:520867] 
[codex:520867] /*
[codex:520867]  * @dev Provides information about the current execution context, including the
[codex:520867]  * sender of the transaction and its data. While these are generally available
[codex:520867]  * via msg.sender and msg.data, they should not be accessed in such a direct
[codex:520867]  * manner, since when dealing with GSN meta-transactions the account sending and
[codex:520867]  * paying for execution may not be the actual sender (as far as an application
[codex:520867]  * is concerned).
[codex:520867]  *
[codex:520867]  * This contract is only required for intermediate, library-like contracts.
[codex:520867]  */
[codex:520867] abstract contract Context {
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Searching for first-party contract files**
[codex:520867] exec
[codex:520867] /bin/bash -lc 'rg -n "FILE: contracts/contracts" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ont651uv succeeded in 6ms:
[codex:520867] 1480:FILE: contracts/contracts/Decimal.sol
[codex:520867] 1555:FILE: contracts/contracts/ERC721.sol
[codex:520867] 2151:FILE: contracts/contracts/ERC721Burnable.sol
[codex:520867] 2190:FILE: contracts/contracts/Market.sol
[codex:520867] 2562:FILE: contracts/contracts/Math.sol
[codex:520867] 2637:FILE: contracts/contracts/Media.sol
[codex:520867] 3217:FILE: contracts/contracts/interfaces/IMarket.sol
[codex:520867] 3317:FILE: contracts/contracts/interfaces/IMedia.sol
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Extracting core contract files**
[codex:520867] exec
[codex:520867] /bin/bash -lc "sed -n '1480,1554p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ont651uv succeeded in 6ms:
[codex:520867] FILE: contracts/contracts/Decimal.sol
[codex:520867] ================================================================================
[codex:520867] /*
[codex:520867]     Copyright 2019 dYdX Trading Inc.
[codex:520867]     Licensed under the Apache License, Version 2.0 (the "License");
[codex:520867]     you may not use this file except in compliance with the License.
[codex:520867]     You may obtain a copy of the License at
[codex:520867]     http://www.apache.org/licenses/LICENSE-2.0
[codex:520867]     Unless required by applicable law or agreed to in writing, software
[codex:520867]     distributed under the License is distributed on an "AS IS" BASIS,
[codex:520867]     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:520867]     See the License for the specific language governing permissions and
[codex:520867]     limitations under the License.
[codex:520867] */
[codex:520867] 
[codex:520867] pragma solidity 0.6.8;
[codex:520867] pragma experimental ABIEncoderV2;
[codex:520867] 
[codex:520867] /**
[codex:520867]  * NOTE: This file is a clone of the dydx protocol's Decimal.sol contract. It was forked from https://github.com/dydxprotocol/solo
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Preparing to work on ERC721**
[codex:520867] exec
[codex:520867] /bin/bash -lc "sed -n '1555,2150p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ont651uv succeeded in 5ms:
[codex:520867] FILE: contracts/contracts/ERC721.sol
[codex:520867] ================================================================================
[codex:520867] // SPDX-License-Identifier: MIT
[codex:520867] 
[codex:520867] /**
[codex:520867]  * NOTE: This file is a clone of the OpenZeppelin ERC721.sol contract. It was forked from https://github.com/OpenZeppelin/openzeppelin-contracts
[codex:520867]  * at commit 1ada3b633e5bfd9d4ffe0207d64773a11f5a7c40
[codex:520867]  *
[codex:520867]  *
[codex:520867]  * The following functions needed to be modified, prompting this clone:
[codex:520867]  *  - `_tokenURIs` visibility was changed from private to internal to support updating URIs after minting
[codex:520867]  *  - `_baseURI` visibiility was changed from private to internal to support fetching token URI even after the token was burned
[codex:520867]  *  - `_INTERFACE_ID_ERC721_METADATA` is no longer registered as an interface because _tokenURI now returns raw content instead of a JSON file, and supports updatable URIs
[codex:520867]  *  - `_approve` visibility was changed from private to internal to support EIP-2612 flavored permits and approval revocation by an approved address
[codex:520867]  */
[codex:520867] 
[codex:520867] pragma solidity 0.6.8;
[codex:520867] 
[codex:520867] import "@openzeppelin/contracts/GSN/Context.sol";
[codex:520867] import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Starting ERC721Burnable exploration**
[codex:520867] exec
[codex:520867] /bin/bash -lc "sed -n '2151,2190p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ont651uv succeeded in 5ms:
[codex:520867] FILE: contracts/contracts/ERC721Burnable.sol
[codex:520867] ================================================================================
[codex:520867] // SPDX-License-Identifier: MIT
[codex:520867] 
[codex:520867] /**
[codex:520867]  * NOTE: This file is a clone of the OpenZeppelin ERC721Burnable.sol contract. It was forked from https://github.com/OpenZeppelin/openzeppelin-contracts
[codex:520867]  * at commit 1ada3b633e5bfd9d4ffe0207d64773a11f5a7c40
[codex:520867]  *
[codex:520867]  * It was cloned in order to ensure it imported from the cloned ERC721.sol file. No other modifications have been made.
[codex:520867]  */
[codex:520867] 
[codex:520867] pragma solidity 0.6.8;
[codex:520867] 
[codex:520867] import "@openzeppelin/contracts/GSN/Context.sol";
[codex:520867] import "./ERC721.sol";
[codex:520867] 
[codex:520867] /**
[codex:520867]  * @title ERC721 Burnable Token
[codex:520867]  * @dev ERC721 Token that can be irreversibly burned (destroyed).
[codex:520867]  */
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Preparing for market analysis**
[codex:520867] exec
[codex:520867] /bin/bash -lc "sed -n '2190,2561p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ont651uv succeeded in 6ms:
[codex:520867] FILE: contracts/contracts/Market.sol
[codex:520867] ================================================================================
[codex:520867] // SPDX-License-Identifier: GPL-3.0
[codex:520867] 
[codex:520867] pragma solidity 0.6.8;
[codex:520867] pragma experimental ABIEncoderV2;
[codex:520867] 
[codex:520867] import {SafeMath} from "@openzeppelin/contracts/math/SafeMath.sol";
[codex:520867] import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
[codex:520867] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:520867] import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:520867] import {Decimal} from "./Decimal.sol";
[codex:520867] import {Media} from "./Media.sol";
[codex:520867] import {IMarket} from "./interfaces/IMarket.sol";
[codex:520867] 
[codex:520867] /**
[codex:520867]  * @title A Market for pieces of media
[codex:520867]  * @notice This contract contains all of the market logic for Media
[codex:520867]  */
[codex:520867] contract Market is IMarket {
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Identifying Math.sol**
[codex:520867] exec
[codex:520867] /bin/bash -lc "sed -n '2562,2636p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ont651uv succeeded in 6ms:
[codex:520867] FILE: contracts/contracts/Math.sol
[codex:520867] ================================================================================
[codex:520867] pragma solidity 0.6.8;
[codex:520867] pragma experimental ABIEncoderV2;
[codex:520867] 
[codex:520867] import {SafeMath} from "@openzeppelin/contracts/math/SafeMath.sol";
[codex:520867] 
[codex:520867] /**
[codex:520867]  * @title Math
[codex:520867]  *
[codex:520867]  * Library for non-standard Math functions
[codex:520867]  * NOTE: This file is a clone of the dydx protocol's Decimal.sol contract.
[codex:520867]  * It was forked from https://github.com/dydxprotocol/solo at commit
[codex:520867]  * 2d8454e02702fe5bc455b848556660629c3cad36. It has not been modified other than to use a
[codex:520867]  * newer solidity in the pragma to match the rest of the contract suite of this project.
[codex:520867]  */
[codex:520867] library Math {
[codex:520867]     using SafeMath for uint256;
[codex:520867] 
[codex:520867]     // ============ Library Functions ============
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Opening Media.sol file**
[codex:520867] exec
[codex:520867] /bin/bash -lc "sed -n '2637,3216p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ont651uv succeeded in 5ms:
[codex:520867] FILE: contracts/contracts/Media.sol
[codex:520867] ================================================================================
[codex:520867] // SPDX-License-Identifier: GPL-3.0
[codex:520867] pragma solidity 0.6.8;
[codex:520867] pragma experimental ABIEncoderV2;
[codex:520867] 
[codex:520867] import {ERC721Burnable} from "./ERC721Burnable.sol";
[codex:520867] import {ERC721} from "./ERC721.sol";
[codex:520867] import {EnumerableSet} from "@openzeppelin/contracts/utils/EnumerableSet.sol";
[codex:520867] import {Counters} from "@openzeppelin/contracts/utils/Counters.sol";
[codex:520867] import {SafeMath} from "@openzeppelin/contracts/math/SafeMath.sol";
[codex:520867] import {Math} from "@openzeppelin/contracts/math/Math.sol";
[codex:520867] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:520867] import {
[codex:520867]     ReentrancyGuard
[codex:520867] } from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:520867] import {Decimal} from "./Decimal.sol";
[codex:520867] import {IMarket} from "./interfaces/IMarket.sol";
[codex:520867] import "./interfaces/IMedia.sol";
[codex:520867] 
[codex:520867] 
[codex:520867] 
[codex:520867] 
[codex:520867] 
[codex:520867] 
[codex:520867] 
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Analyzing reentrancy and signature vulnerabilities**
[codex:520867] 
[codex:520867] I'm auditing potential vulnerabilities concentrating on reentrancy risks within Market and Media contracts—especially around token transfers involving ERC20 and ERC721 tokens—and signature validation issues in mintWithSig and permit functions, exploring scenarios that could lead to duplicate payouts or signature misuse due to missing reentrancy guards and incomplete signature data.
[codex:520867] thinking
[codex:520867] **Evaluating transfer and signature edge cases**
[codex:520867] 
[codex:520867] I’m carefully checking token transfer paths for reentrancy risks like missing nonReentrant guards on ERC721 transfer functions and ownership-dependent nonce mappings in signatures, as well as fee-on-transfer token handling issues that could cause auto-acceptance of underpaid bids and some quirks around minting order of state and external calls that might affect contract behavior unexpectedly.
[codex:520867] thinking
[codex:520867] **Analyzing access control and reentrancy boundaries**
[codex:520867] 
[codex:520867] I’m examining how token metadata updates can mismatch content hashes without strict checks, while also exploring subtle reentrancy patterns related to ERC721 transfers and bid acceptance, especially around nonReentrant coverage gaps on transfer functions and their impact on bid processing and state consistency.
[codex:520867] thinking
[codex:520867] **Examining token transfer reentrancy and state consistency**
[codex:520867] 
[codex:520867] I’m tracing how nested token transfers triggered during onERC721Received interact, especially regarding ownership updates, payments to previous owners, and bid acceptance flows, while also checking for potential issues with mappings, share calculations, and signature handling under state changes and reentrancy in the contract system.
[codex:520867] thinking
[codex:520867] **Analyzing ownership tracking and reentrancy nuances**
[codex:520867] 
[codex:520867] I’m exploring how previous owner tracking only updates on market transfers, leading to stale data after external transfers, and carefully checking interactions around reentrancy guards, external calls, and bid acceptance to assess potential inconsistencies or exploit paths.
[codex:520867] thinking
[codex:520867] **Examining signature scope and auto-accept logic issues**
[codex:520867] 
[codex:520867] I’m digging into how signatures exclude full URI data, possibly allowing URI mismatches, and focusing on a key bug in auto-accept that uses user-supplied bid amounts instead of actual received tokens, enabling fee-on-transfer tokens to underpay sellers and bypass bid validity checks.
[codex:520867] thinking
[codex:520867] **Analyzing reentrancy and configuration edge cases**
[codex:520867] 
[codex:520867] I’m reviewing how Market functions reenter during Media calls, noting that nonReentrant guards in Media prevent exploits despite Market lacking them. I also examine configuration risks when Market’s mediaContract is set to an EOA instead of a contract, which might allow unexpected direct calls but isn’t an exploit if owner is trusted.
[codex:520867] exec
[codex:520867] /bin/bash -lc 'rg -n "delegatecall|delegate" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ont651uv exited 1 in 11ms:
[codex:520867] 
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Analyzing bid validation in Market.sol**
[codex:520867] exec
[codex:520867] /bin/bash -lc "nl -ba contracts/contracts/Market.sol | sed -n '1,260p'" in /tmp/codex-multi-ont651uv succeeded in 6ms:
[codex:520867]      1	// SPDX-License-Identifier: GPL-3.0
[codex:520867]      2	
[codex:520867]      3	pragma solidity 0.6.8;
[codex:520867]      4	pragma experimental ABIEncoderV2;
[codex:520867]      5	
[codex:520867]      6	import {SafeMath} from "@openzeppelin/contracts/math/SafeMath.sol";
[codex:520867]      7	import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
[codex:520867]      8	import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:520867]      9	import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:520867]     10	import {Decimal} from "./Decimal.sol";
[codex:520867]     11	import {Media} from "./Media.sol";
[codex:520867]     12	import {IMarket} from "./interfaces/IMarket.sol";
[codex:520867]     13	
[codex:520867]     14	/**
[codex:520867]     15	 * @title A Market for pieces of media
[codex:520867]     16	 * @notice This contract contains all of the market logic for Media
[codex:520867]     17	 */
[codex:520867]     18	contract Market is IMarket {
[codex:520867]     19	    using SafeMath for uint256;
[codex:520867]     20	    using SafeERC20 for IERC20;
[codex:520867] exec
[codex:520867] /bin/bash -lc "nl -ba contracts/contracts/Market.sol | sed -n '260,420p'" in /tmp/codex-multi-ont651uv succeeded in 6ms:
[codex:520867]    260	            bid.currency == _tokenAsks[tokenId].currency &&
[codex:520867]    261	            bid.amount >= _tokenAsks[tokenId].amount
[codex:520867]    262	        ) {
[codex:520867]    263	            // Finalize exchange
[codex:520867]    264	            _finalizeNFTTransfer(tokenId, bid.bidder);
[codex:520867]    265	        }
[codex:520867]    266	    }
[codex:520867]    267	
[codex:520867]    268	    /**
[codex:520867]    269	     * @notice Removes the bid on a particular media for a bidder. The bid amount
[codex:520867]    270	     * is transferred from this contract to the bidder, if they have a bid placed.
[codex:520867]    271	     */
[codex:520867]    272	    function removeBid(uint256 tokenId, address bidder)
[codex:520867]    273	        public
[codex:520867]    274	        override
[codex:520867]    275	        onlyMediaCaller
[codex:520867]    276	    {
[codex:520867]    277	        Bid storage bid = _tokenBidders[tokenId][bidder];
[codex:520867]    278	        uint256 bidAmount = bid.amount;
[codex:520867]    279	        address bidCurrency = bid.currency;
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Verifying relevant code line ranges**
[codex:520867] exec
[codex:520867] /bin/bash -lc "nl -ba contracts/contracts/Media.sol | sed -n '120,360p'" in /tmp/codex-multi-ont651uv succeeded in 6ms:
[codex:520867]    120	     * the media for the specified tokenId
[codex:520867]    121	     */
[codex:520867]    122	    modifier onlyApprovedOrOwner(address spender, uint256 tokenId) {
[codex:520867]    123	        require(
[codex:520867]    124	            _isApprovedOrOwner(spender, tokenId),
[codex:520867]    125	            "Media: Only approved or owner"
[codex:520867]    126	        );
[codex:520867]    127	        _;
[codex:520867]    128	    }
[codex:520867]    129	
[codex:520867]    130	    /**
[codex:520867]    131	     * @notice Ensure the token has been created (even if it has been burned)
[codex:520867]    132	     */
[codex:520867]    133	    modifier onlyTokenCreated(uint256 tokenId) {
[codex:520867]    134	        require(
[codex:520867]    135	            _tokenIdTracker.current() > tokenId,
[codex:520867]    136	            "Media: token with that id does not exist"
[codex:520867]    137	        );
[codex:520867]    138	        _;
[codex:520867]    139	    }
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Assessing signature validation and bid handling issues**
[codex:520867] exec
[codex:520867] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-ont651uv succeeded in 5ms:
[codex:520867] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:520867] 
[codex:520867] thinking
[codex:520867] **Constructing detailed JSON output for findings**
[codex:520867] 
[codex:520867] I'll carefully assemble the JSON with the required keys—no_findings, summary, and findings—ensuring the summary captures the medium-severity auto-accept bid validation issue, while evidence pinpoints specific code lines without using line ranges, to comply with developer instructions.
[codex:520867] codex
[codex:520867] {"no_findings":false,"summary":"Found 1 medium-severity issue where auto-acceptance can finalize bids that are underfunded or not evenly splittable, causing underpayment and/or stuck dust.","findings":[{"severity":"medium","category":"other","title":"Auto-accept uses unadjusted bid amount and skips bid validation","exploit_scenario":"A seller sets an ask of 100 tokens. A bidder uses a fee-on-transfer ERC20 and submits a bid for 100. The market receives only 90 (stored as the bid amount), but the auto-accept path checks the original 100 and immediately finalizes the sale. The seller receives only 90 (split by shares), yet the NFT transfers. Similarly, bids that do not split evenly into shares can still auto-accept, leaving remainder dust in the market contract.","recommendation":"When auto-accepting, compare the stored bid amount (after balance diff) against the ask, and require isValidBid(tokenId, storedAmount) before calling _finalizeNFTTransfer. Consider emitting the normalized amount in the BidCreated event for off-chain consistency.","evidence":"In Market.setBid, the actual received amount is stored using the before/after balance diff, but the auto-accept check uses the original bid.amount and does not enforce isValidBid before _finalizeNFTTransfer.","locations":["contracts/contracts/Market.sol:241","contracts/contracts/Market.sol:247","contracts/contracts/Market.sol:256","contracts/contracts/Market.sol:261","contracts/contracts/Market.sol:264"]}]}
[codex:520867] tokens used
[codex:520867] 70,309
[codex:520867] {"no_findings":false,"summary":"Found 1 medium-severity issue where auto-acceptance can finalize bids that are underfunded or not evenly splittable, causing underpayment and/or stuck dust.","findings":[{"severity":"medium","category":"other","title":"Auto-accept uses unadjusted bid amount and skips bid validation","exploit_scenario":"A seller sets an ask of 100 tokens. A bidder uses a fee-on-transfer ERC20 and submits a bid for 100. The market receives only 90 (stored as the bid amount), but the auto-accept path checks the original 100 and immediately finalizes the sale. The seller receives only 90 (split by shares), yet the NFT transfers. Similarly, bids that do not split evenly into shares can still auto-accept, leaving remainder dust in the market contract.","recommendation":"When auto-accepting, compare the stored bid amount (after balance diff) against the ask, and require isValidBid(tokenId, storedAmount) before calling _finalizeNFTTransfer. Consider emitting the normalized amount in the BidCreated event for off-chain consistency.","evidence":"In Market.setBid, the actual received amount is stored using the before/after balance diff, but the auto-accept check uses the original bid.amount and does not enforce isValidBid before _finalizeNFTTransfer.","locations":["contracts/contracts/Market.sol:241","contracts/contracts/Market.sol:247","contracts/contracts/Market.sol:256","contracts/contracts/Market.sol:261","contracts/contracts/Market.sol:264"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T16:48:06.071934+00:00",
        "returncode": 0
    },
    "summary": "Found 1 medium-severity issue where auto-acceptance can finalize bids that are underfunded or not evenly splittable, causing underpayment and/or stuck dust.",
    "raw_final": {
        "summary": "Found 1 medium-severity issue where auto-acceptance can finalize bids that are underfunded or not evenly splittable, causing underpayment and/or stuck dust.",
        "findings": [
            {
                "title": "Auto-accept uses unadjusted bid amount and skips bid validation",
                "category": "other",
                "evidence": "In Market.setBid, the actual received amount is stored using the before/after balance diff, but the auto-accept check uses the original bid.amount and does not enforce isValidBid before _finalizeNFTTransfer.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/Market.sol:241",
                    "contracts/contracts/Market.sol:247",
                    "contracts/contracts/Market.sol:256",
                    "contracts/contracts/Market.sol:261",
                    "contracts/contracts/Market.sol:264"
                ],
                "recommendation": "When auto-accepting, compare the stored bid amount (after balance diff) against the ask, and require isValidBid(tokenId, storedAmount) before calling _finalizeNFTTransfer. Consider emitting the normalized amount in the BidCreated event for off-chain consistency.",
                "exploit_scenario": "A seller sets an ask of 100 tokens. A bidder uses a fee-on-transfer ERC20 and submits a bid for 100. The market receives only 90 (stored as the bid amount), but the auto-accept path checks the original 100 and immediately finalizes the sale. The seller receives only 90 (split by shares), yet the NFT transfers. Similarly, bids that do not split evenly into shares can still auto-accept, leaving remainder dust in the market contract."
            }
        ],
        "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
7
Total opcodes
5292
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x00ea
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x776a0835
00000026: GT
00000027: PUSH2 0x008c
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xba339399
00000031: GT
00000032: PUSH2 0x0066
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xba339399
0000003c: EQ
0000003d: PUSH2 0x01ee
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xbdb58698
00000047: EQ
00000048: PUSH2 0x0201
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xeb55683a
00000052: EQ
00000053: PUSH2 0x0214
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xf9ce0582
0000005d: EQ
0000005e: PUSH2 0x0227
00000061: JUMPI
00000062: PUSH2 0x00ea
00000065: JUMP
00000066: JUMPDEST
00000067: DUP1
00000068: PUSH4 0x776a0835
0000006d: EQ
0000006e: PUSH2 0x019b
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0xad827dc4
00000078: EQ
00000079: PUSH2 0x01ae
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0xb920c123
00000083: EQ
00000084: PUSH2 0x01ce
00000087: JUMPI
00000088: PUSH2 0x00ea
0000008b: JUMP
0000008c: JUMPDEST
0000008d: DUP1
0000008e: PUSH4 0x4e21f9c0
00000093: GT
00000094: PUSH2 0x00c8
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0x4e21f9c0
0000009e: EQ
0000009f: PUSH2 0x0140
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0x578064f6
000000a9: EQ
000000aa: PUSH2 0x0155
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0x62f24b70
000000b4: EQ
000000b5: PUSH2 0x0175
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0x75cb2672
000000bf: EQ
000000c0: PUSH2 0x0188
000000c3: JUMPI
000000c4: PUSH2 0x00ea
000000c7: JUMP
000000c8: JUMPDEST
000000c9: DUP1
000000ca: PUSH4 0x02e8fe13
000000cf: EQ
000000d0: PUSH2 0x00ef
000000d3: JUMPI
000000d4: DUP1
000000d5: PUSH4 0x28220f35
000000da: EQ
000000db: PUSH2 0x0118
000000de: JUMPI
000000df: DUP1
000000e0: PUSH4 0x360636eb
000000e5: EQ
000000e6: PUSH2 0x012d
000000e9: JUMPI
000000ea: JUMPDEST
000000eb: PUSH1 0x00
000000ed: DUP1
000000ee: REVERT
000000ef: JUMPDEST
000000f0: PUSH2 0x0102
000000f3: PUSH2 0x00fd
000000f6: CALLDATASIZE
000000f7: PUSH1 0x04
000000f9: PUSH2 0x18fb
000000fc: JUMP
000000fd: JUMPDEST
000000fe: PUSH2 0x0247
00000101: JUMP
00000102: JUMPDEST
00000103: PUSH1 0x40
00000105: MLOAD
00000106: PUSH2 0x010f
00000109: SWAP2
0000010a: SWAP1
0000010b: PUSH2 0x1989
0000010e: JUMP
0000010f: JUMPDEST
00000110: PUSH1 0x40
00000112: MLOAD
00000113: DUP1
00000114: SWAP2
00000115: SUB
00000116: SWAP1
00000117: RETURN
00000118: JUMPDEST
00000119: PUSH2 0x012b
0000011c: PUSH2 0x0126
0000011f: CALLDATASIZE
00000120: PUSH1 0x04
00000122: PUSH2 0x1740
00000125: JUMP
00000126: JUMPDEST
00000127: PUSH2 0x02dd
0000012a: JUMP
0000012b: JUMPDEST
0000012c: STOP
0000012d: JUMPDEST
0000012e: PUSH2 0x0102
00000131: PUSH2 0x013b
00000134: CALLDATASIZE
00000135: PUSH1 0x04
00000137: PUSH2 0x16fb
0000013a: JUMP
0000013b: JUMPDEST
0000013c: PUSH2 0x0375
0000013f: JUMP
00000140: JUMPDEST
00000141: PUSH2 0x0148
00000144: PUSH2 0x03bb
00000147: JUMP
00000148: JUMPDEST
00000149: PUSH1 0x40
0000014b: MLOAD
0000014c: PUSH2 0x010f
0000014f: SWAP2
00000150: SWAP1
00000151: PUSH2 0x1938
00000154: JUMP
00000155: JUMPDEST
00000156: PUSH2 0x0168
00000159: PUSH2 0x0163
0000015c: CALLDATASIZE
0000015d: PUSH1 0x04
0000015f: PUSH2 0x1740
00000162: JUMP
00000163: JUMPDEST
00000164: PUSH2 0x03ca
00000167: JUMP
00000168: JUMPDEST
00000169: PUSH1 0x40
0000016b: MLOAD
0000016c: PUSH2 0x010f
0000016f: SWAP2
00000170: SWAP1
00000171: PUSH2 0x1ed4
00000174: JUMP
00000175: JUMPDEST
00000176: PUSH2 0x012b
00000179: PUSH2 0x0183
0000017c: CALLDATASIZE
0000017d: PUSH1 0x04
0000017f: PUSH2 0x179f
00000182: JUMP
00000183: JUMPDEST
00000184: PUSH2 0x0405
00000187: JUMP
00000188: JUMPDEST
00000189: PUSH2 0x012b
0000018c: PUSH2 0x0196
0000018f: CALLDATASIZE
00000190: PUSH1 0x04
00000192: PUSH2 0x16a3
00000195: JUMP
00000196: JUMPDEST
00000197: PUSH2 0x04d1
0000019a: JUMP
0000019b: JUMPDEST
0000019c: PUSH2 0x012b
0000019f: PUSH2 0x01a9
000001a2: CALLDATASIZE
000001a3: PUSH1 0x04
000001a5: PUSH2 0x1770
000001a8: JUMP
000001a9: JUMPDEST
000001aa: PUSH2 0x056c
000001ad: JUMP
000001ae: JUMPDEST
000001af: PUSH2 0x01c1
000001b2: PUSH2 0x01bc
000001b5: CALLDATASIZE
000001b6: PUSH1 0x04
000001b8: PUSH2 0x1770
000001bb: JUMP
000001bc: JUMPDEST
000001bd: PUSH2 0x0692
000001c0: JUMP
000001c1: JUMPDEST
000001c2: PUSH1 0x40
000001c4: MLOAD
000001c5: PUSH2 0x010f
000001c8: SWAP2
000001c9: SWAP1
000001ca: PUSH2 0x1f55
000001cd: JUMP
000001ce: JUMPDEST
000001cf: PUSH2 0x01e1
000001d2: PUSH2 0x01dc
000001d5: CALLDATASIZE
000001d6: PUSH1 0x04
000001d8: PUSH2 0x1716
000001db: JUMP
000001dc: JUMPDEST
000001dd: PUSH2 0x0708
000001e0: JUMP
000001e1: JUMPDEST
000001e2: PUSH1 0x40
000001e4: MLOAD
000001e5: PUSH2 0x010f
000001e8: SWAP2
000001e9: SWAP1
000001ea: PUSH2 0x1fdf
000001ed: JUMP
000001ee: JUMPDEST
000001ef: PUSH2 0x012b
000001f2: PUSH2 0x01fc
000001f5: CALLDATASIZE
000001f6: PUSH1 0x04
000001f8: PUSH2 0x1823
000001fb: JUMP
000001fc: JUMPDEST
000001fd: PUSH2 0x072c
00000200: JUMP
00000201: JUMPDEST
00000202: PUSH2 0x012b
00000205: PUSH2 0x020f
00000208: CALLDATASIZE
00000209: PUSH1 0x04
0000020b: PUSH2 0x1859
0000020e: JUMP
0000020f: JUMPDEST
00000210: PUSH2 0x08d7
00000213: JUMP
00000214: JUMPDEST
00000215: PUSH2 0x012b
00000218: PUSH2 0x0222
0000021b: CALLDATASIZE
0000021c: PUSH1 0x04
0000021e: PUSH2 0x17f7
00000221: JUMP
00000222: JUMPDEST
00000223: PUSH2 0x0d29
00000226: JUMP
00000227: JUMPDEST
00000228: PUSH2 0x023a
0000022b: PUSH2 0x0235
0000022e: CALLDATASIZE
0000022f: PUSH1 0x04
00000231: PUSH2 0x1740
00000234: JUMP
00000235: JUMPDEST
00000236: PUSH2 0x0dd4
00000239: JUMP
0000023a: JUMPDEST
0000023b: PUSH1 0x40
0000023d: MLOAD
0000023e: PUSH2 0x010f
00000241: SWAP2
00000242: SWAP1
00000243: PUSH2 0x1f12
00000246: JUMP
00000247: JUMPDEST
00000248: PUSH1 0x00
0000024a: PUSH2 0x0251
0000024d: PUSH2 0x1589
00000250: JUMP
00000251: JUMPDEST
00000252: PUSH2 0x025a
00000255: DUP5
00000256: PUSH2 0x0dd4
00000259: JUMP
0000025a: JUMPDEST
0000025b: SWAP1
0000025c: POP
0000025d: PUSH2 0x0265
00000260: DUP2
00000261: PUSH2 0x0375
00000264: JUMP
00000265: JUMPDEST
00000266: PUSH2 0x028a
00000269: JUMPI
0000026a: PUSH1 0x40
0000026c: MLOAD
0000026d: PUSH3 0x461bcd
00000271: PUSH1 0xe5
00000273: SHL
00000274: DUP2
00000275: MSTORE
00000276: PUSH1 0x04
00000278: ADD
00000279: PUSH2 0x0281
0000027c: SWAP1
0000027d: PUSH2 0x1d3e
00000280: JUMP
00000281: JUMPDEST
00000282: PUSH1 0x40
00000284: MLOAD
00000285: DUP1
00000286: SWAP2
00000287: SUB
00000288: SWAP1
00000289: REVERT
0000028a: JUMPDEST
0000028b: DUP3
0000028c: ISZERO
0000028d: DUP1
0000028e: ISZERO
0000028f: SWAP1
00000290: PUSH2 0x02d3
00000293: JUMPI
00000294: POP
00000295: PUSH2 0x02d0
00000298: PUSH2 0x02a5
0000029b: DUP3
0000029c: PUSH1 0x40
0000029e: ADD
0000029f: MLOAD
000002a0: DUP6
000002a1: PUSH2 0x0708
000002a4: JUMP
000002a5: JUMPDEST
000002a6: PUSH2 0x02c4
000002a9: PUSH2 0x02b6
000002ac: DUP5
000002ad: PUSH1 0x00
000002af: ADD
000002b0: MLOAD
000002b1: DUP8
000002b2: PUSH2 0x0708
000002b5: JUMP
000002b6: JUMPDEST
000002b7: PUSH2 0x02c4
000002ba: DUP6
000002bb: PUSH1 0x20
000002bd: ADD
000002be: MLOAD
000002bf: DUP9
000002c0: PUSH2 0x0708
000002c3: JUMP
000002c4: JUMPDEST
000002c5: SWAP1
000002c6: PUSH4 0xffffffff
000002cb: PUSH2 0x0e2a
000002ce: AND
000002cf: JUMP
000002d0: JUMPDEST
000002d1: DUP4
000002d2: EQ
000002d3: JUMPDEST
000002d4: SWAP2
000002d5: POP
000002d6: POP
000002d7: JUMPDEST
000002d8: SWAP3
000002d9: SWAP2
000002da: POP
000002db: POP
000002dc: JUMP
000002dd: JUMPDEST
000002de: PUSH1 0x00
000002e0: SLOAD
000002e1: PUSH1 0x01
000002e3: PUSH1 0x01
000002e5: PUSH1 0xa0
000002e7: SHL
000002e8: SUB
000002e9: AND
000002ea: CALLER
000002eb: EQ
000002ec: PUSH2 0x0307
000002ef: JUMPI
000002f0: PUSH1 0x40
000002f2: MLOAD
000002f3: PUSH3 0x461bcd
000002f7: PUSH1 0xe5
000002f9: SHL
000002fa: DUP2
000002fb: MSTORE
000002fc: PUSH1 0x04
000002fe: ADD
000002ff: PUSH2 0x0281
00000302: SWAP1
00000303: PUSH2 0x1cb8
00000306: JUMP
00000307: JUMPDEST
00000308: DUP1
00000309: PUSH32 0xbf58f6d6c7d7c6efc69e7444efa93ed26d7cdc0e82e12a37df96f36a367561df
0000032a: PUSH1 0x04
0000032c: PUSH1 0x00
0000032e: DUP5
0000032f: DUP2
00000330: MSTORE
00000331: PUSH1 0x20
00000333: ADD
00000334: SWAP1
00000335: DUP2
00000336: MSTORE
00000337: PUSH1 0x20
00000339: ADD
0000033a: PUSH1 0x00
0000033c: KECCAK256
0000033d: PUSH1 0x40
0000033f: MLOAD
00000340: PUSH2 0x0349
00000343: SWAP2
00000344: SWAP1
00000345: PUSH2 0x1ef4
00000348: JUMP
00000349: JUMPDEST
0000034a: PUSH1 0x40
0000034c: MLOAD
0000034d: DUP1
0000034e: SWAP2
0000034f: SUB
00000350: SWAP1
00000351: LOG2
00000352: PUSH1 0x00
00000354: SWAP1
00000355: DUP2
00000356: MSTORE
00000357: PUSH1 0x04
00000359: PUSH1 0x20
0000035b: MSTORE
0000035c: PUSH1 0x40
0000035e: DUP2
0000035f: KECCAK256
00000360: SWAP1
00000361: DUP2
00000362: SSTORE
00000363: PUSH1 0x01
00000365: ADD
00000366: DUP1
00000367: SLOAD
00000368: PUSH1 0x01
0000036a: PUSH1 0x01
0000036c: PUSH1 0xa0
0000036e: SHL
0000036f: SUB
00000370: NOT
00000371: AND
00000372: SWAP1
00000373: SSTORE
00000374: JUMP
00000375: JUMPDEST
00000376: PUSH1 0x00
00000378: PUSH2 0x0390
0000037b: PUSH1 0x64
0000037d: PUSH8 0x0de0b6b3a7640000
00000386: PUSH4 0xffffffff
0000038b: PUSH2 0x0e4f
0000038e: AND
0000038f: JUMP
00000390: JUMPDEST
00000391: DUP3
00000392: MLOAD
00000393: MLOAD
00000394: PUSH1 0x40
00000396: DUP5
00000397: ADD
00000398: MLOAD
00000399: MLOAD
0000039a: PUSH1 0x20
0000039c: DUP6
0000039d: ADD
0000039e: MLOAD
0000039f: MLOAD
000003a0: PUSH2 0x03b4
000003a3: SWAP3
000003a4: SWAP2
000003a5: PUSH2 0x02c4
000003a8: SWAP2
000003a9: SWAP1
000003aa: PUSH4 0xffffffff
000003af: PUSH2 0x0e2a
000003b2: AND
000003b3: JUMP
000003b4: JUMPDEST
000003b5: EQ
000003b6: SWAP3
000003b7: SWAP2
000003b8: POP
000003b9: POP
000003ba: JUMP
000003bb: JUMPDEST
000003bc: PUSH1 0x00
000003be: SLOAD
000003bf: PUSH1 0x01
000003c1: PUSH1 0x01
000003c3: PUSH1 0xa0
000003c5: SHL
000003c6: SUB
000003c7: AND
000003c8: DUP2
000003c9: JUMP
000003ca: JUMPDEST
000003cb: PUSH2 0x03d2
000003ce: PUSH2 0x15bb
000003d1: JUMP
000003d2: JUMPDEST
000003d3: POP
000003d4: PUSH1 0x00
000003d6: SWAP1
000003d7: DUP2
000003d8: MSTORE
000003d9: PUSH1 0x04
000003db: PUSH1 0x20
000003dd: SWAP1
000003de: DUP2
000003df: MSTORE
000003e0: PUSH1 0x40
000003e2: SWAP2
000003e3: DUP3
000003e4: SWAP1
000003e5: KECCAK256
000003e6: DUP3
000003e7: MLOAD
000003e8: DUP1
000003e9: DUP5
000003ea: ADD
000003eb: SWAP1
000003ec: SWAP4
000003ed: MSTORE
000003ee: DUP1
000003ef: SLOAD
000003f0: DUP4
000003f1: MSTORE
000003f2: PUSH1 0x01
000003f4: ADD
000003f5: SLOAD
000003f6: PUSH1 0x01
000003f8: PUSH1 0x01
000003fa: PUSH1 0xa0
000003fc: SHL
000003fd: SUB
000003fe: AND
000003ff: SWAP1
00000400: DUP3
00000401: ADD
00000402: MSTORE
00000403: SWAP1
00000404: JUMP
00000405: JUMPDEST
00000406: PUSH1 0x00
00000408: SLOAD
00000409: PUSH1 0x01
0000040b: PUSH1 0x01
0000040d: PUSH1 0xa0
0000040f: SHL
00000410: SUB
00000411: AND
00000412: CALLER
00000413: EQ
00000414: PUSH2 0x042f
00000417: JUMPI
00000418: PUSH1 0x40
0000041a: MLOAD
0000041b: PUSH3 0x461bcd
0000041f: PUSH1 0xe5
00000421: SHL
00000422: DUP2
00000423: MSTORE
00000424: PUSH1 0x04
00000426: ADD
00000427: PUSH2 0x0281
0000042a: SWAP1
0000042b: PUSH2 0x1cb8
0000042e: JUMP
0000042f: JUMPDEST
00000430: PUSH2 0x043d
00000433: DUP3
00000434: DUP3
00000435: PUSH1 0x00
00000437: ADD
00000438: MLOAD
00000439: PUSH2 0x0247
0000043c: JUMP
0000043d: JUMPDEST
0000043e: PUSH2 0x0459
00000441: JUMPI
00000442: PUSH1 0x40
00000444: MLOAD
00000445: PUSH3 0x461bcd
00000449: PUSH1 0xe5
0000044b: SHL
0000044c: DUP2
0000044d: MSTORE
0000044e: PUSH1 0x04
00000450: ADD
00000451: PUSH2 0x0281
00000454: SWAP1
00000455: PUSH2 0x1ae3
00000458: JUMP
00000459: JUMPDEST
0000045a: PUSH1 0x00
0000045c: DUP3
0000045d: DUP2
0000045e: MSTORE
0000045f: PUSH1 0x04
00000461: PUSH1 0x20
00000463: SWAP1
00000464: DUP2
00000465: MSTORE
00000466: PUSH1 0x40
00000468: SWAP2
00000469: DUP3
0000046a: SWAP1
0000046b: KECCAK256
0000046c: DUP4
0000046d: MLOAD
0000046e: DUP2
0000046f: SSTORE
00000470: SWAP1
00000471: DUP4
00000472: ADD
00000473: MLOAD
00000474: PUSH1 0x01
00000476: SWAP1
00000477: SWAP2
00000478: ADD
00000479: DUP1
0000047a: SLOAD
0000047b: PUSH1 0x01
0000047d: PUSH1 0x01
0000047f: PUSH1 0xa0
00000481: SHL
00000482: SUB
00000483: NOT
00000484: AND
00000485: PUSH1 0x01
00000487: PUSH1 0x01
00000489: PUSH1 0xa0
0000048b: SHL
0000048c: SUB
0000048d: SWAP1
0000048e: SWAP3
0000048f: AND
00000490: SWAP2
00000491: SWAP1
00000492: SWAP2
00000493: OR
00000494: SWAP1
00000495: SSTORE
00000496: MLOAD
00000497: DUP3
00000498: SWAP1
00000499: PUSH32 0xf7347cb9e91d8cbe995b51920ba5f92cbf84a9e09cbed3cd7a739fef4d1d07cf
000004ba: SWAP1
000004bb: PUSH2 0x04c5
000004be: SWAP1
000004bf: DUP5
000004c0: SWAP1
000004c1: PUSH2 0x1ed4
000004c4: JUMP
000004c5: JUMPDEST
000004c6: PUSH1 0x40
000004c8: MLOAD
000004c9: DUP1
000004ca: SWAP2
000004cb: SUB
000004cc: SWAP1
000004cd: LOG2
000004ce: POP
000004cf: POP
000004d0: JUMP
000004d1: JUMPDEST
000004d2: PUSH1 0x01
000004d4: SLOAD
000004d5: PUSH1 0x01
000004d7: PUSH1 0x01
000004d9: PUSH1 0xa0
000004db: SHL
000004dc: SUB
000004dd: AND
000004de: CALLER
000004df: EQ
000004e0: PUSH2 0x04fb
000004e3: JUMPI
000004e4: PUSH1 0x40
000004e6: MLOAD
000004e7: PUSH3 0x461bcd
000004eb: PUSH1 0xe5
000004ed: SHL
000004ee: DUP2
000004ef: MSTORE
000004f0: PUSH1 0x04
000004f2: ADD
000004f3: PUSH2 0x0281
000004f6: SWAP1
000004f7: PUSH2 0x1c14
000004fa: JUMP
000004fb: JUMPDEST
000004fc: PUSH1 0x00
000004fe: SLOAD
000004ff: PUSH1 0x01
00000501: PUSH1 0x01
00000503: PUSH1 0xa0
00000505: SHL
00000506: SUB
00000507: AND
00000508: ISZERO
00000509: PUSH2 0x0524
0000050c: JUMPI
0000050d: PUSH1 0x40
0000050f: MLOAD
00000510: PUSH3 0x461bcd
00000514: PUSH1 0xe5
00000516: SHL
00000517: DUP2
00000518: MSTORE
00000519: PUSH1 0x04
0000051b: ADD
0000051c: PUSH2 0x0281
0000051f: SWAP1
00000520: PUSH2 0x1db9
00000523: JUMP
00000524: JUMPDEST
00000525: PUSH1 0x01
00000527: PUSH1 0x01
00000529: PUSH1 0xa0
0000052b: SHL
0000052c: SUB
0000052d: DUP2
0000052e: AND
0000052f: PUSH2 0x054a
00000532: JUMPI
00000533: PUSH1 0x40
00000535: MLOAD
00000536: PUSH3 0x461bcd
0000053a: PUSH1 0xe5
0000053c: SHL
0000053d: DUP2
0000053e: MSTORE
0000053f: PUSH1 0x04
00000541: ADD
00000542: PUSH2 0x0281
00000545: SWAP1
00000546: PUSH2 0x1e83
00000549: JUMP
0000054a: JUMPDEST
0000054b: PUSH1 0x00
0000054d: DUP1
0000054e: SLOAD
0000054f: PUSH1 0x01
00000551: PUSH1 0x01
00000553: PUSH1 0xa0
00000555: SHL
00000556: SUB
00000557: NOT
00000558: AND
00000559: PUSH1 0x01
0000055b: PUSH1 0x01
0000055d: PUSH1 0xa0
0000055f: SHL
00000560: SUB
00000561: SWAP3
00000562: SWAP1
00000563: SWAP3
00000564: AND
00000565: SWAP2
00000566: SWAP1
00000567: SWAP2
00000568: OR
00000569: SWAP1
0000056a: SSTORE
0000056b: JUMP
0000056c: JUMPDEST
0000056d: PUSH1 0x00
0000056f: SLOAD
00000570: PUSH1 0x01
00000572: PUSH1 0x01
00000574: PUSH1 0xa0
00000576: SHL
00000577: SUB
00000578: AND
00000579: CALLER
0000057a: EQ
0000057b: PUSH2 0x0596
0000057e: JUMPI
0000057f: PUSH1 0x40
00000581: MLOAD
00000582: PUSH3 0x461bcd
00000586: PUSH1 0xe5
00000588: SHL
00000589: DUP2
0000058a: MSTORE
0000058b: PUSH1 0x04
0000058d: ADD
0000058e: PUSH2 0x0281
00000591: SWAP1
00000592: PUSH2 0x1cb8
00000595: JUMP
00000596: JUMPDEST
00000597: PUSH1 0x00
00000599: DUP3
0000059a: DUP2
0000059b: MSTORE
0000059c: PUSH1 0x02
0000059e: PUSH1 0x20
000005a0: SWAP1
000005a1: DUP2
000005a2: MSTORE
000005a3: PUSH1 0x40
000005a5: DUP1
000005a6: DUP4
000005a7: KECCAK256
000005a8: PUSH1 0x01
000005aa: PUSH1 0x01
000005ac: PUSH1 0xa0
000005ae: SHL
000005af: SUB
000005b0: DUP1
000005b1: DUP7
000005b2: AND
000005b3: DUP6
000005b4: MSTORE
000005b5: SWAP3
000005b6: MSTORE
000005b7: SWAP1
000005b8: SWAP2
000005b9: KECCAK256
000005ba: DUP1
000005bb: SLOAD
000005bc: PUSH1 0x01
000005be: DUP3
000005bf: ADD
000005c0: SLOAD
000005c1: SWAP2
000005c2: SWAP3
000005c3: SWAP1
000005c4: SWAP2
000005c5: AND
000005c6: DUP2
000005c7: PUSH2 0x05e2
000005ca: JUMPI
000005cb: PUSH1 0x40
000005cd: MLOAD
000005ce: PUSH3 0x461bcd
000005d2: PUSH1 0xe5
000005d4: SHL
000005d5: DUP2
000005d6: MSTORE
000005d7: PUSH1 0x04
000005d9: ADD
000005da: PUSH2 0x0281
000005dd: SWAP1
000005de: PUSH2 0x1b61
000005e1: JUMP
000005e2: JUMPDEST
000005e3: PUSH1 0x00
000005e5: DUP2
000005e6: SWAP1
000005e7: POP
000005e8: DUP6
000005e9: PUSH32 0xcbebd567b8a5c57f63ec61dc46746aab28daff6bdd1f4a6a0a305c17fa5465c9
0000060a: DUP6
0000060b: PUSH1 0x40
0000060d: MLOAD
0000060e: PUSH2 0x0617
00000611: SWAP2
00000612: SWAP1
00000613: PUSH2 0x1f9e
00000616: JUMP
00000617: JUMPDEST
00000618: PUSH1 0x40
0000061a: MLOAD
0000061b: DUP1
0000061c: SWAP2
0000061d: SUB
0000061e: SWAP1
0000061f: LOG2
00000620: PUSH1 0x00
00000622: DUP7
00000623: DUP2
00000624: MSTORE
00000625: PUSH1 0x02
00000627: PUSH1 0x20
00000629: DUP2
0000062a: DUP2
0000062b: MSTORE
0000062c: PUSH1 0x40
0000062e: DUP1
0000062f: DUP5
00000630: KECCAK256
00000631: PUSH1 0x01
00000633: PUSH1 0x01
00000635: PUSH1 0xa0
00000637: SHL
00000638: SUB
00000639: DUP1
0000063a: DUP12
0000063b: AND
0000063c: DUP7
0000063d: MSTORE
0000063e: SWAP3
0000063f: MSTORE
00000640: DUP4
00000641: KECCAK256
00000642: DUP4
00000643: DUP2
00000644: SSTORE
00000645: PUSH1 0x01
00000647: DUP2
00000648: ADD
00000649: DUP1
0000064a: SLOAD
0000064b: PUSH1 0x01
0000064d: PUSH1 0x01
0000064f: PUSH1 0xa0
00000651: SHL
00000652: SUB
00000653: NOT
00000654: SWAP1
00000655: DUP2
00000656: AND
00000657: SWAP1
00000658: SWAP2
00000659: SSTORE
0000065a: SWAP3
0000065b: DUP2
0000065c: ADD
0000065d: DUP1
0000065e: SLOAD
0000065f: DUP5
00000660: AND
00000661: SWAP1
00000662: SSTORE
00000663: PUSH1 0x03
00000665: DUP2
00000666: ADD
00000667: DUP1
00000668: SLOAD
00000669: SWAP1
0000066a: SWAP4
0000066b: AND
0000066c: SWAP1
0000066d: SWAP3
0000066e: SSTORE
0000066f: PUSH1 0x04
00000671: SWAP1
00000672: SWAP2
00000673: ADD
00000674: SWAP2
00000675: SWAP1
00000676: SWAP2
00000677: SSTORE
00000678: PUSH2 0x068a
0000067b: SWAP1
0000067c: DUP3
0000067d: AND
0000067e: DUP7
0000067f: DUP6
00000680: PUSH4 0xffffffff
00000685: PUSH2 0x0e89
00000688: AND
00000689: JUMP
0000068a: JUMPDEST
0000068b: POP
0000068c: POP
0000068d: POP
0000068e: POP
0000068f: POP
00000690: POP
00000691: JUMP
00000692: JUMPDEST
00000693: PUSH2 0x069a
00000696: PUSH2 0x15d2
00000699: JUMP
0000069a: JUMPDEST
0000069b: POP
0000069c: PUSH1 0x00
0000069e: SWAP2
0000069f: DUP3
000006a0: MSTORE
000006a1: PUSH1 0x02
000006a3: PUSH1 0x20
000006a5: DUP2
000006a6: DUP2
000006a7: MSTORE
000006a8: PUSH1 0x40
000006aa: DUP1
000006ab: DUP6
000006ac: KECCAK256
000006ad: PUSH1 0x01
000006af: PUSH1 0x01
000006b1: PUSH1 0xa0
000006b3: SHL
000006b4: SUB
000006b5: SWAP5
000006b6: DUP6
000006b7: AND
000006b8: DUP7
000006b9: MSTORE
000006ba: DUP3
000006bb: MSTORE
000006bc: SWAP4
000006bd: DUP5
000006be: SWAP1
000006bf: KECCAK256
000006c0: DUP5
000006c1: MLOAD
000006c2: PUSH1 0xa0
000006c4: DUP2
000006c5: ADD
000006c6: DUP7
000006c7: MSTORE
000006c8: DUP2
000006c9: SLOAD
000006ca: DUP2
000006cb: MSTORE
000006cc: PUSH1 0x01
000006ce: DUP3
000006cf: ADD
000006d0: SLOAD
000006d1: DUP6
000006d2: AND
000006d3: DUP2
000006d4: DUP5
000006d5: ADD
000006d6: MSTORE
000006d7: SWAP3
000006d8: DUP2
000006d9: ADD
000006da: SLOAD
000006db: DUP5
000006dc: AND
000006dd: DUP4
000006de: DUP7
000006df: ADD
000006e0: MSTORE
000006e1: PUSH1 0x03
000006e3: DUP2
000006e4: ADD
000006e5: SLOAD
000006e6: SWAP1
000006e7: SWAP4
000006e8: AND
000006e9: PUSH1 0x60
000006eb: DUP4
000006ec: ADD
000006ed: MSTORE
000006ee: DUP4
000006ef: MLOAD
000006f0: SWAP1
000006f1: DUP2
000006f2: ADD
000006f3: SWAP1
000006f4: SWAP4
000006f5: MSTORE
000006f6: PUSH1 0x04
000006f8: SWAP1
000006f9: SWAP2
000006fa: ADD
000006fb: SLOAD
000006fc: DUP3
000006fd: MSTORE
000006fe: PUSH1 0x80
00000700: DUP2
00000701: ADD
00000702: SWAP2
00000703: SWAP1
00000704: SWAP2
00000705: MSTORE
00000706: SWAP1
00000707: JUMP
00000708: JUMPDEST
00000709: PUSH1 0x00
0000070b: PUSH2 0x0725
0000070e: PUSH1 0x64
00000710: PUSH2 0x0719
00000713: DUP5
00000714: DUP7
00000715: PUSH2 0x0edf
00000718: JUMP
00000719: JUMPDEST
0000071a: SWAP1
0000071b: PUSH4 0xffffffff
00000720: PUSH2 0x0ef8
00000723: AND
00000724: JUMP
00000725: JUMPDEST
00000726: SWAP4
00000727: SWAP3
00000728: POP
00000729: POP
0000072a: POP
0000072b: JUMP
0000072c: JUMPDEST
0000072d: PUSH1 0x00
0000072f: SLOAD
00000730: PUSH1 0x01
00000732: PUSH1 0x01
00000734: PUSH1 0xa0
00000736: SHL
00000737: SUB
00000738: AND
00000739: CALLER
0000073a: EQ
0000073b: PUSH2 0x0756
0000073e: JUMPI
0000073f: PUSH1 0x40
00000741: MLOAD
00000742: PUSH3 0x461bcd
00000746: PUSH1 0xe5
00000748: SHL
00000749: DUP2
0000074a: MSTORE
0000074b: PUSH1 0x04
0000074d: ADD
0000074e: PUSH2 0x0281
00000751: SWAP1
00000752: PUSH2 0x1cb8
00000755: JUMP
00000756: JUMPDEST
00000757: PUSH2 0x075e
0000075a: PUSH2 0x15d2
0000075d: JUMP
0000075e: JUMPDEST
0000075f: PUSH1 0x00
00000761: DUP4
00000762: DUP2
00000763: MSTORE
00000764: PUSH1 0x02
00000766: PUSH1 0x20
00000768: MSTORE
00000769: PUSH1 0x40
0000076b: DUP1
0000076c: DUP3
0000076d: KECCAK256
0000076e: SWAP2
0000076f: SWAP1
00000770: PUSH2 0x077f
00000773: SWAP1
00000774: PUSH1 0x60
00000776: DUP7
00000777: ADD
00000778: SWAP1
00000779: DUP7
0000077a: ADD
0000077b: PUSH2 0x16a3
0000077e: JUMP
0000077f: JUMPDEST
00000780: PUSH1 0x01
00000782: PUSH1 0x01
00000784: PUSH1 0xa0
00000786: SHL
00000787: SUB
00000788: SWAP1
00000789: DUP2
0000078a: AND
0000078b: DUP3
0000078c: MSTORE
0000078d: PUSH1 0x20
0000078f: DUP1
00000790: DUP4
00000791: ADD
00000792: SWAP4
00000793: SWAP1
00000794: SWAP4
00000795: MSTORE
00000796: PUSH1 0x40
00000798: SWAP2
00000799: DUP3
0000079a: ADD
0000079b: PUSH1 0x00
0000079d: KECCAK256
0000079e: DUP3
0000079f: MLOAD
000007a0: PUSH1 0xa0
000007a2: DUP2
000007a3: ADD
000007a4: DUP5
000007a5: MSTORE
000007a6: DUP2
000007a7: SLOAD
000007a8: DUP2
000007a9: MSTORE
000007aa: PUSH1 0x01
000007ac: DUP3
000007ad: ADD
000007ae: SLOAD
000007af: DUP4
000007b0: AND
000007b1: DUP2
000007b2: DUP7
000007b3: ADD
000007b4: MSTORE
000007b5: PUSH1 0x02
000007b7: DUP3
000007b8: ADD
000007b9: SLOAD
000007ba: DUP4
000007bb: AND
000007bc: DUP2
000007bd: DUP6
000007be: ADD
000007bf: MSTORE
000007c0: PUSH1 0x03
000007c2: DUP3
000007c3: ADD
000007c4: SLOAD
000007c5: SWAP1
000007c6: SWAP3
000007c7: AND
000007c8: PUSH1 0x60
000007ca: DUP4
000007cb: ADD
000007cc: MSTORE
000007cd: DUP3
000007ce: MLOAD
000007cf: SWAP4
000007d0: DUP5
000007d1: ADD
000007d2: SWAP1
000007d3: SWAP3
000007d4: MSTORE
000007d5: PUSH1 0x04
000007d7: SWAP1
000007d8: SWAP2
000007d9: ADD
000007da: SLOAD
000007db: DUP3
000007dc: MSTORE
000007dd: PUSH1 0x80
000007df: DUP2
000007e0: ADD
000007e1: SWAP2
000007e2: SWAP1
000007e3: SWAP2
000007e4: MSTORE
000007e5: DUP1
000007e6: MLOAD
000007e7: SWAP1
000007e8: SWAP2
000007e9: POP
000007ea: PUSH2 0x0805
000007ed: JUMPI
000007ee: PUSH1 0x40
000007f0: MLOAD
000007f1: PUSH3 0x461bcd
000007f5: PUSH1 0xe5
000007f7: SHL
000007f8: DUP2
000007f9: MSTORE
000007fa: PUSH1 0x04
000007fc: ADD
000007fd: PUSH2 0x0281
00000800: SWAP1
00000801: PUSH2 0x1bdd
00000804: JUMP
00000805: JUMPDEST
00000806: DUP1
00000807: MLOAD
00000808: DUP3
00000809: CALLDATALOAD
0000080a: EQ
0000080b: DUP1
0000080c: ISZERO
0000080d: PUSH2 0x083a
00000810: JUMPI
00000811: POP
00000812: PUSH2 0x0821
00000815: PUSH1 0x40
00000817: DUP4
00000818: ADD
00000819: PUSH1 0x20
0000081b: DUP5
0000081c: ADD
0000081d: PUSH2 0x16a3
00000820: JUMP
00000821: JUMPDEST
00000822: PUSH1 0x01
00000824: PUSH1 0x01
00000826: PUSH1 0xa0
00000828: SHL
00000829: SUB
0000082a: AND
0000082b: DUP2
0000082c: PUSH1 0x20
0000082e: ADD
0000082f: MLOAD
00000830: PUSH1 0x01
00000832: PUSH1 0x01
00000834: PUSH1 0xa0
00000836: SHL
00000837: SUB
00000838: AND
00000839: EQ
0000083a: JUMPDEST
0000083b: DUP1
0000083c: ISZERO
0000083d: PUSH2 0x084e
00000840: JUMPI
00000841: POP
00000842: PUSH1 0x80
00000844: DUP2
00000845: DUP2
00000846: ADD
00000847: MLOAD
00000848: MLOAD
00000849: SWAP1
0000084a: DUP4
0000084b: ADD
0000084c: CALLDATALOAD
0000084d: EQ
0000084e: JUMPDEST
0000084f: DUP1
00000850: ISZERO
00000851: PUSH2 0x087e
00000854: JUMPI
00000855: POP
00000856: PUSH2 0x0865
00000859: PUSH1 0x80
0000085b: DUP4
0000085c: ADD
0000085d: PUSH1 0x60
0000085f: DUP5
00000860: ADD
00000861: PUSH2 0x16a3
00000864: JUMP
00000865: JUMPDEST
00000866: PUSH1 0x01
00000868: PUSH1 0x01
0000086a: PUSH1 0xa0
0000086c: SHL
0000086d: SUB
0000086e: AND
0000086f: DUP2
00000870: PUSH1 0x60
00000872: ADD
00000873: MLOAD
00000874: PUSH1 0x01
00000876: PUSH1 0x01
00000878: PUSH1 0xa0
0000087a: SHL
0000087b: SUB
0000087c: AND
0000087d: EQ
0000087e: JUMPDEST
0000087f: PUSH2 0x089a
00000882: JUMPI
00000883: PUSH1 0x40
00000885: MLOAD
00000886: PUSH3 0x461bcd
0000088a: PUSH1 0xe5
0000088c: SHL
0000088d: DUP2
0000088e: MSTORE
0000088f: PUSH1 0x04
00000891: ADD
00000892: PUSH2 0x0281
00000895: SWAP1
00000896: PUSH2 0x1c81
00000899: JUMP
0000089a: JUMPDEST
0000089b: PUSH2 0x08a8
0000089e: DUP4
0000089f: DUP3
000008a0: PUSH1 0x00
000008a2: ADD
000008a3: MLOAD
000008a4: PUSH2 0x0247
000008a7: JUMP
000008a8: JUMPDEST
000008a9: PUSH2 0x08c4
000008ac: JUMPI
000008ad: PUSH1 0x40
000008af: MLOAD
000008b0: PUSH3 0x461bcd
000008b4: PUSH1 0xe5
000008b6: SHL
000008b7: DUP2
000008b8: MSTORE
000008b9: PUSH1 0x04
000008bb: ADD
000008bc: PUSH2 0x0281
000008bf: SWAP1
000008c0: PUSH2 0x1a5a
000008c3: JUMP
000008c4: JUMPDEST
000008c5: PUSH2 0x08d2
000008c8: DUP4
000008c9: DUP3
000008ca: PUSH1 0x40
000008cc: ADD
000008cd: MLOAD
000008ce: PUSH2 0x0f3a
000008d1: JUMP
000008d2: JUMPDEST
000008d3: POP
000008d4: POP
000008d5: POP
000008d6: JUMP
000008d7: JUMPDEST
000008d8: PUSH1 0x00
000008da: SLOAD
000008db: PUSH1 0x01
000008dd: PUSH1 0x01
000008df: PUSH1 0xa0
000008e1: SHL
000008e2: SUB
000008e3: AND
000008e4: CALLER
000008e5: EQ
000008e6: PUSH2 0x0901
000008e9: JUMPI
000008ea: PUSH1 0x40
000008ec: MLOAD
000008ed: PUSH3 0x461bcd
000008f1: PUSH1 0xe5
000008f3: SHL
000008f4: DUP2
000008f5: MSTORE
000008f6: PUSH1 0x04
000008f8: ADD
000008f9: PUSH2 0x0281
000008fc: SWAP1
000008fd: PUSH2 0x1cb8
00000900: JUMP
00000901: JUMPDEST
00000902: PUSH2 0x0909
00000905: PUSH2 0x1589
00000908: JUMP
00000909: JUMPDEST
0000090a: POP
0000090b: PUSH1 0x00
0000090d: DUP4
0000090e: DUP2
0000090f: MSTORE
00000910: PUSH1 0x03
00000912: PUSH1 0x20
00000914: SWAP1
00000915: DUP2
00000916: MSTORE
00000917: PUSH1 0x40
00000919: SWAP2
0000091a: DUP3
0000091b: SWAP1
0000091c: KECCAK256
0000091d: DUP3
0000091e: MLOAD
0000091f: PUSH1 0x80
00000921: DUP2
00000922: ADD
00000923: DUP5
00000924: MSTORE
00000925: DUP2
00000926: SLOAD
00000927: PUSH1 0x60
00000929: DUP3
0000092a: ADD
0000092b: SWAP1
0000092c: DUP2
0000092d: MSTORE
0000092e: DUP2
0000092f: MSTORE
00000930: DUP4
00000931: MLOAD
00000932: DUP1
00000933: DUP5
00000934: ADD
00000935: DUP6
00000936: MSTORE
00000937: PUSH1 0x01
00000939: DUP4
0000093a: ADD
0000093b: SLOAD
0000093c: DUP2
0000093d: MSTORE
0000093e: DUP2
0000093f: DUP5
00000940: ADD
00000941: MSTORE
00000942: DUP4
00000943: MLOAD
00000944: SWAP3
00000945: DUP4
00000946: ADD
00000947: DUP5
00000948: MSTORE
00000949: PUSH1 0x02
0000094b: SWAP1
0000094c: SWAP2
0000094d: ADD
0000094e: SLOAD
0000094f: DUP3
00000950: MSTORE
00000951: SWAP2
00000952: DUP3
00000953: ADD
00000954: MSTORE
00000955: PUSH2 0x096d
00000958: PUSH1 0x64
0000095a: PUSH8 0x0de0b6b3a7640000
00000963: PUSH4 0xffffffff
00000968: PUSH2 0x0e4f
0000096b: AND
0000096c: JUMP
0000096d: JUMPDEST
0000096e: PUSH1 0x80
00000970: DUP5
00000971: ADD
00000972: MLOAD
00000973: MLOAD
00000974: PUSH1 0x20
00000976: DUP4
00000977: ADD
00000978: MLOAD
00000979: MLOAD
0000097a: PUSH2 0x0988
0000097d: SWAP2
0000097e: PUSH4 0xffffffff
00000983: PUSH2 0x0e2a
00000986: AND
00000987: JUMP
00000988: JUMPDEST
00000989: GT
0000098a: ISZERO
0000098b: PUSH2 0x09a6
0000098e: JUMPI
0000098f: PUSH1 0x40
00000991: MLOAD
00000992: PUSH3 0x461bcd
00000996: PUSH1 0xe5
00000998: SHL
00000999: DUP2
0000099a: MSTORE
0000099b: PUSH1 0x04
0000099d: ADD
0000099e: PUSH2 0x0281
000009a1: SWAP1
000009a2: PUSH2 0x1cef
000009a5: JUMP
000009a6: JUMPDEST
000009a7: PUSH1 0x40
000009a9: DUP4
000009aa: ADD
000009ab: MLOAD
000009ac: PUSH1 0x01
000009ae: PUSH1 0x01
000009b0: PUSH1 0xa0
000009b2: SHL
000009b3: SUB
000009b4: AND
000009b5: PUSH2 0x09d0
000009b8: JUMPI
000009b9: PUSH1 0x40
000009bb: MLOAD
000009bc: PUSH3 0x461bcd
000009c0: PUSH1 0xe5
000009c2: SHL
000009c3: DUP2
000009c4: MSTORE
000009c5: PUSH1 0x04
000009c7: ADD
000009c8: PUSH2 0x0281
000009cb: SWAP1
000009cc: PUSH2 0x1aa1
000009cf: JUMP
000009d0: JUMPDEST
000009d1: DUP3
000009d2: MLOAD
000009d3: PUSH2 0x09ee
000009d6: JUMPI
000009d7: PUSH1 0x40
000009d9: MLOAD
000009da: PUSH3 0x461bcd
000009de: PUSH1 0xe5
000009e0: SHL
000009e1: DUP2
000009e2: MSTORE
000009e3: PUSH1 0x04
000009e5: ADD
000009e6: PUSH2 0x0281
000009e9: SWAP1
000009ea: PUSH2 0x1ba6
000009ed: JUMP
000009ee: JUMPDEST
000009ef: PUSH1 0x20
000009f1: DUP4
000009f2: ADD
000009f3: MLOAD
000009f4: PUSH1 0x01
000009f6: PUSH1 0x01
000009f8: PUSH1 0xa0
000009fa: SHL
000009fb: SUB
000009fc: AND
000009fd: PUSH2 0x0a18
00000a00: JUMPI
00000a01: PUSH1 0x40
00000a03: MLOAD
00000a04: PUSH3 0x461bcd
00000a08: PUSH1 0xe5
00000a0a: SHL
00000a0b: DUP2
00000a0c: MSTORE
00000a0d: PUSH1 0x04
00000a0f: ADD
00000a10: PUSH2 0x0281
00000a13: SWAP1
00000a14: PUSH2 0x1a12
00000a17: JUMP
00000a18: JUMPDEST
00000a19: PUSH1 0x60
00000a1b: DUP4
00000a1c: ADD
00000a1d: MLOAD
00000a1e: PUSH1 0x01
00000a20: PUSH1 0x01
00000a22: PUSH1 0xa0
00000a24: SHL
00000a25: SUB
00000a26: AND
00000a27: PUSH2 0x0a42
00000a2a: JUMPI
00000a2b: PUSH1 0x40
00000a2d: MLOAD
00000a2e: PUSH3 0x461bcd
00000a32: PUSH1 0xe5
00000a34: SHL
00000a35: DUP2
00000a36: MSTORE
00000a37: PUSH1 0x04
00000a39: ADD
00000a3a: PUSH2 0x0281
00000a3d: SWAP1
00000a3e: PUSH2 0x1df0
00000a41: JUMP
00000a42: JUMPDEST
00000a43: PUSH1 0x00
00000a45: DUP5
00000a46: DUP2
00000a47: MSTORE
00000a48: PUSH1 0x02
00000a4a: PUSH1 0x20
00000a4c: SWAP1
00000a4d: DUP2
00000a4e: MSTORE
00000a4f: PUSH1 0x40
00000a51: DUP1
00000a52: DUP4
00000a53: KECCAK256
00000a54: DUP7
00000a55: DUP3
00000a56: ADD
00000a57: MLOAD
00000a58: PUSH1 0x01
00000a5a: PUSH1 0x01
00000a5c: PUSH1 0xa0
00000a5e: SHL
00000a5f: SUB
00000a60: AND
00000a61: DUP5
00000a62: MSTORE
00000a63: SWAP1
00000a64: SWAP2
00000a65: MSTORE
00000a66: SWAP1
00000a67: KECCAK256
00000a68: DUP1
00000a69: SLOAD
00000a6a: ISZERO
00000a6b: PUSH2 0x0a7c
00000a6e: JUMPI
00000a6f: PUSH2 0x0a7c
00000a72: DUP6
00000a73: DUP6
00000a74: PUSH1 0x40
00000a76: ADD
00000a77: MLOAD
00000a78: PUSH2 0x056c
00000a7b: JUMP
00000a7c: JUMPDEST
00000a7d: PUSH1 0x20
00000a7f: DUP5
00000a80: ADD
00000a81: MLOAD
00000a82: PUSH1 0x40
00000a84: MLOAD
00000a85: PUSH4 0x70a08231
00000a8a: PUSH1 0xe0
00000a8c: SHL
00000a8d: DUP2
00000a8e: MSTORE
00000a8f: PUSH1 0x00
00000a91: SWAP1
00000a92: PUSH1 0x01
00000a94: PUSH1 0x01
00000a96: PUSH1 0xa0
00000a98: SHL
00000a99: SUB
00000a9a: DUP4
00000a9b: AND
00000a9c: SWAP1
00000a9d: PUSH4 0x70a08231
00000aa2: SWAP1
00000aa3: PUSH2 0x0ab0
00000aa6: SWAP1
00000aa7: ADDRESS
00000aa8: SWAP1
00000aa9: PUSH1 0x04
00000aab: ADD
00000aac: PUSH2 0x1938
00000aaf: JUMP
00000ab0: JUMPDEST
00000ab1: PUSH1 0x20
00000ab3: PUSH1 0x40
00000ab5: MLOAD
00000ab6: DUP1
00000ab7: DUP4
00000ab8: SUB
00000ab9: DUP2
00000aba: DUP7
00000abb: DUP1
00000abc: EXTCODESIZE
00000abd: ISZERO
00000abe: DUP1
00000abf: ISZERO
00000ac0: PUSH2 0x0ac8
00000ac3: JUMPI
00000ac4: PUSH1 0x00
00000ac6: DUP1
00000ac7: REVERT
00000ac8: JUMPDEST
00000ac9: POP
00000aca: GAS
00000acb: STATICCALL
00000acc: ISZERO
00000acd: DUP1
00000ace: ISZERO
00000acf: PUSH2 0x0adc
00000ad2: JUMPI
00000ad3: RETURNDATASIZE
00000ad4: PUSH1 0x00
00000ad6: DUP1
00000ad7: RETURNDATACOPY
00000ad8: RETURNDATASIZE
00000ad9: PUSH1 0x00
00000adb: REVERT
00000adc: JUMPDEST
00000add: POP
00000ade: POP
00000adf: POP
00000ae0: POP
00000ae1: PUSH1 0x40
00000ae3: MLOAD
00000ae4: RETURNDATASIZE
00000ae5: PUSH1 0x1f
00000ae7: NOT
00000ae8: PUSH1 0x1f
00000aea: DUP3
00000aeb: ADD
00000aec: AND
00000aed: DUP3
00000aee: ADD
00000aef: DUP1
00000af0: PUSH1 0x40
00000af2: MSTORE
00000af3: POP
00000af4: DUP2
00000af5: ADD
00000af6: SWAP1
00000af7: PUSH2 0x0b00
00000afa: SWAP2
00000afb: SWAP1
00000afc: PUSH2 0x1758
00000aff: JUMP
00000b00: JUMPDEST
00000b01: DUP7
00000b02: MLOAD
00000b03: SWAP1
00000b04: SWAP2
00000b05: POP
00000b06: PUSH2 0x0b23
00000b09: SWAP1
00000b0a: PUSH1 0x01
00000b0c: PUSH1 0x01
00000b0e: PUSH1 0xa0
00000b10: SHL
00000b11: SUB
00000b12: DUP5
00000b13: AND
00000b14: SWAP1
00000b15: DUP8
00000b16: SWAP1
00000b17: ADDRESS
00000b18: SWAP1
00000b19: PUSH4 0xffffffff
00000b1e: PUSH2 0x133c
00000b21: AND
00000b22: JUMP
00000b23: JUMPDEST
00000b24: PUSH1 0x40
00000b26: MLOAD
00000b27: PUSH4 0x70a08231
00000b2c: PUSH1 0xe0
00000b2e: SHL
00000b2f: DUP2
00000b30: MSTORE
00000b31: PUSH1 0x00
00000b33: SWAP1
00000b34: PUSH1 0x01
00000b36: PUSH1 0x01
00000b38: PUSH1 0xa0
00000b3a: SHL
00000b3b: SUB
00000b3c: DUP5
00000b3d: AND
00000b3e: SWAP1
00000b3f: PUSH4 0x70a08231
00000b44: SWAP1
00000b45: PUSH2 0x0b52
00000b48: SWAP1
00000b49: ADDRESS
00000b4a: SWAP1
00000b4b: PUSH1 0x04
00000b4d: ADD
00000b4e: PUSH2 0x1938
00000b51: JUMP
00000b52: JUMPDEST
00000b53: PUSH1 0x20
00000b55: PUSH1 0x40
00000b57: MLOAD
00000b58: DUP1
00000b59: DUP4
00000b5a: SUB
00000b5b: DUP2
00000b5c: DUP7
00000b5d: DUP1
00000b5e: EXTCODESIZE
00000b5f: ISZERO
00000b60: DUP1
00000b61: ISZERO
00000b62: PUSH2 0x0b6a
00000b65: JUMPI
00000b66: PUSH1 0x00
00000b68: DUP1
00000b69: REVERT
00000b6a: JUMPDEST
00000b6b: POP
00000b6c: GAS
00000b6d: STATICCALL
00000b6e: ISZERO
00000b6f: DUP1
00000b70: ISZERO
00000b71: PUSH2 0x0b7e
00000b74: JUMPI
00000b75: RETURNDATASIZE
00000b76: PUSH1 0x00
00000b78: DUP1
00000b79: RETURNDATACOPY
00000b7a: RETURNDATASIZE
00000b7b: PUSH1 0x00
00000b7d: REVERT
00000b7e: JUMPDEST
00000b7f: POP
00000b80: POP
00000b81: POP
00000b82: POP
00000b83: PUSH1 0x40
00000b85: MLOAD
00000b86: RETURNDATASIZE
00000b87: PUSH1 0x1f
00000b89: NOT
00000b8a: PUSH1 0x1f
00000b8c: DUP3
00000b8d: ADD
00000b8e: AND
00000b8f: DUP3
00000b90: ADD
00000b91: DUP1
00000b92: PUSH1 0x40
00000b94: MSTORE
00000b95: POP
00000b96: DUP2
00000b97: ADD
00000b98: SWAP1
00000b99: PUSH2 0x0ba2
00000b9c: SWAP2
00000b9d: SWAP1
00000b9e: PUSH2 0x1758
00000ba1: JUMP
00000ba2: JUMPDEST
00000ba3: SWAP1
00000ba4: POP
00000ba5: PUSH1 0x40
00000ba7: MLOAD
00000ba8: DUP1
00000ba9: PUSH1 0xa0
00000bab: ADD
00000bac: PUSH1 0x40
00000bae: MSTORE
00000baf: DUP1
00000bb0: PUSH2 0x0bc2
00000bb3: DUP5
00000bb4: DUP5
00000bb5: PUSH2 0x1363
00000bb8: SWAP1
00000bb9: SWAP2
00000bba: SWAP1
00000bbb: PUSH4 0xffffffff
00000bc0: AND
00000bc1: JUMP
00000bc2: JUMPDEST
00000bc3: DUP2
00000bc4: MSTORE
00000bc5: PUSH1 0x20
00000bc7: DUP10
00000bc8: DUP2
00000bc9: ADD
00000bca: MLOAD
00000bcb: PUSH1 0x01
00000bcd: PUSH1 0x01
00000bcf: PUSH1 0xa0
00000bd1: SHL
00000bd2: SUB
00000bd3: SWAP1
00000bd4: DUP2
00000bd5: AND
00000bd6: DUP3
00000bd7: DUP5
00000bd8: ADD
00000bd9: MSTORE
00000bda: PUSH1 0x40
00000bdc: DUP1
00000bdd: DUP13
00000bde: ADD
00000bdf: DUP1
00000be0: MLOAD
00000be1: DUP4
00000be2: AND
00000be3: DUP3
00000be4: DUP7
00000be5: ADD
00000be6: MSTORE
00000be7: PUSH1 0x60
00000be9: DUP1
00000bea: DUP15
00000beb: ADD
00000bec: MLOAD
00000bed: DUP5
00000bee: AND
00000bef: DUP2
00000bf0: DUP8
00000bf1: ADD
00000bf2: MSTORE
00000bf3: PUSH1 0x80
00000bf5: DUP1
00000bf6: DUP16
00000bf7: ADD
00000bf8: MLOAD
00000bf9: SWAP7
00000bfa: DUP2
00000bfb: ADD
00000bfc: SWAP7
00000bfd: SWAP1
00000bfe: SWAP7
00000bff: MSTORE
00000c00: PUSH1 0x00
00000c02: DUP16
00000c03: DUP2
00000c04: MSTORE
00000c05: PUSH1 0x02
00000c07: DUP1
00000c08: DUP8
00000c09: MSTORE
00000c0a: DUP5
00000c0b: DUP3
00000c0c: KECCAK256
00000c0d: SWAP4
00000c0e: MLOAD
00000c0f: DUP7
00000c10: AND
00000c11: DUP3
00000c12: MSTORE
00000c13: SWAP3
00000c14: DUP7
00000c15: MSTORE
00000c16: DUP4
00000c17: SWAP1
00000c18: KECCAK256
00000c19: DUP8
00000c1a: MLOAD
00000c1b: DUP2
00000c1c: SSTORE
00000c1d: SWAP5
00000c1e: DUP8
00000c1f: ADD
00000c20: MLOAD
00000c21: PUSH1 0x01
00000c23: DUP7
00000c24: ADD
00000c25: DUP1
00000c26: SLOAD
00000c27: SWAP2
00000c28: DUP7
00000c29: AND
00000c2a: PUSH1 0x01
00000c2c: PUSH1 0x01
00000c2e: PUSH1 0xa0
00000c30: SHL
00000c31: SUB
00000c32: NOT
00000c33: SWAP3
00000c34: DUP4
00000c35: AND
00000c36: OR
00000c37: SWAP1
00000c38: SSTORE
00000c39: DUP8
00000c3a: DUP5
00000c3b: ADD
00000c3c: MLOAD
00000c3d: SWAP3
00000c3e: DUP7
00000c3f: ADD
00000c40: DUP1
00000c41: SLOAD
00000c42: SWAP4
00000c43: DUP7
00000c44: AND
00000c45: SWAP4
00000c46: DUP3
00000c47: AND
00000c48: SWAP4
00000c49: SWAP1
00000c4a: SWAP4
00000c4b: OR
00000c4c: SWAP1
00000c4d: SWAP3
00000c4e: SSTORE
00000c4f: DUP7
00000c50: ADD
00000c51: MLOAD
00000c52: PUSH1 0x03
00000c54: DUP6
00000c55: ADD
00000c56: DUP1
00000c57: SLOAD
00000c58: SWAP2
00000c59: SWAP1
00000c5a: SWAP5
00000c5b: AND
00000c5c: SWAP2
00000c5d: AND
00000c5e: OR
00000c5f: SWAP1
00000c60: SWAP2
00000c61: SSTORE
00000c62: SWAP3
00000c63: SWAP1
00000c64: SWAP2
00000c65: ADD
00000c66: MLOAD
00000c67: MLOAD
00000c68: PUSH1 0x04
00000c6a: SWAP1
00000c6b: SWAP2
00000c6c: ADD
00000c6d: SSTORE
00000c6e: MLOAD
00000c6f: DUP9
00000c70: SWAP1
00000c71: PUSH32 0x327bc9021bfbee403a11b13dd6c819999006aff090cc129f07e9f2840af38dd5
00000c92: SWAP1
00000c93: PUSH2 0x0c9d
00000c96: SWAP1
00000c97: DUP11
00000c98: SWAP1
00000c99: PUSH2 0x1f55
00000c9c: JUMP
00000c9d: JUMPDEST
00000c9e: PUSH1 0x40
00000ca0: MLOAD
00000ca1: DUP1
00000ca2: SWAP2
00000ca3: SUB
00000ca4: SWAP1
00000ca5: LOG2
00000ca6: PUSH1 0x00
00000ca8: DUP9
00000ca9: DUP2
00000caa: MSTORE
00000cab: PUSH1 0x04
00000cad: PUSH1 0x20
00000caf: MSTORE
00000cb0: PUSH1 0x40
00000cb2: SWAP1
00000cb3: KECCAK256
00000cb4: PUSH1 0x01
00000cb6: ADD
00000cb7: SLOAD
00000cb8: PUSH1 0x01
00000cba: PUSH1 0x01
00000cbc: PUSH1 0xa0
00000cbe: SHL
00000cbf: SUB
00000cc0: AND
00000cc1: ISZERO
00000cc2: DUP1
00000cc3: ISZERO
00000cc4: SWAP1
00000cc5: PUSH2 0x0cf1
00000cc8: JUMPI
00000cc9: POP
00000cca: PUSH1 0x00
00000ccc: DUP9
00000ccd: DUP2
00000cce: MSTORE
00000ccf: PUSH1 0x04
00000cd1: PUSH1 0x20
00000cd3: SWAP1
00000cd4: DUP2
00000cd5: MSTORE
00000cd6: PUSH1 0x40
00000cd8: SWAP1
00000cd9: SWAP2
00000cda: KECCAK256
00000cdb: PUSH1 0x01
00000cdd: ADD
00000cde: SLOAD
00000cdf: SWAP1
00000ce0: DUP9
00000ce1: ADD
00000ce2: MLOAD
00000ce3: PUSH1 0x01
00000ce5: PUSH1 0x01
00000ce7: PUSH1 0xa0
00000ce9: SHL
00000cea: SUB
00000ceb: SWAP1
00000cec: DUP2
00000ced: AND
00000cee: SWAP2
00000cef: AND
00000cf0: EQ
00000cf1: JUMPDEST
00000cf2: DUP1
00000cf3: ISZERO
00000cf4: PUSH2 0x0d0c
00000cf7: JUMPI
00000cf8: POP
00000cf9: PUSH1 0x00
00000cfb: DUP9
00000cfc: DUP2
00000cfd: MSTORE
00000cfe: PUSH1 0x04
00000d00: PUSH1 0x20
00000d02: MSTORE
00000d03: PUSH1 0x40
00000d05: SWAP1
00000d06: KECCAK256
00000d07: SLOAD
00000d08: DUP8
00000d09: MLOAD
00000d0a: LT
00000d0b: ISZERO
00000d0c: JUMPDEST
00000d0d: ISZERO
00000d0e: PUSH2 0x0d1f
00000d11: JUMPI
00000d12: PUSH2 0x0d1f
00000d15: DUP9
00000d16: DUP9
00000d17: PUSH1 0x40
00000d19: ADD
00000d1a: MLOAD
00000d1b: PUSH2 0x0f3a
00000d1e: JUMP
00000d1f: JUMPDEST
00000d20: POP
00000d21: POP
00000d22: POP
00000d23: POP
00000d24: POP
00000d25: POP
00000d26: POP
00000d27: POP
00000d28: JUMP
00000d29: JUMPDEST
00000d2a: PUSH1 0x00
00000d2c: SLOAD
00000d2d: PUSH1 0x01
00000d2f: PUSH1 0x01
00000d31: PUSH1 0xa0
00000d33: SHL
00000d34: SUB
00000d35: AND
00000d36: CALLER
00000d37: EQ
00000d38: PUSH2 0x0d53
00000d3b: JUMPI
00000d3c: PUSH1 0x40
00000d3e: MLOAD
00000d3f: PUSH3 0x461bcd
00000d43: PUSH1 0xe5
00000d45: SHL
00000d46: DUP2
00000d47: MSTORE
00000d48: PUSH1 0x04
00000d4a: ADD
00000d4b: PUSH2 0x0281
00000d4e: SWAP1
00000d4f: PUSH2 0x1cb8
00000d52: JUMP
00000d53: JUMPDEST
00000d54: PUSH2 0x0d5c
00000d57: DUP2
00000d58: PUSH2 0x0375
00000d5b: JUMP
00000d5c: JUMPDEST
00000d5d: PUSH2 0x0d78
00000d60: JUMPI
00000d61: PUSH1 0x40
00000d63: MLOAD
00000d64: PUSH3 0x461bcd
00000d68: PUSH1 0xe5
00000d6a: SHL
00000d6b: DUP2
00000d6c: MSTORE
00000d6d: PUSH1 0x04
00000d6f: ADD
00000d70: PUSH2 0x0281
00000d73: SWAP1
00000d74: PUSH2 0x19c7
00000d77: JUMP
00000d78: JUMPDEST
00000d79: PUSH1 0x00
00000d7b: DUP3
00000d7c: DUP2
00000d7d: MSTORE
00000d7e: PUSH1 0x03
00000d80: PUSH1 0x20
00000d82: SWAP1
00000d83: DUP2
00000d84: MSTORE
00000d85: PUSH1 0x40
00000d87: SWAP2
00000d88: DUP3
00000d89: SWAP1
00000d8a: KECCAK256
00000d8b: DUP4
00000d8c: MLOAD
00000d8d: MLOAD
00000d8e: DUP2
00000d8f: SSTORE
00000d90: SWAP1
00000d91: DUP4
00000d92: ADD
00000d93: MLOAD
00000d94: MLOAD
00000d95: PUSH1 0x01
00000d97: DUP3
00000d98: ADD
00000d99: SSTORE
00000d9a: DUP2
00000d9b: DUP4
00000d9c: ADD
00000d9d: MLOAD
00000d9e: MLOAD
00000d9f: PUSH1 0x02
00000da1: SWAP1
00000da2: SWAP2
00000da3: ADD
00000da4: SSTORE
00000da5: MLOAD
00000da6: DUP3
00000da7: SWAP1
00000da8: PUSH32 0xdb88d4e96cb8697aaee5e575ee5f460817709a1dfcfbf7ba15192e90b5c86f9f
00000dc9: SWAP1
00000dca: PUSH2 0x04c5
00000dcd: SWAP1
00000dce: DUP5
00000dcf: SWAP1
00000dd0: PUSH2 0x1f12
00000dd3: JUMP
00000dd4: JUMPDEST
00000dd5: PUSH2 0x0ddc
00000dd8: PUSH2 0x1589
00000ddb: JUMP
00000ddc: JUMPDEST
00000ddd: POP
00000dde: PUSH1 0x00
00000de0: SWAP1
00000de1: DUP2
00000de2: MSTORE
00000de3: PUSH1 0x03
00000de5: PUSH1 0x20
00000de7: SWAP1
00000de8: DUP2
00000de9: MSTORE
00000dea: PUSH1 0x40
00000dec: SWAP2
00000ded: DUP3
00000dee: SWAP1
00000def: KECCAK256
00000df0: DUP3
00000df1: MLOAD
00000df2: PUSH1 0x80
00000df4: DUP2
00000df5: ADD
00000df6: DUP5
00000df7: MSTORE
00000df8: DUP2
00000df9: SLOAD
00000dfa: PUSH1 0x60
00000dfc: DUP3
00000dfd: ADD
00000dfe: SWAP1
00000dff: DUP2
00000e00: MSTORE
00000e01: DUP2
00000e02: MSTORE
00000e03: DUP4
00000e04: MLOAD
00000e05: DUP1
00000e06: DUP5
00000e07: ADD
00000e08: DUP6
00000e09: MSTORE
00000e0a: PUSH1 0x01
00000e0c: DUP4
00000e0d: ADD
00000e0e: SLOAD
00000e0f: DUP2
00000e10: MSTORE
00000e11: DUP2
00000e12: DUP5
00000e13: ADD
00000e14: MSTORE
00000e15: DUP4
00000e16: MLOAD
00000e17: SWAP3
00000e18: DUP4
00000e19: ADD
00000e1a: DUP5
00000e1b: MSTORE
00000e1c: PUSH1 0x02
00000e1e: SWAP1
00000e1f: SWAP2
00000e20: ADD
00000e21: SLOAD
00000e22: DUP3
00000e23: MSTORE
00000e24: SWAP2
00000e25: DUP3
00000e26: ADD
00000e27: MSTORE
00000e28: SWAP1
00000e29: JUMP
00000e2a: JUMPDEST
00000e2b: PUSH1 0x00
00000e2d: DUP3
00000e2e: DUP3
00000e2f: ADD
00000e30: DUP4
00000e31: DUP2
00000e32: LT
00000e33: ISZERO
00000e34: PUSH2 0x0725
00000e37: JUMPI
00000e38: PUSH1 0x40
00000e3a: MLOAD
00000e3b: PUSH3 0x461bcd
00000e3f: PUSH1 0xe5
00000e41: SHL
00000e42: DUP2
00000e43: MSTORE
00000e44: PUSH1 0x04
00000e46: ADD
00000e47: PUSH2 0x0281
00000e4a: SWAP1
00000e4b: PUSH2 0x1b2a
00000e4e: JUMP
00000e4f: JUMPDEST
00000e50: PUSH1 0x00
00000e52: DUP3
00000e53: PUSH2 0x0e5e
00000e56: JUMPI
00000e57: POP
00000e58: PUSH1 0x00
00000e5a: PUSH2 0x02d7
00000e5d: JUMP
00000e5e: JUMPDEST
00000e5f: DUP3
00000e60: DUP3
00000e61: MUL
00000e62: DUP3
00000e63: DUP5
00000e64: DUP3
00000e65: DUP2
00000e66: PUSH2 0x0e6b
00000e69: JUMPI
00000e6a: INVALID
00000e6b: JUMPDEST
00000e6c: DIV
00000e6d: EQ
00000e6e: PUSH2 0x0725
00000e71: JUMPI
00000e72: PUSH1 0x40
00000e74: MLOAD
00000e75: PUSH3 0x461bcd
00000e79: PUSH1 0xe5
00000e7b: SHL
00000e7c: DUP2
00000e7d: MSTORE
00000e7e: PUSH1 0x04
00000e80: ADD
00000e81: PUSH2 0x0281
00000e84: SWAP1
00000e85: PUSH2 0x1c40
00000e88: JUMP
00000e89: JUMPDEST
00000e8a: PUSH2 0x08d2
00000e8d: DUP4
00000e8e: PUSH4 0xa9059cbb
00000e93: PUSH1 0xe0
00000e95: SHL
00000e96: DUP5
00000e97: DUP5
00000e98: PUSH1 0x40
00000e9a: MLOAD
00000e9b: PUSH1 0x24
00000e9d: ADD
00000e9e: PUSH2 0x0ea8
00000ea1: SWAP3
00000ea2: SWAP2
00000ea3: SWAP1
00000ea4: PUSH2 0x1970
00000ea7: JUMP
00000ea8: JUMPDEST
00000ea9: PUSH1 0x40
00000eab: DUP1
00000eac: MLOAD
00000ead: PUSH1 0x1f
00000eaf: NOT
00000eb0: DUP2
00000eb1: DUP5
00000eb2: SUB
00000eb3: ADD
00000eb4: DUP2
00000eb5: MSTORE
00000eb6: SWAP2
00000eb7: SWAP1
00000eb8: MSTORE
00000eb9: PUSH1 0x20
00000ebb: DUP2
00000ebc: ADD
00000ebd: DUP1
00000ebe: MLOAD
00000ebf: PUSH1 0x01
00000ec1: PUSH1 0x01
00000ec3: PUSH1 0xe0
00000ec5: SHL
00000ec6: SUB
00000ec7: AND
00000ec8: PUSH1 0x01
00000eca: PUSH1 0x01
00000ecc: PUSH1 0xe0
00000ece: SHL
00000ecf: SUB
00000ed0: NOT
00000ed1: SWAP1
00000ed2: SWAP4
00000ed3: AND
00000ed4: SWAP3
00000ed5: SWAP1
00000ed6: SWAP3
00000ed7: OR
00000ed8: SWAP1
00000ed9: SWAP2
00000eda: MSTORE
00000edb: PUSH2 0x13a5
00000ede: JUMP
00000edf: JUMPDEST
00000ee0: DUP1
00000ee1: MLOAD
00000ee2: PUSH1 0x00
00000ee4: SWAP1
00000ee5: PUSH2 0x0725
00000ee8: SWAP1
00000ee9: DUP5
00000eea: SWAP1
00000eeb: PUSH8 0x0de0b6b3a7640000
00000ef4: PUSH2 0x1434
00000ef7: JUMP
00000ef8: JUMPDEST
00000ef9: PUSH1 0x00
00000efb: PUSH2 0x0725
00000efe: DUP4
00000eff: DUP4
00000f00: PUSH1 0x40
00000f02: MLOAD
00000f03: DUP1
00000f04: PUSH1 0x40
00000f06: ADD
00000f07: PUSH1 0x40
00000f09: MSTORE
00000f0a: DUP1
00000f0b: PUSH1 0x1a
00000f0d: DUP2
00000f0e: MSTORE
00000f0f: PUSH1 0x20
00000f11: ADD
00000f12: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000
00000f33: DUP2
00000f34: MSTORE
00000f35: POP
00000f36: PUSH2 0x1452
00000f39: JUMP
00000f3a: JUMPDEST
00000f3b: PUSH2 0x0f42
00000f3e: PUSH2 0x15d2
00000f41: JUMP
00000f42: JUMPDEST
00000f43: POP
00000f44: PUSH1 0x00
00000f46: DUP3
00000f47: DUP2
00000f48: MSTORE
00000f49: PUSH1 0x02
00000f4b: PUSH1 0x20
00000f4d: DUP2
00000f4e: DUP2
00000f4f: MSTORE
00000f50: PUSH1 0x40
00000f52: DUP1
00000f53: DUP5
00000f54: KECCAK256
00000f55: PUSH1 0x01
00000f57: PUSH1 0x01
00000f59: PUSH1 0xa0
00000f5b: SHL
00000f5c: SUB
00000f5d: DUP1
00000f5e: DUP8
00000f5f: AND
00000f60: DUP7
00000f61: MSTORE
00000f62: SWAP1
00000f63: DUP4
00000f64: MSTORE
00000f65: DUP2
00000f66: DUP6
00000f67: KECCAK256
00000f68: DUP3
00000f69: MLOAD
00000f6a: PUSH1 0xa0
00000f6c: DUP2
00000f6d: ADD
00000f6e: DUP5
00000f6f: MSTORE
00000f70: DUP2
00000f71: SLOAD
00000f72: DUP2
00000f73: MSTORE
00000f74: PUSH1 0x01
00000f76: DUP3
00000f77: ADD
00000f78: SLOAD
00000f79: DUP4
00000f7a: AND
00000f7b: DUP2
00000f7c: DUP7
00000f7d: ADD
00000f7e: SWAP1
00000f7f: DUP2
00000f80: MSTORE
00000f81: SWAP6
00000f82: DUP3
00000f83: ADD
00000f84: SLOAD
00000f85: DUP4
00000f86: AND
00000f87: DUP2
00000f88: DUP6
00000f89: ADD
00000f8a: MSTORE
00000f8b: PUSH1 0x03
00000f8d: DUP1
00000f8e: DUP4
00000f8f: ADD
00000f90: SLOAD
00000f91: DUP5
00000f92: AND
00000f93: PUSH1 0x60
00000f95: DUP4
00000f96: ADD
00000f97: MSTORE
00000f98: DUP5
00000f99: MLOAD
00000f9a: DUP1
00000f9b: DUP8
00000f9c: ADD
00000f9d: DUP7
00000f9e: MSTORE
00000f9f: PUSH1 0x04
00000fa1: SWAP4
00000fa2: DUP5
00000fa3: ADD
00000fa4: SLOAD
00000fa5: DUP2
00000fa6: MSTORE
00000fa7: PUSH1 0x80
00000fa9: DUP4
00000faa: ADD
00000fab: MSTORE
00000fac: DUP10
00000fad: DUP9
00000fae: MSTORE
00000faf: SWAP1
00000fb0: SWAP5
00000fb1: MSTORE
00000fb2: DUP3
00000fb3: DUP7
00000fb4: KECCAK256
00000fb5: SWAP5
00000fb6: MLOAD
00000fb7: SWAP6
00000fb8: SLOAD
00000fb9: SWAP3
00000fba: MLOAD
00000fbb: PUSH4 0x31a9108f
00000fc0: PUSH1 0xe1
00000fc2: SHL
00000fc3: DUP2
00000fc4: MSTORE
00000fc5: SWAP4
00000fc6: SWAP6
00000fc7: SWAP4
00000fc8: PUSH2 0x1066
00000fcb: SWAP4
00000fcc: SWAP1
00000fcd: SWAP3
00000fce: AND
00000fcf: SWAP2
00000fd0: PUSH4 0x6352211e
00000fd5: SWAP2
00000fd6: PUSH2 0x0fe1
00000fd9: SWAP2
00000fda: DUP11
00000fdb: SWAP2
00000fdc: ADD
00000fdd: PUSH2 0x1fdf
00000fe0: JUMP
00000fe1: JUMPDEST
00000fe2: PUSH1 0x20
00000fe4: PUSH1 0x40
00000fe6: MLOAD
00000fe7: DUP1
00000fe8: DUP4
00000fe9: SUB
00000fea: DUP2
00000feb: DUP7
00000fec: DUP1
00000fed: EXTCODESIZE
00000fee: ISZERO
00000fef: DUP1
00000ff0: ISZERO
00000ff1: PUSH2 0x0ff9
00000ff4: JUMPI
00000ff5: PUSH1 0x00
00000ff7: DUP1
00000ff8: REVERT
00000ff9: JUMPDEST
00000ffa: POP
00000ffb: GAS
00000ffc: STATICCALL
00000ffd: ISZERO
00000ffe: DUP1
00000fff: ISZERO
00001000: PUSH2 0x100d
00001003: JUMPI
00001004: RETURNDATASIZE
00001005: PUSH1 0x00
00001007: DUP1
00001008: RETURNDATACOPY
00001009: RETURNDATASIZE
0000100a: PUSH1 0x00
0000100c: REVERT
0000100d: JUMPDEST
0000100e: POP
0000100f: POP
00001010: POP
00001011: POP
00001012: PUSH1 0x40
00001014: MLOAD
00001015: RETURNDATASIZE
00001016: PUSH1 0x1f
00001018: NOT
00001019: PUSH1 0x1f
0000101b: DUP3
0000101c: ADD
0000101d: AND
0000101e: DUP3
0000101f: ADD
00001020: DUP1
00001021: PUSH1 0x40
00001023: MSTORE
00001024: POP
00001025: DUP2
00001026: ADD
00001027: SWAP1
00001028: PUSH2 0x1031
0000102b: SWAP2
0000102c: SWAP1
0000102d: PUSH2 0x16bf
00001030: JUMP
00001031: JUMPDEST
00001032: PUSH1 0x40
00001034: DUP1
00001035: MLOAD
00001036: PUSH1 0x20
00001038: DUP2
00001039: ADD
0000103a: SWAP1
0000103b: SWAP2
0000103c: MSTORE
0000103d: PUSH1 0x02
0000103f: DUP6
00001040: ADD
00001041: SLOAD
00001042: DUP2
00001043: MSTORE
00001044: DUP6
00001045: MLOAD
00001046: PUSH2 0x104f
00001049: SWAP2
0000104a: SWAP1
0000104b: PUSH2 0x0708
0000104e: JUMP
0000104f: JUMPDEST
00001050: PUSH1 0x01
00001052: PUSH1 0x01
00001054: PUSH1 0xa0
00001056: SHL
00001057: SUB
00001058: DUP5
00001059: AND
0000105a: SWAP2
0000105b: SWAP1
0000105c: PUSH4 0xffffffff
00001061: PUSH2 0x0e89
00001064: AND
00001065: JUMP
00001066: JUMPDEST
00001067: PUSH1 0x00
00001069: SLOAD
0000106a: PUSH1 0x40
0000106c: MLOAD
0000106d: PUSH4 0xe0fd045f
00001072: PUSH1 0xe0
00001074: SHL
00001075: DUP2
00001076: MSTORE
00001077: PUSH2 0x1106
0000107a: SWAP2
0000107b: PUSH1 0x01
0000107d: PUSH1 0x01
0000107f: PUSH1 0xa0
00001081: SHL
00001082: SUB
00001083: AND
00001084: SWAP1
00001085: PUSH4 0xe0fd045f
0000108a: SWAP1
0000108b: PUSH2 0x1098
0000108e: SWAP1
0000108f: DUP10
00001090: SWAP1
00001091: PUSH1 0x04
00001093: ADD
00001094: PUSH2 0x1fdf
00001097: JUMP
00001098: JUMPDEST
00001099: PUSH1 0x20
0000109b: PUSH1 0x40
0000109d: MLOAD
0000109e: DUP1
0000109f: DUP4
000010a0: SUB
000010a1: DUP2
000010a2: DUP7
000010a3: DUP1
000010a4: EXTCODESIZE
000010a5: ISZERO
000010a6: DUP1
000010a7: ISZERO
000010a8: PUSH2 0x10b0
000010ab: JUMPI
000010ac: PUSH1 0x00
000010ae: DUP1
000010af: REVERT
000010b0: JUMPDEST
000010b1: POP
000010b2: GAS
000010b3: STATICCALL
000010b4: ISZERO
000010b5: DUP1
000010b6: ISZERO
000010b7: PUSH2 0x10c4
000010ba: JUMPI
000010bb: RETURNDATASIZE
000010bc: PUSH1 0x00
000010be: DUP1
000010bf: RETURNDATACOPY
000010c0: RETURNDATASIZE
000010c1: PUSH1 0x00
000010c3: REVERT
000010c4: JUMPDEST
000010c5: POP
000010c6: POP
000010c7: POP
000010c8: POP
000010c9: PUSH1 0x40
000010cb: MLOAD
000010cc: RETURNDATASIZE
000010cd: PUSH1 0x1f
000010cf: NOT
000010d0: PUSH1 0x1f
000010d2: DUP3
000010d3: ADD
000010d4: AND
000010d5: DUP3
000010d6: ADD
000010d7: DUP1
000010d8: PUSH1 0x40
000010da: MSTORE
000010db: POP
000010dc: DUP2
000010dd: ADD
000010de: SWAP1
000010df: PUSH2 0x10e8
000010e2: SWAP2
000010e3: SWAP1
000010e4: PUSH2 0x16bf
000010e7: JUMP
000010e8: JUMPDEST
000010e9: PUSH1 0x40
000010eb: DUP1
000010ec: MLOAD
000010ed: PUSH1 0x20
000010ef: DUP2
000010f0: ADD
000010f1: SWAP1
000010f2: SWAP2
000010f3: MSTORE
000010f4: PUSH1 0x01
000010f6: DUP6
000010f7: ADD
000010f8: SLOAD
000010f9: DUP2
000010fa: MSTORE
000010fb: DUP6
000010fc: MLOAD
000010fd: PUSH2 0x104f
00001100: SWAP2
00001101: SWAP1
00001102: PUSH2 0x0708
00001105: JUMP
00001106: JUMPDEST
00001107: PUSH1 0x00
00001109: SLOAD
0000110a: PUSH1 0x40
0000110c: MLOAD
0000110d: PUSH4 0x04ec7393
00001112: PUSH1 0xe5
00001114: SHL
00001115: DUP2
00001116: MSTORE
00001117: PUSH2 0x11a3
0000111a: SWAP2
0000111b: PUSH1 0x01
0000111d: PUSH1 0x01
0000111f: PUSH1 0xa0
00001121: SHL
00001122: SUB
00001123: AND
00001124: SWAP1
00001125: PUSH4 0x9d8e7260
0000112a: SWAP1
0000112b: PUSH2 0x1138
0000112e: SWAP1
0000112f: DUP10
00001130: SWAP1
00001131: PUSH1 0x04
00001133: ADD
00001134: PUSH2 0x1fdf
00001137: JUMP
00001138: JUMPDEST
00001139: PUSH1 0x20
0000113b: PUSH1 0x40
0000113d: MLOAD
0000113e: DUP1
0000113f: DUP4
00001140: SUB
00001141: DUP2
00001142: DUP7
00001143: DUP1
00001144: EXTCODESIZE
00001145: ISZERO
00001146: DUP1
00001147: ISZERO
00001148: PUSH2 0x1150
0000114b: JUMPI
0000114c: PUSH1 0x00
0000114e: DUP1
0000114f: REVERT
00001150: JUMPDEST
00001151: POP
00001152: GAS
00001153: STATICCALL
00001154: ISZERO
00001155: DUP1
00001156: ISZERO
00001157: PUSH2 0x1164
0000115a: JUMPI
0000115b: RETURNDATASIZE
0000115c: PUSH1 0x00
0000115e: DUP1
0000115f: RETURNDATACOPY
00001160: RETURNDATASIZE
00001161: PUSH1 0x00
00001163: REVERT
00001164: JUMPDEST
00001165: POP
00001166: POP
00001167: POP
00001168: POP
00001169: PUSH1 0x40
0000116b: MLOAD
0000116c: RETURNDATASIZE
0000116d: PUSH1 0x1f
0000116f: NOT
00001170: PUSH1 0x1f
00001172: DUP3
00001173: ADD
00001174: AND
00001175: DUP3
00001176: ADD
00001177: DUP1
00001178: PUSH1 0x40
0000117a: MSTORE
0000117b: POP
0000117c: DUP2
0000117d: ADD
0000117e: SWAP1
0000117f: PUSH2 0x1188
00001182: SWAP2
00001183: SWAP1
00001184: PUSH2 0x16bf
00001187: JUMP
00001188: JUMPDEST
00001189: PUSH1 0x40
0000118b: DUP1
0000118c: MLOAD
0000118d: PUSH1 0x20
0000118f: DUP2
00001190: ADD
00001191: SWAP1
00001192: SWAP2
00001193: MSTORE
00001194: DUP5
00001195: SLOAD
00001196: DUP2
00001197: MSTORE
00001198: DUP6
00001199: MLOAD
0000119a: PUSH2 0x104f
0000119d: SWAP2
0000119e: SWAP1
0000119f: PUSH2 0x0708
000011a2: JUMP
000011a3: JUMPDEST
000011a4: PUSH1 0x00
000011a6: SLOAD
000011a7: PUSH1 0x60
000011a9: DUP5
000011aa: ADD
000011ab: MLOAD
000011ac: PUSH1 0x40
000011ae: MLOAD
000011af: PUSH4 0x0f6b630f
000011b4: PUSH1 0xe4
000011b6: SHL
000011b7: DUP2
000011b8: MSTORE
000011b9: PUSH1 0x01
000011bb: PUSH1 0x01
000011bd: PUSH1 0xa0
000011bf: SHL
000011c0: SUB
000011c1: SWAP1
000011c2: SWAP3
000011c3: AND
000011c4: SWAP2
000011c5: PUSH4 0xf6b630f0
000011ca: SWAP2
000011cb: PUSH2 0x11d9
000011ce: SWAP2
000011cf: DUP10
000011d0: SWAP2
000011d1: SWAP1
000011d2: PUSH1 0x04
000011d4: ADD
000011d5: PUSH2 0x1fe8
000011d8: JUMP
000011d9: JUMPDEST
000011da: PUSH1 0x00
000011dc: PUSH1 0x40
000011de: MLOAD
000011df: DUP1
000011e0: DUP4
000011e1: SUB
000011e2: DUP2
000011e3: PUSH1 0x00
000011e5: DUP8
000011e6: DUP1
000011e7: EXTCODESIZE
000011e8: ISZERO
000011e9: DUP1
000011ea: ISZERO
000011eb: PUSH2 0x11f3
000011ee: JUMPI
000011ef: PUSH1 0x00
000011f1: DUP1
000011f2: REVERT
000011f3: JUMPDEST
000011f4: POP
000011f5: GAS
000011f6: CALL
000011f7: ISZERO
000011f8: DUP1
000011f9: ISZERO
000011fa: PUSH2 0x1207
000011fd: JUMPI
000011fe: RETURNDATASIZE
000011ff: PUSH1 0x00
00001201: DUP1
00001202: RETURNDATACOPY
00001203: RETURNDATASIZE
00001204: PUSH1 0x00
00001206: REVERT
00001207: JUMPDEST
00001208: POP
00001209: POP
0000120a: PUSH1 0x40
0000120c: DUP1
0000120d: MLOAD
0000120e: PUSH1 0x20
00001210: DUP1
00001211: DUP3
00001212: ADD
00001213: DUP4
00001214: MSTORE
00001215: PUSH1 0x80
00001217: DUP9
00001218: ADD
00001219: MLOAD
0000121a: MLOAD
0000121b: PUSH1 0x00
0000121d: DUP12
0000121e: DUP2
0000121f: MSTORE
00001220: PUSH1 0x03
00001222: SWAP1
00001223: SWAP3
00001224: MSTORE
00001225: SWAP3
00001226: SWAP1
00001227: KECCAK256
00001228: PUSH1 0x01
0000122a: ADD
0000122b: SLOAD
0000122c: SWAP1
0000122d: SWAP4
0000122e: POP
0000122f: DUP4
00001230: SWAP3
00001231: POP
00001232: PUSH2 0x125d
00001235: SWAP2
00001236: SWAP1
00001237: PUSH2 0x1251
0000123a: SWAP1
0000123b: DUP2
0000123c: PUSH1 0x64
0000123e: PUSH8 0x0de0b6b3a7640000
00001247: PUSH4 0xffffffff
0000124c: PUSH2 0x0e4f
0000124f: AND
00001250: JUMP
00001251: JUMPDEST
00001252: SWAP1
00001253: PUSH4 0xffffffff
00001258: PUSH2 0x1363
0000125b: AND
0000125c: JUMP
0000125d: JUMPDEST
0000125e: SWAP1
0000125f: MSTORE
00001260: MLOAD
00001261: PUSH1 0x02
00001263: DUP1
00001264: DUP5
00001265: ADD
00001266: SWAP2
00001267: SWAP1
00001268: SWAP2
00001269: SSTORE
0000126a: PUSH1 0x80
0000126c: DUP5
0000126d: ADD
0000126e: MLOAD
0000126f: MLOAD
00001270: DUP4
00001271: SSTORE
00001272: PUSH1 0x00
00001274: DUP7
00001275: DUP2
00001276: MSTORE
00001277: PUSH1 0x20
00001279: DUP3
0000127a: DUP2
0000127b: MSTORE
0000127c: PUSH1 0x40
0000127e: DUP1
0000127f: DUP4
00001280: KECCAK256
00001281: PUSH1 0x01
00001283: PUSH1 0x01
00001285: PUSH1 0xa0
00001287: SHL
00001288: SUB
00001289: DUP10
0000128a: AND
0000128b: DUP5
0000128c: MSTORE
0000128d: SWAP1
0000128e: SWAP2
0000128f: MSTORE
00001290: DUP1
00001291: DUP3
00001292: KECCAK256
00001293: DUP3
00001294: DUP2
00001295: SSTORE
00001296: PUSH1 0x01
00001298: DUP2
00001299: ADD
0000129a: DUP1
0000129b: SLOAD
0000129c: PUSH1 0x01
0000129e: PUSH1 0x01
000012a0: PUSH1 0xa0
000012a2: SHL
000012a3: SUB
000012a4: NOT
000012a5: SWAP1
000012a6: DUP2
000012a7: AND
000012a8: SWAP1
000012a9: SWAP2
000012aa: SSTORE
000012ab: SWAP4
000012ac: DUP2
000012ad: ADD
000012ae: DUP1
000012af: SLOAD
000012b0: DUP6
000012b1: AND
000012b2: SWAP1
000012b3: SSTORE
000012b4: PUSH1 0x03
000012b6: DUP2
000012b7: ADD
000012b8: DUP1
000012b9: SLOAD
000012ba: SWAP1
000012bb: SWAP5
000012bc: AND
000012bd: SWAP1
000012be: SWAP4
000012bf: SSTORE
000012c0: PUSH1 0x04
000012c2: SWAP1
000012c3: SWAP3
000012c4: ADD
000012c5: SSTORE
000012c6: MLOAD
000012c7: DUP6
000012c8: SWAP1
000012c9: PUSH32 0xdb88d4e96cb8697aaee5e575ee5f460817709a1dfcfbf7ba15192e90b5c86f9f
000012ea: SWAP1
000012eb: PUSH2 0x12f5
000012ee: SWAP1
000012ef: DUP6
000012f0: SWAP1
000012f1: PUSH2 0x1f36
000012f4: JUMP
000012f5: JUMPDEST
000012f6: PUSH1 0x40
000012f8: MLOAD
000012f9: DUP1
000012fa: SWAP2
000012fb: SUB
000012fc: SWAP1
000012fd: LOG2
000012fe: DUP5
000012ff: PUSH32 0xb6ef177c7a6f32b283a49b5e0463a39240cdaa278028dfb219480d050e8ee54c
00001320: DUP5
00001321: PUSH1 0x40
00001323: MLOAD
00001324: PUSH2 0x132d
00001327: SWAP2
00001328: SWAP1
00001329: PUSH2 0x1f55
0000132c: JUMP
0000132d: JUMPDEST
0000132e: PUSH1 0x40
00001330: MLOAD
00001331: DUP1
00001332: SWAP2
00001333: SUB
00001334: SWAP1
00001335: LOG2
00001336: POP
00001337: POP
00001338: POP
00001339: POP
0000133a: POP
0000133b: JUMP
0000133c: JUMPDEST
0000133d: PUSH2 0x135d
00001340: DUP5
00001341: PUSH4 0x23b872dd
00001346: PUSH1 0xe0
00001348: SHL
00001349: DUP6
0000134a: DUP6
0000134b: DUP6
0000134c: PUSH1 0x40
0000134e: MLOAD
0000134f: PUSH1 0x24
00001351: ADD
00001352: PUSH2 0x0ea8
00001355: SWAP4
00001356: SWAP3
00001357: SWAP2
00001358: SWAP1
00001359: PUSH2 0x194c
0000135c: JUMP
0000135d: JUMPDEST
0000135e: POP
0000135f: POP
00001360: POP
00001361: POP
00001362: JUMP
00001363: JUMPDEST
00001364: PUSH1 0x00
00001366: PUSH2 0x0725
00001369: DUP4
0000136a: DUP4
0000136b: PUSH1 0x40
0000136d: MLOAD
0000136e: DUP1
0000136f: PUSH1 0x40
00001371: ADD
00001372: PUSH1 0x40
00001374: MSTORE
00001375: DUP1
00001376: PUSH1 0x1e
00001378: DUP2
00001379: MSTORE
0000137a: PUSH1 0x20
0000137c: ADD
0000137d: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
0000139e: DUP2
0000139f: MSTORE
000013a0: POP
000013a1: PUSH2 0x1489
000013a4: JUMP
000013a5: JUMPDEST
000013a6: PUSH1 0x60
000013a8: PUSH2 0x13fa
000013ab: DUP3
000013ac: PUSH1 0x40
000013ae: MLOAD
000013af: DUP1
000013b0: PUSH1 0x40
000013b2: ADD
000013b3: PUSH1 0x40
000013b5: MSTORE
000013b6: DUP1
000013b7: PUSH1 0x20
000013b9: DUP2
000013ba: MSTORE
000013bb: PUSH1 0x20
000013bd: ADD
000013be: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
000013df: DUP2
000013e0: MSTORE
000013e1: POP
000013e2: DUP6
000013e3: PUSH1 0x01
000013e5: PUSH1 0x01
000013e7: PUSH1 0xa0
000013e9: SHL
000013ea: SUB
000013eb: AND
000013ec: PUSH2 0x14b5
000013ef: SWAP1
000013f0: SWAP3
000013f1: SWAP2
000013f2: SWAP1
000013f3: PUSH4 0xffffffff
000013f8: AND
000013f9: JUMP
000013fa: JUMPDEST
000013fb: DUP1
000013fc: MLOAD
000013fd: SWAP1
000013fe: SWAP2
000013ff: POP
00001400: ISZERO
00001401: PUSH2 0x08d2
00001404: JUMPI
00001405: DUP1
00001406: DUP1
00001407: PUSH1 0x20
00001409: ADD
0000140a: SWAP1
0000140b: MLOAD
0000140c: DUP2
0000140d: ADD
0000140e: SWAP1
0000140f: PUSH2 0x1418
00001412: SWAP2
00001413: SWAP1
00001414: PUSH2 0x16db
00001417: JUMP
00001418: JUMPDEST
00001419: PUSH2 0x08d2
0000141c: JUMPI
0000141d: PUSH1 0x40
0000141f: MLOAD
00001420: PUSH3 0x461bcd
00001424: PUSH1 0xe5
00001426: SHL
00001427: DUP2
00001428: MSTORE
00001429: PUSH1 0x04
0000142b: ADD
0000142c: PUSH2 0x0281
0000142f: SWAP1
00001430: PUSH2 0x1e39
00001433: JUMP
00001434: JUMPDEST
00001435: PUSH1 0x00
00001437: PUSH2 0x144a
0000143a: DUP3
0000143b: PUSH2 0x0719
0000143e: DUP7
0000143f: DUP7
00001440: PUSH4 0xffffffff
00001445: PUSH2 0x0e4f
00001448: AND
00001449: JUMP
0000144a: JUMPDEST
0000144b: SWAP5
0000144c: SWAP4
0000144d: POP
0000144e: POP
0000144f: POP
00001450: POP
00001451: JUMP
00001452: JUMPDEST
00001453: PUSH1 0x00
00001455: DUP2
00001456: DUP4
00001457: PUSH2 0x1473
0000145a: JUMPI
0000145b: PUSH1 0x40
0000145d: MLOAD
0000145e: PUSH3 0x461bcd
00001462: PUSH1 0xe5
00001464: SHL
00001465: DUP2
00001466: MSTORE
00001467: PUSH1 0x04
00001469: ADD
0000146a: PUSH2 0x0281
0000146d: SWAP2
0000146e: SWAP1
0000146f: PUSH2 0x1994
00001472: JUMP
00001473: JUMPDEST
00001474: POP
00001475: PUSH1 0x00
00001477: DUP4
00001478: DUP6
00001479: DUP2
0000147a: PUSH2 0x147f
0000147d: JUMPI
0000147e: INVALID
0000147f: JUMPDEST
00001480: DIV
00001481: SWAP6
00001482: SWAP5
00001483: POP
00001484: POP
00001485: POP
00001486: POP
00001487: POP
00001488: JUMP
00001489: JUMPDEST
0000148a: PUSH1 0x00
0000148c: DUP2
0000148d: DUP5
0000148e: DUP5
0000148f: GT
00001490: ISZERO
00001491: PUSH2 0x14ad
00001494: JUMPI
00001495: PUSH1 0x40
00001497: MLOAD
00001498: PUSH3 0x461bcd
0000149c: PUSH1 0xe5
0000149e: SHL
0000149f: DUP2
000014a0: MSTORE
000014a1: PUSH1 0x04
000014a3: ADD
000014a4: PUSH2 0x0281
000014a7: SWAP2
000014a8: SWAP1
000014a9: PUSH2 0x1994
000014ac: JUMP
000014ad: JUMPDEST
000014ae: POP
000014af: POP
000014b0: POP
000014b1: SWAP1
000014b2: SUB
000014b3: SWAP1
000014b4: JUMP
000014b5: JUMPDEST
000014b6: PUSH1 0x60
000014b8: PUSH2 0x144a
000014bb: DUP5
000014bc: DUP5
000014bd: PUSH1 0x00
000014bf: DUP6
000014c0: PUSH1 0x60
000014c2: PUSH2 0x14ca
000014c5: DUP6
000014c6: PUSH2 0x1583
000014c9: JUMP
000014ca: JUMPDEST
000014cb: PUSH2 0x14e6
000014ce: JUMPI
000014cf: PUSH1 0x40
000014d1: MLOAD
000014d2: PUSH3 0x461bcd
000014d6: PUSH1 0xe5
000014d8: SHL
000014d9: DUP2
000014da: MSTORE
000014db: PUSH1 0x04
000014dd: ADD
000014de: PUSH2 0x0281
000014e1: SWAP1
000014e2: PUSH2 0x1d82
000014e5: JUMP
000014e6: JUMPDEST
000014e7: PUSH1 0x00
000014e9: PUSH1 0x60
000014eb: DUP7
000014ec: PUSH1 0x01
000014ee: PUSH1 0x01
000014f0: PUSH1 0xa0
000014f2: SHL
000014f3: SUB
000014f4: AND
000014f5: DUP6
000014f6: DUP8
000014f7: PUSH1 0x40
000014f9: MLOAD
000014fa: PUSH2 0x1503
000014fd: SWAP2
000014fe: SWAP1
000014ff: PUSH2 0x191c
00001502: JUMP
00001503: JUMPDEST
00001504: PUSH1 0x00
00001506: PUSH1 0x40
00001508: MLOAD
00001509: DUP1
0000150a: DUP4
0000150b: SUB
0000150c: DUP2
0000150d: DUP6
0000150e: DUP8
0000150f: GAS
00001510: CALL
00001511: SWAP3
00001512: POP
00001513: POP
00001514: POP
00001515: RETURNDATASIZE
00001516: DUP1
00001517: PUSH1 0x00
00001519: DUP2
0000151a: EQ
0000151b: PUSH2 0x1540
0000151e: JUMPI
0000151f: PUSH1 0x40
00001521: MLOAD
00001522: SWAP2
00001523: POP
00001524: PUSH1 0x1f
00001526: NOT
00001527: PUSH1 0x3f
00001529: RETURNDATASIZE
0000152a: ADD
0000152b: AND
0000152c: DUP3
0000152d: ADD
0000152e: PUSH1 0x40
00001530: MSTORE
00001531: RETURNDATASIZE
00001532: DUP3
00001533: MSTORE
00001534: RETURNDATASIZE
00001535: PUSH1 0x00
00001537: PUSH1 0x20
00001539: DUP5
0000153a: ADD
0000153b: RETURNDATACOPY
0000153c: PUSH2 0x1545
0000153f: JUMP
00001540: JUMPDEST
00001541: PUSH1 0x60
00001543: SWAP2
00001544: POP
00001545: JUMPDEST
00001546: POP
00001547: SWAP2
00001548: POP
00001549: SWAP2
0000154a: POP
0000154b: DUP2
0000154c: ISZERO
0000154d: PUSH2 0x1559
00001550: JUMPI
00001551: SWAP2
00001552: POP
00001553: PUSH2 0x144a
00001556: SWAP1
00001557: POP
00001558: JUMP
00001559: JUMPDEST
0000155a: DUP1
0000155b: MLOAD
0000155c: ISZERO
0000155d: PUSH2 0x1569
00001560: JUMPI
00001561: DUP1
00001562: MLOAD
00001563: DUP1
00001564: DUP3
00001565: PUSH1 0x20
00001567: ADD
00001568: REVERT
00001569: JUMPDEST
0000156a: DUP4
0000156b: PUSH1 0x40
0000156d: MLOAD
0000156e: PUSH3 0x461bcd
00001572: PUSH1 0xe5
00001574: SHL
00001575: DUP2
00001576: MSTORE
00001577: PUSH1 0x04
00001579: ADD
0000157a: PUSH2 0x0281
0000157d: SWAP2
0000157e: SWAP1
0000157f: PUSH2 0x1994
00001582: JUMP
00001583: JUMPDEST
00001584: EXTCODESIZE
00001585: ISZERO
00001586: ISZERO
00001587: SWAP1
00001588: JUMP
00001589: JUMPDEST
0000158a: PUSH1 0x40
0000158c: MLOAD
0000158d: DUP1
0000158e: PUSH1 0x60
00001590: ADD
00001591: PUSH1 0x40
00001593: MSTORE
00001594: DUP1
00001595: PUSH2 0x159c
00001598: PUSH2 0x1618
0000159b: JUMP
0000159c: JUMPDEST
0000159d: DUP2
0000159e: MSTORE
0000159f: PUSH1 0x20
000015a1: ADD
000015a2: PUSH2 0x15a9
000015a5: PUSH2 0x1618
000015a8: JUMP
000015a9: JUMPDEST
000015aa: DUP2
000015ab: MSTORE
000015ac: PUSH1 0x20
000015ae: ADD
000015af: PUSH2 0x15b6
000015b2: PUSH2 0x1618
000015b5: JUMP
000015b6: JUMPDEST
000015b7: SWAP1
000015b8: MSTORE
000015b9: SWAP1
000015ba: JUMP
000015bb: JUMPDEST
000015bc: PUSH1 0x40
000015be: DUP1
000015bf: MLOAD
000015c0: DUP1
000015c1: DUP3
000015c2: ADD
000015c3: SWAP1
000015c4: SWAP2
000015c5: MSTORE
000015c6: PUSH1 0x00
000015c8: DUP1
000015c9: DUP3
000015ca: MSTORE
000015cb: PUSH1 0x20
000015cd: DUP3
000015ce: ADD
000015cf: MSTORE
000015d0: SWAP1
000015d1: JUMP
000015d2: JUMPDEST
000015d3: PUSH1 0x40
000015d5: MLOAD
000015d6: DUP1
000015d7: PUSH1 0xa0
000015d9: ADD
000015da: PUSH1 0x40
000015dc: MSTORE
000015dd: DUP1
000015de: PUSH1 0x00
000015e0: DUP2
000015e1: MSTORE
000015e2: PUSH1 0x20
000015e4: ADD
000015e5: PUSH1 0x00
000015e7: PUSH1 0x01
000015e9: PUSH1 0x01
000015eb: PUSH1 0xa0
000015ed: SHL
000015ee: SUB
000015ef: AND
000015f0: DUP2
000015f1: MSTORE
000015f2: PUSH1 0x20
000015f4: ADD
000015f5: PUSH1 0x00
000015f7: PUSH1 0x01
000015f9: PUSH1 0x01
000015fb: PUSH1 0xa0
000015fd: SHL
000015fe: SUB
000015ff: AND
00001600: DUP2
00001601: MSTORE
00001602: PUSH1 0x20
00001604: ADD
00001605: PUSH1 0x00
00001607: PUSH1 0x01
00001609: PUSH1 0x01
0000160b: PUSH1 0xa0
0000160d: SHL
0000160e: SUB
0000160f: AND
00001610: DUP2
00001611: MSTORE
00001612: PUSH1 0x20
00001614: ADD
00001615: PUSH2 0x15b6
00001618: JUMPDEST
00001619: PUSH1 0x40
0000161b: MLOAD
0000161c: DUP1
0000161d: PUSH1 0x20
0000161f: ADD
00001620: PUSH1 0x40
00001622: MSTORE
00001623: DUP1
00001624: PUSH1 0x00
00001626: DUP2
00001627: MSTORE
00001628: POP
00001629: SWAP1
0000162a: JUMP
0000162b: JUMPDEST
0000162c: PUSH1 0x00
0000162e: PUSH1 0x60
00001630: DUP3
00001631: DUP5
00001632: SUB
00001633: SLT
00001634: ISZERO
00001635: PUSH2 0x163c
00001638: JUMPI
00001639: DUP1
0000163a: DUP2
0000163b: REVERT
0000163c: JUMPDEST
0000163d: PUSH2 0x1646
00001640: PUSH1 0x60
00001642: PUSH2 0x1fff
00001645: JUMP
00001646: JUMPDEST
00001647: SWAP1
00001648: POP
00001649: PUSH2 0x1652
0000164c: DUP4
0000164d: DUP4
0000164e: PUSH2 0x167e
00001651: JUMP
00001652: JUMPDEST
00001653: DUP2
00001654: MSTORE
00001655: PUSH2 0x1661
00001658: DUP4
00001659: PUSH1 0x20
0000165b: DUP5
0000165c: ADD
0000165d: PUSH2 0x167e
00001660: JUMP
00001661: JUMPDEST
00001662: PUSH1 0x20
00001664: DUP3
00001665: ADD
00001666: MSTORE
00001667: PUSH2 0x1673
0000166a: DUP4
0000166b: PUSH1 0x40
0000166d: DUP5
0000166e: ADD
0000166f: PUSH2 0x167e
00001672: JUMP
00001673: JUMPDEST
00001674: PUSH1 0x40
00001676: DUP3
00001677: ADD
00001678: MSTORE
00001679: SWAP3
0000167a: SWAP2
0000167b: POP
0000167c: POP
0000167d: JUMP
0000167e: JUMPDEST
0000167f: PUSH1 0x00
00001681: PUSH1 0x20
00001683: DUP3
00001684: DUP5
00001685: SUB
00001686: SLT
00001687: ISZERO
00001688: PUSH2 0x168f
0000168b: JUMPI
0000168c: DUP1
0000168d: DUP2
0000168e: REVERT
0000168f: JUMPDEST
00001690: PUSH2 0x1699
00001693: PUSH1 0x20
00001695: PUSH2 0x1fff
00001698: JUMP
00001699: JUMPDEST
0000169a: SWAP2
0000169b: CALLDATALOAD
0000169c: DUP3
0000169d: MSTORE
0000169e: POP
0000169f: SWAP2
000016a0: SWAP1
000016a1: POP
000016a2: JUMP
000016a3: JUMPDEST
000016a4: PUSH1 0x00
000016a6: PUSH1 0x20
000016a8: DUP3
000016a9: DUP5
000016aa: SUB
000016ab: SLT
000016ac: ISZERO
000016ad: PUSH2 0x16b4
000016b0: JUMPI
000016b1: DUP1
000016b2: DUP2
000016b3: REVERT
000016b4: JUMPDEST
000016b5: DUP2
000016b6: CALLDATALOAD
000016b7: PUSH2 0x0725
000016ba: DUP2
000016bb: PUSH2 0x2052
000016be: JUMP
000016bf: JUMPDEST
000016c0: PUSH1 0x00
000016c2: PUSH1 0x20
000016c4: DUP3
000016c5: DUP5
000016c6: SUB
000016c7: SLT
000016c8: ISZERO
000016c9: PUSH2 0x16d0
000016cc: JUMPI
000016cd: DUP1
000016ce: DUP2
000016cf: REVERT
000016d0: JUMPDEST
000016d1: DUP2
000016d2: MLOAD
000016d3: PUSH2 0x0725
000016d6: DUP2
000016d7: PUSH2 0x2052
000016da: JUMP
000016db: JUMPDEST
000016dc: PUSH1 0x00
000016de: PUSH1 0x20
000016e0: DUP3
000016e1: DUP5
000016e2: SUB
000016e3: SLT
000016e4: ISZERO
000016e5: PUSH2 0x16ec
000016e8: JUMPI
000016e9: DUP1
000016ea: DUP2
000016eb: REVERT
000016ec: JUMPDEST
000016ed: DUP2
000016ee: MLOAD
000016ef: DUP1
000016f0: ISZERO
000016f1: ISZERO
000016f2: DUP2
000016f3: EQ
000016f4: PUSH2 0x0725
000016f7: JUMPI
000016f8: DUP2
000016f9: DUP3
000016fa: REVERT
000016fb: JUMPDEST
000016fc: PUSH1 0x00
000016fe: PUSH1 0x60
00001700: DUP3
00001701: DUP5
00001702: SUB
00001703: SLT
00001704: ISZERO
00001705: PUSH2 0x170c
00001708: JUMPI
00001709: DUP1
0000170a: DUP2
0000170b: REVERT
0000170c: JUMPDEST
0000170d: PUSH2 0x0725
00001710: DUP4
00001711: DUP4
00001712: PUSH2 0x162b
00001715: JUMP
00001716: JUMPDEST
00001717: PUSH1 0x00
00001719: DUP1
0000171a: PUSH1 0x40
0000171c: DUP4
0000171d: DUP6
0000171e: SUB
0000171f: SLT
00001720: ISZERO
00001721: PUSH2 0x1728
00001724: JUMPI
00001725: DUP1
00001726: DUP2
00001727: REVERT
00001728: JUMPDEST
00001729: PUSH2 0x1732
0000172c: DUP5
0000172d: DUP5
0000172e: PUSH2 0x167e
00001731: JUMP
00001732: JUMPDEST
00001733: SWAP5
00001734: PUSH1 0x20
00001736: SWAP4
00001737: SWAP1
00001738: SWAP4
00001739: ADD
0000173a: CALLDATALOAD
0000173b: SWAP4
0000173c: POP
0000173d: POP
0000173e: POP
0000173f: JUMP
00001740: JUMPDEST
00001741: PUSH1 0x00
00001743: PUSH1 0x20
00001745: DUP3
00001746: DUP5
00001747: SUB
00001748: SLT
00001749: ISZERO
0000174a: PUSH2 0x1751
0000174d: JUMPI
0000174e: DUP1
0000174f: DUP2
00001750: REVERT
00001751: JUMPDEST
00001752: POP
00001753: CALLDATALOAD
00001754: SWAP2
00001755: SWAP1
00001756: POP
00001757: JUMP
00001758: JUMPDEST
00001759: PUSH1 0x00
0000175b: PUSH1 0x20
0000175d: DUP3
0000175e: DUP5
0000175f: SUB
00001760: SLT
00001761: ISZERO
00001762: PUSH2 0x1769
00001765: JUMPI
00001766: DUP1
00001767: DUP2
00001768: REVERT
00001769: JUMPDEST
0000176a: POP
0000176b: MLOAD
0000176c: SWAP2
0000176d: SWAP1
0000176e: POP
0000176f: JUMP
00001770: JUMPDEST
00001771: PUSH1 0x00
00001773: DUP1
00001774: PUSH1 0x40
00001776: DUP4
00001777: DUP6
00001778: SUB
00001779: SLT
0000177a: ISZERO
0000177b: PUSH2 0x1782
0000177e: JUMPI
0000177f: DUP2
00001780: DUP3
00001781: REVERT
00001782: JUMPDEST
00001783: DUP3
00001784: CALLDATALOAD
00001785: SWAP2
00001786: POP
00001787: PUSH1 0x20
00001789: DUP4
0000178a: ADD
0000178b: CALLDATALOAD
0000178c: PUSH2 0x1794
0000178f: DUP2
00001790: PUSH2 0x2052
00001793: JUMP
00001794: JUMPDEST
00001795: DUP1
00001796: SWAP2
00001797: POP
00001798: POP
00001799: SWAP3
0000179a: POP
0000179b: SWAP3
0000179c: SWAP1
0000179d: POP
0000179e: JUMP
0000179f: JUMPDEST
000017a0: PUSH1 0x00
000017a2: DUP1
000017a3: DUP3
000017a4: DUP5
000017a5: SUB
000017a6: PUSH1 0x60
000017a8: DUP2
000017a9: SLT
000017aa: ISZERO
000017ab: PUSH2 0x17b2
000017ae: JUMPI
000017af: DUP3
000017b0: DUP4
000017b1: REVERT
000017b2: JUMPDEST
000017b3: DUP4
000017b4: CALLDATALOAD
000017b5: SWAP3
000017b6: POP
000017b7: PUSH1 0x40
000017b9: PUSH1 0x1f
000017bb: NOT
000017bc: DUP3
000017bd: ADD
000017be: SLT
000017bf: ISZERO
000017c0: PUSH2 0x17c7
000017c3: JUMPI
000017c4: DUP2
000017c5: DUP3
000017c6: REVERT
000017c7: JUMPDEST
000017c8: POP
000017c9: PUSH2 0x17d2
000017cc: PUSH1 0x40
000017ce: PUSH2 0x1fff
000017d1: JUMP
000017d2: JUMPDEST
000017d3: PUSH1 0x20
000017d5: DUP5
000017d6: ADD
000017d7: CALLDATALOAD
000017d8: DUP2
000017d9: MSTORE
000017da: PUSH1 0x40
000017dc: DUP5
000017dd: ADD
000017de: CALLDATALOAD
000017df: PUSH2 0x17e7
000017e2: DUP2
000017e3: PUSH2 0x2052
000017e6: JUMP
000017e7: JUMPDEST
000017e8: PUSH1 0x20
000017ea: DUP3
000017eb: ADD
000017ec: MSTORE
000017ed: SWAP2
000017ee: SWAP5
000017ef: SWAP2
000017f0: SWAP4
000017f1: POP
000017f2: SWAP1
000017f3: SWAP2
000017f4: POP
000017f5: POP
000017f6: JUMP
000017f7: JUMPDEST
000017f8: PUSH1 0x00
000017fa: DUP1
000017fb: PUSH1 0x80
000017fd: DUP4
000017fe: DUP6
000017ff: SUB
00001800: SLT
00001801: ISZERO
00001802: PUSH2 0x1809
00001805: JUMPI
00001806: DUP2
00001807: DUP3
00001808: REVERT
00001809: JUMPDEST
0000180a: DUP3
0000180b: CALLDATALOAD
0000180c: SWAP2
0000180d: POP
0000180e: PUSH2 0x181a
00001811: DUP5
00001812: PUSH1 0x20
00001814: DUP6
00001815: ADD
00001816: PUSH2 0x162b
00001819: JUMP
0000181a: JUMPDEST
0000181b: SWAP1
0000181c: POP
0000181d: SWAP3
0000181e: POP
0000181f: SWAP3
00001820: SWAP1
00001821: POP
00001822: JUMP
00001823: JUMPDEST
00001824: PUSH1 0x00
00001826: DUP1
00001827: DUP3
00001828: DUP5
00001829: SUB
0000182a: PUSH1 0xc0
0000182c: DUP2
0000182d: SLT
0000182e: ISZERO
0000182f: PUSH2 0x1836
00001832: JUMPI
00001833: DUP3
00001834: DUP4
00001835: REVERT
00001836: JUMPDEST
00001837: DUP4
00001838: CALLDATALOAD
00001839: SWAP3
0000183a: POP
0000183b: PUSH1 0xa0
0000183d: PUSH1 0x1f
0000183f: NOT
00001840: DUP3
00001841: ADD
00001842: SLT
00001843: ISZERO
00001844: PUSH2 0x184b
00001847: JUMPI
00001848: DUP2
00001849: DUP3
0000184a: REVERT
0000184b: JUMPDEST
0000184c: POP
0000184d: PUSH1 0x20
0000184f: DUP4
00001850: ADD
00001851: SWAP1
00001852: POP
00001853: SWAP3
00001854: POP
00001855: SWAP3
00001856: SWAP1
00001857: POP
00001858: JUMP
00001859: JUMPDEST
0000185a: PUSH1 0x00
0000185c: DUP1
0000185d: PUSH1 0x00
0000185f: DUP4
00001860: DUP6
00001861: SUB
00001862: PUSH1 0xe0
00001864: DUP2
00001865: SLT
00001866: ISZERO
00001867: PUSH2 0x186e
0000186a: JUMPI
0000186b: DUP2
0000186c: DUP3
0000186d: REVERT
0000186e: JUMPDEST
0000186f: DUP5
00001870: CALLDATALOAD
00001871: SWAP4
00001872: POP
00001873: PUSH1 0xa0
00001875: PUSH1 0x1f
00001877: NOT
00001878: DUP3
00001879: ADD
0000187a: SLT
0000187b: ISZERO
0000187c: PUSH2 0x1883
0000187f: JUMPI
00001880: DUP2
00001881: DUP3
00001882: REVERT
00001883: JUMPDEST
00001884: POP
00001885: PUSH2 0x188e
00001888: PUSH1 0xa0
0000188a: PUSH2 0x1fff
0000188d: JUMP
0000188e: JUMPDEST
0000188f: PUSH1 0x20
00001891: DUP6
00001892: ADD
00001893: CALLDATALOAD
00001894: DUP2
00001895: MSTORE
00001896: PUSH1 0x40
00001898: DUP6
00001899: ADD
0000189a: CALLDATALOAD
0000189b: PUSH2 0x18a3
0000189e: DUP2
0000189f: PUSH2 0x2052
000018a2: JUMP
000018a3: JUMPDEST
000018a4: PUSH1 0x20
000018a6: DUP3
000018a7: ADD
000018a8: MSTORE
000018a9: PUSH1 0x60
000018ab: DUP6
000018ac: ADD
000018ad: CALLDATALOAD
000018ae: PUSH2 0x18b6
000018b1: DUP2
000018b2: PUSH2 0x2052
000018b5: JUMP
000018b6: JUMPDEST
000018b7: PUSH1 0x40
000018b9: DUP3
000018ba: ADD
000018bb: MSTORE
000018bc: PUSH1 0x80
000018be: DUP6
000018bf: ADD
000018c0: CALLDATALOAD
000018c1: PUSH2 0x18c9
000018c4: DUP2
000018c5: PUSH2 0x2052
000018c8: JUMP
000018c9: JUMPDEST
000018ca: PUSH1 0x60
000018cc: DUP3
000018cd: ADD
000018ce: MSTORE
000018cf: PUSH2 0x18db
000018d2: DUP7
000018d3: PUSH1 0xa0
000018d5: DUP8
000018d6: ADD
000018d7: PUSH2 0x167e
000018da: JUMP
000018db: JUMPDEST
000018dc: PUSH1 0x80
000018de: DUP3
000018df: ADD
000018e0: MSTORE
000018e1: SWAP2
000018e2: POP
000018e3: PUSH1 0xc0
000018e5: DUP5
000018e6: ADD
000018e7: CALLDATALOAD
000018e8: PUSH2 0x18f0
000018eb: DUP2
000018ec: PUSH2 0x2052
000018ef: JUMP
000018f0: JUMPDEST
000018f1: DUP1
000018f2: SWAP2
000018f3: POP
000018f4: POP
000018f5: SWAP3
000018f6: POP
000018f7: SWAP3
000018f8: POP
000018f9: SWAP3
000018fa: JUMP
000018fb: JUMPDEST
000018fc: PUSH1 0x00
000018fe: DUP1
000018ff: PUSH1 0x40
00001901: DUP4
00001902: DUP6
00001903: SUB
00001904: SLT
00001905: ISZERO
00001906: PUSH2 0x190d
00001909: JUMPI
0000190a: DUP2
0000190b: DUP3
0000190c: REVERT
0000190d: JUMPDEST
0000190e: POP
0000190f: POP
00001910: DUP1
00001911: CALLDATALOAD
00001912: SWAP3
00001913: PUSH1 0x20
00001915: SWAP1
00001916: SWAP2
00001917: ADD
00001918: CALLDATALOAD
00001919: SWAP2
0000191a: POP
0000191b: JUMP
0000191c: JUMPDEST
0000191d: PUSH1 0x00
0000191f: DUP3
00001920: MLOAD
00001921: PUSH2 0x192e
00001924: DUP2
00001925: DUP5
00001926: PUSH1 0x20
00001928: DUP8
00001929: ADD
0000192a: PUSH2 0x2026
0000192d: JUMP
0000192e: JUMPDEST
0000192f: SWAP2
00001930: SWAP1
00001931: SWAP2
00001932: ADD
00001933: SWAP3
00001934: SWAP2
00001935: POP
00001936: POP
00001937: JUMP
00001938: JUMPDEST
00001939: PUSH1 0x01
0000193b: PUSH1 0x01
0000193d: PUSH1 0xa0
0000193f: SHL
00001940: SUB
00001941: SWAP2
00001942: SWAP1
00001943: SWAP2
00001944: AND
00001945: DUP2
00001946: MSTORE
00001947: PUSH1 0x20
00001949: ADD
0000194a: SWAP1
0000194b: JUMP
0000194c: JUMPDEST
0000194d: PUSH1 0x01
0000194f: PUSH1 0x01
00001951: PUSH1 0xa0
00001953: SHL
00001954: SUB
00001955: SWAP4
00001956: DUP5
00001957: AND
00001958: DUP2
00001959: MSTORE
0000195a: SWAP2
0000195b: SWAP1
0000195c: SWAP3
0000195d: AND
0000195e: PUSH1 0x20
00001960: DUP3
00001961: ADD
00001962: MSTORE
00001963: PUSH1 0x40
00001965: DUP2
00001966: ADD
00001967: SWAP2
00001968: SWAP1
00001969: SWAP2
0000196a: MSTORE
0000196b: PUSH1 0x60
0000196d: ADD
0000196e: SWAP1
0000196f: JUMP
00001970: JUMPDEST
00001971: PUSH1 0x01
00001973: PUSH1 0x01
00001975: PUSH1 0xa0
00001977: SHL
00001978: SUB
00001979: SWAP3
0000197a: SWAP1
0000197b: SWAP3
0000197c: AND
0000197d: DUP3
0000197e: MSTORE
0000197f: PUSH1 0x20
00001981: DUP3
00001982: ADD
00001983: MSTORE
00001984: PUSH1 0x40
00001986: ADD
00001987: SWAP1
00001988: JUMP
00001989: JUMPDEST
0000198a: SWAP1
0000198b: ISZERO
0000198c: ISZERO
0000198d: DUP2
0000198e: MSTORE
0000198f: PUSH1 0x20
00001991: ADD
00001992: SWAP1
00001993: JUMP
00001994: JUMPDEST
00001995: PUSH1 0x00
00001997: PUSH1 0x20
00001999: DUP3
0000199a: MSTORE
0000199b: DUP3
0000199c: MLOAD
0000199d: DUP1
0000199e: PUSH1 0x20
000019a0: DUP5
000019a1: ADD
000019a2: MSTORE
000019a3: PUSH2 0x19b3
000019a6: DUP2
000019a7: PUSH1 0x40
000019a9: DUP6
000019aa: ADD
000019ab: PUSH1 0x20
000019ad: DUP8
000019ae: ADD
000019af: PUSH2 0x2026
000019b2: JUMP
000019b3: JUMPDEST
000019b4: PUSH1 0x1f
000019b6: ADD
000019b7: PUSH1 0x1f
000019b9: NOT
000019ba: AND
000019bb: SWAP2
000019bc: SWAP1
000019bd: SWAP2
000019be: ADD
000019bf: PUSH1 0x40
000019c1: ADD
000019c2: SWAP3
000019c3: SWAP2
000019c4: POP
000019c5: POP
000019c6: JUMP
000019c7: JUMPDEST
000019c8: PUSH1 0x20
000019ca: DUP1
000019cb: DUP3
000019cc: MSTORE
000019cd: PUSH1 0x2b
000019cf: SWAP1
000019d0: DUP3
000019d1: ADD
000019d2: MSTORE
000019d3: PUSH32 0x4d61726b65743a20496e76616c696420626964207368617265732c206d757374
000019f4: PUSH1 0x40
000019f6: DUP3
000019f7: ADD
000019f8: MSTORE
000019f9: PUSH11 0x02073756d20746f2031303
00001a05: PUSH1 0xac
00001a07: SHL
00001a08: PUSH1 0x60
00001a0a: DUP3
00001a0b: ADD
00001a0c: MSTORE
00001a0d: PUSH1 0x80
00001a0f: ADD
00001a10: SWAP1
00001a11: JUMP
00001a12: JUMPDEST
00001a13: PUSH1 0x20
00001a15: DUP1
00001a16: DUP3
00001a17: MSTORE
00001a18: PUSH1 0x28
00001a1a: SWAP1
00001a1b: DUP3
00001a1c: ADD
00001a1d: MSTORE
00001a1e: PUSH32 0x4d61726b65743a206269642063757272656e63792063616e6e6f742062652030
00001a3f: PUSH1 0x40
00001a41: DUP3
00001a42: ADD
00001a43: MSTORE
00001a44: PUSH8 0x2061646472657373
00001a4d: PUSH1 0xc0
00001a4f: SHL
00001a50: PUSH1 0x60
00001a52: DUP3
00001a53: ADD
00001a54: MSTORE
00001a55: PUSH1 0x80
00001a57: ADD
00001a58: SWAP1
00001a59: JUMP
00001a5a: JUMPDEST
00001a5b: PUSH1 0x20
00001a5d: DUP1
00001a5e: DUP3
00001a5f: MSTORE
00001a60: PUSH1 0x27
00001a62: SWAP1
00001a63: DUP3
00001a64: ADD
00001a65: MSTORE
00001a66: PUSH32 0x4d61726b65743a2042696420696e76616c696420666f72207368617265207370
00001a87: PUSH1 0x40
00001a89: DUP3
00001a8a: ADD
00001a8b: MSTORE
00001a8c: PUSH7 0x6c697474696e67
00001a94: PUSH1 0xc8
00001a96: SHL
00001a97: PUSH1 0x60
00001a99: DUP3
00001a9a: ADD
00001a9b: MSTORE
00001a9c: PUSH1 0x80
00001a9e: ADD
00001a9f: SWAP1
00001aa0: JUMP
00001aa1: JUMPDEST
00001aa2: PUSH1 0x20
00001aa4: DUP1
00001aa5: DUP3
00001aa6: MSTORE
00001aa7: PUSH1 0x22
00001aa9: SWAP1
00001aaa: DUP3
00001aab: ADD
00001aac: MSTORE
00001aad: PUSH32 0x4d61726b65743a206269646465722063616e6e6f742062652030206164647265
00001ace: PUSH1 0x40
00001ad0: DUP3
00001ad1: ADD
00001ad2: MSTORE
00001ad3: PUSH2 0x7373
00001ad6: PUSH1 0xf0
00001ad8: SHL
00001ad9: PUSH1 0x60
00001adb: DUP3
00001adc: ADD
00001add: MSTORE
00001ade: PUSH1 0x80
00001ae0: ADD
00001ae1: SWAP1
00001ae2: JUMP
00001ae3: JUMPDEST
00001ae4: PUSH1 0x20
00001ae6: DUP1
00001ae7: DUP3
00001ae8: MSTORE
00001ae9: PUSH1 0x27
00001aeb: SWAP1
00001aec: DUP3
00001aed: ADD
00001aee: MSTORE
00001aef: PUSH32 0x4d61726b65743a2041736b20696e76616c696420666f72207368617265207370
00001b10: PUSH1 0x40
00001b12: DUP3
00001b13: ADD
00001b14: MSTORE
00001b15: PUSH7 0x6c697474696e67
00001b1d: PUSH1 0xc8
00001b1f: SHL
00001b20: PUSH1 0x60
00001b22: DUP3
00001b23: ADD
00001b24: MSTORE
00001b25: PUSH1 0x80
00001b27: ADD
00001b28: SWAP1
00001b29: JUMP
00001b2a: JUMPDEST
00001b2b: PUSH1 0x20
00001b2d: DUP1
00001b2e: DUP3
00001b2f: MSTORE
00001b30: PUSH1 0x1b
00001b32: SWAP1
00001b33: DUP3
00001b34: ADD
00001b35: MSTORE
00001b36: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00001b57: PUSH1 0x40
00001b59: DUP3
00001b5a: ADD
00001b5b: MSTORE
00001b5c: PUSH1 0x60
00001b5e: ADD
00001b5f: SWAP1
00001b60: JUMP
00001b61: JUMPDEST
00001b62: PUSH1 0x20
00001b64: DUP1
00001b65: DUP3
00001b66: MSTORE
00001b67: PUSH1 0x25
00001b69: SWAP1
00001b6a: DUP3
00001b6b: ADD
00001b6c: MSTORE
00001b6d: PUSH32 0x4d61726b65743a2063616e6e6f742072656d6f76652062696420616d6f756e74
00001b8e: PUSH1 0x40
00001b90: DUP3
00001b91: ADD
00001b92: MSTORE
00001b93: PUSH5 0x0206f66203
00001b99: PUSH1 0xdc
00001b9b: SHL
00001b9c: PUSH1 0x60
00001b9e: DUP3
00001b9f: ADD
00001ba0: MSTORE
00001ba1: PUSH1 0x80
00001ba3: ADD
00001ba4: SWAP1
00001ba5: JUMP
00001ba6: JUMPDEST
00001ba7: PUSH1 0x20
00001ba9: DUP1
00001baa: DUP3
00001bab: MSTORE
00001bac: PUSH1 0x1e
00001bae: SWAP1
00001baf: DUP3
00001bb0: ADD
00001bb1: MSTORE
00001bb2: PUSH32 0x4d61726b65743a2063616e6e6f742062696420616d6f756e74206f6620300000
00001bd3: PUSH1 0x40
00001bd5: DUP3
00001bd6: ADD
00001bd7: MSTORE
00001bd8: PUSH1 0x60
00001bda: ADD
00001bdb: SWAP1
00001bdc: JUMP
00001bdd: JUMPDEST
00001bde: PUSH1 0x20
00001be0: DUP1
00001be1: DUP3
00001be2: MSTORE
00001be3: PUSH1 0x1e
00001be5: SWAP1
00001be6: DUP3
00001be7: ADD
00001be8: MSTORE
00001be9: PUSH32 0x4d61726b65743a2063616e6e6f742061636365707420626964206f6620300000
00001c0a: PUSH1 0x40
00001c0c: DUP3
00001c0d: ADD
00001c0e: MSTORE
00001c0f: PUSH1 0x60
00001c11: ADD
00001c12: SWAP1
00001c13: JUMP
00001c14: JUMPDEST
00001c15: PUSH1 0x20
00001c17: DUP1
00001c18: DUP3
00001c19: MSTORE
00001c1a: PUSH1 0x12
00001c1c: SWAP1
00001c1d: DUP3
00001c1e: ADD
00001c1f: MSTORE
00001c20: PUSH18 0x26b0b935b2ba1d1027b7363c9037bbb732b9
00001c33: PUSH1 0x71
00001c35: SHL
00001c36: PUSH1 0x40
00001c38: DUP3
00001c39: ADD
00001c3a: MSTORE
00001c3b: PUSH1 0x60
00001c3d: ADD
00001c3e: SWAP1
00001c3f: JUMP
00001c40: JUMPDEST
00001c41: PUSH1 0x20
00001c43: DUP1
00001c44: DUP3
00001c45: MSTORE
00001c46: PUSH1 0x21
00001c48: SWAP1
00001c49: DUP3
00001c4a: ADD
00001c4b: MSTORE
00001c4c: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f
00001c6d: PUSH1 0x40
00001c6f: DUP3
00001c70: ADD
00001c71: MSTORE
00001c72: PUSH1 0x77
00001c74: PUSH1 0xf8
00001c76: SHL
00001c77: PUSH1 0x60
00001c79: DUP3
00001c7a: ADD
00001c7b: MSTORE
00001c7c: PUSH1 0x80
00001c7e: ADD
00001c7f: SWAP1
00001c80: JUMP
00001c81: JUMPDEST
00001c82: PUSH1 0x20
00001c84: DUP1
00001c85: DUP3
00001c86: MSTORE
00001c87: PUSH1 0x1d
00001c89: SWAP1
00001c8a: DUP3
00001c8b: ADD
00001c8c: MSTORE
00001c8d: PUSH32 0x4d61726b65743a20556e65787065637465642062696420666f756e642e000000
00001cae: PUSH1 0x40
00001cb0: DUP3
00001cb1: ADD
00001cb2: MSTORE
00001cb3: PUSH1 0x60
00001cb5: ADD
00001cb6: SWAP1
00001cb7: JUMP
00001cb8: JUMPDEST
00001cb9: PUSH1 0x20
00001cbb: DUP1
00001cbc: DUP3
00001cbd: MSTORE
00001cbe: PUSH1 0x1b
00001cc0: SWAP1
00001cc1: DUP3
00001cc2: ADD
00001cc3: MSTORE
00001cc4: PUSH32 0x4d61726b65743a204f6e6c79206d6564696120636f6e74726163740000000000
00001ce5: PUSH1 0x40
00001ce7: DUP3
00001ce8: ADD
00001ce9: MSTORE
00001cea: PUSH1 0x60
00001cec: ADD
00001ced: SWAP1
00001cee: JUMP
00001cef: JUMPDEST
00001cf0: PUSH1 0x20
00001cf2: DUP1
00001cf3: DUP3
00001cf4: MSTORE
00001cf5: PUSH1 0x2f
00001cf7: SWAP1
00001cf8: DUP3
00001cf9: ADD
00001cfa: MSTORE
00001cfb: PUSH32 0x4d61726b65743a2053656c6c206f6e2066656520696e76616c696420666f7220
00001d1c: PUSH1 0x40
00001d1e: DUP3
00001d1f: ADD
00001d20: MSTORE
00001d21: PUSH15 0x73686172652073706c697474696e67
00001d31: PUSH1 0x88
00001d33: SHL
00001d34: PUSH1 0x60
00001d36: DUP3
00001d37: ADD
00001d38: MSTORE
00001d39: PUSH1 0x80
00001d3b: ADD
00001d3c: SWAP1
00001d3d: JUMP
00001d3e: JUMPDEST
00001d3f: PUSH1 0x20
00001d41: DUP1
00001d42: DUP3
00001d43: MSTORE
00001d44: PUSH1 0x24
00001d46: SWAP1
00001d47: DUP3
00001d48: ADD
00001d49: MSTORE
00001d4a: PUSH32 0x4d61726b65743a20496e76616c6964206269642073686172657320666f722074
00001d6b: PUSH1 0x40
00001d6d: DUP3
00001d6e: ADD
00001d6f: MSTORE
00001d70: PUSH4 0x37b5b2b7
00001d75: PUSH1 0xe1
00001d77: SHL
00001d78: PUSH1 0x60
00001d7a: DUP3
00001d7b: ADD
00001d7c: MSTORE
00001d7d: PUSH1 0x80
00001d7f: ADD
00001d80: SWAP1
00001d81: JUMP
00001d82: JUMPDEST
00001d83: PUSH1 0x20
00001d85: DUP1
00001d86: DUP3
00001d87: MSTORE
00001d88: PUSH1 0x1d
00001d8a: SWAP1
00001d8b: DUP3
00001d8c: ADD
00001d8d: MSTORE
00001d8e: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00001daf: PUSH1 0x40
00001db1: DUP3
00001db2: ADD
00001db3: MSTORE
00001db4: PUSH1 0x60
00001db6: ADD
00001db7: SWAP1
00001db8: JUMP
00001db9: JUMPDEST
00001dba: PUSH1 0x20
00001dbc: DUP1
00001dbd: DUP3
00001dbe: MSTORE
00001dbf: PUSH1 0x1a
00001dc1: SWAP1
00001dc2: DUP3
00001dc3: ADD
00001dc4: MSTORE
00001dc5: PUSH32 0x4d61726b65743a20416c726561647920636f6e66696775726564000000000000
00001de6: PUSH1 0x40
00001de8: DUP3
00001de9: ADD
00001dea: MSTORE
00001deb: PUSH1 0x60
00001ded: ADD
00001dee: SWAP1
00001def: JUMP
00001df0: JUMPDEST
00001df1: PUSH1 0x20
00001df3: DUP1
00001df4: DUP3
00001df5: MSTORE
00001df6: PUSH1 0x29
00001df8: SWAP1
00001df9: DUP3
00001dfa: ADD
00001dfb: MSTORE
00001dfc: PUSH32 0x4d61726b65743a2062696420726563697069656e742063616e6e6f7420626520
00001e1d: PUSH1 0x40
00001e1f: DUP3
00001e20: ADD
00001e21: MSTORE
00001e22: PUSH9 0x302061646472657373
00001e2c: PUSH1 0xb8
00001e2e: SHL
00001e2f: PUSH1 0x60
00001e31: DUP3
00001e32: ADD
00001e33: MSTORE
00001e34: PUSH1 0x80
00001e36: ADD
00001e37: SWAP1
00001e38: JUMP
00001e39: JUMPDEST
00001e3a: PUSH1 0x20
00001e3c: DUP1
00001e3d: DUP3
00001e3e: MSTORE
00001e3f: PUSH1 0x2a
00001e41: SWAP1
00001e42: DUP3
00001e43: ADD
00001e44: MSTORE
00001e45: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00001e66: PUSH1 0x40
00001e68: DUP3
00001e69: ADD
00001e6a: MSTORE
00001e6b: PUSH10 0x1bdd081cdd58d8d95959
00001e76: PUSH1 0xb2
00001e78: SHL
00001e79: PUSH1 0x60
00001e7b: DUP3
00001e7c: ADD
00001e7d: MSTORE
00001e7e: PUSH1 0x80
00001e80: ADD
00001e81: SWAP1
00001e82: JUMP
00001e83: JUMPDEST
00001e84: PUSH1 0x20
00001e86: DUP1
00001e87: DUP3
00001e88: MSTORE
00001e89: PUSH1 0x31
00001e8b: SWAP1
00001e8c: DUP3
00001e8d: ADD
00001e8e: MSTORE
00001e8f: PUSH32 0x4d61726b65743a2063616e6e6f7420736574206d6564696120636f6e74726163
00001eb0: PUSH1 0x40
00001eb2: DUP3
00001eb3: ADD
00001eb4: MSTORE
00001eb5: PUSH17 0x74206173207a65726f2061646472657373
00001ec7: PUSH1 0x78
00001ec9: SHL
00001eca: PUSH1 0x60
00001ecc: DUP3
00001ecd: ADD
00001ece: MSTORE
00001ecf: PUSH1 0x80
00001ed1: ADD
00001ed2: SWAP1
00001ed3: JUMP
00001ed4: JUMPDEST
00001ed5: DUP2
00001ed6: MLOAD
00001ed7: DUP2
00001ed8: MSTORE
00001ed9: PUSH1 0x20
00001edb: SWAP2
00001edc: DUP3
00001edd: ADD
00001ede: MLOAD
00001edf: PUSH1 0x01
00001ee1: PUSH1 0x01
00001ee3: PUSH1 0xa0
00001ee5: SHL
00001ee6: SUB
00001ee7: AND
00001ee8: SWAP2
00001ee9: DUP2
00001eea: ADD
00001eeb: SWAP2
00001eec: SWAP1
00001eed: SWAP2
00001eee: MSTORE
00001eef: PUSH1 0x40
00001ef1: ADD
00001ef2: SWAP1
00001ef3: JUMP
00001ef4: JUMPDEST
00001ef5: DUP2
00001ef6: SLOAD
00001ef7: DUP2
00001ef8: MSTORE
00001ef9: PUSH1 0x01
00001efb: SWAP1
00001efc: SWAP2
00001efd: ADD
00001efe: SLOAD
00001eff: PUSH1 0x01
00001f01: PUSH1 0x01
00001f03: PUSH1 0xa0
00001f05: SHL
00001f06: SUB
00001f07: AND
00001f08: PUSH1 0x20
00001f0a: DUP3
00001f0b: ADD
00001f0c: MSTORE
00001f0d: PUSH1 0x40
00001f0f: ADD
00001f10: SWAP1
00001f11: JUMP
00001f12: JUMPDEST
00001f13: DUP2
00001f14: MLOAD
00001f15: MLOAD
00001f16: DUP2
00001f17: MSTORE
00001f18: PUSH1 0x20
00001f1a: DUP1
00001f1b: DUP4
00001f1c: ADD
00001f1d: MLOAD
00001f1e: MLOAD
00001f1f: SWAP1
00001f20: DUP3
00001f21: ADD
00001f22: MSTORE
00001f23: PUSH1 0x40
00001f25: SWAP2
00001f26: DUP3
00001f27: ADD
00001f28: MLOAD
00001f29: MLOAD
00001f2a: SWAP2
00001f2b: DUP2
00001f2c: ADD
00001f2d: SWAP2
00001f2e: SWAP1
00001f2f: SWAP2
00001f30: MSTORE
00001f31: PUSH1 0x60
00001f33: ADD
00001f34: SWAP1
00001f35: JUMP
00001f36: JUMPDEST
00001f37: DUP2
00001f38: SLOAD
00001f39: DUP2
00001f3a: MSTORE
00001f3b: PUSH1 0x01
00001f3d: DUP3
00001f3e: ADD
00001f3f: SLOAD
00001f40: PUSH1 0x20
00001f42: DUP3
00001f43: ADD
00001f44: MSTORE
00001f45: PUSH1 0x02
00001f47: SWAP1
00001f48: SWAP2
00001f49: ADD
00001f4a: SLOAD
00001f4b: PUSH1 0x40
00001f4d: DUP3
00001f4e: ADD
00001f4f: MSTORE
00001f50: PUSH1 0x60
00001f52: ADD
00001f53: SWAP1
00001f54: JUMP
00001f55: JUMPDEST
00001f56: DUP2
00001f57: MLOAD
00001f58: DUP2
00001f59: MSTORE
00001f5a: PUSH1 0x20
00001f5c: DUP1
00001f5d: DUP4
00001f5e: ADD
00001f5f: MLOAD
00001f60: PUSH1 0x01
00001f62: PUSH1 0x01
00001f64: PUSH1 0xa0
00001f66: SHL
00001f67: SUB
00001f68: SWAP1
00001f69: DUP2
00001f6a: AND
00001f6b: SWAP2
00001f6c: DUP4
00001f6d: ADD
00001f6e: SWAP2
00001f6f: SWAP1
00001f70: SWAP2
00001f71: MSTORE
00001f72: PUSH1 0x40
00001f74: DUP1
00001f75: DUP5
00001f76: ADD
00001f77: MLOAD
00001f78: DUP3
00001f79: AND
00001f7a: SWAP1
00001f7b: DUP4
00001f7c: ADD
00001f7d: MSTORE
00001f7e: PUSH1 0x60
00001f80: DUP1
00001f81: DUP5
00001f82: ADD
00001f83: MLOAD
00001f84: SWAP1
00001f85: SWAP2
00001f86: AND
00001f87: SWAP1
00001f88: DUP3
00001f89: ADD
00001f8a: MSTORE
00001f8b: PUSH1 0x80
00001f8d: SWAP2
00001f8e: DUP3
00001f8f: ADD
00001f90: MLOAD
00001f91: MLOAD
00001f92: SWAP2
00001f93: DUP2
00001f94: ADD
00001f95: SWAP2
00001f96: SWAP1
00001f97: SWAP2
00001f98: MSTORE
00001f99: PUSH1 0xa0
00001f9b: ADD
00001f9c: SWAP1
00001f9d: JUMP
00001f9e: JUMPDEST
00001f9f: DUP2
00001fa0: SLOAD
00001fa1: DUP2
00001fa2: MSTORE
00001fa3: PUSH1 0x01
00001fa5: DUP3
00001fa6: ADD
00001fa7: SLOAD
00001fa8: PUSH1 0x01
00001faa: PUSH1 0x01
00001fac: PUSH1 0xa0
00001fae: SHL
00001faf: SUB
00001fb0: SWAP1
00001fb1: DUP2
00001fb2: AND
00001fb3: PUSH1 0x20
00001fb5: DUP4
00001fb6: ADD
00001fb7: MSTORE
00001fb8: PUSH1 0x02
00001fba: DUP4
00001fbb: ADD
00001fbc: SLOAD
00001fbd: DUP2
00001fbe: AND
00001fbf: PUSH1 0x40
00001fc1: DUP4
00001fc2: ADD
00001fc3: MSTORE
00001fc4: PUSH1 0x03
00001fc6: DUP4
00001fc7: ADD
00001fc8: SLOAD
00001fc9: AND
00001fca: PUSH1 0x60
00001fcc: DUP3
00001fcd: ADD
00001fce: MSTORE
00001fcf: PUSH1 0x04
00001fd1: SWAP1
00001fd2: SWAP2
00001fd3: ADD
00001fd4: SLOAD
00001fd5: PUSH1 0x80
00001fd7: DUP3
00001fd8: ADD
00001fd9: MSTORE
00001fda: PUSH1 0xa0
00001fdc: ADD
00001fdd: SWAP1
00001fde: JUMP
00001fdf: JUMPDEST
00001fe0: SWAP1
00001fe1: DUP2
00001fe2: MSTORE
00001fe3: PUSH1 0x20
00001fe5: ADD
00001fe6: SWAP1
00001fe7: JUMP
00001fe8: JUMPDEST
00001fe9: SWAP2
00001fea: DUP3
00001feb: MSTORE
00001fec: PUSH1 0x01
00001fee: PUSH1 0x01
00001ff0: PUSH1 0xa0
00001ff2: SHL
00001ff3: SUB
00001ff4: AND
00001ff5: PUSH1 0x20
00001ff7: DUP3
00001ff8: ADD
00001ff9: MSTORE
00001ffa: PUSH1 0x40
00001ffc: ADD
00001ffd: SWAP1
00001ffe: JUMP
00001fff: JUMPDEST
00002000: PUSH1 0x40
00002002: MLOAD
00002003: DUP2
00002004: DUP2
00002005: ADD
00002006: PUSH8 0xffffffffffffffff
0000200f: DUP2
00002010: GT
00002011: DUP3
00002012: DUP3
00002013: LT
00002014: OR
00002015: ISZERO
00002016: PUSH2 0x201e
00002019: JUMPI
0000201a: PUSH1 0x00
0000201c: DUP1
0000201d: REVERT
0000201e: JUMPDEST
0000201f: PUSH1 0x40
00002021: MSTORE
00002022: SWAP2
00002023: SWAP1
00002024: POP
00002025: JUMP
00002026: JUMPDEST
00002027: PUSH1 0x00
00002029: JUMPDEST
0000202a: DUP4
0000202b: DUP2
0000202c: LT
0000202d: ISZERO
0000202e: PUSH2 0x2041
00002031: JUMPI
00002032: DUP2
00002033: DUP2
00002034: ADD
00002035: MLOAD
00002036: DUP4
00002037: DUP3
00002038: ADD
00002039: MSTORE
0000203a: PUSH1 0x20
0000203c: ADD
0000203d: PUSH2 0x2029
00002040: JUMP
00002041: JUMPDEST
00002042: DUP4
00002043: DUP2
00002044: GT
00002045: ISZERO
00002046: PUSH2 0x135d
00002049: JUMPI
0000204a: POP
0000204b: POP
0000204c: PUSH1 0x00
0000204e: SWAP2
0000204f: ADD
00002050: MSTORE
00002051: JUMP
00002052: JUMPDEST
00002053: PUSH1 0x01
00002055: PUSH1 0x01
00002057: PUSH1 0xa0
00002059: SHL
0000205a: SUB
0000205b: DUP2
0000205c: AND
0000205d: DUP2
0000205e: EQ
0000205f: PUSH2 0x2067
00002062: JUMPI
00002063: PUSH1 0x00
00002065: DUP1
00002066: REVERT
00002067: JUMPDEST
00002068: POP
00002069: JUMP
0000206a: INVALID
0000206b: LOG2
0000206c: PUSH5 0x6970667358
00002072: UNKNOWN(0x22)
00002073: SLT
00002074: KECCAK256
00002075: OR
00002076: SWAP11
00002077: SHR
00002078: PUSH27 0xf29885a07f40ff7e53c219a6724f5ac44590aadca96c4cfae19545
00002094: SGT
00002095: PUSH5 0x736f6c6343
0000209b: STOP
0000209c: MOD
0000209d: ADDMOD
0000209e: STOP
0000209f: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x14a5295d9c6574ff44e283eea54f5bbfa279b06ce7c81c399c8f6312ced5e986
call_targets: 0xe5bfab544eca83849c53464f85b7164375bdaac1
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x14a5295d9c6574ff44e283eea54f5bbfa279b06ce7c81c399c8f6312ced5e986",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe5bfab544eca83849c53464f85b7164375bdaac1"
    ],
    "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": "0xba339399",
            "selector": "0xba339399",
            "calldata_variants": [
                "0xba339399",
                "0xba3393990000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbdb58698",
            "selector": "0xbdb58698",
            "calldata_variants": [
                "0xbdb58698",
                "0xbdb586980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeb55683a",
            "selector": "0xeb55683a",
            "calldata_variants": [
                "0xeb55683a",
                "0xeb55683a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf9ce0582",
            "selector": "0xf9ce0582",
            "calldata_variants": [
                "0xf9ce0582",
                "0xf9ce05820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x776a0835",
            "selector": "0x776a0835",
            "calldata_variants": [
                "0x776a0835",
                "0x776a08350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad827dc4",
            "selector": "0xad827dc4",
            "calldata_variants": [
                "0xad827dc4",
                "0xad827dc40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb920c123",
            "selector": "0xb920c123",
            "calldata_variants": [
                "0xb920c123",
                "0xb920c1230000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e21f9c0",
            "selector": "0x4e21f9c0",
            "calldata_variants": [
                "0x4e21f9c0",
                "0x4e21f9c00000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4598,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5392,
            "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: 0x14a5295d9c6574ff44e283eea54f5bbfa279b06ce7c81c399c8f6312ced5e986
call_targets: 0xe5bfab544eca83849c53464f85b7164375bdaac1
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x14a5295d9c6574ff44e283eea54f5bbfa279b06ce7c81c399c8f6312ced5e986",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe5bfab544eca83849c53464f85b7164375bdaac1"
    ],
    "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": "0xba339399",
            "selector": "0xba339399",
            "calldata_variants": [
                "0xba339399",
                "0xba3393990000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbdb58698",
            "selector": "0xbdb58698",
            "calldata_variants": [
                "0xbdb58698",
                "0xbdb586980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeb55683a",
            "selector": "0xeb55683a",
            "calldata_variants": [
                "0xeb55683a",
                "0xeb55683a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf9ce0582",
            "selector": "0xf9ce0582",
            "calldata_variants": [
                "0xf9ce0582",
                "0xf9ce05820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x776a0835",
            "selector": "0x776a0835",
            "calldata_variants": [
                "0x776a0835",
                "0x776a08350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad827dc4",
            "selector": "0xad827dc4",
            "calldata_variants": [
                "0xad827dc4",
                "0xad827dc40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb920c123",
            "selector": "0xb920c123",
            "calldata_variants": [
                "0xb920c123",
                "0xb920c1230000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e21f9c0",
            "selector": "0x4e21f9c0",
            "calldata_variants": [
                "0x4e21f9c0",
                "0x4e21f9c00000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4598,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5392,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
medium other codex Auto-accept uses unadjusted bid amount and skips bid validation 75 no
view
evidence_json
{
    "evidence": "In Market.setBid, the actual received amount is stored using the before/after balance diff, but the auto-accept check uses the original bid.amount and does not enforce isValidBid before _finalizeNFTTransfer.",
    "locations": [
        "contracts/contracts/Market.sol:241",
        "contracts/contracts/Market.sol:247",
        "contracts/contracts/Market.sol:256",
        "contracts/contracts/Market.sol:261",
        "contracts/contracts/Market.sol:264"
    ],
    "recommendation": "When auto-accepting, compare the stored bid amount (after balance diff) against the ask, and require isValidBid(tokenId, storedAmount) before calling _finalizeNFTTransfer. Consider emitting the normalized amount in the BidCreated event for off-chain consistency.",
    "exploit_scenario": "A seller sets an ask of 100 tokens. A bidder uses a fee-on-transfer ERC20 and submits a bid for 100. The market receives only 90 (stored as the bid amount), but the auto-accept path checks the original 100 and immediately finalizes the sale. The seller receives only 90 (split by shares), yet the NFT transfers. Similarly, bids that do not split evenly into shares can still auto-accept, leaving remainder dust in the market contract."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 7
}