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

Analysis Run

2cd84221-a81a-485d-a866-8346329f1cca

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 11:01 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Authorization based on tx.origin
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
30599 report.consolidate complete 1 / 1 3 months ago
104453 artifact.fetch failed 1 / 3 1 week ago
104454 tool.cast_disasm complete 1 / 3 1 week ago
104455 analysis.bundle complete 1 / 3 1 week ago
104456 capability.graph complete 1 / 3 1 week ago
104457 detector.run complete 1 / 3 1 week ago
104458 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
One accounting risk: the pool assumes full ERC20 transfer amounts, which lets fee-on-transfer/deflationary tokens bypass invariants and drain value.
View stderr
[codex:1145989] OpenAI Codex v0.77.0 (research preview)
[codex:1145989] --------
[codex:1145989] workdir: /tmp/codex-multi-ecprekj9
[codex:1145989] model: gpt-5.2-codex
[codex:1145989] provider: openai
[codex:1145989] approval: never
[codex:1145989] sandbox: read-only
[codex:1145989] reasoning effort: xhigh
[codex:1145989] reasoning summaries: auto
[codex:1145989] session id: 019b6c50-9902-7c80-809d-9bf7cecb309d
[codex:1145989] --------
[codex:1145989] user
[codex:1145989] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1145989] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1145989] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1145989] 
[codex:1145989] Scope rules:
[codex:1145989] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1145989] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1145989] 
[codex:1145989] Output MUST be valid JSON matching the provided schema.
[codex:1145989] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1145989] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1145989] 
[codex:1145989] Output constraints (IMPORTANT):
[codex:1145989] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1145989] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1145989] mcp startup: no servers
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Preparing to read AUDIT_BUNDLE.txt**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc ls in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989] AUDIT_BUNDLE.txt
[codex:1145989] codex-output-schema.json
[codex:1145989] contracts
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1145989] 
[codex:1145989] ================================================================================
[codex:1145989] FILE: contracts/node_modules/@cowprotocol/contracts/src/contracts/interfaces/GPv2EIP1271.sol
[codex:1145989] ================================================================================
[codex:1145989] // SPDX-License-Identifier: LGPL-3.0-or-later
[codex:1145989] pragma solidity >=0.7.6 <0.9.0;
[codex:1145989] 
[codex:1145989] library GPv2EIP1271 {
[codex:1145989]     /// @dev Value returned by a call to `isValidSignature` if the signature
[codex:1145989]     /// was verified successfully. The value is defined in EIP-1271 as:
[codex:1145989]     /// bytes4(keccak256("isValidSignature(bytes32,bytes)"))
[codex:1145989]     bytes4 internal constant MAGICVALUE = 0x1626ba7e;
[codex:1145989] }
[codex:1145989] 
[codex:1145989] /// @title EIP1271 Interface
[codex:1145989] /// @dev Standardized interface for an implementation of smart contract
[codex:1145989] /// signatures as described in EIP-1271. The code that follows is identical to
[codex:1145989] /// the code in the standard with the exception of formatting and syntax
[codex:1145989] /// changes to adapt the code to our Solidity version.
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Parsing first-party contract bundle**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'ls contracts/src' in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] contracts
[codex:1145989] interfaces
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Listing contracts source files**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'ls contracts/src/contracts' in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989] BConst.sol
[codex:1145989] BCoWConst.sol
[codex:1145989] BCoWPool.sol
[codex:1145989] BMath.sol
[codex:1145989] BNum.sol
[codex:1145989] BPool.sol
[codex:1145989] BToken.sol
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Preparing to review files**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BCoWPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989] 
[codex:1145989] /*
[codex:1145989] 
[codex:1145989] Coded for Balancer and CoW Swap with ♥ by
[codex:1145989] 
[codex:1145989] ░██╗░░░░░░░██╗░█████╗░███╗░░██╗██████╗░███████╗██████╗░██╗░░░░░░█████╗░███╗░░██╗██████╗░
[codex:1145989] ░██║░░██╗░░██║██╔══██╗████╗░██║██╔══██╗██╔════╝██╔══██╗██║░░░░░██╔══██╗████╗░██║██╔══██╗
[codex:1145989] ░╚██╗████╗██╔╝██║░░██║██╔██╗██║██║░░██║█████╗░░██████╔╝██║░░░░░███████║██╔██╗██║██║░░██║
[codex:1145989] ░░████╔═████║░██║░░██║██║╚████║██║░░██║██╔══╝░░██╔══██╗██║░░░░░██╔══██║██║╚████║██║░░██║
[codex:1145989] ░░╚██╔╝░╚██╔╝░╚█████╔╝██║░╚███║██████╔╝███████╗██║░░██║███████╗██║░░██║██║░╚███║██████╔╝
[codex:1145989] ░░░╚═╝░░░╚═╝░░░╚════╝░╚═╝░░╚══╝╚═════╝░╚══════╝╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚══╝╚═════╝░
[codex:1145989] 
[codex:1145989] https://defi.sucks
[codex:1145989] 
[codex:1145989] */
[codex:1145989] 
[codex:1145989] import {BCoWConst} from './BCoWConst.sol';
[codex:1145989] import {BPool} from './BPool.sol';
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Preparing to work on BPool**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989] 
[codex:1145989] import {BMath} from './BMath.sol';
[codex:1145989] import {BToken} from './BToken.sol';
[codex:1145989] import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
[codex:1145989] import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';
[codex:1145989] import {IBPool} from 'interfaces/IBPool.sol';
[codex:1145989] 
[codex:1145989] /**
[codex:1145989]  * @title BPool
[codex:1145989]  * @notice Pool contract that holds tokens, allows to swap, add and remove liquidity.
[codex:1145989]  */
[codex:1145989] contract BPool is BToken, BMath, IBPool {
[codex:1145989]   using SafeERC20 for IERC20;
[codex:1145989]   /// @dev BFactory address to push token exitFee to
[codex:1145989] 
[codex:1145989]   /// @inheritdoc IBPool
[codex:1145989]   address public immutable FACTORY;
[codex:1145989]   /// @dev Has CONTROL role
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '200,400p' contracts/src/contracts/BPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989]   function exitPool(uint256 poolAmountIn, uint256[] calldata minAmountsOut) external _logs_ _lock_ _finalized_ {
[codex:1145989]     uint256 poolTotal = totalSupply();
[codex:1145989]     uint256 exitFee = bmul(poolAmountIn, EXIT_FEE);
[codex:1145989]     uint256 pAiAfterExitFee = bsub(poolAmountIn, exitFee);
[codex:1145989]     uint256 ratio = bdiv(pAiAfterExitFee, poolTotal);
[codex:1145989]     if (ratio == 0) {
[codex:1145989]       revert BPool_InvalidPoolRatio();
[codex:1145989]     }
[codex:1145989] 
[codex:1145989]     _pullPoolShare(msg.sender, poolAmountIn);
[codex:1145989]     _pushPoolShare(FACTORY, exitFee);
[codex:1145989]     _burnPoolShare(pAiAfterExitFee);
[codex:1145989] 
[codex:1145989]     uint256 tokensLength = _tokens.length;
[codex:1145989]     for (uint256 i = 0; i < tokensLength; i++) {
[codex:1145989]       address t = _tokens[i];
[codex:1145989]       uint256 bal = IERC20(t).balanceOf(address(this));
[codex:1145989]       uint256 tokenAmountOut = bmul(ratio, bal);
[codex:1145989]       if (tokenAmountOut == 0) {
[codex:1145989]         revert BPool_InvalidTokenAmountOut();
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '400,800p' contracts/src/contracts/BPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989]     return _tokens;
[codex:1145989]   }
[codex:1145989] 
[codex:1145989]   /// @inheritdoc IBPool
[codex:1145989]   function getFinalTokens() external view _viewlock_ _finalized_ returns (address[] memory) {
[codex:1145989]     return _tokens;
[codex:1145989]   }
[codex:1145989] 
[codex:1145989]   /// @inheritdoc IBPool
[codex:1145989]   function getDenormalizedWeight(address token) external view _viewlock_ returns (uint256) {
[codex:1145989]     if (!_records[token].bound) {
[codex:1145989]       revert BPool_TokenNotBound();
[codex:1145989]     }
[codex:1145989]     return _records[token].denorm;
[codex:1145989]   }
[codex:1145989] 
[codex:1145989]   /// @inheritdoc IBPool
[codex:1145989]   function getTotalDenormalizedWeight() external view _viewlock_ returns (uint256) {
[codex:1145989]     return _totalWeight;
[codex:1145989]   }
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Identifying additional required contracts**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BToken.sol" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989] 
[codex:1145989] import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol';
[codex:1145989] 
[codex:1145989] /**
[codex:1145989]  * @title BToken
[codex:1145989]  * @notice Balancer Pool Token base contract, providing ERC20 functionality.
[codex:1145989]  */
[codex:1145989] contract BToken is ERC20 {
[codex:1145989]   constructor(string memory name, string memory symbol) ERC20(name, symbol) {}
[codex:1145989] 
[codex:1145989]   /**
[codex:1145989]    * @notice Increase the allowance of the spender.
[codex:1145989]    * @param spender The address which will spend the funds.
[codex:1145989]    * @param amount The amount of tokens to increase the allowance by.
[codex:1145989]    * @return success True if the operation is successful.
[codex:1145989]    */
[codex:1145989]   function increaseApproval(address spender, uint256 amount) external returns (bool success) {
[codex:1145989]     _approve(msg.sender, spender, allowance(msg.sender, spender) + amount);
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Listing necessary components**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BConst.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989] 
[codex:1145989] /**
[codex:1145989]  * @title BConst
[codex:1145989]  * @notice Constants used in the scope of the BPool contract.
[codex:1145989]  */
[codex:1145989] contract BConst {
[codex:1145989]   /// @notice The unit of precision used in the calculations.
[codex:1145989]   uint256 public constant BONE = 10 ** 18;
[codex:1145989] 
[codex:1145989]   /// @notice The minimum number of bound tokens in a pool.
[codex:1145989]   uint256 public constant MIN_BOUND_TOKENS = 2;
[codex:1145989]   /// @notice The maximum number of bound tokens in a pool.
[codex:1145989]   uint256 public constant MAX_BOUND_TOKENS = 8;
[codex:1145989] 
[codex:1145989]   /// @notice The minimum swap fee that can be set.
[codex:1145989]   uint256 public constant MIN_FEE = BONE / 10 ** 6;
[codex:1145989]   /// @notice The maximum swap fee that can be set.
[codex:1145989]   uint256 public constant MAX_FEE = BONE - MIN_FEE;
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Identifying term meaning**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BCoWConst.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989] 
[codex:1145989] /**
[codex:1145989]  * @title BCoWConst
[codex:1145989]  * @notice Constants used in the scope of the BCoWPool contract.
[codex:1145989]  */
[codex:1145989] contract BCoWConst {
[codex:1145989]   /**
[codex:1145989]    * @notice The largest possible duration of any AMM order, starting from the
[codex:1145989]    * current block timestamp.
[codex:1145989]    * @return _maxOrderDuration The maximum order duration.
[codex:1145989]    */
[codex:1145989]   uint32 public constant MAX_ORDER_DURATION = 5 minutes;
[codex:1145989] }
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Identifying required modules**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BMath.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989] 
[codex:1145989] import {BConst} from './BConst.sol';
[codex:1145989] import {BNum} from './BNum.sol';
[codex:1145989] 
[codex:1145989] /**
[codex:1145989]  * @title BMath
[codex:1145989]  * @notice Includes functions for calculating the BPool related math.
[codex:1145989]  */
[codex:1145989] contract BMath is BConst, BNum {
[codex:1145989]   /**
[codex:1145989]    * @notice Calculate the spot price of a token in terms of another one
[codex:1145989]    * @dev The price denomination depends on the decimals of the tokens.
[codex:1145989]    * @dev To obtain the price with 18 decimals the next formula should be applied to the result
[codex:1145989]    * @dev spotPrice = spotPrice ÷ (10^tokenInDecimals) × (10^tokenOutDecimals)
[codex:1145989]    * @param tokenBalanceIn The balance of the input token in the pool
[codex:1145989]    * @param tokenWeightIn The weight of the input token in the pool
[codex:1145989]    * @param tokenBalanceOut The balance of the output token in the pool
[codex:1145989]    * @param tokenWeightOut The weight of the output token in the pool
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Noticing a brief note**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BNum.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989] 
[codex:1145989] import {BConst} from './BConst.sol';
[codex:1145989] 
[codex:1145989] /**
[codex:1145989]  * @title BNum
[codex:1145989]  * @notice Includes functions for arithmetic operations with fixed-point numbers.
[codex:1145989]  * @dev The arithmetic operations are implemented with a precision of BONE.
[codex:1145989]  */
[codex:1145989] // solhint-disable private-vars-leading-underscore
[codex:1145989] // solhint-disable named-return-values
[codex:1145989] contract BNum is BConst {
[codex:1145989]   /**
[codex:1145989]    * @notice Thrown when an overflow is encountered inside the add function
[codex:1145989]    */
[codex:1145989]   error BNum_AddOverflow();
[codex:1145989] 
[codex:1145989]   /**
[codex:1145989]    * @notice Thrown when an underflow is encountered inside the sub function
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Searching for Factory in contracts/src**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'rg -n "contract|interface" contracts/src' in /tmp/codex-multi-ecprekj9 succeeded in 11ms:
[codex:1145989] contracts/src/contracts/BNum.sol:13:contract BNum is BConst {
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:5:import {IERC1271} from '@openzeppelin/contracts/interfaces/IERC1271.sol';
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:6:import {IBPool} from 'interfaces/IBPool.sol';
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:7:import {ISettlement} from 'interfaces/ISettlement.sol';
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:9:interface IBCoWPool is IERC1271, IBPool {
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:55:   * does not match the one stored in this contract.
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:89:   * @notice The address of the CoW Protocol settlement contract. It is the
[codex:1145989] contracts/src/contracts/BMath.sol:11:contract BMath is BConst, BNum {
[codex:1145989] contracts/src/interfaces/IBPool.sol:4:import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
[codex:1145989] contracts/src/interfaces/IBPool.sol:6:interface IBPool is IERC20 {
[codex:1145989] contracts/src/contracts/BPool.sol:6:import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
[codex:1145989] contracts/src/contracts/BPool.sol:7:import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';
[codex:1145989] contracts/src/contracts/BPool.sol:8:import {IBPool} from 'interfaces/IBPool.sol';
[codex:1145989] contracts/src/contracts/BPool.sol:12: * @notice Pool contract that holds tokens, allows to swap, add and remove liquidity.
[codex:1145989] contracts/src/contracts/BPool.sol:14:contract BPool is BToken, BMath, IBPool {
[codex:1145989] contracts/src/contracts/BCoWConst.sol:6: * @notice Constants used in the scope of the BCoWPool contract.
[codex:1145989] contracts/src/contracts/BCoWConst.sol:8:contract BCoWConst {
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:4:import {IBFactory} from 'interfaces/IBFactory.sol';
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:6:interface IBCoWFactory is IBFactory {
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:24:   * @notice The address of the CoW Protocol settlement contract. It is the
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Reviewing IBCoWFactory interface**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/interfaces/IBCoWFactory.sol" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989] 
[codex:1145989] import {IBFactory} from 'interfaces/IBFactory.sol';
[codex:1145989] 
[codex:1145989] interface IBCoWFactory is IBFactory {
[codex:1145989]   /**
[codex:1145989]    * @notice Emitted when a bCoWPool created by this factory is finalized
[codex:1145989]    * @param bCoWPool The pool just finalized
[codex:1145989]    */
[codex:1145989]   event COWAMMPoolCreated(address indexed bCoWPool);
[codex:1145989] 
[codex:1145989]   /**
[codex:1145989]    * @notice thrown when the caller of `logBCoWPool()` is not a bCoWPool created by this factory
[codex:1145989]    */
[codex:1145989]   error BCoWFactory_NotValidBCoWPool();
[codex:1145989] 
[codex:1145989]   /**
[codex:1145989]    * @notice Emits the COWAMMPoolCreated event if the caller is a bCoWPool, to be indexed by off-chain agents
[codex:1145989]    */
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Searching for BFactory implementation**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'rg -n "BFactory|Factory" contracts' in /tmp/codex-multi-ecprekj9 succeeded in 9ms:
[codex:1145989] contracts/src/interfaces/IBPool.sol:372:   * @notice Gets the BFactory address that deployed the pool
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:4:import {IBFactory} from 'interfaces/IBFactory.sol';
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:6:interface IBCoWFactory is IBFactory {
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:16:  error BCoWFactory_NotValidBCoWPool();
[codex:1145989] contracts/src/interfaces/IBFactory.sol:6:interface IBFactory {
[codex:1145989] contracts/src/interfaces/IBFactory.sol:24:  error BFactory_AddressZero();
[codex:1145989] contracts/src/interfaces/IBFactory.sol:29:  error BFactory_NotBDao();
[codex:1145989] contracts/src/contracts/BPool.sol:16:  /// @dev BFactory address to push token exitFee to
[codex:1145989] contracts/src/contracts/BCoWPool.sol:26:import {IBCoWFactory} from 'interfaces/IBCoWFactory.sol';
[codex:1145989] contracts/src/contracts/BCoWPool.sol:155:    // If this pool was not deployed using a bCoWFactory, this will revert and catch
[codex:1145989] contracts/src/contracts/BCoWPool.sol:158:    try IBCoWFactory(FACTORY).logBCoWPool() {}
[codex:1145989] contracts/src/contracts/BCoWPool.sol:160:      emit IBCoWFactory.COWAMMPoolCreated(address(this));
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Investigating factory implementation in audit bundle**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'rg -n "FILE: contracts/src/contracts" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] 1984:FILE: contracts/src/contracts/BCoWConst.sol
[codex:1145989] 2003:FILE: contracts/src/contracts/BCoWPool.sol
[codex:1145989] 2170:FILE: contracts/src/contracts/BConst.sol
[codex:1145989] 2234:FILE: contracts/src/contracts/BMath.sol
[codex:1145989] 2354:FILE: contracts/src/contracts/BNum.sol
[codex:1145989] 2558:FILE: contracts/src/contracts/BPool.sol
[codex:1145989] 3094:FILE: contracts/src/contracts/BToken.sol
[codex:1145989] 
[codex:1145989] 
[codex:1145989] 
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Analyzing contract and library vulnerabilities**
[codex:1145989] 
[codex:1145989] I'm examining the interplay between main contracts and included libraries, focusing on potential security issues like reentrancy, access control, and signature validation. I'm carefully considering transient storage usage, token transfer behaviors, and signature verification flows, noting where safeguards exist or where subtle risks could arise, especially around external calls and state consistency during commitments and order processing.
[codex:1145989] thinking
[codex:1145989] **Evaluating edge cases and security nuances**
[codex:1145989] 
[codex:1145989] I'm digging into subtle edge cases around locking, commitment values, and verification logic, especially how special order hashes might interact with reentrancy guards and transient storage. I'm also reviewing whether access control, token behavior, and order expiration checks could expose vulnerabilities or allow unexpected behaviors during multi-step settlement and validation.
[codex:1145989] thinking
[codex:1145989] **Validating token swaps and approval flows**
[codex:1145989] 
[codex:1145989] I'm exploring potential subtle issues around token swap logic when input and output tokens are identical, allowance changes without reentrancy guards, and how zero or malformed addresses might affect token bindings or approvals. I'm also checking order verification logic, particularly around fees, token roles, and ensuring vault relayer and settlement addresses are correctly set to avoid misuse.
[codex:1145989] thinking
[codex:1145989] **Assessing allowance setup and external call risks**
[codex:1145989] 
[codex:1145989] I'm reviewing whether the unlimited allowance to vault relayer set at finalize poses configuration risks if parameters are wrong, how reentrancy during approvals could happen via token hooks, and confirming external call patterns and array length checks. I’m also confirming solidity ABI decoding nuances and transient storage lock usage to ensure no unintended side effects or attack vectors arise from signature handling or transaction flow.
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989] 1895:        (bool success, bytes memory returndata) = target.delegatecall(data);
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Inspecting delegatecall usage**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1860,1915p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989]     function functionCall(address target, bytes memory data) internal returns (bytes memory) {
[codex:1145989]         return functionCallWithValue(target, data, 0);
[codex:1145989]     }
[codex:1145989] 
[codex:1145989]     /**
[codex:1145989]      * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
[codex:1145989]      * but also transferring `value` wei to `target`.
[codex:1145989]      *
[codex:1145989]      * Requirements:
[codex:1145989]      *
[codex:1145989]      * - the calling contract must have an ETH balance of at least `value`.
[codex:1145989]      * - the called Solidity function must be `payable`.
[codex:1145989]      */
[codex:1145989]     function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
[codex:1145989]         if (address(this).balance < value) {
[codex:1145989]             revert AddressInsufficientBalance(address(this));
[codex:1145989]         }
[codex:1145989]         (bool success, bytes memory returndata) = target.call{value: value}(data);
[codex:1145989]         return verifyCallResultFromTarget(target, success, returndata);
[codex:1145989]     }
[codex:1145989] 
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Analyzing potential vulnerabilities and design assumptions**
[codex:1145989] thinking
[codex:1145989] **Assessing token compatibility and order expiration checks**
[codex:1145989] 
[codex:1145989] I’m examining how fee-on-transfer tokens might cause accounting issues if bound by the controller, potentially enabling pool draining by traders exploiting assumed full transfers. I’m also considering that the code doesn’t explicitly verify order expiration in signature validation, which might allow expired orders to appear valid if external components don’t check `validTo`. Both are subtle limitations with security implications worth noting.
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BPool.sol | sed -n '130,260p'" in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989]    130	      revert BPool_TokensAboveMaximum();
[codex:1145989]    131	    }
[codex:1145989]    132	    if (denorm < MIN_WEIGHT) {
[codex:1145989]    133	      revert BPool_WeightBelowMinimum();
[codex:1145989]    134	    }
[codex:1145989]    135	    if (denorm > MAX_WEIGHT) {
[codex:1145989]    136	      revert BPool_WeightAboveMaximum();
[codex:1145989]    137	    }
[codex:1145989]    138	    if (balance < MIN_BALANCE) {
[codex:1145989]    139	      revert BPool_BalanceBelowMinimum();
[codex:1145989]    140	    }
[codex:1145989]    141	
[codex:1145989]    142	    _totalWeight = badd(_totalWeight, denorm);
[codex:1145989]    143	    if (_totalWeight > MAX_TOTAL_WEIGHT) {
[codex:1145989]    144	      revert BPool_TotalWeightAboveMaximum();
[codex:1145989]    145	    }
[codex:1145989]    146	
[codex:1145989]    147	    _records[token] = Record({bound: true, index: _tokens.length, denorm: denorm});
[codex:1145989]    148	    _tokens.push(token);
[codex:1145989]    149	
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Noting need for line numbers**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BPool.sol | sed -n '320,460p'" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989]    320	      revert BPool_TokenAmountInAboveMaxAmountIn();
[codex:1145989]    321	    }
[codex:1145989]    322	
[codex:1145989]    323	    tokenInBalance = badd(tokenInBalance, tokenAmountIn);
[codex:1145989]    324	    tokenOutBalance = bsub(tokenOutBalance, tokenAmountOut);
[codex:1145989]    325	
[codex:1145989]    326	    spotPriceAfter = calcSpotPrice(tokenInBalance, inRecord.denorm, tokenOutBalance, outRecord.denorm, _swapFee);
[codex:1145989]    327	    if (spotPriceAfter < spotPriceBefore) {
[codex:1145989]    328	      revert BPool_SpotPriceAfterBelowSpotPriceBefore();
[codex:1145989]    329	    }
[codex:1145989]    330	    if (spotPriceAfter > maxPrice) {
[codex:1145989]    331	      revert BPool_SpotPriceAboveMaxPrice();
[codex:1145989]    332	    }
[codex:1145989]    333	    if (spotPriceBefore > bdiv(tokenAmountIn, tokenAmountOut)) {
[codex:1145989]    334	      revert BPool_SpotPriceBeforeAboveTokenRatio();
[codex:1145989]    335	    }
[codex:1145989]    336	
[codex:1145989]    337	    emit LOG_SWAP(msg.sender, tokenIn, tokenOut, tokenAmountIn, tokenAmountOut);
[codex:1145989]    338	
[codex:1145989]    339	    _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Locating method lines**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BPool.sol | sed -n '460,560p'" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989]    460	  /**
[codex:1145989]    461	   * @dev Pulls tokens from the sender. Tokens needs to be approved first. Calls are not locked.
[codex:1145989]    462	   * @param token The address of the token to pull
[codex:1145989]    463	   * @param from The address to pull the tokens from
[codex:1145989]    464	   * @param amount The amount of tokens to pull
[codex:1145989]    465	   */
[codex:1145989]    466	  function _pullUnderlying(address token, address from, uint256 amount) internal virtual {
[codex:1145989]    467	    IERC20(token).safeTransferFrom(from, address(this), amount);
[codex:1145989]    468	  }
[codex:1145989]    469	
[codex:1145989]    470	  /**
[codex:1145989]    471	   * @dev Pushes tokens to the receiver. Calls are not locked.
[codex:1145989]    472	   * @param token The address of the token to push
[codex:1145989]    473	   * @param to The address to push the tokens to
[codex:1145989]    474	   * @param amount The amount of tokens to push
[codex:1145989]    475	   */
[codex:1145989]    476	  function _pushUnderlying(address token, address to, uint256 amount) internal virtual {
[codex:1145989]    477	    IERC20(token).safeTransfer(to, amount);
[codex:1145989]    478	  }
[codex:1145989]    479	
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Reviewing BCoWPool code**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BCoWPool.sol | sed -n '70,180p'" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989]     70	    _setLock(orderHash);
[codex:1145989]     71	  }
[codex:1145989]     72	
[codex:1145989]     73	  /**
[codex:1145989]     74	   * @inheritdoc IERC1271
[codex:1145989]     75	   * @dev this function reverts if the order hash does not match the current commitment
[codex:1145989]     76	   */
[codex:1145989]     77	  function isValidSignature(bytes32 orderHash, bytes memory signature) external view returns (bytes4 magicValue) {
[codex:1145989]     78	    (GPv2Order.Data memory order) = abi.decode(signature, (GPv2Order.Data));
[codex:1145989]     79	
[codex:1145989]     80	    if (order.appData != APP_DATA) {
[codex:1145989]     81	      revert AppDataDoesNotMatch();
[codex:1145989]     82	    }
[codex:1145989]     83	
[codex:1145989]     84	    bytes32 orderHash_ = order.hash(SOLUTION_SETTLER_DOMAIN_SEPARATOR);
[codex:1145989]     85	    if (orderHash_ != orderHash) {
[codex:1145989]     86	      revert OrderDoesNotMatchMessageHash();
[codex:1145989]     87	    }
[codex:1145989]     88	
[codex:1145989]     89	    if (orderHash_ != _getLock()) {
[codex:1145989] 
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Summarizing audit findings and crafting JSON report**
[codex:1145989] 
[codex:1145989] I've analyzed multiple areas for vulnerabilities including reentrancy, access control, and accounting issues. The key finding is a medium-severity fee-on-transfer token problem causing invariant breaks, backed by code references. I’m compiling this into a JSON report with evidence, severity, and recommendations for the user.
[codex:1145989] thinking
[codex:1145989] **Detailing transfer amount mismatches and evidence**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "rg -n \"_pullUnderlying\\(tokenIn\" -n contracts/src/contracts/BPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] 282:    _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);
[codex:1145989] 339:    _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Reviewing swap function lines**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BPool.sol | sed -n '260,310p'" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989]    260	    tokenAmountOut =
[codex:1145989]    261	      calcOutGivenIn(tokenInBalance, inRecord.denorm, tokenOutBalance, outRecord.denorm, tokenAmountIn, _swapFee);
[codex:1145989]    262	    if (tokenAmountOut < minAmountOut) {
[codex:1145989]    263	      revert BPool_TokenAmountOutBelowMinOut();
[codex:1145989]    264	    }
[codex:1145989]    265	
[codex:1145989]    266	    tokenInBalance = badd(tokenInBalance, tokenAmountIn);
[codex:1145989]    267	    tokenOutBalance = bsub(tokenOutBalance, tokenAmountOut);
[codex:1145989]    268	
[codex:1145989]    269	    spotPriceAfter = calcSpotPrice(tokenInBalance, inRecord.denorm, tokenOutBalance, outRecord.denorm, _swapFee);
[codex:1145989]    270	    if (spotPriceAfter < spotPriceBefore) {
[codex:1145989]    271	      revert BPool_SpotPriceAfterBelowSpotPriceBefore();
[codex:1145989]    272	    }
[codex:1145989]    273	    if (spotPriceAfter > maxPrice) {
[codex:1145989]    274	      revert BPool_SpotPriceAboveMaxPrice();
[codex:1145989]    275	    }
[codex:1145989]    276	    if (spotPriceBefore > bdiv(tokenAmountIn, tokenAmountOut)) {
[codex:1145989]    277	      revert BPool_SpotPriceBeforeAboveTokenRatio();
[codex:1145989]    278	    }
[codex:1145989]    279	
[codex:1145989] 
[codex:1145989] thinking
[codex:1145989] **Preparing detailed JSON findings**
[codex:1145989] codex
[codex:1145989] {"no_findings":false,"summary":"One accounting risk: the pool assumes full ERC20 transfer amounts, which lets fee-on-transfer/deflationary tokens bypass invariants and drain value.","findings":[{"severity":"low","category":"math","title":"Fee-on-transfer tokens break pool accounting and allow value extraction","exploit_scenario":"If a bound token charges a transfer fee, an attacker can swap that token in. The pool computes `tokenAmountOut` from the nominal `tokenAmountIn`, but the pool receives less due to the fee and still sends out the full `tokenAmountOut`, letting the attacker extract excess of the other token. The same issue applies to CoW orders validated via `verify` when the buy token is fee-on-transfer.","recommendation":"Disallow fee-on-transfer/deflationary tokens (whitelist standard ERC20s) or compute actual received amounts via balance-before/after and use that for pricing. For CoW orders, either enforce standard ERC20s or adjust validation to account for actual received amounts.","evidence":"`swapExactAmountIn`/`swapExactAmountOut` calculate outputs from `tokenAmountIn` and then pull that amount without checking the balance delta; `_pullUnderlying` only calls `safeTransferFrom`. `BCoWPool.verify` uses `order.buyAmount` directly as the input amount for pricing.","locations":["contracts/src/contracts/BPool.sol:260","contracts/src/contracts/BPool.sol:282","contracts/src/contracts/BPool.sol:466","contracts/src/contracts/BCoWPool.sol:124"]}]}
[codex:1145989] tokens used
[codex:1145989] 69,120
[codex:1145989] {"no_findings":false,"summary":"One accounting risk: the pool assumes full ERC20 transfer amounts, which lets fee-on-transfer/deflationary tokens bypass invariants and drain value.","findings":[{"severity":"low","category":"math","title":"Fee-on-transfer tokens break pool accounting and allow value extraction","exploit_scenario":"If a bound token charges a transfer fee, an attacker can swap that token in. The pool computes `tokenAmountOut` from the nominal `tokenAmountIn`, but the pool receives less due to the fee and still sends out the full `tokenAmountOut`, letting the attacker extract excess of the other token. The same issue applies to CoW orders validated via `verify` when the buy token is fee-on-transfer.","recommendation":"Disallow fee-on-transfer/deflationary tokens (whitelist standard ERC20s) or compute actual received amounts via balance-before/after and use that for pricing. For CoW orders, either enforce standard ERC20s or adjust validation to account for actual received amounts.","evidence":"`swapExactAmountIn`/`swapExactAmountOut` calculate outputs from `tokenAmountIn` and then pull that amount without checking the balance delta; `_pullUnderlying` only calls `safeTransferFrom`. `BCoWPool.verify` uses `order.buyAmount` directly as the input amount for pricing.","locations":["contracts/src/contracts/BPool.sol:260","contracts/src/contracts/BPool.sol:282","contracts/src/contracts/BPool.sol:466","contracts/src/contracts/BCoWPool.sol:124"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T23:01:34.695233+00:00",
        "returncode": 0
    },
    "summary": "One accounting risk: the pool assumes full ERC20 transfer amounts, which lets fee-on-transfer/deflationary tokens bypass invariants and drain value.",
    "raw_final": {
        "summary": "One accounting risk: the pool assumes full ERC20 transfer amounts, which lets fee-on-transfer/deflationary tokens bypass invariants and drain value.",
        "findings": [
            {
                "title": "Fee-on-transfer tokens break pool accounting and allow value extraction",
                "category": "math",
                "evidence": "`swapExactAmountIn`/`swapExactAmountOut` calculate outputs from `tokenAmountIn` and then pull that amount without checking the balance delta; `_pullUnderlying` only calls `safeTransferFrom`. `BCoWPool.verify` uses `order.buyAmount` directly as the input amount for pricing.",
                "severity": "low",
                "locations": [
                    "contracts/src/contracts/BPool.sol:260",
                    "contracts/src/contracts/BPool.sol:282",
                    "contracts/src/contracts/BPool.sol:466",
                    "contracts/src/contracts/BCoWPool.sol:124"
                ],
                "recommendation": "Disallow fee-on-transfer/deflationary tokens (whitelist standard ERC20s) or compute actual received amounts via balance-before/after and use that for pricing. For CoW orders, either enforce standard ERC20s or adjust validation to account for actual received amounts.",
                "exploit_scenario": "If a bound token charges a transfer fee, an attacker can swap that token in. The pool computes `tokenAmountOut` from the nominal `tokenAmountIn`, but the pool receives less due to the fee and still sends out the full `tokenAmountOut`, letting the attacker extract excess of the other token. The same issue applies to CoW orders validated via `verify` when the buy token is fee-on-transfer."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
17
EXT*/BALANCE
4
Total opcodes
10654
Flags
call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x000f
0000000b: JUMPI
0000000c: PUSH0
0000000d: DUP1
0000000e: REVERT
0000000f: JUMPDEST
00000010: POP
00000011: PUSH1 0x04
00000013: CALLDATASIZE
00000014: LT
00000015: PUSH2 0x039e
00000018: JUMPI
00000019: PUSH0
0000001a: CALLDATALOAD
0000001b: PUSH1 0xe0
0000001d: SHR
0000001e: DUP1
0000001f: PUSH4 0x9381cd2b
00000024: GT
00000025: PUSH2 0x01ea
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xc36596a6
0000002f: GT
00000030: PUSH2 0x0114
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xdd62ed3e
0000003a: GT
0000003b: PUSH2 0x00a9
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf14fcbc8
00000045: GT
00000046: PUSH2 0x0079
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf14fcbc8
00000050: EQ
00000051: PUSH2 0x07fa
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf1b8a9b7
0000005b: EQ
0000005c: PUSH2 0x080d
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf8b2cb4f
00000066: EQ
00000067: PUSH2 0x0820
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0xf8d6aed4
00000071: EQ
00000072: PUSH2 0x0833
00000075: JUMPI
00000076: PUSH0
00000077: DUP1
00000078: REVERT
00000079: JUMPDEST
0000007a: DUP1
0000007b: PUSH4 0xdd62ed3e
00000080: EQ
00000081: PUSH2 0x07a0
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0xe4a28a52
0000008b: EQ
0000008c: PUSH2 0x03e3
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0xe4e1e538
00000096: EQ
00000097: PUSH2 0x07d8
0000009a: JUMPI
0000009b: DUP1
0000009c: PUSH4 0xec093021
000000a1: EQ
000000a2: PUSH2 0x07eb
000000a5: JUMPI
000000a6: PUSH0
000000a7: DUP1
000000a8: REVERT
000000a9: JUMPDEST
000000aa: DUP1
000000ab: PUSH4 0xcf5e7bd3
000000b0: GT
000000b1: PUSH2 0x00e4
000000b4: JUMPI
000000b5: DUP1
000000b6: PUSH4 0xcf5e7bd3
000000bb: EQ
000000bc: PUSH2 0x074b
000000bf: JUMPI
000000c0: DUP1
000000c1: PUSH4 0xd4cadf68
000000c6: EQ
000000c7: PUSH2 0x075e
000000ca: JUMPI
000000cb: DUP1
000000cc: PUSH4 0xd73dd623
000000d1: EQ
000000d2: PUSH2 0x0766
000000d5: JUMPI
000000d6: DUP1
000000d7: PUSH4 0xda08c4dc
000000dc: EQ
000000dd: PUSH2 0x0779
000000e0: JUMPI
000000e1: PUSH0
000000e2: DUP1
000000e3: REVERT
000000e4: JUMPDEST
000000e5: DUP1
000000e6: PUSH4 0xc36596a6
000000eb: EQ
000000ec: PUSH2 0x045b
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0xc6580d12
000000f6: EQ
000000f7: PUSH2 0x0734
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0xcc77828d
00000101: EQ
00000102: PUSH2 0x073b
00000105: JUMPI
00000106: DUP1
00000107: PUSH4 0xcd2ed8fb
0000010c: EQ
0000010d: PUSH2 0x0743
00000110: JUMPI
00000111: PUSH0
00000112: DUP1
00000113: REVERT
00000114: JUMPDEST
00000115: DUP1
00000116: PUSH4 0xb02f0b73
0000011b: GT
0000011c: PUSH2 0x018a
0000011f: JUMPI
00000120: DUP1
00000121: PUSH4 0xba9530a6
00000126: GT
00000127: PUSH2 0x015a
0000012a: JUMPI
0000012b: DUP1
0000012c: PUSH4 0xba9530a6
00000131: EQ
00000132: PUSH2 0x06fc
00000135: JUMPI
00000136: DUP1
00000137: PUSH4 0xbc063e1a
0000013c: EQ
0000013d: PUSH2 0x070f
00000140: JUMPI
00000141: DUP1
00000142: PUSH4 0xbc694ea2
00000147: EQ
00000148: PUSH2 0x0717
0000014b: JUMPI
0000014c: DUP1
0000014d: PUSH4 0xbe3bbd2e
00000152: EQ
00000153: PUSH2 0x071f
00000156: JUMPI
00000157: PUSH0
00000158: DUP1
00000159: REVERT
0000015a: JUMPDEST
0000015b: DUP1
0000015c: PUSH4 0xb02f0b73
00000161: EQ
00000162: PUSH2 0x06d1
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0xb0e0d136
0000016c: EQ
0000016d: PUSH2 0x06e4
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0xb7b800a4
00000177: EQ
00000178: PUSH2 0x06ec
0000017b: JUMPI
0000017c: DUP1
0000017d: PUSH4 0xba019dab
00000182: EQ
00000183: PUSH2 0x06f4
00000186: JUMPI
00000187: PUSH0
00000188: DUP1
00000189: REVERT
0000018a: JUMPDEST
0000018b: DUP1
0000018c: PUSH4 0x981a160b
00000191: GT
00000192: PUSH2 0x01c5
00000195: JUMPI
00000196: DUP1
00000197: PUSH4 0x981a160b
0000019c: EQ
0000019d: PUSH2 0x0685
000001a0: JUMPI
000001a1: DUP1
000001a2: PUSH4 0x992e2a92
000001a7: EQ
000001a8: PUSH2 0x06a3
000001ab: JUMPI
000001ac: DUP1
000001ad: PUSH4 0xa221ee49
000001b2: EQ
000001b3: PUSH2 0x06ab
000001b6: JUMPI
000001b7: DUP1
000001b8: PUSH4 0xa9059cbb
000001bd: EQ
000001be: PUSH2 0x06be
000001c1: JUMPI
000001c2: PUSH0
000001c3: DUP1
000001c4: REVERT
000001c5: JUMPDEST
000001c6: DUP1
000001c7: PUSH4 0x9381cd2b
000001cc: EQ
000001cd: PUSH2 0x0662
000001d0: JUMPI
000001d1: DUP1
000001d2: PUSH4 0x948d8ce6
000001d7: EQ
000001d8: PUSH2 0x066a
000001db: JUMPI
000001dc: DUP1
000001dd: PUSH4 0x95d89b41
000001e2: EQ
000001e3: PUSH2 0x067d
000001e6: JUMPI
000001e7: PUSH0
000001e8: DUP1
000001e9: REVERT
000001ea: JUMPDEST
000001eb: DUP1
000001ec: PUSH4 0x313ce567
000001f1: GT
000001f2: PUSH2 0x02cb
000001f5: JUMPI
000001f6: DUP1
000001f7: PUSH4 0x76c7a3c7
000001fc: GT
000001fd: PUSH2 0x026b
00000200: JUMPI
00000201: DUP1
00000202: PUSH4 0x8b54ab1f
00000207: GT
00000208: PUSH2 0x023b
0000020b: JUMPI
0000020c: DUP1
0000020d: PUSH4 0x8b54ab1f
00000212: EQ
00000213: PUSH2 0x0615
00000216: JUMPI
00000217: DUP1
00000218: PUSH4 0x8d4e4083
0000021d: EQ
0000021e: PUSH2 0x063c
00000221: JUMPI
00000222: DUP1
00000223: PUSH4 0x92eefe9b
00000228: EQ
00000229: PUSH2 0x0647
0000022c: JUMPI
0000022d: DUP1
0000022e: PUSH4 0x936c3477
00000233: EQ
00000234: PUSH2 0x065a
00000237: JUMPI
00000238: PUSH0
00000239: DUP1
0000023a: REVERT
0000023b: JUMPDEST
0000023c: DUP1
0000023d: PUSH4 0x76c7a3c7
00000242: EQ
00000243: PUSH2 0x05ca
00000246: JUMPI
00000247: DUP1
00000248: PUSH4 0x7c5e9ea4
0000024d: EQ
0000024e: PUSH2 0x05d2
00000251: JUMPI
00000252: DUP1
00000253: PUSH4 0x8201aa3f
00000258: EQ
00000259: PUSH2 0x05fa
0000025c: JUMPI
0000025d: DUP1
0000025e: PUSH4 0x867378c5
00000263: EQ
00000264: PUSH2 0x060d
00000267: JUMPI
00000268: PUSH0
00000269: DUP1
0000026a: REVERT
0000026b: JUMPDEST
0000026c: DUP1
0000026d: PUSH4 0x4f69c0d4
00000272: GT
00000273: PUSH2 0x02a6
00000276: JUMPI
00000277: DUP1
00000278: PUSH4 0x4f69c0d4
0000027d: EQ
0000027e: PUSH2 0x0555
00000281: JUMPI
00000282: DUP1
00000283: PUSH4 0x66188463
00000288: EQ
00000289: PUSH2 0x0568
0000028c: JUMPI
0000028d: DUP1
0000028e: PUSH4 0x6dbc8813
00000293: EQ
00000294: PUSH2 0x057b
00000297: JUMPI
00000298: DUP1
00000299: PUSH4 0x70a08231
0000029e: EQ
0000029f: PUSH2 0x05a2
000002a2: JUMPI
000002a3: PUSH0
000002a4: DUP1
000002a5: REVERT
000002a6: JUMPDEST
000002a7: DUP1
000002a8: PUSH4 0x313ce567
000002ad: EQ
000002ae: PUSH2 0x052b
000002b1: JUMPI
000002b2: DUP1
000002b3: PUSH4 0x34e19907
000002b8: EQ
000002b9: PUSH2 0x053a
000002bc: JUMPI
000002bd: DUP1
000002be: PUSH4 0x4bb278f3
000002c3: EQ
000002c4: PUSH2 0x054d
000002c7: JUMPI
000002c8: PUSH0
000002c9: DUP1
000002ca: REVERT
000002cb: JUMPDEST
000002cc: DUP1
000002cd: PUSH4 0x189d00ca
000002d2: GT
000002d3: PUSH2 0x0341
000002d6: JUMPI
000002d7: DUP1
000002d8: PUSH4 0x28bd6443
000002dd: GT
000002de: PUSH2 0x0311
000002e1: JUMPI
000002e2: DUP1
000002e3: PUSH4 0x28bd6443
000002e8: EQ
000002e9: PUSH2 0x04bc
000002ec: JUMPI
000002ed: DUP1
000002ee: PUSH4 0x2dd31000
000002f3: EQ
000002f4: PUSH2 0x04d1
000002f7: JUMPI
000002f8: DUP1
000002f9: PUSH4 0x2f37b624
000002fe: EQ
000002ff: PUSH2 0x04f8
00000302: JUMPI
00000303: DUP1
00000304: PUSH4 0x3018205f
00000309: EQ
0000030a: PUSH2 0x0523
0000030d: JUMPI
0000030e: PUSH0
0000030f: DUP1
00000310: REVERT
00000311: JUMPDEST
00000312: DUP1
00000313: PUSH4 0x189d00ca
00000318: EQ
00000319: PUSH2 0x0453
0000031c: JUMPI
0000031d: DUP1
0000031e: PUSH4 0x218b5382
00000323: EQ
00000324: PUSH2 0x045b
00000327: JUMPI
00000328: DUP1
00000329: PUSH4 0x23b872dd
0000032e: EQ
0000032f: PUSH2 0x046a
00000332: JUMPI
00000333: DUP1
00000334: PUSH4 0x2626f294
00000339: EQ
0000033a: PUSH2 0x047d
0000033d: JUMPI
0000033e: PUSH0
0000033f: DUP1
00000340: REVERT
00000341: JUMPDEST
00000342: DUP1
00000343: PUSH4 0x1446a7ff
00000348: GT
00000349: PUSH2 0x037c
0000034c: JUMPI
0000034d: DUP1
0000034e: PUSH4 0x1446a7ff
00000353: EQ
00000354: PUSH2 0x03f9
00000357: JUMPI
00000358: DUP1
00000359: PUSH4 0x15e84af9
0000035e: EQ
0000035f: PUSH2 0x040c
00000362: JUMPI
00000363: DUP1
00000364: PUSH4 0x1626ba7e
00000369: EQ
0000036a: PUSH2 0x041f
0000036d: JUMPI
0000036e: DUP1
0000036f: PUSH4 0x18160ddd
00000374: EQ
00000375: PUSH2 0x044b
00000378: JUMPI
00000379: PUSH0
0000037a: DUP1
0000037b: REVERT
0000037c: JUMPDEST
0000037d: DUP1
0000037e: PUSH4 0x06fdde03
00000383: EQ
00000384: PUSH2 0x03a2
00000387: JUMPI
00000388: DUP1
00000389: PUSH4 0x095ea7b3
0000038e: EQ
0000038f: PUSH2 0x03c0
00000392: JUMPI
00000393: DUP1
00000394: PUSH4 0x09a3bbe4
00000399: EQ
0000039a: PUSH2 0x03e3
0000039d: JUMPI
0000039e: JUMPDEST
0000039f: PUSH0
000003a0: DUP1
000003a1: REVERT
000003a2: JUMPDEST
000003a3: PUSH2 0x03aa
000003a6: PUSH2 0x0846
000003a9: JUMP
000003aa: JUMPDEST
000003ab: PUSH1 0x40
000003ad: MLOAD
000003ae: PUSH2 0x03b7
000003b1: SWAP2
000003b2: SWAP1
000003b3: PUSH2 0x37f9
000003b6: JUMP
000003b7: JUMPDEST
000003b8: PUSH1 0x40
000003ba: MLOAD
000003bb: DUP1
000003bc: SWAP2
000003bd: SUB
000003be: SWAP1
000003bf: RETURN
000003c0: JUMPDEST
000003c1: PUSH2 0x03d3
000003c4: PUSH2 0x03ce
000003c7: CALLDATASIZE
000003c8: PUSH1 0x04
000003ca: PUSH2 0x384d
000003cd: JUMP
000003ce: JUMPDEST
000003cf: PUSH2 0x08d6
000003d2: JUMP
000003d3: JUMPDEST
000003d4: PUSH1 0x40
000003d6: MLOAD
000003d7: SWAP1
000003d8: ISZERO
000003d9: ISZERO
000003da: DUP2
000003db: MSTORE
000003dc: PUSH1 0x20
000003de: ADD
000003df: PUSH2 0x03b7
000003e2: JUMP
000003e3: JUMPDEST
000003e4: PUSH2 0x03eb
000003e7: PUSH2 0x08ef
000003ea: JUMP
000003eb: JUMPDEST
000003ec: PUSH1 0x40
000003ee: MLOAD
000003ef: SWAP1
000003f0: DUP2
000003f1: MSTORE
000003f2: PUSH1 0x20
000003f4: ADD
000003f5: PUSH2 0x03b7
000003f8: JUMP
000003f9: JUMPDEST
000003fa: PUSH2 0x03eb
000003fd: PUSH2 0x0407
00000400: CALLDATASIZE
00000401: PUSH1 0x04
00000403: PUSH2 0x3877
00000406: JUMP
00000407: JUMPDEST
00000408: PUSH2 0x0905
0000040b: JUMP
0000040c: JUMPDEST
0000040d: PUSH2 0x03eb
00000410: PUSH2 0x041a
00000413: CALLDATASIZE
00000414: PUSH1 0x04
00000416: PUSH2 0x3877
00000419: JUMP
0000041a: JUMPDEST
0000041b: PUSH2 0x0aa4
0000041e: JUMP
0000041f: JUMPDEST
00000420: PUSH2 0x0432
00000423: PUSH2 0x042d
00000426: CALLDATASIZE
00000427: PUSH1 0x04
00000429: PUSH2 0x391d
0000042c: JUMP
0000042d: JUMPDEST
0000042e: PUSH2 0x0c3c
00000431: JUMP
00000432: JUMPDEST
00000433: PUSH1 0x40
00000435: MLOAD
00000436: PUSH1 0x01
00000438: PUSH1 0x01
0000043a: PUSH1 0xe0
0000043c: SHL
0000043d: SUB
0000043e: NOT
0000043f: SWAP1
00000440: SWAP2
00000441: AND
00000442: DUP2
00000443: MSTORE
00000444: PUSH1 0x20
00000446: ADD
00000447: PUSH2 0x03b7
0000044a: JUMP
0000044b: JUMPDEST
0000044c: PUSH1 0x02
0000044e: SLOAD
0000044f: PUSH2 0x03eb
00000452: JUMP
00000453: JUMPDEST
00000454: PUSH2 0x03eb
00000457: PUSH2 0x0d6e
0000045a: JUMP
0000045b: JUMPDEST
0000045c: PUSH2 0x03eb
0000045f: PUSH8 0x0de0b6b3a7640000
00000468: DUP2
00000469: JUMP
0000046a: JUMPDEST
0000046b: PUSH2 0x03d3
0000046e: PUSH2 0x0478
00000471: CALLDATASIZE
00000472: PUSH1 0x04
00000474: PUSH2 0x39b6
00000477: JUMP
00000478: JUMPDEST
00000479: PUSH2 0x0d85
0000047c: JUMP
0000047d: JUMPDEST
0000047e: PUSH2 0x04a4
00000481: PUSH32 0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110
000004a2: DUP2
000004a3: JUMP
000004a4: JUMPDEST
000004a5: PUSH1 0x40
000004a7: MLOAD
000004a8: PUSH1 0x01
000004aa: PUSH1 0x01
000004ac: PUSH1 0xa0
000004ae: SHL
000004af: SUB
000004b0: SWAP1
000004b1: SWAP2
000004b2: AND
000004b3: DUP2
000004b4: MSTORE
000004b5: PUSH1 0x20
000004b7: ADD
000004b8: PUSH2 0x03b7
000004bb: JUMP
000004bc: JUMPDEST
000004bd: PUSH2 0x04cf
000004c0: PUSH2 0x04ca
000004c3: CALLDATASIZE
000004c4: PUSH1 0x04
000004c6: PUSH2 0x3a28
000004c9: JUMP
000004ca: JUMPDEST
000004cb: PUSH2 0x0daa
000004ce: JUMP
000004cf: JUMPDEST
000004d0: STOP
000004d1: JUMPDEST
000004d2: PUSH2 0x04a4
000004d5: PUSH32 0x000000000000000000000000f76c421bab7df8548604e60deccce50477c10462
000004f6: DUP2
000004f7: JUMP
000004f8: JUMPDEST
000004f9: PUSH2 0x03d3
000004fc: PUSH2 0x0506
000004ff: CALLDATASIZE
00000500: PUSH1 0x04
00000502: PUSH2 0x3ae4
00000505: JUMP
00000506: JUMPDEST
00000507: PUSH1 0x01
00000509: PUSH1 0x01
0000050b: PUSH1 0xa0
0000050d: SHL
0000050e: SUB
0000050f: AND
00000510: PUSH0
00000511: SWAP1
00000512: DUP2
00000513: MSTORE
00000514: PUSH1 0x09
00000516: PUSH1 0x20
00000518: MSTORE
00000519: PUSH1 0x40
0000051b: SWAP1
0000051c: KECCAK256
0000051d: SLOAD
0000051e: PUSH1 0xff
00000520: AND
00000521: SWAP1
00000522: JUMP
00000523: JUMPDEST
00000524: PUSH2 0x04a4
00000527: PUSH2 0x10e9
0000052a: JUMP
0000052b: JUMPDEST
0000052c: PUSH1 0x40
0000052e: MLOAD
0000052f: PUSH1 0x12
00000531: DUP2
00000532: MSTORE
00000533: PUSH1 0x20
00000535: ADD
00000536: PUSH2 0x03b7
00000539: JUMP
0000053a: JUMPDEST
0000053b: PUSH2 0x04cf
0000053e: PUSH2 0x0548
00000541: CALLDATASIZE
00000542: PUSH1 0x04
00000544: PUSH2 0x3aff
00000547: JUMP
00000548: JUMPDEST
00000549: PUSH2 0x1127
0000054c: JUMP
0000054d: JUMPDEST
0000054e: PUSH2 0x04cf
00000551: PUSH2 0x1272
00000554: JUMP
00000555: JUMPDEST
00000556: PUSH2 0x04cf
00000559: PUSH2 0x0563
0000055c: CALLDATASIZE
0000055d: PUSH1 0x04
0000055f: PUSH2 0x3b16
00000562: JUMP
00000563: JUMPDEST
00000564: PUSH2 0x13ab
00000567: JUMP
00000568: JUMPDEST
00000569: PUSH2 0x03d3
0000056c: PUSH2 0x0576
0000056f: CALLDATASIZE
00000570: PUSH1 0x04
00000572: PUSH2 0x384d
00000575: JUMP
00000576: JUMPDEST
00000577: PUSH2 0x15f0
0000057a: JUMP
0000057b: JUMPDEST
0000057c: PUSH2 0x03eb
0000057f: PUSH32 0x362e5182440b52aa8fffe70a251550fbbcbca424740fe5a14f59bf0c1b06fe1d
000005a0: DUP2
000005a1: JUMP
000005a2: JUMPDEST
000005a3: PUSH2 0x03eb
000005a6: PUSH2 0x05b0
000005a9: CALLDATASIZE
000005aa: PUSH1 0x04
000005ac: PUSH2 0x3ae4
000005af: JUMP
000005b0: JUMPDEST
000005b1: PUSH1 0x01
000005b3: PUSH1 0x01
000005b5: PUSH1 0xa0
000005b7: SHL
000005b8: SUB
000005b9: AND
000005ba: PUSH0
000005bb: SWAP1
000005bc: DUP2
000005bd: MSTORE
000005be: PUSH1 0x20
000005c0: DUP2
000005c1: SWAP1
000005c2: MSTORE
000005c3: PUSH1 0x40
000005c5: SWAP1
000005c6: KECCAK256
000005c7: SLOAD
000005c8: SWAP1
000005c9: JUMP
000005ca: JUMPDEST
000005cb: PUSH2 0x03eb
000005ce: PUSH2 0x163f
000005d1: JUMP
000005d2: JUMPDEST
000005d3: PUSH2 0x05e5
000005d6: PUSH2 0x05e0
000005d9: CALLDATASIZE
000005da: PUSH1 0x04
000005dc: PUSH2 0x3b8e
000005df: JUMP
000005e0: JUMPDEST
000005e1: PUSH2 0x1654
000005e4: JUMP
000005e5: JUMPDEST
000005e6: PUSH1 0x40
000005e8: DUP1
000005e9: MLOAD
000005ea: SWAP3
000005eb: DUP4
000005ec: MSTORE
000005ed: PUSH1 0x20
000005ef: DUP4
000005f0: ADD
000005f1: SWAP2
000005f2: SWAP1
000005f3: SWAP2
000005f4: MSTORE
000005f5: ADD
000005f6: PUSH2 0x03b7
000005f9: JUMP
000005fa: JUMPDEST
000005fb: PUSH2 0x05e5
000005fe: PUSH2 0x0608
00000601: CALLDATASIZE
00000602: PUSH1 0x04
00000604: PUSH2 0x3b8e
00000607: JUMP
00000608: JUMPDEST
00000609: PUSH2 0x1a09
0000060c: JUMP
0000060d: JUMPDEST
0000060e: PUSH2 0x03eb
00000611: PUSH2 0x1d8f
00000614: JUMP
00000615: JUMPDEST
00000616: PUSH2 0x04a4
00000619: PUSH32 0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41
0000063a: DUP2
0000063b: JUMP
0000063c: JUMPDEST
0000063d: PUSH1 0x07
0000063f: SLOAD
00000640: PUSH1 0xff
00000642: AND
00000643: PUSH2 0x03d3
00000646: JUMP
00000647: JUMPDEST
00000648: PUSH2 0x04cf
0000064b: PUSH2 0x0655
0000064e: CALLDATASIZE
0000064f: PUSH1 0x04
00000651: PUSH2 0x3ae4
00000654: JUMP
00000655: JUMPDEST
00000656: PUSH2 0x1da6
00000659: JUMP
0000065a: JUMPDEST
0000065b: PUSH2 0x03eb
0000065e: PUSH2 0x1e8b
00000661: JUMP
00000662: JUMPDEST
00000663: PUSH2 0x03eb
00000666: PUSH2 0x1ec0
00000669: JUMP
0000066a: JUMPDEST
0000066b: PUSH2 0x03eb
0000066e: PUSH2 0x0678
00000671: CALLDATASIZE
00000672: PUSH1 0x04
00000674: PUSH2 0x3ae4
00000677: JUMP
00000678: JUMPDEST
00000679: PUSH2 0x1ed3
0000067c: JUMP
0000067d: JUMPDEST
0000067e: PUSH2 0x03aa
00000681: PUSH2 0x1f5b
00000684: JUMP
00000685: JUMPDEST
00000686: PUSH2 0x068e
00000689: PUSH2 0x012c
0000068c: DUP2
0000068d: JUMP
0000068e: JUMPDEST
0000068f: PUSH1 0x40
00000691: MLOAD
00000692: PUSH4 0xffffffff
00000697: SWAP1
00000698: SWAP2
00000699: AND
0000069a: DUP2
0000069b: MSTORE
0000069c: PUSH1 0x20
0000069e: ADD
0000069f: PUSH2 0x03b7
000006a2: JUMP
000006a3: JUMPDEST
000006a4: PUSH2 0x03eb
000006a7: PUSH2 0x1f6a
000006aa: JUMP
000006ab: JUMPDEST
000006ac: PUSH2 0x03eb
000006af: PUSH2 0x06b9
000006b2: CALLDATASIZE
000006b3: PUSH1 0x04
000006b5: PUSH2 0x3bdc
000006b8: JUMP
000006b9: JUMPDEST
000006ba: PUSH2 0x1f88
000006bd: JUMP
000006be: JUMPDEST
000006bf: PUSH2 0x03d3
000006c2: PUSH2 0x06cc
000006c5: CALLDATASIZE
000006c6: PUSH1 0x04
000006c8: PUSH2 0x384d
000006cb: JUMP
000006cc: JUMPDEST
000006cd: PUSH2 0x1fee
000006d0: JUMP
000006d1: JUMPDEST
000006d2: PUSH2 0x04cf
000006d5: PUSH2 0x06df
000006d8: CALLDATASIZE
000006d9: PUSH1 0x04
000006db: PUSH2 0x3b16
000006de: JUMP
000006df: JUMPDEST
000006e0: PUSH2 0x1ffb
000006e3: JUMP
000006e4: JUMPDEST
000006e5: PUSH2 0x03eb
000006e8: PUSH1 0x08
000006ea: DUP2
000006eb: JUMP
000006ec: JUMPDEST
000006ed: PUSH2 0x03eb
000006f0: PUSH1 0x02
000006f2: DUP2
000006f3: JUMP
000006f4: JUMPDEST
000006f5: PUSH2 0x03eb
000006f8: PUSH1 0x01
000006fa: DUP2
000006fb: JUMP
000006fc: JUMPDEST
000006fd: PUSH2 0x03eb
00000700: PUSH2 0x070a
00000703: CALLDATASIZE
00000704: PUSH1 0x04
00000706: PUSH2 0x3c13
00000709: JUMP
0000070a: JUMPDEST
0000070b: PUSH2 0x2281
0000070e: JUMP
0000070f: JUMPDEST
00000710: PUSH2 0x03eb
00000713: PUSH2 0x22fd
00000716: JUMP
00000717: JUMPDEST
00000718: PUSH2 0x03eb
0000071b: PUSH2 0x2324
0000071e: JUMP
0000071f: JUMPDEST
00000720: PUSH2 0x0727
00000723: PUSH2 0x2343
00000726: JUMP
00000727: JUMPDEST
00000728: PUSH1 0x40
0000072a: MLOAD
0000072b: PUSH2 0x03b7
0000072e: SWAP2
0000072f: SWAP1
00000730: PUSH2 0x3c52
00000733: JUMP
00000734: JUMPDEST
00000735: PUSH2 0x03eb
00000738: PUSH0
00000739: DUP2
0000073a: JUMP
0000073b: JUMPDEST
0000073c: PUSH2 0x0727
0000073f: PUSH2 0x23f2
00000742: JUMP
00000743: JUMPDEST
00000744: PUSH1 0x08
00000746: SLOAD
00000747: PUSH2 0x03eb
0000074a: JUMP
0000074b: JUMPDEST
0000074c: PUSH2 0x04cf
0000074f: PUSH2 0x0759
00000752: CALLDATASIZE
00000753: PUSH1 0x04
00000755: PUSH2 0x3ae4
00000758: JUMP
00000759: JUMPDEST
0000075a: PUSH2 0x2421
0000075d: JUMP
0000075e: JUMPDEST
0000075f: PUSH2 0x03eb
00000762: PUSH2 0x270e
00000765: JUMP
00000766: JUMPDEST
00000767: PUSH2 0x03d3
0000076a: PUSH2 0x0774
0000076d: CALLDATASIZE
0000076e: PUSH1 0x04
00000770: PUSH2 0x384d
00000773: JUMP
00000774: JUMPDEST
00000775: PUSH2 0x2743
00000778: JUMP
00000779: JUMPDEST
0000077a: PUSH2 0x03eb
0000077d: PUSH32 0xc078f884a2676e1345748b1feace7b0abee5d00ecadb6e574dcdd109a63e8943
0000079e: DUP2
0000079f: JUMP
000007a0: JUMPDEST
000007a1: PUSH2 0x03eb
000007a4: PUSH2 0x07ae
000007a7: CALLDATASIZE
000007a8: PUSH1 0x04
000007aa: PUSH2 0x3877
000007ad: JUMP
000007ae: JUMPDEST
000007af: PUSH1 0x01
000007b1: PUSH1 0x01
000007b3: PUSH1 0xa0
000007b5: SHL
000007b6: SUB
000007b7: SWAP2
000007b8: DUP3
000007b9: AND
000007ba: PUSH0
000007bb: SWAP1
000007bc: DUP2
000007bd: MSTORE
000007be: PUSH1 0x01
000007c0: PUSH1 0x20
000007c2: SWAP1
000007c3: DUP2
000007c4: MSTORE
000007c5: PUSH1 0x40
000007c7: DUP1
000007c8: DUP4
000007c9: KECCAK256
000007ca: SWAP4
000007cb: SWAP1
000007cc: SWAP5
000007cd: AND
000007ce: DUP3
000007cf: MSTORE
000007d0: SWAP2
000007d1: SWAP1
000007d2: SWAP2
000007d3: MSTORE
000007d4: KECCAK256
000007d5: SLOAD
000007d6: SWAP1
000007d7: JUMP
000007d8: JUMPDEST
000007d9: PUSH2 0x04cf
000007dc: PUSH2 0x07e6
000007df: CALLDATASIZE
000007e0: PUSH1 0x04
000007e2: PUSH2 0x3c9e
000007e5: JUMP
000007e6: JUMPDEST
000007e7: PUSH2 0x2782
000007ea: JUMP
000007eb: JUMPDEST
000007ec: PUSH2 0x03eb
000007ef: PUSH8 0x06f05b59d3b20000
000007f8: DUP2
000007f9: JUMP
000007fa: JUMPDEST
000007fb: PUSH2 0x04cf
000007fe: PUSH2 0x0808
00000801: CALLDATASIZE
00000802: PUSH1 0x04
00000804: PUSH2 0x3aff
00000807: JUMP
00000808: JUMPDEST
00000809: PUSH2 0x2a19
0000080c: JUMP
0000080d: JUMPDEST
0000080e: PUSH2 0x03eb
00000811: PUSH2 0x081b
00000814: CALLDATASIZE
00000815: PUSH1 0x04
00000817: PUSH2 0x3ae4
0000081a: JUMP
0000081b: JUMPDEST
0000081c: PUSH2 0x2a98
0000081f: JUMP
00000820: JUMPDEST
00000821: PUSH2 0x03eb
00000824: PUSH2 0x082e
00000827: CALLDATASIZE
00000828: PUSH1 0x04
0000082a: PUSH2 0x3ae4
0000082d: JUMP
0000082e: JUMPDEST
0000082f: PUSH2 0x2b27
00000832: JUMP
00000833: JUMPDEST
00000834: PUSH2 0x03eb
00000837: PUSH2 0x0841
0000083a: CALLDATASIZE
0000083b: PUSH1 0x04
0000083d: PUSH2 0x3c13
00000840: JUMP
00000841: JUMPDEST
00000842: PUSH2 0x2bf3
00000845: JUMP
00000846: JUMPDEST
00000847: PUSH1 0x60
00000849: PUSH1 0x03
0000084b: DUP1
0000084c: SLOAD
0000084d: PUSH2 0x0855
00000850: SWAP1
00000851: PUSH2 0x3cd0
00000854: JUMP
00000855: JUMPDEST
00000856: DUP1
00000857: PUSH1 0x1f
00000859: ADD
0000085a: PUSH1 0x20
0000085c: DUP1
0000085d: SWAP2
0000085e: DIV
0000085f: MUL
00000860: PUSH1 0x20
00000862: ADD
00000863: PUSH1 0x40
00000865: MLOAD
00000866: SWAP1
00000867: DUP2
00000868: ADD
00000869: PUSH1 0x40
0000086b: MSTORE
0000086c: DUP1
0000086d: SWAP3
0000086e: SWAP2
0000086f: SWAP1
00000870: DUP2
00000871: DUP2
00000872: MSTORE
00000873: PUSH1 0x20
00000875: ADD
00000876: DUP3
00000877: DUP1
00000878: SLOAD
00000879: PUSH2 0x0881
0000087c: SWAP1
0000087d: PUSH2 0x3cd0
00000880: JUMP
00000881: JUMPDEST
00000882: DUP1
00000883: ISZERO
00000884: PUSH2 0x08cc
00000887: JUMPI
00000888: DUP1
00000889: PUSH1 0x1f
0000088b: LT
0000088c: PUSH2 0x08a3
0000088f: JUMPI
00000890: PUSH2 0x0100
00000893: DUP1
00000894: DUP4
00000895: SLOAD
00000896: DIV
00000897: MUL
00000898: DUP4
00000899: MSTORE
0000089a: SWAP2
0000089b: PUSH1 0x20
0000089d: ADD
0000089e: SWAP2
0000089f: PUSH2 0x08cc
000008a2: JUMP
000008a3: JUMPDEST
000008a4: DUP3
000008a5: ADD
000008a6: SWAP2
000008a7: SWAP1
000008a8: PUSH0
000008a9: MSTORE
000008aa: PUSH1 0x20
000008ac: PUSH0
000008ad: KECCAK256
000008ae: SWAP1
000008af: JUMPDEST
000008b0: DUP2
000008b1: SLOAD
000008b2: DUP2
000008b3: MSTORE
000008b4: SWAP1
000008b5: PUSH1 0x01
000008b7: ADD
000008b8: SWAP1
000008b9: PUSH1 0x20
000008bb: ADD
000008bc: DUP1
000008bd: DUP4
000008be: GT
000008bf: PUSH2 0x08af
000008c2: JUMPI
000008c3: DUP3
000008c4: SWAP1
000008c5: SUB
000008c6: PUSH1 0x1f
000008c8: AND
000008c9: DUP3
000008ca: ADD
000008cb: SWAP2
000008cc: JUMPDEST
000008cd: POP
000008ce: POP
000008cf: POP
000008d0: POP
000008d1: POP
000008d2: SWAP1
000008d3: POP
000008d4: SWAP1
000008d5: JUMP
000008d6: JUMPDEST
000008d7: PUSH0
000008d8: CALLER
000008d9: PUSH2 0x08e3
000008dc: DUP2
000008dd: DUP6
000008de: DUP6
000008df: PUSH2 0x2c72
000008e2: JUMP
000008e3: JUMPDEST
000008e4: PUSH1 0x01
000008e6: SWAP2
000008e7: POP
000008e8: POP
000008e9: JUMPDEST
000008ea: SWAP3
000008eb: SWAP2
000008ec: POP
000008ed: POP
000008ee: JUMP
000008ef: JUMPDEST
000008f0: PUSH2 0x0902
000008f3: PUSH8 0x0de0b6b3a7640000
000008fc: PUSH1 0x32
000008fe: PUSH2 0x3d1c
00000901: JUMP
00000902: JUMPDEST
00000903: DUP2
00000904: JUMP
00000905: JUMPDEST
00000906: PUSH0
00000907: PUSH0
00000908: DUP1
00000909: MLOAD
0000090a: PUSH1 0x20
0000090c: PUSH2 0x3f08
0000090f: DUP4
00000910: CODECOPY
00000911: DUP2
00000912: MLOAD
00000913: SWAP2
00000914: MSTORE
00000915: TLOAD
00000916: ISZERO
00000917: PUSH2 0x0933
0000091a: JUMPI
0000091b: PUSH1 0x40
0000091d: MLOAD
0000091e: PUSH4 0xd56a08b5
00000923: PUSH1 0xe0
00000925: SHL
00000926: DUP2
00000927: MSTORE
00000928: PUSH1 0x04
0000092a: ADD
0000092b: PUSH1 0x40
0000092d: MLOAD
0000092e: DUP1
0000092f: SWAP2
00000930: SUB
00000931: SWAP1
00000932: REVERT
00000933: JUMPDEST
00000934: PUSH1 0x01
00000936: PUSH1 0x01
00000938: PUSH1 0xa0
0000093a: SHL
0000093b: SUB
0000093c: DUP4
0000093d: AND
0000093e: PUSH0
0000093f: SWAP1
00000940: DUP2
00000941: MSTORE
00000942: PUSH1 0x09
00000944: PUSH1 0x20
00000946: MSTORE
00000947: PUSH1 0x40
00000949: SWAP1
0000094a: KECCAK256
0000094b: SLOAD
0000094c: PUSH1 0xff
0000094e: AND
0000094f: PUSH2 0x096b
00000952: JUMPI
00000953: PUSH1 0x40
00000955: MLOAD
00000956: PUSH4 0x4b16fc2d
0000095b: PUSH1 0xe1
0000095d: SHL
0000095e: DUP2
0000095f: MSTORE
00000960: PUSH1 0x04
00000962: ADD
00000963: PUSH1 0x40
00000965: MLOAD
00000966: DUP1
00000967: SWAP2
00000968: SUB
00000969: SWAP1
0000096a: REVERT
0000096b: JUMPDEST
0000096c: PUSH1 0x01
0000096e: PUSH1 0x01
00000970: PUSH1 0xa0
00000972: SHL
00000973: SUB
00000974: DUP3
00000975: AND
00000976: PUSH0
00000977: SWAP1
00000978: DUP2
00000979: MSTORE
0000097a: PUSH1 0x09
0000097c: PUSH1 0x20
0000097e: MSTORE
0000097f: PUSH1 0x40
00000981: SWAP1
00000982: KECCAK256
00000983: SLOAD
00000984: PUSH1 0xff
00000986: AND
00000987: PUSH2 0x09a3
0000098a: JUMPI
0000098b: PUSH1 0x40
0000098d: MLOAD
0000098e: PUSH4 0x4b16fc2d
00000993: PUSH1 0xe1
00000995: SHL
00000996: DUP2
00000997: MSTORE
00000998: PUSH1 0x04
0000099a: ADD
0000099b: PUSH1 0x40
0000099d: MLOAD
0000099e: DUP1
0000099f: SWAP2
000009a0: SUB
000009a1: SWAP1
000009a2: REVERT
000009a3: JUMPDEST
000009a4: PUSH1 0x01
000009a6: PUSH1 0x01
000009a8: PUSH1 0xa0
000009aa: SHL
000009ab: SUB
000009ac: DUP4
000009ad: DUP2
000009ae: AND
000009af: PUSH0
000009b0: DUP2
000009b1: DUP2
000009b2: MSTORE
000009b3: PUSH1 0x09
000009b5: PUSH1 0x20
000009b7: MSTORE
000009b8: PUSH1 0x40
000009ba: DUP1
000009bb: DUP3
000009bc: KECCAK256
000009bd: SWAP4
000009be: DUP7
000009bf: AND
000009c0: DUP3
000009c1: MSTORE
000009c2: SWAP1
000009c3: DUP2
000009c4: SWAP1
000009c5: KECCAK256
000009c6: SWAP1
000009c7: MLOAD
000009c8: PUSH4 0x70a08231
000009cd: PUSH1 0xe0
000009cf: SHL
000009d0: DUP2
000009d1: MSTORE
000009d2: ADDRESS
000009d3: PUSH1 0x04
000009d5: DUP3
000009d6: ADD
000009d7: MSTORE
000009d8: SWAP1
000009d9: SWAP2
000009da: PUSH2 0x0a9b
000009dd: SWAP2
000009de: PUSH4 0x70a08231
000009e3: SWAP1
000009e4: PUSH1 0x24
000009e6: ADD
000009e7: PUSH1 0x20
000009e9: PUSH1 0x40
000009eb: MLOAD
000009ec: DUP1
000009ed: DUP4
000009ee: SUB
000009ef: DUP2
000009f0: DUP7
000009f1: GAS
000009f2: STATICCALL
000009f3: ISZERO
000009f4: DUP1
000009f5: ISZERO
000009f6: PUSH2 0x0a01
000009f9: JUMPI
000009fa: RETURNDATASIZE
000009fb: PUSH0
000009fc: DUP1
000009fd: RETURNDATACOPY
000009fe: RETURNDATASIZE
000009ff: PUSH0
00000a00: REVERT
00000a01: JUMPDEST
00000a02: POP
00000a03: POP
00000a04: POP
00000a05: POP
00000a06: PUSH1 0x40
00000a08: MLOAD
00000a09: RETURNDATASIZE
00000a0a: PUSH1 0x1f
00000a0c: NOT
00000a0d: PUSH1 0x1f
00000a0f: DUP3
00000a10: ADD
00000a11: AND
00000a12: DUP3
00000a13: ADD
00000a14: DUP1
00000a15: PUSH1 0x40
00000a17: MSTORE
00000a18: POP
00000a19: DUP2
00000a1a: ADD
00000a1b: SWAP1
00000a1c: PUSH2 0x0a25
00000a1f: SWAP2
00000a20: SWAP1
00000a21: PUSH2 0x3d33
00000a24: JUMP
00000a25: JUMPDEST
00000a26: PUSH1 0x02
00000a28: DUP5
00000a29: ADD
00000a2a: SLOAD
00000a2b: PUSH1 0x40
00000a2d: MLOAD
00000a2e: PUSH4 0x70a08231
00000a33: PUSH1 0xe0
00000a35: SHL
00000a36: DUP2
00000a37: MSTORE
00000a38: ADDRESS
00000a39: PUSH1 0x04
00000a3b: DUP3
00000a3c: ADD
00000a3d: MSTORE
00000a3e: PUSH1 0x01
00000a40: PUSH1 0x01
00000a42: PUSH1 0xa0
00000a44: SHL
00000a45: SUB
00000a46: DUP9
00000a47: AND
00000a48: SWAP1
00000a49: PUSH4 0x70a08231
00000a4e: SWAP1
00000a4f: PUSH1 0x24
00000a51: ADD
00000a52: PUSH1 0x20
00000a54: PUSH1 0x40
00000a56: MLOAD
00000a57: DUP1
00000a58: DUP4
00000a59: SUB
00000a5a: DUP2
00000a5b: DUP7
00000a5c: GAS
00000a5d: STATICCALL
00000a5e: ISZERO
00000a5f: DUP1
00000a60: ISZERO
00000a61: PUSH2 0x0a6c
00000a64: JUMPI
00000a65: RETURNDATASIZE
00000a66: PUSH0
00000a67: DUP1
00000a68: RETURNDATACOPY
00000a69: RETURNDATASIZE
00000a6a: PUSH0
00000a6b: REVERT
00000a6c: JUMPDEST
00000a6d: POP
00000a6e: POP
00000a6f: POP
00000a70: POP
00000a71: PUSH1 0x40
00000a73: MLOAD
00000a74: RETURNDATASIZE
00000a75: PUSH1 0x1f
00000a77: NOT
00000a78: PUSH1 0x1f
00000a7a: DUP3
00000a7b: ADD
00000a7c: AND
00000a7d: DUP3
00000a7e: ADD
00000a7f: DUP1
00000a80: PUSH1 0x40
00000a82: MSTORE
00000a83: POP
00000a84: DUP2
00000a85: ADD
00000a86: SWAP1
00000a87: PUSH2 0x0a90
00000a8a: SWAP2
00000a8b: SWAP1
00000a8c: PUSH2 0x3d33
00000a8f: JUMP
00000a90: JUMPDEST
00000a91: DUP5
00000a92: PUSH1 0x02
00000a94: ADD
00000a95: SLOAD
00000a96: PUSH0
00000a97: PUSH2 0x1f88
00000a9a: JUMP
00000a9b: JUMPDEST
00000a9c: SWAP6
00000a9d: SWAP5
00000a9e: POP
00000a9f: POP
00000aa0: POP
00000aa1: POP
00000aa2: POP
00000aa3: JUMP
00000aa4: JUMPDEST
00000aa5: PUSH0
00000aa6: PUSH0
00000aa7: DUP1
00000aa8: MLOAD
00000aa9: PUSH1 0x20
00000aab: PUSH2 0x3f08
00000aae: DUP4
00000aaf: CODECOPY
00000ab0: DUP2
00000ab1: MLOAD
00000ab2: SWAP2
00000ab3: MSTORE
00000ab4: TLOAD
00000ab5: ISZERO
00000ab6: PUSH2 0x0ad2
00000ab9: JUMPI
00000aba: PUSH1 0x40
00000abc: MLOAD
00000abd: PUSH4 0xd56a08b5
00000ac2: PUSH1 0xe0
00000ac4: SHL
00000ac5: DUP2
00000ac6: MSTORE
00000ac7: PUSH1 0x04
00000ac9: ADD
00000aca: PUSH1 0x40
00000acc: MLOAD
00000acd: DUP1
00000ace: SWAP2
00000acf: SUB
00000ad0: SWAP1
00000ad1: REVERT
00000ad2: JUMPDEST
00000ad3: PUSH1 0x01
00000ad5: PUSH1 0x01
00000ad7: PUSH1 0xa0
00000ad9: SHL
00000ada: SUB
00000adb: DUP4
00000adc: AND
00000add: PUSH0
00000ade: SWAP1
00000adf: DUP2
00000ae0: MSTORE
00000ae1: PUSH1 0x09
00000ae3: PUSH1 0x20
00000ae5: MSTORE
00000ae6: PUSH1 0x40
00000ae8: SWAP1
00000ae9: KECCAK256
00000aea: SLOAD
00000aeb: PUSH1 0xff
00000aed: AND
00000aee: PUSH2 0x0b0a
00000af1: JUMPI
00000af2: PUSH1 0x40
00000af4: MLOAD
00000af5: PUSH4 0x4b16fc2d
00000afa: PUSH1 0xe1
00000afc: SHL
00000afd: DUP2
00000afe: MSTORE
00000aff: PUSH1 0x04
00000b01: ADD
00000b02: PUSH1 0x40
00000b04: MLOAD
00000b05: DUP1
00000b06: SWAP2
00000b07: SUB
00000b08: SWAP1
00000b09: REVERT
00000b0a: JUMPDEST
00000b0b: PUSH1 0x01
00000b0d: PUSH1 0x01
00000b0f: PUSH1 0xa0
00000b11: SHL
00000b12: SUB
00000b13: DUP3
00000b14: AND
00000b15: PUSH0
00000b16: SWAP1
00000b17: DUP2
00000b18: MSTORE
00000b19: PUSH1 0x09
00000b1b: PUSH1 0x20
00000b1d: MSTORE
00000b1e: PUSH1 0x40
00000b20: SWAP1
00000b21: KECCAK256
00000b22: SLOAD
00000b23: PUSH1 0xff
00000b25: AND
00000b26: PUSH2 0x0b42
00000b29: JUMPI
00000b2a: PUSH1 0x40
00000b2c: MLOAD
00000b2d: PUSH4 0x4b16fc2d
00000b32: PUSH1 0xe1
00000b34: SHL
00000b35: DUP2
00000b36: MSTORE
00000b37: PUSH1 0x04
00000b39: ADD
00000b3a: PUSH1 0x40
00000b3c: MLOAD
00000b3d: DUP1
00000b3e: SWAP2
00000b3f: SUB
00000b40: SWAP1
00000b41: REVERT
00000b42: JUMPDEST
00000b43: PUSH1 0x01
00000b45: PUSH1 0x01
00000b47: PUSH1 0xa0
00000b49: SHL
00000b4a: SUB
00000b4b: DUP4
00000b4c: DUP2
00000b4d: AND
00000b4e: PUSH0
00000b4f: DUP2
00000b50: DUP2
00000b51: MSTORE
00000b52: PUSH1 0x09
00000b54: PUSH1 0x20
00000b56: MSTORE
00000b57: PUSH1 0x40
00000b59: DUP1
00000b5a: DUP3
00000b5b: KECCAK256
00000b5c: SWAP4
00000b5d: DUP7
00000b5e: AND
00000b5f: DUP3
00000b60: MSTORE
00000b61: SWAP1
00000b62: DUP2
00000b63: SWAP1
00000b64: KECCAK256
00000b65: SWAP1
00000b66: MLOAD
00000b67: PUSH4 0x70a08231
00000b6c: PUSH1 0xe0
00000b6e: SHL
00000b6f: DUP2
00000b70: MSTORE
00000b71: ADDRESS
00000b72: PUSH1 0x04
00000b74: DUP3
00000b75: ADD
00000b76: MSTORE
00000b77: SWAP1
00000b78: SWAP2
00000b79: PUSH2 0x0a9b
00000b7c: SWAP2
00000b7d: PUSH4 0x70a08231
00000b82: SWAP1
00000b83: PUSH1 0x24
00000b85: ADD
00000b86: PUSH1 0x20
00000b88: PUSH1 0x40
00000b8a: MLOAD
00000b8b: DUP1
00000b8c: DUP4
00000b8d: SUB
00000b8e: DUP2
00000b8f: DUP7
00000b90: GAS
00000b91: STATICCALL
00000b92: ISZERO
00000b93: DUP1
00000b94: ISZERO
00000b95: PUSH2 0x0ba0
00000b98: JUMPI
00000b99: RETURNDATASIZE
00000b9a: PUSH0
00000b9b: DUP1
00000b9c: RETURNDATACOPY
00000b9d: RETURNDATASIZE
00000b9e: PUSH0
00000b9f: REVERT
00000ba0: JUMPDEST
00000ba1: POP
00000ba2: POP
00000ba3: POP
00000ba4: POP
00000ba5: PUSH1 0x40
00000ba7: MLOAD
00000ba8: RETURNDATASIZE
00000ba9: PUSH1 0x1f
00000bab: NOT
00000bac: PUSH1 0x1f
00000bae: DUP3
00000baf: ADD
00000bb0: AND
00000bb1: DUP3
00000bb2: ADD
00000bb3: DUP1
00000bb4: PUSH1 0x40
00000bb6: MSTORE
00000bb7: POP
00000bb8: DUP2
00000bb9: ADD
00000bba: SWAP1
00000bbb: PUSH2 0x0bc4
00000bbe: SWAP2
00000bbf: SWAP1
00000bc0: PUSH2 0x3d33
00000bc3: JUMP
00000bc4: JUMPDEST
00000bc5: PUSH1 0x02
00000bc7: DUP5
00000bc8: ADD
00000bc9: SLOAD
00000bca: PUSH1 0x40
00000bcc: MLOAD
00000bcd: PUSH4 0x70a08231
00000bd2: PUSH1 0xe0
00000bd4: SHL
00000bd5: DUP2
00000bd6: MSTORE
00000bd7: ADDRESS
00000bd8: PUSH1 0x04
00000bda: DUP3
00000bdb: ADD
00000bdc: MSTORE
00000bdd: PUSH1 0x01
00000bdf: PUSH1 0x01
00000be1: PUSH1 0xa0
00000be3: SHL
00000be4: SUB
00000be5: DUP9
00000be6: AND
00000be7: SWAP1
00000be8: PUSH4 0x70a08231
00000bed: SWAP1
00000bee: PUSH1 0x24
00000bf0: ADD
00000bf1: PUSH1 0x20
00000bf3: PUSH1 0x40
00000bf5: MLOAD
00000bf6: DUP1
00000bf7: DUP4
00000bf8: SUB
00000bf9: DUP2
00000bfa: DUP7
00000bfb: GAS
00000bfc: STATICCALL
00000bfd: ISZERO
00000bfe: DUP1
00000bff: ISZERO
00000c00: PUSH2 0x0c0b
00000c03: JUMPI
00000c04: RETURNDATASIZE
00000c05: PUSH0
00000c06: DUP1
00000c07: RETURNDATACOPY
00000c08: RETURNDATASIZE
00000c09: PUSH0
00000c0a: REVERT
00000c0b: JUMPDEST
00000c0c: POP
00000c0d: POP
00000c0e: POP
00000c0f: POP
00000c10: PUSH1 0x40
00000c12: MLOAD
00000c13: RETURNDATASIZE
00000c14: PUSH1 0x1f
00000c16: NOT
00000c17: PUSH1 0x1f
00000c19: DUP3
00000c1a: ADD
00000c1b: AND
00000c1c: DUP3
00000c1d: ADD
00000c1e: DUP1
00000c1f: PUSH1 0x40
00000c21: MSTORE
00000c22: POP
00000c23: DUP2
00000c24: ADD
00000c25: SWAP1
00000c26: PUSH2 0x0c2f
00000c29: SWAP2
00000c2a: SWAP1
00000c2b: PUSH2 0x3d33
00000c2e: JUMP
00000c2f: JUMPDEST
00000c30: DUP5
00000c31: PUSH1 0x02
00000c33: ADD
00000c34: SLOAD
00000c35: PUSH1 0x06
00000c37: SLOAD
00000c38: PUSH2 0x1f88
00000c3b: JUMP
00000c3c: JUMPDEST
00000c3d: PUSH0
00000c3e: DUP1
00000c3f: DUP3
00000c40: DUP1
00000c41: PUSH1 0x20
00000c43: ADD
00000c44: SWAP1
00000c45: MLOAD
00000c46: DUP2
00000c47: ADD
00000c48: SWAP1
00000c49: PUSH2 0x0c52
00000c4c: SWAP2
00000c4d: SWAP1
00000c4e: PUSH2 0x3d6b
00000c51: JUMP
00000c52: JUMPDEST
00000c53: SWAP1
00000c54: POP
00000c55: PUSH32 0x362e5182440b52aa8fffe70a251550fbbcbca424740fe5a14f59bf0c1b06fe1d
00000c76: DUP2
00000c77: PUSH1 0xc0
00000c79: ADD
00000c7a: MLOAD
00000c7b: EQ
00000c7c: PUSH2 0x0c98
00000c7f: JUMPI
00000c80: PUSH1 0x40
00000c82: MLOAD
00000c83: PUSH4 0x0e1a1b63
00000c88: PUSH1 0xe4
00000c8a: SHL
00000c8b: DUP2
00000c8c: MSTORE
00000c8d: PUSH1 0x04
00000c8f: ADD
00000c90: PUSH1 0x40
00000c92: MLOAD
00000c93: DUP1
00000c94: SWAP2
00000c95: SUB
00000c96: SWAP1
00000c97: REVERT
00000c98: JUMPDEST
00000c99: PUSH1 0x1f
00000c9b: NOT
00000c9c: DUP2
00000c9d: ADD
00000c9e: DUP1
00000c9f: MLOAD
00000ca0: PUSH32 0xd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e489
00000cc1: DUP3
00000cc2: MSTORE
00000cc3: PUSH2 0x01a0
00000cc6: DUP3
00000cc7: KECCAK256
00000cc8: SWAP2
00000cc9: MSTORE
00000cca: PUSH1 0x40
00000ccc: MLOAD
00000ccd: PUSH2 0x1901
00000cd0: PUSH1 0xf0
00000cd2: SHL
00000cd3: DUP2
00000cd4: MSTORE
00000cd5: PUSH32 0xc078f884a2676e1345748b1feace7b0abee5d00ecadb6e574dcdd109a63e8943
00000cf6: PUSH1 0x02
00000cf8: DUP3
00000cf9: ADD
00000cfa: MSTORE
00000cfb: PUSH1 0x22
00000cfd: DUP2
00000cfe: ADD
00000cff: SWAP2
00000d00: SWAP1
00000d01: SWAP2
00000d02: MSTORE
00000d03: PUSH1 0x42
00000d05: SWAP1
00000d06: KECCAK256
00000d07: DUP5
00000d08: DUP2
00000d09: EQ
00000d0a: PUSH2 0x0d26
00000d0d: JUMPI
00000d0e: PUSH1 0x40
00000d10: MLOAD
00000d11: PUSH4 0x593fcacd
00000d16: PUSH1 0xe0
00000d18: SHL
00000d19: DUP2
00000d1a: MSTORE
00000d1b: PUSH1 0x04
00000d1d: ADD
00000d1e: PUSH1 0x40
00000d20: MLOAD
00000d21: DUP1
00000d22: SWAP2
00000d23: SUB
00000d24: SWAP1
00000d25: REVERT
00000d26: JUMPDEST
00000d27: PUSH0
00000d28: DUP1
00000d29: MLOAD
00000d2a: PUSH1 0x20
00000d2c: PUSH2 0x3f08
00000d2f: DUP4
00000d30: CODECOPY
00000d31: DUP2
00000d32: MLOAD
00000d33: SWAP2
00000d34: MSTORE
00000d35: TLOAD
00000d36: DUP2
00000d37: EQ
00000d38: PUSH2 0x0d54
00000d3b: JUMPI
00000d3c: PUSH1 0x40
00000d3e: MLOAD
00000d3f: PUSH4 0xdafbdd1f
00000d44: PUSH1 0xe0
00000d46: SHL
00000d47: DUP2
00000d48: MSTORE
00000d49: PUSH1 0x04
00000d4b: ADD
00000d4c: PUSH1 0x40
00000d4e: MLOAD
00000d4f: DUP1
00000d50: SWAP2
00000d51: SUB
00000d52: SWAP1
00000d53: REVERT
00000d54: JUMPDEST
00000d55: PUSH2 0x0d5d
00000d58: DUP3
00000d59: PUSH2 0x0daa
00000d5c: JUMP
00000d5d: JUMPDEST
00000d5e: POP
00000d5f: PUSH4 0x0b135d3f
00000d64: PUSH1 0xe1
00000d66: SHL
00000d67: SWAP5
00000d68: SWAP4
00000d69: POP
00000d6a: POP
00000d6b: POP
00000d6c: POP
00000d6d: JUMP
00000d6e: JUMPDEST
00000d6f: PUSH2 0x0902
00000d72: PUSH5 0x02540be400
00000d78: PUSH8 0x0de0b6b3a7640000
00000d81: PUSH2 0x3e3b
00000d84: JUMP
00000d85: JUMPDEST
00000d86: PUSH0
00000d87: CALLER
00000d88: PUSH2 0x0d92
00000d8b: DUP6
00000d8c: DUP3
00000d8d: DUP6
00000d8e: PUSH2 0x2c7f
00000d91: JUMP
00000d92: JUMPDEST
00000d93: PUSH2 0x0d9d
00000d96: DUP6
00000d97: DUP6
00000d98: DUP6
00000d99: PUSH2 0x2cff
00000d9c: JUMP
00000d9d: JUMPDEST
00000d9e: PUSH1 0x01
00000da0: SWAP2
00000da1: POP
00000da2: POP
00000da3: JUMPDEST
00000da4: SWAP4
00000da5: SWAP3
00000da6: POP
00000da7: POP
00000da8: POP
00000da9: JUMP
00000daa: JUMPDEST
00000dab: PUSH1 0x20
00000dad: DUP1
00000dae: DUP3
00000daf: ADD
00000db0: MLOAD
00000db1: PUSH1 0x01
00000db3: PUSH1 0x01
00000db5: PUSH1 0xa0
00000db7: SHL
00000db8: SUB
00000db9: SWAP1
00000dba: DUP2
00000dbb: AND
00000dbc: PUSH0
00000dbd: SWAP1
00000dbe: DUP2
00000dbf: MSTORE
00000dc0: PUSH1 0x09
00000dc2: DUP1
00000dc3: DUP5
00000dc4: MSTORE
00000dc5: PUSH1 0x40
00000dc7: DUP1
00000dc8: DUP4
00000dc9: KECCAK256
00000dca: DUP2
00000dcb: MLOAD
00000dcc: PUSH1 0x60
00000dce: DUP1
00000dcf: DUP3
00000dd0: ADD
00000dd1: DUP5
00000dd2: MSTORE
00000dd3: DUP3
00000dd4: SLOAD
00000dd5: PUSH1 0xff
00000dd7: SWAP1
00000dd8: DUP2
00000dd9: AND
00000dda: ISZERO
00000ddb: ISZERO
00000ddc: DUP4
00000ddd: MSTORE
00000dde: PUSH1 0x01
00000de0: DUP1
00000de1: DUP6
00000de2: ADD
00000de3: SLOAD
00000de4: DUP5
00000de5: DUP12
00000de6: ADD
00000de7: MSTORE
00000de8: PUSH1 0x02
00000dea: SWAP5
00000deb: DUP6
00000dec: ADD
00000ded: SLOAD
00000dee: DUP5
00000def: DUP8
00000df0: ADD
00000df1: MSTORE
00000df2: DUP11
00000df3: MLOAD
00000df4: SWAP1
00000df5: SWAP9
00000df6: AND
00000df7: DUP8
00000df8: MSTORE
00000df9: SWAP5
00000dfa: DUP9
00000dfb: MSTORE
00000dfc: SWAP5
00000dfd: DUP4
00000dfe: SWAP1
00000dff: KECCAK256
00000e00: DUP4
00000e01: MLOAD
00000e02: SWAP6
00000e03: DUP7
00000e04: ADD
00000e05: DUP5
00000e06: MSTORE
00000e07: DUP1
00000e08: SLOAD
00000e09: SWAP1
00000e0a: SWAP5
00000e0b: AND
00000e0c: ISZERO
00000e0d: ISZERO
00000e0e: DUP6
00000e0f: MSTORE
00000e10: SWAP5
00000e11: DUP4
00000e12: ADD
00000e13: SLOAD
00000e14: SWAP6
00000e15: DUP5
00000e16: ADD
00000e17: SWAP6
00000e18: SWAP1
00000e19: SWAP6
00000e1a: MSTORE
00000e1b: SWAP4
00000e1c: ADD
00000e1d: SLOAD
00000e1e: SWAP3
00000e1f: DUP2
00000e20: ADD
00000e21: SWAP3
00000e22: SWAP1
00000e23: SWAP3
00000e24: MSTORE
00000e25: DUP1
00000e26: MLOAD
00000e27: SWAP1
00000e28: SWAP2
00000e29: SWAP1
00000e2a: ISZERO
00000e2b: DUP1
00000e2c: PUSH2 0x0e34
00000e2f: JUMPI
00000e30: POP
00000e31: DUP1
00000e32: MLOAD
00000e33: ISZERO
00000e34: JUMPDEST
00000e35: ISZERO
00000e36: PUSH2 0x0e52
00000e39: JUMPI
00000e3a: PUSH1 0x40
00000e3c: MLOAD
00000e3d: PUSH4 0x4b16fc2d
00000e42: PUSH1 0xe1
00000e44: SHL
00000e45: DUP2
00000e46: MSTORE
00000e47: PUSH1 0x04
00000e49: ADD
00000e4a: PUSH1 0x40
00000e4c: MLOAD
00000e4d: DUP1
00000e4e: SWAP2
00000e4f: SUB
00000e50: SWAP1
00000e51: REVERT
00000e52: JUMPDEST
00000e53: PUSH1 0x40
00000e55: DUP4
00000e56: ADD
00000e57: MLOAD
00000e58: PUSH1 0x01
00000e5a: PUSH1 0x01
00000e5c: PUSH1 0xa0
00000e5e: SHL
00000e5f: SUB
00000e60: AND
00000e61: ISZERO
00000e62: PUSH2 0x0e7d
00000e65: JUMPI
00000e66: PUSH1 0x40
00000e68: MLOAD
00000e69: PUSH3 0x3c9da5
00000e6d: PUSH1 0xe6
00000e6f: SHL
00000e70: DUP2
00000e71: MSTORE
00000e72: PUSH1 0x04
00000e74: ADD
00000e75: PUSH1 0x40
00000e77: MLOAD
00000e78: DUP1
00000e79: SWAP2
00000e7a: SUB
00000e7b: SWAP1
00000e7c: REVERT
00000e7d: JUMPDEST
00000e7e: PUSH2 0x0e89
00000e81: PUSH2 0x012c
00000e84: TIMESTAMP
00000e85: PUSH2 0x3e5a
00000e88: JUMP
00000e89: JUMPDEST
00000e8a: DUP4
00000e8b: PUSH1 0xa0
00000e8d: ADD
00000e8e: MLOAD
00000e8f: PUSH4 0xffffffff
00000e94: AND
00000e95: GT
00000e96: ISZERO
00000e97: PUSH2 0x0eb3
00000e9a: JUMPI
00000e9b: PUSH1 0x40
00000e9d: MLOAD
00000e9e: PUSH4 0x326389f9
00000ea3: PUSH1 0xe1
00000ea5: SHL
00000ea6: DUP2
00000ea7: MSTORE
00000ea8: PUSH1 0x04
00000eaa: ADD
00000eab: PUSH1 0x40
00000ead: MLOAD
00000eae: DUP1
00000eaf: SWAP2
00000eb0: SUB
00000eb1: SWAP1
00000eb2: REVERT
00000eb3: JUMPDEST
00000eb4: PUSH1 0xe0
00000eb6: DUP4
00000eb7: ADD
00000eb8: MLOAD
00000eb9: ISZERO
00000eba: PUSH2 0x0ed5
00000ebd: JUMPI
00000ebe: PUSH1 0x40
00000ec0: MLOAD
00000ec1: PUSH3 0x0e5bdf
00000ec5: PUSH1 0xe4
00000ec7: SHL
00000ec8: DUP2
00000ec9: MSTORE
00000eca: PUSH1 0x04
00000ecc: ADD
00000ecd: PUSH1 0x40
00000ecf: MLOAD
00000ed0: DUP1
00000ed1: SWAP2
00000ed2: SUB
00000ed3: SWAP1
00000ed4: REVERT
00000ed5: JUMPDEST
00000ed6: PUSH32 0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775
00000ef7: DUP4
00000ef8: PUSH2 0x0100
00000efb: ADD
00000efc: MLOAD
00000efd: EQ
00000efe: PUSH2 0x0f1a
00000f01: JUMPI
00000f02: PUSH1 0x40
00000f04: MLOAD
00000f05: PUSH4 0x2c9634af
00000f0a: PUSH1 0xe0
00000f0c: SHL
00000f0d: DUP2
00000f0e: MSTORE
00000f0f: PUSH1 0x04
00000f11: ADD
00000f12: PUSH1 0x40
00000f14: MLOAD
00000f15: DUP1
00000f16: SWAP2
00000f17: SUB
00000f18: SWAP1
00000f19: REVERT
00000f1a: JUMPDEST
00000f1b: PUSH32 0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9
00000f3c: DUP4
00000f3d: PUSH2 0x0160
00000f40: ADD
00000f41: MLOAD
00000f42: EQ
00000f43: ISZERO
00000f44: DUP1
00000f45: PUSH2 0x0f73
00000f48: JUMPI
00000f49: POP
00000f4a: PUSH32 0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9
00000f6b: DUP4
00000f6c: PUSH2 0x0140
00000f6f: ADD
00000f70: MLOAD
00000f71: EQ
00000f72: ISZERO
00000f73: JUMPDEST
00000f74: ISZERO
00000f75: PUSH2 0x0f91
00000f78: JUMPI
00000f79: PUSH1 0x40
00000f7b: MLOAD
00000f7c: PUSH4 0x97a23281
00000f81: PUSH1 0xe0
00000f83: SHL
00000f84: DUP2
00000f85: MSTORE
00000f86: PUSH1 0x04
00000f88: ADD
00000f89: PUSH1 0x40
00000f8b: MLOAD
00000f8c: DUP1
00000f8d: SWAP2
00000f8e: SUB
00000f8f: SWAP1
00000f90: REVERT
00000f91: JUMPDEST
00000f92: PUSH1 0x20
00000f94: DUP4
00000f95: ADD
00000f96: MLOAD
00000f97: PUSH1 0x40
00000f99: MLOAD
00000f9a: PUSH4 0x70a08231
00000f9f: PUSH1 0xe0
00000fa1: SHL
00000fa2: DUP2
00000fa3: MSTORE
00000fa4: ADDRESS
00000fa5: PUSH1 0x04
00000fa7: DUP3
00000fa8: ADD
00000fa9: MSTORE
00000faa: PUSH0
00000fab: SWAP2
00000fac: PUSH1 0x01
00000fae: PUSH1 0x01
00000fb0: PUSH1 0xa0
00000fb2: SHL
00000fb3: SUB
00000fb4: AND
00000fb5: SWAP1
00000fb6: PUSH4 0x70a08231
00000fbb: SWAP1
00000fbc: PUSH1 0x24
00000fbe: ADD
00000fbf: PUSH1 0x20
00000fc1: PUSH1 0x40
00000fc3: MLOAD
00000fc4: DUP1
00000fc5: DUP4
00000fc6: SUB
00000fc7: DUP2
00000fc8: DUP7
00000fc9: GAS
00000fca: STATICCALL
00000fcb: ISZERO
00000fcc: DUP1
00000fcd: ISZERO
00000fce: PUSH2 0x0fd9
00000fd1: JUMPI
00000fd2: RETURNDATASIZE
00000fd3: PUSH0
00000fd4: DUP1
00000fd5: RETURNDATACOPY
00000fd6: RETURNDATASIZE
00000fd7: PUSH0
00000fd8: REVERT
00000fd9: JUMPDEST
00000fda: POP
00000fdb: POP
00000fdc: POP
00000fdd: POP
00000fde: PUSH1 0x40
00000fe0: MLOAD
00000fe1: RETURNDATASIZE
00000fe2: PUSH1 0x1f
00000fe4: NOT
00000fe5: PUSH1 0x1f
00000fe7: DUP3
00000fe8: ADD
00000fe9: AND
00000fea: DUP3
00000feb: ADD
00000fec: DUP1
00000fed: PUSH1 0x40
00000fef: MSTORE
00000ff0: POP
00000ff1: DUP2
00000ff2: ADD
00000ff3: SWAP1
00000ff4: PUSH2 0x0ffd
00000ff7: SWAP2
00000ff8: SWAP1
00000ff9: PUSH2 0x3d33
00000ffc: JUMP
00000ffd: JUMPDEST
00000ffe: SWAP1
00000fff: POP
00001000: PUSH2 0x1011
00001003: DUP2
00001004: PUSH8 0x06f05b59d3b20000
0000100d: PUSH2 0x2d5c
00001010: JUMP
00001011: JUMPDEST
00001012: DUP5
00001013: PUSH1 0x80
00001015: ADD
00001016: MLOAD
00001017: GT
00001018: ISZERO
00001019: PUSH2 0x1035
0000101c: JUMPI
0000101d: PUSH1 0x40
0000101f: MLOAD
00001020: PUSH4 0x558fcd91
00001025: PUSH1 0xe1
00001027: SHL
00001028: DUP2
00001029: MSTORE
0000102a: PUSH1 0x04
0000102c: ADD
0000102d: PUSH1 0x40
0000102f: MLOAD
00001030: DUP1
00001031: SWAP2
00001032: SUB
00001033: SWAP1
00001034: REVERT
00001035: JUMPDEST
00001036: PUSH1 0x40
00001038: DUP1
00001039: DUP5
0000103a: ADD
0000103b: MLOAD
0000103c: DUP6
0000103d: MLOAD
0000103e: SWAP2
0000103f: MLOAD
00001040: PUSH4 0x70a08231
00001045: PUSH1 0xe0
00001047: SHL
00001048: DUP2
00001049: MSTORE
0000104a: ADDRESS
0000104b: PUSH1 0x04
0000104d: DUP3
0000104e: ADD
0000104f: MSTORE
00001050: PUSH0
00001051: SWAP3
00001052: PUSH2 0x10bb
00001055: SWAP3
00001056: DUP6
00001057: SWAP3
00001058: SWAP1
00001059: SWAP2
0000105a: PUSH1 0x01
0000105c: PUSH1 0x01
0000105e: PUSH1 0xa0
00001060: SHL
00001061: SUB
00001062: AND
00001063: SWAP1
00001064: PUSH4 0x70a08231
00001069: SWAP1
0000106a: PUSH1 0x24
0000106c: ADD
0000106d: PUSH1 0x20
0000106f: PUSH1 0x40
00001071: MLOAD
00001072: DUP1
00001073: DUP4
00001074: SUB
00001075: DUP2
00001076: DUP7
00001077: GAS
00001078: STATICCALL
00001079: ISZERO
0000107a: DUP1
0000107b: ISZERO
0000107c: PUSH2 0x1087
0000107f: JUMPI
00001080: RETURNDATASIZE
00001081: PUSH0
00001082: DUP1
00001083: RETURNDATACOPY
00001084: RETURNDATASIZE
00001085: PUSH0
00001086: REVERT
00001087: JUMPDEST
00001088: POP
00001089: POP
0000108a: POP
0000108b: POP
0000108c: PUSH1 0x40
0000108e: MLOAD
0000108f: RETURNDATASIZE
00001090: PUSH1 0x1f
00001092: NOT
00001093: PUSH1 0x1f
00001095: DUP3
00001096: ADD
00001097: AND
00001098: DUP3
00001099: ADD
0000109a: DUP1
0000109b: PUSH1 0x40
0000109d: MSTORE
0000109e: POP
0000109f: DUP2
000010a0: ADD
000010a1: SWAP1
000010a2: PUSH2 0x10ab
000010a5: SWAP2
000010a6: SWAP1
000010a7: PUSH2 0x3d33
000010aa: JUMP
000010ab: JUMPDEST
000010ac: DUP7
000010ad: PUSH1 0x40
000010af: ADD
000010b0: MLOAD
000010b1: DUP10
000010b2: PUSH1 0x80
000010b4: ADD
000010b5: MLOAD
000010b6: PUSH0
000010b7: PUSH2 0x2281
000010ba: JUMP
000010bb: JUMPDEST
000010bc: SWAP1
000010bd: POP
000010be: DUP5
000010bf: PUSH1 0x60
000010c1: ADD
000010c2: MLOAD
000010c3: DUP2
000010c4: LT
000010c5: ISZERO
000010c6: PUSH2 0x10e2
000010c9: JUMPI
000010ca: PUSH1 0x40
000010cc: MLOAD
000010cd: PUSH4 0xd6ac3395
000010d2: PUSH1 0xe0
000010d4: SHL
000010d5: DUP2
000010d6: MSTORE
000010d7: PUSH1 0x04
000010d9: ADD
000010da: PUSH1 0x40
000010dc: MLOAD
000010dd: DUP1
000010de: SWAP2
000010df: SUB
000010e0: SWAP1
000010e1: REVERT
000010e2: JUMPDEST
000010e3: POP
000010e4: POP
000010e5: POP
000010e6: POP
000010e7: POP
000010e8: JUMP
000010e9: JUMPDEST
000010ea: PUSH0
000010eb: PUSH0
000010ec: DUP1
000010ed: MLOAD
000010ee: PUSH1 0x20
000010f0: PUSH2 0x3f08
000010f3: DUP4
000010f4: CODECOPY
000010f5: DUP2
000010f6: MLOAD
000010f7: SWAP2
000010f8: MSTORE
000010f9: TLOAD
000010fa: ISZERO
000010fb: PUSH2 0x1117
000010fe: JUMPI
000010ff: PUSH1 0x40
00001101: MLOAD
00001102: PUSH4 0xd56a08b5
00001107: PUSH1 0xe0
00001109: SHL
0000110a: DUP2
0000110b: MSTORE
0000110c: PUSH1 0x04
0000110e: ADD
0000110f: PUSH1 0x40
00001111: MLOAD
00001112: DUP1
00001113: SWAP2
00001114: SUB
00001115: SWAP1
00001116: REVERT
00001117: JUMPDEST
00001118: POP
00001119: PUSH1 0x05
0000111b: SLOAD
0000111c: PUSH1 0x01
0000111e: PUSH1 0x01
00001120: PUSH1 0xa0
00001122: SHL
00001123: SUB
00001124: AND
00001125: SWAP1
00001126: JUMP
00001127: JUMPDEST
00001128: CALLER
00001129: PUSH1 0x01
0000112b: PUSH1 0x01
0000112d: PUSH1 0xa0
0000112f: SHL
00001130: SUB
00001131: AND
00001132: PUSH0
00001133: CALLDATALOAD
00001134: PUSH1 0x01
00001136: PUSH1 0x01
00001138: PUSH1 0xe0
0000113a: SHL
0000113b: SUB
0000113c: NOT
0000113d: AND
0000113e: PUSH1 0x01
00001140: PUSH1 0x01
00001142: PUSH1 0xe0
00001144: SHL
00001145: SUB
00001146: NOT
00001147: AND
00001148: PUSH0
00001149: CALLDATASIZE
0000114a: PUSH1 0x40
0000114c: MLOAD
0000114d: PUSH2 0x1157
00001150: SWAP3
00001151: SWAP2
00001152: SWAP1
00001153: PUSH2 0x3e6d
00001156: JUMP
00001157: JUMPDEST
00001158: PUSH1 0x40
0000115a: MLOAD
0000115b: DUP1
0000115c: SWAP2
0000115d: SUB
0000115e: SWAP1
0000115f: LOG2
00001160: PUSH0
00001161: DUP1
00001162: MLOAD
00001163: PUSH1 0x20
00001165: PUSH2 0x3f08
00001168: DUP4
00001169: CODECOPY
0000116a: DUP2
0000116b: MLOAD
0000116c: SWAP2
0000116d: MSTORE
0000116e: TLOAD
0000116f: ISZERO
00001170: PUSH2 0x118c
00001173: JUMPI
00001174: PUSH1 0x40
00001176: MLOAD
00001177: PUSH4 0xd56a08b5
0000117c: PUSH1 0xe0
0000117e: SHL
0000117f: DUP2
00001180: MSTORE
00001181: PUSH1 0x04
00001183: ADD
00001184: PUSH1 0x40
00001186: MLOAD
00001187: DUP1
00001188: SWAP2
00001189: SUB
0000118a: SWAP1
0000118b: REVERT
0000118c: JUMPDEST
0000118d: PUSH2 0x1196
00001190: PUSH1 0x01
00001192: PUSH2 0x2ddf
00001195: JUMP
00001196: JUMPDEST
00001197: PUSH1 0x05
00001199: SLOAD
0000119a: PUSH1 0x01
0000119c: PUSH1 0x01
0000119e: PUSH1 0xa0
000011a0: SHL
000011a1: SUB
000011a2: AND
000011a3: CALLER
000011a4: EQ
000011a5: PUSH2 0x11c1
000011a8: JUMPI
000011a9: PUSH1 0x40
000011ab: MLOAD
000011ac: PUSH4 0x4f0f5499
000011b1: PUSH1 0xe1
000011b3: SHL
000011b4: DUP2
000011b5: MSTORE
000011b6: PUSH1 0x04
000011b8: ADD
000011b9: PUSH1 0x40
000011bb: MLOAD
000011bc: DUP1
000011bd: SWAP2
000011be: SUB
000011bf: SWAP1
000011c0: REVERT
000011c1: JUMPDEST
000011c2: PUSH1 0x07
000011c4: SLOAD
000011c5: PUSH1 0xff
000011c7: AND
000011c8: ISZERO
000011c9: PUSH2 0x11e5
000011cc: JUMPI
000011cd: PUSH1 0x40
000011cf: MLOAD
000011d0: PUSH4 0x056f633d
000011d5: PUSH1 0xe2
000011d7: SHL
000011d8: DUP2
000011d9: MSTORE
000011da: PUSH1 0x04
000011dc: ADD
000011dd: PUSH1 0x40
000011df: MLOAD
000011e0: DUP1
000011e1: SWAP2
000011e2: SUB
000011e3: SWAP1
000011e4: REVERT
000011e5: JUMPDEST
000011e6: PUSH2 0x11fa
000011e9: PUSH3 0x0f4240
000011ed: PUSH8 0x0de0b6b3a7640000
000011f6: PUSH2 0x3e3b
000011f9: JUMP
000011fa: JUMPDEST
000011fb: DUP2
000011fc: LT
000011fd: ISZERO
000011fe: PUSH2 0x121a
00001201: JUMPI
00001202: PUSH1 0x40
00001204: MLOAD
00001205: PUSH4 0x3b46575d
0000120a: PUSH1 0xe0
0000120c: SHL
0000120d: DUP2
0000120e: MSTORE
0000120f: PUSH1 0x04
00001211: ADD
00001212: PUSH1 0x40
00001214: MLOAD
00001215: DUP1
00001216: SWAP2
00001217: SUB
00001218: SWAP1
00001219: REVERT
0000121a: JUMPDEST
0000121b: PUSH2 0x122f
0000121e: PUSH3 0x0f4240
00001222: PUSH8 0x0de0b6b3a7640000
0000122b: PUSH2 0x3e3b
0000122e: JUMP
0000122f: JUMPDEST
00001230: PUSH2 0x1241
00001233: SWAP1
00001234: PUSH8 0x0de0b6b3a7640000
0000123d: PUSH2 0x3e9b
00001240: JUMP
00001241: JUMPDEST
00001242: DUP2
00001243: GT
00001244: ISZERO
00001245: PUSH2 0x1261
00001248: JUMPI
00001249: PUSH1 0x40
0000124b: MLOAD
0000124c: PUSH4 0x0f71fbbf
00001251: PUSH1 0xe1
00001253: SHL
00001254: DUP2
00001255: MSTORE
00001256: PUSH1 0x04
00001258: ADD
00001259: PUSH1 0x40
0000125b: MLOAD
0000125c: DUP1
0000125d: SWAP2
0000125e: SUB
0000125f: SWAP1
00001260: REVERT
00001261: JUMPDEST
00001262: PUSH1 0x06
00001264: DUP2
00001265: SWAP1
00001266: SSTORE
00001267: PUSH2 0x126f
0000126a: PUSH0
0000126b: PUSH2 0x2ddf
0000126e: JUMP
0000126f: JUMPDEST
00001270: POP
00001271: JUMP
00001272: JUMPDEST
00001273: CALLER
00001274: PUSH1 0x01
00001276: PUSH1 0x01
00001278: PUSH1 0xa0
0000127a: SHL
0000127b: SUB
0000127c: AND
0000127d: PUSH0
0000127e: CALLDATALOAD
0000127f: PUSH1 0x01
00001281: PUSH1 0x01
00001283: PUSH1 0xe0
00001285: SHL
00001286: SUB
00001287: NOT
00001288: AND
00001289: PUSH1 0x01
0000128b: PUSH1 0x01
0000128d: PUSH1 0xe0
0000128f: SHL
00001290: SUB
00001291: NOT
00001292: AND
00001293: PUSH0
00001294: CALLDATASIZE
00001295: PUSH1 0x40
00001297: MLOAD
00001298: PUSH2 0x12a2
0000129b: SWAP3
0000129c: SWAP2
0000129d: SWAP1
0000129e: PUSH2 0x3e6d
000012a1: JUMP
000012a2: JUMPDEST
000012a3: PUSH1 0x40
000012a5: MLOAD
000012a6: DUP1
000012a7: SWAP2
000012a8: SUB
000012a9: SWAP1
000012aa: LOG2
000012ab: PUSH0
000012ac: DUP1
000012ad: MLOAD
000012ae: PUSH1 0x20
000012b0: PUSH2 0x3f08
000012b3: DUP4
000012b4: CODECOPY
000012b5: DUP2
000012b6: MLOAD
000012b7: SWAP2
000012b8: MSTORE
000012b9: TLOAD
000012ba: ISZERO
000012bb: PUSH2 0x12d7
000012be: JUMPI
000012bf: PUSH1 0x40
000012c1: MLOAD
000012c2: PUSH4 0xd56a08b5
000012c7: PUSH1 0xe0
000012c9: SHL
000012ca: DUP2
000012cb: MSTORE
000012cc: PUSH1 0x04
000012ce: ADD
000012cf: PUSH1 0x40
000012d1: MLOAD
000012d2: DUP1
000012d3: SWAP2
000012d4: SUB
000012d5: SWAP1
000012d6: REVERT
000012d7: JUMPDEST
000012d8: PUSH2 0x12e1
000012db: PUSH1 0x01
000012dd: PUSH2 0x2ddf
000012e0: JUMP
000012e1: JUMPDEST
000012e2: PUSH1 0x05
000012e4: SLOAD
000012e5: PUSH1 0x01
000012e7: PUSH1 0x01
000012e9: PUSH1 0xa0
000012eb: SHL
000012ec: SUB
000012ed: AND
000012ee: CALLER
000012ef: EQ
000012f0: PUSH2 0x130c
000012f3: JUMPI
000012f4: PUSH1 0x40
000012f6: MLOAD
000012f7: PUSH4 0x4f0f5499
000012fc: PUSH1 0xe1
000012fe: SHL
000012ff: DUP2
00001300: MSTORE
00001301: PUSH1 0x04
00001303: ADD
00001304: PUSH1 0x40
00001306: MLOAD
00001307: DUP1
00001308: SWAP2
00001309: SUB
0000130a: SWAP1
0000130b: REVERT
0000130c: JUMPDEST
0000130d: PUSH1 0x07
0000130f: SLOAD
00001310: PUSH1 0xff
00001312: AND
00001313: ISZERO
00001314: PUSH2 0x1330
00001317: JUMPI
00001318: PUSH1 0x40
0000131a: MLOAD
0000131b: PUSH4 0x056f633d
00001320: PUSH1 0xe2
00001322: SHL
00001323: DUP2
00001324: MSTORE
00001325: PUSH1 0x04
00001327: ADD
00001328: PUSH1 0x40
0000132a: MLOAD
0000132b: DUP1
0000132c: SWAP2
0000132d: SUB
0000132e: SWAP1
0000132f: REVERT
00001330: JUMPDEST
00001331: PUSH1 0x08
00001333: SLOAD
00001334: PUSH1 0x02
00001336: GT
00001337: ISZERO
00001338: PUSH2 0x1354
0000133b: JUMPI
0000133c: PUSH1 0x40
0000133e: MLOAD
0000133f: PUSH4 0xaf785ec5
00001344: PUSH1 0xe0
00001346: SHL
00001347: DUP2
00001348: MSTORE
00001349: PUSH1 0x04
0000134b: ADD
0000134c: PUSH1 0x40
0000134e: MLOAD
0000134f: DUP1
00001350: SWAP2
00001351: SUB
00001352: SWAP1
00001353: REVERT
00001354: JUMPDEST
00001355: PUSH1 0x07
00001357: DUP1
00001358: SLOAD
00001359: PUSH1 0xff
0000135b: NOT
0000135c: AND
0000135d: PUSH1 0x01
0000135f: OR
00001360: SWAP1
00001361: SSTORE
00001362: PUSH2 0x137c
00001365: PUSH2 0x1377
00001368: PUSH8 0x0de0b6b3a7640000
00001371: PUSH1 0x64
00001373: PUSH2 0x3d1c
00001376: JUMP
00001377: JUMPDEST
00001378: PUSH2 0x2df2
0000137b: JUMP
0000137c: JUMPDEST
0000137d: PUSH2 0x1398
00001380: CALLER
00001381: PUSH2 0x1393
00001384: PUSH8 0x0de0b6b3a7640000
0000138d: PUSH1 0x64
0000138f: PUSH2 0x3d1c
00001392: JUMP
00001393: JUMPDEST
00001394: PUSH2 0x2dfc
00001397: JUMP
00001398: JUMPDEST
00001399: PUSH2 0x13a0
0000139c: PUSH2 0x2e0a
0000139f: JUMP
000013a0: JUMPDEST
000013a1: PUSH2 0x13a9
000013a4: PUSH0
000013a5: PUSH2 0x2ddf
000013a8: JUMP
000013a9: JUMPDEST
000013aa: JUMP
000013ab: JUMPDEST
000013ac: CALLER
000013ad: PUSH1 0x01
000013af: PUSH1 0x01
000013b1: PUSH1 0xa0
000013b3: SHL
000013b4: SUB
000013b5: AND
000013b6: PUSH0
000013b7: CALLDATALOAD
000013b8: PUSH1 0x01
000013ba: PUSH1 0x01
000013bc: PUSH1 0xe0
000013be: SHL
000013bf: SUB
000013c0: NOT
000013c1: AND
000013c2: PUSH1 0x01
000013c4: PUSH1 0x01
000013c6: PUSH1 0xe0
000013c8: SHL
000013c9: SUB
000013ca: NOT
000013cb: AND
000013cc: PUSH0
000013cd: CALLDATASIZE
000013ce: PUSH1 0x40
000013d0: MLOAD
000013d1: PUSH2 0x13db
000013d4: SWAP3
000013d5: SWAP2
000013d6: SWAP1
000013d7: PUSH2 0x3e6d
000013da: JUMP
000013db: JUMPDEST
000013dc: PUSH1 0x40
000013de: MLOAD
000013df: DUP1
000013e0: SWAP2
000013e1: SUB
000013e2: SWAP1
000013e3: LOG2
000013e4: PUSH0
000013e5: DUP1
000013e6: MLOAD
000013e7: PUSH1 0x20
000013e9: PUSH2 0x3f08
000013ec: DUP4
000013ed: CODECOPY
000013ee: DUP2
000013ef: MLOAD
000013f0: SWAP2
000013f1: MSTORE
000013f2: TLOAD
000013f3: ISZERO
000013f4: PUSH2 0x1410
000013f7: JUMPI
000013f8: PUSH1 0x40
000013fa: MLOAD
000013fb: PUSH4 0xd56a08b5
00001400: PUSH1 0xe0
00001402: SHL
00001403: DUP2
00001404: MSTORE
00001405: PUSH1 0x04
00001407: ADD
00001408: PUSH1 0x40
0000140a: MLOAD
0000140b: DUP1
0000140c: SWAP2
0000140d: SUB
0000140e: SWAP1
0000140f: REVERT
00001410: JUMPDEST
00001411: PUSH2 0x141a
00001414: PUSH1 0x01
00001416: PUSH2 0x2ddf
00001419: JUMP
0000141a: JUMPDEST
0000141b: PUSH1 0x07
0000141d: SLOAD
0000141e: PUSH1 0xff
00001420: AND
00001421: PUSH2 0x143d
00001424: JUMPI
00001425: PUSH1 0x40
00001427: MLOAD
00001428: PUSH4 0x2e41ba2d
0000142d: PUSH1 0xe0
0000142f: SHL
00001430: DUP2
00001431: MSTORE
00001432: PUSH1 0x04
00001434: ADD
00001435: PUSH1 0x40
00001437: MLOAD
00001438: DUP1
00001439: SWAP2
0000143a: SUB
0000143b: SWAP1
0000143c: REVERT
0000143d: JUMPDEST
0000143e: PUSH0
0000143f: PUSH2 0x1447
00001442: PUSH1 0x02
00001444: SLOAD
00001445: SWAP1
00001446: JUMP
00001447: JUMPDEST
00001448: SWAP1
00001449: POP
0000144a: PUSH0
0000144b: PUSH2 0x1454
0000144e: DUP6
0000144f: DUP4
00001450: PUSH2 0x2f0e
00001453: JUMP
00001454: JUMPDEST
00001455: SWAP1
00001456: POP
00001457: DUP1
00001458: PUSH0
00001459: SUB
0000145a: PUSH2 0x1476
0000145d: JUMPI
0000145e: PUSH1 0x40
00001460: MLOAD
00001461: PUSH4 0x0c499f47
00001466: PUSH1 0xe0
00001468: SHL
00001469: DUP2
0000146a: MSTORE
0000146b: PUSH1 0x04
0000146d: ADD
0000146e: PUSH1 0x40
00001470: MLOAD
00001471: DUP1
00001472: SWAP2
00001473: SUB
00001474: SWAP1
00001475: REVERT
00001476: JUMPDEST
00001477: PUSH1 0x08
00001479: SLOAD
0000147a: PUSH0
0000147b: JUMPDEST
0000147c: DUP2
0000147d: DUP2
0000147e: LT
0000147f: ISZERO
00001480: PUSH2 0x15c9
00001483: JUMPI
00001484: PUSH0
00001485: PUSH1 0x08
00001487: DUP3
00001488: DUP2
00001489: SLOAD
0000148a: DUP2
0000148b: LT
0000148c: PUSH2 0x1497
0000148f: JUMPI
00001490: PUSH2 0x1497
00001493: PUSH2 0x3eae
00001496: JUMP
00001497: JUMPDEST
00001498: PUSH0
00001499: SWAP2
0000149a: DUP3
0000149b: MSTORE
0000149c: PUSH1 0x20
0000149e: DUP3
0000149f: KECCAK256
000014a0: ADD
000014a1: SLOAD
000014a2: PUSH1 0x40
000014a4: MLOAD
000014a5: PUSH4 0x70a08231
000014aa: PUSH1 0xe0
000014ac: SHL
000014ad: DUP2
000014ae: MSTORE
000014af: ADDRESS
000014b0: PUSH1 0x04
000014b2: DUP3
000014b3: ADD
000014b4: MSTORE
000014b5: PUSH1 0x01
000014b7: PUSH1 0x01
000014b9: PUSH1 0xa0
000014bb: SHL
000014bc: SUB
000014bd: SWAP1
000014be: SWAP2
000014bf: AND
000014c0: SWAP3
000014c1: POP
000014c2: DUP3
000014c3: SWAP1
000014c4: PUSH4 0x70a08231
000014c9: SWAP1
000014ca: PUSH1 0x24
000014cc: ADD
000014cd: PUSH1 0x20
000014cf: PUSH1 0x40
000014d1: MLOAD
000014d2: DUP1
000014d3: DUP4
000014d4: SUB
000014d5: DUP2
000014d6: DUP7
000014d7: GAS
000014d8: STATICCALL
000014d9: ISZERO
000014da: DUP1
000014db: ISZERO
000014dc: PUSH2 0x14e7
000014df: JUMPI
000014e0: RETURNDATASIZE
000014e1: PUSH0
000014e2: DUP1
000014e3: RETURNDATACOPY
000014e4: RETURNDATASIZE
000014e5: PUSH0
000014e6: REVERT
000014e7: JUMPDEST
000014e8: POP
000014e9: POP
000014ea: POP
000014eb: POP
000014ec: PUSH1 0x40
000014ee: MLOAD
000014ef: RETURNDATASIZE
000014f0: PUSH1 0x1f
000014f2: NOT
000014f3: PUSH1 0x1f
000014f5: DUP3
000014f6: ADD
000014f7: AND
000014f8: DUP3
000014f9: ADD
000014fa: DUP1
000014fb: PUSH1 0x40
000014fd: MSTORE
000014fe: POP
000014ff: DUP2
00001500: ADD
00001501: SWAP1
00001502: PUSH2 0x150b
00001505: SWAP2
00001506: SWAP1
00001507: PUSH2 0x3d33
0000150a: JUMP
0000150b: JUMPDEST
0000150c: SWAP1
0000150d: POP
0000150e: PUSH0
0000150f: PUSH2 0x1518
00001512: DUP7
00001513: DUP4
00001514: PUSH2 0x2d5c
00001517: JUMP
00001518: JUMPDEST
00001519: SWAP1
0000151a: POP
0000151b: DUP1
0000151c: PUSH0
0000151d: SUB
0000151e: PUSH2 0x153a
00001521: JUMPI
00001522: PUSH1 0x40
00001524: MLOAD
00001525: PUSH4 0x5b00df69
0000152a: PUSH1 0xe1
0000152c: SHL
0000152d: DUP2
0000152e: MSTORE
0000152f: PUSH1 0x04
00001531: ADD
00001532: PUSH1 0x40
00001534: MLOAD
00001535: DUP1
00001536: SWAP2
00001537: SUB
00001538: SWAP1
00001539: REVERT
0000153a: JUMPDEST
0000153b: DUP9
0000153c: DUP9
0000153d: DUP6
0000153e: DUP2
0000153f: DUP2
00001540: LT
00001541: PUSH2 0x154c
00001544: JUMPI
00001545: PUSH2 0x154c
00001548: PUSH2 0x3eae
0000154b: JUMP
0000154c: JUMPDEST
0000154d: SWAP1
0000154e: POP
0000154f: PUSH1 0x20
00001551: MUL
00001552: ADD
00001553: CALLDATALOAD
00001554: DUP2
00001555: GT
00001556: ISZERO
00001557: PUSH2 0x1573
0000155a: JUMPI
0000155b: PUSH1 0x40
0000155d: MLOAD
0000155e: PUSH4 0x0451d9ed
00001563: PUSH1 0xe3
00001565: SHL
00001566: DUP2
00001567: MSTORE
00001568: PUSH1 0x04
0000156a: ADD
0000156b: PUSH1 0x40
0000156d: MLOAD
0000156e: DUP1
0000156f: SWAP2
00001570: SUB
00001571: SWAP1
00001572: REVERT
00001573: JUMPDEST
00001574: PUSH1 0x40
00001576: MLOAD
00001577: DUP2
00001578: DUP2
00001579: MSTORE
0000157a: PUSH1 0x01
0000157c: PUSH1 0x01
0000157e: PUSH1 0xa0
00001580: SHL
00001581: SUB
00001582: DUP5
00001583: AND
00001584: SWAP1
00001585: CALLER
00001586: SWAP1
00001587: PUSH32 0x63982df10efd8dfaaaa0fcc7f50b2d93b7cba26ccc48adee2873220d485dc39a
000015a8: SWAP1
000015a9: PUSH1 0x20
000015ab: ADD
000015ac: PUSH1 0x40
000015ae: MLOAD
000015af: DUP1
000015b0: SWAP2
000015b1: SUB
000015b2: SWAP1
000015b3: LOG3
000015b4: PUSH2 0x15be
000015b7: DUP4
000015b8: CALLER
000015b9: DUP4
000015ba: PUSH2 0x2fb6
000015bd: JUMP
000015be: JUMPDEST
000015bf: POP
000015c0: POP
000015c1: POP
000015c2: PUSH1 0x01
000015c4: ADD
000015c5: PUSH2 0x147b
000015c8: JUMP
000015c9: JUMPDEST
000015ca: POP
000015cb: PUSH2 0x15d3
000015ce: DUP7
000015cf: PUSH2 0x2df2
000015d2: JUMP
000015d3: JUMPDEST
000015d4: PUSH2 0x15dd
000015d7: CALLER
000015d8: DUP8
000015d9: PUSH2 0x2dfc
000015dc: JUMP
000015dd: JUMPDEST
000015de: POP
000015df: POP
000015e0: POP
000015e1: PUSH2 0x15eb
000015e4: PUSH0
000015e5: DUP1
000015e6: SHL
000015e7: PUSH2 0x2ddf
000015ea: JUMP
000015eb: JUMPDEST
000015ec: POP
000015ed: POP
000015ee: POP
000015ef: JUMP
000015f0: JUMPDEST
000015f1: CALLER
000015f2: PUSH0
000015f3: SWAP1
000015f4: DUP2
000015f5: MSTORE
000015f6: PUSH1 0x01
000015f8: PUSH1 0x20
000015fa: SWAP1
000015fb: DUP2
000015fc: MSTORE
000015fd: PUSH1 0x40
000015ff: DUP1
00001600: DUP4
00001601: KECCAK256
00001602: PUSH1 0x01
00001604: PUSH1 0x01
00001606: PUSH1 0xa0
00001608: SHL
00001609: SUB
0000160a: DUP7
0000160b: AND
0000160c: DUP5
0000160d: MSTORE
0000160e: SWAP1
0000160f: SWAP2
00001610: MSTORE
00001611: DUP2
00001612: KECCAK256
00001613: SLOAD
00001614: DUP1
00001615: DUP4
00001616: GT
00001617: ISZERO
00001618: PUSH2 0x162b
0000161b: JUMPI
0000161c: PUSH2 0x1626
0000161f: CALLER
00001620: DUP6
00001621: PUSH0
00001622: PUSH2 0x2c72
00001625: JUMP
00001626: JUMPDEST
00001627: PUSH2 0x08e3
0000162a: JUMP
0000162b: JUMPDEST
0000162c: PUSH2 0x08e3
0000162f: CALLER
00001630: DUP6
00001631: PUSH2 0x163a
00001634: DUP7
00001635: DUP6
00001636: PUSH2 0x3e9b
00001639: JUMP
0000163a: JUMPDEST
0000163b: PUSH2 0x2c72
0000163e: JUMP
0000163f: JUMPDEST
00001640: PUSH2 0x0902
00001643: PUSH3 0x0f4240
00001647: PUSH8 0x0de0b6b3a7640000
00001650: PUSH2 0x3e3b
00001653: JUMP
00001654: JUMPDEST
00001655: PUSH1 0x40
00001657: MLOAD
00001658: PUSH0
00001659: SWAP1
0000165a: DUP2
0000165b: SWAP1
0000165c: CALLER
0000165d: SWAP1
0000165e: PUSH1 0x01
00001660: PUSH1 0x01
00001662: PUSH1 0xe0
00001664: SHL
00001665: SUB
00001666: NOT
00001667: DUP4
00001668: CALLDATALOAD
00001669: AND
0000166a: SWAP1
0000166b: PUSH2 0x1677
0000166e: SWAP1
0000166f: DUP5
00001670: SWAP1
00001671: CALLDATASIZE
00001672: SWAP1
00001673: PUSH2 0x3e6d
00001676: JUMP
00001677: JUMPDEST
00001678: PUSH1 0x40
0000167a: MLOAD
0000167b: DUP1
0000167c: SWAP2
0000167d: SUB
0000167e: SWAP1
0000167f: LOG2
00001680: PUSH0
00001681: DUP1
00001682: MLOAD
00001683: PUSH1 0x20
00001685: PUSH2 0x3f08
00001688: DUP4
00001689: CODECOPY
0000168a: DUP2
0000168b: MLOAD
0000168c: SWAP2
0000168d: MSTORE
0000168e: TLOAD
0000168f: ISZERO
00001690: PUSH2 0x16ac
00001693: JUMPI
00001694: PUSH1 0x40
00001696: MLOAD
00001697: PUSH4 0xd56a08b5
0000169c: PUSH1 0xe0
0000169e: SHL
0000169f: DUP2
000016a0: MSTORE
000016a1: PUSH1 0x04
000016a3: ADD
000016a4: PUSH1 0x40
000016a6: MLOAD
000016a7: DUP1
000016a8: SWAP2
000016a9: SUB
000016aa: SWAP1
000016ab: REVERT
000016ac: JUMPDEST
000016ad: PUSH2 0x16b6
000016b0: PUSH1 0x01
000016b2: PUSH2 0x2ddf
000016b5: JUMP
000016b6: JUMPDEST
000016b7: PUSH1 0x07
000016b9: SLOAD
000016ba: PUSH1 0xff
000016bc: AND
000016bd: PUSH2 0x16d9
000016c0: JUMPI
000016c1: PUSH1 0x40
000016c3: MLOAD
000016c4: PUSH4 0x2e41ba2d
000016c9: PUSH1 0xe0
000016cb: SHL
000016cc: DUP2
000016cd: MSTORE
000016ce: PUSH1 0x04
000016d0: ADD
000016d1: PUSH1 0x40
000016d3: MLOAD
000016d4: DUP1
000016d5: SWAP2
000016d6: SUB
000016d7: SWAP1
000016d8: REVERT
000016d9: JUMPDEST
000016da: PUSH1 0x01
000016dc: PUSH1 0x01
000016de: PUSH1 0xa0
000016e0: SHL
000016e1: SUB
000016e2: DUP8
000016e3: AND
000016e4: PUSH0
000016e5: SWAP1
000016e6: DUP2
000016e7: MSTORE
000016e8: PUSH1 0x09
000016ea: PUSH1 0x20
000016ec: MSTORE
000016ed: PUSH1 0x40
000016ef: SWAP1
000016f0: KECCAK256
000016f1: SLOAD
000016f2: PUSH1 0xff
000016f4: AND
000016f5: PUSH2 0x1711
000016f8: JUMPI
000016f9: PUSH1 0x40
000016fb: MLOAD
000016fc: PUSH4 0x4b16fc2d
00001701: PUSH1 0xe1
00001703: SHL
00001704: DUP2
00001705: MSTORE
00001706: PUSH1 0x04
00001708: ADD
00001709: PUSH1 0x40
0000170b: MLOAD
0000170c: DUP1
0000170d: SWAP2
0000170e: SUB
0000170f: SWAP1
00001710: REVERT
00001711: JUMPDEST
00001712: PUSH1 0x01
00001714: PUSH1 0x01
00001716: PUSH1 0xa0
00001718: SHL
00001719: SUB
0000171a: DUP6
0000171b: AND
0000171c: PUSH0
0000171d: SWAP1
0000171e: DUP2
0000171f: MSTORE
00001720: PUSH1 0x09
00001722: PUSH1 0x20
00001724: MSTORE
00001725: PUSH1 0x40
00001727: SWAP1
00001728: KECCAK256
00001729: SLOAD
0000172a: PUSH1 0xff
0000172c: AND
0000172d: PUSH2 0x1749
00001730: JUMPI
00001731: PUSH1 0x40
00001733: MLOAD
00001734: PUSH4 0x4b16fc2d
00001739: PUSH1 0xe1
0000173b: SHL
0000173c: DUP2
0000173d: MSTORE
0000173e: PUSH1 0x04
00001740: ADD
00001741: PUSH1 0x40
00001743: MLOAD
00001744: DUP1
00001745: SWAP2
00001746: SUB
00001747: SWAP1
00001748: REVERT
00001749: JUMPDEST
0000174a: PUSH1 0x01
0000174c: PUSH1 0x01
0000174e: PUSH1 0xa0
00001750: SHL
00001751: SUB
00001752: DUP8
00001753: DUP2
00001754: AND
00001755: PUSH0
00001756: DUP2
00001757: DUP2
00001758: MSTORE
00001759: PUSH1 0x09
0000175b: PUSH1 0x20
0000175d: MSTORE
0000175e: PUSH1 0x40
00001760: DUP1
00001761: DUP3
00001762: KECCAK256
00001763: SWAP4
00001764: DUP10
00001765: AND
00001766: DUP3
00001767: MSTORE
00001768: DUP1
00001769: DUP3
0000176a: KECCAK256
0000176b: SWAP1
0000176c: MLOAD
0000176d: PUSH4 0x70a08231
00001772: PUSH1 0xe0
00001774: SHL
00001775: DUP2
00001776: MSTORE
00001777: ADDRESS
00001778: PUSH1 0x04
0000177a: DUP3
0000177b: ADD
0000177c: MSTORE
0000177d: SWAP1
0000177e: SWAP3
0000177f: SWAP1
00001780: PUSH4 0x70a08231
00001785: SWAP1
00001786: PUSH1 0x24
00001788: ADD
00001789: PUSH1 0x20
0000178b: PUSH1 0x40
0000178d: MLOAD
0000178e: DUP1
0000178f: DUP4
00001790: SUB
00001791: DUP2
00001792: DUP7
00001793: GAS
00001794: STATICCALL
00001795: ISZERO
00001796: DUP1
00001797: ISZERO
00001798: PUSH2 0x17a3
0000179b: JUMPI
0000179c: RETURNDATASIZE
0000179d: PUSH0
0000179e: DUP1
0000179f: RETURNDATACOPY
000017a0: RETURNDATASIZE
000017a1: PUSH0
000017a2: REVERT
000017a3: JUMPDEST
000017a4: POP
000017a5: POP
000017a6: POP
000017a7: POP
000017a8: PUSH1 0x40
000017aa: MLOAD
000017ab: RETURNDATASIZE
000017ac: PUSH1 0x1f
000017ae: NOT
000017af: PUSH1 0x1f
000017b1: DUP3
000017b2: ADD
000017b3: AND
000017b4: DUP3
000017b5: ADD
000017b6: DUP1
000017b7: PUSH1 0x40
000017b9: MSTORE
000017ba: POP
000017bb: DUP2
000017bc: ADD
000017bd: SWAP1
000017be: PUSH2 0x17c7
000017c1: SWAP2
000017c2: SWAP1
000017c3: PUSH2 0x3d33
000017c6: JUMP
000017c7: JUMPDEST
000017c8: PUSH1 0x40
000017ca: MLOAD
000017cb: PUSH4 0x70a08231
000017d0: PUSH1 0xe0
000017d2: SHL
000017d3: DUP2
000017d4: MSTORE
000017d5: ADDRESS
000017d6: PUSH1 0x04
000017d8: DUP3
000017d9: ADD
000017da: MSTORE
000017db: SWAP1
000017dc: SWAP2
000017dd: POP
000017de: PUSH0
000017df: SWAP1
000017e0: PUSH1 0x01
000017e2: PUSH1 0x01
000017e4: PUSH1 0xa0
000017e6: SHL
000017e7: SUB
000017e8: DUP11
000017e9: AND
000017ea: SWAP1
000017eb: PUSH4 0x70a08231
000017f0: SWAP1
000017f1: PUSH1 0x24
000017f3: ADD
000017f4: PUSH1 0x20
000017f6: PUSH1 0x40
000017f8: MLOAD
000017f9: DUP1
000017fa: DUP4
000017fb: SUB
000017fc: DUP2
000017fd: DUP7
000017fe: GAS
000017ff: STATICCALL
00001800: ISZERO
00001801: DUP1
00001802: ISZERO
00001803: PUSH2 0x180e
00001806: JUMPI
00001807: RETURNDATASIZE
00001808: PUSH0
00001809: DUP1
0000180a: RETURNDATACOPY
0000180b: RETURNDATASIZE
0000180c: PUSH0
0000180d: REVERT
0000180e: JUMPDEST
0000180f: POP
00001810: POP
00001811: POP
00001812: POP
00001813: PUSH1 0x40
00001815: MLOAD
00001816: RETURNDATASIZE
00001817: PUSH1 0x1f
00001819: NOT
0000181a: PUSH1 0x1f
0000181c: DUP3
0000181d: ADD
0000181e: AND
0000181f: DUP3
00001820: ADD
00001821: DUP1
00001822: PUSH1 0x40
00001824: MSTORE
00001825: POP
00001826: DUP2
00001827: ADD
00001828: SWAP1
00001829: PUSH2 0x1832
0000182c: SWAP2
0000182d: SWAP1
0000182e: PUSH2 0x3d33
00001831: JUMP
00001832: JUMPDEST
00001833: SWAP1
00001834: POP
00001835: PUSH2 0x185b
00001838: DUP2
00001839: PUSH2 0x184b
0000183c: PUSH1 0x03
0000183e: PUSH8 0x0de0b6b3a7640000
00001847: PUSH2 0x3e3b
0000184a: JUMP
0000184b: JUMPDEST
0000184c: PUSH2 0x1856
0000184f: SWAP1
00001850: PUSH1 0x01
00001852: PUSH2 0x3e5a
00001855: JUMP
00001856: JUMPDEST
00001857: PUSH2 0x2d5c
0000185a: JUMP
0000185b: JUMPDEST
0000185c: DUP9
0000185d: GT
0000185e: ISZERO
0000185f: PUSH2 0x187b
00001862: JUMPI
00001863: PUSH1 0x40
00001865: MLOAD
00001866: PUSH4 0xdad25d85
0000186b: PUSH1 0xe0
0000186d: SHL
0000186e: DUP2
0000186f: MSTORE
00001870: PUSH1 0x04
00001872: ADD
00001873: PUSH1 0x40
00001875: MLOAD
00001876: DUP1
00001877: SWAP2
00001878: SUB
00001879: SWAP1
0000187a: REVERT
0000187b: JUMPDEST
0000187c: PUSH0
0000187d: PUSH2 0x1893
00001880: DUP4
00001881: DUP7
00001882: PUSH1 0x02
00001884: ADD
00001885: SLOAD
00001886: DUP5
00001887: DUP8
00001888: PUSH1 0x02
0000188a: ADD
0000188b: SLOAD
0000188c: PUSH1 0x06
0000188e: SLOAD
0000188f: PUSH2 0x1f88
00001892: JUMP
00001893: JUMPDEST
00001894: SWAP1
00001895: POP
00001896: DUP8
00001897: DUP2
00001898: GT
00001899: ISZERO
0000189a: PUSH2 0x18b6
0000189d: JUMPI
0000189e: PUSH1 0x40
000018a0: MLOAD
000018a1: PUSH4 0x823a9c37
000018a6: PUSH1 0xe0
000018a8: SHL
000018a9: DUP2
000018aa: MSTORE
000018ab: PUSH1 0x04
000018ad: ADD
000018ae: PUSH1 0x40
000018b0: MLOAD
000018b1: DUP1
000018b2: SWAP2
000018b3: SUB
000018b4: SWAP1
000018b5: REVERT
000018b6: JUMPDEST
000018b7: PUSH2 0x18ce
000018ba: DUP4
000018bb: DUP7
000018bc: PUSH1 0x02
000018be: ADD
000018bf: SLOAD
000018c0: DUP5
000018c1: DUP8
000018c2: PUSH1 0x02
000018c4: ADD
000018c5: SLOAD
000018c6: DUP14
000018c7: PUSH1 0x06
000018c9: SLOAD
000018ca: PUSH2 0x2bf3
000018cd: JUMP
000018ce: JUMPDEST
000018cf: SWAP7
000018d0: POP
000018d1: DUP11
000018d2: DUP8
000018d3: GT
000018d4: ISZERO
000018d5: PUSH2 0x18f1
000018d8: JUMPI
000018d9: PUSH1 0x40
000018db: MLOAD
000018dc: PUSH4 0x0451d9ed
000018e1: PUSH1 0xe3
000018e3: SHL
000018e4: DUP2
000018e5: MSTORE
000018e6: PUSH1 0x04
000018e8: ADD
000018e9: PUSH1 0x40
000018eb: MLOAD
000018ec: DUP1
000018ed: SWAP2
000018ee: SUB
000018ef: SWAP1
000018f0: REVERT
000018f1: JUMPDEST
000018f2: PUSH2 0x18fb
000018f5: DUP4
000018f6: DUP9
000018f7: PUSH2 0x2fcb
000018fa: JUMP
000018fb: JUMPDEST
000018fc: SWAP3
000018fd: POP
000018fe: PUSH2 0x1907
00001901: DUP3
00001902: DUP11
00001903: PUSH2 0x2ff0
00001906: JUMP
00001907: JUMPDEST
00001908: SWAP2
00001909: POP
0000190a: PUSH2 0x1920
0000190d: DUP4
0000190e: DUP7
0000190f: PUSH1 0x02
00001911: ADD
00001912: SLOAD
00001913: DUP5
00001914: DUP8
00001915: PUSH1 0x02
00001917: ADD
00001918: SLOAD
00001919: PUSH1 0x06
0000191b: SLOAD
0000191c: PUSH2 0x1f88
0000191f: JUMP
00001920: JUMPDEST
00001921: SWAP6
00001922: POP
00001923: DUP1
00001924: DUP7
00001925: LT
00001926: ISZERO
00001927: PUSH2 0x1943
0000192a: JUMPI
0000192b: PUSH1 0x40
0000192d: MLOAD
0000192e: PUSH4 0x62123023
00001933: PUSH1 0xe0
00001935: SHL
00001936: DUP2
00001937: MSTORE
00001938: PUSH1 0x04
0000193a: ADD
0000193b: PUSH1 0x40
0000193d: MLOAD
0000193e: DUP1
0000193f: SWAP2
00001940: SUB
00001941: SWAP1
00001942: REVERT
00001943: JUMPDEST
00001944: DUP8
00001945: DUP7
00001946: GT
00001947: ISZERO
00001948: PUSH2 0x1964
0000194b: JUMPI
0000194c: PUSH1 0x40
0000194e: MLOAD
0000194f: PUSH4 0x823a9c37
00001954: PUSH1 0xe0
00001956: SHL
00001957: DUP2
00001958: MSTORE
00001959: PUSH1 0x04
0000195b: ADD
0000195c: PUSH1 0x40
0000195e: MLOAD
0000195f: DUP1
00001960: SWAP2
00001961: SUB
00001962: SWAP1
00001963: REVERT
00001964: JUMPDEST
00001965: PUSH2 0x196e
00001968: DUP8
00001969: DUP11
0000196a: PUSH2 0x2f0e
0000196d: JUMP
0000196e: JUMPDEST
0000196f: DUP2
00001970: GT
00001971: ISZERO
00001972: PUSH2 0x198e
00001975: JUMPI
00001976: PUSH1 0x40
00001978: MLOAD
00001979: PUSH4 0x37fb98f9
0000197e: PUSH1 0xe1
00001980: SHL
00001981: DUP2
00001982: MSTORE
00001983: PUSH1 0x04
00001985: ADD
00001986: PUSH1 0x40
00001988: MLOAD
00001989: DUP1
0000198a: SWAP2
0000198b: SUB
0000198c: SWAP1
0000198d: REVERT
0000198e: JUMPDEST
0000198f: PUSH1 0x40
00001991: DUP1
00001992: MLOAD
00001993: DUP9
00001994: DUP2
00001995: MSTORE
00001996: PUSH1 0x20
00001998: DUP2
00001999: ADD
0000199a: DUP12
0000199b: SWAP1
0000199c: MSTORE
0000199d: PUSH1 0x01
0000199f: PUSH1 0x01
000019a1: PUSH1 0xa0
000019a3: SHL
000019a4: SUB
000019a5: DUP1
000019a6: DUP14
000019a7: AND
000019a8: SWAP3
000019a9: SWAP1
000019aa: DUP16
000019ab: AND
000019ac: SWAP2
000019ad: CALLER
000019ae: SWAP2
000019af: PUSH32 0x908fb5ee8f16c6bc9bc3690973819f32a4d4b10188134543c88706e0e1d43378
000019d0: SWAP2
000019d1: ADD
000019d2: PUSH1 0x40
000019d4: MLOAD
000019d5: DUP1
000019d6: SWAP2
000019d7: SUB
000019d8: SWAP1
000019d9: LOG4
000019da: PUSH2 0x19e4
000019dd: DUP13
000019de: CALLER
000019df: DUP10
000019e0: PUSH2 0x2fb6
000019e3: JUMP
000019e4: JUMPDEST
000019e5: PUSH2 0x19ef
000019e8: DUP11
000019e9: CALLER
000019ea: DUP12
000019eb: PUSH2 0x3028
000019ee: JUMP
000019ef: JUMPDEST
000019f0: POP
000019f1: POP
000019f2: POP
000019f3: POP
000019f4: POP
000019f5: PUSH2 0x19ff
000019f8: PUSH0
000019f9: DUP1
000019fa: SHL
000019fb: PUSH2 0x2ddf
000019fe: JUMP
000019ff: JUMPDEST
00001a00: SWAP6
00001a01: POP
00001a02: SWAP6
00001a03: SWAP4
00001a04: POP
00001a05: POP
00001a06: POP
00001a07: POP
00001a08: JUMP
00001a09: JUMPDEST
00001a0a: PUSH1 0x40
00001a0c: MLOAD
00001a0d: PUSH0
00001a0e: SWAP1
00001a0f: DUP2
00001a10: SWAP1
00001a11: CALLER
00001a12: SWAP1
00001a13: PUSH1 0x01
00001a15: PUSH1 0x01
00001a17: PUSH1 0xe0
00001a19: SHL
00001a1a: SUB
00001a1b: NOT
00001a1c: DUP4
00001a1d: CALLDATALOAD
00001a1e: AND
00001a1f: SWAP1
00001a20: PUSH2 0x1a2c
00001a23: SWAP1
00001a24: DUP5
00001a25: SWAP1
00001a26: CALLDATASIZE
00001a27: SWAP1
00001a28: PUSH2 0x3e6d
00001a2b: JUMP
00001a2c: JUMPDEST
00001a2d: PUSH1 0x40
00001a2f: MLOAD
00001a30: DUP1
00001a31: SWAP2
00001a32: SUB
00001a33: SWAP1
00001a34: LOG2
00001a35: PUSH0
00001a36: DUP1
00001a37: MLOAD
00001a38: PUSH1 0x20
00001a3a: PUSH2 0x3f08
00001a3d: DUP4
00001a3e: CODECOPY
00001a3f: DUP2
00001a40: MLOAD
00001a41: SWAP2
00001a42: MSTORE
00001a43: TLOAD
00001a44: ISZERO
00001a45: PUSH2 0x1a61
00001a48: JUMPI
00001a49: PUSH1 0x40
00001a4b: MLOAD
00001a4c: PUSH4 0xd56a08b5
00001a51: PUSH1 0xe0
00001a53: SHL
00001a54: DUP2
00001a55: MSTORE
00001a56: PUSH1 0x04
00001a58: ADD
00001a59: PUSH1 0x40
00001a5b: MLOAD
00001a5c: DUP1
00001a5d: SWAP2
00001a5e: SUB
00001a5f: SWAP1
00001a60: REVERT
00001a61: JUMPDEST
00001a62: PUSH2 0x1a6b
00001a65: PUSH1 0x01
00001a67: PUSH2 0x2ddf
00001a6a: JUMP
00001a6b: JUMPDEST
00001a6c: PUSH1 0x07
00001a6e: SLOAD
00001a6f: PUSH1 0xff
00001a71: AND
00001a72: PUSH2 0x1a8e
00001a75: JUMPI
00001a76: PUSH1 0x40
00001a78: MLOAD
00001a79: PUSH4 0x2e41ba2d
00001a7e: PUSH1 0xe0
00001a80: SHL
00001a81: DUP2
00001a82: MSTORE
00001a83: PUSH1 0x04
00001a85: ADD
00001a86: PUSH1 0x40
00001a88: MLOAD
00001a89: DUP1
00001a8a: SWAP2
00001a8b: SUB
00001a8c: SWAP1
00001a8d: REVERT
00001a8e: JUMPDEST
00001a8f: PUSH1 0x01
00001a91: PUSH1 0x01
00001a93: PUSH1 0xa0
00001a95: SHL
00001a96: SUB
00001a97: DUP8
00001a98: AND
00001a99: PUSH0
00001a9a: SWAP1
00001a9b: DUP2
00001a9c: MSTORE
00001a9d: PUSH1 0x09
00001a9f: PUSH1 0x20
00001aa1: MSTORE
00001aa2: PUSH1 0x40
00001aa4: SWAP1
00001aa5: KECCAK256
00001aa6: SLOAD
00001aa7: PUSH1 0xff
00001aa9: AND
00001aaa: PUSH2 0x1ac6
00001aad: JUMPI
00001aae: PUSH1 0x40
00001ab0: MLOAD
00001ab1: PUSH4 0x4b16fc2d
00001ab6: PUSH1 0xe1
00001ab8: SHL
00001ab9: DUP2
00001aba: MSTORE
00001abb: PUSH1 0x04
00001abd: ADD
00001abe: PUSH1 0x40
00001ac0: MLOAD
00001ac1: DUP1
00001ac2: SWAP2
00001ac3: SUB
00001ac4: SWAP1
00001ac5: REVERT
00001ac6: JUMPDEST
00001ac7: PUSH1 0x01
00001ac9: PUSH1 0x01
00001acb: PUSH1 0xa0
00001acd: SHL
00001ace: SUB
00001acf: DUP6
00001ad0: AND
00001ad1: PUSH0
00001ad2: SWAP1
00001ad3: DUP2
00001ad4: MSTORE
00001ad5: PUSH1 0x09
00001ad7: PUSH1 0x20
00001ad9: MSTORE
00001ada: PUSH1 0x40
00001adc: SWAP1
00001add: KECCAK256
00001ade: SLOAD
00001adf: PUSH1 0xff
00001ae1: AND
00001ae2: PUSH2 0x1afe
00001ae5: JUMPI
00001ae6: PUSH1 0x40
00001ae8: MLOAD
00001ae9: PUSH4 0x4b16fc2d
00001aee: PUSH1 0xe1
00001af0: SHL
00001af1: DUP2
00001af2: MSTORE
00001af3: PUSH1 0x04
00001af5: ADD
00001af6: PUSH1 0x40
00001af8: MLOAD
00001af9: DUP1
00001afa: SWAP2
00001afb: SUB
00001afc: SWAP1
00001afd: REVERT
00001afe: JUMPDEST
00001aff: PUSH1 0x01
00001b01: PUSH1 0x01
00001b03: PUSH1 0xa0
00001b05: SHL
00001b06: SUB
00001b07: DUP8
00001b08: DUP2
00001b09: AND
00001b0a: PUSH0
00001b0b: DUP2
00001b0c: DUP2
00001b0d: MSTORE
00001b0e: PUSH1 0x09
00001b10: PUSH1 0x20
00001b12: MSTORE
00001b13: PUSH1 0x40
00001b15: DUP1
00001b16: DUP3
00001b17: KECCAK256
00001b18: SWAP4
00001b19: DUP10
00001b1a: AND
00001b1b: DUP3
00001b1c: MSTORE
00001b1d: DUP1
00001b1e: DUP3
00001b1f: KECCAK256
00001b20: SWAP1
00001b21: MLOAD
00001b22: PUSH4 0x70a08231
00001b27: PUSH1 0xe0
00001b29: SHL
00001b2a: DUP2
00001b2b: MSTORE
00001b2c: ADDRESS
00001b2d: PUSH1 0x04
00001b2f: DUP3
00001b30: ADD
00001b31: MSTORE
00001b32: SWAP1
00001b33: SWAP3
00001b34: SWAP1
00001b35: PUSH4 0x70a08231
00001b3a: SWAP1
00001b3b: PUSH1 0x24
00001b3d: ADD
00001b3e: PUSH1 0x20
00001b40: PUSH1 0x40
00001b42: MLOAD
00001b43: DUP1
00001b44: DUP4
00001b45: SUB
00001b46: DUP2
00001b47: DUP7
00001b48: GAS
00001b49: STATICCALL
00001b4a: ISZERO
00001b4b: DUP1
00001b4c: ISZERO
00001b4d: PUSH2 0x1b58
00001b50: JUMPI
00001b51: RETURNDATASIZE
00001b52: PUSH0
00001b53: DUP1
00001b54: RETURNDATACOPY
00001b55: RETURNDATASIZE
00001b56: PUSH0
00001b57: REVERT
00001b58: JUMPDEST
00001b59: POP
00001b5a: POP
00001b5b: POP
00001b5c: POP
00001b5d: PUSH1 0x40
00001b5f: MLOAD
00001b60: RETURNDATASIZE
00001b61: PUSH1 0x1f
00001b63: NOT
00001b64: PUSH1 0x1f
00001b66: DUP3
00001b67: ADD
00001b68: AND
00001b69: DUP3
00001b6a: ADD
00001b6b: DUP1
00001b6c: PUSH1 0x40
00001b6e: MSTORE
00001b6f: POP
00001b70: DUP2
00001b71: ADD
00001b72: SWAP1
00001b73: PUSH2 0x1b7c
00001b76: SWAP2
00001b77: SWAP1
00001b78: PUSH2 0x3d33
00001b7b: JUMP
00001b7c: JUMPDEST
00001b7d: PUSH1 0x40
00001b7f: MLOAD
00001b80: PUSH4 0x70a08231
00001b85: PUSH1 0xe0
00001b87: SHL
00001b88: DUP2
00001b89: MSTORE
00001b8a: ADDRESS
00001b8b: PUSH1 0x04
00001b8d: DUP3
00001b8e: ADD
00001b8f: MSTORE
00001b90: SWAP1
00001b91: SWAP2
00001b92: POP
00001b93: PUSH0
00001b94: SWAP1
00001b95: PUSH1 0x01
00001b97: PUSH1 0x01
00001b99: PUSH1 0xa0
00001b9b: SHL
00001b9c: SUB
00001b9d: DUP11
00001b9e: AND
00001b9f: SWAP1
00001ba0: PUSH4 0x70a08231
00001ba5: SWAP1
00001ba6: PUSH1 0x24
00001ba8: ADD
00001ba9: PUSH1 0x20
00001bab: PUSH1 0x40
00001bad: MLOAD
00001bae: DUP1
00001baf: DUP4
00001bb0: SUB
00001bb1: DUP2
00001bb2: DUP7
00001bb3: GAS
00001bb4: STATICCALL
00001bb5: ISZERO
00001bb6: DUP1
00001bb7: ISZERO
00001bb8: PUSH2 0x1bc3
00001bbb: JUMPI
00001bbc: RETURNDATASIZE
00001bbd: PUSH0
00001bbe: DUP1
00001bbf: RETURNDATACOPY
00001bc0: RETURNDATASIZE
00001bc1: PUSH0
00001bc2: REVERT
00001bc3: JUMPDEST
00001bc4: POP
00001bc5: POP
00001bc6: POP
00001bc7: POP
00001bc8: PUSH1 0x40
00001bca: MLOAD
00001bcb: RETURNDATASIZE
00001bcc: PUSH1 0x1f
00001bce: NOT
00001bcf: PUSH1 0x1f
00001bd1: DUP3
00001bd2: ADD
00001bd3: AND
00001bd4: DUP3
00001bd5: ADD
00001bd6: DUP1
00001bd7: PUSH1 0x40
00001bd9: MSTORE
00001bda: POP
00001bdb: DUP2
00001bdc: ADD
00001bdd: SWAP1
00001bde: PUSH2 0x1be7
00001be1: SWAP2
00001be2: SWAP1
00001be3: PUSH2 0x3d33
00001be6: JUMP
00001be7: JUMPDEST
00001be8: SWAP1
00001be9: POP
00001bea: PUSH2 0x1bfb
00001bed: DUP3
00001bee: PUSH8 0x06f05b59d3b20000
00001bf7: PUSH2 0x2d5c
00001bfa: JUMP
00001bfb: JUMPDEST
00001bfc: DUP11
00001bfd: GT
00001bfe: ISZERO
00001bff: PUSH2 0x1c1b
00001c02: JUMPI
00001c03: PUSH1 0x40
00001c05: MLOAD
00001c06: PUSH4 0x558fcd91
00001c0b: PUSH1 0xe1
00001c0d: SHL
00001c0e: DUP2
00001c0f: MSTORE
00001c10: PUSH1 0x04
00001c12: ADD
00001c13: PUSH1 0x40
00001c15: MLOAD
00001c16: DUP1
00001c17: SWAP2
00001c18: SUB
00001c19: SWAP1
00001c1a: REVERT
00001c1b: JUMPDEST
00001c1c: PUSH0
00001c1d: PUSH2 0x1c33
00001c20: DUP4
00001c21: DUP7
00001c22: PUSH1 0x02
00001c24: ADD
00001c25: SLOAD
00001c26: DUP5
00001c27: DUP8
00001c28: PUSH1 0x02
00001c2a: ADD
00001c2b: SLOAD
00001c2c: PUSH1 0x06
00001c2e: SLOAD
00001c2f: PUSH2 0x1f88
00001c32: JUMP
00001c33: JUMPDEST
00001c34: SWAP1
00001c35: POP
00001c36: DUP8
00001c37: DUP2
00001c38: GT
00001c39: ISZERO
00001c3a: PUSH2 0x1c56
00001c3d: JUMPI
00001c3e: PUSH1 0x40
00001c40: MLOAD
00001c41: PUSH4 0x823a9c37
00001c46: PUSH1 0xe0
00001c48: SHL
00001c49: DUP2
00001c4a: MSTORE
00001c4b: PUSH1 0x04
00001c4d: ADD
00001c4e: PUSH1 0x40
00001c50: MLOAD
00001c51: DUP1
00001c52: SWAP2
00001c53: SUB
00001c54: SWAP1
00001c55: REVERT
00001c56: JUMPDEST
00001c57: PUSH2 0x1c6e
00001c5a: DUP4
00001c5b: DUP7
00001c5c: PUSH1 0x02
00001c5e: ADD
00001c5f: SLOAD
00001c60: DUP5
00001c61: DUP8
00001c62: PUSH1 0x02
00001c64: ADD
00001c65: SLOAD
00001c66: DUP16
00001c67: PUSH1 0x06
00001c69: SLOAD
00001c6a: PUSH2 0x2281
00001c6d: JUMP
00001c6e: JUMPDEST
00001c6f: SWAP7
00001c70: POP
00001c71: DUP9
00001c72: DUP8
00001c73: LT
00001c74: ISZERO
00001c75: PUSH2 0x1c91
00001c78: JUMPI
00001c79: PUSH1 0x40
00001c7b: MLOAD
00001c7c: PUSH4 0xd6ac3395
00001c81: PUSH1 0xe0
00001c83: SHL
00001c84: DUP2
00001c85: MSTORE
00001c86: PUSH1 0x04
00001c88: ADD
00001c89: PUSH1 0x40
00001c8b: MLOAD
00001c8c: DUP1
00001c8d: SWAP2
00001c8e: SUB
00001c8f: SWAP1
00001c90: REVERT
00001c91: JUMPDEST
00001c92: PUSH2 0x1c9b
00001c95: DUP4
00001c96: DUP13
00001c97: PUSH2 0x2fcb
00001c9a: JUMP
00001c9b: JUMPDEST
00001c9c: SWAP3
00001c9d: POP
00001c9e: PUSH2 0x1ca7
00001ca1: DUP3
00001ca2: DUP9
00001ca3: PUSH2 0x2ff0
00001ca6: JUMP
00001ca7: JUMPDEST
00001ca8: SWAP2
00001ca9: POP
00001caa: PUSH2 0x1cc0
00001cad: DUP4
00001cae: DUP7
00001caf: PUSH1 0x02
00001cb1: ADD
00001cb2: SLOAD
00001cb3: DUP5
00001cb4: DUP8
00001cb5: PUSH1 0x02
00001cb7: ADD
00001cb8: SLOAD
00001cb9: PUSH1 0x06
00001cbb: SLOAD
00001cbc: PUSH2 0x1f88
00001cbf: JUMP
00001cc0: JUMPDEST
00001cc1: SWAP6
00001cc2: POP
00001cc3: DUP1
00001cc4: DUP7
00001cc5: LT
00001cc6: ISZERO
00001cc7: PUSH2 0x1ce3
00001cca: JUMPI
00001ccb: PUSH1 0x40
00001ccd: MLOAD
00001cce: PUSH4 0x62123023
00001cd3: PUSH1 0xe0
00001cd5: SHL
00001cd6: DUP2
00001cd7: MSTORE
00001cd8: PUSH1 0x04
00001cda: ADD
00001cdb: PUSH1 0x40
00001cdd: MLOAD
00001cde: DUP1
00001cdf: SWAP2
00001ce0: SUB
00001ce1: SWAP1
00001ce2: REVERT
00001ce3: JUMPDEST
00001ce4: DUP8
00001ce5: DUP7
00001ce6: GT
00001ce7: ISZERO
00001ce8: PUSH2 0x1d04
00001ceb: JUMPI
00001cec: PUSH1 0x40
00001cee: MLOAD
00001cef: PUSH4 0x823a9c37
00001cf4: PUSH1 0xe0
00001cf6: SHL
00001cf7: DUP2
00001cf8: MSTORE
00001cf9: PUSH1 0x04
00001cfb: ADD
00001cfc: PUSH1 0x40
00001cfe: MLOAD
00001cff: DUP1
00001d00: SWAP2
00001d01: SUB
00001d02: SWAP1
00001d03: REVERT
00001d04: JUMPDEST
00001d05: PUSH2 0x1d0e
00001d08: DUP12
00001d09: DUP9
00001d0a: PUSH2 0x2f0e
00001d0d: JUMP
00001d0e: JUMPDEST
00001d0f: DUP2
00001d10: GT
00001d11: ISZERO
00001d12: PUSH2 0x1d2e
00001d15: JUMPI
00001d16: PUSH1 0x40
00001d18: MLOAD
00001d19: PUSH4 0x37fb98f9
00001d1e: PUSH1 0xe1
00001d20: SHL
00001d21: DUP2
00001d22: MSTORE
00001d23: PUSH1 0x04
00001d25: ADD
00001d26: PUSH1 0x40
00001d28: MLOAD
00001d29: DUP1
00001d2a: SWAP2
00001d2b: SUB
00001d2c: SWAP1
00001d2d: REVERT
00001d2e: JUMPDEST
00001d2f: PUSH1 0x40
00001d31: DUP1
00001d32: MLOAD
00001d33: DUP13
00001d34: DUP2
00001d35: MSTORE
00001d36: PUSH1 0x20
00001d38: DUP2
00001d39: ADD
00001d3a: DUP10
00001d3b: SWAP1
00001d3c: MSTORE
00001d3d: PUSH1 0x01
00001d3f: PUSH1 0x01
00001d41: PUSH1 0xa0
00001d43: SHL
00001d44: SUB
00001d45: DUP1
00001d46: DUP14
00001d47: AND
00001d48: SWAP3
00001d49: SWAP1
00001d4a: DUP16
00001d4b: AND
00001d4c: SWAP2
00001d4d: CALLER
00001d4e: SWAP2
00001d4f: PUSH32 0x908fb5ee8f16c6bc9bc3690973819f32a4d4b10188134543c88706e0e1d43378
00001d70: SWAP2
00001d71: ADD
00001d72: PUSH1 0x40
00001d74: MLOAD
00001d75: DUP1
00001d76: SWAP2
00001d77: SUB
00001d78: SWAP1
00001d79: LOG4
00001d7a: PUSH2 0x1d84
00001d7d: DUP13
00001d7e: CALLER
00001d7f: DUP14
00001d80: PUSH2 0x2fb6
00001d83: JUMP
00001d84: JUMPDEST
00001d85: PUSH2 0x19ef
00001d88: DUP11
00001d89: CALLER
00001d8a: DUP10
00001d8b: PUSH2 0x3028
00001d8e: JUMP
00001d8f: JUMPDEST
00001d90: PUSH2 0x0902
00001d93: PUSH5 0xe8d4a51000
00001d99: PUSH8 0x0de0b6b3a7640000
00001da2: PUSH2 0x3e3b
00001da5: JUMP
00001da6: JUMPDEST
00001da7: CALLER
00001da8: PUSH1 0x01
00001daa: PUSH1 0x01
00001dac: PUSH1 0xa0
00001dae: SHL
00001daf: SUB
00001db0: AND
00001db1: PUSH0
00001db2: CALLDATALOAD
00001db3: PUSH1 0x01
00001db5: PUSH1 0x01
00001db7: PUSH1 0xe0
00001db9: SHL
00001dba: SUB
00001dbb: NOT
00001dbc: AND
00001dbd: PUSH1 0x01
00001dbf: PUSH1 0x01
00001dc1: PUSH1 0xe0
00001dc3: SHL
00001dc4: SUB
00001dc5: NOT
00001dc6: AND
00001dc7: PUSH0
00001dc8: CALLDATASIZE
00001dc9: PUSH1 0x40
00001dcb: MLOAD
00001dcc: PUSH2 0x1dd6
00001dcf: SWAP3
00001dd0: SWAP2
00001dd1: SWAP1
00001dd2: PUSH2 0x3e6d
00001dd5: JUMP
00001dd6: JUMPDEST
00001dd7: PUSH1 0x40
00001dd9: MLOAD
00001dda: DUP1
00001ddb: SWAP2
00001ddc: SUB
00001ddd: SWAP1
00001dde: LOG2
00001ddf: PUSH0
00001de0: DUP1
00001de1: MLOAD
00001de2: PUSH1 0x20
00001de4: PUSH2 0x3f08
00001de7: DUP4
00001de8: CODECOPY
00001de9: DUP2
00001dea: MLOAD
00001deb: SWAP2
00001dec: MSTORE
00001ded: TLOAD
00001dee: ISZERO
00001def: PUSH2 0x1e0b
00001df2: JUMPI
00001df3: PUSH1 0x40
00001df5: MLOAD
00001df6: PUSH4 0xd56a08b5
00001dfb: PUSH1 0xe0
00001dfd: SHL
00001dfe: DUP2
00001dff: MSTORE
00001e00: PUSH1 0x04
00001e02: ADD
00001e03: PUSH1 0x40
00001e05: MLOAD
00001e06: DUP1
00001e07: SWAP2
00001e08: SUB
00001e09: SWAP1
00001e0a: REVERT
00001e0b: JUMPDEST
00001e0c: PUSH2 0x1e15
00001e0f: PUSH1 0x01
00001e11: PUSH2 0x2ddf
00001e14: JUMP
00001e15: JUMPDEST
00001e16: PUSH1 0x05
00001e18: SLOAD
00001e19: PUSH1 0x01
00001e1b: PUSH1 0x01
00001e1d: PUSH1 0xa0
00001e1f: SHL
00001e20: SUB
00001e21: AND
00001e22: CALLER
00001e23: EQ
00001e24: PUSH2 0x1e40
00001e27: JUMPI
00001e28: PUSH1 0x40
00001e2a: MLOAD
00001e2b: PUSH4 0x4f0f5499
00001e30: PUSH1 0xe1
00001e32: SHL
00001e33: DUP2
00001e34: MSTORE
00001e35: PUSH1 0x04
00001e37: ADD
00001e38: PUSH1 0x40
00001e3a: MLOAD
00001e3b: DUP1
00001e3c: SWAP2
00001e3d: SUB
00001e3e: SWAP1
00001e3f: REVERT
00001e40: JUMPDEST
00001e41: PUSH1 0x01
00001e43: PUSH1 0x01
00001e45: PUSH1 0xa0
00001e47: SHL
00001e48: SUB
00001e49: DUP2
00001e4a: AND
00001e4b: PUSH2 0x1e67
00001e4e: JUMPI
00001e4f: PUSH1 0x40
00001e51: MLOAD
00001e52: PUSH4 0x51a9e5c5
00001e57: PUSH1 0xe0
00001e59: SHL
00001e5a: DUP2
00001e5b: MSTORE
00001e5c: PUSH1 0x04
00001e5e: ADD
00001e5f: PUSH1 0x40
00001e61: MLOAD
00001e62: DUP1
00001e63: SWAP2
00001e64: SUB
00001e65: SWAP1
00001e66: REVERT
00001e67: JUMPDEST
00001e68: PUSH1 0x05
00001e6a: DUP1
00001e6b: SLOAD
00001e6c: PUSH1 0x01
00001e6e: PUSH1 0x01
00001e70: PUSH1 0xa0
00001e72: SHL
00001e73: SUB
00001e74: NOT
00001e75: AND
00001e76: PUSH1 0x01
00001e78: PUSH1 0x01
00001e7a: PUSH1 0xa0
00001e7c: SHL
00001e7d: SUB
00001e7e: DUP4
00001e7f: AND
00001e80: OR
00001e81: SWAP1
00001e82: SSTORE
00001e83: PUSH2 0x126f
00001e86: PUSH0
00001e87: PUSH2 0x2ddf
00001e8a: JUMP
00001e8b: JUMPDEST
00001e8c: PUSH0
00001e8d: PUSH0
00001e8e: DUP1
00001e8f: MLOAD
00001e90: PUSH1 0x20
00001e92: PUSH2 0x3f08
00001e95: DUP4
00001e96: CODECOPY
00001e97: DUP2
00001e98: MLOAD
00001e99: SWAP2
00001e9a: MSTORE
00001e9b: TLOAD
00001e9c: ISZERO
00001e9d: PUSH2 0x1eb9
00001ea0: JUMPI
00001ea1: PUSH1 0x40
00001ea3: MLOAD
00001ea4: PUSH4 0xd56a08b5
00001ea9: PUSH1 0xe0
00001eab: SHL
00001eac: DUP2
00001ead: MSTORE
00001eae: PUSH1 0x04
00001eb0: ADD
00001eb1: PUSH1 0x40
00001eb3: MLOAD
00001eb4: DUP1
00001eb5: SWAP2
00001eb6: SUB
00001eb7: SWAP1
00001eb8: REVERT
00001eb9: JUMPDEST
00001eba: POP
00001ebb: PUSH1 0x0a
00001ebd: SLOAD
00001ebe: SWAP1
00001ebf: JUMP
00001ec0: JUMPDEST
00001ec1: PUSH2 0x0902
00001ec4: PUSH8 0x0de0b6b3a7640000
00001ecd: PUSH1 0x64
00001ecf: PUSH2 0x3d1c
00001ed2: JUMP
00001ed3: JUMPDEST
00001ed4: PUSH0
00001ed5: PUSH0
00001ed6: DUP1
00001ed7: MLOAD
00001ed8: PUSH1 0x20
00001eda: PUSH2 0x3f08
00001edd: DUP4
00001ede: CODECOPY
00001edf: DUP2
00001ee0: MLOAD
00001ee1: SWAP2
00001ee2: MSTORE
00001ee3: TLOAD
00001ee4: ISZERO
00001ee5: PUSH2 0x1f01
00001ee8: JUMPI
00001ee9: PUSH1 0x40
00001eeb: MLOAD
00001eec: PUSH4 0xd56a08b5
00001ef1: PUSH1 0xe0
00001ef3: SHL
00001ef4: DUP2
00001ef5: MSTORE
00001ef6: PUSH1 0x04
00001ef8: ADD
00001ef9: PUSH1 0x40
00001efb: MLOAD
00001efc: DUP1
00001efd: SWAP2
00001efe: SUB
00001eff: SWAP1
00001f00: REVERT
00001f01: JUMPDEST
00001f02: PUSH1 0x01
00001f04: PUSH1 0x01
00001f06: PUSH1 0xa0
00001f08: SHL
00001f09: SUB
00001f0a: DUP3
00001f0b: AND
00001f0c: PUSH0
00001f0d: SWAP1
00001f0e: DUP2
00001f0f: MSTORE
00001f10: PUSH1 0x09
00001f12: PUSH1 0x20
00001f14: MSTORE
00001f15: PUSH1 0x40
00001f17: SWAP1
00001f18: KECCAK256
00001f19: SLOAD
00001f1a: PUSH1 0xff
00001f1c: AND
00001f1d: PUSH2 0x1f39
00001f20: JUMPI
00001f21: PUSH1 0x40
00001f23: MLOAD
00001f24: PUSH4 0x4b16fc2d
00001f29: PUSH1 0xe1
00001f2b: SHL
00001f2c: DUP2
00001f2d: MSTORE
00001f2e: PUSH1 0x04
00001f30: ADD
00001f31: PUSH1 0x40
00001f33: MLOAD
00001f34: DUP1
00001f35: SWAP2
00001f36: SUB
00001f37: SWAP1
00001f38: REVERT
00001f39: JUMPDEST
00001f3a: POP
00001f3b: PUSH1 0x01
00001f3d: PUSH1 0x01
00001f3f: PUSH1 0xa0
00001f41: SHL
00001f42: SUB
00001f43: DUP2
00001f44: AND
00001f45: PUSH0
00001f46: SWAP1
00001f47: DUP2
00001f48: MSTORE
00001f49: PUSH1 0x09
00001f4b: PUSH1 0x20
00001f4d: MSTORE
00001f4e: PUSH1 0x40
00001f50: SWAP1
00001f51: KECCAK256
00001f52: PUSH1 0x02
00001f54: ADD
00001f55: SLOAD
00001f56: JUMPDEST
00001f57: SWAP2
00001f58: SWAP1
00001f59: POP
00001f5a: JUMP
00001f5b: JUMPDEST
00001f5c: PUSH1 0x60
00001f5e: PUSH1 0x04
00001f60: DUP1
00001f61: SLOAD
00001f62: PUSH2 0x0855
00001f65: SWAP1
00001f66: PUSH2 0x3cd0
00001f69: JUMP
00001f6a: JUMPDEST
00001f6b: PUSH2 0x1f7d
00001f6e: PUSH1 0x03
00001f70: PUSH8 0x0de0b6b3a7640000
00001f79: PUSH2 0x3e3b
00001f7c: JUMP
00001f7d: JUMPDEST
00001f7e: PUSH2 0x0902
00001f81: SWAP1
00001f82: PUSH1 0x01
00001f84: PUSH2 0x3e5a
00001f87: JUMP
00001f88: JUMPDEST
00001f89: PUSH0
00001f8a: DUP1
00001f8b: PUSH2 0x1f94
00001f8e: DUP8
00001f8f: DUP8
00001f90: PUSH2 0x2f0e
00001f93: JUMP
00001f94: JUMPDEST
00001f95: SWAP1
00001f96: POP
00001f97: PUSH0
00001f98: PUSH2 0x1fa1
00001f9b: DUP7
00001f9c: DUP7
00001f9d: PUSH2 0x2f0e
00001fa0: JUMP
00001fa1: JUMPDEST
00001fa2: SWAP1
00001fa3: POP
00001fa4: PUSH0
00001fa5: PUSH2 0x1fae
00001fa8: DUP4
00001fa9: DUP4
00001faa: PUSH2 0x2f0e
00001fad: JUMP
00001fae: JUMPDEST
00001faf: SWAP1
00001fb0: POP
00001fb1: PUSH0
00001fb2: PUSH2 0x1fd4
00001fb5: PUSH8 0x0de0b6b3a7640000
00001fbe: PUSH2 0x1fcf
00001fc1: PUSH8 0x0de0b6b3a7640000
00001fca: DUP10
00001fcb: PUSH2 0x2ff0
00001fce: JUMP
00001fcf: JUMPDEST
00001fd0: PUSH2 0x2f0e
00001fd3: JUMP
00001fd4: JUMPDEST
00001fd5: SWAP1
00001fd6: POP
00001fd7: PUSH2 0x1fe0
00001fda: DUP3
00001fdb: DUP3
00001fdc: PUSH2 0x2d5c
00001fdf: JUMP
00001fe0: JUMPDEST
00001fe1: SWAP11
00001fe2: SWAP10
00001fe3: POP
00001fe4: POP
00001fe5: POP
00001fe6: POP
00001fe7: POP
00001fe8: POP
00001fe9: POP
00001fea: POP
00001feb: POP
00001fec: POP
00001fed: JUMP
00001fee: JUMPDEST
00001fef: PUSH0
00001ff0: CALLER
00001ff1: PUSH2 0x08e3
00001ff4: DUP2
00001ff5: DUP6
00001ff6: DUP6
00001ff7: PUSH2 0x2cff
00001ffa: JUMP
00001ffb: JUMPDEST
00001ffc: CALLER
00001ffd: PUSH1 0x01
00001fff: PUSH1 0x01
00002001: PUSH1 0xa0
00002003: SHL
00002004: SUB
00002005: AND
00002006: PUSH0
00002007: CALLDATALOAD
00002008: PUSH1 0x01
0000200a: PUSH1 0x01
0000200c: PUSH1 0xe0
0000200e: SHL
0000200f: SUB
00002010: NOT
00002011: AND
00002012: PUSH1 0x01
00002014: PUSH1 0x01
00002016: PUSH1 0xe0
00002018: SHL
00002019: SUB
0000201a: NOT
0000201b: AND
0000201c: PUSH0
0000201d: CALLDATASIZE
0000201e: PUSH1 0x40
00002020: MLOAD
00002021: PUSH2 0x202b
00002024: SWAP3
00002025: SWAP2
00002026: SWAP1
00002027: PUSH2 0x3e6d
0000202a: JUMP
0000202b: JUMPDEST
0000202c: PUSH1 0x40
0000202e: MLOAD
0000202f: DUP1
00002030: SWAP2
00002031: SUB
00002032: SWAP1
00002033: LOG2
00002034: PUSH0
00002035: DUP1
00002036: MLOAD
00002037: PUSH1 0x20
00002039: PUSH2 0x3f08
0000203c: DUP4
0000203d: CODECOPY
0000203e: DUP2
0000203f: MLOAD
00002040: SWAP2
00002041: MSTORE
00002042: TLOAD
00002043: ISZERO
00002044: PUSH2 0x2060
00002047: JUMPI
00002048: PUSH1 0x40
0000204a: MLOAD
0000204b: PUSH4 0xd56a08b5
00002050: PUSH1 0xe0
00002052: SHL
00002053: DUP2
00002054: MSTORE
00002055: PUSH1 0x04
00002057: ADD
00002058: PUSH1 0x40
0000205a: MLOAD
0000205b: DUP1
0000205c: SWAP2
0000205d: SUB
0000205e: SWAP1
0000205f: REVERT
00002060: JUMPDEST
00002061: PUSH2 0x206a
00002064: PUSH1 0x01
00002066: PUSH2 0x2ddf
00002069: JUMP
0000206a: JUMPDEST
0000206b: PUSH1 0x07
0000206d: SLOAD
0000206e: PUSH1 0xff
00002070: AND
00002071: PUSH2 0x208d
00002074: JUMPI
00002075: PUSH1 0x40
00002077: MLOAD
00002078: PUSH4 0x2e41ba2d
0000207d: PUSH1 0xe0
0000207f: SHL
00002080: DUP2
00002081: MSTORE
00002082: PUSH1 0x04
00002084: ADD
00002085: PUSH1 0x40
00002087: MLOAD
00002088: DUP1
00002089: SWAP2
0000208a: SUB
0000208b: SWAP1
0000208c: REVERT
0000208d: JUMPDEST
0000208e: PUSH0
0000208f: PUSH2 0x2097
00002092: PUSH1 0x02
00002094: SLOAD
00002095: SWAP1
00002096: JUMP
00002097: JUMPDEST
00002098: SWAP1
00002099: POP
0000209a: PUSH0
0000209b: PUSH2 0x20a4
0000209e: DUP6
0000209f: PUSH0
000020a0: PUSH2 0x2d5c
000020a3: JUMP
000020a4: JUMPDEST
000020a5: SWAP1
000020a6: POP
000020a7: PUSH0
000020a8: PUSH2 0x20b1
000020ab: DUP7
000020ac: DUP4
000020ad: PUSH2 0x2ff0
000020b0: JUMP
000020b1: JUMPDEST
000020b2: SWAP1
000020b3: POP
000020b4: PUSH0
000020b5: PUSH2 0x20be
000020b8: DUP3
000020b9: DUP6
000020ba: PUSH2 0x2f0e
000020bd: JUMP
000020be: JUMPDEST
000020bf: SWAP1
000020c0: POP
000020c1: DUP1
000020c2: PUSH0
000020c3: SUB
000020c4: PUSH2 0x20e0
000020c7: JUMPI
000020c8: PUSH1 0x40
000020ca: MLOAD
000020cb: PUSH4 0x0c499f47
000020d0: PUSH1 0xe0
000020d2: SHL
000020d3: DUP2
000020d4: MSTORE
000020d5: PUSH1 0x04
000020d7: ADD
000020d8: PUSH1 0x40
000020da: MLOAD
000020db: DUP1
000020dc: SWAP2
000020dd: SUB
000020de: SWAP1
000020df: REVERT
000020e0: JUMPDEST
000020e1: PUSH2 0x20ea
000020e4: CALLER
000020e5: DUP9
000020e6: PUSH2 0x303c
000020e9: JUMP
000020ea: JUMPDEST
000020eb: PUSH2 0x2114
000020ee: PUSH32 0x000000000000000000000000f76c421bab7df8548604e60deccce50477c10462
0000210f: DUP5
00002110: PUSH2 0x2dfc
00002113: JUMP
00002114: JUMPDEST
00002115: PUSH2 0x211d
00002118: DUP3
00002119: PUSH2 0x3046
0000211c: JUMP
0000211d: JUMPDEST
0000211e: PUSH1 0x08
00002120: SLOAD
00002121: PUSH0
00002122: JUMPDEST
00002123: DUP2
00002124: DUP2
00002125: LT
00002126: ISZERO
00002127: PUSH2 0x2270
0000212a: JUMPI
0000212b: PUSH0
0000212c: PUSH1 0x08
0000212e: DUP3
0000212f: DUP2
00002130: SLOAD
00002131: DUP2
00002132: LT
00002133: PUSH2 0x213e
00002136: JUMPI
00002137: PUSH2 0x213e
0000213a: PUSH2 0x3eae
0000213d: JUMP
0000213e: JUMPDEST
0000213f: PUSH0
00002140: SWAP2
00002141: DUP3
00002142: MSTORE
00002143: PUSH1 0x20
00002145: DUP3
00002146: KECCAK256
00002147: ADD
00002148: SLOAD
00002149: PUSH1 0x40
0000214b: MLOAD
0000214c: PUSH4 0x70a08231
00002151: PUSH1 0xe0
00002153: SHL
00002154: DUP2
00002155: MSTORE
00002156: ADDRESS
00002157: PUSH1 0x04
00002159: DUP3
0000215a: ADD
0000215b: MSTORE
0000215c: PUSH1 0x01
0000215e: PUSH1 0x01
00002160: PUSH1 0xa0
00002162: SHL
00002163: SUB
00002164: SWAP1
00002165: SWAP2
00002166: AND
00002167: SWAP3
00002168: POP
00002169: DUP3
0000216a: SWAP1
0000216b: PUSH4 0x70a08231
00002170: SWAP1
00002171: PUSH1 0x24
00002173: ADD
00002174: PUSH1 0x20
00002176: PUSH1 0x40
00002178: MLOAD
00002179: DUP1
0000217a: DUP4
0000217b: SUB
0000217c: DUP2
0000217d: DUP7
0000217e: GAS
0000217f: STATICCALL
00002180: ISZERO
00002181: DUP1
00002182: ISZERO
00002183: PUSH2 0x218e
00002186: JUMPI
00002187: RETURNDATASIZE
00002188: PUSH0
00002189: DUP1
0000218a: RETURNDATACOPY
0000218b: RETURNDATASIZE
0000218c: PUSH0
0000218d: REVERT
0000218e: JUMPDEST
0000218f: POP
00002190: POP
00002191: POP
00002192: POP
00002193: PUSH1 0x40
00002195: MLOAD
00002196: RETURNDATASIZE
00002197: PUSH1 0x1f
00002199: NOT
0000219a: PUSH1 0x1f
0000219c: DUP3
0000219d: ADD
0000219e: AND
0000219f: DUP3
000021a0: ADD
000021a1: DUP1
000021a2: PUSH1 0x40
000021a4: MSTORE
000021a5: POP
000021a6: DUP2
000021a7: ADD
000021a8: SWAP1
000021a9: PUSH2 0x21b2
000021ac: SWAP2
000021ad: SWAP1
000021ae: PUSH2 0x3d33
000021b1: JUMP
000021b2: JUMPDEST
000021b3: SWAP1
000021b4: POP
000021b5: PUSH0
000021b6: PUSH2 0x21bf
000021b9: DUP7
000021ba: DUP4
000021bb: PUSH2 0x2d5c
000021be: JUMP
000021bf: JUMPDEST
000021c0: SWAP1
000021c1: POP
000021c2: DUP1
000021c3: PUSH0
000021c4: SUB
000021c5: PUSH2 0x21e1
000021c8: JUMPI
000021c9: PUSH1 0x40
000021cb: MLOAD
000021cc: PUSH4 0x4b4ae51b
000021d1: PUSH1 0xe1
000021d3: SHL
000021d4: DUP2
000021d5: MSTORE
000021d6: PUSH1 0x04
000021d8: ADD
000021d9: PUSH1 0x40
000021db: MLOAD
000021dc: DUP1
000021dd: SWAP2
000021de: SUB
000021df: SWAP1
000021e0: REVERT
000021e1: JUMPDEST
000021e2: DUP11
000021e3: DUP11
000021e4: DUP6
000021e5: DUP2
000021e6: DUP2
000021e7: LT
000021e8: PUSH2 0x21f3
000021eb: JUMPI
000021ec: PUSH2 0x21f3
000021ef: PUSH2 0x3eae
000021f2: JUMP
000021f3: JUMPDEST
000021f4: SWAP1
000021f5: POP
000021f6: PUSH1 0x20
000021f8: MUL
000021f9: ADD
000021fa: CALLDATALOAD
000021fb: DUP2
000021fc: LT
000021fd: ISZERO
000021fe: PUSH2 0x221a
00002201: JUMPI
00002202: PUSH1 0x40
00002204: MLOAD
00002205: PUSH4 0x341a1f33
0000220a: PUSH1 0xe1
0000220c: SHL
0000220d: DUP2
0000220e: MSTORE
0000220f: PUSH1 0x04
00002211: ADD
00002212: PUSH1 0x40
00002214: MLOAD
00002215: DUP1
00002216: SWAP2
00002217: SUB
00002218: SWAP1
00002219: REVERT
0000221a: JUMPDEST
0000221b: PUSH1 0x40
0000221d: MLOAD
0000221e: DUP2
0000221f: DUP2
00002220: MSTORE
00002221: PUSH1 0x01
00002223: PUSH1 0x01
00002225: PUSH1 0xa0
00002227: SHL
00002228: SUB
00002229: DUP5
0000222a: AND
0000222b: SWAP1
0000222c: CALLER
0000222d: SWAP1
0000222e: PUSH32 0xe74c91552b64c2e2e7bd255639e004e693bd3e1d01cc33e65610b86afcc1ffed
0000224f: SWAP1
00002250: PUSH1 0x20
00002252: ADD
00002253: PUSH1 0x40
00002255: MLOAD
00002256: DUP1
00002257: SWAP2
00002258: SUB
00002259: SWAP1
0000225a: LOG3
0000225b: PUSH2 0x2265
0000225e: DUP4
0000225f: CALLER
00002260: DUP4
00002261: PUSH2 0x3028
00002264: JUMP
00002265: JUMPDEST
00002266: POP
00002267: POP
00002268: POP
00002269: PUSH1 0x01
0000226b: ADD
0000226c: PUSH2 0x2122
0000226f: JUMP
00002270: JUMPDEST
00002271: POP
00002272: POP
00002273: POP
00002274: POP
00002275: POP
00002276: POP
00002277: PUSH2 0x15eb
0000227a: PUSH0
0000227b: DUP1
0000227c: SHL
0000227d: PUSH2 0x2ddf
00002280: JUMP
00002281: JUMPDEST
00002282: PUSH0
00002283: DUP1
00002284: PUSH2 0x228d
00002287: DUP8
00002288: DUP7
00002289: PUSH2 0x2f0e
0000228c: JUMP
0000228d: JUMPDEST
0000228e: SWAP1
0000228f: POP
00002290: PUSH0
00002291: PUSH2 0x22a2
00002294: PUSH8 0x0de0b6b3a7640000
0000229d: DUP6
0000229e: PUSH2 0x2ff0
000022a1: JUMP
000022a2: JUMPDEST
000022a3: SWAP1
000022a4: POP
000022a5: PUSH2 0x22ae
000022a8: DUP6
000022a9: DUP3
000022aa: PUSH2 0x2d5c
000022ad: JUMP
000022ae: JUMPDEST
000022af: SWAP1
000022b0: POP
000022b1: PUSH0
000022b2: PUSH2 0x22bf
000022b5: DUP11
000022b6: PUSH2 0x1fcf
000022b9: DUP13
000022ba: DUP6
000022bb: PUSH2 0x2fcb
000022be: JUMP
000022bf: JUMPDEST
000022c0: SWAP1
000022c1: POP
000022c2: PUSH0
000022c3: PUSH2 0x22cc
000022c6: DUP3
000022c7: DUP6
000022c8: PUSH2 0x3050
000022cb: JUMP
000022cc: JUMPDEST
000022cd: SWAP1
000022ce: POP
000022cf: PUSH0
000022d0: PUSH2 0x22e1
000022d3: PUSH8 0x0de0b6b3a7640000
000022dc: DUP4
000022dd: PUSH2 0x2ff0
000022e0: JUMP
000022e1: JUMPDEST
000022e2: SWAP1
000022e3: POP
000022e4: PUSH2 0x22ed
000022e7: DUP11
000022e8: DUP3
000022e9: PUSH2 0x2d5c
000022ec: JUMP
000022ed: JUMPDEST
000022ee: SWAP13
000022ef: SWAP12
000022f0: POP
000022f1: POP
000022f2: POP
000022f3: POP
000022f4: POP
000022f5: POP
000022f6: POP
000022f7: POP
000022f8: POP
000022f9: POP
000022fa: POP
000022fb: POP
000022fc: JUMP
000022fd: JUMPDEST
000022fe: PUSH2 0x2312
00002301: PUSH3 0x0f4240
00002305: PUSH8 0x0de0b6b3a7640000
0000230e: PUSH2 0x3e3b
00002311: JUMP
00002312: JUMPDEST
00002313: PUSH2 0x0902
00002316: SWAP1
00002317: PUSH8 0x0de0b6b3a7640000
00002320: PUSH2 0x3e9b
00002323: JUMP
00002324: JUMPDEST
00002325: PUSH1 0x01
00002327: PUSH2 0x2339
0000232a: PUSH8 0x0de0b6b3a7640000
00002333: PUSH1 0x02
00002335: PUSH2 0x3d1c
00002338: JUMP
00002339: JUMPDEST
0000233a: PUSH2 0x0902
0000233d: SWAP2
0000233e: SWAP1
0000233f: PUSH2 0x3e9b
00002342: JUMP
00002343: JUMPDEST
00002344: PUSH1 0x60
00002346: PUSH0
00002347: DUP1
00002348: MLOAD
00002349: PUSH1 0x20
0000234b: PUSH2 0x3f08
0000234e: DUP4
0000234f: CODECOPY
00002350: DUP2
00002351: MLOAD
00002352: SWAP2
00002353: MSTORE
00002354: TLOAD
00002355: ISZERO
00002356: PUSH2 0x2372
00002359: JUMPI
0000235a: PUSH1 0x40
0000235c: MLOAD
0000235d: PUSH4 0xd56a08b5
00002362: PUSH1 0xe0
00002364: SHL
00002365: DUP2
00002366: MSTORE
00002367: PUSH1 0x04
00002369: ADD
0000236a: PUSH1 0x40
0000236c: MLOAD
0000236d: DUP1
0000236e: SWAP2
0000236f: SUB
00002370: SWAP1
00002371: REVERT
00002372: JUMPDEST
00002373: PUSH1 0x07
00002375: SLOAD
00002376: PUSH1 0xff
00002378: AND
00002379: PUSH2 0x2395
0000237c: JUMPI
0000237d: PUSH1 0x40
0000237f: MLOAD
00002380: PUSH4 0x2e41ba2d
00002385: PUSH1 0xe0
00002387: SHL
00002388: DUP2
00002389: MSTORE
0000238a: PUSH1 0x04
0000238c: ADD
0000238d: PUSH1 0x40
0000238f: MLOAD
00002390: DUP1
00002391: SWAP2
00002392: SUB
00002393: SWAP1
00002394: REVERT
00002395: JUMPDEST
00002396: PUSH1 0x08
00002398: DUP1
00002399: SLOAD
0000239a: DUP1
0000239b: PUSH1 0x20
0000239d: MUL
0000239e: PUSH1 0x20
000023a0: ADD
000023a1: PUSH1 0x40
000023a3: MLOAD
000023a4: SWAP1
000023a5: DUP2
000023a6: ADD
000023a7: PUSH1 0x40
000023a9: MSTORE
000023aa: DUP1
000023ab: SWAP3
000023ac: SWAP2
000023ad: SWAP1
000023ae: DUP2
000023af: DUP2
000023b0: MSTORE
000023b1: PUSH1 0x20
000023b3: ADD
000023b4: DUP3
000023b5: DUP1
000023b6: SLOAD
000023b7: DUP1
000023b8: ISZERO
000023b9: PUSH2 0x08cc
000023bc: JUMPI
000023bd: PUSH1 0x20
000023bf: MUL
000023c0: DUP3
000023c1: ADD
000023c2: SWAP2
000023c3: SWAP1
000023c4: PUSH0
000023c5: MSTORE
000023c6: PUSH1 0x20
000023c8: PUSH0
000023c9: KECCAK256
000023ca: SWAP1
000023cb: JUMPDEST
000023cc: DUP2
000023cd: SLOAD
000023ce: PUSH1 0x01
000023d0: PUSH1 0x01
000023d2: PUSH1 0xa0
000023d4: SHL
000023d5: SUB
000023d6: AND
000023d7: DUP2
000023d8: MSTORE
000023d9: PUSH1 0x01
000023db: SWAP1
000023dc: SWAP2
000023dd: ADD
000023de: SWAP1
000023df: PUSH1 0x20
000023e1: ADD
000023e2: DUP1
000023e3: DUP4
000023e4: GT
000023e5: PUSH2 0x23cb
000023e8: JUMPI
000023e9: POP
000023ea: POP
000023eb: POP
000023ec: POP
000023ed: POP
000023ee: SWAP1
000023ef: POP
000023f0: SWAP1
000023f1: JUMP
000023f2: JUMPDEST
000023f3: PUSH1 0x60
000023f5: PUSH0
000023f6: DUP1
000023f7: MLOAD
000023f8: PUSH1 0x20
000023fa: PUSH2 0x3f08
000023fd: DUP4
000023fe: CODECOPY
000023ff: DUP2
00002400: MLOAD
00002401: SWAP2
00002402: MSTORE
00002403: TLOAD
00002404: ISZERO
00002405: PUSH2 0x2395
00002408: JUMPI
00002409: PUSH1 0x40
0000240b: MLOAD
0000240c: PUSH4 0xd56a08b5
00002411: PUSH1 0xe0
00002413: SHL
00002414: DUP2
00002415: MSTORE
00002416: PUSH1 0x04
00002418: ADD
00002419: PUSH1 0x40
0000241b: MLOAD
0000241c: DUP1
0000241d: SWAP2
0000241e: SUB
0000241f: SWAP1
00002420: REVERT
00002421: JUMPDEST
00002422: CALLER
00002423: PUSH1 0x01
00002425: PUSH1 0x01
00002427: PUSH1 0xa0
00002429: SHL
0000242a: SUB
0000242b: AND
0000242c: PUSH0
0000242d: CALLDATALOAD
0000242e: PUSH1 0x01
00002430: PUSH1 0x01
00002432: PUSH1 0xe0
00002434: SHL
00002435: SUB
00002436: NOT
00002437: AND
00002438: PUSH1 0x01
0000243a: PUSH1 0x01
0000243c: PUSH1 0xe0
0000243e: SHL
0000243f: SUB
00002440: NOT
00002441: AND
00002442: PUSH0
00002443: CALLDATASIZE
00002444: PUSH1 0x40
00002446: MLOAD
00002447: PUSH2 0x2451
0000244a: SWAP3
0000244b: SWAP2
0000244c: SWAP1
0000244d: PUSH2 0x3e6d
00002450: JUMP
00002451: JUMPDEST
00002452: PUSH1 0x40
00002454: MLOAD
00002455: DUP1
00002456: SWAP2
00002457: SUB
00002458: SWAP1
00002459: LOG2
0000245a: PUSH0
0000245b: DUP1
0000245c: MLOAD
0000245d: PUSH1 0x20
0000245f: PUSH2 0x3f08
00002462: DUP4
00002463: CODECOPY
00002464: DUP2
00002465: MLOAD
00002466: SWAP2
00002467: MSTORE
00002468: TLOAD
00002469: ISZERO
0000246a: PUSH2 0x2486
0000246d: JUMPI
0000246e: PUSH1 0x40
00002470: MLOAD
00002471: PUSH4 0xd56a08b5
00002476: PUSH1 0xe0
00002478: SHL
00002479: DUP2
0000247a: MSTORE
0000247b: PUSH1 0x04
0000247d: ADD
0000247e: PUSH1 0x40
00002480: MLOAD
00002481: DUP1
00002482: SWAP2
00002483: SUB
00002484: SWAP1
00002485: REVERT
00002486: JUMPDEST
00002487: PUSH2 0x2490
0000248a: PUSH1 0x01
0000248c: PUSH2 0x2ddf
0000248f: JUMP
00002490: JUMPDEST
00002491: PUSH1 0x05
00002493: SLOAD
00002494: PUSH1 0x01
00002496: PUSH1 0x01
00002498: PUSH1 0xa0
0000249a: SHL
0000249b: SUB
0000249c: AND
0000249d: CALLER
0000249e: EQ
0000249f: PUSH2 0x24bb
000024a2: JUMPI
000024a3: PUSH1 0x40
000024a5: MLOAD
000024a6: PUSH4 0x4f0f5499
000024ab: PUSH1 0xe1
000024ad: SHL
000024ae: DUP2
000024af: MSTORE
000024b0: PUSH1 0x04
000024b2: ADD
000024b3: PUSH1 0x40
000024b5: MLOAD
000024b6: DUP1
000024b7: SWAP2
000024b8: SUB
000024b9: SWAP1
000024ba: REVERT
000024bb: JUMPDEST
000024bc: PUSH1 0x07
000024be: SLOAD
000024bf: PUSH1 0xff
000024c1: AND
000024c2: ISZERO
000024c3: PUSH2 0x24df
000024c6: JUMPI
000024c7: PUSH1 0x40
000024c9: MLOAD
000024ca: PUSH4 0x056f633d
000024cf: PUSH1 0xe2
000024d1: SHL
000024d2: DUP2
000024d3: MSTORE
000024d4: PUSH1 0x04
000024d6: ADD
000024d7: PUSH1 0x40
000024d9: MLOAD
000024da: DUP1
000024db: SWAP2
000024dc: SUB
000024dd: SWAP1
000024de: REVERT
000024df: JUMPDEST
000024e0: PUSH1 0x01
000024e2: PUSH1 0x01
000024e4: PUSH1 0xa0
000024e6: SHL
000024e7: SUB
000024e8: DUP2
000024e9: AND
000024ea: PUSH0
000024eb: SWAP1
000024ec: DUP2
000024ed: MSTORE
000024ee: PUSH1 0x09
000024f0: PUSH1 0x20
000024f2: MSTORE
000024f3: PUSH1 0x40
000024f5: SWAP1
000024f6: KECCAK256
000024f7: SLOAD
000024f8: PUSH1 0xff
000024fa: AND
000024fb: PUSH2 0x2517
000024fe: JUMPI
000024ff: PUSH1 0x40
00002501: MLOAD
00002502: PUSH4 0x4b16fc2d
00002507: PUSH1 0xe1
00002509: SHL
0000250a: DUP2
0000250b: MSTORE
0000250c: PUSH1 0x04
0000250e: ADD
0000250f: PUSH1 0x40
00002511: MLOAD
00002512: DUP1
00002513: SWAP2
00002514: SUB
00002515: SWAP1
00002516: REVERT
00002517: JUMPDEST
00002518: PUSH1 0x0a
0000251a: SLOAD
0000251b: PUSH1 0x01
0000251d: PUSH1 0x01
0000251f: PUSH1 0xa0
00002521: SHL
00002522: SUB
00002523: DUP3
00002524: AND
00002525: PUSH0
00002526: SWAP1
00002527: DUP2
00002528: MSTORE
00002529: PUSH1 0x09
0000252b: PUSH1 0x20
0000252d: MSTORE
0000252e: PUSH1 0x40
00002530: SWAP1
00002531: KECCAK256
00002532: PUSH1 0x02
00002534: ADD
00002535: SLOAD
00002536: PUSH2 0x253f
00002539: SWAP2
0000253a: SWAP1
0000253b: PUSH2 0x2ff0
0000253e: JUMP
0000253f: JUMPDEST
00002540: PUSH1 0x0a
00002542: SSTORE
00002543: PUSH1 0x01
00002545: PUSH1 0x01
00002547: PUSH1 0xa0
00002549: SHL
0000254a: SUB
0000254b: DUP2
0000254c: AND
0000254d: PUSH0
0000254e: SWAP1
0000254f: DUP2
00002550: MSTORE
00002551: PUSH1 0x09
00002553: PUSH1 0x20
00002555: MSTORE
00002556: PUSH1 0x40
00002558: DUP2
00002559: KECCAK256
0000255a: PUSH1 0x01
0000255c: SWAP1
0000255d: DUP2
0000255e: ADD
0000255f: SLOAD
00002560: PUSH1 0x08
00002562: SLOAD
00002563: SWAP1
00002564: SWAP3
00002565: SWAP2
00002566: PUSH2 0x256e
00002569: SWAP2
0000256a: PUSH2 0x3e9b
0000256d: JUMP
0000256e: JUMPDEST
0000256f: SWAP1
00002570: POP
00002571: PUSH1 0x08
00002573: DUP2
00002574: DUP2
00002575: SLOAD
00002576: DUP2
00002577: LT
00002578: PUSH2 0x2583
0000257b: JUMPI
0000257c: PUSH2 0x2583
0000257f: PUSH2 0x3eae
00002582: JUMP
00002583: JUMPDEST
00002584: PUSH0
00002585: SWAP2
00002586: DUP3
00002587: MSTORE
00002588: PUSH1 0x20
0000258a: SWAP1
0000258b: SWAP2
0000258c: KECCAK256
0000258d: ADD
0000258e: SLOAD
0000258f: PUSH1 0x08
00002591: DUP1
00002592: SLOAD
00002593: PUSH1 0x01
00002595: PUSH1 0x01
00002597: PUSH1 0xa0
00002599: SHL
0000259a: SUB
0000259b: SWAP1
0000259c: SWAP3
0000259d: AND
0000259e: SWAP2
0000259f: DUP5
000025a0: SWAP1
000025a1: DUP2
000025a2: LT
000025a3: PUSH2 0x25ae
000025a6: JUMPI
000025a7: PUSH2 0x25ae
000025aa: PUSH2 0x3eae
000025ad: JUMP
000025ae: JUMPDEST
000025af: SWAP1
000025b0: PUSH0
000025b1: MSTORE
000025b2: PUSH1 0x20
000025b4: PUSH0
000025b5: KECCAK256
000025b6: ADD
000025b7: PUSH0
000025b8: PUSH2 0x0100
000025bb: EXP
000025bc: DUP2
000025bd: SLOAD
000025be: DUP2
000025bf: PUSH1 0x01
000025c1: PUSH1 0x01
000025c3: PUSH1 0xa0
000025c5: SHL
000025c6: SUB
000025c7: MUL
000025c8: NOT
000025c9: AND
000025ca: SWAP1
000025cb: DUP4
000025cc: PUSH1 0x01
000025ce: PUSH1 0x01
000025d0: PUSH1 0xa0
000025d2: SHL
000025d3: SUB
000025d4: AND
000025d5: MUL
000025d6: OR
000025d7: SWAP1
000025d8: SSTORE
000025d9: POP
000025da: DUP2
000025db: PUSH1 0x09
000025dd: PUSH0
000025de: PUSH1 0x08
000025e0: DUP6
000025e1: DUP2
000025e2: SLOAD
000025e3: DUP2
000025e4: LT
000025e5: PUSH2 0x25f0
000025e8: JUMPI
000025e9: PUSH2 0x25f0
000025ec: PUSH2 0x3eae
000025ef: JUMP
000025f0: JUMPDEST
000025f1: PUSH0
000025f2: SWAP2
000025f3: DUP3
000025f4: MSTORE
000025f5: PUSH1 0x20
000025f7: DUP1
000025f8: DUP4
000025f9: KECCAK256
000025fa: SWAP1
000025fb: SWAP2
000025fc: ADD
000025fd: SLOAD
000025fe: PUSH1 0x01
00002600: PUSH1 0x01
00002602: PUSH1 0xa0
00002604: SHL
00002605: SUB
00002606: AND
00002607: DUP4
00002608: MSTORE
00002609: DUP3
0000260a: ADD
0000260b: SWAP3
0000260c: SWAP1
0000260d: SWAP3
0000260e: MSTORE
0000260f: PUSH1 0x40
00002611: ADD
00002612: SWAP1
00002613: KECCAK256
00002614: PUSH1 0x01
00002616: ADD
00002617: SSTORE
00002618: PUSH1 0x08
0000261a: DUP1
0000261b: SLOAD
0000261c: DUP1
0000261d: PUSH2 0x2628
00002620: JUMPI
00002621: PUSH2 0x2628
00002624: PUSH2 0x3ec2
00002627: JUMP
00002628: JUMPDEST
00002629: PUSH0
0000262a: DUP3
0000262b: DUP2
0000262c: MSTORE
0000262d: PUSH1 0x20
0000262f: DUP1
00002630: DUP3
00002631: KECCAK256
00002632: PUSH0
00002633: NOT
00002634: SWAP1
00002635: DUP5
00002636: ADD
00002637: DUP2
00002638: ADD
00002639: DUP1
0000263a: SLOAD
0000263b: PUSH1 0x01
0000263d: PUSH1 0x01
0000263f: PUSH1 0xa0
00002641: SHL
00002642: SUB
00002643: NOT
00002644: AND
00002645: SWAP1
00002646: SSTORE
00002647: SWAP1
00002648: SWAP3
00002649: ADD
0000264a: SWAP1
0000264b: SWAP3
0000264c: SSTORE
0000264d: PUSH1 0x40
0000264f: DUP1
00002650: MLOAD
00002651: PUSH1 0x60
00002653: DUP2
00002654: ADD
00002655: DUP3
00002656: MSTORE
00002657: DUP4
00002658: DUP2
00002659: MSTORE
0000265a: DUP1
0000265b: DUP4
0000265c: ADD
0000265d: DUP5
0000265e: DUP2
0000265f: MSTORE
00002660: DUP2
00002661: DUP4
00002662: ADD
00002663: DUP6
00002664: DUP2
00002665: MSTORE
00002666: PUSH1 0x01
00002668: PUSH1 0x01
0000266a: PUSH1 0xa0
0000266c: SHL
0000266d: SUB
0000266e: DUP10
0000266f: AND
00002670: DUP1
00002671: DUP8
00002672: MSTORE
00002673: PUSH1 0x09
00002675: SWAP1
00002676: SWAP6
00002677: MSTORE
00002678: SWAP5
00002679: DUP4
0000267a: SWAP1
0000267b: KECCAK256
0000267c: SWAP2
0000267d: MLOAD
0000267e: DUP3
0000267f: SLOAD
00002680: PUSH1 0xff
00002682: NOT
00002683: AND
00002684: SWAP1
00002685: ISZERO
00002686: ISZERO
00002687: OR
00002688: DUP3
00002689: SSTORE
0000268a: MLOAD
0000268b: PUSH1 0x01
0000268d: DUP3
0000268e: ADD
0000268f: SSTORE
00002690: SWAP3
00002691: MLOAD
00002692: PUSH1 0x02
00002694: SWAP1
00002695: SWAP4
00002696: ADD
00002697: SWAP3
00002698: SWAP1
00002699: SWAP3
0000269a: SSTORE
0000269b: SWAP1
0000269c: MLOAD
0000269d: PUSH4 0x70a08231
000026a2: PUSH1 0xe0
000026a4: SHL
000026a5: DUP2
000026a6: MSTORE
000026a7: ADDRESS
000026a8: PUSH1 0x04
000026aa: DUP3
000026ab: ADD
000026ac: MSTORE
000026ad: PUSH2 0x2702
000026b0: SWAP2
000026b1: DUP6
000026b2: SWAP2
000026b3: CALLER
000026b4: SWAP2
000026b5: SWAP1
000026b6: PUSH4 0x70a08231
000026bb: SWAP1
000026bc: PUSH1 0x24
000026be: ADD
000026bf: PUSH1 0x20
000026c1: PUSH1 0x40
000026c3: MLOAD
000026c4: DUP1
000026c5: DUP4
000026c6: SUB
000026c7: DUP2
000026c8: DUP7
000026c9: GAS
000026ca: STATICCALL
000026cb: ISZERO
000026cc: DUP1
000026cd: ISZERO
000026ce: PUSH2 0x26d9
000026d1: JUMPI
000026d2: RETURNDATASIZE
000026d3: PUSH0
000026d4: DUP1
000026d5: RETURNDATACOPY
000026d6: RETURNDATASIZE
000026d7: PUSH0
000026d8: REVERT
000026d9: JUMPDEST
000026da: POP
000026db: POP
000026dc: POP
000026dd: POP
000026de: PUSH1 0x40
000026e0: MLOAD
000026e1: RETURNDATASIZE
000026e2: PUSH1 0x1f
000026e4: NOT
000026e5: PUSH1 0x1f
000026e7: DUP3
000026e8: ADD
000026e9: AND
000026ea: DUP3
000026eb: ADD
000026ec: DUP1
000026ed: PUSH1 0x40
000026ef: MSTORE
000026f0: POP
000026f1: DUP2
000026f2: ADD
000026f3: SWAP1
000026f4: PUSH2 0x26fd
000026f7: SWAP2
000026f8: SWAP1
000026f9: PUSH2 0x3d33
000026fc: JUMP
000026fd: JUMPDEST
000026fe: PUSH2 0x3028
00002701: JUMP
00002702: JUMPDEST
00002703: POP
00002704: PUSH2 0x126f
00002707: SWAP1
00002708: POP
00002709: PUSH0
0000270a: PUSH2 0x2ddf
0000270d: JUMP
0000270e: JUMPDEST
0000270f: PUSH0
00002710: PUSH0
00002711: DUP1
00002712: MLOAD
00002713: PUSH1 0x20
00002715: PUSH2 0x3f08
00002718: DUP4
00002719: CODECOPY
0000271a: DUP2
0000271b: MLOAD
0000271c: SWAP2
0000271d: MSTORE
0000271e: TLOAD
0000271f: ISZERO
00002720: PUSH2 0x273c
00002723: JUMPI
00002724: PUSH1 0x40
00002726: MLOAD
00002727: PUSH4 0xd56a08b5
0000272c: PUSH1 0xe0
0000272e: SHL
0000272f: DUP2
00002730: MSTORE
00002731: PUSH1 0x04
00002733: ADD
00002734: PUSH1 0x40
00002736: MLOAD
00002737: DUP1
00002738: SWAP2
00002739: SUB
0000273a: SWAP1
0000273b: REVERT
0000273c: JUMPDEST
0000273d: POP
0000273e: PUSH1 0x06
00002740: SLOAD
00002741: SWAP1
00002742: JUMP
00002743: JUMPDEST
00002744: CALLER
00002745: PUSH0
00002746: DUP2
00002747: DUP2
00002748: MSTORE
00002749: PUSH1 0x01
0000274b: PUSH1 0x20
0000274d: SWAP1
0000274e: DUP2
0000274f: MSTORE
00002750: PUSH1 0x40
00002752: DUP1
00002753: DUP4
00002754: KECCAK256
00002755: PUSH1 0x01
00002757: PUSH1 0x01
00002759: PUSH1 0xa0
0000275b: SHL
0000275c: SUB
0000275d: DUP8
0000275e: AND
0000275f: DUP5
00002760: MSTORE
00002761: SWAP1
00002762: SWAP2
00002763: MSTORE
00002764: DUP2
00002765: KECCAK256
00002766: SLOAD
00002767: SWAP1
00002768: SWAP2
00002769: PUSH2 0x2779
0000276c: SWAP2
0000276d: DUP6
0000276e: SWAP1
0000276f: PUSH2 0x163a
00002772: SWAP1
00002773: DUP7
00002774: SWAP1
00002775: PUSH2 0x3e5a
00002778: JUMP
00002779: JUMPDEST
0000277a: POP
0000277b: PUSH1 0x01
0000277d: SWAP3
0000277e: SWAP2
0000277f: POP
00002780: POP
00002781: JUMP
00002782: JUMPDEST
00002783: CALLER
00002784: PUSH1 0x01
00002786: PUSH1 0x01
00002788: PUSH1 0xa0
0000278a: SHL
0000278b: SUB
0000278c: AND
0000278d: PUSH0
0000278e: CALLDATALOAD
0000278f: PUSH1 0x01
00002791: PUSH1 0x01
00002793: PUSH1 0xe0
00002795: SHL
00002796: SUB
00002797: NOT
00002798: AND
00002799: PUSH1 0x01
0000279b: PUSH1 0x01
0000279d: PUSH1 0xe0
0000279f: SHL
000027a0: SUB
000027a1: NOT
000027a2: AND
000027a3: PUSH0
000027a4: CALLDATASIZE
000027a5: PUSH1 0x40
000027a7: MLOAD
000027a8: PUSH2 0x27b2
000027ab: SWAP3
000027ac: SWAP2
000027ad: SWAP1
000027ae: PUSH2 0x3e6d
000027b1: JUMP
000027b2: JUMPDEST
000027b3: PUSH1 0x40
000027b5: MLOAD
000027b6: DUP1
000027b7: SWAP2
000027b8: SUB
000027b9: SWAP1
000027ba: LOG2
000027bb: PUSH0
000027bc: DUP1
000027bd: MLOAD
000027be: PUSH1 0x20
000027c0: PUSH2 0x3f08
000027c3: DUP4
000027c4: CODECOPY
000027c5: DUP2
000027c6: MLOAD
000027c7: SWAP2
000027c8: MSTORE
000027c9: TLOAD
000027ca: ISZERO
000027cb: PUSH2 0x27e7
000027ce: JUMPI
000027cf: PUSH1 0x40
000027d1: MLOAD
000027d2: PUSH4 0xd56a08b5
000027d7: PUSH1 0xe0
000027d9: SHL
000027da: DUP2
000027db: MSTORE
000027dc: PUSH1 0x04
000027de: ADD
000027df: PUSH1 0x40
000027e1: MLOAD
000027e2: DUP1
000027e3: SWAP2
000027e4: SUB
000027e5: SWAP1
000027e6: REVERT
000027e7: JUMPDEST
000027e8: PUSH2 0x27f1
000027eb: PUSH1 0x01
000027ed: PUSH2 0x2ddf
000027f0: JUMP
000027f1: JUMPDEST
000027f2: PUSH1 0x05
000027f4: SLOAD
000027f5: PUSH1 0x01
000027f7: PUSH1 0x01
000027f9: PUSH1 0xa0
000027fb: SHL
000027fc: SUB
000027fd: AND
000027fe: CALLER
000027ff: EQ
00002800: PUSH2 0x281c
00002803: JUMPI
00002804: PUSH1 0x40
00002806: MLOAD
00002807: PUSH4 0x4f0f5499
0000280c: PUSH1 0xe1
0000280e: SHL
0000280f: DUP2
00002810: MSTORE
00002811: PUSH1 0x04
00002813: ADD
00002814: PUSH1 0x40
00002816: MLOAD
00002817: DUP1
00002818: SWAP2
00002819: SUB
0000281a: SWAP1
0000281b: REVERT
0000281c: JUMPDEST
0000281d: PUSH1 0x07
0000281f: SLOAD
00002820: PUSH1 0xff
00002822: AND
00002823: ISZERO
00002824: PUSH2 0x2840
00002827: JUMPI
00002828: PUSH1 0x40
0000282a: MLOAD
0000282b: PUSH4 0x056f633d
00002830: PUSH1 0xe2
00002832: SHL
00002833: DUP2
00002834: MSTORE
00002835: PUSH1 0x04
00002837: ADD
00002838: PUSH1 0x40
0000283a: MLOAD
0000283b: DUP1
0000283c: SWAP2
0000283d: SUB
0000283e: SWAP1
0000283f: REVERT
00002840: JUMPDEST
00002841: PUSH1 0x01
00002843: PUSH1 0x01
00002845: PUSH1 0xa0
00002847: SHL
00002848: SUB
00002849: DUP4
0000284a: AND
0000284b: PUSH0
0000284c: SWAP1
0000284d: DUP2
0000284e: MSTORE
0000284f: PUSH1 0x09
00002851: PUSH1 0x20
00002853: MSTORE
00002854: PUSH1 0x40
00002856: SWAP1
00002857: KECCAK256
00002858: SLOAD
00002859: PUSH1 0xff
0000285b: AND
0000285c: ISZERO
0000285d: PUSH2 0x2879
00002860: JUMPI
00002861: PUSH1 0x40
00002863: MLOAD
00002864: PUSH4 0x6b1ed1b7
00002869: PUSH1 0xe1
0000286b: SHL
0000286c: DUP2
0000286d: MSTORE
0000286e: PUSH1 0x04
00002870: ADD
00002871: PUSH1 0x40
00002873: MLOAD
00002874: DUP1
00002875: SWAP2
00002876: SUB
00002877: SWAP1
00002878: REVERT
00002879: JUMPDEST
0000287a: PUSH1 0x08
0000287c: DUP1
0000287d: SLOAD
0000287e: LT
0000287f: PUSH2 0x289b
00002882: JUMPI
00002883: PUSH1 0x40
00002885: MLOAD
00002886: PUSH4 0xc47f9e93
0000288b: PUSH1 0xe0
0000288d: SHL
0000288e: DUP2
0000288f: MSTORE
00002890: PUSH1 0x04
00002892: ADD
00002893: PUSH1 0x40
00002895: MLOAD
00002896: DUP1
00002897: SWAP2
00002898: SUB
00002899: SWAP1
0000289a: REVERT
0000289b: JUMPDEST
0000289c: PUSH8 0x0de0b6b3a7640000
000028a5: DUP2
000028a6: LT
000028a7: ISZERO
000028a8: PUSH2 0x28c4
000028ab: JUMPI
000028ac: PUSH1 0x40
000028ae: MLOAD
000028af: PUSH4 0x42eb0243
000028b4: PUSH1 0xe0
000028b6: SHL
000028b7: DUP2
000028b8: MSTORE
000028b9: PUSH1 0x04
000028bb: ADD
000028bc: PUSH1 0x40
000028be: MLOAD
000028bf: DUP1
000028c0: SWAP2
000028c1: SUB
000028c2: SWAP1
000028c3: REVERT
000028c4: JUMPDEST
000028c5: PUSH2 0x28d7
000028c8: PUSH8 0x0de0b6b3a7640000
000028d1: PUSH1 0x32
000028d3: PUSH2 0x3d1c
000028d6: JUMP
000028d7: JUMPDEST
000028d8: DUP2
000028d9: GT
000028da: ISZERO
000028db: PUSH2 0x28f7
000028de: JUMPI
000028df: PUSH1 0x40
000028e1: MLOAD
000028e2: PUSH4 0x0cbe7843
000028e7: PUSH1 0xe1
000028e9: SHL
000028ea: DUP2
000028eb: MSTORE
000028ec: PUSH1 0x04
000028ee: ADD
000028ef: PUSH1 0x40
000028f1: MLOAD
000028f2: DUP1
000028f3: SWAP2
000028f4: SUB
000028f5: SWAP1
000028f6: REVERT
000028f7: JUMPDEST
000028f8: PUSH2 0x290e
000028fb: PUSH5 0xe8d4a51000
00002901: PUSH8 0x0de0b6b3a7640000
0000290a: PUSH2 0x3e3b
0000290d: JUMP
0000290e: JUMPDEST
0000290f: DUP3
00002910: LT
00002911: ISZERO
00002912: PUSH2 0x292e
00002915: JUMPI
00002916: PUSH1 0x40
00002918: MLOAD
00002919: PUSH4 0x8968448b
0000291e: PUSH1 0xe0
00002920: SHL
00002921: DUP2
00002922: MSTORE
00002923: PUSH1 0x04
00002925: ADD
00002926: PUSH1 0x40
00002928: MLOAD
00002929: DUP1
0000292a: SWAP2
0000292b: SUB
0000292c: SWAP1
0000292d: REVERT
0000292e: JUMPDEST
0000292f: PUSH2 0x293a
00002932: PUSH1 0x0a
00002934: SLOAD
00002935: DUP3
00002936: PUSH2 0x2fcb
00002939: JUMP
0000293a: JUMPDEST
0000293b: PUSH1 0x0a
0000293d: SSTORE
0000293e: PUSH2 0x2950
00002941: PUSH8 0x0de0b6b3a7640000
0000294a: PUSH1 0x32
0000294c: PUSH2 0x3d1c
0000294f: JUMP
00002950: JUMPDEST
00002951: PUSH1 0x0a
00002953: SLOAD
00002954: GT
00002955: ISZERO
00002956: PUSH2 0x2972
00002959: JUMPI
0000295a: PUSH1 0x40
0000295c: MLOAD
0000295d: PUSH4 0x42f71f0b
00002962: PUSH1 0xe0
00002964: SHL
00002965: DUP2
00002966: MSTORE
00002967: PUSH1 0x04
00002969: ADD
0000296a: PUSH1 0x40
0000296c: MLOAD
0000296d: DUP1
0000296e: SWAP2
0000296f: SUB
00002970: SWAP1
00002971: REVERT
00002972: JUMPDEST
00002973: PUSH1 0x40
00002975: DUP1
00002976: MLOAD
00002977: PUSH1 0x60
00002979: DUP2
0000297a: ADD
0000297b: DUP3
0000297c: MSTORE
0000297d: PUSH1 0x01
0000297f: DUP1
00002980: DUP3
00002981: MSTORE
00002982: PUSH1 0x08
00002984: DUP1
00002985: SLOAD
00002986: PUSH1 0x20
00002988: DUP1
00002989: DUP6
0000298a: ADD
0000298b: SWAP2
0000298c: DUP3
0000298d: MSTORE
0000298e: DUP5
0000298f: DUP7
00002990: ADD
00002991: DUP8
00002992: DUP2
00002993: MSTORE
00002994: PUSH1 0x01
00002996: PUSH1 0x01
00002998: PUSH1 0xa0
0000299a: SHL
0000299b: SUB
0000299c: DUP11
0000299d: AND
0000299e: PUSH0
0000299f: DUP2
000029a0: DUP2
000029a1: MSTORE
000029a2: PUSH1 0x09
000029a4: SWAP1
000029a5: SWAP4
000029a6: MSTORE
000029a7: SWAP7
000029a8: DUP3
000029a9: KECCAK256
000029aa: SWAP6
000029ab: MLOAD
000029ac: DUP7
000029ad: SLOAD
000029ae: PUSH1 0xff
000029b0: NOT
000029b1: AND
000029b2: SWAP1
000029b3: ISZERO
000029b4: ISZERO
000029b5: OR
000029b6: DUP7
000029b7: SSTORE
000029b8: SWAP2
000029b9: MLOAD
000029ba: DUP6
000029bb: DUP6
000029bc: ADD
000029bd: SSTORE
000029be: SWAP1
000029bf: MLOAD
000029c0: PUSH1 0x02
000029c2: SWAP1
000029c3: SWAP5
000029c4: ADD
000029c5: SWAP4
000029c6: SWAP1
000029c7: SWAP4
000029c8: SSTORE
000029c9: DUP1
000029ca: SLOAD
000029cb: SWAP2
000029cc: DUP3
000029cd: ADD
000029ce: DUP2
000029cf: SSTORE
000029d0: SWAP1
000029d1: SWAP2
000029d2: MSTORE
000029d3: PUSH32 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3
000029f4: ADD
000029f5: DUP1
000029f6: SLOAD
000029f7: PUSH1 0x01
000029f9: PUSH1 0x01
000029fb: PUSH1 0xa0
000029fd: SHL
000029fe: SUB
000029ff: NOT
00002a00: AND
00002a01: SWAP1
00002a02: SWAP2
00002a03: OR
00002a04: SWAP1
00002a05: SSTORE
00002a06: PUSH2 0x2a10
00002a09: DUP4
00002a0a: CALLER
00002a0b: DUP5
00002a0c: PUSH2 0x2fb6
00002a0f: JUMP
00002a10: JUMPDEST
00002a11: PUSH2 0x15eb
00002a14: PUSH0
00002a15: PUSH2 0x2ddf
00002a18: JUMP
00002a19: JUMPDEST
00002a1a: PUSH0
00002a1b: DUP1
00002a1c: MLOAD
00002a1d: PUSH1 0x20
00002a1f: PUSH2 0x3f08
00002a22: DUP4
00002a23: CODECOPY
00002a24: DUP2
00002a25: MLOAD
00002a26: SWAP2
00002a27: MSTORE
00002a28: TLOAD
00002a29: ISZERO
00002a2a: PUSH2 0x2a46
00002a2d: JUMPI
00002a2e: PUSH1 0x40
00002a30: MLOAD
00002a31: PUSH4 0xd56a08b5
00002a36: PUSH1 0xe0
00002a38: SHL
00002a39: DUP2
00002a3a: MSTORE
00002a3b: PUSH1 0x04
00002a3d: ADD
00002a3e: PUSH1 0x40
00002a40: MLOAD
00002a41: DUP1
00002a42: SWAP2
00002a43: SUB
00002a44: SWAP1
00002a45: REVERT
00002a46: JUMPDEST
00002a47: CALLER
00002a48: PUSH1 0x01
00002a4a: PUSH1 0x01
00002a4c: PUSH1 0xa0
00002a4e: SHL
00002a4f: SUB
00002a50: PUSH32 0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41
00002a71: AND
00002a72: EQ
00002a73: PUSH2 0x2a8f
00002a76: JUMPI
00002a77: PUSH1 0x40
00002a79: MLOAD
00002a7a: PUSH4 0xbf848977
00002a7f: PUSH1 0xe0
00002a81: SHL
00002a82: DUP2
00002a83: MSTORE
00002a84: PUSH1 0x04
00002a86: ADD
00002a87: PUSH1 0x40
00002a89: MLOAD
00002a8a: DUP1
00002a8b: SWAP2
00002a8c: SUB
00002a8d: SWAP1
00002a8e: REVERT
00002a8f: JUMPDEST
00002a90: PUSH2 0x126f
00002a93: DUP2
00002a94: PUSH2 0x2ddf
00002a97: JUMP
00002a98: JUMPDEST
00002a99: PUSH0
00002a9a: PUSH0
00002a9b: DUP1
00002a9c: MLOAD
00002a9d: PUSH1 0x20
00002a9f: PUSH2 0x3f08
00002aa2: DUP4
00002aa3: CODECOPY
00002aa4: DUP2
00002aa5: MLOAD
00002aa6: SWAP2
00002aa7: MSTORE
00002aa8: TLOAD
00002aa9: ISZERO
00002aaa: PUSH2 0x2ac6
00002aad: JUMPI
00002aae: PUSH1 0x40
00002ab0: MLOAD
00002ab1: PUSH4 0xd56a08b5
00002ab6: PUSH1 0xe0
00002ab8: SHL
00002ab9: DUP2
00002aba: MSTORE
00002abb: PUSH1 0x04
00002abd: ADD
00002abe: PUSH1 0x40
00002ac0: MLOAD
00002ac1: DUP1
00002ac2: SWAP2
00002ac3: SUB
00002ac4: SWAP1
00002ac5: REVERT
00002ac6: JUMPDEST
00002ac7: PUSH1 0x01
00002ac9: PUSH1 0x01
00002acb: PUSH1 0xa0
00002acd: SHL
00002ace: SUB
00002acf: DUP3
00002ad0: AND
00002ad1: PUSH0
00002ad2: SWAP1
00002ad3: DUP2
00002ad4: MSTORE
00002ad5: PUSH1 0x09
00002ad7: PUSH1 0x20
00002ad9: MSTORE
00002ada: PUSH1 0x40
00002adc: SWAP1
00002add: KECCAK256
00002ade: SLOAD
00002adf: PUSH1 0xff
00002ae1: AND
00002ae2: PUSH2 0x2afe
00002ae5: JUMPI
00002ae6: PUSH1 0x40
00002ae8: MLOAD
00002ae9: PUSH4 0x4b16fc2d
00002aee: PUSH1 0xe1
00002af0: SHL
00002af1: DUP2
00002af2: MSTORE
00002af3: PUSH1 0x04
00002af5: ADD
00002af6: PUSH1 0x40
00002af8: MLOAD
00002af9: DUP1
00002afa: SWAP2
00002afb: SUB
00002afc: SWAP1
00002afd: REVERT
00002afe: JUMPDEST
00002aff: PUSH1 0x01
00002b01: PUSH1 0x01
00002b03: PUSH1 0xa0
00002b05: SHL
00002b06: SUB
00002b07: DUP3
00002b08: AND
00002b09: PUSH0
00002b0a: SWAP1
00002b0b: DUP2
00002b0c: MSTORE
00002b0d: PUSH1 0x09
00002b0f: PUSH1 0x20
00002b11: MSTORE
00002b12: PUSH1 0x40
00002b14: SWAP1
00002b15: KECCAK256
00002b16: PUSH1 0x02
00002b18: ADD
00002b19: SLOAD
00002b1a: PUSH1 0x0a
00002b1c: SLOAD
00002b1d: PUSH2 0x0da3
00002b20: SWAP1
00002b21: DUP3
00002b22: SWAP1
00002b23: PUSH2 0x2f0e
00002b26: JUMP
00002b27: JUMPDEST
00002b28: PUSH0
00002b29: PUSH0
00002b2a: DUP1
00002b2b: MLOAD
00002b2c: PUSH1 0x20
00002b2e: PUSH2 0x3f08
00002b31: DUP4
00002b32: CODECOPY
00002b33: DUP2
00002b34: MLOAD
00002b35: SWAP2
00002b36: MSTORE
00002b37: TLOAD
00002b38: ISZERO
00002b39: PUSH2 0x2b55
00002b3c: JUMPI
00002b3d: PUSH1 0x40
00002b3f: MLOAD
00002b40: PUSH4 0xd56a08b5
00002b45: PUSH1 0xe0
00002b47: SHL
00002b48: DUP2
00002b49: MSTORE
00002b4a: PUSH1 0x04
00002b4c: ADD
00002b4d: PUSH1 0x40
00002b4f: MLOAD
00002b50: DUP1
00002b51: SWAP2
00002b52: SUB
00002b53: SWAP1
00002b54: REVERT
00002b55: JUMPDEST
00002b56: PUSH1 0x01
00002b58: PUSH1 0x01
00002b5a: PUSH1 0xa0
00002b5c: SHL
00002b5d: SUB
00002b5e: DUP3
00002b5f: AND
00002b60: PUSH0
00002b61: SWAP1
00002b62: DUP2
00002b63: MSTORE
00002b64: PUSH1 0x09
00002b66: PUSH1 0x20
00002b68: MSTORE
00002b69: PUSH1 0x40
00002b6b: SWAP1
00002b6c: KECCAK256
00002b6d: SLOAD
00002b6e: PUSH1 0xff
00002b70: AND
00002b71: PUSH2 0x2b8d
00002b74: JUMPI
00002b75: PUSH1 0x40
00002b77: MLOAD
00002b78: PUSH4 0x4b16fc2d
00002b7d: PUSH1 0xe1
00002b7f: SHL
00002b80: DUP2
00002b81: MSTORE
00002b82: PUSH1 0x04
00002b84: ADD
00002b85: PUSH1 0x40
00002b87: MLOAD
00002b88: DUP1
00002b89: SWAP2
00002b8a: SUB
00002b8b: SWAP1
00002b8c: REVERT
00002b8d: JUMPDEST
00002b8e: PUSH1 0x40
00002b90: MLOAD
00002b91: PUSH4 0x70a08231
00002b96: PUSH1 0xe0
00002b98: SHL
00002b99: DUP2
00002b9a: MSTORE
00002b9b: ADDRESS
00002b9c: PUSH1 0x04
00002b9e: DUP3
00002b9f: ADD
00002ba0: MSTORE
00002ba1: PUSH1 0x01
00002ba3: PUSH1 0x01
00002ba5: PUSH1 0xa0
00002ba7: SHL
00002ba8: SUB
00002ba9: DUP4
00002baa: AND
00002bab: SWAP1
00002bac: PUSH4 0x70a08231
00002bb1: SWAP1
00002bb2: PUSH1 0x24
00002bb4: ADD
00002bb5: PUSH1 0x20
00002bb7: PUSH1 0x40
00002bb9: MLOAD
00002bba: DUP1
00002bbb: DUP4
00002bbc: SUB
00002bbd: DUP2
00002bbe: DUP7
00002bbf: GAS
00002bc0: STATICCALL
00002bc1: ISZERO
00002bc2: DUP1
00002bc3: ISZERO
00002bc4: PUSH2 0x2bcf
00002bc7: JUMPI
00002bc8: RETURNDATASIZE
00002bc9: PUSH0
00002bca: DUP1
00002bcb: RETURNDATACOPY
00002bcc: RETURNDATASIZE
00002bcd: PUSH0
00002bce: REVERT
00002bcf: JUMPDEST
00002bd0: POP
00002bd1: POP
00002bd2: POP
00002bd3: POP
00002bd4: PUSH1 0x40
00002bd6: MLOAD
00002bd7: RETURNDATASIZE
00002bd8: PUSH1 0x1f
00002bda: NOT
00002bdb: PUSH1 0x1f
00002bdd: DUP3
00002bde: ADD
00002bdf: AND
00002be0: DUP3
00002be1: ADD
00002be2: DUP1
00002be3: PUSH1 0x40
00002be5: MSTORE
00002be6: POP
00002be7: DUP2
00002be8: ADD
00002be9: SWAP1
00002bea: PUSH2 0x08e9
00002bed: SWAP2
00002bee: SWAP1
00002bef: PUSH2 0x3d33
00002bf2: JUMP
00002bf3: JUMPDEST
00002bf4: PUSH0
00002bf5: DUP1
00002bf6: PUSH2 0x2bff
00002bf9: DUP6
00002bfa: DUP9
00002bfb: PUSH2 0x2f0e
00002bfe: JUMP
00002bff: JUMPDEST
00002c00: SWAP1
00002c01: POP
00002c02: PUSH0
00002c03: PUSH2 0x2c0c
00002c06: DUP8
00002c07: DUP7
00002c08: PUSH2 0x2ff0
00002c0b: JUMP
00002c0c: JUMPDEST
00002c0d: SWAP1
00002c0e: POP
00002c0f: PUSH0
00002c10: PUSH2 0x2c19
00002c13: DUP9
00002c14: DUP4
00002c15: PUSH2 0x2f0e
00002c18: JUMP
00002c19: JUMPDEST
00002c1a: SWAP1
00002c1b: POP
00002c1c: PUSH0
00002c1d: PUSH2 0x2c26
00002c20: DUP3
00002c21: DUP6
00002c22: PUSH2 0x3050
00002c25: JUMP
00002c26: JUMPDEST
00002c27: SWAP1
00002c28: POP
00002c29: PUSH2 0x2c3a
00002c2c: DUP2
00002c2d: PUSH8 0x0de0b6b3a7640000
00002c36: PUSH2 0x2ff0
00002c39: JUMP
00002c3a: JUMPDEST
00002c3b: SWAP1
00002c3c: POP
00002c3d: PUSH2 0x2c4e
00002c40: PUSH8 0x0de0b6b3a7640000
00002c49: DUP8
00002c4a: PUSH2 0x2ff0
00002c4d: JUMP
00002c4e: JUMPDEST
00002c4f: SWAP5
00002c50: POP
00002c51: PUSH2 0x2c63
00002c54: PUSH2 0x2c5d
00002c57: DUP13
00002c58: DUP4
00002c59: PUSH2 0x2d5c
00002c5c: JUMP
00002c5d: JUMPDEST
00002c5e: DUP7
00002c5f: PUSH2 0x2f0e
00002c62: JUMP
00002c63: JUMPDEST
00002c64: SWAP12
00002c65: SWAP11
00002c66: POP
00002c67: POP
00002c68: POP
00002c69: POP
00002c6a: POP
00002c6b: POP
00002c6c: POP
00002c6d: POP
00002c6e: POP
00002c6f: POP
00002c70: POP
00002c71: JUMP
00002c72: JUMPDEST
00002c73: PUSH2 0x15eb
00002c76: DUP4
00002c77: DUP4
00002c78: DUP4
00002c79: PUSH1 0x01
00002c7b: PUSH2 0x3105
00002c7e: JUMP
00002c7f: JUMPDEST
00002c80: PUSH1 0x01
00002c82: PUSH1 0x01
00002c84: PUSH1 0xa0
00002c86: SHL
00002c87: SUB
00002c88: DUP4
00002c89: DUP2
00002c8a: AND
00002c8b: PUSH0
00002c8c: SWAP1
00002c8d: DUP2
00002c8e: MSTORE
00002c8f: PUSH1 0x01
00002c91: PUSH1 0x20
00002c93: SWAP1
00002c94: DUP2
00002c95: MSTORE
00002c96: PUSH1 0x40
00002c98: DUP1
00002c99: DUP4
00002c9a: KECCAK256
00002c9b: SWAP4
00002c9c: DUP7
00002c9d: AND
00002c9e: DUP4
00002c9f: MSTORE
00002ca0: SWAP3
00002ca1: SWAP1
00002ca2: MSTORE
00002ca3: KECCAK256
00002ca4: SLOAD
00002ca5: PUSH0
00002ca6: NOT
00002ca7: DUP2
00002ca8: EQ
00002ca9: PUSH2 0x2cf9
00002cac: JUMPI
00002cad: DUP2
00002cae: DUP2
00002caf: LT
00002cb0: ISZERO
00002cb1: PUSH2 0x2ceb
00002cb4: JUMPI
00002cb5: PUSH1 0x40
00002cb7: MLOAD
00002cb8: PUSH4 0x7dc7a0d9
00002cbd: PUSH1 0xe1
00002cbf: SHL
00002cc0: DUP2
00002cc1: MSTORE
00002cc2: PUSH1 0x01
00002cc4: PUSH1 0x01
00002cc6: PUSH1 0xa0
00002cc8: SHL
00002cc9: SUB
00002cca: DUP5
00002ccb: AND
00002ccc: PUSH1 0x04
00002cce: DUP3
00002ccf: ADD
00002cd0: MSTORE
00002cd1: PUSH1 0x24
00002cd3: DUP2
00002cd4: ADD
00002cd5: DUP3
00002cd6: SWAP1
00002cd7: MSTORE
00002cd8: PUSH1 0x44
00002cda: DUP2
00002cdb: ADD
00002cdc: DUP4
00002cdd: SWAP1
00002cde: MSTORE
00002cdf: PUSH1 0x64
00002ce1: ADD
00002ce2: JUMPDEST
00002ce3: PUSH1 0x40
00002ce5: MLOAD
00002ce6: DUP1
00002ce7: SWAP2
00002ce8: SUB
00002ce9: SWAP1
00002cea: REVERT
00002ceb: JUMPDEST
00002cec: PUSH2 0x2cf9
00002cef: DUP5
00002cf0: DUP5
00002cf1: DUP5
00002cf2: DUP5
00002cf3: SUB
00002cf4: PUSH0
00002cf5: PUSH2 0x3105
00002cf8: JUMP
00002cf9: JUMPDEST
00002cfa: POP
00002cfb: POP
00002cfc: POP
00002cfd: POP
00002cfe: JUMP
00002cff: JUMPDEST
00002d00: PUSH1 0x01
00002d02: PUSH1 0x01
00002d04: PUSH1 0xa0
00002d06: SHL
00002d07: SUB
00002d08: DUP4
00002d09: AND
00002d0a: PUSH2 0x2d28
00002d0d: JUMPI
00002d0e: PUSH1 0x40
00002d10: MLOAD
00002d11: PUSH4 0x4b637e8f
00002d16: PUSH1 0xe1
00002d18: SHL
00002d19: DUP2
00002d1a: MSTORE
00002d1b: PUSH0
00002d1c: PUSH1 0x04
00002d1e: DUP3
00002d1f: ADD
00002d20: MSTORE
00002d21: PUSH1 0x24
00002d23: ADD
00002d24: PUSH2 0x2ce2
00002d27: JUMP
00002d28: JUMPDEST
00002d29: PUSH1 0x01
00002d2b: PUSH1 0x01
00002d2d: PUSH1 0xa0
00002d2f: SHL
00002d30: SUB
00002d31: DUP3
00002d32: AND
00002d33: PUSH2 0x2d51
00002d36: JUMPI
00002d37: PUSH1 0x40
00002d39: MLOAD
00002d3a: PUSH4 0xec442f05
00002d3f: PUSH1 0xe0
00002d41: SHL
00002d42: DUP2
00002d43: MSTORE
00002d44: PUSH0
00002d45: PUSH1 0x04
00002d47: DUP3
00002d48: ADD
00002d49: MSTORE
00002d4a: PUSH1 0x24
00002d4c: ADD
00002d4d: PUSH2 0x2ce2
00002d50: JUMP
00002d51: JUMPDEST
00002d52: PUSH2 0x15eb
00002d55: DUP4
00002d56: DUP4
00002d57: DUP4
00002d58: PUSH2 0x31d7
00002d5b: JUMP
00002d5c: JUMPDEST
00002d5d: PUSH0
00002d5e: DUP3
00002d5f: DUP3
00002d60: MUL
00002d61: DUP4
00002d62: ISZERO
00002d63: DUP1
00002d64: ISZERO
00002d65: SWAP1
00002d66: PUSH2 0x2d7e
00002d69: JUMPI
00002d6a: POP
00002d6b: DUP3
00002d6c: DUP5
00002d6d: DUP3
00002d6e: DUP2
00002d6f: PUSH2 0x2d7a
00002d72: JUMPI
00002d73: PUSH2 0x2d7a
00002d76: PUSH2 0x3e27
00002d79: JUMP
00002d7a: JUMPDEST
00002d7b: DIV
00002d7c: EQ
00002d7d: ISZERO
00002d7e: JUMPDEST
00002d7f: ISZERO
00002d80: PUSH2 0x2d9c
00002d83: JUMPI
00002d84: PUSH1 0x40
00002d86: MLOAD
00002d87: PUSH4 0x202e377f
00002d8c: PUSH1 0xe0
00002d8e: SHL
00002d8f: DUP2
00002d90: MSTORE
00002d91: PUSH1 0x04
00002d93: ADD
00002d94: PUSH1 0x40
00002d96: MLOAD
00002d97: DUP1
00002d98: SWAP2
00002d99: SUB
00002d9a: SWAP1
00002d9b: REVERT
00002d9c: JUMPDEST
00002d9d: PUSH8 0x06f05b59d3b20000
00002da6: DUP2
00002da7: ADD
00002da8: DUP2
00002da9: DUP2
00002daa: LT
00002dab: ISZERO
00002dac: PUSH2 0x2dc8
00002daf: JUMPI
00002db0: PUSH1 0x40
00002db2: MLOAD
00002db3: PUSH4 0x202e377f
00002db8: PUSH1 0xe0
00002dba: SHL
00002dbb: DUP2
00002dbc: MSTORE
00002dbd: PUSH1 0x04
00002dbf: ADD
00002dc0: PUSH1 0x40
00002dc2: MLOAD
00002dc3: DUP1
00002dc4: SWAP2
00002dc5: SUB
00002dc6: SWAP1
00002dc7: REVERT
00002dc8: JUMPDEST
00002dc9: PUSH0
00002dca: PUSH8 0x0de0b6b3a7640000
00002dd3: DUP3
00002dd4: JUMPDEST
00002dd5: DIV
00002dd6: SWAP7
00002dd7: SWAP6
00002dd8: POP
00002dd9: POP
00002dda: POP
00002ddb: POP
00002ddc: POP
00002ddd: POP
00002dde: JUMP
00002ddf: JUMPDEST
00002de0: DUP1
00002de1: PUSH0
00002de2: DUP1
00002de3: MLOAD
00002de4: PUSH1 0x20
00002de6: PUSH2 0x3f08
00002de9: DUP4
00002dea: CODECOPY
00002deb: DUP2
00002dec: MLOAD
00002ded: SWAP2
00002dee: MSTORE
00002def: TSTORE
00002df0: POP
00002df1: JUMP
00002df2: JUMPDEST
00002df3: PUSH2 0x126f
00002df6: ADDRESS
00002df7: DUP3
00002df8: PUSH2 0x32fd
00002dfb: JUMP
00002dfc: JUMPDEST
00002dfd: PUSH2 0x2e06
00002e00: DUP3
00002e01: DUP3
00002e02: PUSH2 0x3331
00002e05: JUMP
00002e06: JUMPDEST
00002e07: POP
00002e08: POP
00002e09: JUMP
00002e0a: JUMPDEST
00002e0b: PUSH1 0x08
00002e0d: SLOAD
00002e0e: PUSH0
00002e0f: JUMPDEST
00002e10: DUP2
00002e11: DUP2
00002e12: LT
00002e13: ISZERO
00002e14: PUSH2 0x2e73
00002e17: JUMPI
00002e18: PUSH2 0x2e6b
00002e1b: PUSH32 0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110
00002e3c: PUSH0
00002e3d: NOT
00002e3e: PUSH1 0x08
00002e40: DUP5
00002e41: DUP2
00002e42: SLOAD
00002e43: DUP2
00002e44: LT
00002e45: PUSH2 0x2e50
00002e48: JUMPI
00002e49: PUSH2 0x2e50
00002e4c: PUSH2 0x3eae
00002e4f: JUMP
00002e50: JUMPDEST
00002e51: PUSH0
00002e52: SWAP2
00002e53: DUP3
00002e54: MSTORE
00002e55: PUSH1 0x20
00002e57: SWAP1
00002e58: SWAP2
00002e59: KECCAK256
00002e5a: ADD
00002e5b: SLOAD
00002e5c: PUSH1 0x01
00002e5e: PUSH1 0x01
00002e60: PUSH1 0xa0
00002e62: SHL
00002e63: SUB
00002e64: AND
00002e65: SWAP2
00002e66: SWAP1
00002e67: PUSH2 0x333c
00002e6a: JUMP
00002e6b: JUMPDEST
00002e6c: PUSH1 0x01
00002e6e: ADD
00002e6f: PUSH2 0x2e0f
00002e72: JUMP
00002e73: JUMPDEST
00002e74: POP
00002e75: PUSH32 0x000000000000000000000000f76c421bab7df8548604e60deccce50477c10462
00002e96: PUSH1 0x01
00002e98: PUSH1 0x01
00002e9a: PUSH1 0xa0
00002e9c: SHL
00002e9d: SUB
00002e9e: AND
00002e9f: PUSH4 0x52b8cb63
00002ea4: PUSH1 0x40
00002ea6: MLOAD
00002ea7: DUP2
00002ea8: PUSH4 0xffffffff
00002ead: AND
00002eae: PUSH1 0xe0
00002eb0: SHL
00002eb1: DUP2
00002eb2: MSTORE
00002eb3: PUSH1 0x04
00002eb5: ADD
00002eb6: PUSH0
00002eb7: PUSH1 0x40
00002eb9: MLOAD
00002eba: DUP1
00002ebb: DUP4
00002ebc: SUB
00002ebd: DUP2
00002ebe: PUSH0
00002ebf: DUP8
00002ec0: DUP1
00002ec1: EXTCODESIZE
00002ec2: ISZERO
00002ec3: DUP1
00002ec4: ISZERO
00002ec5: PUSH2 0x2ecc
00002ec8: JUMPI
00002ec9: PUSH0
00002eca: DUP1
00002ecb: REVERT
00002ecc: JUMPDEST
00002ecd: POP
00002ece: GAS
00002ecf: CALL
00002ed0: SWAP3
00002ed1: POP
00002ed2: POP
00002ed3: POP
00002ed4: DUP1
00002ed5: ISZERO
00002ed6: PUSH2 0x2edd
00002ed9: JUMPI
00002eda: POP
00002edb: PUSH1 0x01
00002edd: JUMPDEST
00002ede: PUSH2 0x126f
00002ee1: JUMPI
00002ee2: PUSH1 0x40
00002ee4: MLOAD
00002ee5: ADDRESS
00002ee6: SWAP1
00002ee7: PUSH32 0x0d03834d0d86c7f57e877af40e26f176dc31bd637535d4ba153d1ac9de88a7ea
00002f08: SWAP1
00002f09: PUSH0
00002f0a: SWAP1
00002f0b: LOG2
00002f0c: POP
00002f0d: JUMP
00002f0e: JUMPDEST
00002f0f: PUSH0
00002f10: DUP2
00002f11: PUSH0
00002f12: SUB
00002f13: PUSH2 0x2f2f
00002f16: JUMPI
00002f17: PUSH1 0x40
00002f19: MLOAD
00002f1a: PUSH4 0xabcf2e75
00002f1f: PUSH1 0xe0
00002f21: SHL
00002f22: DUP2
00002f23: MSTORE
00002f24: PUSH1 0x04
00002f26: ADD
00002f27: PUSH1 0x40
00002f29: MLOAD
00002f2a: DUP1
00002f2b: SWAP2
00002f2c: SUB
00002f2d: SWAP1
00002f2e: REVERT
00002f2f: JUMPDEST
00002f30: PUSH8 0x0de0b6b3a7640000
00002f39: DUP4
00002f3a: MUL
00002f3b: DUP4
00002f3c: ISZERO
00002f3d: DUP1
00002f3e: ISZERO
00002f3f: SWAP1
00002f40: PUSH2 0x2f60
00002f43: JUMPI
00002f44: POP
00002f45: PUSH8 0x0de0b6b3a7640000
00002f4e: DUP5
00002f4f: DUP3
00002f50: DUP2
00002f51: PUSH2 0x2f5c
00002f54: JUMPI
00002f55: PUSH2 0x2f5c
00002f58: PUSH2 0x3e27
00002f5b: JUMP
00002f5c: JUMPDEST
00002f5d: DIV
00002f5e: EQ
00002f5f: ISZERO
00002f60: JUMPDEST
00002f61: ISZERO
00002f62: PUSH2 0x2f7e
00002f65: JUMPI
00002f66: PUSH1 0x40
00002f68: MLOAD
00002f69: PUSH4 0x94fb03d7
00002f6e: PUSH1 0xe0
00002f70: SHL
00002f71: DUP2
00002f72: MSTORE
00002f73: PUSH1 0x04
00002f75: ADD
00002f76: PUSH1 0x40
00002f78: MLOAD
00002f79: DUP1
00002f7a: SWAP2
00002f7b: SUB
00002f7c: SWAP1
00002f7d: REVERT
00002f7e: JUMPDEST
00002f7f: PUSH1 0x01
00002f81: DUP4
00002f82: SWAP1
00002f83: SHR
00002f84: DUP2
00002f85: ADD
00002f86: DUP2
00002f87: DUP2
00002f88: LT
00002f89: ISZERO
00002f8a: PUSH2 0x2fa6
00002f8d: JUMPI
00002f8e: PUSH1 0x40
00002f90: MLOAD
00002f91: PUSH4 0x94fb03d7
00002f96: PUSH1 0xe0
00002f98: SHL
00002f99: DUP2
00002f9a: MSTORE
00002f9b: PUSH1 0x04
00002f9d: ADD
00002f9e: PUSH1 0x40
00002fa0: MLOAD
00002fa1: DUP1
00002fa2: SWAP2
00002fa3: SUB
00002fa4: SWAP1
00002fa5: REVERT
00002fa6: JUMPDEST
00002fa7: PUSH0
00002fa8: DUP5
00002fa9: DUP3
00002faa: DUP2
00002fab: PUSH2 0x2dd4
00002fae: JUMPI
00002faf: PUSH2 0x2dd4
00002fb2: PUSH2 0x3e27
00002fb5: JUMP
00002fb6: JUMPDEST
00002fb7: PUSH2 0x15eb
00002fba: PUSH1 0x01
00002fbc: PUSH1 0x01
00002fbe: PUSH1 0xa0
00002fc0: SHL
00002fc1: SUB
00002fc2: DUP5
00002fc3: AND
00002fc4: DUP4
00002fc5: ADDRESS
00002fc6: DUP5
00002fc7: PUSH2 0x33f9
00002fca: JUMP
00002fcb: JUMPDEST
00002fcc: PUSH0
00002fcd: DUP3
00002fce: DUP3
00002fcf: ADD
00002fd0: DUP4
00002fd1: DUP2
00002fd2: LT
00002fd3: ISZERO
00002fd4: PUSH2 0x0da3
00002fd7: JUMPI
00002fd8: PUSH1 0x40
00002fda: MLOAD
00002fdb: PUSH4 0xe468448f
00002fe0: PUSH1 0xe0
00002fe2: SHL
00002fe3: DUP2
00002fe4: MSTORE
00002fe5: PUSH1 0x04
00002fe7: ADD
00002fe8: PUSH1 0x40
00002fea: MLOAD
00002feb: DUP1
00002fec: SWAP2
00002fed: SUB
00002fee: SWAP1
00002fef: REVERT
00002ff0: JUMPDEST
00002ff1: PUSH0
00002ff2: DUP1
00002ff3: PUSH0
00002ff4: PUSH2 0x2ffd
00002ff7: DUP6
00002ff8: DUP6
00002ff9: PUSH2 0x3432
00002ffc: JUMP
00002ffd: JUMPDEST
00002ffe: SWAP2
00002fff: POP
00003000: SWAP2
00003001: POP
00003002: DUP1
00003003: ISZERO
00003004: PUSH2 0x3020
00003007: JUMPI
00003008: PUSH1 0x40
0000300a: MLOAD
0000300b: PUSH4 0x0a5c778b
00003010: PUSH1 0xe3
00003012: SHL
00003013: DUP2
00003014: MSTORE
00003015: PUSH1 0x04
00003017: ADD
00003018: PUSH1 0x40
0000301a: MLOAD
0000301b: DUP1
0000301c: SWAP2
0000301d: SUB
0000301e: SWAP1
0000301f: REVERT
00003020: JUMPDEST
00003021: POP
00003022: SWAP4
00003023: SWAP3
00003024: POP
00003025: POP
00003026: POP
00003027: JUMP
00003028: JUMPDEST
00003029: PUSH2 0x15eb
0000302c: PUSH1 0x01
0000302e: PUSH1 0x01
00003030: PUSH1 0xa0
00003032: SHL
00003033: SUB
00003034: DUP5
00003035: AND
00003036: DUP4
00003037: DUP4
00003038: PUSH2 0x3455
0000303b: JUMP
0000303c: JUMPDEST
0000303d: PUSH2 0x2e06
00003040: DUP3
00003041: DUP3
00003042: PUSH2 0x3486
00003045: JUMP
00003046: JUMPDEST
00003047: PUSH2 0x126f
0000304a: ADDRESS
0000304b: DUP3
0000304c: PUSH2 0x3491
0000304f: JUMP
00003050: JUMPDEST
00003051: PUSH0
00003052: PUSH1 0x01
00003054: DUP4
00003055: LT
00003056: ISZERO
00003057: PUSH2 0x3073
0000305a: JUMPI
0000305b: PUSH1 0x40
0000305d: MLOAD
0000305e: PUSH4 0x5567969f
00003063: PUSH1 0xe1
00003065: SHL
00003066: DUP2
00003067: MSTORE
00003068: PUSH1 0x04
0000306a: ADD
0000306b: PUSH1 0x40
0000306d: MLOAD
0000306e: DUP1
0000306f: SWAP2
00003070: SUB
00003071: SWAP1
00003072: REVERT
00003073: JUMPDEST
00003074: PUSH8 0x1bc16d674ec7ffff
0000307d: DUP4
0000307e: GT
0000307f: ISZERO
00003080: PUSH2 0x309c
00003083: JUMPI
00003084: PUSH1 0x40
00003086: MLOAD
00003087: PUSH4 0x8554775f
0000308c: PUSH1 0xe0
0000308e: SHL
0000308f: DUP2
00003090: MSTORE
00003091: PUSH1 0x04
00003093: ADD
00003094: PUSH1 0x40
00003096: MLOAD
00003097: DUP1
00003098: SWAP2
00003099: SUB
0000309a: SWAP1
0000309b: REVERT
0000309c: JUMPDEST
0000309d: PUSH8 0x0de0b6b3a7640000
000030a6: DUP1
000030a7: DUP4
000030a8: DIV
000030a9: MUL
000030aa: PUSH0
000030ab: PUSH2 0x30b4
000030ae: DUP5
000030af: DUP4
000030b0: PUSH2 0x2ff0
000030b3: JUMP
000030b4: JUMPDEST
000030b5: SWAP1
000030b6: POP
000030b7: PUSH0
000030b8: PUSH2 0x30cb
000030bb: DUP7
000030bc: PUSH8 0x0de0b6b3a7640000
000030c5: DUP6
000030c6: DIV
000030c7: PUSH2 0x34c5
000030ca: JUMP
000030cb: JUMPDEST
000030cc: SWAP1
000030cd: POP
000030ce: DUP2
000030cf: PUSH0
000030d0: SUB
000030d1: PUSH2 0x30de
000030d4: JUMPI
000030d5: SWAP3
000030d6: POP
000030d7: PUSH2 0x08e9
000030da: SWAP2
000030db: POP
000030dc: POP
000030dd: JUMP
000030de: JUMPDEST
000030df: PUSH0
000030e0: PUSH2 0x30ee
000030e3: DUP8
000030e4: DUP5
000030e5: PUSH4 0x05f5e100
000030ea: PUSH2 0x351d
000030ed: JUMP
000030ee: JUMPDEST
000030ef: SWAP1
000030f0: POP
000030f1: PUSH2 0x30fa
000030f4: DUP3
000030f5: DUP3
000030f6: PUSH2 0x2d5c
000030f9: JUMP
000030fa: JUMPDEST
000030fb: SWAP8
000030fc: SWAP7
000030fd: POP
000030fe: POP
000030ff: POP
00003100: POP
00003101: POP
00003102: POP
00003103: POP
00003104: JUMP
00003105: JUMPDEST
00003106: PUSH1 0x01
00003108: PUSH1 0x01
0000310a: PUSH1 0xa0
0000310c: SHL
0000310d: SUB
0000310e: DUP5
0000310f: AND
00003110: PUSH2 0x312e
00003113: JUMPI
00003114: PUSH1 0x40
00003116: MLOAD
00003117: PUSH4 0xe602df05
0000311c: PUSH1 0xe0
0000311e: SHL
0000311f: DUP2
00003120: MSTORE
00003121: PUSH0
00003122: PUSH1 0x04
00003124: DUP3
00003125: ADD
00003126: MSTORE
00003127: PUSH1 0x24
00003129: ADD
0000312a: PUSH2 0x2ce2
0000312d: JUMP
0000312e: JUMPDEST
0000312f: PUSH1 0x01
00003131: PUSH1 0x01
00003133: PUSH1 0xa0
00003135: SHL
00003136: SUB
00003137: DUP4
00003138: AND
00003139: PUSH2 0x3157
0000313c: JUMPI
0000313d: PUSH1 0x40
0000313f: MLOAD
00003140: PUSH4 0x4a1406b1
00003145: PUSH1 0xe1
00003147: SHL
00003148: DUP2
00003149: MSTORE
0000314a: PUSH0
0000314b: PUSH1 0x04
0000314d: DUP3
0000314e: ADD
0000314f: MSTORE
00003150: PUSH1 0x24
00003152: ADD
00003153: PUSH2 0x2ce2
00003156: JUMP
00003157: JUMPDEST
00003158: PUSH1 0x01
0000315a: PUSH1 0x01
0000315c: PUSH1 0xa0
0000315e: SHL
0000315f: SUB
00003160: DUP1
00003161: DUP6
00003162: AND
00003163: PUSH0
00003164: SWAP1
00003165: DUP2
00003166: MSTORE
00003167: PUSH1 0x01
00003169: PUSH1 0x20
0000316b: SWAP1
0000316c: DUP2
0000316d: MSTORE
0000316e: PUSH1 0x40
00003170: DUP1
00003171: DUP4
00003172: KECCAK256
00003173: SWAP4
00003174: DUP8
00003175: AND
00003176: DUP4
00003177: MSTORE
00003178: SWAP3
00003179: SWAP1
0000317a: MSTORE
0000317b: KECCAK256
0000317c: DUP3
0000317d: SWAP1
0000317e: SSTORE
0000317f: DUP1
00003180: ISZERO
00003181: PUSH2 0x2cf9
00003184: JUMPI
00003185: DUP3
00003186: PUSH1 0x01
00003188: PUSH1 0x01
0000318a: PUSH1 0xa0
0000318c: SHL
0000318d: SUB
0000318e: AND
0000318f: DUP5
00003190: PUSH1 0x01
00003192: PUSH1 0x01
00003194: PUSH1 0xa0
00003196: SHL
00003197: SUB
00003198: AND
00003199: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
000031ba: DUP5
000031bb: PUSH1 0x40
000031bd: MLOAD
000031be: PUSH2 0x31c9
000031c1: SWAP2
000031c2: DUP2
000031c3: MSTORE
000031c4: PUSH1 0x20
000031c6: ADD
000031c7: SWAP1
000031c8: JUMP
000031c9: JUMPDEST
000031ca: PUSH1 0x40
000031cc: MLOAD
000031cd: DUP1
000031ce: SWAP2
000031cf: SUB
000031d0: SWAP1
000031d1: LOG3
000031d2: POP
000031d3: POP
000031d4: POP
000031d5: POP
000031d6: JUMP
000031d7: JUMPDEST
000031d8: PUSH1 0x01
000031da: PUSH1 0x01
000031dc: PUSH1 0xa0
000031de: SHL
000031df: SUB
000031e0: DUP4
000031e1: AND
000031e2: PUSH2 0x3201
000031e5: JUMPI
000031e6: DUP1
000031e7: PUSH1 0x02
000031e9: PUSH0
000031ea: DUP3
000031eb: DUP3
000031ec: SLOAD
000031ed: PUSH2 0x31f6
000031f0: SWAP2
000031f1: SWAP1
000031f2: PUSH2 0x3e5a
000031f5: JUMP
000031f6: JUMPDEST
000031f7: SWAP1
000031f8: SWAP2
000031f9: SSTORE
000031fa: POP
000031fb: PUSH2 0x3271
000031fe: SWAP1
000031ff: POP
00003200: JUMP
00003201: JUMPDEST
00003202: PUSH1 0x01
00003204: PUSH1 0x01
00003206: PUSH1 0xa0
00003208: SHL
00003209: SUB
0000320a: DUP4
0000320b: AND
0000320c: PUSH0
0000320d: SWAP1
0000320e: DUP2
0000320f: MSTORE
00003210: PUSH1 0x20
00003212: DUP2
00003213: SWAP1
00003214: MSTORE
00003215: PUSH1 0x40
00003217: SWAP1
00003218: KECCAK256
00003219: SLOAD
0000321a: DUP2
0000321b: DUP2
0000321c: LT
0000321d: ISZERO
0000321e: PUSH2 0x3253
00003221: JUMPI
00003222: PUSH1 0x40
00003224: MLOAD
00003225: PUSH4 0x391434e3
0000322a: PUSH1 0xe2
0000322c: SHL
0000322d: DUP2
0000322e: MSTORE
0000322f: PUSH1 0x01
00003231: PUSH1 0x01
00003233: PUSH1 0xa0
00003235: SHL
00003236: SUB
00003237: DUP6
00003238: AND
00003239: PUSH1 0x04
0000323b: DUP3
0000323c: ADD
0000323d: MSTORE
0000323e: PUSH1 0x24
00003240: DUP2
00003241: ADD
00003242: DUP3
00003243: SWAP1
00003244: MSTORE
00003245: PUSH1 0x44
00003247: DUP2
00003248: ADD
00003249: DUP4
0000324a: SWAP1
0000324b: MSTORE
0000324c: PUSH1 0x64
0000324e: ADD
0000324f: PUSH2 0x2ce2
00003252: JUMP
00003253: JUMPDEST
00003254: PUSH1 0x01
00003256: PUSH1 0x01
00003258: PUSH1 0xa0
0000325a: SHL
0000325b: SUB
0000325c: DUP5
0000325d: AND
0000325e: PUSH0
0000325f: SWAP1
00003260: DUP2
00003261: MSTORE
00003262: PUSH1 0x20
00003264: DUP2
00003265: SWAP1
00003266: MSTORE
00003267: PUSH1 0x40
00003269: SWAP1
0000326a: KECCAK256
0000326b: SWAP1
0000326c: DUP3
0000326d: SWAP1
0000326e: SUB
0000326f: SWAP1
00003270: SSTORE
00003271: JUMPDEST
00003272: PUSH1 0x01
00003274: PUSH1 0x01
00003276: PUSH1 0xa0
00003278: SHL
00003279: SUB
0000327a: DUP3
0000327b: AND
0000327c: PUSH2 0x328d
0000327f: JUMPI
00003280: PUSH1 0x02
00003282: DUP1
00003283: SLOAD
00003284: DUP3
00003285: SWAP1
00003286: SUB
00003287: SWAP1
00003288: SSTORE
00003289: PUSH2 0x32ab
0000328c: JUMP
0000328d: JUMPDEST
0000328e: PUSH1 0x01
00003290: PUSH1 0x01
00003292: PUSH1 0xa0
00003294: SHL
00003295: SUB
00003296: DUP3
00003297: AND
00003298: PUSH0
00003299: SWAP1
0000329a: DUP2
0000329b: MSTORE
0000329c: PUSH1 0x20
0000329e: DUP2
0000329f: SWAP1
000032a0: MSTORE
000032a1: PUSH1 0x40
000032a3: SWAP1
000032a4: KECCAK256
000032a5: DUP1
000032a6: SLOAD
000032a7: DUP3
000032a8: ADD
000032a9: SWAP1
000032aa: SSTORE
000032ab: JUMPDEST
000032ac: DUP2
000032ad: PUSH1 0x01
000032af: PUSH1 0x01
000032b1: PUSH1 0xa0
000032b3: SHL
000032b4: SUB
000032b5: AND
000032b6: DUP4
000032b7: PUSH1 0x01
000032b9: PUSH1 0x01
000032bb: PUSH1 0xa0
000032bd: SHL
000032be: SUB
000032bf: AND
000032c0: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000032e1: DUP4
000032e2: PUSH1 0x40
000032e4: MLOAD
000032e5: PUSH2 0x32f0
000032e8: SWAP2
000032e9: DUP2
000032ea: MSTORE
000032eb: PUSH1 0x20
000032ed: ADD
000032ee: SWAP1
000032ef: JUMP
000032f0: JUMPDEST
000032f1: PUSH1 0x40
000032f3: MLOAD
000032f4: DUP1
000032f5: SWAP2
000032f6: SUB
000032f7: SWAP1
000032f8: LOG3
000032f9: POP
000032fa: POP
000032fb: POP
000032fc: JUMP
000032fd: JUMPDEST
000032fe: PUSH1 0x01
00003300: PUSH1 0x01
00003302: PUSH1 0xa0
00003304: SHL
00003305: SUB
00003306: DUP3
00003307: AND
00003308: PUSH2 0x3326
0000330b: JUMPI
0000330c: PUSH1 0x40
0000330e: MLOAD
0000330f: PUSH4 0xec442f05
00003314: PUSH1 0xe0
00003316: SHL
00003317: DUP2
00003318: MSTORE
00003319: PUSH0
0000331a: PUSH1 0x04
0000331c: DUP3
0000331d: ADD
0000331e: MSTORE
0000331f: PUSH1 0x24
00003321: ADD
00003322: PUSH2 0x2ce2
00003325: JUMP
00003326: JUMPDEST
00003327: PUSH2 0x2e06
0000332a: PUSH0
0000332b: DUP4
0000332c: DUP4
0000332d: PUSH2 0x31d7
00003330: JUMP
00003331: JUMPDEST
00003332: PUSH2 0x2e06
00003335: ADDRESS
00003336: DUP4
00003337: DUP4
00003338: PUSH2 0x2cff
0000333b: JUMP
0000333c: JUMPDEST
0000333d: PUSH1 0x40
0000333f: DUP1
00003340: MLOAD
00003341: PUSH1 0x01
00003343: PUSH1 0x01
00003345: PUSH1 0xa0
00003347: SHL
00003348: SUB
00003349: DUP5
0000334a: AND
0000334b: PUSH1 0x24
0000334d: DUP3
0000334e: ADD
0000334f: MSTORE
00003350: PUSH1 0x44
00003352: DUP1
00003353: DUP3
00003354: ADD
00003355: DUP5
00003356: SWAP1
00003357: MSTORE
00003358: DUP3
00003359: MLOAD
0000335a: DUP1
0000335b: DUP4
0000335c: SUB
0000335d: SWAP1
0000335e: SWAP2
0000335f: ADD
00003360: DUP2
00003361: MSTORE
00003362: PUSH1 0x64
00003364: SWAP1
00003365: SWAP2
00003366: ADD
00003367: SWAP1
00003368: SWAP2
00003369: MSTORE
0000336a: PUSH1 0x20
0000336c: DUP2
0000336d: ADD
0000336e: DUP1
0000336f: MLOAD
00003370: PUSH1 0x01
00003372: PUSH1 0x01
00003374: PUSH1 0xe0
00003376: SHL
00003377: SUB
00003378: AND
00003379: PUSH4 0x095ea7b3
0000337e: PUSH1 0xe0
00003380: SHL
00003381: OR
00003382: SWAP1
00003383: MSTORE
00003384: PUSH2 0x338d
00003387: DUP5
00003388: DUP3
00003389: PUSH2 0x35f9
0000338c: JUMP
0000338d: JUMPDEST
0000338e: PUSH2 0x2cf9
00003391: JUMPI
00003392: PUSH1 0x40
00003394: MLOAD
00003395: PUSH1 0x01
00003397: PUSH1 0x01
00003399: PUSH1 0xa0
0000339b: SHL
0000339c: SUB
0000339d: DUP5
0000339e: DUP2
0000339f: AND
000033a0: PUSH1 0x24
000033a2: DUP4
000033a3: ADD
000033a4: MSTORE
000033a5: PUSH0
000033a6: PUSH1 0x44
000033a8: DUP4
000033a9: ADD
000033aa: MSTORE
000033ab: PUSH2 0x33ef
000033ae: SWAP2
000033af: DUP7
000033b0: SWAP2
000033b1: DUP3
000033b2: AND
000033b3: SWAP1
000033b4: PUSH4 0x095ea7b3
000033b9: SWAP1
000033ba: PUSH1 0x64
000033bc: ADD
000033bd: JUMPDEST
000033be: PUSH1 0x40
000033c0: MLOAD
000033c1: PUSH1 0x20
000033c3: DUP2
000033c4: DUP4
000033c5: SUB
000033c6: SUB
000033c7: DUP2
000033c8: MSTORE
000033c9: SWAP1
000033ca: PUSH1 0x40
000033cc: MSTORE
000033cd: SWAP2
000033ce: POP
000033cf: PUSH1 0xe0
000033d1: SHL
000033d2: PUSH1 0x20
000033d4: DUP3
000033d5: ADD
000033d6: DUP1
000033d7: MLOAD
000033d8: PUSH1 0x01
000033da: PUSH1 0x01
000033dc: PUSH1 0xe0
000033de: SHL
000033df: SUB
000033e0: DUP4
000033e1: DUP2
000033e2: DUP4
000033e3: AND
000033e4: OR
000033e5: DUP4
000033e6: MSTORE
000033e7: POP
000033e8: POP
000033e9: POP
000033ea: POP
000033eb: PUSH2 0x3696
000033ee: JUMP
000033ef: JUMPDEST
000033f0: PUSH2 0x2cf9
000033f3: DUP5
000033f4: DUP3
000033f5: PUSH2 0x3696
000033f8: JUMP
000033f9: JUMPDEST
000033fa: PUSH1 0x40
000033fc: MLOAD
000033fd: PUSH1 0x01
000033ff: PUSH1 0x01
00003401: PUSH1 0xa0
00003403: SHL
00003404: SUB
00003405: DUP5
00003406: DUP2
00003407: AND
00003408: PUSH1 0x24
0000340a: DUP4
0000340b: ADD
0000340c: MSTORE
0000340d: DUP4
0000340e: DUP2
0000340f: AND
00003410: PUSH1 0x44
00003412: DUP4
00003413: ADD
00003414: MSTORE
00003415: PUSH1 0x64
00003417: DUP3
00003418: ADD
00003419: DUP4
0000341a: SWAP1
0000341b: MSTORE
0000341c: PUSH2 0x2cf9
0000341f: SWAP2
00003420: DUP7
00003421: SWAP2
00003422: DUP3
00003423: AND
00003424: SWAP1
00003425: PUSH4 0x23b872dd
0000342a: SWAP1
0000342b: PUSH1 0x84
0000342d: ADD
0000342e: PUSH2 0x33bd
00003431: JUMP
00003432: JUMPDEST
00003433: PUSH0
00003434: DUP1
00003435: DUP3
00003436: DUP5
00003437: LT
00003438: PUSH2 0x3446
0000343b: JUMPI
0000343c: POP
0000343d: POP
0000343e: DUP1
0000343f: DUP3
00003440: SUB
00003441: PUSH0
00003442: PUSH2 0x344e
00003445: JUMP
00003446: JUMPDEST
00003447: POP
00003448: POP
00003449: DUP2
0000344a: DUP2
0000344b: SUB
0000344c: PUSH1 0x01
0000344e: JUMPDEST
0000344f: SWAP3
00003450: POP
00003451: SWAP3
00003452: SWAP1
00003453: POP
00003454: JUMP
00003455: JUMPDEST
00003456: PUSH1 0x40
00003458: MLOAD
00003459: PUSH1 0x01
0000345b: PUSH1 0x01
0000345d: PUSH1 0xa0
0000345f: SHL
00003460: SUB
00003461: DUP4
00003462: DUP2
00003463: AND
00003464: PUSH1 0x24
00003466: DUP4
00003467: ADD
00003468: MSTORE
00003469: PUSH1 0x44
0000346b: DUP3
0000346c: ADD
0000346d: DUP4
0000346e: SWAP1
0000346f: MSTORE
00003470: PUSH2 0x15eb
00003473: SWAP2
00003474: DUP6
00003475: SWAP2
00003476: DUP3
00003477: AND
00003478: SWAP1
00003479: PUSH4 0xa9059cbb
0000347e: SWAP1
0000347f: PUSH1 0x64
00003481: ADD
00003482: PUSH2 0x33bd
00003485: JUMP
00003486: JUMPDEST
00003487: PUSH2 0x2e06
0000348a: DUP3
0000348b: ADDRESS
0000348c: DUP4
0000348d: PUSH2 0x2cff
00003490: JUMP
00003491: JUMPDEST
00003492: PUSH1 0x01
00003494: PUSH1 0x01
00003496: PUSH1 0xa0
00003498: SHL
00003499: SUB
0000349a: DUP3
0000349b: AND
0000349c: PUSH2 0x34ba
0000349f: JUMPI
000034a0: PUSH1 0x40
000034a2: MLOAD
000034a3: PUSH4 0x4b637e8f
000034a8: PUSH1 0xe1
000034aa: SHL
000034ab: DUP2
000034ac: MSTORE
000034ad: PUSH0
000034ae: PUSH1 0x04
000034b0: DUP3
000034b1: ADD
000034b2: MSTORE
000034b3: PUSH1 0x24
000034b5: ADD
000034b6: PUSH2 0x2ce2
000034b9: JUMP
000034ba: JUMPDEST
000034bb: PUSH2 0x2e06
000034be: DUP3
000034bf: PUSH0
000034c0: DUP4
000034c1: PUSH2 0x31d7
000034c4: JUMP
000034c5: JUMPDEST
000034c6: PUSH0
000034c7: DUP1
000034c8: PUSH1 0x02
000034ca: DUP4
000034cb: MOD
000034cc: PUSH0
000034cd: SUB
000034ce: PUSH2 0x34df
000034d1: JUMPI
000034d2: PUSH8 0x0de0b6b3a7640000
000034db: PUSH2 0x34e1
000034de: JUMP
000034df: JUMPDEST
000034e0: DUP4
000034e1: JUMPDEST
000034e2: SWAP1
000034e3: POP
000034e4: PUSH1 0x02
000034e6: DUP4
000034e7: DIV
000034e8: SWAP3
000034e9: POP
000034ea: JUMPDEST
000034eb: DUP3
000034ec: ISZERO
000034ed: PUSH2 0x0da3
000034f0: JUMPI
000034f1: PUSH2 0x34fa
000034f4: DUP5
000034f5: DUP6
000034f6: PUSH2 0x2d5c
000034f9: JUMP
000034fa: JUMPDEST
000034fb: SWAP4
000034fc: POP
000034fd: PUSH1 0x02
000034ff: DUP4
00003500: MOD
00003501: ISZERO
00003502: PUSH2 0x3512
00003505: JUMPI
00003506: PUSH2 0x350f
00003509: DUP2
0000350a: DUP6
0000350b: PUSH2 0x2d5c
0000350e: JUMP
0000350f: JUMPDEST
00003510: SWAP1
00003511: POP
00003512: JUMPDEST
00003513: PUSH1 0x02
00003515: DUP4
00003516: DIV
00003517: SWAP3
00003518: POP
00003519: PUSH2 0x34ea
0000351c: JUMP
0000351d: JUMPDEST
0000351e: PUSH0
0000351f: DUP3
00003520: DUP2
00003521: DUP1
00003522: PUSH2 0x3533
00003525: DUP8
00003526: PUSH8 0x0de0b6b3a7640000
0000352f: PUSH2 0x3432
00003532: JUMP
00003533: JUMPDEST
00003534: SWAP1
00003535: SWAP3
00003536: POP
00003537: SWAP1
00003538: POP
00003539: PUSH8 0x0de0b6b3a7640000
00003542: DUP1
00003543: PUSH0
00003544: PUSH1 0x01
00003546: JUMPDEST
00003547: DUP9
00003548: DUP5
00003549: LT
0000354a: PUSH2 0x35ea
0000354d: JUMPI
0000354e: PUSH0
0000354f: PUSH8 0x0de0b6b3a7640000
00003558: DUP3
00003559: MUL
0000355a: SWAP1
0000355b: POP
0000355c: PUSH0
0000355d: DUP1
0000355e: PUSH2 0x3578
00003561: DUP11
00003562: PUSH2 0x3573
00003565: DUP6
00003566: PUSH8 0x0de0b6b3a7640000
0000356f: PUSH2 0x2ff0
00003572: JUMP
00003573: JUMPDEST
00003574: PUSH2 0x3432
00003577: JUMP
00003578: JUMPDEST
00003579: SWAP2
0000357a: POP
0000357b: SWAP2
0000357c: POP
0000357d: PUSH2 0x358a
00003580: DUP8
00003581: PUSH2 0x1856
00003584: DUP5
00003585: DUP13
00003586: PUSH2 0x2d5c
00003589: JUMP
0000358a: JUMPDEST
0000358b: SWAP7
0000358c: POP
0000358d: PUSH2 0x3596
00003590: DUP8
00003591: DUP5
00003592: PUSH2 0x2f0e
00003595: JUMP
00003596: JUMPDEST
00003597: SWAP7
00003598: POP
00003599: DUP7
0000359a: PUSH0
0000359b: SUB
0000359c: PUSH2 0x35a7
0000359f: JUMPI
000035a0: POP
000035a1: POP
000035a2: POP
000035a3: PUSH2 0x35ea
000035a6: JUMP
000035a7: JUMPDEST
000035a8: DUP8
000035a9: ISZERO
000035aa: PUSH2 0x35b1
000035ad: JUMPI
000035ae: SWAP4
000035af: ISZERO
000035b0: SWAP4
000035b1: JUMPDEST
000035b2: DUP1
000035b3: ISZERO
000035b4: PUSH2 0x35bb
000035b7: JUMPI
000035b8: SWAP4
000035b9: ISZERO
000035ba: SWAP4
000035bb: JUMPDEST
000035bc: DUP5
000035bd: ISZERO
000035be: PUSH2 0x35d2
000035c1: JUMPI
000035c2: PUSH2 0x35cb
000035c5: DUP7
000035c6: DUP9
000035c7: PUSH2 0x2ff0
000035ca: JUMP
000035cb: JUMPDEST
000035cc: SWAP6
000035cd: POP
000035ce: PUSH2 0x35df
000035d1: JUMP
000035d2: JUMPDEST
000035d3: PUSH2 0x35dc
000035d6: DUP7
000035d7: DUP9
000035d8: PUSH2 0x2fcb
000035db: JUMP
000035dc: JUMPDEST
000035dd: SWAP6
000035de: POP
000035df: JUMPDEST
000035e0: POP
000035e1: POP
000035e2: POP
000035e3: PUSH1 0x01
000035e5: ADD
000035e6: PUSH2 0x3546
000035e9: JUMP
000035ea: JUMPDEST
000035eb: POP
000035ec: SWAP1
000035ed: SWAP10
000035ee: SWAP9
000035ef: POP
000035f0: POP
000035f1: POP
000035f2: POP
000035f3: POP
000035f4: POP
000035f5: POP
000035f6: POP
000035f7: POP
000035f8: JUMP
000035f9: JUMPDEST
000035fa: PUSH0
000035fb: DUP1
000035fc: PUSH0
000035fd: DUP5
000035fe: PUSH1 0x01
00003600: PUSH1 0x01
00003602: PUSH1 0xa0
00003604: SHL
00003605: SUB
00003606: AND
00003607: DUP5
00003608: PUSH1 0x40
0000360a: MLOAD
0000360b: PUSH2 0x3614
0000360e: SWAP2
0000360f: SWAP1
00003610: PUSH2 0x3ed6
00003613: JUMP
00003614: JUMPDEST
00003615: PUSH0
00003616: PUSH1 0x40
00003618: MLOAD
00003619: DUP1
0000361a: DUP4
0000361b: SUB
0000361c: DUP2
0000361d: PUSH0
0000361e: DUP7
0000361f: GAS
00003620: CALL
00003621: SWAP2
00003622: POP
00003623: POP
00003624: RETURNDATASIZE
00003625: DUP1
00003626: PUSH0
00003627: DUP2
00003628: EQ
00003629: PUSH2 0x364d
0000362c: JUMPI
0000362d: PUSH1 0x40
0000362f: MLOAD
00003630: SWAP2
00003631: POP
00003632: PUSH1 0x1f
00003634: NOT
00003635: PUSH1 0x3f
00003637: RETURNDATASIZE
00003638: ADD
00003639: AND
0000363a: DUP3
0000363b: ADD
0000363c: PUSH1 0x40
0000363e: MSTORE
0000363f: RETURNDATASIZE
00003640: DUP3
00003641: MSTORE
00003642: RETURNDATASIZE
00003643: PUSH0
00003644: PUSH1 0x20
00003646: DUP5
00003647: ADD
00003648: RETURNDATACOPY
00003649: PUSH2 0x3652
0000364c: JUMP
0000364d: JUMPDEST
0000364e: PUSH1 0x60
00003650: SWAP2
00003651: POP
00003652: JUMPDEST
00003653: POP
00003654: SWAP2
00003655: POP
00003656: SWAP2
00003657: POP
00003658: DUP2
00003659: DUP1
0000365a: ISZERO
0000365b: PUSH2 0x367c
0000365e: JUMPI
0000365f: POP
00003660: DUP1
00003661: MLOAD
00003662: ISZERO
00003663: DUP1
00003664: PUSH2 0x367c
00003667: JUMPI
00003668: POP
00003669: DUP1
0000366a: DUP1
0000366b: PUSH1 0x20
0000366d: ADD
0000366e: SWAP1
0000366f: MLOAD
00003670: DUP2
00003671: ADD
00003672: SWAP1
00003673: PUSH2 0x367c
00003676: SWAP2
00003677: SWAP1
00003678: PUSH2 0x3eec
0000367b: JUMP
0000367c: JUMPDEST
0000367d: DUP1
0000367e: ISZERO
0000367f: PUSH2 0x0a9b
00003682: JUMPI
00003683: POP
00003684: POP
00003685: POP
00003686: POP
00003687: POP
00003688: PUSH1 0x01
0000368a: PUSH1 0x01
0000368c: PUSH1 0xa0
0000368e: SHL
0000368f: SUB
00003690: AND
00003691: EXTCODESIZE
00003692: ISZERO
00003693: ISZERO
00003694: SWAP1
00003695: JUMP
00003696: JUMPDEST
00003697: PUSH0
00003698: PUSH2 0x36aa
0000369b: PUSH1 0x01
0000369d: PUSH1 0x01
0000369f: PUSH1 0xa0
000036a1: SHL
000036a2: SUB
000036a3: DUP5
000036a4: AND
000036a5: DUP4
000036a6: PUSH2 0x36f7
000036a9: JUMP
000036aa: JUMPDEST
000036ab: SWAP1
000036ac: POP
000036ad: DUP1
000036ae: MLOAD
000036af: PUSH0
000036b0: EQ
000036b1: ISZERO
000036b2: DUP1
000036b3: ISZERO
000036b4: PUSH2 0x36ce
000036b7: JUMPI
000036b8: POP
000036b9: DUP1
000036ba: DUP1
000036bb: PUSH1 0x20
000036bd: ADD
000036be: SWAP1
000036bf: MLOAD
000036c0: DUP2
000036c1: ADD
000036c2: SWAP1
000036c3: PUSH2 0x36cc
000036c6: SWAP2
000036c7: SWAP1
000036c8: PUSH2 0x3eec
000036cb: JUMP
000036cc: JUMPDEST
000036cd: ISZERO
000036ce: JUMPDEST
000036cf: ISZERO
000036d0: PUSH2 0x15eb
000036d3: JUMPI
000036d4: PUSH1 0x40
000036d6: MLOAD
000036d7: PUSH4 0x5274afe7
000036dc: PUSH1 0xe0
000036de: SHL
000036df: DUP2
000036e0: MSTORE
000036e1: PUSH1 0x01
000036e3: PUSH1 0x01
000036e5: PUSH1 0xa0
000036e7: SHL
000036e8: SUB
000036e9: DUP5
000036ea: AND
000036eb: PUSH1 0x04
000036ed: DUP3
000036ee: ADD
000036ef: MSTORE
000036f0: PUSH1 0x24
000036f2: ADD
000036f3: PUSH2 0x2ce2
000036f6: JUMP
000036f7: JUMPDEST
000036f8: PUSH1 0x60
000036fa: PUSH2 0x0da3
000036fd: DUP4
000036fe: DUP4
000036ff: PUSH0
00003700: DUP5
00003701: PUSH0
00003702: DUP1
00003703: DUP6
00003704: PUSH1 0x01
00003706: PUSH1 0x01
00003708: PUSH1 0xa0
0000370a: SHL
0000370b: SUB
0000370c: AND
0000370d: DUP5
0000370e: DUP7
0000370f: PUSH1 0x40
00003711: MLOAD
00003712: PUSH2 0x371b
00003715: SWAP2
00003716: SWAP1
00003717: PUSH2 0x3ed6
0000371a: JUMP
0000371b: JUMPDEST
0000371c: PUSH0
0000371d: PUSH1 0x40
0000371f: MLOAD
00003720: DUP1
00003721: DUP4
00003722: SUB
00003723: DUP2
00003724: DUP6
00003725: DUP8
00003726: GAS
00003727: CALL
00003728: SWAP3
00003729: POP
0000372a: POP
0000372b: POP
0000372c: RETURNDATASIZE
0000372d: DUP1
0000372e: PUSH0
0000372f: DUP2
00003730: EQ
00003731: PUSH2 0x3755
00003734: JUMPI
00003735: PUSH1 0x40
00003737: MLOAD
00003738: SWAP2
00003739: POP
0000373a: PUSH1 0x1f
0000373c: NOT
0000373d: PUSH1 0x3f
0000373f: RETURNDATASIZE
00003740: ADD
00003741: AND
00003742: DUP3
00003743: ADD
00003744: PUSH1 0x40
00003746: MSTORE
00003747: RETURNDATASIZE
00003748: DUP3
00003749: MSTORE
0000374a: RETURNDATASIZE
0000374b: PUSH0
0000374c: PUSH1 0x20
0000374e: DUP5
0000374f: ADD
00003750: RETURNDATACOPY
00003751: PUSH2 0x375a
00003754: JUMP
00003755: JUMPDEST
00003756: PUSH1 0x60
00003758: SWAP2
00003759: POP
0000375a: JUMPDEST
0000375b: POP
0000375c: SWAP2
0000375d: POP
0000375e: SWAP2
0000375f: POP
00003760: PUSH2 0x376a
00003763: DUP7
00003764: DUP4
00003765: DUP4
00003766: PUSH2 0x3774
00003769: JUMP
0000376a: JUMPDEST
0000376b: SWAP7
0000376c: SWAP6
0000376d: POP
0000376e: POP
0000376f: POP
00003770: POP
00003771: POP
00003772: POP
00003773: JUMP
00003774: JUMPDEST
00003775: PUSH1 0x60
00003777: DUP3
00003778: PUSH2 0x3789
0000377b: JUMPI
0000377c: PUSH2 0x3784
0000377f: DUP3
00003780: PUSH2 0x37d0
00003783: JUMP
00003784: JUMPDEST
00003785: PUSH2 0x0da3
00003788: JUMP
00003789: JUMPDEST
0000378a: DUP2
0000378b: MLOAD
0000378c: ISZERO
0000378d: DUP1
0000378e: ISZERO
0000378f: PUSH2 0x37a0
00003792: JUMPI
00003793: POP
00003794: PUSH1 0x01
00003796: PUSH1 0x01
00003798: PUSH1 0xa0
0000379a: SHL
0000379b: SUB
0000379c: DUP5
0000379d: AND
0000379e: EXTCODESIZE
0000379f: ISZERO
000037a0: JUMPDEST
000037a1: ISZERO
000037a2: PUSH2 0x37c9
000037a5: JUMPI
000037a6: PUSH1 0x40
000037a8: MLOAD
000037a9: PUSH4 0x9996b315
000037ae: PUSH1 0xe0
000037b0: SHL
000037b1: DUP2
000037b2: MSTORE
000037b3: PUSH1 0x01
000037b5: PUSH1 0x01
000037b7: PUSH1 0xa0
000037b9: SHL
000037ba: SUB
000037bb: DUP6
000037bc: AND
000037bd: PUSH1 0x04
000037bf: DUP3
000037c0: ADD
000037c1: MSTORE
000037c2: PUSH1 0x24
000037c4: ADD
000037c5: PUSH2 0x2ce2
000037c8: JUMP
000037c9: JUMPDEST
000037ca: POP
000037cb: DUP1
000037cc: PUSH2 0x0da3
000037cf: JUMP
000037d0: JUMPDEST
000037d1: DUP1
000037d2: MLOAD
000037d3: ISZERO
000037d4: PUSH2 0x37e0
000037d7: JUMPI
000037d8: DUP1
000037d9: MLOAD
000037da: DUP1
000037db: DUP3
000037dc: PUSH1 0x20
000037de: ADD
000037df: REVERT
000037e0: JUMPDEST
000037e1: PUSH1 0x40
000037e3: MLOAD
000037e4: PUSH4 0x0a12f521
000037e9: PUSH1 0xe1
000037eb: SHL
000037ec: DUP2
000037ed: MSTORE
000037ee: PUSH1 0x04
000037f0: ADD
000037f1: PUSH1 0x40
000037f3: MLOAD
000037f4: DUP1
000037f5: SWAP2
000037f6: SUB
000037f7: SWAP1
000037f8: REVERT
000037f9: JUMPDEST
000037fa: PUSH1 0x20
000037fc: DUP2
000037fd: MSTORE
000037fe: PUSH0
000037ff: DUP3
00003800: MLOAD
00003801: DUP1
00003802: PUSH1 0x20
00003804: DUP5
00003805: ADD
00003806: MSTORE
00003807: DUP1
00003808: PUSH1 0x20
0000380a: DUP6
0000380b: ADD
0000380c: PUSH1 0x40
0000380e: DUP6
0000380f: ADD
00003810: MCOPY
00003811: PUSH0
00003812: PUSH1 0x40
00003814: DUP3
00003815: DUP6
00003816: ADD
00003817: ADD
00003818: MSTORE
00003819: PUSH1 0x40
0000381b: PUSH1 0x1f
0000381d: NOT
0000381e: PUSH1 0x1f
00003820: DUP4
00003821: ADD
00003822: AND
00003823: DUP5
00003824: ADD
00003825: ADD
00003826: SWAP2
00003827: POP
00003828: POP
00003829: SWAP3
0000382a: SWAP2
0000382b: POP
0000382c: POP
0000382d: JUMP
0000382e: JUMPDEST
0000382f: PUSH1 0x01
00003831: PUSH1 0x01
00003833: PUSH1 0xa0
00003835: SHL
00003836: SUB
00003837: DUP2
00003838: AND
00003839: DUP2
0000383a: EQ
0000383b: PUSH2 0x126f
0000383e: JUMPI
0000383f: PUSH0
00003840: DUP1
00003841: REVERT
00003842: JUMPDEST
00003843: DUP1
00003844: CALLDATALOAD
00003845: PUSH2 0x1f56
00003848: DUP2
00003849: PUSH2 0x382e
0000384c: JUMP
0000384d: JUMPDEST
0000384e: PUSH0
0000384f: DUP1
00003850: PUSH1 0x40
00003852: DUP4
00003853: DUP6
00003854: SUB
00003855: SLT
00003856: ISZERO
00003857: PUSH2 0x385e
0000385a: JUMPI
0000385b: PUSH0
0000385c: DUP1
0000385d: REVERT
0000385e: JUMPDEST
0000385f: DUP3
00003860: CALLDATALOAD
00003861: PUSH2 0x3869
00003864: DUP2
00003865: PUSH2 0x382e
00003868: JUMP
00003869: JUMPDEST
0000386a: SWAP5
0000386b: PUSH1 0x20
0000386d: SWAP4
0000386e: SWAP1
0000386f: SWAP4
00003870: ADD
00003871: CALLDATALOAD
00003872: SWAP4
00003873: POP
00003874: POP
00003875: POP
00003876: JUMP
00003877: JUMPDEST
00003878: PUSH0
00003879: DUP1
0000387a: PUSH1 0x40
0000387c: DUP4
0000387d: DUP6
0000387e: SUB
0000387f: SLT
00003880: ISZERO
00003881: PUSH2 0x3888
00003884: JUMPI
00003885: PUSH0
00003886: DUP1
00003887: REVERT
00003888: JUMPDEST
00003889: DUP3
0000388a: CALLDATALOAD
0000388b: PUSH2 0x3893
0000388e: DUP2
0000388f: PUSH2 0x382e
00003892: JUMP
00003893: JUMPDEST
00003894: SWAP2
00003895: POP
00003896: PUSH1 0x20
00003898: DUP4
00003899: ADD
0000389a: CALLDATALOAD
0000389b: PUSH2 0x38a3
0000389e: DUP2
0000389f: PUSH2 0x382e
000038a2: JUMP
000038a3: JUMPDEST
000038a4: DUP1
000038a5: SWAP2
000038a6: POP
000038a7: POP
000038a8: SWAP3
000038a9: POP
000038aa: SWAP3
000038ab: SWAP1
000038ac: POP
000038ad: JUMP
000038ae: JUMPDEST
000038af: PUSH4 0x4e487b71
000038b4: PUSH1 0xe0
000038b6: SHL
000038b7: PUSH0
000038b8: MSTORE
000038b9: PUSH1 0x41
000038bb: PUSH1 0x04
000038bd: MSTORE
000038be: PUSH1 0x24
000038c0: PUSH0
000038c1: REVERT
000038c2: JUMPDEST
000038c3: PUSH1 0x40
000038c5: MLOAD
000038c6: PUSH2 0x0180
000038c9: DUP2
000038ca: ADD
000038cb: PUSH8 0xffffffffffffffff
000038d4: DUP2
000038d5: GT
000038d6: DUP3
000038d7: DUP3
000038d8: LT
000038d9: OR
000038da: ISZERO
000038db: PUSH2 0x38e6
000038de: JUMPI
000038df: PUSH2 0x38e6
000038e2: PUSH2 0x38ae
000038e5: JUMP
000038e6: JUMPDEST
000038e7: PUSH1 0x40
000038e9: MSTORE
000038ea: SWAP1
000038eb: JUMP
000038ec: JUMPDEST
000038ed: PUSH1 0x40
000038ef: MLOAD
000038f0: PUSH1 0x1f
000038f2: DUP3
000038f3: ADD
000038f4: PUSH1 0x1f
000038f6: NOT
000038f7: AND
000038f8: DUP2
000038f9: ADD
000038fa: PUSH8 0xffffffffffffffff
00003903: DUP2
00003904: GT
00003905: DUP3
00003906: DUP3
00003907: LT
00003908: OR
00003909: ISZERO
0000390a: PUSH2 0x3915
0000390d: JUMPI
0000390e: PUSH2 0x3915
00003911: PUSH2 0x38ae
00003914: JUMP
00003915: JUMPDEST
00003916: PUSH1 0x40
00003918: MSTORE
00003919: SWAP2
0000391a: SWAP1
0000391b: POP
0000391c: JUMP
0000391d: JUMPDEST
0000391e: PUSH0
0000391f: DUP1
00003920: PUSH1 0x40
00003922: DUP4
00003923: DUP6
00003924: SUB
00003925: SLT
00003926: ISZERO
00003927: PUSH2 0x392e
0000392a: JUMPI
0000392b: PUSH0
0000392c: DUP1
0000392d: REVERT
0000392e: JUMPDEST
0000392f: DUP3
00003930: CALLDATALOAD
00003931: SWAP2
00003932: POP
00003933: PUSH1 0x20
00003935: DUP1
00003936: DUP5
00003937: ADD
00003938: CALLDATALOAD
00003939: PUSH8 0xffffffffffffffff
00003942: DUP1
00003943: DUP3
00003944: GT
00003945: ISZERO
00003946: PUSH2 0x394d
00003949: JUMPI
0000394a: PUSH0
0000394b: DUP1
0000394c: REVERT
0000394d: JUMPDEST
0000394e: DUP2
0000394f: DUP7
00003950: ADD
00003951: SWAP2
00003952: POP
00003953: DUP7
00003954: PUSH1 0x1f
00003956: DUP4
00003957: ADD
00003958: SLT
00003959: PUSH2 0x3960
0000395c: JUMPI
0000395d: PUSH0
0000395e: DUP1
0000395f: REVERT
00003960: JUMPDEST
00003961: DUP2
00003962: CALLDATALOAD
00003963: DUP2
00003964: DUP2
00003965: GT
00003966: ISZERO
00003967: PUSH2 0x3972
0000396a: JUMPI
0000396b: PUSH2 0x3972
0000396e: PUSH2 0x38ae
00003971: JUMP
00003972: JUMPDEST
00003973: PUSH2 0x3984
00003976: PUSH1 0x1f
00003978: DUP3
00003979: ADD
0000397a: PUSH1 0x1f
0000397c: NOT
0000397d: AND
0000397e: DUP6
0000397f: ADD
00003980: PUSH2 0x38ec
00003983: JUMP
00003984: JUMPDEST
00003985: SWAP2
00003986: POP
00003987: DUP1
00003988: DUP3
00003989: MSTORE
0000398a: DUP8
0000398b: DUP5
0000398c: DUP3
0000398d: DUP6
0000398e: ADD
0000398f: ADD
00003990: GT
00003991: ISZERO
00003992: PUSH2 0x3999
00003995: JUMPI
00003996: PUSH0
00003997: DUP1
00003998: REVERT
00003999: JUMPDEST
0000399a: DUP1
0000399b: DUP5
0000399c: DUP5
0000399d: ADD
0000399e: DUP6
0000399f: DUP5
000039a0: ADD
000039a1: CALLDATACOPY
000039a2: PUSH0
000039a3: DUP5
000039a4: DUP3
000039a5: DUP5
000039a6: ADD
000039a7: ADD
000039a8: MSTORE
000039a9: POP
000039aa: DUP1
000039ab: SWAP4
000039ac: POP
000039ad: POP
000039ae: POP
000039af: POP
000039b0: SWAP3
000039b1: POP
000039b2: SWAP3
000039b3: SWAP1
000039b4: POP
000039b5: JUMP
000039b6: JUMPDEST
000039b7: PUSH0
000039b8: DUP1
000039b9: PUSH0
000039ba: PUSH1 0x60
000039bc: DUP5
000039bd: DUP7
000039be: SUB
000039bf: SLT
000039c0: ISZERO
000039c1: PUSH2 0x39c8
000039c4: JUMPI
000039c5: PUSH0
000039c6: DUP1
000039c7: REVERT
000039c8: JUMPDEST
000039c9: DUP4
000039ca: CALLDATALOAD
000039cb: PUSH2 0x39d3
000039ce: DUP2
000039cf: PUSH2 0x382e
000039d2: JUMP
000039d3: JUMPDEST
000039d4: SWAP3
000039d5: POP
000039d6: PUSH1 0x20
000039d8: DUP5
000039d9: ADD
000039da: CALLDATALOAD
000039db: PUSH2 0x39e3
000039de: DUP2
000039df: PUSH2 0x382e
000039e2: JUMP
000039e3: JUMPDEST
000039e4: SWAP3
000039e5: SWAP6
000039e6: SWAP3
000039e7: SWAP5
000039e8: POP
000039e9: POP
000039ea: POP
000039eb: PUSH1 0x40
000039ed: SWAP2
000039ee: SWAP1
000039ef: SWAP2
000039f0: ADD
000039f1: CALLDATALOAD
000039f2: SWAP1
000039f3: JUMP
000039f4: JUMPDEST
000039f5: PUSH4 0xffffffff
000039fa: DUP2
000039fb: AND
000039fc: DUP2
000039fd: EQ
000039fe: PUSH2 0x126f
00003a01: JUMPI
00003a02: PUSH0
00003a03: DUP1
00003a04: REVERT
00003a05: JUMPDEST
00003a06: DUP1
00003a07: CALLDATALOAD
00003a08: PUSH2 0x1f56
00003a0b: DUP2
00003a0c: PUSH2 0x39f4
00003a0f: JUMP
00003a10: JUMPDEST
00003a11: DUP1
00003a12: ISZERO
00003a13: ISZERO
00003a14: DUP2
00003a15: EQ
00003a16: PUSH2 0x126f
00003a19: JUMPI
00003a1a: PUSH0
00003a1b: DUP1
00003a1c: REVERT
00003a1d: JUMPDEST
00003a1e: DUP1
00003a1f: CALLDATALOAD
00003a20: PUSH2 0x1f56
00003a23: DUP2
00003a24: PUSH2 0x3a10
00003a27: JUMP
00003a28: JUMPDEST
00003a29: PUSH0
00003a2a: PUSH2 0x0180
00003a2d: DUP3
00003a2e: DUP5
00003a2f: SUB
00003a30: SLT
00003a31: ISZERO
00003a32: PUSH2 0x3a39
00003a35: JUMPI
00003a36: PUSH0
00003a37: DUP1
00003a38: REVERT
00003a39: JUMPDEST
00003a3a: PUSH2 0x3a41
00003a3d: PUSH2 0x38c2
00003a40: JUMP
00003a41: JUMPDEST
00003a42: PUSH2 0x3a4a
00003a45: DUP4
00003a46: PUSH2 0x3842
00003a49: JUMP
00003a4a: JUMPDEST
00003a4b: DUP2
00003a4c: MSTORE
00003a4d: PUSH2 0x3a58
00003a50: PUSH1 0x20
00003a52: DUP5
00003a53: ADD
00003a54: PUSH2 0x3842
00003a57: JUMP
00003a58: JUMPDEST
00003a59: PUSH1 0x20
00003a5b: DUP3
00003a5c: ADD
00003a5d: MSTORE
00003a5e: PUSH2 0x3a69
00003a61: PUSH1 0x40
00003a63: DUP5
00003a64: ADD
00003a65: PUSH2 0x3842
00003a68: JUMP
00003a69: JUMPDEST
00003a6a: PUSH1 0x40
00003a6c: DUP3
00003a6d: ADD
00003a6e: MSTORE
00003a6f: PUSH1 0x60
00003a71: DUP4
00003a72: ADD
00003a73: CALLDATALOAD
00003a74: PUSH1 0x60
00003a76: DUP3
00003a77: ADD
00003a78: MSTORE
00003a79: PUSH1 0x80
00003a7b: DUP4
00003a7c: ADD
00003a7d: CALLDATALOAD
00003a7e: PUSH1 0x80
00003a80: DUP3
00003a81: ADD
00003a82: MSTORE
00003a83: PUSH2 0x3a8e
00003a86: PUSH1 0xa0
00003a88: DUP5
00003a89: ADD
00003a8a: PUSH2 0x3a05
00003a8d: JUMP
00003a8e: JUMPDEST
00003a8f: PUSH1 0xa0
00003a91: DUP3
00003a92: ADD
00003a93: MSTORE
00003a94: PUSH1 0xc0
00003a96: DUP4
00003a97: ADD
00003a98: CALLDATALOAD
00003a99: PUSH1 0xc0
00003a9b: DUP3
00003a9c: ADD
00003a9d: MSTORE
00003a9e: PUSH1 0xe0
00003aa0: DUP4
00003aa1: ADD
00003aa2: CALLDATALOAD
00003aa3: PUSH1 0xe0
00003aa5: DUP3
00003aa6: ADD
00003aa7: MSTORE
00003aa8: PUSH2 0x0100
00003aab: DUP1
00003aac: DUP5
00003aad: ADD
00003aae: CALLDATALOAD
00003aaf: DUP2
00003ab0: DUP4
00003ab1: ADD
00003ab2: MSTORE
00003ab3: POP
00003ab4: PUSH2 0x0120
00003ab7: PUSH2 0x3ac1
00003aba: DUP2
00003abb: DUP6
00003abc: ADD
00003abd: PUSH2 0x3a1d
00003ac0: JUMP
00003ac1: JUMPDEST
00003ac2: SWAP1
00003ac3: DUP3
00003ac4: ADD
00003ac5: MSTORE
00003ac6: PUSH2 0x0140
00003ac9: DUP4
00003aca: DUP2
00003acb: ADD
00003acc: CALLDATALOAD
00003acd: SWAP1
00003ace: DUP3
00003acf: ADD
00003ad0: MSTORE
00003ad1: PUSH2 0x0160
00003ad4: SWAP3
00003ad5: DUP4
00003ad6: ADD
00003ad7: CALLDATALOAD
00003ad8: SWAP3
00003ad9: DUP2
00003ada: ADD
00003adb: SWAP3
00003adc: SWAP1
00003add: SWAP3
00003ade: MSTORE
00003adf: POP
00003ae0: SWAP2
00003ae1: SWAP1
00003ae2: POP
00003ae3: JUMP
00003ae4: JUMPDEST
00003ae5: PUSH0
00003ae6: PUSH1 0x20
00003ae8: DUP3
00003ae9: DUP5
00003aea: SUB
00003aeb: SLT
00003aec: ISZERO
00003aed: PUSH2 0x3af4
00003af0: JUMPI
00003af1: PUSH0
00003af2: DUP1
00003af3: REVERT
00003af4: JUMPDEST
00003af5: DUP2
00003af6: CALLDATALOAD
00003af7: PUSH2 0x0da3
00003afa: DUP2
00003afb: PUSH2 0x382e
00003afe: JUMP
00003aff: JUMPDEST
00003b00: PUSH0
00003b01: PUSH1 0x20
00003b03: DUP3
00003b04: DUP5
00003b05: SUB
00003b06: SLT
00003b07: ISZERO
00003b08: PUSH2 0x3b0f
00003b0b: JUMPI
00003b0c: PUSH0
00003b0d: DUP1
00003b0e: REVERT
00003b0f: JUMPDEST
00003b10: POP
00003b11: CALLDATALOAD
00003b12: SWAP2
00003b13: SWAP1
00003b14: POP
00003b15: JUMP
00003b16: JUMPDEST
00003b17: PUSH0
00003b18: DUP1
00003b19: PUSH0
00003b1a: PUSH1 0x40
00003b1c: DUP5
00003b1d: DUP7
00003b1e: SUB
00003b1f: SLT
00003b20: ISZERO
00003b21: PUSH2 0x3b28
00003b24: JUMPI
00003b25: PUSH0
00003b26: DUP1
00003b27: REVERT
00003b28: JUMPDEST
00003b29: DUP4
00003b2a: CALLDATALOAD
00003b2b: SWAP3
00003b2c: POP
00003b2d: PUSH1 0x20
00003b2f: DUP5
00003b30: ADD
00003b31: CALLDATALOAD
00003b32: PUSH8 0xffffffffffffffff
00003b3b: DUP1
00003b3c: DUP3
00003b3d: GT
00003b3e: ISZERO
00003b3f: PUSH2 0x3b46
00003b42: JUMPI
00003b43: PUSH0
00003b44: DUP1
00003b45: REVERT
00003b46: JUMPDEST
00003b47: DUP2
00003b48: DUP7
00003b49: ADD
00003b4a: SWAP2
00003b4b: POP
00003b4c: DUP7
00003b4d: PUSH1 0x1f
00003b4f: DUP4
00003b50: ADD
00003b51: SLT
00003b52: PUSH2 0x3b59
00003b55: JUMPI
00003b56: PUSH0
00003b57: DUP1
00003b58: REVERT
00003b59: JUMPDEST
00003b5a: DUP2
00003b5b: CALLDATALOAD
00003b5c: DUP2
00003b5d: DUP2
00003b5e: GT
00003b5f: ISZERO
00003b60: PUSH2 0x3b67
00003b63: JUMPI
00003b64: PUSH0
00003b65: DUP1
00003b66: REVERT
00003b67: JUMPDEST
00003b68: DUP8
00003b69: PUSH1 0x20
00003b6b: DUP3
00003b6c: PUSH1 0x05
00003b6e: SHL
00003b6f: DUP6
00003b70: ADD
00003b71: ADD
00003b72: GT
00003b73: ISZERO
00003b74: PUSH2 0x3b7b
00003b77: JUMPI
00003b78: PUSH0
00003b79: DUP1
00003b7a: REVERT
00003b7b: JUMPDEST
00003b7c: PUSH1 0x20
00003b7e: DUP4
00003b7f: ADD
00003b80: SWAP5
00003b81: POP
00003b82: DUP1
00003b83: SWAP4
00003b84: POP
00003b85: POP
00003b86: POP
00003b87: POP
00003b88: SWAP3
00003b89: POP
00003b8a: SWAP3
00003b8b: POP
00003b8c: SWAP3
00003b8d: JUMP
00003b8e: JUMPDEST
00003b8f: PUSH0
00003b90: DUP1
00003b91: PUSH0
00003b92: DUP1
00003b93: PUSH0
00003b94: PUSH1 0xa0
00003b96: DUP7
00003b97: DUP9
00003b98: SUB
00003b99: SLT
00003b9a: ISZERO
00003b9b: PUSH2 0x3ba2
00003b9e: JUMPI
00003b9f: PUSH0
00003ba0: DUP1
00003ba1: REVERT
00003ba2: JUMPDEST
00003ba3: DUP6
00003ba4: CALLDATALOAD
00003ba5: PUSH2 0x3bad
00003ba8: DUP2
00003ba9: PUSH2 0x382e
00003bac: JUMP
00003bad: JUMPDEST
00003bae: SWAP5
00003baf: POP
00003bb0: PUSH1 0x20
00003bb2: DUP7
00003bb3: ADD
00003bb4: CALLDATALOAD
00003bb5: SWAP4
00003bb6: POP
00003bb7: PUSH1 0x40
00003bb9: DUP7
00003bba: ADD
00003bbb: CALLDATALOAD
00003bbc: PUSH2 0x3bc4
00003bbf: DUP2
00003bc0: PUSH2 0x382e
00003bc3: JUMP
00003bc4: JUMPDEST
00003bc5: SWAP5
00003bc6: SWAP8
00003bc7: SWAP4
00003bc8: SWAP7
00003bc9: POP
00003bca: SWAP4
00003bcb: SWAP5
00003bcc: PUSH1 0x60
00003bce: DUP2
00003bcf: ADD
00003bd0: CALLDATALOAD
00003bd1: SWAP5
00003bd2: POP
00003bd3: PUSH1 0x80
00003bd5: ADD
00003bd6: CALLDATALOAD
00003bd7: SWAP3
00003bd8: SWAP2
00003bd9: POP
00003bda: POP
00003bdb: JUMP
00003bdc: JUMPDEST
00003bdd: PUSH0
00003bde: DUP1
00003bdf: PUSH0
00003be0: DUP1
00003be1: PUSH0
00003be2: PUSH1 0xa0
00003be4: DUP7
00003be5: DUP9
00003be6: SUB
00003be7: SLT
00003be8: ISZERO
00003be9: PUSH2 0x3bf0
00003bec: JUMPI
00003bed: PUSH0
00003bee: DUP1
00003bef: REVERT
00003bf0: JUMPDEST
00003bf1: POP
00003bf2: POP
00003bf3: DUP4
00003bf4: CALLDATALOAD
00003bf5: SWAP6
00003bf6: PUSH1 0x20
00003bf8: DUP6
00003bf9: ADD
00003bfa: CALLDATALOAD
00003bfb: SWAP6
00003bfc: POP
00003bfd: PUSH1 0x40
00003bff: DUP6
00003c00: ADD
00003c01: CALLDATALOAD
00003c02: SWAP5
00003c03: PUSH1 0x60
00003c05: DUP2
00003c06: ADD
00003c07: CALLDATALOAD
00003c08: SWAP5
00003c09: POP
00003c0a: PUSH1 0x80
00003c0c: ADD
00003c0d: CALLDATALOAD
00003c0e: SWAP3
00003c0f: POP
00003c10: SWAP1
00003c11: POP
00003c12: JUMP
00003c13: JUMPDEST
00003c14: PUSH0
00003c15: DUP1
00003c16: PUSH0
00003c17: DUP1
00003c18: PUSH0
00003c19: DUP1
00003c1a: PUSH1 0xc0
00003c1c: DUP8
00003c1d: DUP10
00003c1e: SUB
00003c1f: SLT
00003c20: ISZERO
00003c21: PUSH2 0x3c28
00003c24: JUMPI
00003c25: PUSH0
00003c26: DUP1
00003c27: REVERT
00003c28: JUMPDEST
00003c29: POP
00003c2a: POP
00003c2b: DUP5
00003c2c: CALLDATALOAD
00003c2d: SWAP7
00003c2e: PUSH1 0x20
00003c30: DUP7
00003c31: ADD
00003c32: CALLDATALOAD
00003c33: SWAP7
00003c34: POP
00003c35: PUSH1 0x40
00003c37: DUP7
00003c38: ADD
00003c39: CALLDATALOAD
00003c3a: SWAP6
00003c3b: PUSH1 0x60
00003c3d: DUP2
00003c3e: ADD
00003c3f: CALLDATALOAD
00003c40: SWAP6
00003c41: POP
00003c42: PUSH1 0x80
00003c44: DUP2
00003c45: ADD
00003c46: CALLDATALOAD
00003c47: SWAP5
00003c48: POP
00003c49: PUSH1 0xa0
00003c4b: ADD
00003c4c: CALLDATALOAD
00003c4d: SWAP3
00003c4e: POP
00003c4f: SWAP1
00003c50: POP
00003c51: JUMP
00003c52: JUMPDEST
00003c53: PUSH1 0x20
00003c55: DUP1
00003c56: DUP3
00003c57: MSTORE
00003c58: DUP3
00003c59: MLOAD
00003c5a: DUP3
00003c5b: DUP3
00003c5c: ADD
00003c5d: DUP2
00003c5e: SWAP1
00003c5f: MSTORE
00003c60: PUSH0
00003c61: SWAP2
00003c62: SWAP1
00003c63: DUP5
00003c64: DUP3
00003c65: ADD
00003c66: SWAP1
00003c67: PUSH1 0x40
00003c69: DUP6
00003c6a: ADD
00003c6b: SWAP1
00003c6c: DUP5
00003c6d: JUMPDEST
00003c6e: DUP2
00003c6f: DUP2
00003c70: LT
00003c71: ISZERO
00003c72: PUSH2 0x3c92
00003c75: JUMPI
00003c76: DUP4
00003c77: MLOAD
00003c78: PUSH1 0x01
00003c7a: PUSH1 0x01
00003c7c: PUSH1 0xa0
00003c7e: SHL
00003c7f: SUB
00003c80: AND
00003c81: DUP4
00003c82: MSTORE
00003c83: SWAP3
00003c84: DUP5
00003c85: ADD
00003c86: SWAP3
00003c87: SWAP2
00003c88: DUP5
00003c89: ADD
00003c8a: SWAP2
00003c8b: PUSH1 0x01
00003c8d: ADD
00003c8e: PUSH2 0x3c6d
00003c91: JUMP
00003c92: JUMPDEST
00003c93: POP
00003c94: SWAP1
00003c95: SWAP7
00003c96: SWAP6
00003c97: POP
00003c98: POP
00003c99: POP
00003c9a: POP
00003c9b: POP
00003c9c: POP
00003c9d: JUMP
00003c9e: JUMPDEST
00003c9f: PUSH0
00003ca0: DUP1
00003ca1: PUSH0
00003ca2: PUSH1 0x60
00003ca4: DUP5
00003ca5: DUP7
00003ca6: SUB
00003ca7: SLT
00003ca8: ISZERO
00003ca9: PUSH2 0x3cb0
00003cac: JUMPI
00003cad: PUSH0
00003cae: DUP1
00003caf: REVERT
00003cb0: JUMPDEST
00003cb1: DUP4
00003cb2: CALLDATALOAD
00003cb3: PUSH2 0x3cbb
00003cb6: DUP2
00003cb7: PUSH2 0x382e
00003cba: JUMP
00003cbb: JUMPDEST
00003cbc: SWAP6
00003cbd: PUSH1 0x20
00003cbf: DUP6
00003cc0: ADD
00003cc1: CALLDATALOAD
00003cc2: SWAP6
00003cc3: POP
00003cc4: PUSH1 0x40
00003cc6: SWAP1
00003cc7: SWAP5
00003cc8: ADD
00003cc9: CALLDATALOAD
00003cca: SWAP4
00003ccb: SWAP3
00003ccc: POP
00003ccd: POP
00003cce: POP
00003ccf: JUMP
00003cd0: JUMPDEST
00003cd1: PUSH1 0x01
00003cd3: DUP2
00003cd4: DUP2
00003cd5: SHR
00003cd6: SWAP1
00003cd7: DUP3
00003cd8: AND
00003cd9: DUP1
00003cda: PUSH2 0x3ce4
00003cdd: JUMPI
00003cde: PUSH1 0x7f
00003ce0: DUP3
00003ce1: AND
00003ce2: SWAP2
00003ce3: POP
00003ce4: JUMPDEST
00003ce5: PUSH1 0x20
00003ce7: DUP3
00003ce8: LT
00003ce9: DUP2
00003cea: SUB
00003ceb: PUSH2 0x3d02
00003cee: JUMPI
00003cef: PUSH4 0x4e487b71
00003cf4: PUSH1 0xe0
00003cf6: SHL
00003cf7: PUSH0
00003cf8: MSTORE
00003cf9: PUSH1 0x22
00003cfb: PUSH1 0x04
00003cfd: MSTORE
00003cfe: PUSH1 0x24
00003d00: PUSH0
00003d01: REVERT
00003d02: JUMPDEST
00003d03: POP
00003d04: SWAP2
00003d05: SWAP1
00003d06: POP
00003d07: JUMP
00003d08: JUMPDEST
00003d09: PUSH4 0x4e487b71
00003d0e: PUSH1 0xe0
00003d10: SHL
00003d11: PUSH0
00003d12: MSTORE
00003d13: PUSH1 0x11
00003d15: PUSH1 0x04
00003d17: MSTORE
00003d18: PUSH1 0x24
00003d1a: PUSH0
00003d1b: REVERT
00003d1c: JUMPDEST
00003d1d: DUP1
00003d1e: DUP3
00003d1f: MUL
00003d20: DUP2
00003d21: ISZERO
00003d22: DUP3
00003d23: DUP3
00003d24: DIV
00003d25: DUP5
00003d26: EQ
00003d27: OR
00003d28: PUSH2 0x08e9
00003d2b: JUMPI
00003d2c: PUSH2 0x08e9
00003d2f: PUSH2 0x3d08
00003d32: JUMP
00003d33: JUMPDEST
00003d34: PUSH0
00003d35: PUSH1 0x20
00003d37: DUP3
00003d38: DUP5
00003d39: SUB
00003d3a: SLT
00003d3b: ISZERO
00003d3c: PUSH2 0x3d43
00003d3f: JUMPI
00003d40: PUSH0
00003d41: DUP1
00003d42: REVERT
00003d43: JUMPDEST
00003d44: POP
00003d45: MLOAD
00003d46: SWAP2
00003d47: SWAP1
00003d48: POP
00003d49: JUMP
00003d4a: JUMPDEST
00003d4b: DUP1
00003d4c: MLOAD
00003d4d: PUSH2 0x1f56
00003d50: DUP2
00003d51: PUSH2 0x382e
00003d54: JUMP
00003d55: JUMPDEST
00003d56: DUP1
00003d57: MLOAD
00003d58: PUSH2 0x1f56
00003d5b: DUP2
00003d5c: PUSH2 0x39f4
00003d5f: JUMP
00003d60: JUMPDEST
00003d61: DUP1
00003d62: MLOAD
00003d63: PUSH2 0x1f56
00003d66: DUP2
00003d67: PUSH2 0x3a10
00003d6a: JUMP
00003d6b: JUMPDEST
00003d6c: PUSH0
00003d6d: PUSH2 0x0180
00003d70: DUP3
00003d71: DUP5
00003d72: SUB
00003d73: SLT
00003d74: ISZERO
00003d75: PUSH2 0x3d7c
00003d78: JUMPI
00003d79: PUSH0
00003d7a: DUP1
00003d7b: REVERT
00003d7c: JUMPDEST
00003d7d: PUSH2 0x3d84
00003d80: PUSH2 0x38c2
00003d83: JUMP
00003d84: JUMPDEST
00003d85: PUSH2 0x3d8d
00003d88: DUP4
00003d89: PUSH2 0x3d4a
00003d8c: JUMP
00003d8d: JUMPDEST
00003d8e: DUP2
00003d8f: MSTORE
00003d90: PUSH2 0x3d9b
00003d93: PUSH1 0x20
00003d95: DUP5
00003d96: ADD
00003d97: PUSH2 0x3d4a
00003d9a: JUMP
00003d9b: JUMPDEST
00003d9c: PUSH1 0x20
00003d9e: DUP3
00003d9f: ADD
00003da0: MSTORE
00003da1: PUSH2 0x3dac
00003da4: PUSH1 0x40
00003da6: DUP5
00003da7: ADD
00003da8: PUSH2 0x3d4a
00003dab: JUMP
00003dac: JUMPDEST
00003dad: PUSH1 0x40
00003daf: DUP3
00003db0: ADD
00003db1: MSTORE
00003db2: PUSH1 0x60
00003db4: DUP4
00003db5: ADD
00003db6: MLOAD
00003db7: PUSH1 0x60
00003db9: DUP3
00003dba: ADD
00003dbb: MSTORE
00003dbc: PUSH1 0x80
00003dbe: DUP4
00003dbf: ADD
00003dc0: MLOAD
00003dc1: PUSH1 0x80
00003dc3: DUP3
00003dc4: ADD
00003dc5: MSTORE
00003dc6: PUSH2 0x3dd1
00003dc9: PUSH1 0xa0
00003dcb: DUP5
00003dcc: ADD
00003dcd: PUSH2 0x3d55
00003dd0: JUMP
00003dd1: JUMPDEST
00003dd2: PUSH1 0xa0
00003dd4: DUP3
00003dd5: ADD
00003dd6: MSTORE
00003dd7: PUSH1 0xc0
00003dd9: DUP4
00003dda: ADD
00003ddb: MLOAD
00003ddc: PUSH1 0xc0
00003dde: DUP3
00003ddf: ADD
00003de0: MSTORE
00003de1: PUSH1 0xe0
00003de3: DUP4
00003de4: ADD
00003de5: MLOAD
00003de6: PUSH1 0xe0
00003de8: DUP3
00003de9: ADD
00003dea: MSTORE
00003deb: PUSH2 0x0100
00003dee: DUP1
00003def: DUP5
00003df0: ADD
00003df1: MLOAD
00003df2: DUP2
00003df3: DUP4
00003df4: ADD
00003df5: MSTORE
00003df6: POP
00003df7: PUSH2 0x0120
00003dfa: PUSH2 0x3e04
00003dfd: DUP2
00003dfe: DUP6
00003dff: ADD
00003e00: PUSH2 0x3d60
00003e03: JUMP
00003e04: JUMPDEST
00003e05: SWAP1
00003e06: DUP3
00003e07: ADD
00003e08: MSTORE
00003e09: PUSH2 0x0140
00003e0c: DUP4
00003e0d: DUP2
00003e0e: ADD
00003e0f: MLOAD
00003e10: SWAP1
00003e11: DUP3
00003e12: ADD
00003e13: MSTORE
00003e14: PUSH2 0x0160
00003e17: SWAP3
00003e18: DUP4
00003e19: ADD
00003e1a: MLOAD
00003e1b: SWAP3
00003e1c: DUP2
00003e1d: ADD
00003e1e: SWAP3
00003e1f: SWAP1
00003e20: SWAP3
00003e21: MSTORE
00003e22: POP
00003e23: SWAP2
00003e24: SWAP1
00003e25: POP
00003e26: JUMP
00003e27: JUMPDEST
00003e28: PUSH4 0x4e487b71
00003e2d: PUSH1 0xe0
00003e2f: SHL
00003e30: PUSH0
00003e31: MSTORE
00003e32: PUSH1 0x12
00003e34: PUSH1 0x04
00003e36: MSTORE
00003e37: PUSH1 0x24
00003e39: PUSH0
00003e3a: REVERT
00003e3b: JUMPDEST
00003e3c: PUSH0
00003e3d: DUP3
00003e3e: PUSH2 0x3e55
00003e41: JUMPI
00003e42: PUSH4 0x4e487b71
00003e47: PUSH1 0xe0
00003e49: SHL
00003e4a: PUSH0
00003e4b: MSTORE
00003e4c: PUSH1 0x12
00003e4e: PUSH1 0x04
00003e50: MSTORE
00003e51: PUSH1 0x24
00003e53: PUSH0
00003e54: REVERT
00003e55: JUMPDEST
00003e56: POP
00003e57: DIV
00003e58: SWAP1
00003e59: JUMP
00003e5a: JUMPDEST
00003e5b: DUP1
00003e5c: DUP3
00003e5d: ADD
00003e5e: DUP1
00003e5f: DUP3
00003e60: GT
00003e61: ISZERO
00003e62: PUSH2 0x08e9
00003e65: JUMPI
00003e66: PUSH2 0x08e9
00003e69: PUSH2 0x3d08
00003e6c: JUMP
00003e6d: JUMPDEST
00003e6e: PUSH1 0x20
00003e70: DUP2
00003e71: MSTORE
00003e72: DUP2
00003e73: PUSH1 0x20
00003e75: DUP3
00003e76: ADD
00003e77: MSTORE
00003e78: DUP2
00003e79: DUP4
00003e7a: PUSH1 0x40
00003e7c: DUP4
00003e7d: ADD
00003e7e: CALLDATACOPY
00003e7f: PUSH0
00003e80: DUP2
00003e81: DUP4
00003e82: ADD
00003e83: PUSH1 0x40
00003e85: SWAP1
00003e86: DUP2
00003e87: ADD
00003e88: SWAP2
00003e89: SWAP1
00003e8a: SWAP2
00003e8b: MSTORE
00003e8c: PUSH1 0x1f
00003e8e: SWAP1
00003e8f: SWAP3
00003e90: ADD
00003e91: PUSH1 0x1f
00003e93: NOT
00003e94: AND
00003e95: ADD
00003e96: ADD
00003e97: SWAP2
00003e98: SWAP1
00003e99: POP
00003e9a: JUMP
00003e9b: JUMPDEST
00003e9c: DUP2
00003e9d: DUP2
00003e9e: SUB
00003e9f: DUP2
00003ea0: DUP2
00003ea1: GT
00003ea2: ISZERO
00003ea3: PUSH2 0x08e9
00003ea6: JUMPI
00003ea7: PUSH2 0x08e9
00003eaa: PUSH2 0x3d08
00003ead: JUMP
00003eae: JUMPDEST
00003eaf: PUSH4 0x4e487b71
00003eb4: PUSH1 0xe0
00003eb6: SHL
00003eb7: PUSH0
00003eb8: MSTORE
00003eb9: PUSH1 0x32
00003ebb: PUSH1 0x04
00003ebd: MSTORE
00003ebe: PUSH1 0x24
00003ec0: PUSH0
00003ec1: REVERT
00003ec2: JUMPDEST
00003ec3: PUSH4 0x4e487b71
00003ec8: PUSH1 0xe0
00003eca: SHL
00003ecb: PUSH0
00003ecc: MSTORE
00003ecd: PUSH1 0x31
00003ecf: PUSH1 0x04
00003ed1: MSTORE
00003ed2: PUSH1 0x24
00003ed4: PUSH0
00003ed5: REVERT
00003ed6: JUMPDEST
00003ed7: PUSH0
00003ed8: DUP3
00003ed9: MLOAD
00003eda: DUP1
00003edb: PUSH1 0x20
00003edd: DUP6
00003ede: ADD
00003edf: DUP5
00003ee0: MCOPY
00003ee1: PUSH0
00003ee2: SWAP3
00003ee3: ADD
00003ee4: SWAP2
00003ee5: DUP3
00003ee6: MSTORE
00003ee7: POP
00003ee8: SWAP2
00003ee9: SWAP1
00003eea: POP
00003eeb: JUMP
00003eec: JUMPDEST
00003eed: PUSH0
00003eee: PUSH1 0x20
00003ef0: DUP3
00003ef1: DUP5
00003ef2: SUB
00003ef3: SLT
00003ef4: ISZERO
00003ef5: PUSH2 0x3efc
00003ef8: JUMPI
00003ef9: PUSH0
00003efa: DUP1
00003efb: REVERT
00003efc: JUMPDEST
00003efd: DUP2
00003efe: MLOAD
00003eff: PUSH2 0x0da3
00003f02: DUP2
00003f03: PUSH2 0x3a10
00003f06: JUMP
00003f07: INVALID
00003f08: EXTCODEHASH
00003f09: DUP16
00003f0a: UNKNOWN(0x4C)
00003f0b: MSTORE8
00003f0c: PUSH13 0xe1b925b469af1b09a44da237da
00003f1a: UNKNOWN(0xB5)
00003f1b: UNKNOWN(0xBB)
00003f1c: UNKNOWN(0xC5)
00003f1d: DUP5
00003f1e: PC
00003f1f: JUMP
00003f20: BASEFEE
00003f21: UNKNOWN(0xC1)
00003f22: UNKNOWN(0x2B)
00003f23: UNKNOWN(0xE1)
00003f24: UNKNOWN(0xCA)
00003f25: UNKNOWN(0x25)
00003f26: UNKNOWN(0xA8)
00003f27: UNKNOWN(0xC4)
00003f28: LOG2
00003f29: PUSH5 0x6970667358
00003f2f: UNKNOWN(0x22)
00003f30: SLT
00003f31: KECCAK256
00003f32: SHR
00003f33: UNKNOWN(0x2A)
00003f34: UNKNOWN(0xB6)
00003f35: PUSH15 0x24826998fe1115ecda27a1ca1f02b6
00003f45: UNKNOWN(0xDD)
00003f46: PUSH1 0x5d
00003f48: INVALID
00003f49: UNKNOWN(0xC5)
00003f4a: DUP13
00003f4b: UNKNOWN(0xF6)
00003f4c: UNKNOWN(0xED)
00003f4d: UNKNOWN(0xED)
00003f4e: UNKNOWN(0xC7)
00003f4f: ORIGIN
00003f50: PUSH32

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
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": "0xf14fcbc8",
            "selector": "0xf14fcbc8",
            "calldata_variants": [
                "0xf14fcbc8",
                "0xf14fcbc80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1b8a9b7",
            "selector": "0xf1b8a9b7",
            "calldata_variants": [
                "0xf1b8a9b7",
                "0xf1b8a9b70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8b2cb4f",
            "selector": "0xf8b2cb4f",
            "calldata_variants": [
                "0xf8b2cb4f",
                "0xf8b2cb4f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8d6aed4",
            "selector": "0xf8d6aed4",
            "calldata_variants": [
                "0xf8d6aed4",
                "0xf8d6aed40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4a28a52",
            "selector": "0xe4a28a52",
            "calldata_variants": [
                "0xe4a28a52",
                "0xe4a28a520000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4e1e538",
            "selector": "0xe4e1e538",
            "calldata_variants": [
                "0xe4e1e538",
                "0xe4e1e5380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec093021",
            "selector": "0xec093021",
            "calldata_variants": [
                "0xec093021",
                "0xec0930210000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 16207,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x68e185cbdfd9d2b873dc7a42b7c0f1c2717d38e438a000065ea08b8245858650
call_targets: 0xf08d4dea369c456d26a3168ff0024b904f2d8b91
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x68e185cbdfd9d2b873dc7a42b7c0f1c2717d38e438a000065ea08b8245858650",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf08d4dea369c456d26a3168ff0024b904f2d8b91"
    ],
    "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": "0xf14fcbc8",
            "selector": "0xf14fcbc8",
            "calldata_variants": [
                "0xf14fcbc8",
                "0xf14fcbc80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1b8a9b7",
            "selector": "0xf1b8a9b7",
            "calldata_variants": [
                "0xf1b8a9b7",
                "0xf1b8a9b70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8b2cb4f",
            "selector": "0xf8b2cb4f",
            "calldata_variants": [
                "0xf8b2cb4f",
                "0xf8b2cb4f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8d6aed4",
            "selector": "0xf8d6aed4",
            "calldata_variants": [
                "0xf8d6aed4",
                "0xf8d6aed40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4a28a52",
            "selector": "0xe4a28a52",
            "calldata_variants": [
                "0xe4a28a52",
                "0xe4a28a520000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4e1e538",
            "selector": "0xe4e1e538",
            "calldata_variants": [
                "0xe4e1e538",
                "0xe4e1e5380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec093021",
            "selector": "0xec093021",
            "calldata_variants": [
                "0xec093021",
                "0xec0930210000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 11983,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 13856,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 14119,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 16207,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x68e185cbdfd9d2b873dc7a42b7c0f1c2717d38e438a000065ea08b8245858650
call_targets: 0xf08d4dea369c456d26a3168ff0024b904f2d8b91
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x68e185cbdfd9d2b873dc7a42b7c0f1c2717d38e438a000065ea08b8245858650",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf08d4dea369c456d26a3168ff0024b904f2d8b91"
    ],
    "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": "0xf14fcbc8",
            "selector": "0xf14fcbc8",
            "calldata_variants": [
                "0xf14fcbc8",
                "0xf14fcbc80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1b8a9b7",
            "selector": "0xf1b8a9b7",
            "calldata_variants": [
                "0xf1b8a9b7",
                "0xf1b8a9b70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8b2cb4f",
            "selector": "0xf8b2cb4f",
            "calldata_variants": [
                "0xf8b2cb4f",
                "0xf8b2cb4f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8d6aed4",
            "selector": "0xf8d6aed4",
            "calldata_variants": [
                "0xf8d6aed4",
                "0xf8d6aed40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4a28a52",
            "selector": "0xe4a28a52",
            "calldata_variants": [
                "0xe4a28a52",
                "0xe4a28a520000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4e1e538",
            "selector": "0xe4e1e538",
            "calldata_variants": [
                "0xe4e1e538",
                "0xe4e1e5380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec093021",
            "selector": "0xec093021",
            "calldata_variants": [
                "0xec093021",
                "0xec0930210000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 11983,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 13856,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 14119,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 16207,
            "type": "tx_origin_used"
        }
    ]
}
low math codex Fee-on-transfer tokens break pool accounting and allow value extraction 65 no
view
evidence_json
{
    "evidence": "`swapExactAmountIn`/`swapExactAmountOut` calculate outputs from `tokenAmountIn` and then pull that amount without checking the balance delta; `_pullUnderlying` only calls `safeTransferFrom`. `BCoWPool.verify` uses `order.buyAmount` directly as the input amount for pricing.",
    "locations": [
        "contracts/src/contracts/BPool.sol:260",
        "contracts/src/contracts/BPool.sol:282",
        "contracts/src/contracts/BPool.sol:466",
        "contracts/src/contracts/BCoWPool.sol:124"
    ],
    "recommendation": "Disallow fee-on-transfer/deflationary tokens (whitelist standard ERC20s) or compute actual received amounts via balance-before/after and use that for pricing. For CoW orders, either enforce standard ERC20s or adjust validation to account for actual received amounts.",
    "exploit_scenario": "If a bound token charges a transfer fee, an attacker can swap that token in. The pool computes `tokenAmountOut` from the nominal `tokenAmountIn`, but the pool receives less due to the fee and still sends out the full `tokenAmountOut`, letting the attacker extract excess of the other token. The same issue applies to CoW orders validated via `verify` when the buy token is fee-on-transfer."
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 17
}