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

Analysis Run

0a6278ba-607e-4d02-85a2-07c9e6c4c2a7

failed
Chain ID
1
Address
Block Number
Created
Fri, Jan 2, 2026 11:14 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
Not yet
Best current signal
Untrusted DELEGATECALL target 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
31381 report.consolidate complete 1 / 1 3 months ago
111284 artifact.fetch failed 1 / 3 1 week ago
111285 tool.cast_disasm complete 1 / 3 1 week ago
111286 analysis.bundle complete 1 / 3 1 week ago
111287 capability.graph complete 1 / 3 1 week ago
111288 detector.run complete 1 / 3 1 week ago
111289 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
0
No findings?
yes
Summary
No concrete, exploitable paths to extract value were identified after reviewing the provided sources.
View stderr
[codex:881785] OpenAI Codex v0.77.0 (research preview)
[codex:881785] --------
[codex:881785] workdir: /tmp/codex-multi-klbv7d97
[codex:881785] model: gpt-5.2-codex
[codex:881785] provider: openai
[codex:881785] approval: never
[codex:881785] sandbox: read-only
[codex:881785] reasoning effort: xhigh
[codex:881785] reasoning summaries: auto
[codex:881785] session id: 019b80f9-7bff-7500-9985-12f2983d6db4
[codex:881785] --------
[codex:881785] user
[codex:881785] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:881785] 
[codex:881785] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:881785] 
[codex:881785] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:881785] - Gas inefficiency, code quality, naming, or best practices
[codex:881785] - Theoretical vulnerabilities without a clear extraction path
[codex:881785] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:881785] - Front-running unless it enables theft beyond MEV
[codex:881785] - DoS, griefing, or issues that don't result in attacker profit
[codex:881785] - Missing events, view function issues, or informational findings
[codex:881785] 
[codex:881785] HIGH-VALUE PATTERNS TO HUNT:
[codex:881785] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:881785] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:881785] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:881785] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:881785] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:881785] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:881785] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:881785] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:881785] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:881785] 
[codex:881785] For each finding, you MUST provide:
[codex:881785] 1. Exact file and line numbers of vulnerable code
[codex:881785] 2. Step-by-step exploit transaction sequence
[codex:881785] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:881785] 
[codex:881785] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:881785] 
[codex:881785] Output MUST be valid JSON matching the provided schema.
[codex:881785] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:881785] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:881785] mcp startup: no servers
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Preparing to audit by reading files**
[codex:881785] exec
[codex:881785] /bin/bash -lc ls in /tmp/codex-multi-klbv7d97 succeeded in 8ms:
[codex:881785] AUDIT_BUNDLE.txt
[codex:881785] codex-output-schema.json
[codex:881785] contracts
[codex:881785] exec
[codex:881785] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-klbv7d97 succeeded in 7ms:
[codex:881785] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:881785] 
[codex:881785] ================================================================================
[codex:881785] FILE: contracts/contracts/CrocEvents.sol
[codex:881785] ================================================================================
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] 
[codex:881785] pragma solidity 0.8.19;
[codex:881785] 
[codex:881785] library CrocEvents {
[codex:881785] 
[codex:881785] 
[codex:881785]     /* @notice Emitted when governance authority for CrocSwapDex is transfered.
[codex:881785]      * @param The authority being transfered to. */
[codex:881785]     event AuthorityTransfer (address indexed authority);
[codex:881785] 
[codex:881785]     /* @notice Indicates a new pool liquidity initialization value is set.
[codex:881785]      * @param liq The pool initialization value. */
[codex:881785]     event SetNewPoolLiq (uint128 liq);
[codex:881785] 
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Scanning for vulnerabilities**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "withdraw|claim|collect|surplus|deposit|mint|burn|transfer" contracts/contracts | head -n 200' in /tmp/codex-multi-klbv7d97 succeeded in 9ms:
[codex:881785] contracts/contracts/interfaces/ICrocMinion.sol:19:     *                  authority transfers or upgrades.) The ability to call with sudo 
[codex:881785] contracts/contracts/interfaces/ICrocMinion.sol:28:    /* @notice Used to validate governance contract to prevent authority transfer to an
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:10: *      pool initialization, swaps, mints and burns for all liquidity types (ambient,
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:13: *      Note that permit oracles do *not* have the ability to restrict claims or recovers 
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:14: *      on post-knockout liquidity. An order is eligible to be claimed/recovered only after
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:17: *      oracles have no economic reason to restrict knockout claims/recovers. */
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:74:    /* @notice Verifies whether a given user is permissioned to mint liquidity
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:84:     * @param liq      The total amount of liquidity being minted. Denominated as 
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:94:    /* @notice Verifies whether a given user is permissioned to burn liquidity
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:104:     * @param liq      The total amount of liquidity being minted. Denominated as 
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:12:    /* @notice Called anytime a user mints liquidity against the conduit instance. To 
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:13:     *         utilize the user would call a mint operation on the dex with the address
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:18:     * @param sender The address of the user that owns the newly minted position.
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:20:     *                 minted on.
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:23:     * @param liq       The amount of liquidity being minted. If ambient liquidity this
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:25:     *                  sqrt(X*Y) liquidity of the liquidity minted.
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:27:     *                  concentrated liquidity at mint time. If ambient, this is zero.
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:30:     *           deposit. Reverts the transaction. */
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:31:    function depositCrocLiq (address sender, bytes32 poolHash,
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:35:    function withdrawCrocLiq (address sender, bytes32 poolHash,
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Searching for transfer surplus exploit**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "transferSurplus|depositSurplus|depositSurplusPermit|surplus" contracts/contracts/mixins -S' in /tmp/codex-multi-klbv7d97 succeeded in 8ms:
[codex:881785] contracts/contracts/mixins/StorageLayout.sol:141:        uint128 surplusCollateral_;
[codex:881785] contracts/contracts/mixins/ProtocolAccount.sol:45:            userBals_[payoutKey].surplusCollateral_ += collected;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:124:     *                     should be settled from caller's surplus collateral */
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:218:        return userBals_[key].surplusCollateral_;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:241:     * @para useReserves If true, any settlement is first done against the user's surplus
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:264:     * @para useReserves If true, any settlement is first done against the user's surplus
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:297:    /* @notice Collects the remaining debit (if any) after the user's surplus collateral
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:321:     *         surplus collateral balance. */
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:389:    /* @notice Credits a user's surplus collateral account at the exchange (instead of
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:393:        userBals_[key].surplusCollateral_ += value;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:396:    /* @notice Debits the tokens owed from the user's pre-existing surplus collateral
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:398:     * @return remainder The amount of the debit that cannot be satisfied by surplus
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:404:        uint128 balance = bal.surplusCollateral_;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:407:            bal.surplusCollateral_ -= value;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:409:            bal.surplusCollateral_ = 0;
[codex:881785] contracts/contracts/mixins/AgentMask.sol:10: * @notice Maps and manages surplus balances, nonces, and external router approvals
[codex:881785] contracts/contracts/mixins/AgentMask.sol:286:     *      have sufficient balance in their surplus collateral to cover the tip by the
[codex:881785] contracts/contracts/mixins/AgentMask.sol:290:     *              user's surplus collateral balance.
[codex:881785] contracts/contracts/mixins/AgentMask.sol:294:     *            of the client's surplus collateral balance.
[codex:881785] contracts/contracts/mixins/AgentMask.sol:296:     *             surplus collateral balance. Also supports generic magic values for 
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Reviewing DepositDesk for authentication**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,200p' contracts/contracts/mixins/DepositDesk.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3                                                          
[codex:881785] pragma solidity 0.8.19;
[codex:881785] pragma experimental ABIEncoderV2;
[codex:881785] 
[codex:881785] import './StorageLayout.sol';
[codex:881785] import './SettleLayer.sol';
[codex:881785] import '../interfaces/IERC20Minimal.sol';
[codex:881785] 
[codex:881785] contract DepositDesk is SettleLayer {
[codex:881785]     using SafeCast for uint256;
[codex:881785] 
[codex:881785]     /* @notice Directly deposits a certain amount of surplus collateral to a user's
[codex:881785]      *         account.
[codex:881785]      *
[codex:881785]      * @dev    This call can be used both for token and native Ether collateral. For
[codex:881785]      *         tokens, each call initiates a token transfer call to the ERC20 contract,
[codex:881785]      *         and it's safe to call repeatedly in the same transaction even for the same
[codex:881785]      *         token. 
[codex:881785]      * 
[codex:881785]      *         For native Ether deposits, the call consumes the value in msg.value using the
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Investigating lockHolder_ usage in disburseSurplus**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '200,360p' contracts/contracts/callpaths/ColdPath.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785]             abi.decode(cmd, (uint8,address,address,uint256,uint16,uint16,uint8,uint8));
[codex:881785]         setPoolSpecs(base, quote, poolIdx, feeRate, tickSize, jitThresh, knockout);
[codex:881785]     }
[codex:881785] 
[codex:881785]     /* @notice Set off-grid price improvement.
[codex:881785]      * @param token The token the settings apply to.
[codex:881785]      * @param unitTickCollateral The collateral threshold for off-grid price improvement.
[codex:881785]      * @param awayTickTol The maximum tick distance from current price that off-grid
[codex:881785]      *                    quotes are allowed for. */
[codex:881785]     function pegPriceImprove (bytes calldata cmd) private {
[codex:881785]         (, address token, uint128 unitTickCollateral, uint16 awayTickTol) =
[codex:881785]             abi.decode(cmd, (uint8, address, uint128, uint16));
[codex:881785]         emit CrocEvents.PriceImproveThresh(token, unitTickCollateral, awayTickTol);
[codex:881785]         setPriceImprove(token, unitTickCollateral, awayTickTol);
[codex:881785]     }
[codex:881785] 
[codex:881785]     function setHotPathOpen (bytes calldata cmd) private {
[codex:881785]         (, bool open) = abi.decode(cmd, (uint8, bool));
[codex:881785]         emit CrocEvents.HotPathOpen(open);
[codex:881785]         hotPathOpen_ = open;        
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Investigating ColdPath command structure**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,140p' contracts/contracts/callpaths/ColdPath.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] 
[codex:881785] pragma solidity 0.8.19;
[codex:881785] 
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/Encoding.sol';
[codex:881785] import '../libraries/TokenFlow.sol';
[codex:881785] import '../libraries/PriceGrid.sol';
[codex:881785] import '../libraries/ProtocolCmd.sol';
[codex:881785] import '../mixins/SettleLayer.sol';
[codex:881785] import '../mixins/PoolRegistry.sol';
[codex:881785] import '../mixins/MarketSequencer.sol';
[codex:881785] import '../mixins/StorageLayout.sol';
[codex:881785] import '../mixins/ProtocolAccount.sol';
[codex:881785] import '../mixins/DepositDesk.sol';
[codex:881785] import '../interfaces/ICrocMinion.sol';
[codex:881785] import '../CrocEvents.sol';
[codex:881785] 
[codex:881785] /* @title Cold path callpath sidecar.
[codex:881785]  * @notice Defines a proxy sidecar contract that's used to move code outside the 
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Investigating lockHolder_ usage across modules**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,220p' contracts/contracts/mixins/MarketSequencer.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] 
[codex:881785] pragma solidity 0.8.19;
[codex:881785] 
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/PoolSpecs.sol';
[codex:881785] import '../libraries/PriceGrid.sol';
[codex:881785] import '../libraries/SwapCurve.sol';
[codex:881785] import '../libraries/CurveMath.sol';
[codex:881785] import '../libraries/CurveRoll.sol';
[codex:881785] import '../libraries/CurveCache.sol';
[codex:881785] import '../libraries/Chaining.sol';
[codex:881785] import './PositionRegistrar.sol';
[codex:881785] import './LiquidityCurve.sol';
[codex:881785] import './LevelBook.sol';
[codex:881785] import './TradeMatcher.sol';
[codex:881785] 
[codex:881785] /* @title Market sequencer.
[codex:881785]  * @notice Mixin class that's responsibile for coordinating one or multiple sequetial
[codex:881785]  *         trade actions within a single liqudity pool. */
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Searching for lockHolder_ definition**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "lockHolder_" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 8ms:
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:55:        if (lpConduit == address(0)) { lpConduit = lockHolder_; }
[codex:881785] contracts/contracts/callpaths/LongPath.sol:104:            roll.prePairBal_ -= querySurplus(lockHolder_, token).toInt128Sign();
[codex:881785] contracts/contracts/callpaths/MicroPaths.sol:61:                                          liq, poolHash, lockHolder_);
[codex:881785] contracts/contracts/callpaths/MicroPaths.sol:102:                                          poolHash, lockHolder_);
[codex:881785] contracts/contracts/callpaths/MicroPaths.sol:136:        (baseFlow, quoteFlow) = burnAmbient(curve, liq, poolHash, lockHolder_);
[codex:881785] contracts/contracts/callpaths/MicroPaths.sol:169:        (baseFlow, quoteFlow) = mintAmbient(curve, liq, poolHash, lockHolder_);
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:127:        settleInitFlow(lockHolder_, base, baseFlow, quote, quoteFlow);
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:31:        debitTransfer(lockHolder_, value, token, popMsgVal());
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:68:        bytes32 key = tokenKey(lockHolder_, token);
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:87:        bytes32 fromKey = tokenKey(lockHolder_, token);
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:111:        address from = virtualizeUser(lockHolder_, fromSalt);
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:112:        address to = virtualizeUser(lockHolder_, toSalt);
[codex:881785] contracts/contracts/mixins/TradeMatcher.sol:194:        if (lpConduit != lockHolder_) {
[codex:881785] contracts/contracts/mixins/TradeMatcher.sol:196:                depositCrocLiq(lockHolder_, poolHash, lowTick, highTick, liq, mileage);
[codex:881785] contracts/contracts/mixins/TradeMatcher.sol:212:        if (lpConduit != lockHolder_) {
[codex:881785] contracts/contracts/mixins/TradeMatcher.sol:214:                withdrawCrocLiq(lockHolder_, poolHash, lowTick, highTick, liq, mileage);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:231:        bytes32 posKey = loc.encodePosKey(pool, lockHolder_, pivotTime);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:253:        bytes32 posKey = loc.encodePosKey(pool, lockHolder_, pivotTime);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:283:        bytes32 posKey = loc.encodePosKey(pool, lockHolder_, pivotTime);
[codex:881785] contracts/contracts/mixins/PoolRegistry.sol:32:                .checkApprovedForCrocSwap(lockHolder_, msg.sender, base, quote,
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Analyzing lockHolder_ assignment and approval checks**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,220p' contracts/contracts/mixins/AgentMask.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] 
[codex:881785] pragma solidity 0.8.19;
[codex:881785] pragma experimental ABIEncoderV2;
[codex:881785] 
[codex:881785] import "./StorageLayout.sol";
[codex:881785] import "../interfaces/ICrocCondOracle.sol";
[codex:881785] 
[codex:881785] /* @title Agent mask mixin.
[codex:881785]  * @notice Maps and manages surplus balances, nonces, and external router approvals
[codex:881785]  *         based on the wallet addresses of end-users. */
[codex:881785] contract AgentMask is StorageLayout {
[codex:881785]     using SafeCast for uint256;
[codex:881785]     
[codex:881785]     /* @notice Standard re-entrant gate for an unprivileged order called directly
[codex:881785]      *         by the user.
[codex:881785]      *
[codex:881785]      * @dev    lockHolder_ account is set to msg.sender, and therefore this call will
[codex:881785]      *         touch the positions, tokens, and liquidity owned by msg.sender. */
[codex:881785]     modifier reEntrantLock() {
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Verifying stepAgentNonce usage**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "stepAgentNonce|agentKey|approveAgent|nonce" -n contracts/contracts/mixins/AgentMask.sol' in /tmp/codex-multi-klbv7d97 succeeded in 7ms:
[codex:881785] 10: * @notice Maps and manages surplus balances, nonces, and external router approvals
[codex:881785] 51:        stepAgentNonce(client, msg.sender, callPath);
[codex:881785] 109:     *         and if necessary increments the nonce. 
[codex:881785] 115:     * @param salt     A salt to apply when checking the nonce. Allows users to sign
[codex:881785] 116:     *                 an arbitrary number of multiple nonce tracks, so they don't have
[codex:881785] 118:     * @param nonce    The replay-attack prevention nonce. Two orders with the same salt
[codex:881785] 119:     *                 and nonce cannot be evaluated (unless the user explicitly resets
[codex:881785] 120:     *                 the nonce). A nonce cannot be evaluated until prior orders at
[codex:881785] 121:     *                 lower nonces haven been successfully evaluated.
[codex:881785] 126:        (uint48 deadline, uint48 alive, bytes32 salt, uint32 nonce,
[codex:881785] 133:        stepNonce(client, salt, nonce);
[codex:881785] 140:     *      index or nonce in any form. A malicious attacker *could* change the signature, but
[codex:881785] 146:     *      used an expired nonce. In no state of the world does a malleable signature make a 
[codex:881785] 204:    function approveAgent (address router, uint32 nCalls, uint16 callPath) internal {
[codex:881785] 205:        bytes32 key = agentKey(lockHolder_, router, callPath);
[codex:881785] 210:    /* @notice Sets the nonce index related to EIP-712 off-chain calls. 
[codex:881785] 211:     * @param nonceSalt The nonce system is multi-dimensional, which allows relayers to
[codex:881785] 213:     *                  unrelated streams. This value corresponds to the specific nonce
[codex:881785] 215:     * @param nonce The nonce index value the nonce will be reset to. */
[codex:881785] 216:    function resetNonce (bytes32 nonceSalt, uint32 nonce) internal {
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '220,320p' contracts/contracts/mixins/AgentMask.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785]     }
[codex:881785] 
[codex:881785]     /* @notice Same as resetNonce but conditions on the successful call return to an 
[codex:881785]      *         external oracle. Useful for certain times that a user wants to pre-sign
[codex:881785]      *         a transaction, but not let it be executable unless an arbitrary condition
[codex:881785]      *         is met. 
[codex:881785]      * @param nonceSalt The nonce system is multi-dimensional, which allows relayers to
[codex:881785]      *                  pass along arbitrary ordered messages when they come from 
[codex:881785]      *                  unrelated streams. This value corresponds to the specific nonce
[codex:881785]      *                  dimension.
[codex:881785]      * @param nonce The nonce index value the nonce will be reset to.
[codex:881785]      * @param oracle The address of the external oracle (must conform to ICrocNonceOracle
[codex:881785]      *               interface.
[codex:881785]      * @param args Arbitrary calldata passed to the oracle condition call. */
[codex:881785]     function resetNonceCond (bytes32 salt, uint32 nonce, address oracle,
[codex:881785]                              bytes memory args) internal {
[codex:881785]         bool canProceed = ICrocNonceOracle(oracle).checkCrocNonceSet
[codex:881785]             (lockHolder_, salt, nonce, args);
[codex:881785]         require(canProceed, "ON");
[codex:881785]         resetNonce(salt, nonce);
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '320,420p' contracts/contracts/mixins/AgentMask.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785]         if (protoFee > 0) {
[codex:881785]             feesAccum_[token] += protoFee;
[codex:881785]         }
[codex:881785]     }
[codex:881785] 
[codex:881785]     address constant MAGIC_SENDER_TIP = address(256);
[codex:881785]     address constant MAGIC_ORIGIN_TIP = address(512);
[codex:881785] 
[codex:881785]     /* @notice Converts the user's tip recv argument to the actual address to be paid.
[codex:881785]      *         In practice this means that the magic values for msg.sender and tx.origin
[codex:881785]      *         are converted to those value's actual address for the transaction. */
[codex:881785]     function maskTipRecv (address recv) view private returns (address) {
[codex:881785]         if (recv == MAGIC_SENDER_TIP) {
[codex:881785]             recv = msg.sender;
[codex:881785]         } else if (recv == MAGIC_ORIGIN_TIP) {
[codex:881785]             recv = tx.origin;
[codex:881785]         } 
[codex:881785]         return recv;
[codex:881785]     }
[codex:881785] 
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Analyzing potential reentrancy and approval vulnerabilities**
[codex:881785] 
[codex:881785] I'm reviewing the router approval logic and reentrancy protections, considering edge cases like uninitialized storage, permit interactions, and internal calls bypassing locks. The use of lockHolder_ seems to prevent most reentrant exploits, but I'm curious if delegatecalls to sidecar proxies or debitTransfer in SettleLayer might introduce issues. I'll need to dig into SettleLayer next to verify.
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,240p' contracts/contracts/mixins/SettleLayer.sol" in /tmp/codex-multi-klbv7d97 succeeded in 7ms:
[codex:881785] // SPDX-License-Identifier: GPL-3                                                          
[codex:881785] pragma solidity 0.8.19;
[codex:881785] pragma experimental ABIEncoderV2;
[codex:881785] 
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/TransferHelper.sol';
[codex:881785] import '../libraries/TokenFlow.sol';
[codex:881785] import './StorageLayout.sol';
[codex:881785] import './AgentMask.sol';
[codex:881785] 
[codex:881785] /* @title Settle layer mixin
[codex:881785]  * @notice Provides facilities for settling, previously determined, collateral flows
[codex:881785]  *         between the user and the exchange. Supports both ERC20 tokens as well as
[codex:881785]  *         native Ethereum as asset collateral. */
[codex:881785] contract SettleLayer is AgentMask {
[codex:881785]     using SafeCast for uint256;
[codex:881785]     using SafeCast for uint128;
[codex:881785]     using TokenFlow for address;
[codex:881785] 
[codex:881785]     /* @notice Completes the user<->exchange collateral settlement at the final hop
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '240,520p' contracts/contracts/mixins/SettleLayer.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785]      *             user. Positive debit to the exchange.
[codex:881785]      * @para useReserves If true, any settlement is first done against the user's surplus
[codex:881785]      *                   collateral account at the exchange rather than sending Ether. */
[codex:881785]     function transactEther (address debitor, address creditor,
[codex:881785]                             int128 flow, bool useReserves)
[codex:881785]         private {
[codex:881785]         // This is the only point in a standard transaction where msg.value is accessed.
[codex:881785]         uint128 recvEth = popMsgVal();
[codex:881785]         if (flow != 0) {
[codex:881785]             transactFlow(debitor, creditor, flow, address(0), recvEth, useReserves);
[codex:881785]         } else {
[codex:881785]             refundEther(creditor, recvEth);
[codex:881785]         }
[codex:881785]     }
[codex:881785] 
[codex:881785]     /* @notice Called to settle a net balance of ERC20 tokens
[codex:881785]      * @dev transactEther Unlike transactEther this can be called multiple times, even
[codex:881785]      *      on the same token.
[codex:881785]      *
[codex:881785]      * @param debitor The address to collect any net debit from.
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Analyzing fee-on-transfer token risks**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "TODO|FIXME|HACK|BUG|unsafe|unchecked" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 11ms:
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:14:        unchecked { // Arithmetic checks done explicitly
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:28:        unchecked { // Arithmetic checks done explicitly
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:38:        unchecked { // Arithmetic checks done explicitly
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:112:        unchecked {
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:131:        unchecked {
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:171:        unchecked { // Intermediate results will always fit in 256-bits
[codex:881785] contracts/contracts/libraries/BitMath.sol:14:        // Set to unchecked, but the original UniV3 library was written in a pre-checked version of Solidity
[codex:881785] contracts/contracts/libraries/BitMath.sol:15:        unchecked{
[codex:881785] contracts/contracts/libraries/BitMath.sol:57:        // Set to unchecked, but the original UniV3 library was written in a pre-checked version of Solidity
[codex:881785] contracts/contracts/libraries/BitMath.sol:58:        unchecked {
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:68:        unchecked {            
[codex:881785] contracts/contracts/libraries/CurveAssimilate.sol:136:        unchecked {
[codex:881785] contracts/contracts/mixins/TickCensus.sol:267:        unchecked {
[codex:881785] contracts/contracts/mixins/TickCensus.sol:281:        unchecked {
[codex:881785] contracts/contracts/libraries/Encoding.sol:21:     *      functions are unchecked/unsanitized. The only use of this function is to
[codex:881785] contracts/contracts/libraries/Encoding.sol:34:        unchecked { // 0 + 32*6 is well with bounds of 256 bits
[codex:881785] contracts/contracts/libraries/Encoding.sol:41:        unchecked {
[codex:881785] contracts/contracts/libraries/Encoding.sol:58:        unchecked {
[codex:881785] contracts/contracts/libraries/Encoding.sol:64:        unchecked {
[codex:881785] contracts/contracts/libraries/Encoding.sol:81:        unchecked {
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Analyzing potential reentrancy and pool initialization issues**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "initLiq|setNewPoolLiq|initCurve|initPool" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 9ms:
[codex:881785] contracts/contracts/mixins/PoolRegistry.sol:187:    function setNewPoolLiq (uint128 liqAnte) internal {
[codex:881785] contracts/contracts/mixins/PoolRegistry.sol:242:     *                 lock to create the pool. (See setNewPoolLiq() above) */
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:53:            setNewPoolLiq(cmd);
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:86:            initPool(cmd);
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:117:    function initPool (bytes calldata cmd) private {
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:121:        (PoolSpecs.PoolCursor memory pool, uint128 initLiq) =
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:126:        (int128 baseFlow, int128 quoteFlow) = initCurve(pool, price, initLiq);
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:172:    function setNewPoolLiq (bytes calldata input) private {
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:177:        setNewPoolLiq(liq);
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:230:     * @param initLiq The initial ambient liquidity commitment that will be permanetely 
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:239:    function initCurve (PoolSpecs.PoolCursor memory pool,
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:240:                        uint128 price, uint128 initLiq)
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:244:        if (initLiq == 0) { initLiq = 1; }
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:245:        (baseFlow, quoteFlow) = lockAmbient(curve, initLiq);
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '160,260p' contracts/contracts/mixins/PoolRegistry.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785]      * @param jitThresh The minimum time (in seconds) a concentrated LP position must 
[codex:881785]      *                  rest before it can be burned.
[codex:881785]      * @param knockoutBits The knockout liquiidity parameter bit flags for the pool. */
[codex:881785]     function setPoolSpecs (address base, address quote, uint256 poolIdx,
[codex:881785]                            uint16 feeRate, uint16 tickSize, uint8 jitThresh,
[codex:881785]                            uint8 knockoutBits) internal {
[codex:881785]         PoolSpecs.Pool storage pool = selectPool(base, quote, poolIdx);
[codex:881785]         pool.feeRate_ = feeRate;
[codex:881785]         pool.tickSize_ = tickSize;
[codex:881785]         pool.jitThresh_ = jitThresh;
[codex:881785]         pool.knockoutBits_ = knockoutBits;
[codex:881785]     }
[codex:881785] 
[codex:881785]     // 10 million represents a sensible upper bound on initial pool, considering that the highest
[codex:881785]     // price token per wei is USDC and similar 6-digit stablecoins. So 10 million in that context
[codex:881785]     // represents about $10 worth of burned value. Considering that the initial liquidity commitment
[codex:881785]     // should be economic de minims, because it's permenately locked, we wouldn't want to be much 
[codex:881785]     // higher than this.
[codex:881785]     uint128 constant MAX_INIT_POOL_LIQ = 10_000_000;
[codex:881785] 
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Checking initCurve liquidity handling**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '220,300p' contracts/contracts/mixins/MarketSequencer.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] 
[codex:881785]     /* @notice Initializes a new liquidity curve for the pool.
[codex:881785]        
[codex:881785]      * @dev This does *not* check whether the curve was previously initialized. It's
[codex:881785]      *      the caller's responsibility to make sure this is never called on an already
[codex:881785]      *      initialized pool.
[codex:881785]      *
[codex:881785]      * @param pool The pre-loaded speciication and hash of the pool to be swapped against.
[codex:881785]      * @param price The initial price to set the curve at. Represented as the square root
[codex:881785]      *              of price in Q64.64 fixed point.
[codex:881785]      * @param initLiq The initial ambient liquidity commitment that will be permanetely 
[codex:881785]      *                locked in the pool. Represeted as sqrt(X*Y) constant-product AMM
[codex:881785]      *                liquidity.
[codex:881785]      *
[codex:881785]      * @return baseFlow The total amount of base-side token collateral that must be
[codex:881785]      *                  committed to the pool as part of the mint. Will always be
[codex:881785]      *                  positive as it's paid to the pool from the user.
[codex:881785]      * @return quoteFlow The total amount of quote-side token collateral that must be
[codex:881785]      *                   committed to the pool as part of the mint. */     
[codex:881785]     function initCurve (PoolSpecs.PoolCursor memory pool,
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Checking initialization and ProtocolAccount**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,200p' contracts/contracts/mixins/ProtocolAccount.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] 
[codex:881785] pragma solidity 0.8.19;
[codex:881785] 
[codex:881785] import '../libraries/TransferHelper.sol';
[codex:881785] import '../libraries/TokenFlow.sol';
[codex:881785] import '../libraries/SafeCast.sol';
[codex:881785] import './StorageLayout.sol';
[codex:881785] 
[codex:881785] /* @title Protocol Account Mixin
[codex:881785]  * @notice Tracks and pays out the accumulated protocol fees across the entire exchange 
[codex:881785]  *         These are the fees belonging to the CrocSwap protocol, not the liquidity 
[codex:881785]  *         miners.
[codex:881785]  * @dev Unlike liquidity fees, protocol fees are accumulated as resting tokens 
[codex:881785]  *      instead of ambient liquidity. */
[codex:881785] contract ProtocolAccount is StorageLayout  {
[codex:881785]     using SafeCast for uint256;
[codex:881785]     using TokenFlow for address;
[codex:881785]     
[codex:881785]     /* @notice Called at the completion of a swap event, incrementing any protocol
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Analyzing potential protocol vulnerabilities**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "callUserCmd|callProtocolCmd" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 10ms:
[codex:881785] contracts/contracts/CrocSwapDex.sol:105:        callProtocolCmd(callpath, cmd);
[codex:881785] contracts/contracts/CrocSwapDex.sol:117:        return callUserCmd(callpath, cmd);
[codex:881785] contracts/contracts/CrocSwapDex.sol:141:        output = callUserCmd(callpath, cmd);
[codex:881785] contracts/contracts/CrocSwapDex.sol:158:        return callUserCmd(callpath, cmd);
[codex:881785] contracts/contracts/mixins/ProxyCaller.sol:22:    function callProtocolCmd (uint16 proxyIdx, bytes calldata input) internal
[codex:881785] contracts/contracts/mixins/ProxyCaller.sol:31:    function callUserCmd (uint16 proxyIdx, bytes calldata input)
[codex:881785] contracts/contracts/mixins/ProxyCaller.sol:39:    function callUserCmdMem (uint16 proxyIdx, bytes memory input)
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,120p' contracts/contracts/mixins/ProxyCaller.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] 
[codex:881785] pragma solidity 0.8.19;
[codex:881785] 
[codex:881785] import './StorageLayout.sol';
[codex:881785] import '../libraries/CurveCache.sol';
[codex:881785] import '../libraries/Chaining.sol';
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] 
[codex:881785] /* @title Proxy Caller
[codex:881785]  * @notice Because of the Ethereum contract limit, much of the CrocSwap code is pushed
[codex:881785]  *         into sidecar proxy contracts, which is involed with DELEGATECALLs. The code
[codex:881785]  *         moved to these sidecars is less gas critical than the code in the core contract. 
[codex:881785]  *         This provides a facility for invoking proxy conjtracts in a consistent way by
[codex:881785] *          setting up the DELEGATECALLs in a standard and safe manner. */
[codex:881785] contract ProxyCaller is StorageLayout {
[codex:881785]     using CurveCache for CurveCache.Cache;
[codex:881785]     using CurveMath for CurveMath.CurveState;
[codex:881785]     using Chaining for Chaining.PairFlow;
[codex:881785] 
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Analyzing reentrancy and permission safeguards**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,160p' contracts/contracts/mixins/PoolRegistry.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] 
[codex:881785] pragma solidity 0.8.19;
[codex:881785] 
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/PoolSpecs.sol';
[codex:881785] import '../libraries/PriceGrid.sol';
[codex:881785] import '../interfaces/ICrocPermitOracle.sol';
[codex:881785] import './StorageLayout.sol';
[codex:881785] 
[codex:881785] /* @title Pool registry mixin
[codex:881785]  * @notice Provides a facility for registering and querying pool types on pairs and
[codex:881785]  *         generalized pool templates for pools yet to be initialized. */
[codex:881785] contract PoolRegistry is StorageLayout {
[codex:881785]     using PoolSpecs for uint8;
[codex:881785]     using PoolSpecs for PoolSpecs.Pool;
[codex:881785] 
[codex:881785]     uint8 constant SWAP_ACT_CODE = 1;
[codex:881785]     uint8 constant MINT_ACT_CODE = 2;
[codex:881785]     uint8 constant BURN_ACT_CODE = 3;
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Analyzing potential reentrancy risk**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '150,240p' contracts/contracts/mixins/TradeMatcher.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785]      * @param lowTick The tick index of the lower boundary of the range order.
[codex:881785]      * @param highTick The tick index of the upper boundary of the range order.
[codex:881785]      * @param liqAdded The amount of ambient liquidity being minted represented as
[codex:881785]      *                 sqrt(X*Y) where X,Y are the collateral reserves in a constant-
[codex:881785]      *                 product AMM
[codex:881785]      * @param poolHash The hash indexing the pool this liquidity curve applies to.
[codex:881785]      *
[codex:881785]      * @return baseFlow The amount of base-side token collateral returned by this
[codex:881785]      *                  operations. Will always be negative indicating, a credit from
[codex:881785]      *                  the pool to the user.
[codex:881785]      * @return quoteFlow The amount of quote-side token collateral returned by this
[codex:881785]      *                   operation. */
[codex:881785]     function burnRange (CurveMath.CurveState memory curve, int24 priceTick,
[codex:881785]                         int24 lowTick, int24 highTick, uint128 liquidity,
[codex:881785]                         bytes32 poolHash, address lpOwner)
[codex:881785]         internal returns (int128, int128) {
[codex:881785]         uint64 feeMileage = removeBookLiq(poolHash, priceTick, lowTick, highTick,
[codex:881785]                                           liquidity.liquidityToLots(),
[codex:881785]                                           curve.concGrowth_);
[codex:881785]         uint64 rewards = burnPosLiq(lpOwner, poolHash, lowTick, highTick, liquidity,
[codex:881785] 
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Analyzing security and reentrancy risks**
[codex:881785] 
[codex:881785] I'm carefully reviewing contract functions and flows for potential reentrancy vulnerabilities, authorization issues, signature mismatches, and overflow risks. I'm focusing on how external calls interact with state changes, the correctness of signature encoding in EIP-712, relayer condition checks, and whether any unusual edge cases might allow exploits or fund misappropriation. So far, no clear exploits emerge, but I want to be sure no subtle gaps remain.
[codex:881785] thinking
[codex:881785] **Reviewing token flow and command handling intricacies**
[codex:881785] 
[codex:881785] There is detailed exploration of edge cases involving ETH and token flows, deflationary tokens, surplus handling, nonce resets, upgrade gating, and subtle ABI encoding nuances in command decoding. I’m weighing if any of these create real exploits, especially around token transfers, surplus collateral usage, or userCmd vs protocolCmd crossover, but no concrete profit paths are apparent so far.
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "UserCmd" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 9ms:
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:69:        if (code == UserCmd.MINT_RANGE_LIQ_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:72:        } else if (code == UserCmd.MINT_RANGE_BASE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:75:        } else if (code == UserCmd.MINT_RANGE_QUOTE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:79:        } else if (code == UserCmd.BURN_RANGE_LIQ_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:82:        } else if (code == UserCmd.BURN_RANGE_BASE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:85:        } else if (code == UserCmd.BURN_RANGE_QUOTE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:89:        } else if (code == UserCmd.MINT_AMBIENT_LIQ_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:91:        } else if (code == UserCmd.MINT_AMBIENT_BASE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:94:        } else if (code == UserCmd.MINT_AMBIENT_QUOTE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:98:        } else if (code == UserCmd.BURN_AMBIENT_LIQ_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:100:        } else if (code == UserCmd.BURN_AMBIENT_BASE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:103:        } else if (code == UserCmd.BURN_AMBIENT_QUOTE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:107:        } else if (code == UserCmd.HARVEST_LP) {
[codex:881785] contracts/contracts/libraries/ProtocolCmd.sol:70:library UserCmd {
[codex:881785] contracts/contracts/callpaths/KnockoutPath.sol:95:        if (code == UserCmd.MINT_KNOCKOUT) {
[codex:881785] contracts/contracts/callpaths/KnockoutPath.sol:97:        } else if (code == UserCmd.BURN_KNOCKOUT) {
[codex:881785] contracts/contracts/callpaths/KnockoutPath.sol:99:        } else if (code == UserCmd.CLAIM_KNOCKOUT) {
[codex:881785] contracts/contracts/callpaths/KnockoutPath.sol:101:        } else if (code == UserCmd.RECOVER_KNOCKOUT) {
[codex:881785] contracts/contracts/CrocSwapDex.sol:117:        return callUserCmd(callpath, cmd);
[codex:881785] contracts/contracts/CrocSwapDex.sol:141:        output = callUserCmd(callpath, cmd);
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,160p' contracts/contracts/libraries/ProtocolCmd.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] 
[codex:881785] pragma solidity 0.8.19;
[codex:881785] 
[codex:881785] import './SafeCast.sol';
[codex:881785] 
[codex:881785] /* @title Protocol Command library.
[codex:881785]  *
[codex:881785]  * @notice To allow for flexibility and upgradeability the top-level interface to the Croc
[codex:881785]  *         dex contract contains a general purpose encoding scheme. User commands specify a
[codex:881785]  *         proxy contract index, and input is passed raw and unformatted. Each proxy contract
[codex:881785]  *         is free to specify its own input format, but by convention many proxy contracts
[codex:881785]  *         adhere to a specification where the first 32 bytes of the input encodes a sub-command
[codex:881785]  *         code. This library contains all of these sub-command codes in a single location for
[codex:881785]  *         easy lookup. */
[codex:881785] library ProtocolCmd {
[codex:881785]     
[codex:881785]     
[codex:881785]     ////////////////////////////////////////////////////////////////////////////
[codex:881785]     // Privileged commands invokable by direct governance only.
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Analyzing potential protocol vulnerabilities**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,260p' contracts/contracts/callpaths/KnockoutPath.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] 
[codex:881785] pragma solidity 0.8.19;
[codex:881785] 
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/Encoding.sol';
[codex:881785] import '../libraries/TokenFlow.sol';
[codex:881785] import '../libraries/PriceGrid.sol';
[codex:881785] import '../libraries/ProtocolCmd.sol';
[codex:881785] import '../mixins/SettleLayer.sol';
[codex:881785] import '../mixins/PoolRegistry.sol';
[codex:881785] import '../mixins/TradeMatcher.sol';
[codex:881785] 
[codex:881785] /* @title Knockout Flag Proxy
[codex:881785]  * @notice This is an internal library callpath that's called when a swap triggers a 
[codex:881785]  *         knockout liquidity event by crossing a given bump point. 
[codex:881785]  * @dev It exists as a separate callpath from the normal swap() code path because crossing
[codex:881785]  *      a knockout pivot is a relatively rare event and the code won't fully fit into the
[codex:881785]  *      hot path contract. */
[codex:881785] contract KnockoutFlagPath is KnockoutCounter {
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Investigating KnockoutLiq usage**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "claimKnockout|recoverKnockout|Knockout" contracts/contracts/mixins/KnockoutCounter.sol contracts/contracts/libraries/KnockoutLiq.sol -S' in /tmp/codex-multi-klbv7d97 succeeded in 9ms:
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:6:import '../libraries/KnockoutLiq.sol';
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:11:/* @title Knockout Counter
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:15: *         the curve or debiting/creditiing collateral. Knockout liquidity positions 
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:18:contract KnockoutCounter is LevelBook, PoolRegistry, AgentMask {
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:23:    using KnockoutLiq for KnockoutLiq.KnockoutMerkle;
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:24:    using KnockoutLiq for KnockoutLiq.KnockoutPivot;
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:25:    using KnockoutLiq for KnockoutLiq.KnockoutPosLoc;
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:30:    event CrocKnockoutCross (bytes32 indexed pool, int24 indexed tick, bool isBid,
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:47:    function crossKnockout (bytes32 pool, bool isBid, int24 tick, 
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:49:        bytes32 lvlKey = KnockoutLiq.encodePivotKey(pool, isBid, tick);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:50:        KnockoutLiq.KnockoutPivot storage pivot = knockoutPivots_[lvlKey];
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:51:        KnockoutLiq.KnockoutMerkle storage merkle = knockoutMerkles_[lvlKey];
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:56:        merkle.commitKnockout(pivot, feeRange);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:57:        emit CrocKnockoutCross(pool, tick, isBid, merkle.pivotTime_, merkle.feeMileage_,
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:58:                               KnockoutLiq.commitEntropySalt());
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:64:    function knockoutRangeLiq (bytes32 pool, KnockoutLiq.KnockoutPivot memory pivot,
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:95:    function addKnockoutLiq (bytes32 pool, uint8 knockoutBits,
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:97:                             KnockoutLiq.KnockoutPosLoc memory loc, uint96 lots)
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:109:     *         alive. (Knocked out positions should use claimKnockout() instead).
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:127:    function rmKnockoutLiq (bytes32 pool, int24 curveTick, uint64 feeGlobal,
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '180,260p' contracts/contracts/mixins/KnockoutCounter.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785]      *                  from. (See comments for struct for full explanation of fields)
[codex:881785]      * @param merkleRoot The root of the Merkle proof to recover the accumulted fees.
[codex:881785]      * @param merkleProof The user-supplied proof for the accumulated fees earned by
[codex:881785]      *                    the knockout pivot. (Transaction will revert if proof is bad)
[codex:881785]      *
[codex:881785]      * @return lots    The liquidity (in 1024-unit lots) claimable by the underlying 
[codex:881785]      *                 position. Note that this liquidity should be converted to 
[codex:881785]      *                 collateral at the knockout price *not* the current curve price).
[codex:881785]      * @return rewards The in-range concentrated liquidity rewards earned by the position.
[codex:881785]      */
[codex:881785]     function claimPostKnockout (bytes32 pool, KnockoutLiq.KnockoutPosLoc memory loc,
[codex:881785]                                 uint160 merkleRoot, uint256[] memory merkleProof)
[codex:881785]         internal returns (uint96 lots, uint64 rewards) {
[codex:881785]         (uint32 pivotTime, uint64 feeSnap) =
[codex:881785]             proveKnockout(pool, loc, merkleRoot, merkleProof);
[codex:881785]         (lots, rewards) = claimPosition(pool, loc, feeSnap, pivotTime);
[codex:881785]     }
[codex:881785] 
[codex:881785]     /* @notice Like claimKnockout(), but avoids the need for Merkle proof altogether.
[codex:881785]      *         This means the underlying collateral is recoverable, but user renounces
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '260,340p' contracts/contracts/mixins/KnockoutCounter.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785]         if (lots == pos.lots_) {
[codex:881785]             // Get SSTORE refund on full burn
[codex:881785]             pos.lots_ = 0;
[codex:881785]             pos.feeMileage_ = 0;
[codex:881785]             pos.timestamp_ = 0;
[codex:881785]         } else {
[codex:881785]             pos.lots_ -= lots;
[codex:881785]         }
[codex:881785]     }
[codex:881785] 
[codex:881785]     /* @notice Removes the tracking data for an individual knockout liquidity position 
[codex:881785]      *         that's being claimed post knockout. 
[codex:881785]      * @dev Should only be called *after* the underlying pivot is knocked out.
[codex:881785]      * @param pool The hash of the pool the liquidity applies to.
[codex:881785]      * @param loc The context/location data of the knockout liquidity position.
[codex:881785]      * @param feeRange The cumulative fee mileage for the concentrated liquidity range
[codex:881785]      *                 at current mint time.
[codex:881785]      * @param pivotTime The time corresponding to the underlying pivot creation.
[codex:881785]      * @return lots The amount of liquidity lots in the underlying position. 
[codex:881785]      * @return feeRewards The accumulated fee rewards rate on the position. */
[codex:881785] 
[codex:881785] thinking
[codex:881785] **Preparing audit findings response**
[codex:881785] codex
[codex:881785] {"no_findings":true,"summary":"No concrete, exploitable paths to extract value were identified after reviewing the provided sources.","findings":[]}
[codex:881785] tokens used
[codex:881785] 76,990
[codex:881785] {"no_findings":true,"summary":"No concrete, exploitable paths to extract value were identified after reviewing the provided sources.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-02T23:14:42.608740+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable paths to extract value were identified after reviewing the provided sources.",
    "raw_final": {
        "summary": "No concrete, exploitable paths to extract value were identified after reviewing the provided sources.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
3
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
0
Total opcodes
12004
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0070
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x3d719cd9
00000019: GT
0000001a: PUSH2 0x004e
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x3d719cd9
00000024: EQ
00000025: PUSH2 0x00dc
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x7c519625
0000002f: EQ
00000030: PUSH2 0x0109
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0x90b33ce5
0000003a: EQ
0000003b: PUSH2 0x0125
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xa15112f9
00000045: EQ
00000046: PUSH2 0x0138
00000049: JUMPI
0000004a: PUSH1 0x00
0000004c: DUP1
0000004d: REVERT
0000004e: JUMPDEST
0000004f: DUP1
00000050: PUSH4 0x02ce8af3
00000055: EQ
00000056: PUSH2 0x0075
00000059: JUMPI
0000005a: DUP1
0000005b: PUSH4 0x08719070
00000060: EQ
00000061: PUSH2 0x00a7
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0x13fd34f4
0000006b: EQ
0000006c: PUSH2 0x00c7
0000006f: JUMPI
00000070: JUMPDEST
00000071: PUSH1 0x00
00000073: DUP1
00000074: REVERT
00000075: JUMPDEST
00000076: CALLVALUE
00000077: DUP1
00000078: ISZERO
00000079: PUSH2 0x0081
0000007c: JUMPI
0000007d: PUSH1 0x00
0000007f: DUP1
00000080: REVERT
00000081: JUMPDEST
00000082: POP
00000083: PUSH2 0x0094
00000086: PUSH2 0x0090
00000089: CALLDATASIZE
0000008a: PUSH1 0x04
0000008c: PUSH2 0x54f4
0000008f: JUMP
00000090: JUMPDEST
00000091: SLOAD
00000092: SWAP1
00000093: JUMP
00000094: JUMPDEST
00000095: PUSH1 0x40
00000097: MLOAD
00000098: SWAP1
00000099: DUP2
0000009a: MSTORE
0000009b: PUSH1 0x20
0000009d: ADD
0000009e: JUMPDEST
0000009f: PUSH1 0x40
000000a1: MLOAD
000000a2: DUP1
000000a3: SWAP2
000000a4: SUB
000000a5: SWAP1
000000a6: RETURN
000000a7: JUMPDEST
000000a8: PUSH2 0x00ba
000000ab: PUSH2 0x00b5
000000ae: CALLDATASIZE
000000af: PUSH1 0x04
000000b1: PUSH2 0x5566
000000b4: JUMP
000000b5: JUMPDEST
000000b6: PUSH2 0x014b
000000b9: JUMP
000000ba: JUMPDEST
000000bb: PUSH1 0x40
000000bd: MLOAD
000000be: PUSH2 0x009e
000000c1: SWAP2
000000c2: SWAP1
000000c3: PUSH2 0x5663
000000c6: JUMP
000000c7: JUMPDEST
000000c8: PUSH2 0x00da
000000cb: PUSH2 0x00d5
000000ce: CALLDATASIZE
000000cf: PUSH1 0x04
000000d1: PUSH2 0x56c2
000000d4: JUMP
000000d5: JUMPDEST
000000d6: PUSH2 0x030a
000000d9: JUMP
000000da: JUMPDEST
000000db: STOP
000000dc: JUMPDEST
000000dd: PUSH2 0x00ef
000000e0: PUSH2 0x00ea
000000e3: CALLDATASIZE
000000e4: PUSH1 0x04
000000e6: PUSH2 0x577b
000000e9: JUMP
000000ea: JUMPDEST
000000eb: PUSH2 0x03f7
000000ee: JUMP
000000ef: JUMPDEST
000000f0: PUSH1 0x40
000000f2: DUP1
000000f3: MLOAD
000000f4: PUSH1 0x0f
000000f6: SWAP4
000000f7: DUP5
000000f8: SIGNEXTEND
000000f9: DUP2
000000fa: MSTORE
000000fb: SWAP2
000000fc: SWAP1
000000fd: SWAP3
000000fe: SIGNEXTEND
000000ff: PUSH1 0x20
00000101: DUP3
00000102: ADD
00000103: MSTORE
00000104: ADD
00000105: PUSH2 0x009e
00000108: JUMP
00000109: JUMPDEST
0000010a: CALLVALUE
0000010b: DUP1
0000010c: ISZERO
0000010d: PUSH2 0x0115
00000110: JUMPI
00000111: PUSH1 0x00
00000113: DUP1
00000114: REVERT
00000115: JUMPDEST
00000116: POP
00000117: PUSH1 0x40
00000119: MLOAD
0000011a: PUSH1 0x01
0000011c: DUP2
0000011d: MSTORE
0000011e: PUSH1 0x20
00000120: ADD
00000121: PUSH2 0x009e
00000124: JUMP
00000125: JUMPDEST
00000126: PUSH2 0x00ba
00000129: PUSH2 0x0133
0000012c: CALLDATASIZE
0000012d: PUSH1 0x04
0000012f: PUSH2 0x583e
00000132: JUMP
00000133: JUMPDEST
00000134: PUSH2 0x04bd
00000137: JUMP
00000138: JUMPDEST
00000139: PUSH2 0x00ba
0000013c: PUSH2 0x0146
0000013f: CALLDATASIZE
00000140: PUSH1 0x04
00000142: PUSH2 0x589b
00000145: JUMP
00000146: JUMPDEST
00000147: PUSH2 0x056f
0000014a: JUMP
0000014b: JUMPDEST
0000014c: PUSH1 0x60
0000014e: PUSH1 0x40
00000150: MLOAD
00000151: DUP1
00000152: PUSH1 0x80
00000154: ADD
00000155: PUSH1 0x40
00000157: MSTORE
00000158: DUP1
00000159: DUP12
0000015a: PUSH2 0xffff
0000015d: AND
0000015e: DUP2
0000015f: MSTORE
00000160: PUSH1 0x20
00000162: ADD
00000163: DUP11
00000164: DUP11
00000165: DUP1
00000166: DUP1
00000167: PUSH1 0x1f
00000169: ADD
0000016a: PUSH1 0x20
0000016c: DUP1
0000016d: SWAP2
0000016e: DIV
0000016f: MUL
00000170: PUSH1 0x20
00000172: ADD
00000173: PUSH1 0x40
00000175: MLOAD
00000176: SWAP1
00000177: DUP2
00000178: ADD
00000179: PUSH1 0x40
0000017b: MSTORE
0000017c: DUP1
0000017d: SWAP4
0000017e: SWAP3
0000017f: SWAP2
00000180: SWAP1
00000181: DUP2
00000182: DUP2
00000183: MSTORE
00000184: PUSH1 0x20
00000186: ADD
00000187: DUP4
00000188: DUP4
00000189: DUP1
0000018a: DUP3
0000018b: DUP5
0000018c: CALLDATACOPY
0000018d: PUSH1 0x00
0000018f: SWAP3
00000190: ADD
00000191: SWAP2
00000192: SWAP1
00000193: SWAP2
00000194: MSTORE
00000195: POP
00000196: POP
00000197: POP
00000198: SWAP1
00000199: DUP3
0000019a: MSTORE
0000019b: POP
0000019c: PUSH1 0x40
0000019e: DUP1
0000019f: MLOAD
000001a0: PUSH1 0x20
000001a2: PUSH1 0x1f
000001a4: DUP12
000001a5: ADD
000001a6: DUP2
000001a7: SWAP1
000001a8: DIV
000001a9: DUP2
000001aa: MUL
000001ab: DUP3
000001ac: ADD
000001ad: DUP2
000001ae: ADD
000001af: SWAP1
000001b0: SWAP3
000001b1: MSTORE
000001b2: DUP10
000001b3: DUP2
000001b4: MSTORE
000001b5: SWAP2
000001b6: DUP2
000001b7: ADD
000001b8: SWAP2
000001b9: SWAP1
000001ba: DUP11
000001bb: SWAP1
000001bc: DUP11
000001bd: SWAP1
000001be: DUP2
000001bf: SWAP1
000001c0: DUP5
000001c1: ADD
000001c2: DUP4
000001c3: DUP3
000001c4: DUP1
000001c5: DUP3
000001c6: DUP5
000001c7: CALLDATACOPY
000001c8: PUSH1 0x00
000001ca: SWAP3
000001cb: ADD
000001cc: SWAP2
000001cd: SWAP1
000001ce: SWAP2
000001cf: MSTORE
000001d0: POP
000001d1: POP
000001d2: POP
000001d3: SWAP1
000001d4: DUP3
000001d5: MSTORE
000001d6: POP
000001d7: PUSH1 0x40
000001d9: DUP1
000001da: MLOAD
000001db: PUSH1 0x20
000001dd: PUSH1 0x1f
000001df: DUP10
000001e0: ADD
000001e1: DUP2
000001e2: SWAP1
000001e3: DIV
000001e4: DUP2
000001e5: MUL
000001e6: DUP3
000001e7: ADD
000001e8: DUP2
000001e9: ADD
000001ea: SWAP1
000001eb: SWAP3
000001ec: MSTORE
000001ed: DUP8
000001ee: DUP2
000001ef: MSTORE
000001f0: SWAP2
000001f1: DUP2
000001f2: ADD
000001f3: SWAP2
000001f4: SWAP1
000001f5: DUP9
000001f6: SWAP1
000001f7: DUP9
000001f8: SWAP1
000001f9: DUP2
000001fa: SWAP1
000001fb: DUP5
000001fc: ADD
000001fd: DUP4
000001fe: DUP3
000001ff: DUP1
00000200: DUP3
00000201: DUP5
00000202: CALLDATACOPY
00000203: PUSH1 0x00
00000205: SWAP3
00000206: ADD
00000207: DUP3
00000208: SWAP1
00000209: MSTORE
0000020a: POP
0000020b: SWAP4
0000020c: SWAP1
0000020d: SWAP5
0000020e: MSTORE
0000020f: POP
00000210: POP
00000211: SLOAD
00000212: DUP6
00000213: SWAP2
00000214: POP
00000215: DUP5
00000216: SWAP1
00000217: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000022c: AND
0000022d: ISZERO
0000022e: PUSH2 0x0236
00000231: JUMPI
00000232: PUSH1 0x00
00000234: DUP1
00000235: REVERT
00000236: JUMPDEST
00000237: PUSH2 0x0241
0000023a: DUP4
0000023b: DUP4
0000023c: DUP4
0000023d: PUSH2 0x05fc
00000240: JUMP
00000241: JUMPDEST
00000242: PUSH1 0x00
00000244: DUP1
00000245: SLOAD
00000246: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000267: AND
00000268: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000027d: SWAP3
0000027e: SWAP1
0000027f: SWAP3
00000280: AND
00000281: SWAP2
00000282: SWAP1
00000283: SWAP2
00000284: OR
00000285: SWAP1
00000286: SSTORE
00000287: PUSH2 0x0291
0000028a: DUP14
0000028b: DUP14
0000028c: DUP14
0000028d: PUSH2 0x0619
00000290: JUMP
00000291: JUMPDEST
00000292: SWAP4
00000293: POP
00000294: PUSH2 0x02d2
00000297: DUP9
00000298: DUP9
00000299: DUP1
0000029a: DUP1
0000029b: PUSH1 0x1f
0000029d: ADD
0000029e: PUSH1 0x20
000002a0: DUP1
000002a1: SWAP2
000002a2: DIV
000002a3: MUL
000002a4: PUSH1 0x20
000002a6: ADD
000002a7: PUSH1 0x40
000002a9: MLOAD
000002aa: SWAP1
000002ab: DUP2
000002ac: ADD
000002ad: PUSH1 0x40
000002af: MSTORE
000002b0: DUP1
000002b1: SWAP4
000002b2: SWAP3
000002b3: SWAP2
000002b4: SWAP1
000002b5: DUP2
000002b6: DUP2
000002b7: MSTORE
000002b8: PUSH1 0x20
000002ba: ADD
000002bb: DUP4
000002bc: DUP4
000002bd: DUP1
000002be: DUP3
000002bf: DUP5
000002c0: CALLDATACOPY
000002c1: PUSH1 0x00
000002c3: SWAP3
000002c4: ADD
000002c5: SWAP2
000002c6: SWAP1
000002c7: SWAP2
000002c8: MSTORE
000002c9: POP
000002ca: PUSH2 0x0748
000002cd: SWAP3
000002ce: POP
000002cf: POP
000002d0: POP
000002d1: JUMP
000002d2: JUMPDEST
000002d3: PUSH1 0x00
000002d5: DUP1
000002d6: SLOAD
000002d7: PUSH32 0xffffffffffffffffffff00ff0000000000000000000000000000000000000000
000002f8: AND
000002f9: SWAP1
000002fa: SSTORE
000002fb: POP
000002fc: POP
000002fd: POP
000002fe: SWAP10
000002ff: SWAP9
00000300: POP
00000301: POP
00000302: POP
00000303: POP
00000304: POP
00000305: POP
00000306: POP
00000307: POP
00000308: POP
00000309: JUMP
0000030a: JUMPDEST
0000030b: PUSH3 0x010001
0000030f: SLOAD
00000310: DUP2
00000311: SWAP1
00000312: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000327: AND
00000328: CALLER
00000329: EQ
0000032a: DUP1
0000032b: ISZERO
0000032c: PUSH2 0x034b
0000032f: JUMPI
00000330: POP
00000331: PUSH1 0x00
00000333: SLOAD
00000334: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000349: AND
0000034a: ISZERO
0000034b: JUMPDEST
0000034c: PUSH2 0x0354
0000034f: JUMPI
00000350: PUSH1 0x00
00000352: DUP1
00000353: REVERT
00000354: JUMPDEST
00000355: PUSH1 0x00
00000357: DUP1
00000358: SLOAD
00000359: PUSH32 0xffffffffffffffffffffff000000000000000000000000000000000000000000
0000037a: AND
0000037b: CALLER
0000037c: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
0000039d: AND
0000039e: OR
0000039f: PUSH21 0x010000000000000000000000000000000000000000
000003b5: DUP4
000003b6: ISZERO
000003b7: ISZERO
000003b8: MUL
000003b9: OR
000003ba: SWAP1
000003bb: SSTORE
000003bc: PUSH2 0x03c6
000003bf: DUP6
000003c0: DUP6
000003c1: DUP6
000003c2: PUSH2 0x09ec
000003c5: JUMP
000003c6: JUMPDEST
000003c7: POP
000003c8: PUSH1 0x00
000003ca: DUP1
000003cb: SLOAD
000003cc: PUSH32 0xffffffffffffffffffff00000000000000000000000000000000000000000000
000003ed: AND
000003ee: SWAP1
000003ef: SSTORE
000003f0: JUMPDEST
000003f1: POP
000003f2: POP
000003f3: POP
000003f4: POP
000003f5: POP
000003f6: JUMP
000003f7: JUMPDEST
000003f8: PUSH1 0x00
000003fa: DUP1
000003fb: SLOAD
000003fc: DUP2
000003fd: SWAP1
000003fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000413: AND
00000414: ISZERO
00000415: PUSH2 0x041d
00000418: JUMPI
00000419: PUSH1 0x00
0000041b: DUP1
0000041c: REVERT
0000041d: JUMPDEST
0000041e: PUSH1 0x00
00000420: DUP1
00000421: SLOAD
00000422: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000443: AND
00000444: CALLER
00000445: OR
00000446: SWAP1
00000447: DUP2
00000448: SWAP1
00000449: SSTORE
0000044a: PUSH1 0xff
0000044c: PUSH23 0x0100000000000000000000000000000000000000000000
00000464: SWAP1
00000465: SWAP2
00000466: DIV
00000467: AND
00000468: PUSH2 0x0470
0000046b: JUMPI
0000046c: PUSH1 0x00
0000046e: DUP1
0000046f: REVERT
00000470: JUMPDEST
00000471: PUSH2 0x0482
00000474: DUP13
00000475: DUP13
00000476: DUP13
00000477: DUP13
00000478: DUP13
00000479: DUP13
0000047a: DUP13
0000047b: DUP13
0000047c: DUP13
0000047d: DUP13
0000047e: PUSH2 0x0ac2
00000481: JUMP
00000482: JUMPDEST
00000483: PUSH1 0x00
00000485: DUP1
00000486: SLOAD
00000487: PUSH32 0xffffffffffffffffffff00ff0000000000000000000000000000000000000000
000004a8: AND
000004a9: SWAP1
000004aa: SSTORE
000004ab: SWAP1
000004ac: SWAP14
000004ad: SWAP1
000004ae: SWAP13
000004af: POP
000004b0: SWAP11
000004b1: POP
000004b2: POP
000004b3: POP
000004b4: POP
000004b5: POP
000004b6: POP
000004b7: POP
000004b8: POP
000004b9: POP
000004ba: POP
000004bb: POP
000004bc: JUMP
000004bd: JUMPDEST
000004be: PUSH1 0x60
000004c0: DUP2
000004c1: DUP6
000004c2: PUSH2 0x04cc
000004c5: DUP3
000004c6: CALLER
000004c7: DUP4
000004c8: PUSH2 0x0b33
000004cb: JUMP
000004cc: JUMPDEST
000004cd: PUSH1 0x00
000004cf: SLOAD
000004d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004e5: AND
000004e6: ISZERO
000004e7: PUSH2 0x04ef
000004ea: JUMPI
000004eb: PUSH1 0x00
000004ed: DUP1
000004ee: REVERT
000004ef: JUMPDEST
000004f0: PUSH1 0x00
000004f2: DUP1
000004f3: SLOAD
000004f4: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000515: AND
00000516: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000052b: DUP5
0000052c: AND
0000052d: OR
0000052e: SWAP1
0000052f: SSTORE
00000530: PUSH2 0x053a
00000533: DUP8
00000534: DUP8
00000535: DUP8
00000536: PUSH2 0x0619
00000539: JUMP
0000053a: JUMPDEST
0000053b: PUSH1 0x00
0000053d: DUP1
0000053e: SLOAD
0000053f: PUSH32 0xffffffffffffffffffff00ff0000000000000000000000000000000000000000
00000560: AND
00000561: SWAP1
00000562: SSTORE
00000563: SWAP3
00000564: POP
00000565: JUMPDEST
00000566: POP
00000567: POP
00000568: SWAP5
00000569: SWAP4
0000056a: POP
0000056b: POP
0000056c: POP
0000056d: POP
0000056e: JUMP
0000056f: JUMPDEST
00000570: PUSH1 0x00
00000572: SLOAD
00000573: PUSH1 0x60
00000575: SWAP1
00000576: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000058b: AND
0000058c: ISZERO
0000058d: PUSH2 0x0595
00000590: JUMPI
00000591: PUSH1 0x00
00000593: DUP1
00000594: REVERT
00000595: JUMPDEST
00000596: PUSH1 0x00
00000598: DUP1
00000599: SLOAD
0000059a: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000005bb: AND
000005bc: CALLER
000005bd: OR
000005be: SWAP1
000005bf: SSTORE
000005c0: PUSH2 0x05ca
000005c3: DUP5
000005c4: DUP5
000005c5: DUP5
000005c6: PUSH2 0x0619
000005c9: JUMP
000005ca: JUMPDEST
000005cb: PUSH1 0x00
000005cd: DUP1
000005ce: SLOAD
000005cf: PUSH32 0xffffffffffffffffffff00ff0000000000000000000000000000000000000000
000005f0: AND
000005f1: SWAP1
000005f2: SSTORE
000005f3: SWAP1
000005f4: POP
000005f5: JUMPDEST
000005f6: SWAP4
000005f7: SWAP3
000005f8: POP
000005f9: POP
000005fa: POP
000005fb: JUMP
000005fc: JUMPDEST
000005fd: PUSH1 0x00
000005ff: PUSH2 0x0609
00000602: DUP5
00000603: DUP5
00000604: DUP5
00000605: PUSH2 0x0bfd
00000608: JUMP
00000609: JUMPDEST
0000060a: SWAP1
0000060b: POP
0000060c: PUSH2 0x05f5
0000060f: DUP2
00000610: DUP6
00000611: PUSH1 0x40
00000613: ADD
00000614: MLOAD
00000615: PUSH2 0x0ccb
00000618: JUMP
00000619: JUMPDEST
0000061a: PUSH1 0x60
0000061c: PUSH2 0x0624
0000061f: DUP5
00000620: PUSH2 0x0d90
00000623: JUMP
00000624: JUMPDEST
00000625: PUSH1 0x00
00000627: DUP1
00000628: PUSH1 0x01
0000062a: DUP7
0000062b: PUSH2 0xffff
0000062e: AND
0000062f: PUSH3 0x010000
00000633: DUP2
00000634: LT
00000635: PUSH2 0x0640
00000638: JUMPI
00000639: PUSH2 0x0640
0000063c: PUSH2 0x58f0
0000063f: JUMP
00000640: JUMPDEST
00000641: ADD
00000642: SLOAD
00000643: PUSH1 0x40
00000645: MLOAD
00000646: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000065b: SWAP1
0000065c: SWAP2
0000065d: AND
0000065e: SWAP1
0000065f: PUSH2 0x066e
00000662: SWAP1
00000663: DUP8
00000664: SWAP1
00000665: DUP8
00000666: SWAP1
00000667: PUSH1 0x24
00000669: ADD
0000066a: PUSH2 0x591f
0000066d: JUMP
0000066e: JUMPDEST
0000066f: PUSH1 0x40
00000671: DUP1
00000672: MLOAD
00000673: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000694: DUP2
00000695: DUP5
00000696: SUB
00000697: ADD
00000698: DUP2
00000699: MSTORE
0000069a: SWAP2
0000069b: DUP2
0000069c: MSTORE
0000069d: PUSH1 0x20
0000069f: DUP3
000006a0: ADD
000006a1: DUP1
000006a2: MLOAD
000006a3: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000006c0: AND
000006c1: PUSH32 0xf96dc78800000000000000000000000000000000000000000000000000000000
000006e2: OR
000006e3: SWAP1
000006e4: MSTORE
000006e5: MLOAD
000006e6: PUSH2 0x06ef
000006e9: SWAP2
000006ea: SWAP1
000006eb: PUSH2 0x596c
000006ee: JUMP
000006ef: JUMPDEST
000006f0: PUSH1 0x00
000006f2: PUSH1 0x40
000006f4: MLOAD
000006f5: DUP1
000006f6: DUP4
000006f7: SUB
000006f8: DUP2
000006f9: DUP6
000006fa: GAS
000006fb: DELEGATECALL
000006fc: SWAP2
000006fd: POP
000006fe: POP
000006ff: RETURNDATASIZE
00000700: DUP1
00000701: PUSH1 0x00
00000703: DUP2
00000704: EQ
00000705: PUSH2 0x072a
00000708: JUMPI
00000709: PUSH1 0x40
0000070b: MLOAD
0000070c: SWAP2
0000070d: POP
0000070e: PUSH1 0x1f
00000710: NOT
00000711: PUSH1 0x3f
00000713: RETURNDATASIZE
00000714: ADD
00000715: AND
00000716: DUP3
00000717: ADD
00000718: PUSH1 0x40
0000071a: MSTORE
0000071b: RETURNDATASIZE
0000071c: DUP3
0000071d: MSTORE
0000071e: RETURNDATASIZE
0000071f: PUSH1 0x00
00000721: PUSH1 0x20
00000723: DUP5
00000724: ADD
00000725: RETURNDATACOPY
00000726: PUSH2 0x072f
00000729: JUMP
0000072a: JUMPDEST
0000072b: PUSH1 0x60
0000072d: SWAP2
0000072e: POP
0000072f: JUMPDEST
00000730: POP
00000731: SWAP2
00000732: POP
00000733: SWAP2
00000734: POP
00000735: PUSH2 0x073e
00000738: DUP3
00000739: DUP3
0000073a: PUSH2 0x0e18
0000073d: JUMP
0000073e: JUMPDEST
0000073f: SWAP7
00000740: SWAP6
00000741: POP
00000742: POP
00000743: POP
00000744: POP
00000745: POP
00000746: POP
00000747: JUMP
00000748: JUMPDEST
00000749: DUP1
0000074a: MLOAD
0000074b: PUSH1 0x00
0000074d: SUB
0000074e: PUSH2 0x0754
00000751: JUMPI
00000752: POP
00000753: JUMP
00000754: JUMPDEST
00000755: PUSH1 0x00
00000757: DUP1
00000758: PUSH1 0x00
0000075a: DUP4
0000075b: DUP1
0000075c: PUSH1 0x20
0000075e: ADD
0000075f: SWAP1
00000760: MLOAD
00000761: DUP2
00000762: ADD
00000763: SWAP1
00000764: PUSH2 0x076d
00000767: SWAP2
00000768: SWAP1
00000769: PUSH2 0x5988
0000076c: JUMP
0000076d: JUMPDEST
0000076e: SWAP3
0000076f: POP
00000770: SWAP3
00000771: POP
00000772: SWAP3
00000773: POP
00000774: PUSH2 0x077c
00000777: DUP2
00000778: PUSH2 0x0e3d
0000077b: JUMP
0000077c: JUMPDEST
0000077d: PUSH1 0x00
0000077f: DUP1
00000780: SLOAD
00000781: SWAP2
00000782: SWAP3
00000783: POP
00000784: SWAP1
00000785: PUSH2 0x07a4
00000788: SWAP1
00000789: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000079e: AND
0000079f: DUP6
000007a0: PUSH2 0x0ec8
000007a3: JUMP
000007a4: JUMPDEST
000007a5: SWAP1
000007a6: POP
000007a7: PUSH1 0x00
000007a9: PUSH2 0x07b2
000007ac: DUP4
000007ad: DUP7
000007ae: PUSH2 0x0ec8
000007b1: JUMP
000007b2: JUMPDEST
000007b3: SWAP1
000007b4: POP
000007b5: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001
000007d6: PUSH16 0xffffffffffffffffffffffffffffffff
000007e7: DUP6
000007e8: AND
000007e9: ADD
000007ea: PUSH2 0x0813
000007ed: JUMPI
000007ee: PUSH1 0x00
000007f0: DUP3
000007f1: DUP2
000007f2: MSTORE
000007f3: PUSH3 0x010010
000007f7: PUSH1 0x20
000007f9: MSTORE
000007fa: PUSH1 0x40
000007fc: SWAP1
000007fd: KECCAK256
000007fe: SLOAD
000007ff: PUSH16 0xffffffffffffffffffffffffffffffff
00000810: AND
00000811: SWAP4
00000812: POP
00000813: JUMPDEST
00000814: PUSH1 0x00
00000816: DUP3
00000817: DUP2
00000818: MSTORE
00000819: PUSH3 0x010010
0000081d: PUSH1 0x20
0000081f: MSTORE
00000820: PUSH1 0x40
00000822: SWAP1
00000823: KECCAK256
00000824: SLOAD
00000825: PUSH16 0xffffffffffffffffffffffffffffffff
00000836: DUP1
00000837: DUP7
00000838: AND
00000839: SWAP2
0000083a: AND
0000083b: LT
0000083c: ISZERO
0000083d: PUSH2 0x0845
00000840: JUMPI
00000841: PUSH1 0x00
00000843: DUP1
00000844: REVERT
00000845: JUMPDEST
00000846: PUSH1 0x00
00000848: DUP1
00000849: SLOAD
0000084a: PUSH2 0x0100
0000084d: SWAP1
0000084e: PUSH2 0x0876
00000851: SWAP1
00000852: PUSH25 0x01000000000000000000000000000000000000000000000000
0000086c: SWAP1
0000086d: DIV
0000086e: PUSH1 0xff
00000870: AND
00000871: DUP8
00000872: PUSH2 0x5a04
00000875: JUMP
00000876: JUMPDEST
00000877: PUSH2 0x0880
0000087a: SWAP2
0000087b: SWAP1
0000087c: PUSH2 0x5a5f
0000087f: JUMP
00000880: JUMPDEST
00000881: SWAP1
00000882: POP
00000883: PUSH1 0x00
00000885: PUSH2 0x088e
00000888: DUP3
00000889: DUP8
0000088a: PUSH2 0x5a8e
0000088d: JUMP
0000088e: JUMPDEST
0000088f: PUSH1 0x00
00000891: DUP6
00000892: DUP2
00000893: MSTORE
00000894: PUSH3 0x010010
00000898: PUSH1 0x20
0000089a: MSTORE
0000089b: PUSH1 0x40
0000089d: DUP2
0000089e: KECCAK256
0000089f: DUP1
000008a0: SLOAD
000008a1: SWAP3
000008a2: SWAP4
000008a3: POP
000008a4: DUP9
000008a5: SWAP3
000008a6: SWAP1
000008a7: SWAP2
000008a8: SWAP1
000008a9: PUSH2 0x08c5
000008ac: SWAP1
000008ad: DUP5
000008ae: SWAP1
000008af: PUSH16 0xffffffffffffffffffffffffffffffff
000008c0: AND
000008c1: PUSH2 0x5a8e
000008c4: JUMP
000008c5: JUMPDEST
000008c6: DUP3
000008c7: SLOAD
000008c8: PUSH2 0x0100
000008cb: SWAP3
000008cc: SWAP1
000008cd: SWAP3
000008ce: EXP
000008cf: PUSH16 0xffffffffffffffffffffffffffffffff
000008e0: DUP2
000008e1: DUP2
000008e2: MUL
000008e3: NOT
000008e4: SWAP1
000008e5: SWAP4
000008e6: AND
000008e7: SWAP2
000008e8: DUP4
000008e9: AND
000008ea: MUL
000008eb: OR
000008ec: SWAP1
000008ed: SWAP2
000008ee: SSTORE
000008ef: PUSH1 0x00
000008f1: DUP6
000008f2: DUP2
000008f3: MSTORE
000008f4: PUSH3 0x010010
000008f8: PUSH1 0x20
000008fa: MSTORE
000008fb: PUSH1 0x40
000008fd: DUP2
000008fe: KECCAK256
000008ff: DUP1
00000900: SLOAD
00000901: DUP6
00000902: SWAP5
00000903: POP
00000904: SWAP1
00000905: SWAP3
00000906: PUSH2 0x0911
00000909: SWAP2
0000090a: DUP6
0000090b: SWAP2
0000090c: AND
0000090d: PUSH2 0x5ab7
00000910: JUMP
00000911: JUMPDEST
00000912: SWAP3
00000913: POP
00000914: PUSH2 0x0100
00000917: EXP
00000918: DUP2
00000919: SLOAD
0000091a: DUP2
0000091b: PUSH16 0xffffffffffffffffffffffffffffffff
0000092c: MUL
0000092d: NOT
0000092e: AND
0000092f: SWAP1
00000930: DUP4
00000931: PUSH16 0xffffffffffffffffffffffffffffffff
00000942: AND
00000943: MUL
00000944: OR
00000945: SWAP1
00000946: SSTORE
00000947: POP
00000948: PUSH1 0x00
0000094a: DUP3
0000094b: PUSH16 0xffffffffffffffffffffffffffffffff
0000095c: AND
0000095d: GT
0000095e: ISZERO
0000095f: PUSH2 0x09e2
00000962: JUMPI
00000963: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000978: DUP8
00000979: AND
0000097a: PUSH1 0x00
0000097c: SWAP1
0000097d: DUP2
0000097e: MSTORE
0000097f: PUSH3 0x01000c
00000983: PUSH1 0x20
00000985: MSTORE
00000986: PUSH1 0x40
00000988: DUP2
00000989: KECCAK256
0000098a: DUP1
0000098b: SLOAD
0000098c: DUP5
0000098d: SWAP3
0000098e: SWAP1
0000098f: PUSH2 0x09ab
00000992: SWAP1
00000993: DUP5
00000994: SWAP1
00000995: PUSH16 0xffffffffffffffffffffffffffffffff
000009a6: AND
000009a7: PUSH2 0x5ab7
000009aa: JUMP
000009ab: JUMPDEST
000009ac: SWAP3
000009ad: POP
000009ae: PUSH2 0x0100
000009b1: EXP
000009b2: DUP2
000009b3: SLOAD
000009b4: DUP2
000009b5: PUSH16 0xffffffffffffffffffffffffffffffff
000009c6: MUL
000009c7: NOT
000009c8: AND
000009c9: SWAP1
000009ca: DUP4
000009cb: PUSH16 0xffffffffffffffffffffffffffffffff
000009dc: AND
000009dd: MUL
000009de: OR
000009df: SWAP1
000009e0: SSTORE
000009e1: POP
000009e2: JUMPDEST
000009e3: POP
000009e4: POP
000009e5: POP
000009e6: POP
000009e7: POP
000009e8: POP
000009e9: POP
000009ea: POP
000009eb: JUMP
000009ec: JUMPDEST
000009ed: PUSH1 0x60
000009ef: PUSH2 0x09f7
000009f2: DUP5
000009f3: PUSH2 0x0d90
000009f6: JUMP
000009f7: JUMPDEST
000009f8: PUSH1 0x00
000009fa: DUP1
000009fb: PUSH1 0x01
000009fd: DUP7
000009fe: PUSH2 0xffff
00000a01: AND
00000a02: PUSH3 0x010000
00000a06: DUP2
00000a07: LT
00000a08: PUSH2 0x0a13
00000a0b: JUMPI
00000a0c: PUSH2 0x0a13
00000a0f: PUSH2 0x58f0
00000a12: JUMP
00000a13: JUMPDEST
00000a14: ADD
00000a15: SLOAD
00000a16: PUSH1 0x40
00000a18: MLOAD
00000a19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a2e: SWAP1
00000a2f: SWAP2
00000a30: AND
00000a31: SWAP1
00000a32: PUSH2 0x0a41
00000a35: SWAP1
00000a36: DUP8
00000a37: SWAP1
00000a38: DUP8
00000a39: SWAP1
00000a3a: PUSH1 0x24
00000a3c: ADD
00000a3d: PUSH2 0x591f
00000a40: JUMP
00000a41: JUMPDEST
00000a42: PUSH1 0x40
00000a44: DUP1
00000a45: MLOAD
00000a46: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000a67: DUP2
00000a68: DUP5
00000a69: SUB
00000a6a: ADD
00000a6b: DUP2
00000a6c: MSTORE
00000a6d: SWAP2
00000a6e: DUP2
00000a6f: MSTORE
00000a70: PUSH1 0x20
00000a72: DUP3
00000a73: ADD
00000a74: DUP1
00000a75: MLOAD
00000a76: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000a93: AND
00000a94: PUSH32 0xb670198000000000000000000000000000000000000000000000000000000000
00000ab5: OR
00000ab6: SWAP1
00000ab7: MSTORE
00000ab8: MLOAD
00000ab9: PUSH2 0x06ef
00000abc: SWAP2
00000abd: SWAP1
00000abe: PUSH2 0x596c
00000ac1: JUMP
00000ac2: JUMPDEST
00000ac3: PUSH1 0x00
00000ac5: DUP1
00000ac6: PUSH1 0x00
00000ac8: PUSH2 0x0ad6
00000acb: DUP14
00000acc: DUP14
00000acd: DUP14
00000ace: DUP11
00000acf: DUP15
00000ad0: DUP15
00000ad1: DUP15
00000ad2: PUSH2 0x0f17
00000ad5: JUMP
00000ad6: JUMPDEST
00000ad7: SWAP1
00000ad8: POP
00000ad9: PUSH1 0x00
00000adb: PUSH2 0x0ae7
00000ade: DUP3
00000adf: DUP13
00000ae0: DUP13
00000ae1: DUP13
00000ae2: DUP12
00000ae3: PUSH2 0x0fb4
00000ae6: JUMP
00000ae7: JUMPDEST
00000ae8: DUP1
00000ae9: MLOAD
00000aea: PUSH1 0x20
00000aec: DUP3
00000aed: ADD
00000aee: MLOAD
00000aef: SWAP1
00000af0: SWAP6
00000af1: POP
00000af2: SWAP4
00000af3: POP
00000af4: SWAP1
00000af5: POP
00000af6: PUSH2 0x0b01
00000af9: DUP2
00000afa: DUP8
00000afb: DUP14
00000afc: DUP14
00000afd: PUSH2 0x102e
00000b00: JUMP
00000b01: JUMPDEST
00000b02: POP
00000b03: PUSH2 0x0b17
00000b06: DUP15
00000b07: DUP15
00000b08: DUP4
00000b09: PUSH1 0x00
00000b0b: ADD
00000b0c: MLOAD
00000b0d: DUP5
00000b0e: PUSH1 0x20
00000b10: ADD
00000b11: MLOAD
00000b12: DUP10
00000b13: PUSH2 0x10f3
00000b16: JUMP
00000b17: JUMPDEST
00000b18: PUSH2 0x0b22
00000b1b: DUP2
00000b1c: DUP16
00000b1d: DUP16
00000b1e: PUSH2 0x111c
00000b21: JUMP
00000b22: JUMPDEST
00000b23: POP
00000b24: POP
00000b25: SWAP11
00000b26: POP
00000b27: SWAP11
00000b28: SWAP9
00000b29: POP
00000b2a: POP
00000b2b: POP
00000b2c: POP
00000b2d: POP
00000b2e: POP
00000b2f: POP
00000b30: POP
00000b31: POP
00000b32: JUMP
00000b33: JUMPDEST
00000b34: PUSH1 0x00
00000b36: PUSH3 0x010010
00000b3a: PUSH1 0x00
00000b3c: PUSH2 0x0b46
00000b3f: DUP7
00000b40: DUP7
00000b41: DUP7
00000b42: PUSH2 0x1264
00000b45: JUMP
00000b46: JUMPDEST
00000b47: DUP2
00000b48: MSTORE
00000b49: PUSH1 0x20
00000b4b: DUP2
00000b4c: ADD
00000b4d: SWAP2
00000b4e: SWAP1
00000b4f: SWAP2
00000b50: MSTORE
00000b51: PUSH1 0x40
00000b53: ADD
00000b54: PUSH1 0x00
00000b56: KECCAK256
00000b57: DUP1
00000b58: SLOAD
00000b59: SWAP1
00000b5a: SWAP2
00000b5b: POP
00000b5c: PUSH4 0xffffffff
00000b61: PUSH21 0x010000000000000000000000000000000000000000
00000b77: SWAP1
00000b78: SWAP2
00000b79: DIV
00000b7a: DUP2
00000b7b: AND
00000b7c: LT
00000b7d: ISZERO
00000b7e: PUSH2 0x0bf7
00000b81: JUMPI
00000b82: DUP1
00000b83: SLOAD
00000b84: PUSH21 0x010000000000000000000000000000000000000000
00000b9a: SWAP1
00000b9b: DIV
00000b9c: PUSH4 0xffffffff
00000ba1: AND
00000ba2: PUSH2 0x0baa
00000ba5: JUMPI
00000ba6: PUSH1 0x00
00000ba8: DUP1
00000ba9: REVERT
00000baa: JUMPDEST
00000bab: DUP1
00000bac: SLOAD
00000bad: DUP2
00000bae: SWAP1
00000baf: PUSH1 0x14
00000bb1: SWAP1
00000bb2: PUSH2 0x0bd8
00000bb5: SWAP1
00000bb6: PUSH21 0x010000000000000000000000000000000000000000
00000bcc: SWAP1
00000bcd: DIV
00000bce: PUSH4 0xffffffff
00000bd3: AND
00000bd4: PUSH2 0x5ae0
00000bd7: JUMP
00000bd8: JUMPDEST
00000bd9: SWAP2
00000bda: SWAP1
00000bdb: PUSH2 0x0100
00000bde: EXP
00000bdf: DUP2
00000be0: SLOAD
00000be1: DUP2
00000be2: PUSH4 0xffffffff
00000be7: MUL
00000be8: NOT
00000be9: AND
00000bea: SWAP1
00000beb: DUP4
00000bec: PUSH4 0xffffffff
00000bf1: AND
00000bf2: MUL
00000bf3: OR
00000bf4: SWAP1
00000bf5: SSTORE
00000bf6: POP
00000bf7: JUMPDEST
00000bf8: POP
00000bf9: POP
00000bfa: POP
00000bfb: POP
00000bfc: JUMP
00000bfd: JUMPDEST
00000bfe: PUSH1 0x00
00000c00: DUP1
00000c01: DUP1
00000c02: DUP1
00000c03: PUSH2 0x0c0e
00000c06: DUP6
00000c07: DUP8
00000c08: ADD
00000c09: DUP8
00000c0a: PUSH2 0x5b1e
00000c0d: JUMP
00000c0e: JUMPDEST
00000c0f: SWAP3
00000c10: POP
00000c11: SWAP3
00000c12: POP
00000c13: SWAP3
00000c14: POP
00000c15: PUSH1 0x00
00000c17: PUSH2 0x0c1f
00000c1a: DUP9
00000c1b: PUSH2 0x12be
00000c1e: JUMP
00000c1f: JUMPDEST
00000c20: PUSH1 0x40
00000c22: DUP1
00000c23: MLOAD
00000c24: PUSH1 0x00
00000c26: DUP2
00000c27: MSTORE
00000c28: PUSH1 0x20
00000c2a: DUP2
00000c2b: ADD
00000c2c: DUP1
00000c2d: DUP4
00000c2e: MSTORE
00000c2f: DUP4
00000c30: SWAP1
00000c31: MSTORE
00000c32: PUSH1 0xff
00000c34: DUP8
00000c35: AND
00000c36: SWAP2
00000c37: DUP2
00000c38: ADD
00000c39: SWAP2
00000c3a: SWAP1
00000c3b: SWAP2
00000c3c: MSTORE
00000c3d: PUSH1 0x60
00000c3f: DUP2
00000c40: ADD
00000c41: DUP6
00000c42: SWAP1
00000c43: MSTORE
00000c44: PUSH1 0x80
00000c46: DUP2
00000c47: ADD
00000c48: DUP5
00000c49: SWAP1
00000c4a: MSTORE
00000c4b: SWAP1
00000c4c: SWAP2
00000c4d: POP
00000c4e: PUSH1 0x01
00000c50: SWAP1
00000c51: PUSH1 0xa0
00000c53: ADD
00000c54: PUSH1 0x20
00000c56: PUSH1 0x40
00000c58: MLOAD
00000c59: PUSH1 0x20
00000c5b: DUP2
00000c5c: SUB
00000c5d: SWAP1
00000c5e: DUP1
00000c5f: DUP5
00000c60: SUB
00000c61: SWAP1
00000c62: DUP6
00000c63: GAS
00000c64: STATICCALL
00000c65: ISZERO
00000c66: DUP1
00000c67: ISZERO
00000c68: PUSH2 0x0c75
00000c6b: JUMPI
00000c6c: RETURNDATASIZE
00000c6d: PUSH1 0x00
00000c6f: DUP1
00000c70: RETURNDATACOPY
00000c71: RETURNDATASIZE
00000c72: PUSH1 0x00
00000c74: REVERT
00000c75: JUMPDEST
00000c76: POP
00000c77: POP
00000c78: PUSH1 0x40
00000c7a: MLOAD
00000c7b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000c9c: ADD
00000c9d: MLOAD
00000c9e: SWAP6
00000c9f: POP
00000ca0: POP
00000ca1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cb6: DUP6
00000cb7: AND
00000cb8: PUSH2 0x0cc0
00000cbb: JUMPI
00000cbc: PUSH1 0x00
00000cbe: DUP1
00000cbf: REVERT
00000cc0: JUMPDEST
00000cc1: POP
00000cc2: POP
00000cc3: POP
00000cc4: POP
00000cc5: SWAP4
00000cc6: SWAP3
00000cc7: POP
00000cc8: POP
00000cc9: POP
00000cca: JUMP
00000ccb: JUMPDEST
00000ccc: PUSH1 0x00
00000cce: DUP1
00000ccf: PUSH1 0x00
00000cd1: DUP1
00000cd2: PUSH1 0x00
00000cd4: DUP6
00000cd5: DUP1
00000cd6: PUSH1 0x20
00000cd8: ADD
00000cd9: SWAP1
00000cda: MLOAD
00000cdb: DUP2
00000cdc: ADD
00000cdd: SWAP1
00000cde: PUSH2 0x0ce7
00000ce1: SWAP2
00000ce2: SWAP1
00000ce3: PUSH2 0x5b67
00000ce6: JUMP
00000ce7: JUMPDEST
00000ce8: SWAP5
00000ce9: POP
00000cea: SWAP5
00000ceb: POP
00000cec: SWAP5
00000ced: POP
00000cee: SWAP5
00000cef: POP
00000cf0: SWAP5
00000cf1: POP
00000cf2: DUP5
00000cf3: PUSH6 0xffffffffffff
00000cfa: AND
00000cfb: TIMESTAMP
00000cfc: GT
00000cfd: ISZERO
00000cfe: PUSH2 0x0d06
00000d01: JUMPI
00000d02: PUSH1 0x00
00000d04: DUP1
00000d05: REVERT
00000d06: JUMPDEST
00000d07: DUP4
00000d08: PUSH6 0xffffffffffff
00000d0f: AND
00000d10: TIMESTAMP
00000d11: LT
00000d12: ISZERO
00000d13: PUSH2 0x0d1b
00000d16: JUMPI
00000d17: PUSH1 0x00
00000d19: DUP1
00000d1a: REVERT
00000d1b: JUMPDEST
00000d1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d31: DUP2
00000d32: AND
00000d33: ISZERO
00000d34: DUP1
00000d35: PUSH2 0x0d53
00000d38: JUMPI
00000d39: POP
00000d3a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d4f: DUP2
00000d50: AND
00000d51: CALLER
00000d52: EQ
00000d53: JUMPDEST
00000d54: DUP1
00000d55: PUSH2 0x0d73
00000d58: JUMPI
00000d59: POP
00000d5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d6f: DUP2
00000d70: AND
00000d71: ORIGIN
00000d72: EQ
00000d73: JUMPDEST
00000d74: PUSH2 0x0d7c
00000d77: JUMPI
00000d78: PUSH1 0x00
00000d7a: DUP1
00000d7b: REVERT
00000d7c: JUMPDEST
00000d7d: PUSH2 0x0d87
00000d80: DUP8
00000d81: DUP5
00000d82: DUP5
00000d83: PUSH2 0x13cd
00000d86: JUMP
00000d87: JUMPDEST
00000d88: POP
00000d89: POP
00000d8a: POP
00000d8b: POP
00000d8c: POP
00000d8d: POP
00000d8e: POP
00000d8f: JUMP
00000d90: JUMPDEST
00000d91: PUSH1 0x00
00000d93: PUSH1 0x01
00000d95: PUSH2 0xffff
00000d98: DUP4
00000d99: AND
00000d9a: PUSH3 0x010000
00000d9e: DUP2
00000d9f: LT
00000da0: PUSH2 0x0dab
00000da3: JUMPI
00000da4: PUSH2 0x0dab
00000da7: PUSH2 0x58f0
00000daa: JUMP
00000dab: JUMPDEST
00000dac: ADD
00000dad: SLOAD
00000dae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dc3: AND
00000dc4: SUB
00000dc5: PUSH2 0x0dcd
00000dc8: JUMPI
00000dc9: PUSH1 0x00
00000dcb: DUP1
00000dcc: REVERT
00000dcd: JUMPDEST
00000dce: PUSH1 0x00
00000dd0: SLOAD
00000dd1: PUSH24 0x010000000000000000000000000000000000000000000000
00000dea: SWAP1
00000deb: DIV
00000dec: PUSH1 0xff
00000dee: AND
00000def: ISZERO
00000df0: DUP1
00000df1: PUSH2 0x0dff
00000df4: JUMPI
00000df5: POP
00000df6: PUSH2 0xffff
00000df9: DUP2
00000dfa: AND
00000dfb: PUSH2 0x270f
00000dfe: EQ
00000dff: JUMPDEST
00000e00: DUP1
00000e01: PUSH2 0x0e0c
00000e04: JUMPI
00000e05: POP
00000e06: PUSH2 0xffff
00000e09: DUP2
00000e0a: AND
00000e0b: ISZERO
00000e0c: JUMPDEST
00000e0d: PUSH2 0x0e15
00000e10: JUMPI
00000e11: PUSH1 0x00
00000e13: DUP1
00000e14: REVERT
00000e15: JUMPDEST
00000e16: POP
00000e17: JUMP
00000e18: JUMPDEST
00000e19: PUSH1 0x60
00000e1b: DUP3
00000e1c: ISZERO
00000e1d: PUSH2 0x0e27
00000e20: JUMPI
00000e21: POP
00000e22: DUP1
00000e23: PUSH2 0x0e37
00000e26: JUMP
00000e27: JUMPDEST
00000e28: DUP2
00000e29: MLOAD
00000e2a: ISZERO
00000e2b: PUSH2 0x0070
00000e2e: JUMPI
00000e2f: DUP2
00000e30: MLOAD
00000e31: DUP1
00000e32: DUP4
00000e33: PUSH1 0x20
00000e35: ADD
00000e36: REVERT
00000e37: JUMPDEST
00000e38: SWAP3
00000e39: SWAP2
00000e3a: POP
00000e3b: POP
00000e3c: JUMP
00000e3d: JUMPDEST
00000e3e: PUSH1 0x00
00000e40: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00000e61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e76: DUP4
00000e77: AND
00000e78: ADD
00000e79: PUSH2 0x0e83
00000e7c: JUMPI
00000e7d: CALLER
00000e7e: SWAP2
00000e7f: POP
00000e80: POP
00000e81: SWAP1
00000e82: JUMP
00000e83: JUMPDEST
00000e84: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00
00000ea5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000eba: DUP4
00000ebb: AND
00000ebc: ADD
00000ebd: PUSH2 0x0ec4
00000ec0: JUMPI
00000ec1: ORIGIN
00000ec2: SWAP2
00000ec3: POP
00000ec4: JUMPDEST
00000ec5: POP
00000ec6: SWAP1
00000ec7: JUMP
00000ec8: JUMPDEST
00000ec9: PUSH1 0x40
00000ecb: DUP1
00000ecc: MLOAD
00000ecd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ee2: DUP1
00000ee3: DUP6
00000ee4: AND
00000ee5: PUSH1 0x20
00000ee7: DUP4
00000ee8: ADD
00000ee9: MSTORE
00000eea: DUP4
00000eeb: AND
00000eec: SWAP2
00000eed: DUP2
00000eee: ADD
00000eef: SWAP2
00000ef0: SWAP1
00000ef1: SWAP2
00000ef2: MSTORE
00000ef3: PUSH1 0x00
00000ef5: SWAP1
00000ef6: PUSH1 0x60
00000ef8: ADD
00000ef9: JUMPDEST
00000efa: PUSH1 0x40
00000efc: MLOAD
00000efd: PUSH1 0x20
00000eff: DUP2
00000f00: DUP4
00000f01: SUB
00000f02: SUB
00000f03: DUP2
00000f04: MSTORE
00000f05: SWAP1
00000f06: PUSH1 0x40
00000f08: MSTORE
00000f09: DUP1
00000f0a: MLOAD
00000f0b: SWAP1
00000f0c: PUSH1 0x20
00000f0e: ADD
00000f0f: KECCAK256
00000f10: SWAP1
00000f11: POP
00000f12: SWAP3
00000f13: SWAP2
00000f14: POP
00000f15: POP
00000f16: JUMP
00000f17: JUMPDEST
00000f18: PUSH1 0x40
00000f1a: DUP1
00000f1b: MLOAD
00000f1c: PUSH2 0x0140
00000f1f: DUP2
00000f20: ADD
00000f21: DUP3
00000f22: MSTORE
00000f23: PUSH1 0x00
00000f25: PUSH1 0x60
00000f27: DUP3
00000f28: ADD
00000f29: DUP2
00000f2a: DUP2
00000f2b: MSTORE
00000f2c: PUSH1 0x80
00000f2e: DUP4
00000f2f: ADD
00000f30: DUP3
00000f31: SWAP1
00000f32: MSTORE
00000f33: PUSH1 0xa0
00000f35: DUP4
00000f36: ADD
00000f37: DUP3
00000f38: SWAP1
00000f39: MSTORE
00000f3a: PUSH1 0xc0
00000f3c: DUP4
00000f3d: ADD
00000f3e: DUP3
00000f3f: SWAP1
00000f40: MSTORE
00000f41: PUSH1 0xe0
00000f43: DUP4
00000f44: ADD
00000f45: DUP3
00000f46: SWAP1
00000f47: MSTORE
00000f48: PUSH2 0x0100
00000f4b: DUP4
00000f4c: ADD
00000f4d: DUP3
00000f4e: SWAP1
00000f4f: MSTORE
00000f50: PUSH2 0x0120
00000f53: DUP4
00000f54: ADD
00000f55: DUP3
00000f56: SWAP1
00000f57: MSTORE
00000f58: DUP3
00000f59: MSTORE
00000f5a: PUSH1 0x20
00000f5c: DUP3
00000f5d: ADD
00000f5e: DUP2
00000f5f: SWAP1
00000f60: MSTORE
00000f61: SWAP2
00000f62: DUP2
00000f63: ADD
00000f64: DUP3
00000f65: SWAP1
00000f66: MSTORE
00000f67: SWAP1
00000f68: PUSH2 0x0f72
00000f6b: DUP10
00000f6c: DUP10
00000f6d: DUP10
00000f6e: PUSH2 0x1446
00000f71: JUMP
00000f72: JUMPDEST
00000f73: SWAP1
00000f74: POP
00000f75: DUP1
00000f76: PUSH1 0x00
00000f78: ADD
00000f79: MLOAD
00000f7a: PUSH1 0x20
00000f7c: ADD
00000f7d: MLOAD
00000f7e: PUSH2 0xffff
00000f81: AND
00000f82: DUP7
00000f83: PUSH2 0xffff
00000f86: AND
00000f87: GT
00000f88: ISZERO
00000f89: PUSH2 0x0f9a
00000f8c: JUMPI
00000f8d: DUP1
00000f8e: MLOAD
00000f8f: PUSH2 0xffff
00000f92: DUP8
00000f93: AND
00000f94: PUSH1 0x20
00000f96: SWAP1
00000f97: SWAP2
00000f98: ADD
00000f99: MSTORE
00000f9a: JUMPDEST
00000f9b: PUSH2 0x0fa8
00000f9e: DUP2
00000f9f: DUP11
00000fa0: DUP11
00000fa1: DUP9
00000fa2: DUP9
00000fa3: DUP9
00000fa4: PUSH2 0x1516
00000fa7: JUMP
00000fa8: JUMPDEST
00000fa9: SWAP9
00000faa: SWAP8
00000fab: POP
00000fac: POP
00000fad: POP
00000fae: POP
00000faf: POP
00000fb0: POP
00000fb1: POP
00000fb2: POP
00000fb3: JUMP
00000fb4: JUMPDEST
00000fb5: PUSH1 0x40
00000fb7: DUP1
00000fb8: MLOAD
00000fb9: PUSH1 0x80
00000fbb: DUP1
00000fbc: DUP3
00000fbd: ADD
00000fbe: DUP4
00000fbf: MSTORE
00000fc0: PUSH1 0x00
00000fc2: DUP1
00000fc3: DUP4
00000fc4: MSTORE
00000fc5: PUSH1 0x20
00000fc7: DUP1
00000fc8: DUP5
00000fc9: ADD
00000fca: DUP3
00000fcb: SWAP1
00000fcc: MSTORE
00000fcd: DUP4
00000fce: DUP6
00000fcf: ADD
00000fd0: DUP3
00000fd1: SWAP1
00000fd2: MSTORE
00000fd3: PUSH1 0x60
00000fd5: DUP1
00000fd6: DUP6
00000fd7: ADD
00000fd8: DUP4
00000fd9: SWAP1
00000fda: MSTORE
00000fdb: DUP6
00000fdc: MLOAD
00000fdd: PUSH1 0xa0
00000fdf: DUP2
00000fe0: ADD
00000fe1: DUP8
00000fe2: MSTORE
00000fe3: SWAP6
00000fe4: DUP7
00000fe5: ADD
00000fe6: SWAP3
00000fe7: SWAP1
00000fe8: SWAP3
00000fe9: MSTORE
00000fea: DUP9
00000feb: ISZERO
00000fec: ISZERO
00000fed: DUP6
00000fee: MSTORE
00000fef: DUP8
00000ff0: ISZERO
00000ff1: ISZERO
00000ff2: SWAP1
00000ff3: DUP6
00000ff4: ADD
00000ff5: MSTORE
00000ff6: PUSH16 0xffffffffffffffffffffffffffffffff
00001007: DUP7
00001008: DUP2
00001009: AND
0000100a: SWAP2
0000100b: DUP6
0000100c: ADD
0000100d: SWAP2
0000100e: SWAP1
0000100f: SWAP2
00001010: MSTORE
00001011: DUP5
00001012: AND
00001013: SWAP1
00001014: DUP4
00001015: ADD
00001016: MSTORE
00001017: SWAP1
00001018: PUSH2 0x1021
0000101b: DUP2
0000101c: DUP9
0000101d: PUSH2 0x1637
00001020: JUMP
00001021: JUMPDEST
00001022: SWAP2
00001023: POP
00001024: POP
00001025: JUMPDEST
00001026: SWAP6
00001027: SWAP5
00001028: POP
00001029: POP
0000102a: POP
0000102b: POP
0000102c: POP
0000102d: JUMP
0000102e: JUMPDEST
0000102f: PUSH1 0x00
00001031: DUP2
00001032: PUSH2 0x103c
00001035: JUMPI
00001036: DUP5
00001037: MLOAD
00001038: PUSH2 0x1042
0000103b: JUMP
0000103c: JUMPDEST
0000103d: DUP5
0000103e: PUSH1 0x20
00001040: ADD
00001041: MLOAD
00001042: JUMPDEST
00001043: SWAP1
00001044: POP
00001045: DUP3
00001046: ISZERO
00001047: ISZERO
00001048: DUP3
00001049: ISZERO
0000104a: ISZERO
0000104b: EQ
0000104c: PUSH1 0x00
0000104e: DUP2
0000104f: PUSH2 0x1058
00001052: JUMPI
00001053: DUP6
00001054: PUSH2 0x1061
00001057: JUMP
00001058: JUMPDEST
00001059: PUSH2 0x1061
0000105c: DUP7
0000105d: PUSH2 0x5bd5
00001060: JUMP
00001061: JUMPDEST
00001062: SWAP1
00001063: POP
00001064: DUP1
00001065: PUSH1 0x0f
00001067: SIGNEXTEND
00001068: DUP4
00001069: PUSH1 0x0f
0000106b: SIGNEXTEND
0000106c: SGT
0000106d: ISZERO
0000106e: DUP1
0000106f: PUSH2 0x1088
00001072: JUMPI
00001073: POP
00001074: PUSH16 0xffffffffffffffffffffffffffffffff
00001085: DUP7
00001086: AND
00001087: ISZERO
00001088: JUMPDEST
00001089: PUSH2 0x0565
0000108c: JUMPI
0000108d: PUSH1 0x40
0000108f: MLOAD
00001090: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000010b1: DUP2
000010b2: MSTORE
000010b3: PUSH1 0x20
000010b5: PUSH1 0x04
000010b7: DUP3
000010b8: ADD
000010b9: MSTORE
000010ba: PUSH1 0x02
000010bc: PUSH1 0x24
000010be: DUP3
000010bf: ADD
000010c0: MSTORE
000010c1: PUSH32 0x534c000000000000000000000000000000000000000000000000000000000000
000010e2: PUSH1 0x44
000010e4: DUP3
000010e5: ADD
000010e6: MSTORE
000010e7: PUSH1 0x64
000010e9: ADD
000010ea: JUMPDEST
000010eb: PUSH1 0x40
000010ed: MLOAD
000010ee: DUP1
000010ef: SWAP2
000010f0: SUB
000010f1: SWAP1
000010f2: REVERT
000010f3: JUMPDEST
000010f4: PUSH1 0x00
000010f6: SLOAD
000010f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000110c: AND
0000110d: DUP1
0000110e: PUSH2 0x0d87
00001111: DUP2
00001112: DUP1
00001113: DUP10
00001114: DUP9
00001115: DUP11
00001116: DUP10
00001117: DUP10
00001118: PUSH2 0x177d
0000111b: JUMP
0000111c: JUMPDEST
0000111d: PUSH1 0x40
0000111f: DUP4
00001120: ADD
00001121: MLOAD
00001122: PUSH16 0xffffffffffffffffffffffffffffffff
00001133: AND
00001134: ISZERO
00001135: PUSH2 0x11be
00001138: JUMPI
00001139: PUSH1 0x40
0000113b: DUP1
0000113c: DUP5
0000113d: ADD
0000113e: MLOAD
0000113f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001154: DUP5
00001155: AND
00001156: PUSH1 0x00
00001158: SWAP1
00001159: DUP2
0000115a: MSTORE
0000115b: PUSH3 0x01000c
0000115f: PUSH1 0x20
00001161: MSTORE
00001162: SWAP2
00001163: DUP3
00001164: KECCAK256
00001165: DUP1
00001166: SLOAD
00001167: SWAP2
00001168: SWAP3
00001169: SWAP1
0000116a: SWAP2
0000116b: PUSH2 0x1187
0000116e: SWAP1
0000116f: DUP5
00001170: SWAP1
00001171: PUSH16 0xffffffffffffffffffffffffffffffff
00001182: AND
00001183: PUSH2 0x5ab7
00001186: JUMP
00001187: JUMPDEST
00001188: SWAP3
00001189: POP
0000118a: PUSH2 0x0100
0000118d: EXP
0000118e: DUP2
0000118f: SLOAD
00001190: DUP2
00001191: PUSH16 0xffffffffffffffffffffffffffffffff
000011a2: MUL
000011a3: NOT
000011a4: AND
000011a5: SWAP1
000011a6: DUP4
000011a7: PUSH16 0xffffffffffffffffffffffffffffffff
000011b8: AND
000011b9: MUL
000011ba: OR
000011bb: SWAP1
000011bc: SSTORE
000011bd: POP
000011be: JUMPDEST
000011bf: PUSH1 0x60
000011c1: DUP4
000011c2: ADD
000011c3: MLOAD
000011c4: PUSH16 0xffffffffffffffffffffffffffffffff
000011d5: AND
000011d6: ISZERO
000011d7: PUSH2 0x125f
000011da: JUMPI
000011db: PUSH1 0x60
000011dd: DUP4
000011de: ADD
000011df: MLOAD
000011e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011f5: DUP3
000011f6: AND
000011f7: PUSH1 0x00
000011f9: SWAP1
000011fa: DUP2
000011fb: MSTORE
000011fc: PUSH3 0x01000c
00001200: PUSH1 0x20
00001202: MSTORE
00001203: PUSH1 0x40
00001205: DUP2
00001206: KECCAK256
00001207: DUP1
00001208: SLOAD
00001209: SWAP1
0000120a: SWAP2
0000120b: SWAP1
0000120c: PUSH2 0x1228
0000120f: SWAP1
00001210: DUP5
00001211: SWAP1
00001212: PUSH16 0xffffffffffffffffffffffffffffffff
00001223: AND
00001224: PUSH2 0x5ab7
00001227: JUMP
00001228: JUMPDEST
00001229: SWAP3
0000122a: POP
0000122b: PUSH2 0x0100
0000122e: EXP
0000122f: DUP2
00001230: SLOAD
00001231: DUP2
00001232: PUSH16 0xffffffffffffffffffffffffffffffff
00001243: MUL
00001244: NOT
00001245: AND
00001246: SWAP1
00001247: DUP4
00001248: PUSH16 0xffffffffffffffffffffffffffffffff
00001259: AND
0000125a: MUL
0000125b: OR
0000125c: SWAP1
0000125d: SSTORE
0000125e: POP
0000125f: JUMPDEST
00001260: POP
00001261: POP
00001262: POP
00001263: JUMP
00001264: JUMPDEST
00001265: PUSH1 0x40
00001267: DUP1
00001268: MLOAD
00001269: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000127e: DUP1
0000127f: DUP7
00001280: AND
00001281: PUSH1 0x20
00001283: DUP4
00001284: ADD
00001285: MSTORE
00001286: DUP5
00001287: AND
00001288: SWAP2
00001289: DUP2
0000128a: ADD
0000128b: SWAP2
0000128c: SWAP1
0000128d: SWAP2
0000128e: MSTORE
0000128f: PUSH2 0xffff
00001292: DUP3
00001293: AND
00001294: PUSH1 0x60
00001296: DUP3
00001297: ADD
00001298: MSTORE
00001299: PUSH1 0x00
0000129b: SWAP1
0000129c: PUSH1 0x80
0000129e: ADD
0000129f: JUMPDEST
000012a0: PUSH1 0x40
000012a2: MLOAD
000012a3: PUSH1 0x20
000012a5: DUP2
000012a6: DUP4
000012a7: SUB
000012a8: SUB
000012a9: DUP2
000012aa: MSTORE
000012ab: SWAP1
000012ac: PUSH1 0x40
000012ae: MSTORE
000012af: DUP1
000012b0: MLOAD
000012b1: SWAP1
000012b2: PUSH1 0x20
000012b4: ADD
000012b5: KECCAK256
000012b6: SWAP1
000012b7: POP
000012b8: SWAP4
000012b9: SWAP3
000012ba: POP
000012bb: POP
000012bc: POP
000012bd: JUMP
000012be: JUMPDEST
000012bf: PUSH1 0x00
000012c1: DUP1
000012c2: PUSH2 0x12ca
000012c5: DUP4
000012c6: PUSH2 0x17d2
000012c9: JUMP
000012ca: JUMPDEST
000012cb: SWAP1
000012cc: POP
000012cd: PUSH2 0x1374
000012d0: PUSH1 0x40
000012d2: DUP1
000012d3: MLOAD
000012d4: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
000012f5: PUSH1 0x20
000012f7: DUP3
000012f8: ADD
000012f9: MSTORE
000012fa: PUSH32 0x33dd648f3c5d475752f4dfbf3ab10305e18604abf30961145f1889ec2e867563
0000131b: SWAP2
0000131c: DUP2
0000131d: ADD
0000131e: SWAP2
0000131f: SWAP1
00001320: SWAP2
00001321: MSTORE
00001322: PUSH32 0xe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b3
00001343: PUSH1 0x60
00001345: DUP3
00001346: ADD
00001347: MSTORE
00001348: CHAINID
00001349: PUSH1 0x80
0000134b: DUP3
0000134c: ADD
0000134d: MSTORE
0000134e: ADDRESS
0000134f: PUSH1 0xa0
00001351: DUP3
00001352: ADD
00001353: MSTORE
00001354: PUSH1 0x00
00001356: SWAP1
00001357: PUSH1 0xc0
00001359: ADD
0000135a: PUSH1 0x40
0000135c: MLOAD
0000135d: PUSH1 0x20
0000135f: DUP2
00001360: DUP4
00001361: SUB
00001362: SUB
00001363: DUP2
00001364: MSTORE
00001365: SWAP1
00001366: PUSH1 0x40
00001368: MSTORE
00001369: DUP1
0000136a: MLOAD
0000136b: SWAP1
0000136c: PUSH1 0x20
0000136e: ADD
0000136f: KECCAK256
00001370: SWAP1
00001371: POP
00001372: SWAP1
00001373: JUMP
00001374: JUMPDEST
00001375: PUSH1 0x40
00001377: MLOAD
00001378: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000
00001399: PUSH1 0x20
0000139b: DUP3
0000139c: ADD
0000139d: MSTORE
0000139e: PUSH1 0x22
000013a0: DUP2
000013a1: ADD
000013a2: SWAP2
000013a3: SWAP1
000013a4: SWAP2
000013a5: MSTORE
000013a6: PUSH1 0x42
000013a8: DUP2
000013a9: ADD
000013aa: DUP3
000013ab: SWAP1
000013ac: MSTORE
000013ad: PUSH1 0x62
000013af: ADD
000013b0: PUSH1 0x40
000013b2: MLOAD
000013b3: PUSH1 0x20
000013b5: DUP2
000013b6: DUP4
000013b7: SUB
000013b8: SUB
000013b9: DUP2
000013ba: MSTORE
000013bb: SWAP1
000013bc: PUSH1 0x40
000013be: MSTORE
000013bf: DUP1
000013c0: MLOAD
000013c1: SWAP1
000013c2: PUSH1 0x20
000013c4: ADD
000013c5: KECCAK256
000013c6: SWAP2
000013c7: POP
000013c8: POP
000013c9: SWAP2
000013ca: SWAP1
000013cb: POP
000013cc: JUMP
000013cd: JUMPDEST
000013ce: PUSH1 0x00
000013d0: PUSH3 0x010010
000013d4: PUSH1 0x00
000013d6: PUSH2 0x13df
000013d9: DUP7
000013da: DUP7
000013db: PUSH2 0x1871
000013de: JUMP
000013df: JUMPDEST
000013e0: DUP2
000013e1: MSTORE
000013e2: PUSH1 0x20
000013e4: DUP2
000013e5: ADD
000013e6: SWAP2
000013e7: SWAP1
000013e8: SWAP2
000013e9: MSTORE
000013ea: PUSH1 0x40
000013ec: ADD
000013ed: PUSH1 0x00
000013ef: KECCAK256
000013f0: DUP1
000013f1: SLOAD
000013f2: SWAP1
000013f3: SWAP2
000013f4: POP
000013f5: PUSH4 0xffffffff
000013fa: DUP4
000013fb: DUP2
000013fc: AND
000013fd: PUSH17 0x0100000000000000000000000000000000
0000140f: SWAP1
00001410: SWAP3
00001411: DIV
00001412: AND
00001413: EQ
00001414: PUSH2 0x141c
00001417: JUMPI
00001418: PUSH1 0x00
0000141a: DUP1
0000141b: REVERT
0000141c: JUMPDEST
0000141d: DUP1
0000141e: SLOAD
0000141f: DUP2
00001420: SWAP1
00001421: PUSH1 0x10
00001423: SWAP1
00001424: PUSH2 0x0bd8
00001427: SWAP1
00001428: PUSH17 0x0100000000000000000000000000000000
0000143a: SWAP1
0000143b: DIV
0000143c: PUSH4 0xffffffff
00001441: AND
00001442: PUSH2 0x5c13
00001445: JUMP
00001446: JUMPDEST
00001447: PUSH1 0x40
00001449: DUP1
0000144a: MLOAD
0000144b: PUSH2 0x0140
0000144e: DUP2
0000144f: ADD
00001450: DUP3
00001451: MSTORE
00001452: PUSH1 0x00
00001454: PUSH1 0x60
00001456: DUP3
00001457: ADD
00001458: DUP2
00001459: DUP2
0000145a: MSTORE
0000145b: PUSH1 0x80
0000145d: DUP4
0000145e: ADD
0000145f: DUP3
00001460: SWAP1
00001461: MSTORE
00001462: PUSH1 0xa0
00001464: DUP4
00001465: ADD
00001466: DUP3
00001467: SWAP1
00001468: MSTORE
00001469: PUSH1 0xc0
0000146b: DUP4
0000146c: ADD
0000146d: DUP3
0000146e: SWAP1
0000146f: MSTORE
00001470: PUSH1 0xe0
00001472: DUP4
00001473: ADD
00001474: DUP3
00001475: SWAP1
00001476: MSTORE
00001477: PUSH2 0x0100
0000147a: DUP4
0000147b: ADD
0000147c: DUP3
0000147d: SWAP1
0000147e: MSTORE
0000147f: PUSH2 0x0120
00001482: DUP4
00001483: ADD
00001484: DUP3
00001485: SWAP1
00001486: MSTORE
00001487: DUP3
00001488: MSTORE
00001489: PUSH1 0x20
0000148b: DUP3
0000148c: ADD
0000148d: DUP2
0000148e: SWAP1
0000148f: MSTORE
00001490: SWAP2
00001491: DUP2
00001492: ADD
00001493: SWAP2
00001494: SWAP1
00001495: SWAP2
00001496: MSTORE
00001497: PUSH2 0x14a5
0000149a: PUSH3 0x010009
0000149e: DUP6
0000149f: DUP6
000014a0: DUP6
000014a1: PUSH2 0x18a2
000014a4: JUMP
000014a5: JUMPDEST
000014a6: SWAP1
000014a7: POP
000014a8: PUSH2 0x14b0
000014ab: DUP2
000014ac: PUSH2 0x19d3
000014af: JUMP
000014b0: JUMPDEST
000014b1: PUSH2 0x05f5
000014b4: JUMPI
000014b5: PUSH1 0x40
000014b7: MLOAD
000014b8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000014d9: DUP2
000014da: MSTORE
000014db: PUSH1 0x20
000014dd: PUSH1 0x04
000014df: DUP3
000014e0: ADD
000014e1: MSTORE
000014e2: PUSH1 0x02
000014e4: PUSH1 0x24
000014e6: DUP3
000014e7: ADD
000014e8: MSTORE
000014e9: PUSH32 0x5049000000000000000000000000000000000000000000000000000000000000
0000150a: PUSH1 0x44
0000150c: DUP3
0000150d: ADD
0000150e: MSTORE
0000150f: PUSH1 0x64
00001511: ADD
00001512: PUSH2 0x10ea
00001515: JUMP
00001516: JUMPDEST
00001517: PUSH1 0x40
00001519: DUP7
0000151a: ADD
0000151b: MLOAD
0000151c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001531: AND
00001532: ISZERO
00001533: PUSH2 0x162f
00001536: JUMPI
00001537: PUSH1 0x40
00001539: DUP7
0000153a: DUP2
0000153b: ADD
0000153c: MLOAD
0000153d: PUSH1 0x00
0000153f: DUP1
00001540: SLOAD
00001541: DUP10
00001542: MLOAD
00001543: PUSH1 0x20
00001545: ADD
00001546: MLOAD
00001547: SWAP4
00001548: MLOAD
00001549: PUSH32 0x4e56bd3800000000000000000000000000000000000000000000000000000000
0000156a: DUP2
0000156b: MSTORE
0000156c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001581: SWAP2
00001582: DUP3
00001583: AND
00001584: PUSH1 0x04
00001586: DUP3
00001587: ADD
00001588: MSTORE
00001589: CALLER
0000158a: PUSH1 0x24
0000158c: DUP3
0000158d: ADD
0000158e: MSTORE
0000158f: DUP10
00001590: DUP3
00001591: AND
00001592: PUSH1 0x44
00001594: DUP3
00001595: ADD
00001596: MSTORE
00001597: DUP9
00001598: DUP3
00001599: AND
0000159a: PUSH1 0x64
0000159c: DUP3
0000159d: ADD
0000159e: MSTORE
0000159f: DUP8
000015a0: ISZERO
000015a1: ISZERO
000015a2: PUSH1 0x84
000015a4: DUP3
000015a5: ADD
000015a6: MSTORE
000015a7: DUP7
000015a8: ISZERO
000015a9: ISZERO
000015aa: PUSH1 0xa4
000015ac: DUP3
000015ad: ADD
000015ae: MSTORE
000015af: PUSH16 0xffffffffffffffffffffffffffffffff
000015c0: DUP7
000015c1: AND
000015c2: PUSH1 0xc4
000015c4: DUP3
000015c5: ADD
000015c6: MSTORE
000015c7: PUSH2 0xffff
000015ca: SWAP1
000015cb: SWAP5
000015cc: AND
000015cd: PUSH1 0xe4
000015cf: DUP6
000015d0: ADD
000015d1: MSTORE
000015d2: SWAP1
000015d3: SWAP3
000015d4: SWAP2
000015d5: AND
000015d6: SWAP1
000015d7: PUSH4 0x4e56bd38
000015dc: SWAP1
000015dd: PUSH2 0x0104
000015e0: ADD
000015e1: PUSH1 0x20
000015e3: PUSH1 0x40
000015e5: MLOAD
000015e6: DUP1
000015e7: DUP4
000015e8: SUB
000015e9: DUP2
000015ea: PUSH1 0x00
000015ec: DUP8
000015ed: GAS
000015ee: CALL
000015ef: ISZERO
000015f0: DUP1
000015f1: ISZERO
000015f2: PUSH2 0x15ff
000015f5: JUMPI
000015f6: RETURNDATASIZE
000015f7: PUSH1 0x00
000015f9: DUP1
000015fa: RETURNDATACOPY
000015fb: RETURNDATASIZE
000015fc: PUSH1 0x00
000015fe: REVERT
000015ff: JUMPDEST
00001600: POP
00001601: POP
00001602: POP
00001603: POP
00001604: PUSH1 0x40
00001606: MLOAD
00001607: RETURNDATASIZE
00001608: PUSH1 0x1f
0000160a: NOT
0000160b: PUSH1 0x1f
0000160d: DUP3
0000160e: ADD
0000160f: AND
00001610: DUP3
00001611: ADD
00001612: DUP1
00001613: PUSH1 0x40
00001615: MSTORE
00001616: POP
00001617: DUP2
00001618: ADD
00001619: SWAP1
0000161a: PUSH2 0x1623
0000161d: SWAP2
0000161e: SWAP1
0000161f: PUSH2 0x5c36
00001622: JUMP
00001623: JUMPDEST
00001624: SWAP1
00001625: POP
00001626: PUSH2 0x0d87
00001629: DUP8
0000162a: DUP3
0000162b: PUSH2 0x1a54
0000162e: JUMP
0000162f: JUMPDEST
00001630: POP
00001631: POP
00001632: POP
00001633: POP
00001634: POP
00001635: POP
00001636: JUMP
00001637: JUMPDEST
00001638: PUSH1 0x40
0000163a: DUP1
0000163b: MLOAD
0000163c: PUSH1 0x80
0000163e: DUP2
0000163f: ADD
00001640: DUP3
00001641: MSTORE
00001642: PUSH1 0x00
00001644: DUP1
00001645: DUP3
00001646: MSTORE
00001647: PUSH1 0x20
00001649: DUP3
0000164a: ADD
0000164b: DUP2
0000164c: SWAP1
0000164d: MSTORE
0000164e: SWAP2
0000164f: DUP2
00001650: ADD
00001651: DUP3
00001652: SWAP1
00001653: MSTORE
00001654: PUSH1 0x60
00001656: DUP2
00001657: ADD
00001658: SWAP2
00001659: SWAP1
0000165a: SWAP2
0000165b: MSTORE
0000165c: PUSH1 0x00
0000165e: PUSH2 0x166a
00001661: DUP4
00001662: PUSH1 0x20
00001664: ADD
00001665: MLOAD
00001666: PUSH2 0x1ae9
00001669: JUMP
0000166a: JUMPDEST
0000166b: SWAP1
0000166c: POP
0000166d: PUSH2 0x1697
00001670: DUP3
00001671: DUP3
00001672: PUSH2 0x1690
00001675: DUP5
00001676: PUSH1 0x00
00001678: ADD
00001679: MLOAD
0000167a: PUSH16 0xffffffffffffffffffffffffffffffff
0000168b: AND
0000168c: PUSH2 0x1bbe
0000168f: JUMP
00001690: JUMPDEST
00001691: DUP8
00001692: DUP8
00001693: PUSH2 0x1f11
00001696: JUMP
00001697: JUMPDEST
00001698: PUSH1 0x20
0000169a: DUP1
0000169b: DUP5
0000169c: ADD
0000169d: MLOAD
0000169e: PUSH1 0x00
000016a0: SWAP1
000016a1: DUP2
000016a2: MSTORE
000016a3: PUSH3 0x01000f
000016a7: DUP3
000016a8: MSTORE
000016a9: PUSH1 0x40
000016ab: SWAP1
000016ac: DUP2
000016ad: SWAP1
000016ae: KECCAK256
000016af: DUP4
000016b0: MLOAD
000016b1: SWAP3
000016b2: DUP5
000016b3: ADD
000016b4: MLOAD
000016b5: PUSH16 0xffffffffffffffffffffffffffffffff
000016c6: SWAP4
000016c7: DUP5
000016c8: AND
000016c9: PUSH17 0x0100000000000000000000000000000000
000016db: SWAP2
000016dc: DUP6
000016dd: AND
000016de: DUP3
000016df: MUL
000016e0: OR
000016e1: DUP3
000016e2: SSTORE
000016e3: SWAP2
000016e4: DUP5
000016e5: ADD
000016e6: MLOAD
000016e7: PUSH1 0x01
000016e9: SWAP1
000016ea: SWAP2
000016eb: ADD
000016ec: DUP1
000016ed: SLOAD
000016ee: PUSH1 0x60
000016f0: DUP7
000016f1: ADD
000016f2: MLOAD
000016f3: PUSH1 0x80
000016f5: DUP8
000016f6: ADD
000016f7: MLOAD
000016f8: SWAP4
000016f9: SWAP1
000016fa: SWAP6
000016fb: AND
000016fc: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000171d: SWAP1
0000171e: SWAP2
0000171f: AND
00001720: OR
00001721: PUSH8 0xffffffffffffffff
0000172a: SWAP5
0000172b: DUP6
0000172c: AND
0000172d: SWAP1
0000172e: SWAP4
0000172f: MUL
00001730: SWAP3
00001731: SWAP1
00001732: SWAP3
00001733: OR
00001734: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff
0000174d: AND
0000174e: PUSH25 0x01000000000000000000000000000000000000000000000000
00001768: SWAP4
00001769: SWAP1
0000176a: SWAP2
0000176b: AND
0000176c: SWAP3
0000176d: SWAP1
0000176e: SWAP3
0000176f: MUL
00001770: SWAP2
00001771: SWAP1
00001772: SWAP2
00001773: OR
00001774: SWAP1
00001775: SSTORE
00001776: JUMPDEST
00001777: POP
00001778: SWAP3
00001779: SWAP2
0000177a: POP
0000177b: POP
0000177c: JUMP
0000177d: JUMPDEST
0000177e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001793: DUP6
00001794: AND
00001795: PUSH2 0x17ae
00001798: JUMPI
00001799: PUSH2 0x17a9
0000179c: DUP8
0000179d: DUP8
0000179e: DUP7
0000179f: PUSH1 0x01
000017a1: DUP6
000017a2: AND
000017a3: ISZERO
000017a4: ISZERO
000017a5: PUSH2 0x209b
000017a8: JUMP
000017a9: JUMPDEST
000017aa: PUSH2 0x17c0
000017ad: JUMP
000017ae: JUMPDEST
000017af: PUSH2 0x17c0
000017b2: DUP8
000017b3: DUP8
000017b4: DUP7
000017b5: DUP9
000017b6: PUSH1 0x01
000017b8: DUP7
000017b9: AND
000017ba: ISZERO
000017bb: ISZERO
000017bc: PUSH2 0x20d0
000017bf: JUMP
000017c0: JUMPDEST
000017c1: PUSH2 0x0d87
000017c4: DUP8
000017c5: DUP8
000017c6: DUP5
000017c7: DUP7
000017c8: PUSH1 0x02
000017ca: DUP7
000017cb: AND
000017cc: ISZERO
000017cd: ISZERO
000017ce: PUSH2 0x20d0
000017d1: JUMP
000017d2: JUMPDEST
000017d3: PUSH1 0x00
000017d5: PUSH32 0xb7268d49bb01bc5e690da8069036b0caa17476a23af017f9840ccc0fc5ca01b7
000017f6: DUP3
000017f7: PUSH1 0x00
000017f9: ADD
000017fa: MLOAD
000017fb: DUP4
000017fc: PUSH1 0x20
000017fe: ADD
000017ff: MLOAD
00001800: DUP1
00001801: MLOAD
00001802: SWAP1
00001803: PUSH1 0x20
00001805: ADD
00001806: KECCAK256
00001807: DUP5
00001808: PUSH1 0x40
0000180a: ADD
0000180b: MLOAD
0000180c: DUP1
0000180d: MLOAD
0000180e: SWAP1
0000180f: PUSH1 0x20
00001811: ADD
00001812: KECCAK256
00001813: DUP6
00001814: PUSH1 0x60
00001816: ADD
00001817: MLOAD
00001818: DUP1
00001819: MLOAD
0000181a: SWAP1
0000181b: PUSH1 0x20
0000181d: ADD
0000181e: KECCAK256
0000181f: PUSH1 0x40
00001821: MLOAD
00001822: PUSH1 0x20
00001824: ADD
00001825: PUSH2 0x1854
00001828: SWAP6
00001829: SWAP5
0000182a: SWAP4
0000182b: SWAP3
0000182c: SWAP2
0000182d: SWAP1
0000182e: SWAP5
0000182f: DUP6
00001830: MSTORE
00001831: PUSH2 0xffff
00001834: SWAP4
00001835: SWAP1
00001836: SWAP4
00001837: AND
00001838: PUSH1 0x20
0000183a: DUP6
0000183b: ADD
0000183c: MSTORE
0000183d: PUSH1 0x40
0000183f: DUP5
00001840: ADD
00001841: SWAP2
00001842: SWAP1
00001843: SWAP2
00001844: MSTORE
00001845: PUSH1 0x60
00001847: DUP4
00001848: ADD
00001849: MSTORE
0000184a: PUSH1 0x80
0000184c: DUP3
0000184d: ADD
0000184e: MSTORE
0000184f: PUSH1 0xa0
00001851: ADD
00001852: SWAP1
00001853: JUMP
00001854: JUMPDEST
00001855: PUSH1 0x40
00001857: MLOAD
00001858: PUSH1 0x20
0000185a: DUP2
0000185b: DUP4
0000185c: SUB
0000185d: SUB
0000185e: DUP2
0000185f: MSTORE
00001860: SWAP1
00001861: PUSH1 0x40
00001863: MSTORE
00001864: DUP1
00001865: MLOAD
00001866: SWAP1
00001867: PUSH1 0x20
00001869: ADD
0000186a: KECCAK256
0000186b: SWAP1
0000186c: POP
0000186d: SWAP2
0000186e: SWAP1
0000186f: POP
00001870: JUMP
00001871: JUMPDEST
00001872: PUSH1 0x40
00001874: DUP1
00001875: MLOAD
00001876: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000188b: DUP5
0000188c: AND
0000188d: PUSH1 0x20
0000188f: DUP3
00001890: ADD
00001891: MSTORE
00001892: SWAP1
00001893: DUP2
00001894: ADD
00001895: DUP3
00001896: SWAP1
00001897: MSTORE
00001898: PUSH1 0x00
0000189a: SWAP1
0000189b: PUSH1 0x60
0000189d: ADD
0000189e: PUSH2 0x0ef9
000018a1: JUMP
000018a2: JUMPDEST
000018a3: PUSH1 0x40
000018a5: DUP1
000018a6: MLOAD
000018a7: PUSH2 0x0140
000018aa: DUP2
000018ab: ADD
000018ac: DUP3
000018ad: MSTORE
000018ae: PUSH1 0x00
000018b0: PUSH1 0x60
000018b2: DUP3
000018b3: ADD
000018b4: DUP2
000018b5: DUP2
000018b6: MSTORE
000018b7: PUSH1 0x80
000018b9: DUP4
000018ba: ADD
000018bb: DUP3
000018bc: SWAP1
000018bd: MSTORE
000018be: PUSH1 0xa0
000018c0: DUP4
000018c1: ADD
000018c2: DUP3
000018c3: SWAP1
000018c4: MSTORE
000018c5: PUSH1 0xc0
000018c7: DUP4
000018c8: ADD
000018c9: DUP3
000018ca: SWAP1
000018cb: MSTORE
000018cc: PUSH1 0xe0
000018ce: DUP4
000018cf: ADD
000018d0: DUP3
000018d1: SWAP1
000018d2: MSTORE
000018d3: PUSH2 0x0100
000018d6: DUP4
000018d7: ADD
000018d8: DUP3
000018d9: SWAP1
000018da: MSTORE
000018db: PUSH2 0x0120
000018de: DUP4
000018df: ADD
000018e0: DUP3
000018e1: SWAP1
000018e2: MSTORE
000018e3: DUP3
000018e4: MSTORE
000018e5: PUSH1 0x20
000018e7: DUP3
000018e8: ADD
000018e9: DUP2
000018ea: SWAP1
000018eb: MSTORE
000018ec: SWAP2
000018ed: DUP2
000018ee: ADD
000018ef: DUP3
000018f0: SWAP1
000018f1: MSTORE
000018f2: SWAP1
000018f3: PUSH2 0x18fd
000018f6: DUP6
000018f7: DUP6
000018f8: DUP6
000018f9: PUSH2 0x2100
000018fc: JUMP
000018fd: JUMPDEST
000018fe: PUSH1 0x00
00001900: DUP2
00001901: DUP2
00001902: MSTORE
00001903: PUSH1 0x20
00001905: DUP9
00001906: DUP2
00001907: MSTORE
00001908: PUSH1 0x40
0000190a: DUP1
0000190b: DUP4
0000190c: KECCAK256
0000190d: DUP2
0000190e: MLOAD
0000190f: PUSH1 0xe0
00001911: DUP2
00001912: ADD
00001913: DUP4
00001914: MSTORE
00001915: SWAP1
00001916: SLOAD
00001917: PUSH1 0xff
00001919: DUP1
0000191a: DUP3
0000191b: AND
0000191c: DUP4
0000191d: MSTORE
0000191e: PUSH2 0xffff
00001921: PUSH2 0x0100
00001924: DUP4
00001925: DIV
00001926: DUP2
00001927: AND
00001928: SWAP6
00001929: DUP5
0000192a: ADD
0000192b: SWAP6
0000192c: SWAP1
0000192d: SWAP6
0000192e: MSTORE
0000192f: PUSH4 0x01000000
00001934: DUP3
00001935: DIV
00001936: DUP2
00001937: AND
00001938: SWAP4
00001939: DUP4
0000193a: ADD
0000193b: SWAP4
0000193c: SWAP1
0000193d: SWAP4
0000193e: MSTORE
0000193f: PUSH5 0x0100000000
00001945: DUP2
00001946: DIV
00001947: SWAP1
00001948: SWAP4
00001949: AND
0000194a: PUSH1 0x60
0000194c: DUP3
0000194d: ADD
0000194e: MSTORE
0000194f: PUSH7 0x01000000000000
00001957: DUP4
00001958: DIV
00001959: DUP3
0000195a: AND
0000195b: PUSH1 0x80
0000195d: DUP3
0000195e: ADD
0000195f: MSTORE
00001960: PUSH8 0x0100000000000000
00001969: DUP4
0000196a: DIV
0000196b: DUP3
0000196c: AND
0000196d: PUSH1 0xa0
0000196f: DUP3
00001970: ADD
00001971: MSTORE
00001972: PUSH9 0x010000000000000000
0000197c: SWAP1
0000197d: SWAP3
0000197e: DIV
0000197f: AND
00001980: PUSH1 0xc0
00001982: DUP3
00001983: ADD
00001984: DUP2
00001985: SWAP1
00001986: MSTORE
00001987: SWAP3
00001988: SWAP4
00001989: POP
0000198a: SWAP2
0000198b: PUSH2 0x1995
0000198e: SWAP1
0000198f: DUP7
00001990: SWAP1
00001991: PUSH2 0x2173
00001994: JUMP
00001995: JUMPDEST
00001996: PUSH1 0x40
00001998: DUP1
00001999: MLOAD
0000199a: PUSH1 0x60
0000199c: DUP2
0000199d: ADD
0000199e: DUP3
0000199f: MSTORE
000019a0: SWAP4
000019a1: DUP5
000019a2: MSTORE
000019a3: PUSH1 0x20
000019a5: DUP5
000019a6: ADD
000019a7: SWAP5
000019a8: SWAP1
000019a9: SWAP5
000019aa: MSTORE
000019ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019c0: AND
000019c1: SWAP3
000019c2: DUP3
000019c3: ADD
000019c4: SWAP3
000019c5: SWAP1
000019c6: SWAP3
000019c7: MSTORE
000019c8: SWAP2
000019c9: POP
000019ca: POP
000019cb: JUMPDEST
000019cc: SWAP5
000019cd: SWAP4
000019ce: POP
000019cf: POP
000019d0: POP
000019d1: POP
000019d2: JUMP
000019d3: JUMPDEST
000019d4: DUP1
000019d5: MLOAD
000019d6: MLOAD
000019d7: PUSH1 0x00
000019d9: SWAP1
000019da: PUSH1 0x01
000019dc: PUSH1 0xff
000019de: SWAP1
000019df: SWAP2
000019e0: AND
000019e1: GT
000019e2: ISZERO
000019e3: PUSH2 0x1a48
000019e6: JUMPI
000019e7: PUSH1 0x40
000019e9: MLOAD
000019ea: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001a0b: DUP2
00001a0c: MSTORE
00001a0d: PUSH1 0x20
00001a0f: PUSH1 0x04
00001a11: DUP3
00001a12: ADD
00001a13: MSTORE
00001a14: PUSH1 0x03
00001a16: PUSH1 0x24
00001a18: DUP3
00001a19: ADD
00001a1a: MSTORE
00001a1b: PUSH32 0x4950530000000000000000000000000000000000000000000000000000000000
00001a3c: PUSH1 0x44
00001a3e: DUP3
00001a3f: ADD
00001a40: MSTORE
00001a41: PUSH1 0x64
00001a43: ADD
00001a44: PUSH2 0x10ea
00001a47: JUMP
00001a48: JUMPDEST
00001a49: POP
00001a4a: MLOAD
00001a4b: MLOAD
00001a4c: PUSH1 0xff
00001a4e: AND
00001a4f: PUSH1 0x01
00001a51: EQ
00001a52: SWAP1
00001a53: JUMP
00001a54: JUMPDEST
00001a55: PUSH1 0x01
00001a57: PUSH2 0xffff
00001a5a: DUP3
00001a5b: AND
00001a5c: PUSH2 0x1ac1
00001a5f: JUMPI
00001a60: PUSH1 0x40
00001a62: MLOAD
00001a63: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001a84: DUP2
00001a85: MSTORE
00001a86: PUSH1 0x20
00001a88: PUSH1 0x04
00001a8a: DUP3
00001a8b: ADD
00001a8c: MSTORE
00001a8d: PUSH1 0x01
00001a8f: PUSH1 0x24
00001a91: DUP3
00001a92: ADD
00001a93: MSTORE
00001a94: PUSH32 0x5a00000000000000000000000000000000000000000000000000000000000000
00001ab5: PUSH1 0x44
00001ab7: DUP3
00001ab8: ADD
00001ab9: MSTORE
00001aba: PUSH1 0x64
00001abc: ADD
00001abd: PUSH2 0x10ea
00001ac0: JUMP
00001ac1: JUMPDEST
00001ac2: PUSH2 0x1acb
00001ac5: DUP2
00001ac6: DUP4
00001ac7: PUSH2 0x5c53
00001aca: JUMP
00001acb: JUMPDEST
00001acc: DUP4
00001acd: MLOAD
00001ace: PUSH1 0x20
00001ad0: ADD
00001ad1: DUP1
00001ad2: MLOAD
00001ad3: PUSH2 0x1add
00001ad6: SWAP1
00001ad7: DUP4
00001ad8: SWAP1
00001ad9: PUSH2 0x5c53
00001adc: JUMP
00001add: JUMPDEST
00001ade: PUSH2 0xffff
00001ae1: AND
00001ae2: SWAP1
00001ae3: MSTORE
00001ae4: POP
00001ae5: POP
00001ae6: POP
00001ae7: POP
00001ae8: JUMP
00001ae9: JUMPDEST
00001aea: PUSH1 0x40
00001aec: DUP1
00001aed: MLOAD
00001aee: PUSH1 0xa0
00001af0: DUP2
00001af1: ADD
00001af2: DUP3
00001af3: MSTORE
00001af4: PUSH1 0x00
00001af6: DUP1
00001af7: DUP3
00001af8: MSTORE
00001af9: PUSH1 0x20
00001afb: DUP3
00001afc: ADD
00001afd: DUP2
00001afe: SWAP1
00001aff: MSTORE
00001b00: SWAP2
00001b01: DUP2
00001b02: ADD
00001b03: DUP3
00001b04: SWAP1
00001b05: MSTORE
00001b06: PUSH1 0x60
00001b08: DUP2
00001b09: ADD
00001b0a: DUP3
00001b0b: SWAP1
00001b0c: MSTORE
00001b0d: PUSH1 0x80
00001b0f: DUP2
00001b10: ADD
00001b11: SWAP2
00001b12: SWAP1
00001b13: SWAP2
00001b14: MSTORE
00001b15: POP
00001b16: PUSH1 0x00
00001b18: DUP2
00001b19: DUP2
00001b1a: MSTORE
00001b1b: PUSH3 0x01000f
00001b1f: PUSH1 0x20
00001b21: SWAP1
00001b22: DUP2
00001b23: MSTORE
00001b24: PUSH1 0x40
00001b26: SWAP2
00001b27: DUP3
00001b28: SWAP1
00001b29: KECCAK256
00001b2a: DUP3
00001b2b: MLOAD
00001b2c: PUSH1 0xa0
00001b2e: DUP2
00001b2f: ADD
00001b30: DUP5
00001b31: MSTORE
00001b32: DUP2
00001b33: SLOAD
00001b34: PUSH16 0xffffffffffffffffffffffffffffffff
00001b45: DUP1
00001b46: DUP3
00001b47: AND
00001b48: DUP1
00001b49: DUP5
00001b4a: MSTORE
00001b4b: PUSH17 0x0100000000000000000000000000000000
00001b5d: SWAP3
00001b5e: DUP4
00001b5f: SWAP1
00001b60: DIV
00001b61: DUP3
00001b62: AND
00001b63: SWAP6
00001b64: DUP5
00001b65: ADD
00001b66: SWAP6
00001b67: SWAP1
00001b68: SWAP6
00001b69: MSTORE
00001b6a: PUSH1 0x01
00001b6c: SWAP1
00001b6d: SWAP4
00001b6e: ADD
00001b6f: SLOAD
00001b70: SWAP3
00001b71: DUP4
00001b72: AND
00001b73: SWAP5
00001b74: DUP3
00001b75: ADD
00001b76: SWAP5
00001b77: SWAP1
00001b78: SWAP5
00001b79: MSTORE
00001b7a: SWAP3
00001b7b: DUP2
00001b7c: DIV
00001b7d: PUSH8 0xffffffffffffffff
00001b86: SWAP1
00001b87: DUP2
00001b88: AND
00001b89: PUSH1 0x60
00001b8b: DUP6
00001b8c: ADD
00001b8d: MSTORE
00001b8e: PUSH25 0x01000000000000000000000000000000000000000000000000
00001ba8: SWAP1
00001ba9: SWAP2
00001baa: DIV
00001bab: AND
00001bac: PUSH1 0x80
00001bae: DUP4
00001baf: ADD
00001bb0: MSTORE
00001bb1: PUSH2 0x1bb9
00001bb4: JUMPI
00001bb5: PUSH1 0x00
00001bb7: DUP1
00001bb8: REVERT
00001bb9: JUMPDEST
00001bba: SWAP2
00001bbb: SWAP1
00001bbc: POP
00001bbd: JUMP
00001bbe: JUMPDEST
00001bbf: PUSH1 0x00
00001bc1: PUSH3 0x010002
00001bc5: PUSH16 0xffffffffffffffffffffffffffffffff
00001bd6: DUP4
00001bd7: AND
00001bd8: LT
00001bd9: DUP1
00001bda: ISZERO
00001bdb: SWAP1
00001bdc: PUSH2 0x1c06
00001bdf: JUMPI
00001be0: POP
00001be1: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472
00001bf2: PUSH16 0xffffffffffffffffffffffffffffffff
00001c03: DUP4
00001c04: AND
00001c05: LT
00001c06: JUMPDEST
00001c07: PUSH2 0x1c0f
00001c0a: JUMPI
00001c0b: PUSH1 0x00
00001c0d: DUP1
00001c0e: REVERT
00001c0f: JUMPDEST
00001c10: PUSH24 0xffffffffffffffffffffffffffffffff0000000000000000
00001c29: PUSH1 0x40
00001c2b: DUP4
00001c2c: SWAP1
00001c2d: SHL
00001c2e: AND
00001c2f: PUSH16 0xffffffffffffffffffffffffffffffff
00001c40: DUP2
00001c41: GT
00001c42: PUSH1 0x07
00001c44: SHL
00001c45: DUP2
00001c46: DUP2
00001c47: SHR
00001c48: PUSH8 0xffffffffffffffff
00001c51: DUP2
00001c52: GT
00001c53: PUSH1 0x06
00001c55: SHL
00001c56: SWAP1
00001c57: DUP2
00001c58: SHR
00001c59: PUSH4 0xffffffff
00001c5e: DUP2
00001c5f: GT
00001c60: PUSH1 0x05
00001c62: SHL
00001c63: SWAP1
00001c64: DUP2
00001c65: SHR
00001c66: PUSH2 0xffff
00001c69: DUP2
00001c6a: GT
00001c6b: PUSH1 0x04
00001c6d: SHL
00001c6e: SWAP1
00001c6f: DUP2
00001c70: SHR
00001c71: PUSH1 0xff
00001c73: DUP2
00001c74: GT
00001c75: PUSH1 0x03
00001c77: SWAP1
00001c78: DUP2
00001c79: SHL
00001c7a: SWAP2
00001c7b: DUP3
00001c7c: SHR
00001c7d: PUSH1 0x0f
00001c7f: DUP2
00001c80: GT
00001c81: PUSH1 0x02
00001c83: SHL
00001c84: SWAP1
00001c85: DUP2
00001c86: SHR
00001c87: SWAP2
00001c88: DUP3
00001c89: GT
00001c8a: PUSH1 0x01
00001c8c: SWAP1
00001c8d: DUP2
00001c8e: SHL
00001c8f: SWAP3
00001c90: DUP4
00001c91: SHR
00001c92: SWAP8
00001c93: SWAP1
00001c94: DUP9
00001c95: GT
00001c96: SWAP7
00001c97: OR
00001c98: SWAP1
00001c99: SWAP5
00001c9a: OR
00001c9b: SWAP1
00001c9c: SWAP3
00001c9d: OR
00001c9e: OR
00001c9f: SWAP1
00001ca0: SWAP2
00001ca1: OR
00001ca2: OR
00001ca3: OR
00001ca4: PUSH1 0x80
00001ca6: DUP2
00001ca7: LT
00001ca8: PUSH2 0x1cb9
00001cab: JUMPI
00001cac: PUSH1 0x7f
00001cae: DUP2
00001caf: SUB
00001cb0: DUP4
00001cb1: SWAP1
00001cb2: SHR
00001cb3: SWAP2
00001cb4: POP
00001cb5: PUSH2 0x1cc3
00001cb8: JUMP
00001cb9: JUMPDEST
00001cba: DUP1
00001cbb: PUSH1 0x7f
00001cbd: SUB
00001cbe: DUP4
00001cbf: SWAP1
00001cc0: SHL
00001cc1: SWAP2
00001cc2: POP
00001cc3: JUMPDEST
00001cc4: SWAP1
00001cc5: DUP1
00001cc6: MUL
00001cc7: PUSH1 0x7f
00001cc9: DUP2
00001cca: DUP2
00001ccb: SHR
00001ccc: PUSH1 0xff
00001cce: DUP4
00001ccf: DUP2
00001cd0: SHR
00001cd1: SWAP2
00001cd2: SWAP1
00001cd3: SWAP2
00001cd4: SHR
00001cd5: DUP1
00001cd6: MUL
00001cd7: DUP1
00001cd8: DUP4
00001cd9: SHR
00001cda: DUP2
00001cdb: DUP4
00001cdc: SHR
00001cdd: SHR
00001cde: DUP1
00001cdf: MUL
00001ce0: DUP1
00001ce1: DUP5
00001ce2: SHR
00001ce3: DUP2
00001ce4: DUP5
00001ce5: SHR
00001ce6: SHR
00001ce7: DUP1
00001ce8: MUL
00001ce9: DUP1
00001cea: DUP6
00001ceb: SHR
00001cec: DUP2
00001ced: DUP6
00001cee: SHR
00001cef: SHR
00001cf0: DUP1
00001cf1: MUL
00001cf2: DUP1
00001cf3: DUP7
00001cf4: SHR
00001cf5: DUP2
00001cf6: DUP7
00001cf7: SHR
00001cf8: SHR
00001cf9: DUP1
00001cfa: MUL
00001cfb: DUP1
00001cfc: DUP8
00001cfd: SHR
00001cfe: DUP2
00001cff: DUP8
00001d00: SHR
00001d01: SHR
00001d02: DUP1
00001d03: MUL
00001d04: DUP1
00001d05: DUP9
00001d06: SHR
00001d07: DUP2
00001d08: DUP9
00001d09: SHR
00001d0a: SHR
00001d0b: DUP1
00001d0c: MUL
00001d0d: DUP1
00001d0e: DUP10
00001d0f: SHR
00001d10: DUP2
00001d11: DUP10
00001d12: SHR
00001d13: SHR
00001d14: DUP1
00001d15: MUL
00001d16: DUP1
00001d17: DUP11
00001d18: SHR
00001d19: DUP2
00001d1a: DUP11
00001d1b: SHR
00001d1c: SHR
00001d1d: DUP1
00001d1e: MUL
00001d1f: DUP1
00001d20: DUP12
00001d21: SHR
00001d22: DUP2
00001d23: DUP12
00001d24: SHR
00001d25: SHR
00001d26: DUP1
00001d27: MUL
00001d28: DUP1
00001d29: DUP13
00001d2a: SHR
00001d2b: DUP2
00001d2c: DUP13
00001d2d: SHR
00001d2e: SHR
00001d2f: DUP1
00001d30: MUL
00001d31: DUP1
00001d32: DUP14
00001d33: SHR
00001d34: DUP2
00001d35: DUP14
00001d36: SHR
00001d37: SHR
00001d38: DUP1
00001d39: MUL
00001d3a: DUP1
00001d3b: DUP15
00001d3c: SHR
00001d3d: SWAP13
00001d3e: DUP2
00001d3f: SWAP1
00001d40: SHR
00001d41: SWAP13
00001d42: SWAP1
00001d43: SWAP13
00001d44: SHR
00001d45: DUP1
00001d46: MUL
00001d47: SWAP13
00001d48: DUP14
00001d49: SWAP1
00001d4a: SHR
00001d4b: SWAP15
00001d4c: SWAP14
00001d4d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80
00001d6e: DUP16
00001d6f: ADD
00001d70: PUSH1 0x40
00001d72: SHL
00001d73: PUSH1 0xc0
00001d75: SWAP2
00001d76: SWAP1
00001d77: SWAP2
00001d78: SHR
00001d79: PUSH8 0x8000000000000000
00001d82: AND
00001d83: OR
00001d84: PUSH1 0xc1
00001d86: SWAP12
00001d87: SWAP1
00001d88: SWAP12
00001d89: SHR
00001d8a: PUSH8 0x4000000000000000
00001d93: AND
00001d94: SWAP11
00001d95: SWAP1
00001d96: SWAP11
00001d97: OR
00001d98: PUSH1 0xc2
00001d9a: SWAP10
00001d9b: SWAP1
00001d9c: SWAP10
00001d9d: SHR
00001d9e: PUSH8 0x2000000000000000
00001da7: AND
00001da8: SWAP9
00001da9: SWAP1
00001daa: SWAP9
00001dab: OR
00001dac: PUSH1 0xc3
00001dae: SWAP8
00001daf: SWAP1
00001db0: SWAP8
00001db1: SHR
00001db2: PUSH8 0x1000000000000000
00001dbb: AND
00001dbc: SWAP7
00001dbd: SWAP1
00001dbe: SWAP7
00001dbf: OR
00001dc0: PUSH1 0xc4
00001dc2: SWAP6
00001dc3: SWAP1
00001dc4: SWAP6
00001dc5: SHR
00001dc6: PUSH8 0x0800000000000000
00001dcf: AND
00001dd0: SWAP5
00001dd1: SWAP1
00001dd2: SWAP5
00001dd3: OR
00001dd4: PUSH1 0xc5
00001dd6: SWAP4
00001dd7: SWAP1
00001dd8: SWAP4
00001dd9: SHR
00001dda: PUSH8 0x0400000000000000
00001de3: AND
00001de4: SWAP3
00001de5: SWAP1
00001de6: SWAP3
00001de7: OR
00001de8: PUSH1 0xc6
00001dea: SWAP2
00001deb: SWAP1
00001dec: SWAP2
00001ded: SHR
00001dee: PUSH8 0x0200000000000000
00001df7: AND
00001df8: OR
00001df9: PUSH1 0xc7
00001dfb: SWAP2
00001dfc: SWAP1
00001dfd: SWAP2
00001dfe: SHR
00001dff: PUSH8 0x0100000000000000
00001e08: AND
00001e09: OR
00001e0a: PUSH1 0xc8
00001e0c: SWAP2
00001e0d: SWAP1
00001e0e: SWAP2
00001e0f: SHR
00001e10: PUSH7 0x80000000000000
00001e18: AND
00001e19: OR
00001e1a: PUSH1 0xc9
00001e1c: SWAP2
00001e1d: SWAP1
00001e1e: SWAP2
00001e1f: SHR
00001e20: PUSH7 0x40000000000000
00001e28: AND
00001e29: OR
00001e2a: PUSH1 0xca
00001e2c: SWAP2
00001e2d: SWAP1
00001e2e: SWAP2
00001e2f: SHR
00001e30: PUSH7 0x20000000000000
00001e38: AND
00001e39: OR
00001e3a: PUSH1 0xcb
00001e3c: SWAP2
00001e3d: SWAP1
00001e3e: SWAP2
00001e3f: SHR
00001e40: PUSH7 0x10000000000000
00001e48: AND
00001e49: OR
00001e4a: PUSH1 0xcc
00001e4c: SWAP2
00001e4d: SWAP1
00001e4e: SWAP2
00001e4f: SHR
00001e50: PUSH7 0x08000000000000
00001e58: AND
00001e59: OR
00001e5a: PUSH1 0xcd
00001e5c: SWAP2
00001e5d: SWAP1
00001e5e: SWAP2
00001e5f: SHR
00001e60: PUSH7 0x04000000000000
00001e68: AND
00001e69: OR
00001e6a: PUSH10 0x3627a301d71055774c85
00001e75: DUP2
00001e76: MUL
00001e77: PUSH32 0xfffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc556
00001e98: DUP2
00001e99: ADD
00001e9a: PUSH1 0x80
00001e9c: SWAP1
00001e9d: DUP2
00001e9e: SAR
00001e9f: SWAP1
00001ea0: PUSH16 0xdb2df09e81959a81455e260799a0632f
00001eb1: DUP4
00001eb2: ADD
00001eb3: SWAP1
00001eb4: SAR
00001eb5: PUSH1 0x02
00001eb7: DUP2
00001eb8: DUP2
00001eb9: SIGNEXTEND
00001eba: SWAP1
00001ebb: DUP4
00001ebc: SWAP1
00001ebd: SIGNEXTEND
00001ebe: EQ
00001ebf: PUSH2 0x1f02
00001ec2: JUMPI
00001ec3: DUP9
00001ec4: PUSH16 0xffffffffffffffffffffffffffffffff
00001ed5: AND
00001ed6: PUSH2 0x1ede
00001ed9: DUP3
00001eda: PUSH2 0x2196
00001edd: JUMP
00001ede: JUMPDEST
00001edf: PUSH16 0xffffffffffffffffffffffffffffffff
00001ef0: AND
00001ef1: GT
00001ef2: ISZERO
00001ef3: PUSH2 0x1efc
00001ef6: JUMPI
00001ef7: DUP2
00001ef8: PUSH2 0x1f04
00001efb: JUMP
00001efc: JUMPDEST
00001efd: DUP1
00001efe: PUSH2 0x1f04
00001f01: JUMP
00001f02: JUMPDEST
00001f03: DUP2
00001f04: JUMPDEST
00001f05: SWAP10
00001f06: SWAP9
00001f07: POP
00001f08: POP
00001f09: POP
00001f0a: POP
00001f0b: POP
00001f0c: POP
00001f0d: POP
00001f0e: POP
00001f0f: POP
00001f10: JUMP
00001f11: JUMPDEST
00001f12: DUP2
00001f13: MLOAD
00001f14: PUSH2 0x1f4c
00001f17: JUMPI
00001f18: DUP2
00001f19: PUSH1 0x80
00001f1b: ADD
00001f1c: MLOAD
00001f1d: PUSH16 0xffffffffffffffffffffffffffffffff
00001f2e: AND
00001f2f: DUP5
00001f30: PUSH1 0x00
00001f32: ADD
00001f33: MLOAD
00001f34: PUSH16 0xffffffffffffffffffffffffffffffff
00001f45: AND
00001f46: LT
00001f47: ISZERO
00001f48: PUSH2 0x1f7d
00001f4b: JUMP
00001f4c: JUMPDEST
00001f4d: DUP2
00001f4e: PUSH1 0x80
00001f50: ADD
00001f51: MLOAD
00001f52: PUSH16 0xffffffffffffffffffffffffffffffff
00001f63: AND
00001f64: DUP5
00001f65: PUSH1 0x00
00001f67: ADD
00001f68: MLOAD
00001f69: PUSH16 0xffffffffffffffffffffffffffffffff
00001f7a: AND
00001f7b: GT
00001f7c: ISZERO
00001f7d: JUMPDEST
00001f7e: PUSH2 0x1fe3
00001f81: JUMPI
00001f82: PUSH1 0x40
00001f84: MLOAD
00001f85: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001fa6: DUP2
00001fa7: MSTORE
00001fa8: PUSH1 0x20
00001faa: PUSH1 0x04
00001fac: DUP3
00001fad: ADD
00001fae: MSTORE
00001faf: PUSH1 0x02
00001fb1: PUSH1 0x24
00001fb3: DUP3
00001fb4: ADD
00001fb5: MSTORE
00001fb6: PUSH32 0x5344000000000000000000000000000000000000000000000000000000000000
00001fd7: PUSH1 0x44
00001fd9: DUP3
00001fda: ADD
00001fdb: MSTORE
00001fdc: PUSH1 0x64
00001fde: ADD
00001fdf: PUSH2 0x10ea
00001fe2: JUMP
00001fe3: JUMPDEST
00001fe4: PUSH1 0x01
00001fe6: JUMPDEST
00001fe7: DUP1
00001fe8: ISZERO
00001fe9: PUSH2 0x162f
00001fec: JUMPI
00001fed: PUSH1 0x00
00001fef: DUP1
00001ff0: PUSH2 0x2002
00001ff3: DUP5
00001ff4: PUSH1 0x20
00001ff6: ADD
00001ff7: MLOAD
00001ff8: DUP7
00001ff9: PUSH1 0x00
00001ffb: ADD
00001ffc: MLOAD
00001ffd: DUP9
00001ffe: PUSH2 0x2508
00002001: JUMP
00002002: JUMPDEST
00002003: DUP6
00002004: MLOAD
00002005: SWAP2
00002006: SWAP4
00002007: POP
00002008: SWAP2
00002009: POP
0000200a: PUSH2 0x2019
0000200d: SWAP1
0000200e: DUP9
0000200f: SWAP1
00002010: DUP11
00002011: SWAP1
00002012: DUP9
00002013: SWAP1
00002014: DUP7
00002015: PUSH2 0x254e
00002018: JUMP
00002019: JUMPDEST
0000201a: PUSH2 0x2023
0000201d: DUP8
0000201e: DUP7
0000201f: PUSH2 0x25ee
00002022: JUMP
00002023: JUMPDEST
00002024: SWAP3
00002025: POP
00002026: DUP3
00002027: ISZERO
00002028: PUSH2 0x2094
0000202b: JUMPI
0000202c: DUP1
0000202d: ISZERO
0000202e: PUSH2 0x207a
00002031: JUMPI
00002032: PUSH1 0x00
00002034: PUSH2 0x2046
00002037: DUP6
00002038: PUSH1 0x20
0000203a: ADD
0000203b: MLOAD
0000203c: DUP5
0000203d: DUP9
0000203e: PUSH1 0x00
00002040: ADD
00002041: MLOAD
00002042: PUSH2 0x2687
00002045: JUMP
00002046: JUMPDEST
00002047: SWAP3
00002048: DUP4
00002049: SWAP2
0000204a: POP
0000204b: PUSH1 0x02
0000204d: DUP3
0000204e: DUP2
0000204f: SIGNEXTEND
00002050: SWAP2
00002051: SWAP1
00002052: SIGNEXTEND
00002053: EQ
00002054: DUP1
00002055: PUSH2 0x2077
00002058: JUMPI
00002059: DUP6
0000205a: MLOAD
0000205b: PUSH2 0x206a
0000205e: SWAP1
0000205f: DUP11
00002060: SWAP1
00002061: DUP13
00002062: SWAP1
00002063: DUP11
00002064: SWAP1
00002065: DUP9
00002066: PUSH2 0x254e
00002069: JUMP
0000206a: JUMPDEST
0000206b: PUSH2 0x2074
0000206e: DUP10
0000206f: DUP9
00002070: PUSH2 0x25ee
00002073: JUMP
00002074: JUMPDEST
00002075: SWAP5
00002076: POP
00002077: JUMPDEST
00002078: POP
00002079: POP
0000207a: JUMPDEST
0000207b: DUP3
0000207c: ISZERO
0000207d: PUSH2 0x2094
00002080: JUMPI
00002081: PUSH2 0x2091
00002084: DUP9
00002085: DUP4
00002086: DUP10
00002087: DUP9
00002088: DUP9
00002089: PUSH1 0x20
0000208b: ADD
0000208c: MLOAD
0000208d: PUSH2 0x2768
00002090: JUMP
00002091: JUMPDEST
00002092: SWAP6
00002093: POP
00002094: JUMPDEST
00002095: POP
00002096: POP
00002097: PUSH2 0x1fe6
0000209a: JUMP
0000209b: JUMPDEST
0000209c: PUSH1 0x00
0000209e: PUSH2 0x20a5
000020a1: PUSH2 0x2801
000020a4: JUMP
000020a5: JUMPDEST
000020a6: SWAP1
000020a7: POP
000020a8: DUP3
000020a9: PUSH1 0x0f
000020ab: SIGNEXTEND
000020ac: PUSH1 0x00
000020ae: EQ
000020af: PUSH2 0x20c6
000020b2: JUMPI
000020b3: PUSH2 0x20c1
000020b6: DUP6
000020b7: DUP6
000020b8: DUP6
000020b9: PUSH1 0x00
000020bb: DUP6
000020bc: DUP8
000020bd: PUSH2 0x28d6
000020c0: JUMP
000020c1: JUMPDEST
000020c2: PUSH2 0x03f0
000020c5: JUMP
000020c6: JUMPDEST
000020c7: PUSH2 0x03f0
000020ca: DUP5
000020cb: DUP3
000020cc: PUSH2 0x2917
000020cf: JUMP
000020d0: JUMPDEST
000020d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020e6: DUP3
000020e7: AND
000020e8: PUSH2 0x20f0
000020eb: JUMPI
000020ec: PUSH1 0x00
000020ee: DUP1
000020ef: REVERT
000020f0: JUMPDEST
000020f1: PUSH1 0x00
000020f3: PUSH2 0x162f
000020f6: DUP7
000020f7: DUP7
000020f8: DUP7
000020f9: DUP7
000020fa: DUP6
000020fb: DUP8
000020fc: PUSH2 0x28d6
000020ff: JUMP
00002100: JUMPDEST
00002101: PUSH1 0x00
00002103: DUP3
00002104: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002119: AND
0000211a: DUP5
0000211b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002130: AND
00002131: LT
00002132: PUSH2 0x213a
00002135: JUMPI
00002136: PUSH1 0x00
00002138: DUP1
00002139: REVERT
0000213a: JUMPDEST
0000213b: PUSH1 0x40
0000213d: DUP1
0000213e: MLOAD
0000213f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002154: DUP1
00002155: DUP8
00002156: AND
00002157: PUSH1 0x20
00002159: DUP4
0000215a: ADD
0000215b: MSTORE
0000215c: DUP6
0000215d: AND
0000215e: SWAP2
0000215f: DUP2
00002160: ADD
00002161: SWAP2
00002162: SWAP1
00002163: SWAP2
00002164: MSTORE
00002165: PUSH1 0x60
00002167: DUP2
00002168: ADD
00002169: DUP4
0000216a: SWAP1
0000216b: MSTORE
0000216c: PUSH1 0x80
0000216e: ADD
0000216f: PUSH2 0x129f
00002172: JUMP
00002173: JUMPDEST
00002174: PUSH1 0x00
00002176: PUSH1 0x01
00002178: DUP3
00002179: DUP2
0000217a: AND
0000217b: DUP2
0000217c: EQ
0000217d: DUP1
0000217e: PUSH2 0x2188
00002181: JUMPI
00002182: PUSH1 0x00
00002184: PUSH2 0x1025
00002187: JUMP
00002188: JUMPDEST
00002189: PUSH1 0x60
0000218b: DUP6
0000218c: SWAP1
0000218d: SHR
0000218e: SWAP6
0000218f: SWAP5
00002190: POP
00002191: POP
00002192: POP
00002193: POP
00002194: POP
00002195: JUMP
00002196: JUMPDEST
00002197: PUSH1 0x00
00002199: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892
000021ba: PUSH1 0x02
000021bc: DUP4
000021bd: SWAP1
000021be: SIGNEXTEND
000021bf: SLT
000021c0: DUP1
000021c1: ISZERO
000021c2: SWAP1
000021c3: PUSH2 0x21d3
000021c6: JUMPI
000021c7: POP
000021c8: PUSH3 0x0cb14a
000021cc: PUSH1 0x02
000021ce: DUP4
000021cf: SWAP1
000021d0: SIGNEXTEND
000021d1: SGT
000021d2: ISZERO
000021d3: JUMPDEST
000021d4: PUSH2 0x21dc
000021d7: JUMPI
000021d8: PUSH1 0x00
000021da: DUP1
000021db: REVERT
000021dc: JUMPDEST
000021dd: PUSH1 0x00
000021df: DUP1
000021e0: DUP4
000021e1: PUSH1 0x02
000021e3: SIGNEXTEND
000021e4: SLT
000021e5: PUSH2 0x21f1
000021e8: JUMPI
000021e9: DUP3
000021ea: PUSH1 0x02
000021ec: SIGNEXTEND
000021ed: PUSH2 0x21f9
000021f0: JUMP
000021f1: JUMPDEST
000021f2: DUP3
000021f3: PUSH1 0x02
000021f5: SIGNEXTEND
000021f6: PUSH1 0x00
000021f8: SUB
000021f9: JUMPDEST
000021fa: SWAP1
000021fb: POP
000021fc: PUSH1 0x00
000021fe: DUP2
000021ff: PUSH1 0x01
00002201: AND
00002202: PUSH1 0x00
00002204: SUB
00002205: PUSH2 0x221f
00002208: JUMPI
00002209: PUSH17 0x0100000000000000000000000000000000
0000221b: PUSH2 0x2231
0000221e: JUMP
0000221f: JUMPDEST
00002220: PUSH16 0xfffcb933bd6fad37aa2d162d1a594001
00002231: JUMPDEST
00002232: PUSH17 0xffffffffffffffffffffffffffffffffff
00002244: AND
00002245: SWAP1
00002246: POP
00002247: PUSH1 0x02
00002249: DUP3
0000224a: AND
0000224b: ISZERO
0000224c: PUSH2 0x2265
0000224f: JUMPI
00002250: PUSH16 0xfff97272373d413259a46990580e213a
00002261: MUL
00002262: PUSH1 0x80
00002264: SHR
00002265: JUMPDEST
00002266: PUSH1 0x04
00002268: DUP3
00002269: AND
0000226a: ISZERO
0000226b: PUSH2 0x2284
0000226e: JUMPI
0000226f: PUSH16 0xfff2e50f5f656932ef12357cf3c7fdcc
00002280: MUL
00002281: PUSH1 0x80
00002283: SHR
00002284: JUMPDEST
00002285: PUSH1 0x08
00002287: DUP3
00002288: AND
00002289: ISZERO
0000228a: PUSH2 0x22a3
0000228d: JUMPI
0000228e: PUSH16 0xffe5caca7e10e4e61c3624eaa0941cd0
0000229f: MUL
000022a0: PUSH1 0x80
000022a2: SHR
000022a3: JUMPDEST
000022a4: PUSH1 0x10
000022a6: DUP3
000022a7: AND
000022a8: ISZERO
000022a9: PUSH2 0x22c2
000022ac: JUMPI
000022ad: PUSH16 0xffcb9843d60f6159c9db58835c926644
000022be: MUL
000022bf: PUSH1 0x80
000022c1: SHR
000022c2: JUMPDEST
000022c3: PUSH1 0x20
000022c5: DUP3
000022c6: AND
000022c7: ISZERO
000022c8: PUSH2 0x22e1
000022cb: JUMPI
000022cc: PUSH16 0xff973b41fa98c081472e6896dfb254c0
000022dd: MUL
000022de: PUSH1 0x80
000022e0: SHR
000022e1: JUMPDEST
000022e2: PUSH1 0x40
000022e4: DUP3
000022e5: AND
000022e6: ISZERO
000022e7: PUSH2 0x2300
000022ea: JUMPI
000022eb: PUSH16 0xff2ea16466c96a3843ec78b326b52861
000022fc: MUL
000022fd: PUSH1 0x80
000022ff: SHR
00002300: JUMPDEST
00002301: PUSH1 0x80
00002303: DUP3
00002304: AND
00002305: ISZERO
00002306: PUSH2 0x231f
00002309: JUMPI
0000230a: PUSH16 0xfe5dee046a99a2a811c461f1969c3053
0000231b: MUL
0000231c: PUSH1 0x80
0000231e: SHR
0000231f: JUMPDEST
00002320: PUSH2 0x0100
00002323: DUP3
00002324: AND
00002325: ISZERO
00002326: PUSH2 0x233f
00002329: JUMPI
0000232a: PUSH16 0xfcbe86c7900a88aedcffc83b479aa3a4
0000233b: MUL
0000233c: PUSH1 0x80
0000233e: SHR
0000233f: JUMPDEST
00002340: PUSH2 0x0200
00002343: DUP3
00002344: AND
00002345: ISZERO
00002346: PUSH2 0x235f
00002349: JUMPI
0000234a: PUSH16 0xf987a7253ac413176f2b074cf7815e54
0000235b: MUL
0000235c: PUSH1 0x80
0000235e: SHR
0000235f: JUMPDEST
00002360: PUSH2 0x0400
00002363: DUP3
00002364: AND
00002365: ISZERO
00002366: PUSH2 0x237f
00002369: JUMPI
0000236a: PUSH16 0xf3392b0822b70005940c7a398e4b70f3
0000237b: MUL
0000237c: PUSH1 0x80
0000237e: SHR
0000237f: JUMPDEST
00002380: PUSH2 0x0800
00002383: DUP3
00002384: AND
00002385: ISZERO
00002386: PUSH2 0x239f
00002389: JUMPI
0000238a: PUSH16 0xe7159475a2c29b7443b29c7fa6e889d9
0000239b: MUL
0000239c: PUSH1 0x80
0000239e: SHR
0000239f: JUMPDEST
000023a0: PUSH2 0x1000
000023a3: DUP3
000023a4: AND
000023a5: ISZERO
000023a6: PUSH2 0x23bf
000023a9: JUMPI
000023aa: PUSH16 0xd097f3bdfd2022b8845ad8f792aa5825
000023bb: MUL
000023bc: PUSH1 0x80
000023be: SHR
000023bf: JUMPDEST
000023c0: PUSH2 0x2000
000023c3: DUP3
000023c4: AND
000023c5: ISZERO
000023c6: PUSH2 0x23df
000023c9: JUMPI
000023ca: PUSH16 0xa9f746462d870fdf8a65dc1f90e061e5
000023db: MUL
000023dc: PUSH1 0x80
000023de: SHR
000023df: JUMPDEST
000023e0: PUSH2 0x4000
000023e3: DUP3
000023e4: AND
000023e5: ISZERO
000023e6: PUSH2 0x23ff
000023e9: JUMPI
000023ea: PUSH16 0x70d869a156d2a1b890bb3df62baf32f7
000023fb: MUL
000023fc: PUSH1 0x80
000023fe: SHR
000023ff: JUMPDEST
00002400: PUSH2 0x8000
00002403: DUP3
00002404: AND
00002405: ISZERO
00002406: PUSH2 0x241f
00002409: JUMPI
0000240a: PUSH16 0x31be135f97d08fd981231505542fcfa6
0000241b: MUL
0000241c: PUSH1 0x80
0000241e: SHR
0000241f: JUMPDEST
00002420: PUSH3 0x010000
00002424: DUP3
00002425: AND
00002426: ISZERO
00002427: PUSH2 0x2440
0000242a: JUMPI
0000242b: PUSH16 0x09aa508b5b7a84e1c677de54f3e99bc9
0000243c: MUL
0000243d: PUSH1 0x80
0000243f: SHR
00002440: JUMPDEST
00002441: PUSH3 0x020000
00002445: DUP3
00002446: AND
00002447: ISZERO
00002448: PUSH2 0x2460
0000244b: JUMPI
0000244c: PUSH15 0x5d6af8dedb81196699c329225ee604
0000245c: MUL
0000245d: PUSH1 0x80
0000245f: SHR
00002460: JUMPDEST
00002461: PUSH3 0x040000
00002465: DUP3
00002466: AND
00002467: ISZERO
00002468: PUSH2 0x247f
0000246b: JUMPI
0000246c: PUSH14 0x2216e584f5fa1ea926041bedfe98
0000247b: MUL
0000247c: PUSH1 0x80
0000247e: SHR
0000247f: JUMPDEST
00002480: PUSH3 0x080000
00002484: DUP3
00002485: AND
00002486: ISZERO
00002487: PUSH2 0x249c
0000248a: JUMPI
0000248b: PUSH12 0x048a170391f7dc42444e8fa2
00002498: MUL
00002499: PUSH1 0x80
0000249b: SHR
0000249c: JUMPDEST
0000249d: PUSH1 0x00
0000249f: DUP5
000024a0: PUSH1 0x02
000024a2: SIGNEXTEND
000024a3: SGT
000024a4: ISZERO
000024a5: PUSH2 0x24db
000024a8: JUMPI
000024a9: DUP1
000024aa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000024cb: DUP2
000024cc: PUSH2 0x24d7
000024cf: JUMPI
000024d0: PUSH2 0x24d7
000024d3: PUSH2 0x5a30
000024d6: JUMP
000024d7: JUMPDEST
000024d8: DIV
000024d9: SWAP1
000024da: POP
000024db: JUMPDEST
000024dc: PUSH9 0x010000000000000000
000024e6: DUP2
000024e7: MOD
000024e8: ISZERO
000024e9: PUSH2 0x24f3
000024ec: JUMPI
000024ed: PUSH1 0x01
000024ef: PUSH2 0x24f6
000024f2: JUMP
000024f3: JUMPDEST
000024f4: PUSH1 0x00
000024f6: JUMPDEST
000024f7: PUSH1 0xff
000024f9: AND
000024fa: PUSH1 0x40
000024fc: DUP3
000024fd: SWAP1
000024fe: SHR
000024ff: ADD
00002500: SWAP3
00002501: POP
00002502: POP
00002503: POP
00002504: SWAP2
00002505: SWAP1
00002506: POP
00002507: JUMP
00002508: JUMPDEST
00002509: PUSH1 0x00
0000250b: DUP1
0000250c: PUSH1 0x00
0000250e: PUSH2 0x2517
00002511: DUP7
00002512: DUP6
00002513: PUSH2 0x294f
00002516: JUMP
00002517: JUMPDEST
00002518: SWAP1
00002519: POP
0000251a: PUSH1 0x00
0000251c: PUSH2 0x2529
0000251f: PUSH1 0x02
00002521: DUP7
00002522: SWAP1
00002523: SIGNEXTEND
00002524: DUP8
00002525: PUSH2 0x2975
00002528: JUMP
00002529: JUMPDEST
0000252a: SWAP1
0000252b: POP
0000252c: PUSH1 0x02
0000252e: DUP6
0000252f: SWAP1
00002530: SIGNEXTEND
00002531: PUSH1 0x08
00002533: SAR
00002534: PUSH2 0x253f
00002537: DUP8
00002538: DUP4
00002539: DUP4
0000253a: DUP7
0000253b: PUSH2 0x29b1
0000253e: JUMP
0000253f: JUMPDEST
00002540: SWAP1
00002541: SWAP10
00002542: SWAP1
00002543: SWAP9
00002544: POP
00002545: SWAP7
00002546: POP
00002547: POP
00002548: POP
00002549: POP
0000254a: POP
0000254b: POP
0000254c: POP
0000254d: JUMP
0000254e: JUMPDEST
0000254f: PUSH1 0x00
00002551: PUSH2 0x2563
00002554: DUP3
00002555: DUP6
00002556: PUSH1 0x80
00002558: ADD
00002559: MLOAD
0000255a: DUP7
0000255b: PUSH1 0x00
0000255d: ADD
0000255e: MLOAD
0000255f: PUSH2 0x2a00
00002562: JUMP
00002563: JUMPDEST
00002564: SWAP1
00002565: POP
00002566: PUSH1 0x00
00002568: DUP1
00002569: PUSH1 0x00
0000256b: PUSH2 0x257f
0000256e: DUP10
0000256f: DUP9
00002570: PUSH1 0x60
00002572: ADD
00002573: MLOAD
00002574: DUP9
00002575: DUP11
00002576: PUSH1 0x20
00002578: ADD
00002579: MLOAD
0000257a: DUP9
0000257b: PUSH2 0x2a7b
0000257e: JUMP
0000257f: JUMPDEST
00002580: PUSH1 0x20
00002582: DUP11
00002583: ADD
00002584: MLOAD
00002585: SWAP3
00002586: SWAP6
00002587: POP
00002588: SWAP1
00002589: SWAP4
0000258a: POP
0000258b: SWAP2
0000258c: POP
0000258d: PUSH2 0x259a
00002590: SWAP1
00002591: DUP10
00002592: SWAP1
00002593: DUP6
00002594: DUP6
00002595: DUP6
00002596: PUSH2 0x2ac7
00002599: JUMP
0000259a: JUMPDEST
0000259b: PUSH2 0x25b3
0000259e: DUP10
0000259f: DUP9
000025a0: PUSH1 0x20
000025a2: ADD
000025a3: MLOAD
000025a4: DUP10
000025a5: PUSH1 0x00
000025a7: ADD
000025a8: MLOAD
000025a9: DUP11
000025aa: PUSH1 0x60
000025ac: ADD
000025ad: MLOAD
000025ae: DUP9
000025af: PUSH2 0x2b32
000025b2: JUMP
000025b3: JUMPDEST
000025b4: PUSH16 0xffffffffffffffffffffffffffffffff
000025c5: AND
000025c6: PUSH1 0x60
000025c8: DUP11
000025c9: ADD
000025ca: MSTORE
000025cb: PUSH1 0x20
000025cd: DUP10
000025ce: ADD
000025cf: MLOAD
000025d0: SWAP2
000025d1: SWAP5
000025d2: POP
000025d3: SWAP3
000025d4: POP
000025d5: PUSH2 0x25e3
000025d8: SWAP1
000025d9: DUP10
000025da: SWAP1
000025db: DUP6
000025dc: DUP6
000025dd: PUSH1 0x00
000025df: PUSH2 0x2ac7
000025e2: JUMP
000025e3: JUMPDEST
000025e4: POP
000025e5: POP
000025e6: POP
000025e7: POP
000025e8: POP
000025e9: POP
000025ea: POP
000025eb: POP
000025ec: POP
000025ed: JUMP
000025ee: JUMPDEST
000025ef: PUSH1 0x00
000025f1: DUP1
000025f2: DUP3
000025f3: PUSH1 0x00
000025f5: ADD
000025f6: MLOAD
000025f7: PUSH2 0x262e
000025fa: JUMPI
000025fb: DUP3
000025fc: PUSH1 0x80
000025fe: ADD
000025ff: MLOAD
00002600: PUSH16 0xffffffffffffffffffffffffffffffff
00002611: AND
00002612: DUP5
00002613: PUSH1 0x00
00002615: ADD
00002616: MLOAD
00002617: PUSH16 0xffffffffffffffffffffffffffffffff
00002628: AND
00002629: GT
0000262a: PUSH2 0x265e
0000262d: JUMP
0000262e: JUMPDEST
0000262f: DUP3
00002630: PUSH1 0x80
00002632: ADD
00002633: MLOAD
00002634: PUSH16 0xffffffffffffffffffffffffffffffff
00002645: AND
00002646: DUP5
00002647: PUSH1 0x00
00002649: ADD
0000264a: MLOAD
0000264b: PUSH16 0xffffffffffffffffffffffffffffffff
0000265c: AND
0000265d: LT
0000265e: JUMPDEST
0000265f: SWAP1
00002660: POP
00002661: DUP1
00002662: DUP1
00002663: ISZERO
00002664: PUSH2 0x19cb
00002667: JUMPI
00002668: POP
00002669: POP
0000266a: POP
0000266b: PUSH1 0x60
0000266d: ADD
0000266e: MLOAD
0000266f: PUSH16 0xffffffffffffffffffffffffffffffff
00002680: AND
00002681: ISZERO
00002682: ISZERO
00002683: SWAP2
00002684: SWAP1
00002685: POP
00002686: JUMP
00002687: JUMPDEST
00002688: PUSH1 0x00
0000268a: DUP2
0000268b: DUP1
0000268c: ISZERO
0000268d: PUSH2 0x269c
00002690: JUMPI
00002691: POP
00002692: PUSH1 0x02
00002694: DUP4
00002695: SWAP1
00002696: SIGNEXTEND
00002697: PUSH3 0x7fffff
0000269b: EQ
0000269c: JUMPDEST
0000269d: ISZERO
0000269e: PUSH2 0x26ab
000026a1: JUMPI
000026a2: POP
000026a3: PUSH3 0x7fffff
000026a7: PUSH2 0x05f5
000026aa: JUMP
000026ab: JUMPDEST
000026ac: DUP2
000026ad: ISZERO
000026ae: DUP1
000026af: ISZERO
000026b0: PUSH2 0x26dc
000026b3: JUMPI
000026b4: POP
000026b5: PUSH1 0x02
000026b7: DUP4
000026b8: SWAP1
000026b9: SIGNEXTEND
000026ba: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
000026db: EQ
000026dc: JUMPDEST
000026dd: ISZERO
000026de: PUSH2 0x2708
000026e1: JUMPI
000026e2: POP
000026e3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
00002704: PUSH2 0x05f5
00002707: JUMP
00002708: JUMPDEST
00002709: PUSH1 0x00
0000270b: DUP1
0000270c: PUSH2 0x2715
0000270f: DUP6
00002710: DUP6
00002711: PUSH2 0x2bb4
00002714: JUMP
00002715: JUMPDEST
00002716: SWAP2
00002717: POP
00002718: SWAP2
00002719: POP
0000271a: PUSH1 0x00
0000271c: DUP1
0000271d: PUSH2 0x2728
00002720: DUP9
00002721: DUP6
00002722: DUP6
00002723: DUP10
00002724: PUSH2 0x2bf6
00002727: JUMP
00002728: JUMPDEST
00002729: SWAP2
0000272a: POP
0000272b: SWAP2
0000272c: POP
0000272d: DUP1
0000272e: PUSH2 0x273c
00002731: JUMPI
00002732: POP
00002733: SWAP3
00002734: POP
00002735: PUSH2 0x05f5
00002738: SWAP2
00002739: POP
0000273a: POP
0000273b: JUMP
0000273c: JUMPDEST
0000273d: PUSH2 0x2748
00002740: DUP9
00002741: DUP6
00002742: DUP6
00002743: DUP10
00002744: PUSH2 0x2c65
00002747: JUMP
00002748: JUMPDEST
00002749: SWAP1
0000274a: SWAP3
0000274b: POP
0000274c: SWAP1
0000274d: POP
0000274e: DUP1
0000274f: PUSH2 0x275d
00002752: JUMPI
00002753: POP
00002754: SWAP3
00002755: POP
00002756: PUSH2 0x05f5
00002759: SWAP2
0000275a: POP
0000275b: POP
0000275c: JUMP
0000275d: JUMPDEST
0000275e: PUSH2 0x0fa8
00002761: DUP9
00002762: DUP6
00002763: DUP9
00002764: PUSH2 0x2ce2
00002767: JUMP
00002768: JUMPDEST
00002769: PUSH1 0x00
0000276b: PUSH2 0x2773
0000276e: DUP6
0000276f: PUSH2 0x2d02
00002772: JUMP
00002773: JUMPDEST
00002774: PUSH2 0x277e
00002777: JUMPI
00002778: POP
00002779: DUP4
0000277a: PUSH2 0x1025
0000277d: JUMP
0000277e: JUMPDEST
0000277f: PUSH2 0x278e
00002782: DUP5
00002783: DUP7
00002784: DUP6
00002785: PUSH1 0x00
00002787: ADD
00002788: MLOAD
00002789: DUP6
0000278a: PUSH2 0x2d41
0000278d: JUMP
0000278e: JUMPDEST
0000278f: PUSH1 0x00
00002791: DUP1
00002792: PUSH1 0x00
00002794: PUSH2 0x27b6
00002797: DUP7
00002798: PUSH1 0x20
0000279a: ADD
0000279b: MLOAD
0000279c: DUP8
0000279d: PUSH1 0x00
0000279f: ADD
000027a0: MLOAD
000027a1: DUP9
000027a2: PUSH1 0x60
000027a4: ADD
000027a5: MLOAD
000027a6: DUP11
000027a7: PUSH2 0x2ded
000027aa: SWAP1
000027ab: SWAP4
000027ac: SWAP3
000027ad: SWAP2
000027ae: SWAP1
000027af: PUSH4 0xffffffff
000027b4: AND
000027b5: JUMP
000027b6: JUMPDEST
000027b7: SWAP2
000027b8: SWAP5
000027b9: POP
000027ba: SWAP3
000027bb: POP
000027bc: SWAP1
000027bd: POP
000027be: PUSH2 0x27c8
000027c1: DUP10
000027c2: DUP5
000027c3: DUP5
000027c4: PUSH2 0x2ec8
000027c7: JUMP
000027c8: JUMPDEST
000027c9: PUSH1 0x60
000027cb: DUP7
000027cc: ADD
000027cd: DUP1
000027ce: MLOAD
000027cf: DUP3
000027d0: SWAP1
000027d1: SUB
000027d2: PUSH16 0xffffffffffffffffffffffffffffffff
000027e3: AND
000027e4: SWAP1
000027e5: MSTORE
000027e6: DUP6
000027e7: MLOAD
000027e8: PUSH2 0x27f4
000027eb: JUMPI
000027ec: PUSH1 0x01
000027ee: DUP9
000027ef: SUB
000027f0: PUSH2 0x1f04
000027f3: JUMP
000027f4: JUMPDEST
000027f5: POP
000027f6: SWAP6
000027f7: SWAP8
000027f8: SWAP7
000027f9: POP
000027fa: POP
000027fb: POP
000027fc: POP
000027fd: POP
000027fe: POP
000027ff: POP
00002800: JUMP
00002801: JUMPDEST
00002802: PUSH1 0x00
00002804: DUP1
00002805: SLOAD
00002806: PUSH22 0x01000000000000000000000000000000000000000000
0000281d: SWAP1
0000281e: DIV
0000281f: PUSH1 0xff
00002821: AND
00002822: ISZERO
00002823: PUSH2 0x2888
00002826: JUMPI
00002827: PUSH1 0x40
00002829: MLOAD
0000282a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000284b: DUP2
0000284c: MSTORE
0000284d: PUSH1 0x20
0000284f: PUSH1 0x04
00002851: DUP3
00002852: ADD
00002853: MSTORE
00002854: PUSH1 0x02
00002856: PUSH1 0x24
00002858: DUP3
00002859: ADD
0000285a: MSTORE
0000285b: PUSH32 0x4453000000000000000000000000000000000000000000000000000000000000
0000287c: PUSH1 0x44
0000287e: DUP3
0000287f: ADD
00002880: MSTORE
00002881: PUSH1 0x64
00002883: ADD
00002884: PUSH2 0x10ea
00002887: JUMP
00002888: JUMPDEST
00002889: PUSH2 0x2891
0000288c: CALLVALUE
0000288d: PUSH2 0x2eff
00002890: JUMP
00002891: JUMPDEST
00002892: PUSH1 0x00
00002894: DUP1
00002895: SLOAD
00002896: PUSH32 0xffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
000028b7: AND
000028b8: PUSH22 0x01000000000000000000000000000000000000000000
000028cf: OR
000028d0: SWAP1
000028d1: SSTORE
000028d2: SWAP2
000028d3: SWAP1
000028d4: POP
000028d5: JUMP
000028d6: JUMPDEST
000028d7: PUSH1 0x00
000028d9: PUSH1 0x0f
000028db: DUP6
000028dc: SWAP1
000028dd: SIGNEXTEND
000028de: SGT
000028df: ISZERO
000028e0: PUSH2 0x28f5
000028e3: JUMPI
000028e4: PUSH2 0x28f0
000028e7: DUP7
000028e8: DUP6
000028e9: DUP6
000028ea: DUP6
000028eb: DUP6
000028ec: PUSH2 0x2f1e
000028ef: JUMP
000028f0: JUMPDEST
000028f1: PUSH2 0x162f
000028f4: JUMP
000028f5: JUMPDEST
000028f6: PUSH1 0x00
000028f8: PUSH1 0x0f
000028fa: DUP6
000028fb: SWAP1
000028fc: SIGNEXTEND
000028fd: SLT
000028fe: ISZERO
000028ff: PUSH2 0x162f
00002902: JUMPI
00002903: PUSH2 0x162f
00002906: DUP6
00002907: PUSH2 0x290f
0000290a: DUP7
0000290b: PUSH2 0x5bd5
0000290e: JUMP
0000290f: JUMPDEST
00002910: DUP6
00002911: DUP6
00002912: DUP6
00002913: PUSH2 0x2f51
00002916: JUMP
00002917: JUMPDEST
00002918: PUSH16 0xffffffffffffffffffffffffffffffff
00002929: DUP2
0000292a: AND
0000292b: ISZERO
0000292c: PUSH2 0x294b
0000292f: JUMPI
00002930: PUSH2 0x294b
00002933: DUP3
00002934: DUP3
00002935: PUSH16 0xffffffffffffffffffffffffffffffff
00002946: AND
00002947: PUSH2 0x2f79
0000294a: JUMP
0000294b: JUMPDEST
0000294c: POP
0000294d: POP
0000294e: JUMP
0000294f: JUMPDEST
00002950: PUSH1 0x00
00002952: DUP1
00002953: PUSH2 0x295c
00002956: DUP5
00002957: DUP5
00002958: PUSH2 0x3043
0000295b: JUMP
0000295c: JUMPDEST
0000295d: PUSH1 0x00
0000295f: SWAP1
00002960: DUP2
00002961: MSTORE
00002962: PUSH3 0x010007
00002966: PUSH1 0x20
00002968: MSTORE
00002969: PUSH1 0x40
0000296b: SWAP1
0000296c: KECCAK256
0000296d: SLOAD
0000296e: SWAP5
0000296f: SWAP4
00002970: POP
00002971: POP
00002972: POP
00002973: POP
00002974: JUMP
00002975: JUMPDEST
00002976: PUSH1 0x00
00002978: DUP1
00002979: PUSH2 0x2981
0000297c: DUP5
0000297d: PUSH2 0x308e
00002980: JUMP
00002981: JUMPDEST
00002982: SWAP1
00002983: POP
00002984: PUSH1 0x00
00002986: DUP4
00002987: PUSH2 0x2991
0000298a: JUMPI
0000298b: PUSH1 0x00
0000298d: PUSH2 0x2994
00002990: JUMP
00002991: JUMPDEST
00002992: PUSH1 0x01
00002994: JUMPDEST
00002995: PUSH1 0xff
00002997: AND
00002998: SWAP1
00002999: POP
0000299a: DUP1
0000299b: PUSH2 0x29a4
0000299e: DUP4
0000299f: DUP7
000029a0: PUSH2 0x309c
000029a3: JUMP
000029a4: JUMPDEST
000029a5: PUSH1 0xff
000029a7: AND
000029a8: ADD
000029a9: SWAP6
000029aa: SWAP5
000029ab: POP
000029ac: POP
000029ad: POP
000029ae: POP
000029af: POP
000029b0: JUMP
000029b1: JUMPDEST
000029b2: PUSH1 0x00
000029b4: DUP1
000029b5: DUP1
000029b6: DUP1
000029b7: PUSH2 0x29c1
000029ba: DUP6
000029bb: DUP9
000029bc: DUP11
000029bd: PUSH2 0x30b3
000029c0: JUMP
000029c1: JUMPDEST
000029c2: SWAP2
000029c3: POP
000029c4: SWAP2
000029c5: POP
000029c6: PUSH2 0x29d0
000029c9: DUP9
000029ca: DUP3
000029cb: DUP8
000029cc: PUSH2 0x30f2
000029cf: JUMP
000029d0: JUMPDEST
000029d1: SWAP3
000029d2: POP
000029d3: DUP3
000029d4: PUSH2 0x29e9
000029d7: JUMPI
000029d8: PUSH1 0x08
000029da: DUP7
000029db: SWAP1
000029dc: SHL
000029dd: PUSH1 0x02
000029df: SIGNEXTEND
000029e0: PUSH1 0xff
000029e2: DUP4
000029e3: AND
000029e4: ADD
000029e5: PUSH2 0x29f3
000029e8: JUMP
000029e9: JUMPDEST
000029ea: PUSH2 0x29f3
000029ed: DUP9
000029ee: DUP8
000029ef: PUSH2 0x3125
000029f2: JUMP
000029f3: JUMPDEST
000029f4: SWAP4
000029f5: POP
000029f6: POP
000029f7: POP
000029f8: SWAP5
000029f9: POP
000029fa: SWAP5
000029fb: SWAP3
000029fc: POP
000029fd: POP
000029fe: POP
000029ff: JUMP
00002a00: JUMPDEST
00002a01: PUSH1 0x00
00002a03: DUP1
00002a04: PUSH2 0x2a0e
00002a07: DUP6
00002a08: DUP6
00002a09: DUP6
00002a0a: PUSH2 0x318c
00002a0d: JUMP
00002a0e: JUMPDEST
00002a0f: SWAP1
00002a10: POP
00002a11: PUSH3 0x010002
00002a15: PUSH16 0xffffffffffffffffffffffffffffffff
00002a26: DUP3
00002a27: AND
00002a28: LT
00002a29: ISZERO
00002a2a: PUSH2 0x2a39
00002a2d: JUMPI
00002a2e: PUSH3 0x010002
00002a32: SWAP2
00002a33: POP
00002a34: POP
00002a35: PUSH2 0x05f5
00002a38: JUMP
00002a39: JUMPDEST
00002a3a: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472
00002a4b: PUSH16 0xffffffffffffffffffffffffffffffff
00002a5c: DUP3
00002a5d: AND
00002a5e: LT
00002a5f: PUSH2 0x19cb
00002a62: JUMPI
00002a63: POP
00002a64: PUSH16 0x0ffff5433e2b3d8211706e6102aa9471
00002a75: SWAP1
00002a76: POP
00002a77: PUSH2 0x05f5
00002a7a: JUMP
00002a7b: JUMPDEST
00002a7c: PUSH1 0x00
00002a7e: DUP1
00002a7f: PUSH1 0x00
00002a81: DUP1
00002a82: PUSH1 0x00
00002a84: PUSH2 0x2a99
00002a87: DUP11
00002a88: DUP11
00002a89: DUP11
00002a8a: PUSH1 0x20
00002a8c: ADD
00002a8d: MLOAD
00002a8e: DUP12
00002a8f: PUSH1 0x40
00002a91: ADD
00002a92: MLOAD
00002a93: DUP12
00002a94: DUP12
00002a95: PUSH2 0x326f
00002a98: JUMP
00002a99: JUMPDEST
00002a9a: SWAP1
00002a9b: SWAP3
00002a9c: POP
00002a9d: SWAP1
00002a9e: POP
00002a9f: PUSH2 0x2aa9
00002aa2: DUP11
00002aa3: DUP4
00002aa4: DUP10
00002aa5: PUSH2 0x32bf
00002aa8: JUMP
00002aa9: JUMPDEST
00002aaa: PUSH2 0x2ab4
00002aad: DUP3
00002aae: DUP3
00002aaf: DUP10
00002ab0: PUSH2 0x3332
00002ab3: JUMP
00002ab4: JUMPDEST
00002ab5: SWAP5
00002ab6: POP
00002ab7: SWAP5
00002ab8: POP
00002ab9: SWAP5
00002aba: POP
00002abb: POP
00002abc: POP
00002abd: SWAP6
00002abe: POP
00002abf: SWAP6
00002ac0: POP
00002ac1: SWAP6
00002ac2: SWAP3
00002ac3: POP
00002ac4: POP
00002ac5: POP
00002ac6: JUMP
00002ac7: JUMPDEST
00002ac8: PUSH2 0x2ad2
00002acb: DUP6
00002acc: DUP5
00002acd: DUP5
00002ace: PUSH2 0x2ec8
00002ad1: JUMP
00002ad2: JUMPDEST
00002ad3: DUP4
00002ad4: ISZERO
00002ad5: PUSH2 0x2b04
00002ad8: JUMPI
00002ad9: DUP1
00002ada: DUP6
00002adb: PUSH1 0x60
00002add: ADD
00002ade: DUP2
00002adf: DUP2
00002ae0: MLOAD
00002ae1: PUSH2 0x2aea
00002ae4: SWAP2
00002ae5: SWAP1
00002ae6: PUSH2 0x5ab7
00002ae9: JUMP
00002aea: JUMPDEST
00002aeb: PUSH16 0xffffffffffffffffffffffffffffffff
00002afc: AND
00002afd: SWAP1
00002afe: MSTORE
00002aff: POP
00002b00: PUSH2 0x03f0
00002b03: JUMP
00002b04: JUMPDEST
00002b05: DUP1
00002b06: DUP6
00002b07: PUSH1 0x40
00002b09: ADD
00002b0a: DUP2
00002b0b: DUP2
00002b0c: MLOAD
00002b0d: PUSH2 0x2b16
00002b10: SWAP2
00002b11: SWAP1
00002b12: PUSH2 0x5ab7
00002b15: JUMP
00002b16: JUMPDEST
00002b17: PUSH16 0xffffffffffffffffffffffffffffffff
00002b28: AND
00002b29: SWAP1
00002b2a: MSTORE
00002b2b: POP
00002b2c: POP
00002b2d: POP
00002b2e: POP
00002b2f: POP
00002b30: POP
00002b31: JUMP
00002b32: JUMPDEST
00002b33: PUSH1 0x00
00002b35: DUP1
00002b36: DUP1
00002b37: DUP1
00002b38: PUSH2 0x2b43
00002b3b: DUP10
00002b3c: DUP8
00002b3d: DUP11
00002b3e: DUP9
00002b3f: PUSH2 0x338a
00002b42: JUMP
00002b43: JUMPDEST
00002b44: SWAP1
00002b45: POP
00002b46: PUSH16 0xffffffffffffffffffffffffffffffff
00002b57: DUP1
00002b58: DUP8
00002b59: AND
00002b5a: SWAP1
00002b5b: DUP3
00002b5c: AND
00002b5d: LT
00002b5e: DUP1
00002b5f: ISZERO
00002b60: PUSH2 0x2b87
00002b63: JUMPI
00002b64: PUSH2 0x2b70
00002b67: DUP11
00002b68: DUP8
00002b69: DUP12
00002b6a: DUP12
00002b6b: DUP12
00002b6c: PUSH2 0x33d5
00002b6f: JUMP
00002b70: JUMPDEST
00002b71: SWAP2
00002b72: SWAP7
00002b73: POP
00002b74: SWAP5
00002b75: POP
00002b76: SWAP3
00002b77: POP
00002b78: PUSH2 0x2b82
00002b7b: DUP11
00002b7c: DUP5
00002b7d: DUP9
00002b7e: PUSH2 0x3423
00002b81: JUMP
00002b82: JUMPDEST
00002b83: PUSH2 0x2ba7
00002b86: JUMP
00002b87: JUMPDEST
00002b88: PUSH2 0x2b94
00002b8b: DUP11
00002b8c: DUP4
00002b8d: DUP12
00002b8e: DUP12
00002b8f: DUP12
00002b90: PUSH2 0x34b2
00002b93: JUMP
00002b94: JUMPDEST
00002b95: SWAP2
00002b96: SWAP7
00002b97: POP
00002b98: SWAP5
00002b99: POP
00002b9a: SWAP3
00002b9b: POP
00002b9c: PUSH2 0x2ba7
00002b9f: DUP11
00002ba0: DUP5
00002ba1: DUP11
00002ba2: DUP10
00002ba3: PUSH2 0x34ec
00002ba6: JUMP
00002ba7: JUMPDEST
00002ba8: POP
00002ba9: POP
00002baa: SWAP6
00002bab: POP
00002bac: SWAP6
00002bad: POP
00002bae: SWAP6
00002baf: SWAP3
00002bb0: POP
00002bb1: POP
00002bb2: POP
00002bb3: JUMP
00002bb4: JUMPDEST
00002bb5: PUSH1 0x00
00002bb7: DUP1
00002bb8: PUSH1 0x00
00002bba: DUP4
00002bbb: PUSH2 0x2bce
00002bbe: JUMPI
00002bbf: PUSH2 0x2bc9
00002bc2: PUSH1 0x01
00002bc4: DUP7
00002bc5: PUSH2 0x5c6e
00002bc8: JUMP
00002bc9: JUMPDEST
00002bca: PUSH2 0x2bd0
00002bcd: JUMP
00002bce: JUMPDEST
00002bcf: DUP5
00002bd0: JUMPDEST
00002bd1: SWAP1
00002bd2: POP
00002bd3: PUSH2 0x2bde
00002bd6: DUP2
00002bd7: PUSH1 0x02
00002bd9: SIGNEXTEND
00002bda: PUSH2 0x35b1
00002bdd: JUMP
00002bde: JUMPDEST
00002bdf: SWAP3
00002be0: POP
00002be1: PUSH2 0x2bec
00002be4: DUP2
00002be5: PUSH1 0x02
00002be7: SIGNEXTEND
00002be8: PUSH2 0x35c8
00002beb: JUMP
00002bec: JUMPDEST
00002bed: SWAP2
00002bee: POP
00002bef: POP
00002bf0: SWAP3
00002bf1: POP
00002bf2: SWAP3
00002bf3: SWAP1
00002bf4: POP
00002bf5: JUMP
00002bf6: JUMPDEST
00002bf7: PUSH1 0x00
00002bf9: DUP1
00002bfa: PUSH1 0x00
00002bfc: PUSH3 0x010007
00002c00: PUSH1 0x00
00002c02: PUSH2 0x2c0c
00002c05: DUP10
00002c06: DUP10
00002c07: DUP10
00002c08: PUSH2 0x35e4
00002c0b: JUMP
00002c0c: JUMPDEST
00002c0d: DUP2
00002c0e: MSTORE
00002c0f: PUSH1 0x20
00002c11: DUP2
00002c12: ADD
00002c13: SWAP2
00002c14: SWAP1
00002c15: SWAP2
00002c16: MSTORE
00002c17: PUSH1 0x40
00002c19: ADD
00002c1a: PUSH1 0x00
00002c1c: SWAP1
00002c1d: DUP2
00002c1e: KECCAK256
00002c1f: SLOAD
00002c20: SWAP2
00002c21: POP
00002c22: DUP1
00002c23: PUSH2 0x2c2d
00002c26: DUP4
00002c27: DUP3
00002c28: DUP9
00002c29: PUSH2 0x30b3
00002c2c: JUMP
00002c2d: JUMPDEST
00002c2e: SWAP2
00002c2f: POP
00002c30: SWAP2
00002c31: POP
00002c32: DUP1
00002c33: ISZERO
00002c34: PUSH2 0x2c47
00002c37: JUMPI
00002c38: PUSH1 0x00
00002c3a: PUSH1 0x01
00002c3c: SWAP5
00002c3d: POP
00002c3e: SWAP5
00002c3f: POP
00002c40: POP
00002c41: POP
00002c42: POP
00002c43: PUSH2 0x2c5c
00002c46: JUMP
00002c47: JUMPDEST
00002c48: PUSH2 0x2c52
00002c4b: DUP9
00002c4c: DUP9
00002c4d: DUP5
00002c4e: PUSH2 0x3642
00002c51: JUMP
00002c52: JUMPDEST
00002c53: PUSH1 0x00
00002c55: SWAP5
00002c56: POP
00002c57: SWAP5
00002c58: POP
00002c59: POP
00002c5a: POP
00002c5b: POP
00002c5c: JUMPDEST
00002c5d: SWAP5
00002c5e: POP
00002c5f: SWAP5
00002c60: SWAP3
00002c61: POP
00002c62: POP
00002c63: POP
00002c64: JUMP
00002c65: JUMPDEST
00002c66: PUSH1 0x00
00002c68: DUP1
00002c69: PUSH1 0x00
00002c6b: PUSH3 0x010006
00002c6f: PUSH1 0x00
00002c71: PUSH2 0x2c7a
00002c74: DUP10
00002c75: DUP10
00002c76: PUSH2 0x366b
00002c79: JUMP
00002c7a: JUMPDEST
00002c7b: DUP2
00002c7c: MSTORE
00002c7d: PUSH1 0x20
00002c7f: ADD
00002c80: SWAP1
00002c81: DUP2
00002c82: MSTORE
00002c83: PUSH1 0x20
00002c85: ADD
00002c86: PUSH1 0x00
00002c88: KECCAK256
00002c89: SLOAD
00002c8a: SWAP1
00002c8b: POP
00002c8c: PUSH1 0x00
00002c8e: PUSH2 0x2c97
00002c91: DUP7
00002c92: DUP7
00002c93: PUSH2 0x309c
00002c96: JUMP
00002c97: JUMPDEST
00002c98: SWAP1
00002c99: POP
00002c9a: PUSH1 0x00
00002c9c: DUP1
00002c9d: PUSH2 0x2caa
00002ca0: DUP5
00002ca1: PUSH1 0xff
00002ca3: DUP6
00002ca4: AND
00002ca5: DUP10
00002ca6: PUSH2 0x30b3
00002ca9: JUMP
00002caa: JUMPDEST
00002cab: SWAP2
00002cac: POP
00002cad: SWAP2
00002cae: POP
00002caf: DUP1
00002cb0: ISZERO
00002cb1: PUSH2 0x2cc5
00002cb4: JUMPI
00002cb5: PUSH1 0x00
00002cb7: PUSH1 0x01
00002cb9: SWAP6
00002cba: POP
00002cbb: SWAP6
00002cbc: POP
00002cbd: POP
00002cbe: POP
00002cbf: POP
00002cc0: POP
00002cc1: PUSH2 0x2c5c
00002cc4: JUMP
00002cc5: JUMPDEST
00002cc6: PUSH2 0x2cd1
00002cc9: DUP11
00002cca: DUP11
00002ccb: DUP5
00002ccc: DUP11
00002ccd: PUSH2 0x2bf6
00002cd0: JUMP
00002cd1: JUMPDEST
00002cd2: SWAP6
00002cd3: POP
00002cd4: SWAP6
00002cd5: POP
00002cd6: POP
00002cd7: POP
00002cd8: POP
00002cd9: POP
00002cda: SWAP5
00002cdb: POP
00002cdc: SWAP5
00002cdd: SWAP3
00002cde: POP
00002cdf: POP
00002ce0: POP
00002ce1: JUMP
00002ce2: JUMPDEST
00002ce3: PUSH1 0x00
00002ce5: DUP2
00002ce6: PUSH2 0x2cf8
00002ce9: JUMPI
00002cea: PUSH2 0x2cf3
00002ced: DUP5
00002cee: DUP5
00002cef: PUSH2 0x367f
00002cf2: JUMP
00002cf3: JUMPDEST
00002cf4: PUSH2 0x19cb
00002cf7: JUMP
00002cf8: JUMPDEST
00002cf9: PUSH2 0x19cb
00002cfc: DUP5
00002cfd: DUP5
00002cfe: PUSH2 0x370b
00002d01: JUMP
00002d02: JUMPDEST
00002d03: PUSH1 0x00
00002d05: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
00002d26: PUSH1 0x02
00002d28: DUP4
00002d29: SWAP1
00002d2a: SIGNEXTEND
00002d2b: SGT
00002d2c: DUP1
00002d2d: ISZERO
00002d2e: PUSH2 0x0e37
00002d31: JUMPI
00002d32: POP
00002d33: POP
00002d34: PUSH3 0x7fffff
00002d38: PUSH1 0x02
00002d3a: SWAP2
00002d3b: SWAP1
00002d3c: SWAP2
00002d3d: SIGNEXTEND
00002d3e: SLT
00002d3f: SWAP1
00002d40: JUMP
00002d41: JUMPDEST
00002d42: PUSH1 0x00
00002d44: DUP1
00002d45: PUSH2 0x2d54
00002d48: DUP4
00002d49: DUP7
00002d4a: DUP7
00002d4b: DUP10
00002d4c: PUSH1 0x80
00002d4e: ADD
00002d4f: MLOAD
00002d50: PUSH2 0x3755
00002d53: JUMP
00002d54: JUMPDEST
00002d55: PUSH1 0x40
00002d57: DUP9
00002d58: ADD
00002d59: MLOAD
00002d5a: SWAP2
00002d5b: SWAP4
00002d5c: POP
00002d5d: SWAP2
00002d5e: POP
00002d5f: PUSH2 0x2d7a
00002d62: SWAP1
00002d63: PUSH16 0xffffffffffffffffffffffffffffffff
00002d74: AND
00002d75: DUP4
00002d76: PUSH2 0x3894
00002d79: JUMP
00002d7a: JUMPDEST
00002d7b: PUSH16 0xffffffffffffffffffffffffffffffff
00002d8c: AND
00002d8d: PUSH1 0x40
00002d8f: DUP8
00002d90: ADD
00002d91: MSTORE
00002d92: DUP1
00002d93: ISZERO
00002d94: PUSH2 0x162f
00002d97: JUMPI
00002d98: PUSH1 0x00
00002d9a: PUSH2 0x2da9
00002d9d: DUP5
00002d9e: DUP8
00002d9f: DUP8
00002da0: DUP11
00002da1: PUSH1 0x80
00002da3: ADD
00002da4: MLOAD
00002da5: PUSH2 0x3901
00002da8: JUMP
00002da9: JUMPDEST
00002daa: PUSH1 0x40
00002dac: DUP9
00002dad: ADD
00002dae: MLOAD
00002daf: SWAP1
00002db0: SWAP2
00002db1: POP
00002db2: PUSH2 0x2dcd
00002db5: SWAP1
00002db6: PUSH16 0xffffffffffffffffffffffffffffffff
00002dc7: AND
00002dc8: DUP3
00002dc9: PUSH2 0x3894
00002dcc: JUMP
00002dcd: JUMPDEST
00002dce: PUSH16 0xffffffffffffffffffffffffffffffff
00002ddf: AND
00002de0: PUSH1 0x40
00002de2: DUP9
00002de3: ADD
00002de4: MSTORE
00002de5: POP
00002de6: POP
00002de7: POP
00002de8: POP
00002de9: POP
00002dea: POP
00002deb: POP
00002dec: JUMP
00002ded: JUMPDEST
00002dee: PUSH1 0x00
00002df0: DUP1
00002df1: PUSH1 0x00
00002df3: DUP1
00002df4: PUSH2 0x2e07
00002df7: PUSH2 0x2dff
00002dfa: DUP10
00002dfb: PUSH2 0x3a68
00002dfe: JUMP
00002dff: JUMPDEST
00002e00: DUP10
00002e01: MLOAD
00002e02: DUP10
00002e03: PUSH2 0x3a8d
00002e06: JUMP
00002e07: JUMPDEST
00002e08: SWAP1
00002e09: POP
00002e0a: DUP1
00002e0b: PUSH16 0xffffffffffffffffffffffffffffffff
00002e1c: AND
00002e1d: DUP6
00002e1e: PUSH16 0xffffffffffffffffffffffffffffffff
00002e2f: AND
00002e30: GT
00002e31: PUSH2 0x2e96
00002e34: JUMPI
00002e35: PUSH1 0x40
00002e37: MLOAD
00002e38: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002e59: DUP2
00002e5a: MSTORE
00002e5b: PUSH1 0x20
00002e5d: PUSH1 0x04
00002e5f: DUP3
00002e60: ADD
00002e61: MSTORE
00002e62: PUSH1 0x02
00002e64: PUSH1 0x24
00002e66: DUP3
00002e67: ADD
00002e68: MSTORE
00002e69: PUSH32 0x4244000000000000000000000000000000000000000000000000000000000000
00002e8a: PUSH1 0x44
00002e8c: DUP3
00002e8d: ADD
00002e8e: MSTORE
00002e8f: PUSH1 0x64
00002e91: ADD
00002e92: PUSH2 0x10ea
00002e95: JUMP
00002e96: JUMPDEST
00002e97: DUP6
00002e98: ISZERO
00002e99: PUSH2 0x2eb3
00002e9c: JUMPI
00002e9d: PUSH2 0x2ea7
00002ea0: DUP9
00002ea1: DUP9
00002ea2: DUP4
00002ea3: PUSH2 0x3b01
00002ea6: JUMP
00002ea7: JUMPDEST
00002ea8: SWAP4
00002ea9: POP
00002eaa: SWAP4
00002eab: POP
00002eac: SWAP4
00002ead: POP
00002eae: POP
00002eaf: PUSH2 0x2ebe
00002eb2: JUMP
00002eb3: JUMPDEST
00002eb4: PUSH2 0x2ea7
00002eb7: DUP9
00002eb8: DUP9
00002eb9: DUP4
00002eba: PUSH2 0x3b9d
00002ebd: JUMP
00002ebe: JUMPDEST
00002ebf: SWAP5
00002ec0: POP
00002ec1: SWAP5
00002ec2: POP
00002ec3: SWAP5
00002ec4: SWAP2
00002ec5: POP
00002ec6: POP
00002ec7: JUMP
00002ec8: JUMPDEST
00002ec9: DUP2
00002eca: DUP4
00002ecb: PUSH1 0x00
00002ecd: ADD
00002ece: DUP2
00002ecf: DUP2
00002ed0: MLOAD
00002ed1: PUSH2 0x2eda
00002ed4: SWAP2
00002ed5: SWAP1
00002ed6: PUSH2 0x5caf
00002ed9: JUMP
00002eda: JUMPDEST
00002edb: PUSH1 0x0f
00002edd: SIGNEXTEND
00002ede: SWAP1
00002edf: MSTORE
00002ee0: POP
00002ee1: PUSH1 0x20
00002ee3: DUP4
00002ee4: ADD
00002ee5: DUP1
00002ee6: MLOAD
00002ee7: DUP3
00002ee8: SWAP2
00002ee9: SWAP1
00002eea: PUSH2 0x2ef4
00002eed: SWAP1
00002eee: DUP4
00002eef: SWAP1
00002ef0: PUSH2 0x5caf
00002ef3: JUMP
00002ef4: JUMPDEST
00002ef5: PUSH1 0x0f
00002ef7: SIGNEXTEND
00002ef8: SWAP1
00002ef9: MSTORE
00002efa: POP
00002efb: POP
00002efc: POP
00002efd: POP
00002efe: JUMP
00002eff: JUMPDEST
00002f00: DUP1
00002f01: PUSH16 0xffffffffffffffffffffffffffffffff
00002f12: DUP2
00002f13: AND
00002f14: DUP2
00002f15: EQ
00002f16: PUSH2 0x1bb9
00002f19: JUMPI
00002f1a: PUSH1 0x00
00002f1c: DUP1
00002f1d: REVERT
00002f1e: JUMPDEST
00002f1f: DUP1
00002f20: ISZERO
00002f21: PUSH2 0x2f45
00002f24: JUMPI
00002f25: PUSH1 0x00
00002f27: PUSH2 0x2f31
00002f2a: DUP7
00002f2b: DUP7
00002f2c: DUP7
00002f2d: PUSH2 0x3c47
00002f30: JUMP
00002f31: JUMPDEST
00002f32: SWAP1
00002f33: POP
00002f34: PUSH2 0x2f3f
00002f37: DUP7
00002f38: DUP3
00002f39: DUP7
00002f3a: DUP7
00002f3b: PUSH2 0x3d26
00002f3e: JUMP
00002f3f: JUMPDEST
00002f40: POP
00002f41: PUSH2 0x03f0
00002f44: JUMP
00002f45: JUMPDEST
00002f46: PUSH2 0x03f0
00002f49: DUP6
00002f4a: DUP6
00002f4b: DUP6
00002f4c: DUP6
00002f4d: PUSH2 0x3d74
00002f50: JUMP
00002f51: JUMPDEST
00002f52: DUP1
00002f53: ISZERO
00002f54: PUSH2 0x2f6d
00002f57: JUMPI
00002f58: PUSH2 0x2f62
00002f5b: DUP6
00002f5c: DUP6
00002f5d: DUP6
00002f5e: PUSH2 0x3da5
00002f61: JUMP
00002f62: JUMPDEST
00002f63: PUSH2 0x20c1
00002f66: DUP6
00002f67: DUP5
00002f68: DUP5
00002f69: PUSH2 0x3e24
00002f6c: JUMP
00002f6d: JUMPDEST
00002f6e: PUSH2 0x03f0
00002f71: DUP6
00002f72: DUP6
00002f73: DUP6
00002f74: DUP6
00002f75: PUSH2 0x3e49
00002f78: JUMP
00002f79: JUMPDEST
00002f7a: PUSH1 0x00
00002f7c: DUP3
00002f7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f92: AND
00002f93: DUP3
00002f94: PUSH1 0x40
00002f96: MLOAD
00002f97: PUSH1 0x00
00002f99: PUSH1 0x40
00002f9b: MLOAD
00002f9c: DUP1
00002f9d: DUP4
00002f9e: SUB
00002f9f: DUP2
00002fa0: DUP6
00002fa1: DUP8
00002fa2: GAS
00002fa3: CALL
00002fa4: SWAP3
00002fa5: POP
00002fa6: POP
00002fa7: POP
00002fa8: RETURNDATASIZE
00002fa9: DUP1
00002faa: PUSH1 0x00
00002fac: DUP2
00002fad: EQ
00002fae: PUSH2 0x2fd3
00002fb1: JUMPI
00002fb2: PUSH1 0x40
00002fb4: MLOAD
00002fb5: SWAP2
00002fb6: POP
00002fb7: PUSH1 0x1f
00002fb9: NOT
00002fba: PUSH1 0x3f
00002fbc: RETURNDATASIZE
00002fbd: ADD
00002fbe: AND
00002fbf: DUP3
00002fc0: ADD
00002fc1: PUSH1 0x40
00002fc3: MSTORE
00002fc4: RETURNDATASIZE
00002fc5: DUP3
00002fc6: MSTORE
00002fc7: RETURNDATASIZE
00002fc8: PUSH1 0x00
00002fca: PUSH1 0x20
00002fcc: DUP5
00002fcd: ADD
00002fce: RETURNDATACOPY
00002fcf: PUSH2 0x2fd8
00002fd2: JUMP
00002fd3: JUMPDEST
00002fd4: PUSH1 0x60
00002fd6: SWAP2
00002fd7: POP
00002fd8: JUMPDEST
00002fd9: POP
00002fda: POP
00002fdb: SWAP1
00002fdc: POP
00002fdd: DUP1
00002fde: PUSH2 0x125f
00002fe1: JUMPI
00002fe2: PUSH1 0x40
00002fe4: MLOAD
00002fe5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003006: DUP2
00003007: MSTORE
00003008: PUSH1 0x20
0000300a: PUSH1 0x04
0000300c: DUP3
0000300d: ADD
0000300e: MSTORE
0000300f: PUSH1 0x02
00003011: PUSH1 0x24
00003013: DUP3
00003014: ADD
00003015: MSTORE
00003016: PUSH32 0x5446000000000000000000000000000000000000000000000000000000000000
00003037: PUSH1 0x44
00003039: DUP3
0000303a: ADD
0000303b: MSTORE
0000303c: PUSH1 0x64
0000303e: ADD
0000303f: PUSH2 0x10ea
00003042: JUMP
00003043: JUMPDEST
00003044: PUSH1 0x00
00003046: DUP1
00003047: PUSH1 0x02
00003049: DUP4
0000304a: SWAP1
0000304b: SIGNEXTEND
0000304c: PUSH1 0x08
0000304e: SAR
0000304f: SWAP1
00003050: POP
00003051: DUP4
00003052: DUP2
00003053: PUSH1 0x40
00003055: MLOAD
00003056: PUSH1 0x20
00003058: ADD
00003059: PUSH2 0x306f
0000305c: SWAP3
0000305d: SWAP2
0000305e: SWAP1
0000305f: SWAP2
00003060: DUP3
00003061: MSTORE
00003062: PUSH1 0xf0
00003064: SHL
00003065: PUSH1 0x20
00003067: DUP3
00003068: ADD
00003069: MSTORE
0000306a: PUSH1 0x22
0000306c: ADD
0000306d: SWAP1
0000306e: JUMP
0000306f: JUMPDEST
00003070: PUSH1 0x40
00003072: MLOAD
00003073: PUSH1 0x20
00003075: DUP2
00003076: DUP4
00003077: SUB
00003078: SUB
00003079: DUP2
0000307a: MSTORE
0000307b: SWAP1
0000307c: PUSH1 0x40
0000307e: MSTORE
0000307f: DUP1
00003080: MLOAD
00003081: SWAP1
00003082: PUSH1 0x20
00003084: ADD
00003085: KECCAK256
00003086: SWAP2
00003087: POP
00003088: POP
00003089: SWAP3
0000308a: SWAP2
0000308b: POP
0000308c: POP
0000308d: JUMP
0000308e: JUMPDEST
0000308f: PUSH1 0x00
00003091: PUSH2 0x0e37
00003094: PUSH2 0x0100
00003097: DUP4
00003098: PUSH2 0x5cfd
0000309b: JUMP
0000309c: JUMPDEST
0000309d: PUSH1 0x00
0000309f: DUP2
000030a0: PUSH2 0x30ac
000030a3: JUMPI
000030a4: DUP3
000030a5: PUSH1 0xff
000030a7: SUB
000030a8: PUSH2 0x05f5
000030ab: JUMP
000030ac: JUMPDEST
000030ad: POP
000030ae: SWAP1
000030af: SWAP2
000030b0: SWAP1
000030b1: POP
000030b2: JUMP
000030b3: JUMPDEST
000030b4: PUSH1 0x00
000030b6: DUP1
000030b7: PUSH2 0x30c1
000030ba: DUP6
000030bb: DUP6
000030bc: DUP6
000030bd: PUSH2 0x3e8c
000030c0: JUMP
000030c1: JUMPDEST
000030c2: SWAP5
000030c3: POP
000030c4: POP
000030c5: DUP4
000030c6: ISZERO
000030c7: DUP1
000030c8: PUSH2 0x30ea
000030cb: JUMPI
000030cc: DUP3
000030cd: PUSH2 0x30de
000030d0: JUMPI
000030d1: PUSH2 0x30d9
000030d4: DUP6
000030d5: PUSH2 0x3eb0
000030d8: JUMP
000030d9: JUMPDEST
000030da: PUSH2 0x30e7
000030dd: JUMP
000030de: JUMPDEST
000030df: PUSH2 0x30e7
000030e2: DUP6
000030e3: PUSH2 0x3f5d
000030e6: JUMP
000030e7: JUMPDEST
000030e8: SWAP2
000030e9: POP
000030ea: JUMPDEST
000030eb: SWAP4
000030ec: POP
000030ed: SWAP4
000030ee: SWAP2
000030ef: POP
000030f0: POP
000030f1: JUMP
000030f2: JUMPDEST
000030f3: PUSH1 0x00
000030f5: DUP4
000030f6: ISZERO
000030f7: PUSH2 0x3101
000030fa: JUMPI
000030fb: POP
000030fc: DUP2
000030fd: PUSH2 0x05f5
00003100: JUMP
00003101: JUMPDEST
00003102: PUSH1 0x00
00003104: PUSH2 0x310d
00003107: DUP4
00003108: DUP3
00003109: PUSH2 0x4140
0000310c: JUMP
0000310d: JUMPDEST
0000310e: SWAP1
0000310f: POP
00003110: DUP1
00003111: PUSH2 0x311a
00003114: JUMPI
00003115: DUP4
00003116: PUSH2 0x1025
00003119: JUMP
0000311a: JUMPDEST
0000311b: PUSH1 0x00
0000311d: SWAP6
0000311e: SWAP5
0000311f: POP
00003120: POP
00003121: POP
00003122: POP
00003123: POP
00003124: JUMP
00003125: JUMPDEST
00003126: PUSH1 0x00
00003128: DUP3
00003129: ISZERO
0000312a: PUSH2 0x317f
0000312d: JUMPI
0000312e: PUSH2 0x3136
00003131: DUP4
00003132: PUSH2 0x4174
00003135: JUMP
00003136: JUMPDEST
00003137: PUSH1 0x01
00003139: SIGNEXTEND
0000313a: DUP3
0000313b: PUSH1 0x01
0000313d: SIGNEXTEND
0000313e: EQ
0000313f: PUSH2 0x316f
00003142: JUMPI
00003143: PUSH2 0x316a
00003146: PUSH2 0x3150
00003149: DUP4
0000314a: PUSH1 0x01
0000314c: PUSH2 0x5d1f
0000314f: JUMP
00003150: JUMPDEST
00003151: PUSH2 0x315a
00003154: DUP6
00003155: ISZERO
00003156: PUSH2 0x41aa
00003159: JUMP
0000315a: JUMPDEST
0000315b: PUSH1 0xff
0000315d: AND
0000315e: PUSH1 0x08
00003160: SWAP2
00003161: SWAP1
00003162: SWAP2
00003163: SHL
00003164: PUSH1 0x02
00003166: SIGNEXTEND
00003167: ADD
00003168: SWAP1
00003169: JUMP
0000316a: JUMPDEST
0000316b: PUSH2 0x3178
0000316e: JUMP
0000316f: JUMPDEST
00003170: PUSH2 0x3178
00003173: DUP4
00003174: PUSH2 0x41c0
00003177: JUMP
00003178: JUMPDEST
00003179: SWAP1
0000317a: POP
0000317b: PUSH2 0x0e37
0000317e: JUMP
0000317f: JUMPDEST
00003180: PUSH1 0x08
00003182: DUP3
00003183: SWAP1
00003184: SHL
00003185: PUSH1 0x02
00003187: SIGNEXTEND
00003188: PUSH2 0x3178
0000318b: JUMP
0000318c: JUMPDEST
0000318d: PUSH1 0x00
0000318f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892
000031b0: PUSH1 0x02
000031b2: DUP6
000031b3: SWAP1
000031b4: SIGNEXTEND
000031b5: SGT
000031b6: ISZERO
000031b7: DUP1
000031b8: PUSH2 0x31c8
000031bb: JUMPI
000031bc: POP
000031bd: PUSH3 0x0cb14a
000031c1: PUSH1 0x02
000031c3: DUP6
000031c4: SWAP1
000031c5: SIGNEXTEND
000031c6: SLT
000031c7: ISZERO
000031c8: JUMPDEST
000031c9: ISZERO
000031ca: PUSH2 0x31d4
000031cd: JUMPI
000031ce: POP
000031cf: DUP2
000031d0: PUSH2 0x05f5
000031d3: JUMP
000031d4: JUMPDEST
000031d5: DUP2
000031d6: ISZERO
000031d7: PUSH2 0x3227
000031da: JUMPI
000031db: PUSH1 0x01
000031dd: PUSH1 0x00
000031df: DUP2
000031e0: PUSH2 0x31e8
000031e3: DUP8
000031e4: PUSH2 0x2196
000031e7: JUMP
000031e8: JUMPDEST
000031e9: SUB
000031ea: SWAP1
000031eb: POP
000031ec: DUP5
000031ed: PUSH16 0xffffffffffffffffffffffffffffffff
000031fe: AND
000031ff: DUP2
00003200: PUSH16 0xffffffffffffffffffffffffffffffff
00003211: AND
00003212: LT
00003213: PUSH2 0x321c
00003216: JUMPI
00003217: DUP5
00003218: PUSH2 0x321e
0000321b: JUMP
0000321c: JUMPDEST
0000321d: DUP1
0000321e: JUMPDEST
0000321f: SWAP3
00003220: POP
00003221: POP
00003222: POP
00003223: PUSH2 0x05f5
00003226: JUMP
00003227: JUMPDEST
00003228: PUSH1 0x00
0000322a: PUSH2 0x3232
0000322d: DUP6
0000322e: PUSH2 0x2196
00003231: JUMP
00003232: JUMPDEST
00003233: SWAP1
00003234: POP
00003235: DUP4
00003236: PUSH16 0xffffffffffffffffffffffffffffffff
00003247: AND
00003248: DUP2
00003249: PUSH16 0xffffffffffffffffffffffffffffffff
0000325a: AND
0000325b: GT
0000325c: PUSH2 0x3265
0000325f: JUMPI
00003260: DUP4
00003261: PUSH2 0x3267
00003264: JUMP
00003265: JUMPDEST
00003266: DUP1
00003267: JUMPDEST
00003268: SWAP2
00003269: POP
0000326a: POP
0000326b: PUSH2 0x05f5
0000326e: JUMP
0000326f: JUMPDEST
00003270: PUSH1 0x00
00003272: DUP1
00003273: DUP1
00003274: PUSH2 0x327f
00003277: DUP10
00003278: DUP10
00003279: DUP8
0000327a: DUP8
0000327b: PUSH2 0x41f7
0000327e: JUMP
0000327f: JUMPDEST
00003280: SWAP1
00003281: POP
00003282: PUSH2 0x0100
00003285: PUSH3 0x0f4240
00003289: PUSH16 0xffffffffffffffffffffffffffffffff
0000329a: DUP4
0000329b: AND
0000329c: PUSH2 0xffff
0000329f: DUP11
000032a0: AND
000032a1: MUL
000032a2: DIV
000032a3: PUSH1 0xff
000032a5: DUP9
000032a6: AND
000032a7: DUP2
000032a8: MUL
000032a9: SWAP2
000032aa: SWAP1
000032ab: SWAP2
000032ac: DIV
000032ad: SWAP1
000032ae: DUP2
000032af: SWAP1
000032b0: SUB
000032b1: SWAP11
000032b2: SWAP1
000032b3: SWAP10
000032b4: POP
000032b5: SWAP8
000032b6: POP
000032b7: POP
000032b8: POP
000032b9: POP
000032ba: POP
000032bb: POP
000032bc: POP
000032bd: POP
000032be: JUMP
000032bf: JUMPDEST
000032c0: PUSH1 0x00
000032c2: PUSH2 0x32ca
000032c5: DUP5
000032c6: PUSH2 0x3a68
000032c9: JUMP
000032ca: JUMPDEST
000032cb: SWAP1
000032cc: POP
000032cd: DUP1
000032ce: PUSH16 0xffffffffffffffffffffffffffffffff
000032df: AND
000032e0: PUSH1 0x00
000032e2: SUB
000032e3: PUSH2 0x32ec
000032e6: JUMPI
000032e7: POP
000032e8: POP
000032e9: POP
000032ea: POP
000032eb: JUMP
000032ec: JUMPDEST
000032ed: DUP4
000032ee: MLOAD
000032ef: DUP3
000032f0: ISZERO
000032f1: SWAP1
000032f2: PUSH1 0x00
000032f4: SWAP1
000032f5: PUSH2 0x3301
000032f8: SWAP1
000032f9: DUP5
000032fa: SWAP1
000032fb: DUP8
000032fc: DUP6
000032fd: PUSH2 0x4239
00003300: JUMP
00003301: JUMPDEST
00003302: SWAP1
00003303: POP
00003304: PUSH1 0x00
00003306: PUSH2 0x3315
00003309: DUP5
0000330a: DUP9
0000330b: PUSH1 0x00
0000330d: ADD
0000330e: MLOAD
0000330f: DUP5
00003310: DUP7
00003311: PUSH2 0x4296
00003314: JUMP
00003315: JUMPDEST
00003316: SWAP1
00003317: POP
00003318: PUSH8 0xffffffffffffffff
00003321: DUP2
00003322: AND
00003323: ISZERO
00003324: PUSH2 0x0d87
00003327: JUMPI
00003328: PUSH2 0x0d87
0000332b: DUP8
0000332c: DUP3
0000332d: DUP6
0000332e: PUSH2 0x42b0
00003331: JUMP
00003332: JUMPDEST
00003333: PUSH1 0x00
00003335: DUP1
00003336: DUP1
00003337: DUP6
00003338: DUP6
00003339: ADD
0000333a: DUP5
0000333b: ISZERO
0000333c: PUSH2 0x3361
0000333f: JUMPI
00003340: PUSH2 0x335a
00003343: DUP2
00003344: PUSH16 0xffffffffffffffffffffffffffffffff
00003355: AND
00003356: PUSH2 0x4394
00003359: JUMP
0000335a: JUMPDEST
0000335b: SWAP3
0000335c: POP
0000335d: PUSH2 0x337f
00003360: JUMP
00003361: JUMPDEST
00003362: PUSH2 0x337c
00003365: DUP2
00003366: PUSH16 0xffffffffffffffffffffffffffffffff
00003377: AND
00003378: PUSH2 0x4394
0000337b: JUMP
0000337c: JUMPDEST
0000337d: SWAP4
0000337e: POP
0000337f: JUMPDEST
00003380: POP
00003381: SWAP2
00003382: SWAP6
00003383: SWAP1
00003384: SWAP5
00003385: POP
00003386: SWAP2
00003387: POP
00003388: POP
00003389: JUMP
0000338a: JUMPDEST
0000338b: PUSH1 0x00
0000338d: DUP1
0000338e: PUSH2 0x3398
00003391: DUP7
00003392: DUP6
00003393: DUP6
00003394: PUSH2 0x43c4
00003397: JUMP
00003398: JUMPDEST
00003399: SWAP1
0000339a: POP
0000339b: DUP5
0000339c: PUSH16 0xffffffffffffffffffffffffffffffff
000033ad: AND
000033ae: DUP2
000033af: PUSH16 0xffffffffffffffffffffffffffffffff
000033c0: AND
000033c1: GT
000033c2: PUSH2 0x33cb
000033c5: JUMPI
000033c6: DUP1
000033c7: PUSH2 0x073e
000033ca: JUMP
000033cb: JUMPDEST
000033cc: POP
000033cd: SWAP3
000033ce: SWAP5
000033cf: SWAP4
000033d0: POP
000033d1: POP
000033d2: POP
000033d3: POP
000033d4: JUMP
000033d5: JUMPDEST
000033d6: PUSH1 0x00
000033d8: DUP1
000033d9: PUSH1 0x00
000033db: DUP1
000033dc: PUSH1 0x00
000033de: PUSH2 0x33e8
000033e1: DUP11
000033e2: DUP11
000033e3: DUP11
000033e4: PUSH2 0x43fa
000033e7: JUMP
000033e8: JUMPDEST
000033e9: SWAP2
000033ea: POP
000033eb: SWAP2
000033ec: POP
000033ed: PUSH1 0x00
000033ef: DUP1
000033f0: PUSH2 0x33fb
000033f3: DUP5
000033f4: DUP5
000033f5: DUP13
000033f6: DUP13
000033f7: PUSH2 0x447a
000033fa: JUMP
000033fb: JUMPDEST
000033fc: SWAP2
000033fd: POP
000033fe: SWAP2
000033ff: POP
00003400: PUSH2 0x340e
00003403: DUP13
00003404: DUP12
00003405: DUP12
00003406: DUP12
00003407: DUP16
00003408: DUP8
00003409: DUP8
0000340a: PUSH2 0x44b1
0000340d: JUMP
0000340e: JUMPDEST
0000340f: SWAP7
00003410: POP
00003411: SWAP7
00003412: POP
00003413: SWAP7
00003414: POP
00003415: POP
00003416: POP
00003417: POP
00003418: POP
00003419: SWAP6
0000341a: POP
0000341b: SWAP6
0000341c: POP
0000341d: SWAP6
0000341e: SWAP3
0000341f: POP
00003420: POP
00003421: POP
00003422: JUMP
00003423: JUMPDEST
00003424: DUP3
00003425: MLOAD
00003426: PUSH16 0xffffffffffffffffffffffffffffffff
00003437: SWAP1
00003438: DUP2
00003439: AND
0000343a: DUP2
0000343b: DUP4
0000343c: AND
0000343d: EQ
0000343e: SWAP1
0000343f: DUP4
00003440: AND
00003441: ISZERO
00003442: ISZERO
00003443: DUP2
00003444: DUP1
00003445: ISZERO
00003446: PUSH2 0x344c
00003449: JUMPI
0000344a: POP
0000344b: DUP1
0000344c: JUMPDEST
0000344d: PUSH2 0x03f0
00003450: JUMPI
00003451: PUSH1 0x40
00003453: MLOAD
00003454: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003475: DUP2
00003476: MSTORE
00003477: PUSH1 0x20
00003479: PUSH1 0x04
0000347b: DUP3
0000347c: ADD
0000347d: MSTORE
0000347e: PUSH1 0x02
00003480: PUSH1 0x24
00003482: DUP3
00003483: ADD
00003484: MSTORE
00003485: PUSH32 0x5250000000000000000000000000000000000000000000000000000000000000
000034a6: PUSH1 0x44
000034a8: DUP3
000034a9: ADD
000034aa: MSTORE
000034ab: PUSH1 0x64
000034ad: ADD
000034ae: PUSH2 0x10ea
000034b1: JUMP
000034b2: JUMPDEST
000034b3: PUSH1 0x00
000034b5: DUP1
000034b6: PUSH1 0x00
000034b8: DUP1
000034b9: PUSH1 0x00
000034bb: PUSH2 0x34c6
000034be: DUP11
000034bf: DUP11
000034c0: DUP11
000034c1: DUP11
000034c2: PUSH2 0x4549
000034c5: JUMP
000034c6: JUMPDEST
000034c7: SWAP2
000034c8: POP
000034c9: SWAP2
000034ca: POP
000034cb: PUSH1 0x00
000034cd: DUP1
000034ce: PUSH2 0x34d9
000034d1: DUP12
000034d2: DUP6
000034d3: DUP13
000034d4: DUP13
000034d5: PUSH2 0x45c3
000034d8: JUMP
000034d9: JUMPDEST
000034da: SWAP2
000034db: POP
000034dc: SWAP2
000034dd: POP
000034de: PUSH2 0x340e
000034e1: DUP13
000034e2: DUP12
000034e3: DUP12
000034e4: DUP12
000034e5: DUP8
000034e6: DUP8
000034e7: DUP8
000034e8: PUSH2 0x44b1
000034eb: JUMP
000034ec: JUMPDEST
000034ed: PUSH1 0x00
000034ef: DUP3
000034f0: PUSH2 0x3511
000034f3: JUMPI
000034f4: DUP5
000034f5: MLOAD
000034f6: PUSH16 0xffffffffffffffffffffffffffffffff
00003507: DUP1
00003508: DUP5
00003509: AND
0000350a: SWAP2
0000350b: AND
0000350c: GT
0000350d: PUSH2 0x352b
00003510: JUMP
00003511: JUMPDEST
00003512: DUP5
00003513: MLOAD
00003514: PUSH16 0xffffffffffffffffffffffffffffffff
00003525: DUP1
00003526: DUP5
00003527: AND
00003528: SWAP2
00003529: AND
0000352a: LT
0000352b: JUMPDEST
0000352c: SWAP1
0000352d: POP
0000352e: PUSH16 0xffffffffffffffffffffffffffffffff
0000353f: DUP5
00003540: AND
00003541: ISZERO
00003542: DUP2
00003543: DUP1
00003544: ISZERO
00003545: PUSH2 0x354b
00003548: JUMPI
00003549: POP
0000354a: DUP1
0000354b: JUMPDEST
0000354c: PUSH2 0x162f
0000354f: JUMPI
00003550: PUSH1 0x40
00003552: MLOAD
00003553: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003574: DUP2
00003575: MSTORE
00003576: PUSH1 0x20
00003578: PUSH1 0x04
0000357a: DUP3
0000357b: ADD
0000357c: MSTORE
0000357d: PUSH1 0x02
0000357f: PUSH1 0x24
00003581: DUP3
00003582: ADD
00003583: MSTORE
00003584: PUSH32 0x5246000000000000000000000000000000000000000000000000000000000000
000035a5: PUSH1 0x44
000035a7: DUP3
000035a8: ADD
000035a9: MSTORE
000035aa: PUSH1 0x64
000035ac: ADD
000035ad: PUSH2 0x10ea
000035b0: JUMP
000035b1: JUMPDEST
000035b2: PUSH1 0x00
000035b4: PUSH2 0x0e37
000035b7: PUSH2 0x35c3
000035ba: DUP4
000035bb: PUSH1 0x02
000035bd: SIGNEXTEND
000035be: PUSH1 0x10
000035c0: SAR
000035c1: SWAP1
000035c2: JUMP
000035c3: JUMPDEST
000035c4: PUSH2 0x45e2
000035c7: JUMP
000035c8: JUMPDEST
000035c9: PUSH1 0x00
000035cb: PUSH2 0x0100
000035ce: PUSH2 0x35da
000035d1: DUP4
000035d2: PUSH1 0x02
000035d4: SIGNEXTEND
000035d5: PUSH1 0x08
000035d7: SAR
000035d8: SWAP1
000035d9: JUMP
000035da: JUMPDEST
000035db: PUSH2 0x0e37
000035de: SWAP2
000035df: SWAP1
000035e0: PUSH2 0x5d5f
000035e3: JUMP
000035e4: JUMPDEST
000035e5: PUSH1 0x00
000035e7: DUP1
000035e8: PUSH2 0x3601
000035eb: PUSH2 0x35f3
000035ee: DUP6
000035ef: PUSH2 0x4602
000035f2: JUMP
000035f3: JUMPDEST
000035f4: PUSH1 0x08
000035f6: SHL
000035f7: PUSH1 0x01
000035f9: SIGNEXTEND
000035fa: PUSH1 0xff
000035fc: DUP6
000035fd: AND
000035fe: ADD
000035ff: SWAP1
00003600: JUMP
00003601: JUMPDEST
00003602: SWAP1
00003603: POP
00003604: DUP5
00003605: DUP2
00003606: PUSH1 0x40
00003608: MLOAD
00003609: PUSH1 0x20
0000360b: ADD
0000360c: PUSH2 0x3622
0000360f: SWAP3
00003610: SWAP2
00003611: SWAP1
00003612: SWAP2
00003613: DUP3
00003614: MSTORE
00003615: PUSH1 0xf0
00003617: SHL
00003618: PUSH1 0x20
0000361a: DUP3
0000361b: ADD
0000361c: MSTORE
0000361d: PUSH1 0x22
0000361f: ADD
00003620: SWAP1
00003621: JUMP
00003622: JUMPDEST
00003623: PUSH1 0x40
00003625: MLOAD
00003626: PUSH1 0x20
00003628: DUP2
00003629: DUP4
0000362a: SUB
0000362b: SUB
0000362c: DUP2
0000362d: MSTORE
0000362e: SWAP1
0000362f: PUSH1 0x40
00003631: MSTORE
00003632: DUP1
00003633: MLOAD
00003634: SWAP1
00003635: PUSH1 0x20
00003637: ADD
00003638: KECCAK256
00003639: SWAP2
0000363a: POP
0000363b: POP
0000363c: SWAP4
0000363d: SWAP3
0000363e: POP
0000363f: POP
00003640: POP
00003641: JUMP
00003642: JUMPDEST
00003643: PUSH1 0x00
00003645: PUSH2 0x19cb
00003648: PUSH2 0x3650
0000364b: DUP6
0000364c: PUSH2 0x4602
0000364f: JUMP
00003650: JUMPDEST
00003651: PUSH1 0x10
00003653: SHL
00003654: PUSH1 0x02
00003656: SIGNEXTEND
00003657: PUSH2 0xff00
0000365a: PUSH1 0x08
0000365c: DUP7
0000365d: SWAP1
0000365e: SHL
0000365f: AND
00003660: PUSH1 0x03
00003662: SIGNEXTEND
00003663: ADD
00003664: PUSH1 0xff
00003666: DUP5
00003667: AND
00003668: ADD
00003669: SWAP1
0000366a: JUMP
0000366b: JUMPDEST
0000366c: PUSH1 0x00
0000366e: PUSH2 0x05f5
00003671: DUP4
00003672: PUSH2 0x367a
00003675: DUP5
00003676: PUSH2 0x4602
00003679: JUMP
0000367a: JUMPDEST
0000367b: PUSH2 0x4641
0000367e: JUMP
0000367f: JUMPDEST
00003680: PUSH1 0x00
00003682: PUSH1 0xff
00003684: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000036a5: DUP4
000036a6: ADD
000036a7: JUMPDEST
000036a8: PUSH1 0xff
000036aa: DUP2
000036ab: PUSH1 0xff
000036ad: AND
000036ae: LT
000036af: ISZERO
000036b0: PUSH2 0x3700
000036b3: JUMPI
000036b4: PUSH1 0x00
000036b6: DUP1
000036b7: PUSH2 0x36c3
000036ba: DUP8
000036bb: DUP5
000036bc: DUP7
000036bd: PUSH1 0x00
000036bf: PUSH2 0x2c65
000036c2: JUMP
000036c3: JUMPDEST
000036c4: SWAP2
000036c5: POP
000036c6: SWAP2
000036c7: POP
000036c8: DUP1
000036c9: PUSH2 0x36d7
000036cc: JUMPI
000036cd: POP
000036ce: SWAP3
000036cf: POP
000036d0: PUSH2 0x0e37
000036d3: SWAP2
000036d4: POP
000036d5: POP
000036d6: JUMP
000036d7: JUMPDEST
000036d8: POP
000036d9: POP
000036da: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000036fb: ADD
000036fc: PUSH2 0x36a7
000036ff: JUMP
00003700: JUMPDEST
00003701: POP
00003702: PUSH2 0x19cb
00003705: PUSH1 0x00
00003707: PUSH2 0x41c0
0000370a: JUMP
0000370b: JUMPDEST
0000370c: PUSH1 0x00
0000370e: DUP1
0000370f: PUSH1 0x01
00003711: DUP4
00003712: ADD
00003713: JUMPDEST
00003714: PUSH1 0xff
00003716: DUP2
00003717: AND
00003718: ISZERO
00003719: PUSH2 0x374a
0000371c: JUMPI
0000371d: PUSH1 0x00
0000371f: DUP1
00003720: PUSH2 0x372c
00003723: DUP8
00003724: DUP5
00003725: DUP7
00003726: PUSH1 0x01
00003728: PUSH2 0x2c65
0000372b: JUMP
0000372c: JUMPDEST
0000372d: SWAP2
0000372e: POP
0000372f: SWAP2
00003730: POP
00003731: DUP1
00003732: PUSH2 0x3740
00003735: JUMPI
00003736: POP
00003737: SWAP3
00003738: POP
00003739: PUSH2 0x0e37
0000373c: SWAP2
0000373d: POP
0000373e: POP
0000373f: JUMP
00003740: JUMPDEST
00003741: POP
00003742: POP
00003743: PUSH1 0x01
00003745: ADD
00003746: PUSH2 0x3713
00003749: JUMP
0000374a: JUMPDEST
0000374b: POP
0000374c: PUSH2 0x19cb
0000374f: PUSH1 0x01
00003751: PUSH2 0x41c0
00003754: JUMP
00003755: JUMPDEST
00003756: PUSH1 0x00
00003758: DUP1
00003759: PUSH1 0x00
0000375b: PUSH2 0x3764
0000375e: DUP8
0000375f: DUP8
00003760: PUSH2 0x4662
00003763: JUMP
00003764: JUMPDEST
00003765: DUP1
00003766: SLOAD
00003767: SWAP1
00003768: SWAP2
00003769: POP
0000376a: PUSH1 0x00
0000376c: SWAP1
0000376d: PUSH2 0x3797
00003770: SWAP1
00003771: PUSH12 0xffffffffffffffffffffffff
0000377e: DUP1
0000377f: DUP3
00003780: AND
00003781: SWAP2
00003782: PUSH13 0x01000000000000000000000000
00003790: SWAP1
00003791: DIV
00003792: AND
00003793: PUSH2 0x46b5
00003796: JUMP
00003797: JUMPDEST
00003798: SWAP1
00003799: POP
0000379a: DUP6
0000379b: PUSH2 0x37ac
0000379e: JUMPI
0000379f: PUSH2 0x37a7
000037a2: DUP2
000037a3: PUSH2 0x5bd5
000037a6: JUMP
000037a7: JUMPDEST
000037a8: PUSH2 0x37ae
000037ab: JUMP
000037ac: JUMPDEST
000037ad: DUP1
000037ae: JUMPDEST
000037af: DUP3
000037b0: SLOAD
000037b1: SWAP1
000037b2: SWAP5
000037b3: POP
000037b4: PUSH8 0xffffffffffffffff
000037bd: DUP7
000037be: DUP2
000037bf: AND
000037c0: PUSH25 0x01000000000000000000000000000000000000000000000000
000037da: SWAP1
000037db: SWAP3
000037dc: DIV
000037dd: AND
000037de: EQ
000037df: PUSH2 0x385e
000037e2: JUMPI
000037e3: DUP2
000037e4: SLOAD
000037e5: PUSH2 0x3814
000037e8: SWAP1
000037e9: PUSH25 0x01000000000000000000000000000000000000000000000000
00003803: SWAP1
00003804: DIV
00003805: PUSH8 0xffffffffffffffff
0000380e: AND
0000380f: DUP7
00003810: PUSH2 0x5d81
00003813: JUMP
00003814: JUMPDEST
00003815: DUP3
00003816: SLOAD
00003817: PUSH8 0xffffffffffffffff
00003820: SWAP2
00003821: SWAP1
00003822: SWAP2
00003823: AND
00003824: PUSH25 0x01000000000000000000000000000000000000000000000000
0000383e: MUL
0000383f: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff
00003858: SWAP1
00003859: SWAP2
0000385a: AND
0000385b: OR
0000385c: DUP3
0000385d: SSTORE
0000385e: JUMPDEST
0000385f: DUP6
00003860: PUSH2 0x386f
00003863: JUMPI
00003864: DUP2
00003865: SLOAD
00003866: PUSH1 0x01
00003868: AND
00003869: ISZERO
0000386a: ISZERO
0000386b: PUSH2 0x3887
0000386e: JUMP
0000386f: JUMPDEST
00003870: DUP2
00003871: SLOAD
00003872: PUSH13 0x01000000000000000000000000
00003880: SWAP1
00003881: DIV
00003882: PUSH1 0x01
00003884: AND
00003885: ISZERO
00003886: ISZERO
00003887: JUMPDEST
00003888: SWAP3
00003889: POP
0000388a: POP
0000388b: POP
0000388c: SWAP5
0000388d: POP
0000388e: SWAP5
0000388f: SWAP3
00003890: POP
00003891: POP
00003892: POP
00003893: JUMP
00003894: JUMPDEST
00003895: PUSH1 0x00
00003897: DUP1
00003898: DUP3
00003899: PUSH1 0x0f
0000389b: SIGNEXTEND
0000389c: SLT
0000389d: ISZERO
0000389e: PUSH2 0x38cb
000038a1: JUMPI
000038a2: POP
000038a3: DUP1
000038a4: DUP3
000038a5: ADD
000038a6: PUSH16 0xffffffffffffffffffffffffffffffff
000038b7: DUP1
000038b8: DUP5
000038b9: AND
000038ba: SWAP1
000038bb: DUP3
000038bc: AND
000038bd: LT
000038be: PUSH2 0x38c6
000038c1: JUMPI
000038c2: PUSH1 0x00
000038c4: DUP1
000038c5: REVERT
000038c6: JUMPDEST
000038c7: PUSH2 0x0e37
000038ca: JUMP
000038cb: JUMPDEST
000038cc: DUP3
000038cd: PUSH16 0xffffffffffffffffffffffffffffffff
000038de: AND
000038df: DUP3
000038e0: DUP5
000038e1: ADD
000038e2: SWAP2
000038e3: POP
000038e4: DUP2
000038e5: PUSH16 0xffffffffffffffffffffffffffffffff
000038f6: AND
000038f7: LT
000038f8: ISZERO
000038f9: PUSH2 0x0e37
000038fc: JUMPI
000038fd: PUSH1 0x00
000038ff: DUP1
00003900: REVERT
00003901: JUMPDEST
00003902: PUSH2 0x0dad
00003905: SLOAD
00003906: PUSH1 0x00
00003908: SWAP1
00003909: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000391e: AND
0000391f: PUSH2 0x3927
00003922: JUMPI
00003923: PUSH1 0x00
00003925: DUP1
00003926: REVERT
00003927: JUMPDEST
00003928: PUSH1 0x00
0000392a: DUP1
0000392b: PUSH1 0x01
0000392d: PUSH2 0x0dac
00003930: ADD
00003931: SLOAD
00003932: PUSH1 0x40
00003934: MLOAD
00003935: PUSH1 0x24
00003937: DUP2
00003938: ADD
00003939: DUP10
0000393a: SWAP1
0000393b: MSTORE
0000393c: PUSH1 0x02
0000393e: DUP9
0000393f: SWAP1
00003940: SIGNEXTEND
00003941: PUSH1 0x44
00003943: DUP3
00003944: ADD
00003945: MSTORE
00003946: DUP7
00003947: ISZERO
00003948: ISZERO
00003949: PUSH1 0x64
0000394b: DUP3
0000394c: ADD
0000394d: MSTORE
0000394e: PUSH8 0xffffffffffffffff
00003957: DUP7
00003958: AND
00003959: PUSH1 0x84
0000395b: DUP3
0000395c: ADD
0000395d: MSTORE
0000395e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003973: SWAP1
00003974: SWAP2
00003975: AND
00003976: SWAP1
00003977: PUSH1 0xa4
00003979: ADD
0000397a: PUSH1 0x40
0000397c: DUP1
0000397d: MLOAD
0000397e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000399f: DUP2
000039a0: DUP5
000039a1: SUB
000039a2: ADD
000039a3: DUP2
000039a4: MSTORE
000039a5: SWAP2
000039a6: DUP2
000039a7: MSTORE
000039a8: PUSH1 0x20
000039aa: DUP3
000039ab: ADD
000039ac: DUP1
000039ad: MLOAD
000039ae: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000039cb: AND
000039cc: PUSH32 0x3c05c62100000000000000000000000000000000000000000000000000000000
000039ed: OR
000039ee: SWAP1
000039ef: MSTORE
000039f0: MLOAD
000039f1: PUSH2 0x39fa
000039f4: SWAP2
000039f5: SWAP1
000039f6: PUSH2 0x596c
000039f9: JUMP
000039fa: JUMPDEST
000039fb: PUSH1 0x00
000039fd: PUSH1 0x40
000039ff: MLOAD
00003a00: DUP1
00003a01: DUP4
00003a02: SUB
00003a03: DUP2
00003a04: DUP6
00003a05: GAS
00003a06: DELEGATECALL
00003a07: SWAP2
00003a08: POP
00003a09: POP
00003a0a: RETURNDATASIZE
00003a0b: DUP1
00003a0c: PUSH1 0x00
00003a0e: DUP2
00003a0f: EQ
00003a10: PUSH2 0x3a35
00003a13: JUMPI
00003a14: PUSH1 0x40
00003a16: MLOAD
00003a17: SWAP2
00003a18: POP
00003a19: PUSH1 0x1f
00003a1b: NOT
00003a1c: PUSH1 0x3f
00003a1e: RETURNDATASIZE
00003a1f: ADD
00003a20: AND
00003a21: DUP3
00003a22: ADD
00003a23: PUSH1 0x40
00003a25: MSTORE
00003a26: RETURNDATASIZE
00003a27: DUP3
00003a28: MSTORE
00003a29: RETURNDATASIZE
00003a2a: PUSH1 0x00
00003a2c: PUSH1 0x20
00003a2e: DUP5
00003a2f: ADD
00003a30: RETURNDATACOPY
00003a31: PUSH2 0x3a3a
00003a34: JUMP
00003a35: JUMPDEST
00003a36: PUSH1 0x60
00003a38: SWAP2
00003a39: POP
00003a3a: JUMPDEST
00003a3b: POP
00003a3c: SWAP2
00003a3d: POP
00003a3e: SWAP2
00003a3f: POP
00003a40: DUP2
00003a41: PUSH2 0x3a49
00003a44: JUMPI
00003a45: PUSH1 0x00
00003a47: DUP1
00003a48: REVERT
00003a49: JUMPDEST
00003a4a: DUP1
00003a4b: DUP1
00003a4c: PUSH1 0x20
00003a4e: ADD
00003a4f: SWAP1
00003a50: MLOAD
00003a51: DUP2
00003a52: ADD
00003a53: SWAP1
00003a54: PUSH2 0x3a5d
00003a57: SWAP2
00003a58: SWAP1
00003a59: PUSH2 0x5da2
00003a5c: JUMP
00003a5d: JUMPDEST
00003a5e: SWAP8
00003a5f: SWAP7
00003a60: POP
00003a61: POP
00003a62: POP
00003a63: POP
00003a64: POP
00003a65: POP
00003a66: POP
00003a67: JUMP
00003a68: JUMPDEST
00003a69: PUSH1 0x00
00003a6b: DUP1
00003a6c: PUSH2 0x3a7d
00003a6f: DUP4
00003a70: PUSH1 0x20
00003a72: ADD
00003a73: MLOAD
00003a74: DUP5
00003a75: PUSH1 0x60
00003a77: ADD
00003a78: MLOAD
00003a79: PUSH2 0x46d1
00003a7c: JUMP
00003a7d: JUMPDEST
00003a7e: SWAP1
00003a7f: POP
00003a80: PUSH2 0x05f5
00003a83: DUP2
00003a84: DUP5
00003a85: PUSH1 0x40
00003a87: ADD
00003a88: MLOAD
00003a89: PUSH2 0x4726
00003a8c: JUMP
00003a8d: JUMPDEST
00003a8e: PUSH1 0x00
00003a90: DUP2
00003a91: ISZERO
00003a92: PUSH2 0x3aad
00003a95: JUMPI
00003a96: POP
00003a97: PUSH1 0x01
00003a99: PUSH8 0xffffffffffffffff
00003aa2: PUSH1 0x40
00003aa4: DUP6
00003aa5: SWAP1
00003aa6: SHR
00003aa7: AND
00003aa8: ADD
00003aa9: PUSH2 0x05f5
00003aac: JUMP
00003aad: JUMPDEST
00003aae: PUSH1 0x00
00003ab0: PUSH2 0x3abc
00003ab3: DUP6
00003ab4: PUSH1 0x01
00003ab6: DUP7
00003ab7: SUB
00003ab8: PUSH2 0x474b
00003abb: JUMP
00003abc: JUMPDEST
00003abd: SWAP1
00003abe: POP
00003abf: PUSH1 0x00
00003ac1: PUSH2 0x3aca
00003ac4: DUP7
00003ac5: DUP7
00003ac6: PUSH2 0x474b
00003ac9: JUMP
00003aca: JUMPDEST
00003acb: SWAP1
00003acc: POP
00003acd: DUP1
00003ace: DUP3
00003acf: SUB
00003ad0: PUSH1 0x01
00003ad2: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff
00003aeb: DUP3
00003aec: AND
00003aed: ADD
00003aee: PUSH2 0x3af6
00003af1: DUP2
00003af2: PUSH2 0x2eff
00003af5: JUMP
00003af6: JUMPDEST
00003af7: SWAP5
00003af8: POP
00003af9: POP
00003afa: POP
00003afb: POP
00003afc: POP
00003afd: PUSH2 0x05f5
00003b00: JUMP
00003b01: JUMPDEST
00003b02: PUSH1 0x00
00003b04: DUP1
00003b05: PUSH1 0x00
00003b07: PUSH1 0x01
00003b09: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472
00003b1a: SUB
00003b1b: PUSH16 0xffffffffffffffffffffffffffffffff
00003b2c: AND
00003b2d: DUP7
00003b2e: PUSH1 0x00
00003b30: ADD
00003b31: MLOAD
00003b32: PUSH16 0xffffffffffffffffffffffffffffffff
00003b43: AND
00003b44: LT
00003b45: ISZERO
00003b46: PUSH2 0x3b63
00003b49: JUMPI
00003b4a: DUP6
00003b4b: MLOAD
00003b4c: PUSH1 0x01
00003b4e: ADD
00003b4f: PUSH16 0xffffffffffffffffffffffffffffffff
00003b60: AND
00003b61: DUP7
00003b62: MSTORE
00003b63: JUMPDEST
00003b64: PUSH1 0x00
00003b66: SWAP2
00003b67: POP
00003b68: PUSH2 0x3b82
00003b6b: DUP5
00003b6c: PUSH16 0xffffffffffffffffffffffffffffffff
00003b7d: AND
00003b7e: PUSH2 0x4394
00003b81: JUMP
00003b82: JUMPDEST
00003b83: SWAP3
00003b84: POP
00003b85: DUP5
00003b86: PUSH2 0x3b90
00003b89: JUMPI
00003b8a: PUSH1 0x00
00003b8c: PUSH2 0x3b92
00003b8f: JUMP
00003b90: JUMPDEST
00003b91: DUP4
00003b92: JUMPDEST
00003b93: SWAP1
00003b94: POP
00003b95: SWAP4
00003b96: POP
00003b97: SWAP4
00003b98: POP
00003b99: SWAP4
00003b9a: SWAP1
00003b9b: POP
00003b9c: JUMP
00003b9d: JUMPDEST
00003b9e: PUSH1 0x00
00003ba0: DUP1
00003ba1: PUSH1 0x00
00003ba3: PUSH3 0x010002
00003ba7: PUSH16 0xffffffffffffffffffffffffffffffff
00003bb8: AND
00003bb9: DUP7
00003bba: PUSH1 0x00
00003bbc: ADD
00003bbd: MLOAD
00003bbe: PUSH16 0xffffffffffffffffffffffffffffffff
00003bcf: AND
00003bd0: GT
00003bd1: ISZERO
00003bd2: PUSH2 0x3c0e
00003bd5: JUMPI
00003bd6: DUP6
00003bd7: MLOAD
00003bd8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003bf9: ADD
00003bfa: PUSH16 0xffffffffffffffffffffffffffffffff
00003c0b: AND
00003c0c: DUP7
00003c0d: MSTORE
00003c0e: JUMPDEST
00003c0f: PUSH1 0x00
00003c11: SWAP3
00003c12: POP
00003c13: PUSH2 0x3c2d
00003c16: DUP5
00003c17: PUSH16 0xffffffffffffffffffffffffffffffff
00003c28: AND
00003c29: PUSH2 0x4394
00003c2c: JUMP
00003c2d: JUMPDEST
00003c2e: SWAP2
00003c2f: POP
00003c30: DUP5
00003c31: PUSH2 0x3c3a
00003c34: JUMPI
00003c35: DUP4
00003c36: PUSH2 0x3b92
00003c39: JUMP
00003c3a: JUMPDEST
00003c3b: PUSH1 0x00
00003c3d: SWAP1
00003c3e: POP
00003c3f: SWAP4
00003c40: POP
00003c41: SWAP4
00003c42: POP
00003c43: SWAP4
00003c44: SWAP1
00003c45: POP
00003c46: JUMP
00003c47: JUMPDEST
00003c48: PUSH1 0x00
00003c4a: DUP1
00003c4b: PUSH2 0x3c54
00003c4e: DUP6
00003c4f: DUP5
00003c50: PUSH2 0x0ec8
00003c53: JUMP
00003c54: JUMPDEST
00003c55: PUSH1 0x00
00003c57: DUP2
00003c58: DUP2
00003c59: MSTORE
00003c5a: PUSH3 0x010010
00003c5e: PUSH1 0x20
00003c60: MSTORE
00003c61: PUSH1 0x40
00003c63: SWAP1
00003c64: KECCAK256
00003c65: DUP1
00003c66: SLOAD
00003c67: SWAP2
00003c68: SWAP3
00003c69: POP
00003c6a: SWAP1
00003c6b: PUSH16 0xffffffffffffffffffffffffffffffff
00003c7c: SWAP1
00003c7d: DUP2
00003c7e: AND
00003c7f: SWAP1
00003c80: DUP7
00003c81: AND
00003c82: DUP2
00003c83: GT
00003c84: ISZERO
00003c85: PUSH2 0x3ce9
00003c88: JUMPI
00003c89: DUP2
00003c8a: SLOAD
00003c8b: DUP7
00003c8c: SWAP1
00003c8d: DUP4
00003c8e: SWAP1
00003c8f: PUSH1 0x00
00003c91: SWAP1
00003c92: PUSH2 0x3cae
00003c95: SWAP1
00003c96: DUP5
00003c97: SWAP1
00003c98: PUSH16 0xffffffffffffffffffffffffffffffff
00003ca9: AND
00003caa: PUSH2 0x5a8e
00003cad: JUMP
00003cae: JUMPDEST
00003caf: SWAP3
00003cb0: POP
00003cb1: PUSH2 0x0100
00003cb4: EXP
00003cb5: DUP2
00003cb6: SLOAD
00003cb7: DUP2
00003cb8: PUSH16 0xffffffffffffffffffffffffffffffff
00003cc9: MUL
00003cca: NOT
00003ccb: AND
00003ccc: SWAP1
00003ccd: DUP4
00003cce: PUSH16 0xffffffffffffffffffffffffffffffff
00003cdf: AND
00003ce0: MUL
00003ce1: OR
00003ce2: SWAP1
00003ce3: SSTORE
00003ce4: POP
00003ce5: PUSH2 0x3d1c
00003ce8: JUMP
00003ce9: JUMPDEST
00003cea: DUP2
00003ceb: SLOAD
00003cec: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000
00003d0d: AND
00003d0e: DUP3
00003d0f: SSTORE
00003d10: PUSH2 0x3d19
00003d13: DUP2
00003d14: DUP8
00003d15: PUSH2 0x5a8e
00003d18: JUMP
00003d19: JUMPDEST
00003d1a: SWAP4
00003d1b: POP
00003d1c: JUMPDEST
00003d1d: POP
00003d1e: POP
00003d1f: POP
00003d20: SWAP4
00003d21: SWAP3
00003d22: POP
00003d23: POP
00003d24: POP
00003d25: JUMP
00003d26: JUMPDEST
00003d27: PUSH16 0xffffffffffffffffffffffffffffffff
00003d38: DUP4
00003d39: AND
00003d3a: ISZERO
00003d3b: PUSH2 0x3d4f
00003d3e: JUMPI
00003d3f: PUSH2 0x3d4a
00003d42: DUP5
00003d43: DUP5
00003d44: DUP5
00003d45: DUP5
00003d46: PUSH2 0x3d74
00003d49: JUMP
00003d4a: JUMPDEST
00003d4b: PUSH2 0x0bf7
00003d4e: JUMP
00003d4f: JUMPDEST
00003d50: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003d65: DUP3
00003d66: AND
00003d67: PUSH2 0x0bf7
00003d6a: JUMPI
00003d6b: PUSH2 0x0bf7
00003d6e: DUP5
00003d6f: DUP3
00003d70: PUSH2 0x2917
00003d73: JUMP
00003d74: JUMPDEST
00003d75: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003d8a: DUP3
00003d8b: AND
00003d8c: PUSH2 0x3d9a
00003d8f: JUMPI
00003d90: PUSH2 0x3d4a
00003d93: DUP5
00003d94: DUP5
00003d95: DUP4
00003d96: PUSH2 0x4794
00003d99: JUMP
00003d9a: JUMPDEST
00003d9b: PUSH2 0x0bf7
00003d9e: DUP5
00003d9f: DUP5
00003da0: DUP5
00003da1: PUSH2 0x483a
00003da4: JUMP
00003da5: JUMPDEST
00003da6: PUSH1 0x00
00003da8: PUSH2 0x3db1
00003dab: DUP5
00003dac: DUP4
00003dad: PUSH2 0x0ec8
00003db0: JUMP
00003db1: JUMPDEST
00003db2: PUSH1 0x00
00003db4: DUP2
00003db5: DUP2
00003db6: MSTORE
00003db7: PUSH3 0x010010
00003dbb: PUSH1 0x20
00003dbd: MSTORE
00003dbe: PUSH1 0x40
00003dc0: DUP2
00003dc1: KECCAK256
00003dc2: DUP1
00003dc3: SLOAD
00003dc4: SWAP3
00003dc5: SWAP4
00003dc6: POP
00003dc7: DUP6
00003dc8: SWAP3
00003dc9: SWAP1
00003dca: SWAP2
00003dcb: SWAP1
00003dcc: PUSH2 0x3de8
00003dcf: SWAP1
00003dd0: DUP5
00003dd1: SWAP1
00003dd2: PUSH16 0xffffffffffffffffffffffffffffffff
00003de3: AND
00003de4: PUSH2 0x5ab7
00003de7: JUMP
00003de8: JUMPDEST
00003de9: SWAP3
00003dea: POP
00003deb: PUSH2 0x0100
00003dee: EXP
00003def: DUP2
00003df0: SLOAD
00003df1: DUP2
00003df2: PUSH16 0xffffffffffffffffffffffffffffffff
00003e03: MUL
00003e04: NOT
00003e05: AND
00003e06: SWAP1
00003e07: DUP4
00003e08: PUSH16 0xffffffffffffffffffffffffffffffff
00003e19: AND
00003e1a: MUL
00003e1b: OR
00003e1c: SWAP1
00003e1d: SSTORE
00003e1e: POP
00003e1f: POP
00003e20: POP
00003e21: POP
00003e22: POP
00003e23: JUMP
00003e24: JUMPDEST
00003e25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003e3a: DUP3
00003e3b: AND
00003e3c: PUSH2 0x125f
00003e3f: JUMPI
00003e40: PUSH2 0x125f
00003e43: DUP4
00003e44: DUP3
00003e45: PUSH2 0x2917
00003e48: JUMP
00003e49: JUMPDEST
00003e4a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003e5f: DUP3
00003e60: AND
00003e61: PUSH2 0x3e6f
00003e64: JUMPI
00003e65: PUSH2 0x3d4a
00003e68: DUP5
00003e69: DUP5
00003e6a: DUP4
00003e6b: PUSH2 0x4858
00003e6e: JUMP
00003e6f: JUMPDEST
00003e70: PUSH2 0x0bf7
00003e73: DUP3
00003e74: DUP6
00003e75: DUP6
00003e76: PUSH16 0xffffffffffffffffffffffffffffffff
00003e87: AND
00003e88: PUSH2 0x487d
00003e8b: JUMP
00003e8c: JUMPDEST
00003e8d: PUSH1 0x00
00003e8f: DUP2
00003e90: PUSH2 0x3ea2
00003e93: JUMPI
00003e94: PUSH2 0xffff
00003e97: DUP4
00003e98: AND
00003e99: DUP5
00003e9a: DUP2
00003e9b: SHL
00003e9c: SWAP1
00003e9d: SHR
00003e9e: PUSH2 0x19cb
00003ea1: JUMP
00003ea2: JUMPDEST
00003ea3: POP
00003ea4: POP
00003ea5: PUSH2 0xffff
00003ea8: AND
00003ea9: SWAP1
00003eaa: DUP2
00003eab: SHR
00003eac: SWAP1
00003ead: SHL
00003eae: SWAP1
00003eaf: JUMP
00003eb0: JUMPDEST
00003eb1: PUSH1 0x00
00003eb3: DUP1
00003eb4: DUP3
00003eb5: GT
00003eb6: PUSH2 0x3ebe
00003eb9: JUMPI
00003eba: PUSH1 0x00
00003ebc: DUP1
00003ebd: REVERT
00003ebe: JUMPDEST
00003ebf: PUSH17 0x0100000000000000000000000000000000
00003ed1: DUP3
00003ed2: LT
00003ed3: PUSH2 0x3ede
00003ed6: JUMPI
00003ed7: PUSH1 0x80
00003ed9: SWAP2
00003eda: DUP3
00003edb: SHR
00003edc: SWAP2
00003edd: ADD
00003ede: JUMPDEST
00003edf: PUSH9 0x010000000000000000
00003ee9: DUP3
00003eea: LT
00003eeb: PUSH2 0x3ef6
00003eee: JUMPI
00003eef: PUSH1 0x40
00003ef1: SWAP2
00003ef2: DUP3
00003ef3: SHR
00003ef4: SWAP2
00003ef5: ADD
00003ef6: JUMPDEST
00003ef7: PUSH5 0x0100000000
00003efd: DUP3
00003efe: LT
00003eff: PUSH2 0x3f0a
00003f02: JUMPI
00003f03: PUSH1 0x20
00003f05: SWAP2
00003f06: DUP3
00003f07: SHR
00003f08: SWAP2
00003f09: ADD
00003f0a: JUMPDEST
00003f0b: PUSH3 0x010000
00003f0f: DUP3
00003f10: LT
00003f11: PUSH2 0x3f1c
00003f14: JUMPI
00003f15: PUSH1 0x10
00003f17: SWAP2
00003f18: DUP3
00003f19: SHR
00003f1a: SWAP2
00003f1b: ADD
00003f1c: JUMPDEST
00003f1d: PUSH2 0x0100
00003f20: DUP3
00003f21: LT
00003f22: PUSH2 0x3f2d
00003f25: JUMPI
00003f26: PUSH1 0x08
00003f28: SWAP2
00003f29: DUP3
00003f2a: SHR
00003f2b: SWAP2
00003f2c: ADD
00003f2d: JUMPDEST
00003f2e: PUSH1 0x10
00003f30: DUP3
00003f31: LT
00003f32: PUSH2 0x3f3d
00003f35: JUMPI
00003f36: PUSH1 0x04
00003f38: SWAP2
00003f39: DUP3
00003f3a: SHR
00003f3b: SWAP2
00003f3c: ADD
00003f3d: JUMPDEST
00003f3e: PUSH1 0x04
00003f40: DUP3
00003f41: LT
00003f42: PUSH2 0x3f4d
00003f45: JUMPI
00003f46: PUSH1 0x02
00003f48: SWAP2
00003f49: DUP3
00003f4a: SHR
00003f4b: SWAP2
00003f4c: ADD
00003f4d: JUMPDEST
00003f4e: PUSH1 0x02
00003f50: DUP3
00003f51: LT
00003f52: PUSH2 0x1bb9
00003f55: JUMPI
00003f56: PUSH1 0x01
00003f58: ADD
00003f59: SWAP2
00003f5a: SWAP1
00003f5b: POP
00003f5c: JUMP
00003f5d: JUMPDEST
00003f5e: PUSH1 0x00
00003f60: DUP1
00003f61: DUP3
00003f62: GT
00003f63: PUSH2 0x3f6b
00003f66: JUMPI
00003f67: PUSH1 0x00
00003f69: DUP1
00003f6a: REVERT
00003f6b: JUMPDEST
00003f6c: POP
00003f6d: PUSH1 0xff
00003f6f: PUSH16 0xffffffffffffffffffffffffffffffff
00003f80: DUP3
00003f81: AND
00003f82: ISZERO
00003f83: PUSH2 0x3fad
00003f86: JUMPI
00003f87: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80
00003fa8: ADD
00003fa9: PUSH2 0x3fb5
00003fac: JUMP
00003fad: JUMPDEST
00003fae: PUSH1 0x80
00003fb0: DUP3
00003fb1: SWAP1
00003fb2: SHR
00003fb3: SWAP2
00003fb4: POP
00003fb5: JUMPDEST
00003fb6: PUSH8 0xffffffffffffffff
00003fbf: DUP3
00003fc0: AND
00003fc1: ISZERO
00003fc2: PUSH2 0x3fec
00003fc5: JUMPI
00003fc6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0
00003fe7: ADD
00003fe8: PUSH2 0x3ff4
00003feb: JUMP
00003fec: JUMPDEST
00003fed: PUSH1 0x40
00003fef: DUP3
00003ff0: SWAP1
00003ff1: SHR
00003ff2: SWAP2
00003ff3: POP
00003ff4: JUMPDEST
00003ff5: PUSH4 0xffffffff
00003ffa: DUP3
00003ffb: AND
00003ffc: ISZERO
00003ffd: PUSH2 0x4027
00004000: JUMPI
00004001: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00004022: ADD
00004023: PUSH2 0x402f
00004026: JUMP
00004027: JUMPDEST
00004028: PUSH1 0x20
0000402a: DUP3
0000402b: SWAP1
0000402c: SHR
0000402d: SWAP2
0000402e: POP
0000402f: JUMPDEST
00004030: PUSH2 0xffff
00004033: DUP3
00004034: AND
00004035: ISZERO
00004036: PUSH2 0x4060
00004039: JUMPI
0000403a: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0
0000405b: ADD
0000405c: PUSH2 0x4068
0000405f: JUMP
00004060: JUMPDEST
00004061: PUSH1 0x10
00004063: DUP3
00004064: SWAP1
00004065: SHR
00004066: SWAP2
00004067: POP
00004068: JUMPDEST
00004069: PUSH1 0xff
0000406b: DUP3
0000406c: AND
0000406d: ISZERO
0000406e: PUSH2 0x4098
00004071: JUMPI
00004072: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8
00004093: ADD
00004094: PUSH2 0x40a0
00004097: JUMP
00004098: JUMPDEST
00004099: PUSH1 0x08
0000409b: DUP3
0000409c: SWAP1
0000409d: SHR
0000409e: SWAP2
0000409f: POP
000040a0: JUMPDEST
000040a1: PUSH1 0x0f
000040a3: DUP3
000040a4: AND
000040a5: ISZERO
000040a6: PUSH2 0x40d0
000040a9: JUMPI
000040aa: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000040cb: ADD
000040cc: PUSH2 0x40d8
000040cf: JUMP
000040d0: JUMPDEST
000040d1: PUSH1 0x04
000040d3: DUP3
000040d4: SWAP1
000040d5: SHR
000040d6: SWAP2
000040d7: POP
000040d8: JUMPDEST
000040d9: PUSH1 0x03
000040db: DUP3
000040dc: AND
000040dd: ISZERO
000040de: PUSH2 0x4108
000040e1: JUMPI
000040e2: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
00004103: ADD
00004104: PUSH2 0x4110
00004107: JUMP
00004108: JUMPDEST
00004109: PUSH1 0x02
0000410b: DUP3
0000410c: SWAP1
0000410d: SHR
0000410e: SWAP2
0000410f: POP
00004110: JUMPDEST
00004111: PUSH1 0x01
00004113: DUP3
00004114: AND
00004115: ISZERO
00004116: PUSH2 0x1bb9
00004119: JUMPI
0000411a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000413b: ADD
0000413c: SWAP2
0000413d: SWAP1
0000413e: POP
0000413f: JUMP
00004140: JUMPDEST
00004141: PUSH1 0x00
00004143: DUP1
00004144: PUSH1 0x00
00004146: PUSH2 0x4154
00004149: DUP6
0000414a: DUP6
0000414b: PUSH1 0xff
0000414d: AND
0000414e: PUSH1 0x01
00004150: PUSH2 0x30b3
00004153: JUMP
00004154: JUMPDEST
00004155: SWAP2
00004156: POP
00004157: PUSH1 0xff
00004159: AND
0000415a: SWAP2
0000415b: POP
0000415c: DUP1
0000415d: ISZERO
0000415e: DUP1
0000415f: ISZERO
00004160: PUSH2 0x1025
00004163: JUMPI
00004164: POP
00004165: DUP4
00004166: PUSH1 0xff
00004168: AND
00004169: DUP3
0000416a: EQ
0000416b: SWAP3
0000416c: POP
0000416d: POP
0000416e: POP
0000416f: SWAP3
00004170: SWAP2
00004171: POP
00004172: POP
00004173: JUMP
00004174: JUMPDEST
00004175: PUSH1 0x00
00004177: DUP2
00004178: PUSH2 0x41a1
0000417b: JUMPI
0000417c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000
0000419d: PUSH2 0x0e37
000041a0: JUMP
000041a1: JUMPDEST
000041a2: PUSH2 0x7fff
000041a5: SWAP3
000041a6: SWAP2
000041a7: POP
000041a8: POP
000041a9: JUMP
000041aa: JUMPDEST
000041ab: PUSH1 0x00
000041ad: DUP2
000041ae: PUSH2 0x41b8
000041b1: JUMPI
000041b2: PUSH1 0x00
000041b4: PUSH2 0x0e37
000041b7: JUMP
000041b8: JUMPDEST
000041b9: PUSH1 0xff
000041bb: SWAP3
000041bc: SWAP2
000041bd: POP
000041be: POP
000041bf: JUMP
000041c0: JUMPDEST
000041c1: PUSH1 0x00
000041c3: DUP2
000041c4: PUSH2 0x41ed
000041c7: JUMPI
000041c8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
000041e9: PUSH2 0x0e37
000041ec: JUMP
000041ed: JUMPDEST
000041ee: PUSH3 0x7fffff
000041f2: SWAP3
000041f3: SWAP2
000041f4: POP
000041f5: POP
000041f6: JUMP
000041f7: JUMPDEST
000041f8: DUP4
000041f9: MLOAD
000041fa: PUSH1 0x00
000041fc: SWAP1
000041fd: PUSH16 0xffffffffffffffffffffffffffffffff
0000420e: SWAP1
0000420f: DUP2
00004210: AND
00004211: SWAP1
00004212: DUP4
00004213: AND
00004214: GT
00004215: DUP2
00004216: PUSH2 0x4221
00004219: DUP8
0000421a: DUP8
0000421b: DUP8
0000421c: DUP8
0000421d: PUSH2 0x338a
00004220: JUMP
00004221: JUMPDEST
00004222: SWAP1
00004223: POP
00004224: PUSH2 0x3a5d
00004227: PUSH2 0x422f
0000422a: DUP9
0000422b: PUSH2 0x3a68
0000422e: JUMP
0000422f: JUMPDEST
00004230: DUP9
00004231: MLOAD
00004232: DUP4
00004233: DUP6
00004234: DUP10
00004235: PUSH2 0x49e6
00004238: JUMP
00004239: JUMPDEST
0000423a: PUSH1 0x00
0000423c: PUSH1 0x02
0000423e: DUP2
0000423f: PUSH2 0x4249
00004242: DUP8
00004243: DUP8
00004244: DUP7
00004245: PUSH2 0x3a8d
00004248: JUMP
00004249: JUMPDEST
0000424a: PUSH2 0x4253
0000424d: SWAP1
0000424e: DUP4
0000424f: PUSH2 0x5a04
00004252: JUMP
00004253: JUMPDEST
00004254: SWAP1
00004255: POP
00004256: DUP1
00004257: PUSH16 0xffffffffffffffffffffffffffffffff
00004268: AND
00004269: DUP6
0000426a: PUSH16 0xffffffffffffffffffffffffffffffff
0000427b: AND
0000427c: GT
0000427d: ISZERO
0000427e: PUSH2 0x4289
00004281: JUMPI
00004282: DUP1
00004283: DUP6
00004284: SUB
00004285: PUSH2 0x3a5d
00004288: JUMP
00004289: JUMPDEST
0000428a: POP
0000428b: PUSH1 0x00
0000428d: SWAP7
0000428e: SWAP6
0000428f: POP
00004290: POP
00004291: POP
00004292: POP
00004293: POP
00004294: POP
00004295: JUMP
00004296: JUMPDEST
00004297: PUSH1 0x00
00004299: DUP1
0000429a: PUSH2 0x42a4
0000429d: DUP7
0000429e: DUP7
0000429f: DUP6
000042a0: PUSH2 0x4aff
000042a3: JUMP
000042a4: JUMPDEST
000042a5: SWAP1
000042a6: POP
000042a7: PUSH2 0x073e
000042aa: DUP2
000042ab: DUP6
000042ac: PUSH2 0x4b52
000042af: JUMP
000042b0: JUMPDEST
000042b1: DUP3
000042b2: MLOAD
000042b3: PUSH2 0x42bd
000042b6: SWAP1
000042b7: DUP4
000042b8: DUP4
000042b9: PUSH2 0x4c68
000042bc: JUMP
000042bd: JUMPDEST
000042be: PUSH16 0xffffffffffffffffffffffffffffffff
000042cf: AND
000042d0: DUP4
000042d1: MSTORE
000042d2: PUSH1 0x60
000042d4: DUP4
000042d5: ADD
000042d6: MLOAD
000042d7: PUSH2 0x42ea
000042da: SWAP1
000042db: PUSH8 0xffffffffffffffff
000042e4: AND
000042e5: DUP4
000042e6: PUSH2 0x4ce2
000042e9: JUMP
000042ea: JUMPDEST
000042eb: PUSH8 0xffffffffffffffff
000042f4: SWAP1
000042f5: DUP2
000042f6: AND
000042f7: PUSH1 0x60
000042f9: DUP6
000042fa: ADD
000042fb: DUP2
000042fc: SWAP1
000042fd: MSTORE
000042fe: PUSH1 0x00
00004300: SWAP2
00004301: PUSH2 0x430d
00004304: SWAP2
00004305: SWAP1
00004306: DUP6
00004307: AND
00004308: SWAP1
00004309: PUSH2 0x4d45
0000430c: JUMP
0000430d: JUMPDEST
0000430e: SWAP1
0000430f: POP
00004310: PUSH1 0x00
00004312: PUSH2 0x4356
00004315: PUSH2 0x433d
00004318: DUP4
00004319: DUP8
0000431a: PUSH1 0x40
0000431c: ADD
0000431d: MLOAD
0000431e: PUSH16 0xffffffffffffffffffffffffffffffff
0000432f: AND
00004330: PUSH2 0x4d8d
00004333: SWAP1
00004334: SWAP2
00004335: SWAP1
00004336: PUSH4 0xffffffff
0000433b: AND
0000433c: JUMP
0000433d: JUMPDEST
0000433e: PUSH18 0xffffffffffffffffffffffffffffffffffff
00004351: AND
00004352: PUSH2 0x2eff
00004355: JUMP
00004356: JUMPDEST
00004357: SWAP1
00004358: POP
00004359: PUSH2 0x4362
0000435c: DUP3
0000435d: DUP3
0000435e: PUSH2 0x4db3
00004361: JUMP
00004362: JUMPDEST
00004363: DUP6
00004364: PUSH1 0x80
00004366: ADD
00004367: DUP2
00004368: DUP2
00004369: MLOAD
0000436a: PUSH2 0x4373
0000436d: SWAP2
0000436e: SWAP1
0000436f: PUSH2 0x5dc5
00004372: JUMP
00004373: JUMPDEST
00004374: PUSH8 0xffffffffffffffff
0000437d: AND
0000437e: SWAP1
0000437f: MSTORE
00004380: POP
00004381: PUSH1 0x20
00004383: DUP6
00004384: ADD
00004385: DUP1
00004386: MLOAD
00004387: DUP3
00004388: SWAP2
00004389: SWAP1
0000438a: PUSH2 0x2b16
0000438d: SWAP1
0000438e: DUP4
0000438f: SWAP1
00004390: PUSH2 0x5ab7
00004393: JUMP
00004394: JUMPDEST
00004395: PUSH1 0x00
00004397: PUSH16 0x80000000000000000000000000000000
000043a8: DUP3
000043a9: PUSH16 0xffffffffffffffffffffffffffffffff
000043ba: AND
000043bb: LT
000043bc: PUSH2 0x0ec4
000043bf: JUMPI
000043c0: PUSH1 0x00
000043c2: DUP1
000043c3: REVERT
000043c4: JUMPDEST
000043c5: PUSH1 0x00
000043c7: DUP1
000043c8: PUSH2 0x43d0
000043cb: DUP6
000043cc: PUSH2 0x3a68
000043cf: JUMP
000043d0: JUMPDEST
000043d1: SWAP1
000043d2: POP
000043d3: DUP4
000043d4: PUSH2 0x43eb
000043d7: JUMPI
000043d8: PUSH2 0x43e6
000043db: DUP2
000043dc: DUP7
000043dd: PUSH1 0x00
000043df: ADD
000043e0: MLOAD
000043e1: DUP6
000043e2: PUSH2 0x4e26
000043e5: JUMP
000043e6: JUMPDEST
000043e7: PUSH2 0x1025
000043ea: JUMP
000043eb: JUMPDEST
000043ec: PUSH2 0x1025
000043ef: DUP2
000043f0: DUP7
000043f1: PUSH1 0x00
000043f3: ADD
000043f4: MLOAD
000043f5: DUP6
000043f6: PUSH2 0x4e71
000043f9: JUMP
000043fa: JUMPDEST
000043fb: PUSH1 0x00
000043fd: DUP1
000043fe: PUSH1 0x00
00004400: PUSH2 0x4408
00004403: DUP7
00004404: PUSH2 0x3a68
00004407: JUMP
00004408: JUMPDEST
00004409: DUP7
0000440a: MLOAD
0000440b: SWAP1
0000440c: SWAP2
0000440d: POP
0000440e: PUSH1 0x00
00004410: SWAP1
00004411: PUSH2 0x442e
00004414: SWAP1
00004415: PUSH16 0xffffffffffffffffffffffffffffffff
00004426: DUP5
00004427: AND
00004428: SWAP1
00004429: DUP9
0000442a: PUSH2 0x4e71
0000442d: JUMP
0000442e: JUMPDEST
0000442f: DUP8
00004430: MLOAD
00004431: SWAP1
00004432: SWAP2
00004433: POP
00004434: PUSH1 0x00
00004436: SWAP1
00004437: PUSH2 0x4454
0000443a: SWAP1
0000443b: PUSH16 0xffffffffffffffffffffffffffffffff
0000444c: DUP6
0000444d: AND
0000444e: SWAP1
0000444f: DUP10
00004450: PUSH2 0x4e26
00004453: JUMP
00004454: JUMPDEST
00004455: SWAP1
00004456: POP
00004457: DUP6
00004458: ISZERO
00004459: PUSH2 0x4468
0000445c: JUMPI
0000445d: SWAP1
0000445e: SWAP4
0000445f: POP
00004460: SWAP2
00004461: POP
00004462: DUP3
00004463: DUP3
00004464: PUSH2 0x446f
00004467: JUMP
00004468: JUMPDEST
00004469: SWAP4
0000446a: POP
0000446b: SWAP2
0000446c: POP
0000446d: DUP2
0000446e: DUP4
0000446f: JUMPDEST
00004470: POP
00004471: POP
00004472: POP
00004473: SWAP4
00004474: POP
00004475: SWAP4
00004476: SWAP2
00004477: POP
00004478: POP
00004479: JUMP
0000447a: JUMPDEST
0000447b: PUSH1 0x00
0000447d: DUP1
0000447e: PUSH2 0x4489
00004481: DUP7
00004482: DUP7
00004483: DUP7
00004484: DUP7
00004485: PUSH2 0x4eb9
00004488: JUMP
00004489: JUMPDEST
0000448a: SWAP1
0000448b: SWAP3
0000448c: POP
0000448d: SWAP1
0000448e: POP
0000448f: PUSH2 0x4499
00004492: PUSH1 0x04
00004494: DUP4
00004495: PUSH2 0x5caf
00004498: JUMP
00004499: JUMPDEST
0000449a: SWAP2
0000449b: POP
0000449c: PUSH2 0x44a6
0000449f: PUSH1 0x04
000044a1: DUP3
000044a2: PUSH2 0x5caf
000044a5: JUMP
000044a6: JUMPDEST
000044a7: SWAP1
000044a8: POP
000044a9: SWAP5
000044aa: POP
000044ab: SWAP5
000044ac: SWAP3
000044ad: POP
000044ae: POP
000044af: POP
000044b0: JUMP
000044b1: JUMPDEST
000044b2: PUSH1 0x00
000044b4: DUP1
000044b5: PUSH1 0x00
000044b7: DUP1
000044b8: PUSH2 0x44c2
000044bb: DUP7
000044bc: DUP12
000044bd: DUP12
000044be: PUSH2 0x4f5c
000044c1: JUMP
000044c2: JUMPDEST
000044c3: SWAP1
000044c4: POP
000044c5: DUP8
000044c6: PUSH16 0xffffffffffffffffffffffffffffffff
000044d7: AND
000044d8: DUP2
000044d9: PUSH16 0xffffffffffffffffffffffffffffffff
000044ea: AND
000044eb: LT
000044ec: PUSH2 0x44f8
000044ef: JUMPI
000044f0: PUSH1 0x00
000044f2: SWAP2
000044f3: POP
000044f4: PUSH2 0x4505
000044f7: JUMP
000044f8: JUMPDEST
000044f9: PUSH2 0x4502
000044fc: DUP2
000044fd: DUP10
000044fe: PUSH2 0x5a8e
00004501: JUMP
00004502: JUMPDEST
00004503: SWAP2
00004504: POP
00004505: JUMPDEST
00004506: DUP10
00004507: PUSH2 0x4510
0000450a: JUMPI
0000450b: DUP5
0000450c: PUSH2 0x4512
0000450f: JUMP
00004510: JUMPDEST
00004511: DUP6
00004512: JUMPDEST
00004513: SWAP4
00004514: POP
00004515: DUP10
00004516: PUSH2 0x451f
00004519: JUMPI
0000451a: DUP6
0000451b: PUSH2 0x4521
0000451e: JUMP
0000451f: JUMPDEST
00004520: DUP5
00004521: JUMPDEST
00004522: PUSH16 0xffffffffffffffffffffffffffffffff
00004533: SWAP1
00004534: SWAP8
00004535: AND
00004536: SWAP1
00004537: SWAP11
00004538: MSTORE
00004539: SWAP2
0000453a: SWAP10
0000453b: SWAP5
0000453c: SWAP9
0000453d: POP
0000453e: SWAP1
0000453f: SWAP7
00004540: POP
00004541: SWAP3
00004542: SWAP5
00004543: POP
00004544: POP
00004545: POP
00004546: POP
00004547: POP
00004548: JUMP
00004549: JUMPDEST
0000454a: PUSH1 0x00
0000454c: DUP1
0000454d: PUSH1 0x00
0000454f: PUSH2 0x4557
00004552: DUP8
00004553: PUSH2 0x3a68
00004556: JUMP
00004557: JUMPDEST
00004558: SWAP1
00004559: POP
0000455a: PUSH2 0x456a
0000455d: DUP8
0000455e: PUSH1 0x00
00004560: ADD
00004561: MLOAD
00004562: DUP3
00004563: DUP9
00004564: DUP9
00004565: DUP9
00004566: PUSH2 0x4f92
00004569: JUMP
0000456a: JUMPDEST
0000456b: SWAP2
0000456c: POP
0000456d: DUP5
0000456e: ISZERO
0000456f: PUSH2 0x4597
00004572: JUMPI
00004573: DUP7
00004574: MLOAD
00004575: PUSH2 0x4592
00004578: SWAP1
00004579: PUSH16 0xffffffffffffffffffffffffffffffff
0000458a: DUP4
0000458b: AND
0000458c: SWAP1
0000458d: DUP5
0000458e: PUSH2 0x4e26
00004591: JUMP
00004592: JUMPDEST
00004593: PUSH2 0x45b7
00004596: JUMP
00004597: JUMPDEST
00004598: DUP7
00004599: MLOAD
0000459a: PUSH2 0x45b7
0000459d: SWAP1
0000459e: PUSH16 0xffffffffffffffffffffffffffffffff
000045af: DUP4
000045b0: AND
000045b1: SWAP1
000045b2: DUP5
000045b3: PUSH2 0x4e71
000045b6: JUMP
000045b7: JUMPDEST
000045b8: SWAP3
000045b9: POP
000045ba: POP
000045bb: SWAP5
000045bc: POP
000045bd: SWAP5
000045be: SWAP3
000045bf: POP
000045c0: POP
000045c1: POP
000045c2: JUMP
000045c3: JUMPDEST
000045c4: PUSH1 0x00
000045c6: DUP1
000045c7: PUSH2 0x45d2
000045ca: DUP7
000045cb: DUP7
000045cc: DUP7
000045cd: DUP7
000045ce: PUSH2 0x4eb9
000045d1: JUMP
000045d2: JUMPDEST
000045d3: SWAP1
000045d4: SWAP3
000045d5: POP
000045d6: SWAP1
000045d7: POP
000045d8: PUSH2 0x44a6
000045db: PUSH1 0x04
000045dd: DUP3
000045de: PUSH2 0x5caf
000045e1: JUMP
000045e2: JUMPDEST
000045e3: PUSH1 0x00
000045e5: DUP1
000045e6: DUP3
000045e7: PUSH1 0x00
000045e9: SIGNEXTEND
000045ea: SLT
000045eb: ISZERO
000045ec: PUSH2 0x45fb
000045ef: JUMPI
000045f0: DUP2
000045f1: PUSH1 0x00
000045f3: SIGNEXTEND
000045f4: PUSH1 0x80
000045f6: ADD
000045f7: PUSH2 0x0e37
000045fa: JUMP
000045fb: JUMPDEST
000045fc: POP
000045fd: PUSH1 0x80
000045ff: ADD
00004600: SWAP1
00004601: JUMP
00004602: JUMPDEST
00004603: PUSH1 0x00
00004605: PUSH1 0x80
00004607: DUP3
00004608: PUSH1 0xff
0000460a: AND
0000460b: LT
0000460c: PUSH2 0x4618
0000460f: JUMPI
00004610: PUSH1 0x80
00004612: DUP3
00004613: SUB
00004614: PUSH2 0x0e37
00004617: JUMP
00004618: JUMPDEST
00004619: POP
0000461a: PUSH1 0xff
0000461c: AND
0000461d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80
0000463e: ADD
0000463f: SWAP1
00004640: JUMP
00004641: JUMPDEST
00004642: PUSH1 0x00
00004644: DUP3
00004645: DUP3
00004646: PUSH1 0x40
00004648: MLOAD
00004649: PUSH1 0x20
0000464b: ADD
0000464c: PUSH2 0x0ef9
0000464f: SWAP3
00004650: SWAP2
00004651: SWAP1
00004652: SWAP2
00004653: DUP3
00004654: MSTORE
00004655: PUSH1 0xf8
00004657: SHL
00004658: PUSH1 0x20
0000465a: DUP3
0000465b: ADD
0000465c: MSTORE
0000465d: PUSH1 0x21
0000465f: ADD
00004660: SWAP1
00004661: JUMP
00004662: JUMPDEST
00004663: PUSH1 0x00
00004665: PUSH3 0x010002
00004669: PUSH1 0x00
0000466b: DUP5
0000466c: DUP5
0000466d: PUSH1 0x40
0000466f: MLOAD
00004670: PUSH1 0x20
00004672: ADD
00004673: PUSH2 0x4689
00004676: SWAP3
00004677: SWAP2
00004678: SWAP1
00004679: SWAP2
0000467a: DUP3
0000467b: MSTORE
0000467c: PUSH1 0xe8
0000467e: SHL
0000467f: PUSH1 0x20
00004681: DUP3
00004682: ADD
00004683: MSTORE
00004684: PUSH1 0x23
00004686: ADD
00004687: SWAP1
00004688: JUMP
00004689: JUMPDEST
0000468a: PUSH1 0x40
0000468c: MLOAD
0000468d: PUSH1 0x20
0000468f: DUP2
00004690: DUP4
00004691: SUB
00004692: SUB
00004693: DUP2
00004694: MSTORE
00004695: SWAP1
00004696: PUSH1 0x40
00004698: MSTORE
00004699: DUP1
0000469a: MLOAD
0000469b: SWAP1
0000469c: PUSH1 0x20
0000469e: ADD
0000469f: KECCAK256
000046a0: DUP2
000046a1: MSTORE
000046a2: PUSH1 0x20
000046a4: ADD
000046a5: SWAP1
000046a6: DUP2
000046a7: MSTORE
000046a8: PUSH1 0x20
000046aa: ADD
000046ab: PUSH1 0x00
000046ad: KECCAK256
000046ae: SWAP1
000046af: POP
000046b0: SWAP3
000046b1: SWAP2
000046b2: POP
000046b3: POP
000046b4: JUMP
000046b5: JUMPDEST
000046b6: PUSH1 0x00
000046b8: PUSH2 0x46c0
000046bb: DUP3
000046bc: PUSH2 0x502e
000046bf: JUMP
000046c0: JUMPDEST
000046c1: PUSH2 0x46c9
000046c4: DUP5
000046c5: PUSH2 0x502e
000046c8: JUMP
000046c9: JUMPDEST
000046ca: SUB
000046cb: SWAP4
000046cc: SWAP3
000046cd: POP
000046ce: POP
000046cf: POP
000046d0: JUMP
000046d1: JUMPDEST
000046d2: PUSH1 0x00
000046d4: PUSH7 0x01000000000000
000046dc: PUSH16 0xffffffffffffffffffffffffffffffff
000046ed: DUP1
000046ee: DUP6
000046ef: AND
000046f0: PUSH8 0xffffffffffffffff
000046f9: DUP6
000046fa: AND
000046fb: DUP4
000046fc: ADD
000046fd: MUL
000046fe: SWAP1
000046ff: PUSH1 0x30
00004701: DUP3
00004702: SWAP1
00004703: SHR
00004704: SWAP1
00004705: DUP2
00004706: GT
00004707: ISZERO
00004708: PUSH2 0x1025
0000470b: JUMPI
0000470c: PUSH16 0xffffffffffffffffffffffffffffffff
0000471d: SWAP4
0000471e: POP
0000471f: POP
00004720: POP
00004721: POP
00004722: PUSH2 0x0e37
00004725: JUMP
00004726: JUMPDEST
00004727: DUP1
00004728: DUP3
00004729: ADD
0000472a: PUSH16 0xffffffffffffffffffffffffffffffff
0000473b: DUP1
0000473c: DUP5
0000473d: AND
0000473e: SWAP1
0000473f: DUP3
00004740: AND
00004741: LT
00004742: ISZERO
00004743: PUSH2 0x0e37
00004746: JUMPI
00004747: PUSH1 0x00
00004749: DUP1
0000474a: REVERT
0000474b: JUMPDEST
0000474c: PUSH1 0x00
0000474e: PUSH16 0xffffffffffffffffffffffffffffffff
0000475f: DUP3
00004760: AND
00004761: PUSH24 0xffffffffffffffffffffffffffffffff0000000000000000
0000477a: PUSH1 0x40
0000477c: DUP6
0000477d: SWAP1
0000477e: SHL
0000477f: AND
00004780: DUP2
00004781: PUSH2 0x478c
00004784: JUMPI
00004785: PUSH2 0x478c
00004788: PUSH2 0x5a30
0000478b: JUMP
0000478c: JUMPDEST
0000478d: DIV
0000478e: SWAP4
0000478f: SWAP3
00004790: POP
00004791: POP
00004792: POP
00004793: JUMP
00004794: JUMPDEST
00004795: DUP2
00004796: PUSH16 0xffffffffffffffffffffffffffffffff
000047a7: AND
000047a8: DUP2
000047a9: PUSH16 0xffffffffffffffffffffffffffffffff
000047ba: AND
000047bb: LT
000047bc: ISZERO
000047bd: PUSH2 0x4822
000047c0: JUMPI
000047c1: PUSH1 0x40
000047c3: MLOAD
000047c4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000047e5: DUP2
000047e6: MSTORE
000047e7: PUSH1 0x20
000047e9: PUSH1 0x04
000047eb: DUP3
000047ec: ADD
000047ed: MSTORE
000047ee: PUSH1 0x02
000047f0: PUSH1 0x24
000047f2: DUP3
000047f3: ADD
000047f4: MSTORE
000047f5: PUSH32 0x4543000000000000000000000000000000000000000000000000000000000000
00004816: PUSH1 0x44
00004818: DUP3
00004819: ADD
0000481a: MSTORE
0000481b: PUSH1 0x64
0000481d: ADD
0000481e: PUSH2 0x10ea
00004821: JUMP
00004822: JUMPDEST
00004823: PUSH1 0x00
00004825: PUSH2 0x482e
00004828: DUP4
00004829: DUP4
0000482a: PUSH2 0x5a8e
0000482d: JUMP
0000482e: JUMPDEST
0000482f: SWAP1
00004830: POP
00004831: PUSH2 0x0bf7
00004834: DUP5
00004835: DUP3
00004836: PUSH2 0x2917
00004839: JUMP
0000483a: JUMPDEST
0000483b: PUSH2 0x125f
0000483e: DUP2
0000483f: DUP5
00004840: ADDRESS
00004841: DUP6
00004842: PUSH16 0xffffffffffffffffffffffffffffffff
00004853: AND
00004854: PUSH2 0x504a
00004857: JUMP
00004858: JUMPDEST
00004859: PUSH2 0x125f
0000485c: DUP4
0000485d: PUSH2 0x4866
00004860: DUP4
00004861: DUP6
00004862: PUSH2 0x5ab7
00004865: JUMP
00004866: JUMPDEST
00004867: PUSH16 0xffffffffffffffffffffffffffffffff
00004878: AND
00004879: PUSH2 0x2f79
0000487c: JUMP
0000487d: JUMPDEST
0000487e: PUSH1 0x40
00004880: DUP1
00004881: MLOAD
00004882: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004897: DUP5
00004898: DUP2
00004899: AND
0000489a: PUSH1 0x24
0000489c: DUP4
0000489d: ADD
0000489e: MSTORE
0000489f: PUSH1 0x44
000048a1: DUP1
000048a2: DUP4
000048a3: ADD
000048a4: DUP6
000048a5: SWAP1
000048a6: MSTORE
000048a7: DUP4
000048a8: MLOAD
000048a9: DUP1
000048aa: DUP5
000048ab: SUB
000048ac: SWAP1
000048ad: SWAP2
000048ae: ADD
000048af: DUP2
000048b0: MSTORE
000048b1: PUSH1 0x64
000048b3: SWAP1
000048b4: SWAP3
000048b5: ADD
000048b6: DUP4
000048b7: MSTORE
000048b8: PUSH1 0x20
000048ba: DUP3
000048bb: ADD
000048bc: DUP1
000048bd: MLOAD
000048be: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000048db: AND
000048dc: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
000048fd: OR
000048fe: SWAP1
000048ff: MSTORE
00004900: SWAP2
00004901: MLOAD
00004902: PUSH1 0x00
00004904: SWAP3
00004905: DUP4
00004906: SWAP3
00004907: SWAP1
00004908: DUP8
00004909: AND
0000490a: SWAP2
0000490b: PUSH2 0x4914
0000490e: SWAP2
0000490f: SWAP1
00004910: PUSH2 0x596c
00004913: JUMP
00004914: JUMPDEST
00004915: PUSH1 0x00
00004917: PUSH1 0x40
00004919: MLOAD
0000491a: DUP1
0000491b: DUP4
0000491c: SUB
0000491d: DUP2
0000491e: PUSH1 0x00
00004920: DUP7
00004921: GAS
00004922: CALL
00004923: SWAP2
00004924: POP
00004925: POP
00004926: RETURNDATASIZE
00004927: DUP1
00004928: PUSH1 0x00
0000492a: DUP2
0000492b: EQ
0000492c: PUSH2 0x4951
0000492f: JUMPI
00004930: PUSH1 0x40
00004932: MLOAD
00004933: SWAP2
00004934: POP
00004935: PUSH1 0x1f
00004937: NOT
00004938: PUSH1 0x3f
0000493a: RETURNDATASIZE
0000493b: ADD
0000493c: AND
0000493d: DUP3
0000493e: ADD
0000493f: PUSH1 0x40
00004941: MSTORE
00004942: RETURNDATASIZE
00004943: DUP3
00004944: MSTORE
00004945: RETURNDATASIZE
00004946: PUSH1 0x00
00004948: PUSH1 0x20
0000494a: DUP5
0000494b: ADD
0000494c: RETURNDATACOPY
0000494d: PUSH2 0x4956
00004950: JUMP
00004951: JUMPDEST
00004952: PUSH1 0x60
00004954: SWAP2
00004955: POP
00004956: JUMPDEST
00004957: POP
00004958: SWAP2
00004959: POP
0000495a: SWAP2
0000495b: POP
0000495c: DUP2
0000495d: DUP1
0000495e: ISZERO
0000495f: PUSH2 0x4980
00004962: JUMPI
00004963: POP
00004964: DUP1
00004965: MLOAD
00004966: ISZERO
00004967: DUP1
00004968: PUSH2 0x4980
0000496b: JUMPI
0000496c: POP
0000496d: DUP1
0000496e: DUP1
0000496f: PUSH1 0x20
00004971: ADD
00004972: SWAP1
00004973: MLOAD
00004974: DUP2
00004975: ADD
00004976: SWAP1
00004977: PUSH2 0x4980
0000497a: SWAP2
0000497b: SWAP1
0000497c: PUSH2 0x5de6
0000497f: JUMP
00004980: JUMPDEST
00004981: PUSH2 0x03f0
00004984: JUMPI
00004985: PUSH1 0x40
00004987: MLOAD
00004988: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000049a9: DUP2
000049aa: MSTORE
000049ab: PUSH1 0x20
000049ad: PUSH1 0x04
000049af: DUP3
000049b0: ADD
000049b1: MSTORE
000049b2: PUSH1 0x02
000049b4: PUSH1 0x24
000049b6: DUP3
000049b7: ADD
000049b8: MSTORE
000049b9: PUSH32 0x5446000000000000000000000000000000000000000000000000000000000000
000049da: PUSH1 0x44
000049dc: DUP3
000049dd: ADD
000049de: MSTORE
000049df: PUSH1 0x64
000049e1: ADD
000049e2: PUSH2 0x10ea
000049e5: JUMP
000049e6: JUMPDEST
000049e7: PUSH1 0x00
000049e9: DUP6
000049ea: PUSH16 0xffffffffffffffffffffffffffffffff
000049fb: AND
000049fc: PUSH1 0x00
000049fe: SUB
000049ff: PUSH2 0x4a0a
00004a02: JUMPI
00004a03: POP
00004a04: PUSH1 0x00
00004a06: PUSH2 0x1025
00004a09: JUMP
00004a0a: JUMPDEST
00004a0b: PUSH1 0x00
00004a0d: PUSH2 0x4a18
00004a10: DUP8
00004a11: DUP8
00004a12: DUP6
00004a13: ISZERO
00004a14: PUSH2 0x4aff
00004a17: JUMP
00004a18: JUMPDEST
00004a19: PUSH16 0xffffffffffffffffffffffffffffffff
00004a2a: AND
00004a2b: SWAP1
00004a2c: POP
00004a2d: PUSH1 0x00
00004a2f: PUSH2 0x4a39
00004a32: DUP9
00004a33: DUP9
00004a34: DUP7
00004a35: PUSH2 0x4aff
00004a38: JUMP
00004a39: JUMPDEST
00004a3a: PUSH16 0xffffffffffffffffffffffffffffffff
00004a4b: AND
00004a4c: SWAP1
00004a4d: POP
00004a4e: PUSH1 0x00
00004a50: DUP5
00004a51: ISZERO
00004a52: ISZERO
00004a53: DUP7
00004a54: ISZERO
00004a55: ISZERO
00004a56: EQ
00004a57: PUSH2 0x4a74
00004a5a: JUMPI
00004a5b: DUP7
00004a5c: PUSH16 0xffffffffffffffffffffffffffffffff
00004a6d: AND
00004a6e: DUP3
00004a6f: SUB
00004a70: PUSH2 0x4a8a
00004a73: JUMP
00004a74: JUMPDEST
00004a75: DUP7
00004a76: PUSH16 0xffffffffffffffffffffffffffffffff
00004a87: AND
00004a88: DUP3
00004a89: ADD
00004a8a: JUMPDEST
00004a8b: SWAP1
00004a8c: POP
00004a8d: DUP1
00004a8e: PUSH1 0x00
00004a90: SUB
00004a91: PUSH2 0x4aaf
00004a94: JUMPI
00004a95: PUSH16 0xffffffffffffffffffffffffffffffff
00004aa6: SWAP4
00004aa7: POP
00004aa8: POP
00004aa9: POP
00004aaa: POP
00004aab: PUSH2 0x1025
00004aae: JUMP
00004aaf: JUMPDEST
00004ab0: PUSH1 0x00
00004ab2: DUP2
00004ab3: PUSH16 0xffffffffffffffffffffffffffffffff
00004ac4: DUP12
00004ac5: AND
00004ac6: DUP1
00004ac7: MUL
00004ac8: DUP2
00004ac9: PUSH2 0x4ad4
00004acc: JUMPI
00004acd: PUSH2 0x4ad4
00004ad0: PUSH2 0x5a30
00004ad3: JUMP
00004ad4: JUMPDEST
00004ad5: DIV
00004ad6: SWAP1
00004ad7: POP
00004ad8: PUSH2 0x4af1
00004adb: DUP5
00004adc: DUP3
00004add: GT
00004ade: PUSH2 0x4ae9
00004ae1: JUMPI
00004ae2: DUP2
00004ae3: DUP6
00004ae4: SUB
00004ae5: PUSH2 0x2eff
00004ae8: JUMP
00004ae9: JUMPDEST
00004aea: DUP5
00004aeb: DUP3
00004aec: SUB
00004aed: PUSH2 0x2eff
00004af0: JUMP
00004af1: JUMPDEST
00004af2: SWAP11
00004af3: SWAP10
00004af4: POP
00004af5: POP
00004af6: POP
00004af7: POP
00004af8: POP
00004af9: POP
00004afa: POP
00004afb: POP
00004afc: POP
00004afd: POP
00004afe: JUMP
00004aff: JUMPDEST
00004b00: PUSH1 0x00
00004b02: PUSH2 0x19cb
00004b05: DUP3
00004b06: PUSH2 0x4b32
00004b09: JUMPI
00004b0a: PUSH2 0x4b13
00004b0d: DUP6
00004b0e: DUP6
00004b0f: PUSH2 0x474b
00004b12: JUMP
00004b13: JUMPDEST
00004b14: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff
00004b2d: AND
00004b2e: PUSH2 0x2eff
00004b31: JUMP
00004b32: JUMPDEST
00004b33: PUSH16 0xffffffffffffffffffffffffffffffff
00004b44: DUP1
00004b45: DUP7
00004b46: AND
00004b47: SWAP1
00004b48: DUP6
00004b49: AND
00004b4a: MUL
00004b4b: PUSH1 0x40
00004b4d: SHR
00004b4e: PUSH2 0x4b13
00004b51: JUMP
00004b52: JUMPDEST
00004b53: PUSH1 0x00
00004b55: PUSH16 0xffffffffffffffffffffffffffffffff
00004b66: DUP4
00004b67: AND
00004b68: ISZERO
00004b69: DUP1
00004b6a: PUSH2 0x4b96
00004b6d: JUMPI
00004b6e: POP
00004b6f: DUP3
00004b70: PUSH16 0xffffffffffffffffffffffffffffffff
00004b81: AND
00004b82: DUP3
00004b83: PUSH16 0xffffffffffffffffffffffffffffffff
00004b94: AND
00004b95: GT
00004b96: JUMPDEST
00004b97: ISZERO
00004b98: PUSH2 0x4ba3
00004b9b: JUMPI
00004b9c: POP
00004b9d: PUSH1 0x00
00004b9f: PUSH2 0x0e37
00004ba2: JUMP
00004ba3: JUMPDEST
00004ba4: PUSH1 0x00
00004ba6: PUSH2 0x4baf
00004ba9: DUP4
00004baa: DUP6
00004bab: PUSH2 0x5ab7
00004bae: JUMP
00004baf: JUMPDEST
00004bb0: SWAP1
00004bb1: POP
00004bb2: PUSH1 0x00
00004bb4: PUSH2 0x4bcf
00004bb7: PUSH16 0xffffffffffffffffffffffffffffffff
00004bc8: DUP4
00004bc9: AND
00004bca: DUP7
00004bcb: PUSH2 0x51bb
00004bce: JUMP
00004bcf: JUMPDEST
00004bd0: SWAP1
00004bd1: POP
00004bd2: PUSH2 0x4be4
00004bd5: DUP2
00004bd6: PUSH8 0xffffffffffffffff
00004bdf: AND
00004be0: PUSH2 0x5284
00004be3: JUMP
00004be4: JUMPDEST
00004be5: SWAP3
00004be6: POP
00004be7: PUSH7 0x01000000000000
00004bef: DUP4
00004bf0: PUSH8 0xffffffffffffffff
00004bf9: AND
00004bfa: LT
00004bfb: PUSH2 0x4c60
00004bfe: JUMPI
00004bff: PUSH1 0x40
00004c01: MLOAD
00004c02: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00004c23: DUP2
00004c24: MSTORE
00004c25: PUSH1 0x20
00004c27: PUSH1 0x04
00004c29: DUP3
00004c2a: ADD
00004c2b: MSTORE
00004c2c: PUSH1 0x02
00004c2e: PUSH1 0x24
00004c30: DUP3
00004c31: ADD
00004c32: MSTORE
00004c33: PUSH32 0x4946000000000000000000000000000000000000000000000000000000000000
00004c54: PUSH1 0x44
00004c56: DUP3
00004c57: ADD
00004c58: MSTORE
00004c59: PUSH1 0x64
00004c5b: ADD
00004c5c: PUSH2 0x10ea
00004c5f: JUMP
00004c60: JUMPDEST
00004c61: POP
00004c62: POP
00004c63: SWAP3
00004c64: SWAP2
00004c65: POP
00004c66: POP
00004c67: JUMP
00004c68: JUMPDEST
00004c69: PUSH1 0x00
00004c6b: PUSH7 0x01000000000000
00004c73: PUSH8 0xffffffffffffffff
00004c7c: DUP5
00004c7d: AND
00004c7e: DUP2
00004c7f: ADD
00004c80: DUP4
00004c81: ISZERO
00004c82: PUSH2 0x4cab
00004c85: JUMPI
00004c86: PUSH16 0xffffffffffffffffffffffffffffffff
00004c97: DUP7
00004c98: AND
00004c99: DUP2
00004c9a: MUL
00004c9b: PUSH1 0x30
00004c9d: DUP2
00004c9e: SWAP1
00004c9f: SHR
00004ca0: PUSH2 0x3af6
00004ca3: PUSH1 0x01
00004ca5: DUP3
00004ca6: ADD
00004ca7: PUSH2 0x2eff
00004caa: JUMP
00004cab: JUMPDEST
00004cac: PUSH22 0xffffffffffffffffffffffffffffffff000000000000
00004cc3: PUSH1 0x30
00004cc5: DUP8
00004cc6: SWAP1
00004cc7: SHL
00004cc8: AND
00004cc9: DUP2
00004cca: DUP2
00004ccb: DUP2
00004ccc: PUSH2 0x4cd7
00004ccf: JUMPI
00004cd0: PUSH2 0x4cd7
00004cd3: PUSH2 0x5a30
00004cd6: JUMP
00004cd7: JUMPDEST
00004cd8: DIV
00004cd9: SWAP4
00004cda: POP
00004cdb: POP
00004cdc: POP
00004cdd: POP
00004cde: PUSH2 0x05f5
00004ce1: JUMP
00004ce2: JUMPDEST
00004ce3: PUSH1 0x00
00004ce5: PUSH7 0x01000000000000
00004ced: PUSH8 0xffffffffffffffff
00004cf6: DUP5
00004cf7: DUP2
00004cf8: AND
00004cf9: DUP3
00004cfa: ADD
00004cfb: DUP2
00004cfc: DUP6
00004cfd: AND
00004cfe: DUP4
00004cff: ADD
00004d00: MUL
00004d01: SWAP1
00004d02: PUSH1 0x30
00004d04: DUP3
00004d05: SWAP1
00004d06: SHR
00004d07: SWAP1
00004d08: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
00004d29: DUP3
00004d2a: ADD
00004d2b: SWAP1
00004d2c: DUP2
00004d2d: LT
00004d2e: PUSH2 0x073e
00004d31: JUMPI
00004d32: PUSH8 0xffffffffffffffff
00004d3b: SWAP5
00004d3c: POP
00004d3d: POP
00004d3e: POP
00004d3f: POP
00004d40: POP
00004d41: PUSH2 0x0e37
00004d44: JUMP
00004d45: JUMPDEST
00004d46: PUSH1 0x00
00004d48: PUSH7 0x01000000000000
00004d50: PUSH8 0xffffffffffffffff
00004d59: DUP4
00004d5a: AND
00004d5b: DUP2
00004d5c: ADD
00004d5d: PUSH14 0xffffffffffffffff000000000000
00004d6c: PUSH1 0x30
00004d6e: DUP7
00004d6f: SWAP1
00004d70: SHL
00004d71: AND
00004d72: DUP4
00004d73: DUP3
00004d74: DUP3
00004d75: DUP2
00004d76: PUSH2 0x4d81
00004d79: JUMPI
00004d7a: PUSH2 0x4d81
00004d7d: PUSH2 0x5a30
00004d80: JUMP
00004d81: JUMPDEST
00004d82: DIV
00004d83: SWAP8
00004d84: SWAP7
00004d85: POP
00004d86: POP
00004d87: POP
00004d88: POP
00004d89: POP
00004d8a: POP
00004d8b: POP
00004d8c: JUMP
00004d8d: JUMPDEST
00004d8e: PUSH8 0xffffffffffffffff
00004d97: AND
00004d98: PUSH16 0xffffffffffffffffffffffffffffffff
00004da9: SWAP2
00004daa: SWAP1
00004dab: SWAP2
00004dac: AND
00004dad: MUL
00004dae: PUSH1 0x30
00004db0: SHR
00004db1: SWAP1
00004db2: JUMP
00004db3: JUMPDEST
00004db4: PUSH1 0x00
00004db6: DUP2
00004db7: PUSH16 0xffffffffffffffffffffffffffffffff
00004dc8: AND
00004dc9: PUSH1 0x00
00004dcb: SUB
00004dcc: PUSH2 0x4dd7
00004dcf: JUMPI
00004dd0: POP
00004dd1: PUSH1 0x00
00004dd3: PUSH2 0x0e37
00004dd6: JUMP
00004dd7: JUMPDEST
00004dd8: PUSH2 0x4de2
00004ddb: DUP3
00004ddc: PUSH1 0x01
00004dde: PUSH2 0x5ab7
00004de1: JUMP
00004de2: JUMPDEST
00004de3: PUSH16 0xffffffffffffffffffffffffffffffff
00004df4: AND
00004df5: DUP3
00004df6: PUSH16 0xffffffffffffffffffffffffffffffff
00004e07: AND
00004e08: DUP5
00004e09: PUSH8 0xffffffffffffffff
00004e12: AND
00004e13: PUSH2 0x4e1c
00004e16: SWAP2
00004e17: SWAP1
00004e18: PUSH2 0x5e03
00004e1b: JUMP
00004e1c: JUMPDEST
00004e1d: PUSH2 0x05f5
00004e20: SWAP2
00004e21: SWAP1
00004e22: PUSH2 0x5e1a
00004e25: JUMP
00004e26: JUMPDEST
00004e27: PUSH1 0x00
00004e29: DUP3
00004e2a: PUSH16 0xffffffffffffffffffffffffffffffff
00004e3b: AND
00004e3c: DUP3
00004e3d: PUSH16 0xffffffffffffffffffffffffffffffff
00004e4e: AND
00004e4f: GT
00004e50: ISZERO
00004e51: PUSH2 0x4e66
00004e54: JUMPI
00004e55: PUSH2 0x4e5f
00004e58: DUP5
00004e59: DUP4
00004e5a: DUP6
00004e5b: PUSH2 0x52c8
00004e5e: JUMP
00004e5f: JUMPDEST
00004e60: SWAP1
00004e61: POP
00004e62: PUSH2 0x05f5
00004e65: JUMP
00004e66: JUMPDEST
00004e67: PUSH2 0x4e5f
00004e6a: DUP5
00004e6b: DUP5
00004e6c: DUP5
00004e6d: PUSH2 0x52c8
00004e70: JUMP
00004e71: JUMPDEST
00004e72: PUSH1 0x00
00004e74: DUP1
00004e75: DUP3
00004e76: PUSH16 0xffffffffffffffffffffffffffffffff
00004e87: AND
00004e88: DUP5
00004e89: PUSH16 0xffffffffffffffffffffffffffffffff
00004e9a: AND
00004e9b: GT
00004e9c: PUSH2 0x4ea7
00004e9f: JUMPI
00004ea0: DUP4
00004ea1: DUP4
00004ea2: SUB
00004ea3: PUSH2 0x4eab
00004ea6: JUMP
00004ea7: JUMPDEST
00004ea8: DUP3
00004ea9: DUP5
00004eaa: SUB
00004eab: JUMPDEST
00004eac: SWAP1
00004ead: POP
00004eae: PUSH2 0x1025
00004eb1: DUP6
00004eb2: DUP3
00004eb3: PUSH1 0x01
00004eb5: PUSH2 0x4aff
00004eb8: JUMP
00004eb9: JUMPDEST
00004eba: PUSH1 0x00
00004ebc: DUP1
00004ebd: DUP3
00004ebe: ISZERO
00004ebf: ISZERO
00004ec0: DUP5
00004ec1: ISZERO
00004ec2: ISZERO
00004ec3: SUB
00004ec4: PUSH2 0x4f10
00004ec7: JUMPI
00004ec8: PUSH2 0x4ee2
00004ecb: DUP7
00004ecc: PUSH16 0xffffffffffffffffffffffffffffffff
00004edd: AND
00004ede: PUSH2 0x4394
00004ee1: JUMP
00004ee2: JUMPDEST
00004ee3: PUSH2 0x4efd
00004ee6: DUP7
00004ee7: PUSH16 0xffffffffffffffffffffffffffffffff
00004ef8: AND
00004ef9: PUSH2 0x4394
00004efc: JUMP
00004efd: JUMPDEST
00004efe: PUSH2 0x4f06
00004f01: SWAP1
00004f02: PUSH2 0x5bd5
00004f05: JUMP
00004f06: JUMPDEST
00004f07: SWAP1
00004f08: SWAP3
00004f09: POP
00004f0a: SWAP1
00004f0b: POP
00004f0c: PUSH2 0x2c5c
00004f0f: JUMP
00004f10: JUMPDEST
00004f11: PUSH2 0x4f2b
00004f14: DUP7
00004f15: PUSH16 0xffffffffffffffffffffffffffffffff
00004f26: AND
00004f27: PUSH2 0x4394
00004f2a: JUMP
00004f2b: JUMPDEST
00004f2c: PUSH2 0x4f34
00004f2f: SWAP1
00004f30: PUSH2 0x5bd5
00004f33: JUMP
00004f34: JUMPDEST
00004f35: PUSH2 0x4f4f
00004f38: DUP7
00004f39: PUSH16 0xffffffffffffffffffffffffffffffff
00004f4a: AND
00004f4b: PUSH2 0x4394
00004f4e: JUMP
00004f4f: JUMPDEST
00004f50: SWAP1
00004f51: SWAP8
00004f52: SWAP1
00004f53: SWAP7
00004f54: POP
00004f55: SWAP5
00004f56: POP
00004f57: POP
00004f58: POP
00004f59: POP
00004f5a: POP
00004f5b: JUMP
00004f5c: JUMPDEST
00004f5d: PUSH1 0x00
00004f5f: DUP1
00004f60: DUP3
00004f61: ISZERO
00004f62: ISZERO
00004f63: DUP5
00004f64: ISZERO
00004f65: ISZERO
00004f66: EQ
00004f67: PUSH2 0x4f78
00004f6a: JUMPI
00004f6b: PUSH2 0x4f73
00004f6e: DUP6
00004f6f: PUSH2 0x5bd5
00004f72: JUMP
00004f73: JUMPDEST
00004f74: PUSH2 0x4f7a
00004f77: JUMP
00004f78: JUMPDEST
00004f79: DUP5
00004f7a: JUMPDEST
00004f7b: SWAP1
00004f7c: POP
00004f7d: PUSH1 0x00
00004f7f: DUP2
00004f80: PUSH1 0x0f
00004f82: SIGNEXTEND
00004f83: SLT
00004f84: ISZERO
00004f85: PUSH2 0x19cb
00004f88: JUMPI
00004f89: PUSH1 0x00
00004f8b: SWAP2
00004f8c: POP
00004f8d: POP
00004f8e: PUSH2 0x05f5
00004f91: JUMP
00004f92: JUMPDEST
00004f93: PUSH1 0x00
00004f95: DUP1
00004f96: DUP4
00004f97: PUSH2 0x4fab
00004f9a: JUMPI
00004f9b: PUSH2 0x4fa6
00004f9e: DUP8
00004f9f: DUP8
00004fa0: DUP8
00004fa1: DUP7
00004fa2: PUSH2 0x5347
00004fa5: JUMP
00004fa6: JUMPDEST
00004fa7: PUSH2 0x4fb7
00004faa: JUMP
00004fab: JUMPDEST
00004fac: PUSH2 0x4fb7
00004faf: DUP8
00004fb0: DUP8
00004fb1: DUP8
00004fb2: DUP7
00004fb3: PUSH2 0x53ae
00004fb6: JUMP
00004fb7: JUMPDEST
00004fb8: SWAP1
00004fb9: POP
00004fba: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472
00004fcb: PUSH16 0xffffffffffffffffffffffffffffffff
00004fdc: DUP3
00004fdd: AND
00004fde: LT
00004fdf: PUSH2 0x5005
00004fe2: JUMPI
00004fe3: PUSH2 0x4ffd
00004fe6: PUSH1 0x01
00004fe8: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472
00004ff9: PUSH2 0x5a8e
00004ffc: JUMP
00004ffd: JUMPDEST
00004ffe: SWAP2
00004fff: POP
00005000: POP
00005001: PUSH2 0x1025
00005004: JUMP
00005005: JUMPDEST
00005006: PUSH3 0x010002
0000500a: PUSH16 0xffffffffffffffffffffffffffffffff
0000501b: DUP3
0000501c: AND
0000501d: LT
0000501e: ISZERO
0000501f: PUSH2 0x073e
00005022: JUMPI
00005023: PUSH3 0x010002
00005027: SWAP2
00005028: POP
00005029: POP
0000502a: PUSH2 0x1025
0000502d: JUMP
0000502e: JUMPDEST
0000502f: PUSH1 0x00
00005031: PUSH1 0x0a
00005033: DUP3
00005034: SWAP1
00005035: SHL
00005036: PUSH14 0x03fffffffffffffffffffffff800
00005045: AND
00005046: PUSH2 0x0e37
00005049: JUMP
0000504a: JUMPDEST
0000504b: PUSH1 0x40
0000504d: DUP1
0000504e: MLOAD
0000504f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00005064: DUP6
00005065: DUP2
00005066: AND
00005067: PUSH1 0x24
00005069: DUP4
0000506a: ADD
0000506b: MSTORE
0000506c: DUP5
0000506d: DUP2
0000506e: AND
0000506f: PUSH1 0x44
00005071: DUP4
00005072: ADD
00005073: MSTORE
00005074: PUSH1 0x64
00005076: DUP1
00005077: DUP4
00005078: ADD
00005079: DUP6
0000507a: SWAP1
0000507b: MSTORE
0000507c: DUP4
0000507d: MLOAD
0000507e: DUP1
0000507f: DUP5
00005080: SUB
00005081: SWAP1
00005082: SWAP2
00005083: ADD
00005084: DUP2
00005085: MSTORE
00005086: PUSH1 0x84
00005088: SWAP1
00005089: SWAP3
0000508a: ADD
0000508b: DUP4
0000508c: MSTORE
0000508d: PUSH1 0x20
0000508f: DUP3
00005090: ADD
00005091: DUP1
00005092: MLOAD
00005093: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000050b0: AND
000050b1: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
000050d2: OR
000050d3: SWAP1
000050d4: MSTORE
000050d5: SWAP2
000050d6: MLOAD
000050d7: PUSH1 0x00
000050d9: SWAP3
000050da: DUP4
000050db: SWAP3
000050dc: SWAP1
000050dd: DUP9
000050de: AND
000050df: SWAP2
000050e0: PUSH2 0x50e9
000050e3: SWAP2
000050e4: SWAP1
000050e5: PUSH2 0x596c
000050e8: JUMP
000050e9: JUMPDEST
000050ea: PUSH1 0x00
000050ec: PUSH1 0x40
000050ee: MLOAD
000050ef: DUP1
000050f0: DUP4
000050f1: SUB
000050f2: DUP2
000050f3: PUSH1 0x00
000050f5: DUP7
000050f6: GAS
000050f7: CALL
000050f8: SWAP2
000050f9: POP
000050fa: POP
000050fb: RETURNDATASIZE
000050fc: DUP1
000050fd: PUSH1 0x00
000050ff: DUP2
00005100: EQ
00005101: PUSH2 0x5126
00005104: JUMPI
00005105: PUSH1 0x40
00005107: MLOAD
00005108: SWAP2
00005109: POP
0000510a: PUSH1 0x1f
0000510c: NOT
0000510d: PUSH1 0x3f
0000510f: RETURNDATASIZE
00005110: ADD
00005111: AND
00005112: DUP3
00005113: ADD
00005114: PUSH1 0x40
00005116: MSTORE
00005117: RETURNDATASIZE
00005118: DUP3
00005119: MSTORE
0000511a: RETURNDATASIZE
0000511b: PUSH1 0x00
0000511d: PUSH1 0x20
0000511f: DUP5
00005120: ADD
00005121: RETURNDATACOPY
00005122: PUSH2 0x512b
00005125: JUMP
00005126: JUMPDEST
00005127: PUSH1 0x60
00005129: SWAP2
0000512a: POP
0000512b: JUMPDEST
0000512c: POP
0000512d: SWAP2
0000512e: POP
0000512f: SWAP2
00005130: POP
00005131: DUP2
00005132: DUP1
00005133: ISZERO
00005134: PUSH2 0x5155
00005137: JUMPI
00005138: POP
00005139: DUP1
0000513a: MLOAD
0000513b: ISZERO
0000513c: DUP1
0000513d: PUSH2 0x5155
00005140: JUMPI
00005141: POP
00005142: DUP1
00005143: DUP1
00005144: PUSH1 0x20
00005146: ADD
00005147: SWAP1
00005148: MLOAD
00005149: DUP2
0000514a: ADD
0000514b: SWAP1
0000514c: PUSH2 0x5155
0000514f: SWAP2
00005150: SWAP1
00005151: PUSH2 0x5de6
00005154: JUMP
00005155: JUMPDEST
00005156: PUSH2 0x162f
00005159: JUMPI
0000515a: PUSH1 0x40
0000515c: MLOAD
0000515d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000517e: DUP2
0000517f: MSTORE
00005180: PUSH1 0x20
00005182: PUSH1 0x04
00005184: DUP3
00005185: ADD
00005186: MSTORE
00005187: PUSH1 0x02
00005189: PUSH1 0x24
0000518b: DUP3
0000518c: ADD
0000518d: MSTORE
0000518e: PUSH32 0x5446000000000000000000000000000000000000000000000000000000000000
000051af: PUSH1 0x44
000051b1: DUP3
000051b2: ADD
000051b3: MSTORE
000051b4: PUSH1 0x64
000051b6: ADD
000051b7: PUSH2 0x10ea
000051ba: JUMP
000051bb: JUMPDEST
000051bc: PUSH1 0x00
000051be: PUSH26 0xffffffffffffffffffffffffffffffffffffffffffffffffffff
000051d9: PUSH16 0xffffffffffffffffffffffffffffffff
000051ea: DUP5
000051eb: AND
000051ec: LT
000051ed: DUP1
000051ee: ISZERO
000051ef: PUSH2 0x521c
000051f2: JUMPI
000051f3: POP
000051f4: DUP2
000051f5: PUSH16 0xffffffffffffffffffffffffffffffff
00005206: AND
00005207: DUP4
00005208: PUSH16 0xffffffffffffffffffffffffffffffff
00005219: AND
0000521a: LT
0000521b: ISZERO
0000521c: JUMPDEST
0000521d: PUSH2 0x5225
00005220: JUMPI
00005221: PUSH1 0x00
00005223: DUP1
00005224: REVERT
00005225: JUMPDEST
00005226: PUSH7 0x01000000000000
0000522e: PUSH22 0xffffffffffffffffffffffffffffffff000000000000
00005245: PUSH1 0x30
00005247: DUP6
00005248: SWAP1
00005249: SHL
0000524a: AND
0000524b: PUSH1 0x00
0000524d: DUP3
0000524e: PUSH16 0xffffffffffffffffffffffffffffffff
0000525f: DUP7
00005260: AND
00005261: DUP4
00005262: DUP2
00005263: PUSH2 0x526e
00005266: JUMPI
00005267: PUSH2 0x526e
0000526a: PUSH2 0x5a30
0000526d: JUMP
0000526e: JUMPDEST
0000526f: DIV
00005270: SUB
00005271: SWAP1
00005272: POP
00005273: DUP3
00005274: DUP2
00005275: LT
00005276: PUSH2 0x1025
00005279: JUMPI
0000527a: DUP3
0000527b: SWAP4
0000527c: POP
0000527d: POP
0000527e: POP
0000527f: POP
00005280: PUSH2 0x0e37
00005283: JUMP
00005284: JUMPDEST
00005285: PUSH1 0x00
00005287: PUSH7 0x01000000000000
0000528f: DUP3
00005290: PUSH8 0xffffffffffffffff
00005299: AND
0000529a: LT
0000529b: PUSH2 0x52a3
0000529e: JUMPI
0000529f: PUSH1 0x00
000052a1: DUP1
000052a2: REVERT
000052a3: JUMPDEST
000052a4: POP
000052a5: PUSH8 0xffffffffffffffff
000052ae: DUP2
000052af: AND
000052b0: DUP1
000052b1: MUL
000052b2: PUSH1 0x33
000052b4: SHR
000052b5: PUSH1 0x01
000052b7: SWAP2
000052b8: SWAP1
000052b9: SWAP2
000052ba: SHR
000052bb: PUSH8 0x7fffffffffffffff
000052c4: AND
000052c5: SUB
000052c6: SWAP1
000052c7: JUMP
000052c8: JUMPDEST
000052c9: PUSH1 0x00
000052cb: DUP1
000052cc: PUSH2 0x52d5
000052cf: DUP4
000052d0: DUP6
000052d1: PUSH2 0x5a8e
000052d4: JUMP
000052d5: JUMPDEST
000052d6: SWAP1
000052d7: POP
000052d8: PUSH1 0x00
000052da: PUSH2 0x52e3
000052dd: DUP7
000052de: DUP6
000052df: PUSH2 0x474b
000052e2: JUMP
000052e3: JUMPDEST
000052e4: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff
000052fd: AND
000052fe: SWAP1
000052ff: POP
00005300: PUSH1 0x00
00005302: DUP6
00005303: PUSH16 0xffffffffffffffffffffffffffffffff
00005314: AND
00005315: DUP4
00005316: PUSH16 0xffffffffffffffffffffffffffffffff
00005327: AND
00005328: DUP4
00005329: PUSH2 0x5332
0000532c: SWAP2
0000532d: SWAP1
0000532e: PUSH2 0x5e03
00005331: JUMP
00005332: JUMPDEST
00005333: PUSH2 0x533c
00005336: SWAP2
00005337: SWAP1
00005338: PUSH2 0x5e1a
0000533b: JUMP
0000533c: JUMPDEST
0000533d: SWAP1
0000533e: POP
0000533f: PUSH2 0x3d19
00005342: DUP2
00005343: PUSH2 0x2eff
00005346: JUMP
00005347: JUMPDEST
00005348: PUSH1 0x00
0000534a: DUP1
0000534b: PUSH2 0x5353
0000534e: DUP7
0000534f: PUSH2 0x549f
00005352: JUMP
00005353: JUMPDEST
00005354: SWAP1
00005355: POP
00005356: PUSH1 0x00
00005358: PUSH2 0x5364
0000535b: DUP3
0000535c: DUP8
0000535d: DUP8
0000535e: DUP8
0000535f: ISZERO
00005360: PUSH2 0x53ae
00005363: JUMP
00005364: JUMPDEST
00005365: SWAP1
00005366: POP
00005367: DUP1
00005368: PUSH16 0xffffffffffffffffffffffffffffffff
00005379: AND
0000537a: PUSH1 0x00
0000537c: SUB
0000537d: PUSH2 0x539a
00005380: JUMPI
00005381: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472
00005392: SWAP3
00005393: POP
00005394: POP
00005395: POP
00005396: PUSH2 0x19cb
00005399: JUMP
0000539a: JUMPDEST
0000539b: PUSH2 0x53a3
0000539e: DUP2
0000539f: PUSH2 0x549f
000053a2: JUMP
000053a3: JUMPDEST
000053a4: PUSH2 0x3a5d
000053a7: SWAP1
000053a8: PUSH1 0x01
000053aa: PUSH2 0x5ab7
000053ad: JUMP
000053ae: JUMPDEST
000053af: PUSH1 0x00
000053b1: DUP4
000053b2: PUSH16 0xffffffffffffffffffffffffffffffff
000053c3: AND
000053c4: PUSH1 0x00
000053c6: SUB
000053c7: PUSH2 0x53e1
000053ca: JUMPI
000053cb: POP
000053cc: PUSH16 0xffffffffffffffffffffffffffffffff
000053dd: PUSH2 0x19cb
000053e0: JUMP
000053e1: JUMPDEST
000053e2: PUSH1 0x00
000053e4: PUSH2 0x53ed
000053e7: DUP5
000053e8: DUP7
000053e9: PUSH2 0x474b
000053ec: JUMP
000053ed: JUMPDEST
000053ee: SWAP1
000053ef: POP
000053f0: PUSH16 0xffffffffffffffffffffffffffffffff
00005401: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff
0000541a: DUP3
0000541b: AND
0000541c: GT
0000541d: ISZERO
0000541e: PUSH2 0x543a
00005421: JUMPI
00005422: PUSH16 0xffffffffffffffffffffffffffffffff
00005433: SWAP2
00005434: POP
00005435: POP
00005436: PUSH2 0x19cb
00005439: JUMP
0000543a: JUMPDEST
0000543b: DUP1
0000543c: DUP4
0000543d: ISZERO
0000543e: PUSH2 0x5454
00005441: JUMPI
00005442: PUSH2 0x544b
00005445: DUP2
00005446: DUP9
00005447: PUSH2 0x5ab7
0000544a: JUMP
0000544b: JUMPDEST
0000544c: SWAP3
0000544d: POP
0000544e: POP
0000544f: POP
00005450: PUSH2 0x19cb
00005453: JUMP
00005454: JUMPDEST
00005455: DUP7
00005456: PUSH16 0xffffffffffffffffffffffffffffffff
00005467: AND
00005468: DUP2
00005469: PUSH16 0xffffffffffffffffffffffffffffffff
0000547a: AND
0000547b: LT
0000547c: PUSH2 0x548a
0000547f: JUMPI
00005480: PUSH1 0x00
00005482: SWAP3
00005483: POP
00005484: POP
00005485: POP
00005486: PUSH2 0x19cb
00005489: JUMP
0000548a: JUMPDEST
0000548b: PUSH2 0x5495
0000548e: DUP2
0000548f: PUSH1 0x01
00005491: PUSH2 0x5ab7
00005494: JUMP
00005495: JUMPDEST
00005496: PUSH2 0x544b
00005499: SWAP1
0000549a: DUP9
0000549b: PUSH2 0x5a8e
0000549e: JUMP
0000549f: JUMPDEST
000054a0: PUSH1 0x00
000054a2: DUP1
000054a3: DUP3
000054a4: PUSH16 0xffffffffffffffffffffffffffffffff
000054b5: AND
000054b6: PUSH17 0x0100000000000000000000000000000000
000054c8: DUP2
000054c9: PUSH2 0x54d4
000054cc: JUMPI
000054cd: PUSH2 0x54d4
000054d0: PUSH2 0x5a30
000054d3: JUMP
000054d4: JUMPDEST
000054d5: DIV
000054d6: SWAP1
000054d7: POP
000054d8: PUSH16 0xffffffffffffffffffffffffffffffff
000054e9: DUP2
000054ea: GT
000054eb: ISZERO
000054ec: PUSH2 0x0e37
000054ef: JUMPI
000054f0: PUSH1 0x00
000054f2: DUP1
000054f3: REVERT
000054f4: JUMPDEST
000054f5: PUSH1 0x00
000054f7: PUSH1 0x20
000054f9: DUP3
000054fa: DUP5
000054fb: SUB
000054fc: SLT
000054fd: ISZERO
000054fe: PUSH2 0x5506
00005501: JUMPI
00005502: PUSH1 0x00
00005504: DUP1
00005505: REVERT
00005506: JUMPDEST
00005507: POP
00005508: CALLDATALOAD
00005509: SWAP2
0000550a: SWAP1
0000550b: POP
0000550c: JUMP
0000550d: JUMPDEST
0000550e: PUSH2 0xffff
00005511: DUP2
00005512: AND
00005513: DUP2
00005514: EQ
00005515: PUSH2 0x0e15
00005518: JUMPI
00005519: PUSH1 0x00
0000551b: DUP1
0000551c: REVERT
0000551d: JUMPDEST
0000551e: PUSH1 0x00
00005520: DUP1
00005521: DUP4
00005522: PUSH1 0x1f
00005524: DUP5
00005525: ADD
00005526: SLT
00005527: PUSH2 0x552f
0000552a: JUMPI
0000552b: PUSH1 0x00
0000552d: DUP1
0000552e: REVERT
0000552f: JUMPDEST
00005530: POP
00005531: DUP2
00005532: CALLDATALOAD
00005533: PUSH8 0xffffffffffffffff
0000553c: DUP2
0000553d: GT
0000553e: ISZERO
0000553f: PUSH2 0x5547
00005542: JUMPI
00005543: PUSH1 0x00
00005545: DUP1
00005546: REVERT
00005547: JUMPDEST
00005548: PUSH1 0x20
0000554a: DUP4
0000554b: ADD
0000554c: SWAP2
0000554d: POP
0000554e: DUP4
0000554f: PUSH1 0x20
00005551: DUP3
00005552: DUP6
00005553: ADD
00005554: ADD
00005555: GT
00005556: ISZERO
00005557: PUSH2 0x555f
0000555a: JUMPI
0000555b: PUSH1 0x00
0000555d: DUP1
0000555e: REVERT
0000555f: JUMPDEST
00005560: SWAP3
00005561: POP
00005562: SWAP3
00005563: SWAP1
00005564: POP
00005565: JUMP
00005566: JUMPDEST
00005567: PUSH1 0x00
00005569: DUP1
0000556a: PUSH1 0x00
0000556c: DUP1
0000556d: PUSH1 0x00
0000556f: DUP1
00005570: PUSH1 0x00
00005572: DUP1
00005573: PUSH1 0x00
00005575: PUSH1 0xa0
00005577: DUP11
00005578: DUP13
00005579: SUB
0000557a: SLT
0000557b: ISZERO
0000557c: PUSH2 0x5584
0000557f: JUMPI
00005580: PUSH1 0x00
00005582: DUP1
00005583: REVERT
00005584: JUMPDEST
00005585: DUP10
00005586: CALLDATALOAD
00005587: PUSH2 0x558f
0000558a: DUP2
0000558b: PUSH2 0x550d
0000558e: JUMP
0000558f: JUMPDEST
00005590: SWAP9
00005591: POP
00005592: PUSH1 0x20
00005594: DUP11
00005595: ADD
00005596: CALLDATALOAD
00005597: PUSH8 0xffffffffffffffff
000055a0: DUP1
000055a1: DUP3
000055a2: GT
000055a3: ISZERO
000055a4: PUSH2 0x55ac
000055a7: JUMPI
000055a8: PUSH1 0x00
000055aa: DUP1
000055ab: REVERT
000055ac: JUMPDEST
000055ad: PUSH2 0x55b8
000055b0: DUP14
000055b1: DUP4
000055b2: DUP15
000055b3: ADD
000055b4: PUSH2 0x551d
000055b7: JUMP
000055b8: JUMPDEST
000055b9: SWAP1
000055ba: SWAP11
000055bb: POP
000055bc: SWAP9
000055bd: POP
000055be: PUSH1 0x40
000055c0: DUP13
000055c1: ADD
000055c2: CALLDATALOAD
000055c3: SWAP2
000055c4: POP
000055c5: DUP1
000055c6: DUP3
000055c7: GT
000055c8: ISZERO
000055c9: PUSH2 0x55d1
000055cc: JUMPI
000055cd: PUSH1 0x00
000055cf: DUP1
000055d0: REVERT
000055d1: JUMPDEST
000055d2: PUSH2 0x55dd
000055d5: DUP14
000055d6: DUP4
000055d7: DUP15
000055d8: ADD
000055d9: PUSH2 0x551d
000055dc: JUMP
000055dd: JUMPDEST
000055de: SWAP1
000055df: SWAP9
000055e0: POP
000055e1: SWAP7
000055e2: POP
000055e3: PUSH1 0x60
000055e5: DUP13
000055e6: ADD
000055e7: CALLDATALOAD
000055e8: SWAP2
000055e9: POP
000055ea: DUP1
000055eb: DUP3
000055ec: GT
000055ed: ISZERO
000055ee: PUSH2 0x55f6
000055f1: JUMPI
000055f2: PUSH1 0x00
000055f4: DUP1
000055f5: REVERT
000055f6: JUMPDEST
000055f7: PUSH2 0x5602
000055fa: DUP14
000055fb: DUP4
000055fc: DUP15
000055fd: ADD
000055fe: PUSH2 0x551d
00005601: JUMP
00005602: JUMPDEST
00005603: SWAP1
00005604: SWAP7
00005605: POP
00005606: SWAP5
00005607: POP
00005608: PUSH1 0x80
0000560a: DUP13
0000560b: ADD
0000560c: CALLDATALOAD
0000560d: SWAP2
0000560e: POP
0000560f: DUP1
00005610: DUP3
00005611: GT
00005612: ISZERO
00005613: PUSH2 0x561b
00005616: JUMPI
00005617: PUSH1 0x00
00005619: DUP1
0000561a: REVERT
0000561b: JUMPDEST
0000561c: POP
0000561d: PUSH2 0x5628
00005620: DUP13
00005621: DUP3
00005622: DUP14
00005623: ADD
00005624: PUSH2 0x551d
00005627: JUMP
00005628: JUMPDEST
00005629: SWAP2
0000562a: POP
0000562b: DUP1
0000562c: SWAP4
0000562d: POP
0000562e: POP
0000562f: DUP1
00005630: SWAP2
00005631: POP
00005632: POP
00005633: SWAP3
00005634: SWAP6
00005635: SWAP9
00005636: POP
00005637: SWAP3
00005638: SWAP6
00005639: SWAP9
0000563a: POP
0000563b: SWAP3
0000563c: SWAP6
0000563d: SWAP9
0000563e: JUMP
0000563f: JUMPDEST
00005640: PUSH1 0x00
00005642: JUMPDEST
00005643: DUP4
00005644: DUP2
00005645: LT
00005646: ISZERO
00005647: PUSH2 0x565a
0000564a: JUMPI
0000564b: DUP2
0000564c: DUP2
0000564d: ADD
0000564e: MLOAD
0000564f: DUP4
00005650: DUP3
00005651: ADD
00005652: MSTORE
00005653: PUSH1 0x20
00005655: ADD
00005656: PUSH2 0x5642
00005659: JUMP
0000565a: JUMPDEST
0000565b: POP
0000565c: POP
0000565d: PUSH1 0x00
0000565f: SWAP2
00005660: ADD
00005661: MSTORE
00005662: JUMP
00005663: JUMPDEST
00005664: PUSH1 0x20
00005666: DUP2
00005667: MSTORE
00005668: PUSH1 0x00
0000566a: DUP3
0000566b: MLOAD
0000566c: DUP1
0000566d: PUSH1 0x20
0000566f: DUP5
00005670: ADD
00005671: MSTORE
00005672: PUSH2 0x5682
00005675: DUP2
00005676: PUSH1 0x40
00005678: DUP6
00005679: ADD
0000567a: PUSH1 0x20
0000567c: DUP8
0000567d: ADD
0000567e: PUSH2 0x563f
00005681: JUMP
00005682: JUMPDEST
00005683: PUSH1 0x1f
00005685: ADD
00005686: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000056a7: AND
000056a8: SWAP2
000056a9: SWAP1
000056aa: SWAP2
000056ab: ADD
000056ac: PUSH1 0x40
000056ae: ADD
000056af: SWAP3
000056b0: SWAP2
000056b1: POP
000056b2: POP
000056b3: JUMP
000056b4: JUMPDEST
000056b5: DUP1
000056b6: ISZERO
000056b7: ISZERO
000056b8: DUP2
000056b9: EQ
000056ba: PUSH2 0x0e15
000056bd: JUMPI
000056be: PUSH1 0x00
000056c0: DUP1
000056c1: REVERT
000056c2: JUMPDEST
000056c3: PUSH1 0x00
000056c5: DUP1
000056c6: PUSH1 0x00
000056c8: DUP1
000056c9: PUSH1 0x60
000056cb: DUP6
000056cc: DUP8
000056cd: SUB
000056ce: SLT
000056cf: ISZERO
000056d0: PUSH2 0x56d8
000056d3: JUMPI
000056d4: PUSH1 0x00
000056d6: DUP1
000056d7: REVERT
000056d8: JUMPDEST
000056d9: DUP5
000056da: CALLDATALOAD
000056db: PUSH2 0x56e3
000056de: DUP2
000056df: PUSH2 0x550d
000056e2: JUMP
000056e3: JUMPDEST
000056e4: SWAP4
000056e5: POP
000056e6: PUSH1 0x20
000056e8: DUP6
000056e9: ADD
000056ea: CALLDATALOAD
000056eb: PUSH8 0xffffffffffffffff
000056f4: DUP2
000056f5: GT
000056f6: ISZERO
000056f7: PUSH2 0x56ff
000056fa: JUMPI
000056fb: PUSH1 0x00
000056fd: DUP1
000056fe: REVERT
000056ff: JUMPDEST
00005700: PUSH2 0x570b
00005703: DUP8
00005704: DUP3
00005705: DUP9
00005706: ADD
00005707: PUSH2 0x551d
0000570a: JUMP
0000570b: JUMPDEST
0000570c: SWAP1
0000570d: SWAP5
0000570e: POP
0000570f: SWAP3
00005710: POP
00005711: POP
00005712: PUSH1 0x40
00005714: DUP6
00005715: ADD
00005716: CALLDATALOAD
00005717: PUSH2 0x571f
0000571a: DUP2
0000571b: PUSH2 0x56b4
0000571e: JUMP
0000571f: JUMPDEST
00005720: SWAP4
00005721: SWAP7
00005722: SWAP3
00005723: SWAP6
00005724: POP
00005725: SWAP1
00005726: SWAP4
00005727: POP
00005728: POP
00005729: JUMP
0000572a: JUMPDEST
0000572b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00005740: DUP2
00005741: AND
00005742: DUP2
00005743: EQ
00005744: PUSH2 0x0e15
00005747: JUMPI
00005748: PUSH1 0x00
0000574a: DUP1
0000574b: REVERT
0000574c: JUMPDEST
0000574d: PUSH16 0xffffffffffffffffffffffffffffffff
0000575e: DUP2
0000575f: AND
00005760: DUP2
00005761: EQ
00005762: PUSH2 0x0e15
00005765: JUMPI
00005766: PUSH1 0x00
00005768: DUP1
00005769: REVERT
0000576a: JUMPDEST
0000576b: DUP1
0000576c: CALLDATALOAD
0000576d: PUSH1 0xff
0000576f: DUP2
00005770: AND
00005771: DUP2
00005772: EQ
00005773: PUSH2 0x1bb9
00005776: JUMPI
00005777: PUSH1 0x00
00005779: DUP1
0000577a: REVERT
0000577b: JUMPDEST
0000577c: PUSH1 0x00
0000577e: DUP1
0000577f: PUSH1 0x00
00005781: DUP1
00005782: PUSH1 0x00
00005784: DUP1
00005785: PUSH1 0x00
00005787: DUP1
00005788: PUSH1 0x00
0000578a: DUP1
0000578b: PUSH2 0x0140
0000578e: DUP12
0000578f: DUP14
00005790: SUB
00005791: SLT
00005792: ISZERO
00005793: PUSH2 0x579b
00005796: JUMPI
00005797: PUSH1 0x00
00005799: DUP1
0000579a: REVERT
0000579b: JUMPDEST
0000579c: DUP11
0000579d: CALLDATALOAD
0000579e: PUSH2 0x57a6
000057a1: DUP2
000057a2: PUSH2 0x572a
000057a5: JUMP
000057a6: JUMPDEST
000057a7: SWAP10
000057a8: POP
000057a9: PUSH1 0x20
000057ab: DUP12
000057ac: ADD
000057ad: CALLDATALOAD
000057ae: PUSH2 0x57b6
000057b1: DUP2
000057b2: PUSH2 0x572a
000057b5: JUMP
000057b6: JUMPDEST
000057b7: SWAP9
000057b8: POP
000057b9: PUSH1 0x40
000057bb: DUP12
000057bc: ADD
000057bd: CALLDATALOAD
000057be: SWAP8
000057bf: POP
000057c0: PUSH1 0x60
000057c2: DUP12
000057c3: ADD
000057c4: CALLDATALOAD
000057c5: PUSH2 0x57cd
000057c8: DUP2
000057c9: PUSH2 0x56b4
000057cc: JUMP
000057cd: JUMPDEST
000057ce: SWAP7
000057cf: POP
000057d0: PUSH1 0x80
000057d2: DUP12
000057d3: ADD
000057d4: CALLDATALOAD
000057d5: PUSH2 0x57dd
000057d8: DUP2
000057d9: PUSH2 0x56b4
000057dc: JUMP
000057dd: JUMPDEST
000057de: SWAP6
000057df: POP
000057e0: PUSH1 0xa0
000057e2: DUP12
000057e3: ADD
000057e4: CALLDATALOAD
000057e5: PUSH2 0x57ed
000057e8: DUP2
000057e9: PUSH2 0x574c
000057ec: JUMP
000057ed: JUMPDEST
000057ee: SWAP5
000057ef: POP
000057f0: PUSH1 0xc0
000057f2: DUP12
000057f3: ADD
000057f4: CALLDATALOAD
000057f5: PUSH2 0x57fd
000057f8: DUP2
000057f9: PUSH2 0x550d
000057fc: JUMP
000057fd: JUMPDEST
000057fe: SWAP4
000057ff: POP
00005800: PUSH1 0xe0
00005802: DUP12
00005803: ADD
00005804: CALLDATALOAD
00005805: PUSH2 0x580d
00005808: DUP2
00005809: PUSH2 0x574c
0000580c: JUMP
0000580d: JUMPDEST
0000580e: SWAP3
0000580f: POP
00005810: PUSH2 0x0100
00005813: DUP12
00005814: ADD
00005815: CALLDATALOAD
00005816: PUSH2 0x581e
00005819: DUP2
0000581a: PUSH2 0x574c
0000581d: JUMP
0000581e: JUMPDEST
0000581f: SWAP2
00005820: POP
00005821: PUSH2 0x582d
00005824: PUSH2 0x0120
00005827: DUP13
00005828: ADD
00005829: PUSH2 0x576a
0000582c: JUMP
0000582d: JUMPDEST
0000582e: SWAP1
0000582f: POP
00005830: SWAP3
00005831: SWAP6
00005832: SWAP9
00005833: SWAP12
00005834: SWAP2
00005835: SWAP5
00005836: SWAP8
00005837: SWAP11
00005838: POP
00005839: SWAP3
0000583a: SWAP6
0000583b: SWAP9
0000583c: POP
0000583d: JUMP
0000583e: JUMPDEST
0000583f: PUSH1 0x00
00005841: DUP1
00005842: PUSH1 0x00
00005844: DUP1
00005845: PUSH1 0x60
00005847: DUP6
00005848: DUP8
00005849: SUB
0000584a: SLT
0000584b: ISZERO
0000584c: PUSH2 0x5854
0000584f: JUMPI
00005850: PUSH1 0x00
00005852: DUP1
00005853: REVERT
00005854: JUMPDEST
00005855: DUP5
00005856: CALLDATALOAD
00005857: PUSH2 0x585f
0000585a: DUP2
0000585b: PUSH2 0x550d
0000585e: JUMP
0000585f: JUMPDEST
00005860: SWAP4
00005861: POP
00005862: PUSH1 0x20
00005864: DUP6
00005865: ADD
00005866: CALLDATALOAD
00005867: PUSH8 0xffffffffffffffff
00005870: DUP2
00005871: GT
00005872: ISZERO
00005873: PUSH2 0x587b
00005876: JUMPI
00005877: PUSH1 0x00
00005879: DUP1
0000587a: REVERT
0000587b: JUMPDEST
0000587c: PUSH2 0x5887
0000587f: DUP8
00005880: DUP3
00005881: DUP9
00005882: ADD
00005883: PUSH2 0x551d
00005886: JUMP
00005887: JUMPDEST
00005888: SWAP1
00005889: SWAP5
0000588a: POP
0000588b: SWAP3
0000588c: POP
0000588d: POP
0000588e: PUSH1 0x40
00005890: DUP6
00005891: ADD
00005892: CALLDATALOAD
00005893: PUSH2 0x571f
00005896: DUP2
00005897: PUSH2 0x572a
0000589a: JUMP
0000589b: JUMPDEST
0000589c: PUSH1 0x00
0000589e: DUP1
0000589f: PUSH1 0x00
000058a1: PUSH1 0x40
000058a3: DUP5
000058a4: DUP7
000058a5: SUB
000058a6: SLT
000058a7: ISZERO
000058a8: PUSH2 0x58b0
000058ab: JUMPI
000058ac: PUSH1 0x00
000058ae: DUP1
000058af: REVERT
000058b0: JUMPDEST
000058b1: DUP4
000058b2: CALLDATALOAD
000058b3: PUSH2 0x58bb
000058b6: DUP2
000058b7: PUSH2 0x550d
000058ba: JUMP
000058bb: JUMPDEST
000058bc: SWAP3
000058bd: POP
000058be: PUSH1 0x20
000058c0: DUP5
000058c1: ADD
000058c2: CALLDATALOAD
000058c3: PUSH8 0xffffffffffffffff
000058cc: DUP2
000058cd: GT
000058ce: ISZERO
000058cf: PUSH2 0x58d7
000058d2: JUMPI
000058d3: PUSH1 0x00
000058d5: DUP1
000058d6: REVERT
000058d7: JUMPDEST
000058d8: PUSH2 0x58e3
000058db: DUP7
000058dc: DUP3
000058dd: DUP8
000058de: ADD
000058df: PUSH2 0x551d
000058e2: JUMP
000058e3: JUMPDEST
000058e4: SWAP5
000058e5: SWAP8
000058e6: SWAP1
000058e7: SWAP7
000058e8: POP
000058e9: SWAP4
000058ea: SWAP5
000058eb: POP
000058ec: POP
000058ed: POP
000058ee: POP
000058ef: JUMP
000058f0: JUMPDEST
000058f1: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00005912: PUSH1 0x00
00005914: MSTORE
00005915: PUSH1 0x32
00005917: PUSH1 0x04
00005919: MSTORE
0000591a: PUSH1 0x24
0000591c: PUSH1 0x00
0000591e: REVERT
0000591f: JUMPDEST
00005920: PUSH1 0x20
00005922: DUP2
00005923: MSTORE
00005924: DUP2
00005925: PUSH1 0x20
00005927: DUP3
00005928: ADD
00005929: MSTORE
0000592a: DUP2
0000592b: DUP4
0000592c: PUSH1 0x40
0000592e: DUP4
0000592f: ADD
00005930: CALLDATACOPY
00005931: PUSH1 0x00
00005933: DUP2
00005934: DUP4
00005935: ADD
00005936: PUSH1 0x40
00005938: SWAP1
00005939: DUP2
0000593a: ADD
0000593b: SWAP2
0000593c: SWAP1
0000593d: SWAP2
0000593e: MSTORE
0000593f: PUSH1 0x1f
00005941: SWAP1
00005942: SWAP3
00005943: ADD
00005944: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00005965: AND
00005966: ADD
00005967: ADD
00005968: SWAP2
00005969: SWAP1
0000596a: POP
0000596b: JUMP
0000596c: JUMPDEST
0000596d: PUSH1 0x00
0000596f: DUP3
00005970: MLOAD
00005971: PUSH2 0x597e
00005974: DUP2
00005975: DUP5
00005976: PUSH1 0x20
00005978: DUP8
00005979: ADD
0000597a: PUSH2 0x563f
0000597d: JUMP
0000597e: JUMPDEST
0000597f: SWAP2
00005980: SWAP1
00005981: SWAP2
00005982: ADD
00005983: SWAP3
00005984: SWAP2
00005985: POP
00005986: POP
00005987: JUMP
00005988: JUMPDEST
00005989: PUSH1 0x00
0000598b: DUP1
0000598c: PUSH1 0x00
0000598e: PUSH1 0x60
00005990: DUP5
00005991: DUP7
00005992: SUB
00005993: SLT
00005994: ISZERO
00005995: PUSH2 0x599d
00005998: JUMPI
00005999: PUSH1 0x00
0000599b: DUP1
0000599c: REVERT
0000599d: JUMPDEST
0000599e: DUP4
0000599f: MLOAD
000059a0: PUSH2 0x59a8
000059a3: DUP2
000059a4: PUSH2 0x572a
000059a7: JUMP
000059a8: JUMPDEST
000059a9: PUSH1 0x20
000059ab: DUP6
000059ac: ADD
000059ad: MLOAD
000059ae: SWAP1
000059af: SWAP4
000059b0: POP
000059b1: PUSH2 0x59b9
000059b4: DUP2
000059b5: PUSH2 0x574c
000059b8: JUMP
000059b9: JUMPDEST
000059ba: PUSH1 0x40
000059bc: DUP6
000059bd: ADD
000059be: MLOAD
000059bf: SWAP1
000059c0: SWAP3
000059c1: POP
000059c2: PUSH2 0x59ca
000059c5: DUP2
000059c6: PUSH2 0x572a
000059c9: JUMP
000059ca: JUMPDEST
000059cb: DUP1
000059cc: SWAP2
000059cd: POP
000059ce: POP
000059cf: SWAP3
000059d0: POP
000059d1: SWAP3
000059d2: POP
000059d3: SWAP3
000059d4: JUMP
000059d5: JUMPDEST
000059d6: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000059f7: PUSH1 0x00
000059f9: MSTORE
000059fa: PUSH1 0x11
000059fc: PUSH1 0x04
000059fe: MSTORE
000059ff: PUSH1 0x24
00005a01: PUSH1 0x00
00005a03: REVERT
00005a04: JUMPDEST
00005a05: PUSH16 0xffffffffffffffffffffffffffffffff
00005a16: DUP2
00005a17: DUP2
00005a18: AND
00005a19: DUP4
00005a1a: DUP3
00005a1b: AND
00005a1c: MUL
00005a1d: DUP1
00005a1e: DUP3
00005a1f: AND
00005a20: SWAP2
00005a21: SWAP1
00005a22: DUP3
00005a23: DUP2
00005a24: EQ
00005a25: PUSH2 0x4c60
00005a28: JUMPI
00005a29: PUSH2 0x4c60
00005a2c: PUSH2 0x59d5
00005a2f: JUMP
00005a30: JUMPDEST
00005a31: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00005a52: PUSH1 0x00
00005a54: MSTORE
00005a55: PUSH1 0x12
00005a57: PUSH1 0x04
00005a59: MSTORE
00005a5a: PUSH1 0x24
00005a5c: PUSH1 0x00
00005a5e: REVERT
00005a5f: JUMPDEST
00005a60: PUSH1 0x00
00005a62: PUSH16 0xffffffffffffffffffffffffffffffff
00005a73: DUP1
00005a74: DUP5
00005a75: AND
00005a76: DUP1
00005a77: PUSH2 0x5a82
00005a7a: JUMPI
00005a7b: PUSH2 0x5a82
00005a7e: PUSH2 0x5a30
00005a81: JUMP
00005a82: JUMPDEST
00005a83: SWAP3
00005a84: AND
00005a85: SWAP2
00005a86: SWAP1
00005a87: SWAP2
00005a88: DIV
00005a89: SWAP3
00005a8a: SWAP2
00005a8b: POP
00005a8c: POP
00005a8d: JUMP
00005a8e: JUMPDEST
00005a8f: PUSH16 0xffffffffffffffffffffffffffffffff
00005aa0: DUP3
00005aa1: DUP2
00005aa2: AND
00005aa3: DUP3
00005aa4: DUP3
00005aa5: AND
00005aa6: SUB
00005aa7: SWAP1
00005aa8: DUP1
00005aa9: DUP3
00005aaa: GT
00005aab: ISZERO
00005aac: PUSH2 0x1776
00005aaf: JUMPI
00005ab0: PUSH2 0x1776
00005ab3: PUSH2 0x59d5
00005ab6: JUMP
00005ab7: JUMPDEST
00005ab8: PUSH16 0xffffffffffffffffffffffffffffffff
00005ac9: DUP2
00005aca: DUP2
00005acb: AND
00005acc: DUP4
00005acd: DUP3
00005ace: AND
00005acf: ADD
00005ad0: SWAP1
00005ad1: DUP1
00005ad2: DUP3
00005ad3: GT
00005ad4: ISZERO
00005ad5: PUSH2 0x1776
00005ad8: JUMPI
00005ad9: PUSH2 0x1776
00005adc: PUSH2 0x59d5
00005adf: JUMP
00005ae0: JUMPDEST
00005ae1: PUSH1 0x00
00005ae3: PUSH4 0xffffffff
00005ae8: DUP3
00005ae9: AND
00005aea: DUP1
00005aeb: PUSH2 0x5af6
00005aee: JUMPI
00005aef: PUSH2 0x5af6
00005af2: PUSH2 0x59d5
00005af5: JUMP
00005af6: JUMPDEST
00005af7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00005b18: ADD
00005b19: SWAP3
00005b1a: SWAP2
00005b1b: POP
00005b1c: POP
00005b1d: JUMP
00005b1e: JUMPDEST
00005b1f: PUSH1 0x00
00005b21: DUP1
00005b22: PUSH1 0x00
00005b24: PUSH1 0x60
00005b26: DUP5
00005b27: DUP7
00005b28: SUB
00005b29: SLT
00005b2a: ISZERO
00005b2b: PUSH2 0x5b33
00005b2e: JUMPI
00005b2f: PUSH1 0x00
00005b31: DUP1
00005b32: REVERT
00005b33: JUMPDEST
00005b34: PUSH2 0x5b3c
00005b37: DUP5
00005b38: PUSH2 0x576a
00005b3b: JUMP
00005b3c: JUMPDEST
00005b3d: SWAP6
00005b3e: PUSH1 0x20
00005b40: DUP6
00005b41: ADD
00005b42: CALLDATALOAD
00005b43: SWAP6
00005b44: POP
00005b45: PUSH1 0x40
00005b47: SWAP1
00005b48: SWAP5
00005b49: ADD
00005b4a: CALLDATALOAD
00005b4b: SWAP4
00005b4c: SWAP3
00005b4d: POP
00005b4e: POP
00005b4f: POP
00005b50: JUMP
00005b51: JUMPDEST
00005b52: DUP1
00005b53: MLOAD
00005b54: PUSH6 0xffffffffffff
00005b5b: DUP2
00005b5c: AND
00005b5d: DUP2
00005b5e: EQ
00005b5f: PUSH2 0x1bb9
00005b62: JUMPI
00005b63: PUSH1 0x00
00005b65: DUP1
00005b66: REVERT
00005b67: JUMPDEST
00005b68: PUSH1 0x00
00005b6a: DUP1
00005b6b: PUSH1 0x00
00005b6d: DUP1
00005b6e: PUSH1 0x00
00005b70: PUSH1 0xa0
00005b72: DUP7
00005b73: DUP9
00005b74: SUB
00005b75: SLT
00005b76: ISZERO
00005b77: PUSH2 0x5b7f
00005b7a: JUMPI
00005b7b: PUSH1 0x00
00005b7d: DUP1
00005b7e: REVERT
00005b7f: JUMPDEST
00005b80: PUSH2 0x5b88
00005b83: DUP7
00005b84: PUSH2 0x5b51
00005b87: JUMP
00005b88: JUMPDEST
00005b89: SWAP5
00005b8a: POP
00005b8b: PUSH2 0x5b96
00005b8e: PUSH1 0x20
00005b90: DUP8
00005b91: ADD
00005b92: PUSH2 0x5b51
00005b95: JUMP
00005b96: JUMPDEST
00005b97: SWAP4
00005b98: POP
00005b99: PUSH1 0x40
00005b9b: DUP7
00005b9c: ADD
00005b9d: MLOAD
00005b9e: SWAP3
00005b9f: POP
00005ba0: PUSH1 0x60
00005ba2: DUP7
00005ba3: ADD
00005ba4: MLOAD
00005ba5: PUSH4 0xffffffff
00005baa: DUP2
00005bab: AND
00005bac: DUP2
00005bad: EQ
00005bae: PUSH2 0x5bb6
00005bb1: JUMPI
00005bb2: PUSH1 0x00
00005bb4: DUP1
00005bb5: REVERT
00005bb6: JUMPDEST
00005bb7: PUSH1 0x80
00005bb9: DUP8
00005bba: ADD
00005bbb: MLOAD
00005bbc: SWAP1
00005bbd: SWAP3
00005bbe: POP
00005bbf: PUSH2 0x5bc7
00005bc2: DUP2
00005bc3: PUSH2 0x572a
00005bc6: JUMP
00005bc7: JUMPDEST
00005bc8: DUP1
00005bc9: SWAP2
00005bca: POP
00005bcb: POP
00005bcc: SWAP3
00005bcd: SWAP6
00005bce: POP
00005bcf: SWAP3
00005bd0: SWAP6
00005bd1: SWAP1
00005bd2: SWAP4
00005bd3: POP
00005bd4: JUMP
00005bd5: JUMPDEST
00005bd6: PUSH1 0x00
00005bd8: DUP2
00005bd9: PUSH1 0x0f
00005bdb: SIGNEXTEND
00005bdc: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000
00005bfd: DUP2
00005bfe: SUB
00005bff: PUSH2 0x5c0a
00005c02: JUMPI
00005c03: PUSH2 0x5c0a
00005c06: PUSH2 0x59d5
00005c09: JUMP
00005c0a: JUMPDEST
00005c0b: PUSH1 0x00
00005c0d: SUB
00005c0e: SWAP3
00005c0f: SWAP2
00005c10: POP
00005c11: POP
00005c12: JUMP
00005c13: JUMPDEST
00005c14: PUSH1 0x00
00005c16: PUSH4 0xffffffff
00005c1b: DUP1
00005c1c: DUP4
00005c1d: AND
00005c1e: DUP2
00005c1f: DUP2
00005c20: SUB
00005c21: PUSH2 0x5c2c
00005c24: JUMPI
00005c25: PUSH2 0x5c2c
00005c28: PUSH2 0x59d5
00005c2b: JUMP
00005c2c: JUMPDEST
00005c2d: PUSH1 0x01
00005c2f: ADD
00005c30: SWAP4
00005c31: SWAP3
00005c32: POP
00005c33: POP
00005c34: POP
00005c35: JUMP
00005c36: JUMPDEST
00005c37: PUSH1 0x00
00005c39: PUSH1 0x20
00005c3b: DUP3
00005c3c: DUP5
00005c3d: SUB
00005c3e: SLT
00005c3f: ISZERO
00005c40: PUSH2 0x5c48
00005c43: JUMPI
00005c44: PUSH1 0x00
00005c46: DUP1
00005c47: REVERT
00005c48: JUMPDEST
00005c49: DUP2
00005c4a: MLOAD
00005c4b: PUSH2 0x05f5
00005c4e: DUP2
00005c4f: PUSH2 0x550d
00005c52: JUMP
00005c53: JUMPDEST
00005c54: PUSH2 0xffff
00005c57: DUP3
00005c58: DUP2
00005c59: AND
00005c5a: DUP3
00005c5b: DUP3
00005c5c: AND
00005c5d: SUB
00005c5e: SWAP1
00005c5f: DUP1
00005c60: DUP3
00005c61: GT
00005c62: ISZERO
00005c63: PUSH2 0x1776
00005c66: JUMPI
00005c67: PUSH2 0x1776
00005c6a: PUSH2 0x59d5
00005c6d: JUMP
00005c6e: JUMPDEST
00005c6f: PUSH1 0x02
00005c71: DUP3
00005c72: DUP2
00005c73: SIGNEXTEND
00005c74: SWAP1
00005c75: DUP3
00005c76: SWAP1
00005c77: SIGNEXTEND
00005c78: SUB
00005c79: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
00005c9a: DUP2
00005c9b: SLT
00005c9c: PUSH3 0x7fffff
00005ca0: DUP3
00005ca1: SGT
00005ca2: OR
00005ca3: ISZERO
00005ca4: PUSH2 0x0e37
00005ca7: JUMPI
00005ca8: PUSH2 0x0e37
00005cab: PUSH2 0x59d5
00005cae: JUMP
00005caf: JUMPDEST
00005cb0: PUSH1 0x0f
00005cb2: DUP2
00005cb3: DUP2
00005cb4: SIGNEXTEND
00005cb5: SWAP1
00005cb6: DUP4
00005cb7: SWAP1
00005cb8: SIGNEXTEND
00005cb9: ADD
00005cba: PUSH16 0x7fffffffffffffffffffffffffffffff
00005ccb: DUP2
00005ccc: SGT
00005ccd: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000
00005cee: DUP3
00005cef: SLT
00005cf0: OR
00005cf1: ISZERO
00005cf2: PUSH2 0x0e37
00005cf5: JUMPI
00005cf6: PUSH2 0x0e37
00005cf9: PUSH2 0x59d5
00005cfc: JUMP
00005cfd: JUMPDEST
00005cfe: PUSH1 0x00
00005d00: DUP3
00005d01: PUSH1 0x02
00005d03: SIGNEXTEND
00005d04: DUP1
00005d05: PUSH2 0x5d10
00005d08: JUMPI
00005d09: PUSH2 0x5d10
00005d0c: PUSH2 0x5a30
00005d0f: JUMP
00005d10: JUMPDEST
00005d11: DUP1
00005d12: DUP4
00005d13: PUSH1 0x02
00005d15: SIGNEXTEND
00005d16: SMOD
00005d17: SWAP2
00005d18: POP
00005d19: POP
00005d1a: SWAP3
00005d1b: SWAP2
00005d1c: POP
00005d1d: POP
00005d1e: JUMP
00005d1f: JUMPDEST
00005d20: PUSH1 0x01
00005d22: DUP2
00005d23: DUP2
00005d24: SIGNEXTEND
00005d25: SWAP1
00005d26: DUP4
00005d27: SWAP1
00005d28: SIGNEXTEND
00005d29: ADD
00005d2a: PUSH2 0x7fff
00005d2d: DUP2
00005d2e: SGT
00005d2f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000
00005d50: DUP3
00005d51: SLT
00005d52: OR
00005d53: ISZERO
00005d54: PUSH2 0x0e37
00005d57: JUMPI
00005d58: PUSH2 0x0e37
00005d5b: PUSH2 0x59d5
00005d5e: JUMP
00005d5f: JUMPDEST
00005d60: PUSH1 0x00
00005d62: DUP3
00005d63: PUSH1 0x01
00005d65: SIGNEXTEND
00005d66: DUP1
00005d67: PUSH2 0x5d72
00005d6a: JUMPI
00005d6b: PUSH2 0x5d72
00005d6e: PUSH2 0x5a30
00005d71: JUMP
00005d72: JUMPDEST
00005d73: DUP1
00005d74: DUP4
00005d75: PUSH1 0x01
00005d77: SIGNEXTEND
00005d78: SMOD
00005d79: SWAP2
00005d7a: POP
00005d7b: POP
00005d7c: SWAP3
00005d7d: SWAP2
00005d7e: POP
00005d7f: POP
00005d80: JUMP
00005d81: JUMPDEST
00005d82: PUSH8 0xffffffffffffffff
00005d8b: DUP3
00005d8c: DUP2
00005d8d: AND
00005d8e: DUP3
00005d8f: DUP3
00005d90: AND
00005d91: SUB
00005d92: SWAP1
00005d93: DUP1
00005d94: DUP3
00005d95: GT
00005d96: ISZERO
00005d97: PUSH2 0x1776
00005d9a: JUMPI
00005d9b: PUSH2 0x1776
00005d9e: PUSH2 0x59d5
00005da1: JUMP
00005da2: JUMPDEST
00005da3: PUSH1 0x00
00005da5: PUSH1 0x20
00005da7: DUP3
00005da8: DUP5
00005da9: SUB
00005daa: SLT
00005dab: ISZERO
00005dac: PUSH2 0x5db4
00005daf: JUMPI
00005db0: PUSH1 0x00
00005db2: DUP1
00005db3: REVERT
00005db4: JUMPDEST
00005db5: DUP2
00005db6: MLOAD
00005db7: DUP1
00005db8: PUSH1 0x0f
00005dba: SIGNEXTEND
00005dbb: DUP2
00005dbc: EQ
00005dbd: PUSH2 0x05f5
00005dc0: JUMPI
00005dc1: PUSH1 0x00
00005dc3: DUP1
00005dc4: REVERT
00005dc5: JUMPDEST
00005dc6: PUSH8 0xffffffffffffffff
00005dcf: DUP2
00005dd0: DUP2
00005dd1: AND
00005dd2: DUP4
00005dd3: DUP3
00005dd4: AND
00005dd5: ADD
00005dd6: SWAP1
00005dd7: DUP1
00005dd8: DUP3
00005dd9: GT
00005dda: ISZERO
00005ddb: PUSH2 0x1776
00005dde: JUMPI
00005ddf: PUSH2 0x1776
00005de2: PUSH2 0x59d5
00005de5: JUMP
00005de6: JUMPDEST
00005de7: PUSH1 0x00
00005de9: PUSH1 0x20
00005deb: DUP3
00005dec: DUP5
00005ded: SUB
00005dee: SLT
00005def: ISZERO
00005df0: PUSH2 0x5df8
00005df3: JUMPI
00005df4: PUSH1 0x00
00005df6: DUP1
00005df7: REVERT
00005df8: JUMPDEST
00005df9: DUP2
00005dfa: MLOAD
00005dfb: PUSH2 0x05f5
00005dfe: DUP2
00005dff: PUSH2 0x56b4
00005e02: JUMP
00005e03: JUMPDEST
00005e04: DUP1
00005e05: DUP3
00005e06: MUL
00005e07: DUP2
00005e08: ISZERO
00005e09: DUP3
00005e0a: DUP3
00005e0b: DIV
00005e0c: DUP5
00005e0d: EQ
00005e0e: OR
00005e0f: PUSH2 0x0e37
00005e12: JUMPI
00005e13: PUSH2 0x0e37
00005e16: PUSH2 0x59d5
00005e19: JUMP
00005e1a: JUMPDEST
00005e1b: PUSH1 0x00
00005e1d: DUP3
00005e1e: PUSH2 0x5e29
00005e21: JUMPI
00005e22: PUSH2 0x5e29
00005e25: PUSH2 0x5a30
00005e28: JUMP
00005e29: JUMPDEST
00005e2a: POP
00005e2b: DIV
00005e2c: SWAP1
00005e2d: JUMP
00005e2e: INVALID
00005e2f: LOG2
00005e30: PUSH5 0x6970667358
00005e36: UNKNOWN(0x22)
00005e37: SLT
00005e38: KECCAK256
00005e39: UNKNOWN(0xEE)
00005e3a: UNKNOWN(0xD8)
00005e3b: CALLER
00005e3c: DUP5
00005e3d: SMOD
00005e3e: UNKNOWN(0xE7)
00005e3f: DIV
00005e40: LOG1
00005e41: UNKNOWN(0xFC)
00005e42: DUP4
00005e43: DUP7
00005e44: NUMBER
00005e45: UNKNOWN(0xFB)
00005e46: MSTORE
00005e47: DELEGATECALL
00005e48: UNKNOWN(0xE9)
00005e49: UNKNOWN(0xE8)
00005e4a: PUSH1 0xbf
00005e4c: UNKNOWN(0xC3)
00005e4d: STATICCALL
00005e4e: UNKNOWN(0xE6)
00005e4f: SSTORE
00005e50: UNKNOWN(0xB6)
00005e51: SWAP13
00005e52: CALLVALUE
00005e53: UNKNOWN(0xD8)
00005e54: PUSH6 0x8c0ac62a6473
00005e5b: PUSH16

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0x5134a7404baa02f09cc021d2c388f4a09b3181f4f70d6ab697ded34b733527ee
call_targets: 0xfcea907f4727b08cc9336a33fe872022942127a7
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 41,
    "trace_id": "0x5134a7404baa02f09cc021d2c388f4a09b3181f4f70d6ab697ded34b733527ee",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xfcea907f4727b08cc9336a33fe872022942127a7"
    ],
    "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": "0x3d719cd9",
            "selector": "0x3d719cd9",
            "calldata_variants": [
                "0x3d719cd9",
                "0x3d719cd90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7c519625",
            "selector": "0x7c519625",
            "calldata_variants": [
                "0x7c519625",
                "0x7c5196250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x90b33ce5",
            "selector": "0x90b33ce5",
            "calldata_variants": [
                "0x90b33ce5",
                "0x90b33ce50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa15112f9",
            "selector": "0xa15112f9",
            "calldata_variants": [
                "0xa15112f9",
                "0xa15112f90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x02ce8af3",
            "selector": "0x02ce8af3",
            "calldata_variants": [
                "0x02ce8af3",
                "0x02ce8af30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x08719070",
            "selector": "0x08719070",
            "calldata_variants": [
                "0x08719070",
                "0x087190700000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x13fd34f4",
            "selector": "0x13fd34f4",
            "calldata_variants": [
                "0x13fd34f4",
                "0x13fd34f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1787,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 14854,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 24135,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 3442,
            "type": "tx_origin_used"
        },
        {
            "pc": 3441,
            "type": "tx_origin_used"
        },
        {
            "pc": 3777,
            "type": "tx_origin_used"
        }
    ],
    "delegatecall_count": 3,
    "untrusted_delegatecall_count": 3
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x3d719cd9",
            "selector": "0x3d719cd9",
            "calldata_variants": [
                "0x3d719cd9",
                "0x3d719cd90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7c519625",
            "selector": "0x7c519625",
            "calldata_variants": [
                "0x7c519625",
                "0x7c5196250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x90b33ce5",
            "selector": "0x90b33ce5",
            "calldata_variants": [
                "0x90b33ce5",
                "0x90b33ce50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa15112f9",
            "selector": "0xa15112f9",
            "calldata_variants": [
                "0xa15112f9",
                "0xa15112f90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x02ce8af3",
            "selector": "0x02ce8af3",
            "calldata_variants": [
                "0x02ce8af3",
                "0x02ce8af30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x08719070",
            "selector": "0x08719070",
            "calldata_variants": [
                "0x08719070",
                "0x087190700000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x13fd34f4",
            "selector": "0x13fd34f4",
            "calldata_variants": [
                "0x13fd34f4",
                "0x13fd34f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 3442,
            "type": "tx_origin_used"
        },
        {
            "pc": 3441,
            "type": "tx_origin_used"
        },
        {
            "pc": 3777,
            "type": "tx_origin_used"
        }
    ]
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 3
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x1ba5193062ac14517e853d8661b7ebcc866558bb3b6a3969d83830b1f3246c98
call_targets: 0xaaaaaaaaa24eeeb8d57d431224f73832bc34f688
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x1ba5193062ac14517e853d8661b7ebcc866558bb3b6a3969d83830b1f3246c98",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xaaaaaaaaa24eeeb8d57d431224f73832bc34f688"
    ],
    "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": "0x3d719cd9",
            "selector": "0x3d719cd9",
            "calldata_variants": [
                "0x3d719cd9",
                "0x3d719cd90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7c519625",
            "selector": "0x7c519625",
            "calldata_variants": [
                "0x7c519625",
                "0x7c5196250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x90b33ce5",
            "selector": "0x90b33ce5",
            "calldata_variants": [
                "0x90b33ce5",
                "0x90b33ce50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa15112f9",
            "selector": "0xa15112f9",
            "calldata_variants": [
                "0xa15112f9",
                "0xa15112f90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x02ce8af3",
            "selector": "0x02ce8af3",
            "calldata_variants": [
                "0x02ce8af3",
                "0x02ce8af30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x08719070",
            "selector": "0x08719070",
            "calldata_variants": [
                "0x08719070",
                "0x087190700000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x13fd34f4",
            "selector": "0x13fd34f4",
            "calldata_variants": [
                "0x13fd34f4",
                "0x13fd34f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5614,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 12195,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 18722,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [
        {
            "pc": 3442,
            "type": "tx_origin_used"
        },
        {
            "pc": 3441,
            "type": "tx_origin_used"
        },
        {
            "pc": 3777,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 4
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x1ba5193062ac14517e853d8661b7ebcc866558bb3b6a3969d83830b1f3246c98
call_targets: 0xaaaaaaaaa24eeeb8d57d431224f73832bc34f688
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x1ba5193062ac14517e853d8661b7ebcc866558bb3b6a3969d83830b1f3246c98",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xaaaaaaaaa24eeeb8d57d431224f73832bc34f688"
    ],
    "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": "0x3d719cd9",
            "selector": "0x3d719cd9",
            "calldata_variants": [
                "0x3d719cd9",
                "0x3d719cd90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7c519625",
            "selector": "0x7c519625",
            "calldata_variants": [
                "0x7c519625",
                "0x7c5196250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x90b33ce5",
            "selector": "0x90b33ce5",
            "calldata_variants": [
                "0x90b33ce5",
                "0x90b33ce50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa15112f9",
            "selector": "0xa15112f9",
            "calldata_variants": [
                "0xa15112f9",
                "0xa15112f90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x02ce8af3",
            "selector": "0x02ce8af3",
            "calldata_variants": [
                "0x02ce8af3",
                "0x02ce8af30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x08719070",
            "selector": "0x08719070",
            "calldata_variants": [
                "0x08719070",
                "0x087190700000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x13fd34f4",
            "selector": "0x13fd34f4",
            "calldata_variants": [
                "0x13fd34f4",
                "0x13fd34f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5614,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 12195,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 18722,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": [
        {
            "pc": 3442,
            "type": "tx_origin_used"
        },
        {
            "pc": 3441,
            "type": "tx_origin_used"
        },
        {
            "pc": 3777,
            "type": "tx_origin_used"
        }
    ]
}