64fdfe11-456e-45f6-8615-c93b752c18eb
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31746 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 95899 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 95900 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 95901 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 95902 | capability.graph | complete | 1 / 3 | 1 week ago |
| 95903 | detector.run | complete | 1 / 3 | 1 week ago |
| 95904 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:578029] OpenAI Codex v0.77.0 (research preview)
[codex:578029] --------
[codex:578029] workdir: /tmp/codex-multi-2prxuax3
[codex:578029] model: gpt-5.2-codex
[codex:578029] provider: openai
[codex:578029] approval: never
[codex:578029] sandbox: read-only
[codex:578029] reasoning effort: xhigh
[codex:578029] reasoning summaries: auto
[codex:578029] session id: 019b8fb8-752e-73c1-97f5-2048d3da2ee3
[codex:578029] --------
[codex:578029] user
[codex:578029] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:578029]
[codex:578029] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:578029]
[codex:578029] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:578029] - Gas inefficiency, code quality, naming, or best practices
[codex:578029] - Theoretical vulnerabilities without a clear extraction path
[codex:578029] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:578029] - Front-running unless it enables theft beyond MEV
[codex:578029] - DoS, griefing, or issues that don't result in attacker profit
[codex:578029] - Missing events, view function issues, or informational findings
[codex:578029]
[codex:578029] HIGH-VALUE PATTERNS TO HUNT:
[codex:578029] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:578029] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:578029] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:578029] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:578029] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:578029] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:578029] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:578029] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:578029] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:578029]
[codex:578029] For each finding, you MUST provide:
[codex:578029] 1. Exact file and line numbers of vulnerable code
[codex:578029] 2. Step-by-step exploit transaction sequence
[codex:578029] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:578029]
[codex:578029] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:578029]
[codex:578029] Output MUST be valid JSON matching the provided schema.
[codex:578029] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:578029] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:578029] mcp startup: no servers
[codex:578029]
[codex:578029] thinking
[codex:578029] **Reading AUDIT_BUNDLE.txt**
[codex:578029] exec
[codex:578029] /bin/bash -lc ls in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] AUDIT_BUNDLE.txt
[codex:578029] codex-output-schema.json
[codex:578029] contracts
[codex:578029] exec
[codex:578029] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:578029]
[codex:578029] ================================================================================
[codex:578029] FILE: contracts/contracts/Bytes.sol
[codex:578029] ================================================================================
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029] // Functions named bytesToX, except bytesToBytes20, where X is some type of size N < 32 (size of one word)
[codex:578029] // implements the following algorithm:
[codex:578029] // f(bytes memory input, uint offset) -> X out
[codex:578029] // where byte representation of out is N bytes from input at the given offset
[codex:578029] // 1) We compute memory location of the word W such that last N bytes of W is input[offset..offset+N]
[codex:578029] // W_address = input + 32 (skip stored length of bytes) + offset - (32 - N) == input + offset + N
[codex:578029] // 2) We load W from memory into out, last N bytes of W are placed into out
[codex:578029]
[codex:578029] library Bytes {
[codex:578029]
[codex:578029] function toBytesFromUInt16(uint16 self) internal pure returns (bytes memory _bts) {
[codex:578029] return toBytesFromUIntTruncated(uint(self), 2);
[codex:578029] }
[codex:578029]
[codex:578029] thinking
[codex:578029] **Searching for vulnerabilities in contracts**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "initialize|upgrade|withdraw|withdrawal|pending|fullExit|deposit|transfer" -S contracts/contracts | head' in /tmp/codex-multi-2prxuax3 succeeded in 17ms:
[codex:578029] contracts/contracts/Upgradeable.sol:4:/// @title Interface of the upgradeable contract
[codex:578029] contracts/contracts/Upgradeable.sol:9: /// @notice Upgrades target of upgradeable contract
[codex:578029] contracts/contracts/Upgradeable.sol:12: function upgradeTarget(address newTarget, bytes calldata newTargetInitializationParameters) external;
[codex:578029] contracts/contracts/Verifier.sol:11: function initialize(bytes calldata) external {
[codex:578029] contracts/contracts/Verifier.sol:14: /// @notice Verifier contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/Verifier.sol:15: /// @param upgradeParameters Encoded representation of upgrade parameters
[codex:578029] contracts/contracts/Verifier.sol:16: function upgrade(bytes calldata upgradeParameters) external {}
[codex:578029] contracts/contracts/UpgradeableMaster.sol:4:/// @title Interface of the upgradeable master contract (defines notice period duration and allows finish upgrade during preparation of it)
[codex:578029] contracts/contracts/UpgradeableMaster.sol:9: /// @notice Notice period before activation preparation status of upgrade mode
[codex:578029] contracts/contracts/UpgradeableMaster.sol:13: function upgradeNoticePeriodStarted() external;
[codex:578029]
[codex:578029] thinking
[codex:578029] **Locating main contract definition**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "contract Zk|contract ZKS|contract ZkSync|contract ZK" -S contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 10ms:
[codex:578029] contracts/contracts/ZkSync.sol:24:contract ZkSync is PairTokenManager, UpgradeableMaster, Storage, Config, Events, ReentrancyGuard {
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,240p' contracts/contracts/ZkSync.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029] import "./ReentrancyGuard.sol";
[codex:578029] import "./SafeMath.sol";
[codex:578029] import "./SafeMathUInt128.sol";
[codex:578029] import "./SafeCast.sol";
[codex:578029] import "./Utils.sol";
[codex:578029]
[codex:578029] import "./Storage.sol";
[codex:578029] import "./Config.sol";
[codex:578029] import "./Events.sol";
[codex:578029]
[codex:578029] import "./Bytes.sol";
[codex:578029] import "./Operations.sol";
[codex:578029]
[codex:578029] import "./UpgradeableMaster.sol";
[codex:578029] import "./uniswap/UniswapV2Factory.sol";
[codex:578029]
[codex:578029] import "./PairTokenManager.sol";
[codex:578029]
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '240,520p' contracts/contracts/ZkSync.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] } else {
[codex:578029] // It is pair token
[codex:578029] tokenAddr = tokenAddresses[tokenId];
[codex:578029] }
[codex:578029] // tokenAddr cannot be 0
[codex:578029] require(tokenAddr != address(0), "cwt0");
[codex:578029] // we can just check that call not reverts because it wants to withdraw all amount
[codex:578029] (sent,) = address(this).call.gas(withdrawGasLimit)(
[codex:578029] abi.encodeWithSignature("withdrawERC20Guarded(address,address,uint128,uint128)", tokenAddr, to, amount, amount)
[codex:578029] );
[codex:578029] }
[codex:578029] if (!sent) {
[codex:578029] balancesToWithdraw[packedBalanceKey].balanceToWithdraw += amount;
[codex:578029] }
[codex:578029] }
[codex:578029] }
[codex:578029] if (toProcess > 0) {
[codex:578029] emit PendingWithdrawalsComplete(startIndex, startIndex + toProcess);
[codex:578029] }
[codex:578029] }
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing potential unprotected initialization exploit**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "Proxy|Upgradeable|upgradeTarget|delegatecall" -S contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 10ms:
[codex:578029] contracts/contracts/ZkSync.sol:16:import "./UpgradeableMaster.sol";
[codex:578029] contracts/contracts/ZkSync.sol:24:contract ZkSync is PairTokenManager, UpgradeableMaster, Storage, Config, Events, ReentrancyGuard {
[codex:578029] contracts/contracts/ZkSync.sol:143: /// @notice Franklin contract initialization. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/ZkSync.sol:180: /// @notice zkSync contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/ZkSync.sol:517: // Execute external function from facet using delegatecall and return any value.
[codex:578029] contracts/contracts/ZkSync.sol:520: let result := delegatecall(gas(), nextAddress, 0, calldatasize(), 0, 0)
[codex:578029] contracts/contracts/Upgradeable.sol:7:interface Upgradeable {
[codex:578029] contracts/contracts/Upgradeable.sol:12: function upgradeTarget(address newTarget, bytes calldata newTargetInitializationParameters) external;
[codex:578029] contracts/contracts/VerifierExit.sol:12: /// @notice VerifierExit contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/Verifier.sol:14: /// @notice Verifier contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/UpgradeableMaster.sol:7:interface UpgradeableMaster {
[codex:578029] contracts/contracts/Events.sol:3:import "./Upgradeable.sol";
[codex:578029] contracts/contracts/Governance.sol:57: /// @notice Governance contract initialization. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/Governance.sol:68: /// @notice Governance contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/uniswap/UniswapV2Factory.sol:25: /// @notice PairManager contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029]
[codex:578029] thinking
[codex:578029] **Searching for proxy contract files**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'ls contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] Bytes.sol
[codex:578029] Config.sol
[codex:578029] Events.sol
[codex:578029] Governance.sol
[codex:578029] IERC20.sol
[codex:578029] KeysWithPlonkAggVerifier.sol
[codex:578029] KeysWithPlonkSingleVerifier.sol
[codex:578029] Operations.sol
[codex:578029] PairTokenManager.sol
[codex:578029] PlonkAggCore.sol
[codex:578029] PlonkCoreLib.sol
[codex:578029] PlonkSingleCore.sol
[codex:578029] ReentrancyGuard.sol
[codex:578029] SafeCast.sol
[codex:578029] SafeMath.sol
[codex:578029] SafeMathUInt128.sol
[codex:578029] Storage.sol
[codex:578029] uniswap
[codex:578029] UpgradeableMaster.sol
[codex:578029] Upgradeable.sol
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing governance initialization vulnerabilities**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,220p' contracts/contracts/Governance.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029] import "./Config.sol";
[codex:578029]
[codex:578029]
[codex:578029] /// @title Governance Contract
[codex:578029] /// @author Matter Labs
[codex:578029] /// @author ZKSwap L2 Labs
[codex:578029] contract Governance is Config {
[codex:578029]
[codex:578029] /// @notice Token added to Franklin net
[codex:578029] event NewToken(
[codex:578029] address indexed token,
[codex:578029] uint16 indexed tokenId
[codex:578029] );
[codex:578029]
[codex:578029] /// @notice Governor changed
[codex:578029] event NewGovernor(
[codex:578029] address newGovernor
[codex:578029] );
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing initialize access risks**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,260p' contracts/contracts/PairTokenManager.sol" in /tmp/codex-multi-2prxuax3 succeeded in 9ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029] contract PairTokenManager {
[codex:578029] /// @notice Max amount of pair tokens registered in the network.
[codex:578029] uint16 constant MAX_AMOUNT_OF_PAIR_TOKENS = 49152;
[codex:578029]
[codex:578029] uint16 constant PAIR_TOKEN_START_ID = 16384;
[codex:578029]
[codex:578029] /// @notice Total number of pair tokens registered in the network
[codex:578029] uint16 public totalPairTokens;
[codex:578029]
[codex:578029] /// @notice List of registered tokens by tokenId
[codex:578029] mapping(uint16 => address) public tokenAddresses;
[codex:578029]
[codex:578029] /// @notice List of registered tokens by address
[codex:578029] mapping(address => uint16) public tokenIds;
[codex:578029]
[codex:578029] /// @notice Token added to Franklin net
[codex:578029] event NewToken(
[codex:578029] address indexed token,
[codex:578029]
[codex:578029] thinking
[codex:578029] **Checking storage details**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,260p' contracts/contracts/Storage.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029] import "./IERC20.sol";
[codex:578029]
[codex:578029] import "./Governance.sol";
[codex:578029] import "./Verifier.sol";
[codex:578029] import "./VerifierExit.sol";
[codex:578029] import "./Operations.sol";
[codex:578029]
[codex:578029] import "./uniswap/UniswapV2Factory.sol";
[codex:578029]
[codex:578029] /// @title ZKSwap storage contract
[codex:578029] /// @author Matter Labs
[codex:578029] /// @author ZKSwap L2 Labs
[codex:578029] contract Storage {
[codex:578029]
[codex:578029] /// @notice Flag indicates that upgrade preparation status is active
[codex:578029] /// @dev Will store false in case of not active upgrade mode
[codex:578029] bool public upgradePreparationActive;
[codex:578029]
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing withdrawal and reentrancy risks**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "balancesToWithdraw" -S contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 9ms:
[codex:578029] contracts/contracts/ZkSync.sol:227: uint128 amount = balancesToWithdraw[packedBalanceKey].balanceToWithdraw;
[codex:578029] contracts/contracts/ZkSync.sol:230: balancesToWithdraw[packedBalanceKey].balanceToWithdraw -= amount;
[codex:578029] contracts/contracts/ZkSync.sol:252: balancesToWithdraw[packedBalanceKey].balanceToWithdraw += amount;
[codex:578029] contracts/contracts/ZkSync.sol:275: balancesToWithdraw[packedBalanceKey].balanceToWithdraw += op.amount;
[codex:578029] contracts/contracts/ZkSync.sol:375: uint128 balance = balancesToWithdraw[packedBalanceKey].balanceToWithdraw;
[codex:578029] contracts/contracts/ZkSync.sol:395: uint128 balance = balancesToWithdraw[packedBalanceKey].balanceToWithdraw;
[codex:578029] contracts/contracts/ZkSync.sol:426: // User must fill storage slot of balancesToWithdraw(msg.sender, tokenId) with nonzero value
[codex:578029] contracts/contracts/ZkSync.sol:429: balancesToWithdraw[packedBalanceKey].gasReserveValue = 0xff;
[codex:578029] contracts/contracts/ZkSync.sol:465: uint128 balance = balancesToWithdraw[packedBalanceKey].balanceToWithdraw;
[codex:578029] contracts/contracts/ZkSync.sol:466: balancesToWithdraw[packedBalanceKey].balanceToWithdraw = balance.sub(_amount);
[codex:578029] contracts/contracts/Storage.sol:40: mapping(bytes22 => BalanceToWithdraw) public balancesToWithdraw;
[codex:578029] contracts/contracts/Storage.sol:133: /// @notice Gets value from balancesToWithdraw
[codex:578029] contracts/contracts/Storage.sol:135: return balancesToWithdraw[packAddressAndTokenId(_address, _tokenId)].balanceToWithdraw;
[codex:578029]
[codex:578029] thinking
[codex:578029] **Searching for commit and verify functions**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "commit|verify|revert|exodus|priority" -S contracts/contracts | head -n 50' in /tmp/codex-multi-2prxuax3 succeeded in 10ms:
[codex:578029] contracts/contracts/ZkSync.sol:83: // Priority Queue request
[codex:578029] contracts/contracts/ZkSync.sol:96: addPriorityRequest(Operations.OpType.CreatePair, pubData, userData);
[codex:578029] contracts/contracts/ZkSync.sol:134: return !exodusMode;
[codex:578029] contracts/contracts/ZkSync.sol:139: zkSyncCommitBlockAddress = address(this);
[codex:578029] contracts/contracts/ZkSync.sol:169: function setGenesisRootAndAddresses(bytes32 _genesisRoot, address _zkSyncCommitBlockAddress, address _zkSyncExitAddress) external {
[codex:578029] contracts/contracts/ZkSync.sol:171: // _zkSyncCommitBlockAddress and _zkSyncExitAddress have been set to
[codex:578029] contracts/contracts/ZkSync.sol:173: require(zkSyncCommitBlockAddress == address(0), "sraa1");
[codex:578029] contracts/contracts/ZkSync.sol:176: zkSyncCommitBlockAddress = _zkSyncCommitBlockAddress;
[codex:578029] contracts/contracts/ZkSync.sol:185: /// @dev NOTE: will revert if transfer call fails or rollup balance difference (before and after transfer) is bigger than _maxAmount
[codex:578029] contracts/contracts/ZkSync.sol:192: // wtg10 - can be called only from this contract as one "external" call (to revert all this function state changes if it is needed)
[codex:578029] contracts/contracts/ZkSync.sol:234: sent = Utils.sendETHNoRevert(toPayable, amount);
[codex:578029] contracts/contracts/ZkSync.sol:246: // we can just check that call not reverts because it wants to withdraw all amount
[codex:578029] contracts/contracts/ZkSync.sol:261: /// @notice Accrues users balances from deposit priority requests in Exodus mode
[codex:578029] contracts/contracts/ZkSync.sol:262: /// @dev WARNING: Only for Exodus mode
[codex:578029] contracts/contracts/ZkSync.sol:265: function cancelOutstandingDepositsForExodusMode(uint64 _n) external nonReentrant {
[codex:578029] contracts/contracts/ZkSync.sol:266: require(exodusMode, "coe01");
[codex:578029] contracts/contracts/ZkSync.sol:267: // exodus mode not active
[codex:578029] contracts/contracts/ZkSync.sol:268: uint64 toProcess = Utils.minU64(totalOpenPriorityRequests, _n);
[codex:578029] contracts/contracts/ZkSync.sol:271: for (uint64 id = firstPriorityRequestId; id < firstPriorityRequestId + toProcess; id++) {
[codex:578029] contracts/contracts/ZkSync.sol:272: if (priorityRequests[id].opType == Operations.OpType.Deposit) {
[codex:578029]
[codex:578029] thinking
[codex:578029] **Searching for commit functions in AUDIT_BUNDLE**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "commitBlock|commitBlocks|verifyBlock|exodus" -S AUDIT_BUNDLE.txt | head -n 50' in /tmp/codex-multi-2prxuax3 succeeded in 7ms:
[codex:578029] 480: /// @notice Pending withdrawals index range that were added in the verifyBlock operation.
[codex:578029] 3706: /// @notice Flag indicates that exodus (mass exit) mode is triggered
[codex:578029] 3708: bool public exodusMode;
[codex:578029] 4152: return !exodusMode;
[codex:578029] 4284: require(exodusMode, "coe01");
[codex:578029] 4285: // exodus mode not active
[codex:578029] 4491: /// @notice Checks that current state not is exodus mode
[codex:578029] 4493: require(!exodusMode, "fre11");
[codex:578029] 4494: // exodus mode activated
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing potential LP token minting exploit**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "setZkSyncAddress" -S contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 10ms:
[codex:578029] contracts/contracts/uniswap/UniswapV2Factory.sol:20: function setZkSyncAddress(address _zksyncAddress) external {
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing potential factory access issues**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,260p' contracts/contracts/Utils.sol" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029] import "./IERC20.sol";
[codex:578029] import "./Bytes.sol";
[codex:578029]
[codex:578029] library Utils {
[codex:578029] /// @notice Returns lesser of two values
[codex:578029] function minU32(uint32 a, uint32 b) internal pure returns (uint32) {
[codex:578029] return a < b ? a : b;
[codex:578029] }
[codex:578029]
[codex:578029] /// @notice Returns lesser of two values
[codex:578029] function minU64(uint64 a, uint64 b) internal pure returns (uint64) {
[codex:578029] return a < b ? a : b;
[codex:578029] }
[codex:578029]
[codex:578029] /// @notice Sends tokens
[codex:578029] /// @dev NOTE: this function handles tokens that have transfer function not strictly compatible with ERC20 standard
[codex:578029] /// @dev NOTE: call `transfer` to this token may return (bool) or nothing
[codex:578029] /// @param _token Token address
[codex:578029]
[codex:578029] thinking
[codex:578029] **Investigating potential verification flaws**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,220p' contracts/contracts/VerifierExit.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] pragma experimental ABIEncoderV2;
[codex:578029]
[codex:578029] import "./KeysWithPlonkSingleVerifier.sol";
[codex:578029]
[codex:578029] // Hardcoded constants to avoid accessing store
[codex:578029] contract VerifierExit is KeysWithPlonkSingleVerifier {
[codex:578029]
[codex:578029] function initialize(bytes calldata) external {
[codex:578029] }
[codex:578029]
[codex:578029] /// @notice VerifierExit contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] /// @param upgradeParameters Encoded representation of upgrade parameters
[codex:578029] function upgrade(bytes calldata upgradeParameters) external {}
[codex:578029]
[codex:578029] function verifyExitProof(
[codex:578029] bytes32 _rootHash,
[codex:578029] uint32 _accountId,
[codex:578029] address _owner,
[codex:578029] uint16 _tokenId,
[codex:578029]
[codex:578029] thinking
[codex:578029] **Confirming need for verifier**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,200p' contracts/contracts/Verifier.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] pragma experimental ABIEncoderV2;
[codex:578029]
[codex:578029] import "./KeysWithPlonkAggVerifier.sol";
[codex:578029]
[codex:578029] // Hardcoded constants to avoid accessing store
[codex:578029] contract Verifier is KeysWithPlonkAggVerifier {
[codex:578029]
[codex:578029] bool constant DUMMY_VERIFIER = false;
[codex:578029]
[codex:578029] function initialize(bytes calldata) external {
[codex:578029] }
[codex:578029]
[codex:578029] /// @notice Verifier contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] /// @param upgradeParameters Encoded representation of upgrade parameters
[codex:578029] function upgrade(bytes calldata upgradeParameters) external {}
[codex:578029]
[codex:578029] function isBlockSizeSupported(uint32 _size) public pure returns (bool) {
[codex:578029] if (DUMMY_VERIFIER) {
[codex:578029] return true;
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing potential withdrawal and token handling vulnerabilities**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,200p' contracts/contracts/SafeMathUInt128.sol" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029] /**
[codex:578029] * @dev Wrappers over Solidity's arithmetic operations with added overflow
[codex:578029] * checks.
[codex:578029] *
[codex:578029] * Arithmetic operations in Solidity wrap on overflow. This can easily result
[codex:578029] * in bugs, because programmers usually assume that an overflow raises an
[codex:578029] * error, which is the standard behavior in high level programming languages.
[codex:578029] * `SafeMath` restores this intuition by reverting the transaction when an
[codex:578029] * operation overflows.
[codex:578029] *
[codex:578029] * Using this library instead of the unchecked operations eliminates an entire
[codex:578029] * class of bugs, so it's recommended to use it always.
[codex:578029] */
[codex:578029] library SafeMathUInt128 {
[codex:578029] /**
[codex:578029] * @dev Returns the addition of two unsigned integers, reverting on
[codex:578029] * overflow.
[codex:578029] *
[codex:578029]
[codex:578029] thinking
[codex:578029] **Checking ReentrancyGuard for vulnerabilities**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,120p' contracts/contracts/ReentrancyGuard.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029] /**
[codex:578029] * @dev Contract module that helps prevent reentrant calls to a function.
[codex:578029] *
[codex:578029] * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
[codex:578029] * available, which can be applied to functions to make sure there are no nested
[codex:578029] * (reentrant) calls to them.
[codex:578029] *
[codex:578029] * Note that because there is a single `nonReentrant` guard, functions marked as
[codex:578029] * `nonReentrant` may not call one another. This can be worked around by making
[codex:578029] * those functions `private`, and then adding `external` `nonReentrant` entry
[codex:578029] * points to them.
[codex:578029] *
[codex:578029] * TIP: If you would like to learn more about reentrancy and alternative ways
[codex:578029] * to protect against it, check out our blog post
[codex:578029] * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
[codex:578029] *
[codex:578029] * _Since v2.5.0:_ this module is now much more gas efficient, given net gas
[codex:578029] * metering changes introduced in the Istanbul hardfork.
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing reentrancy guard and token operations**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,160p' contracts/contracts/Upgradeable.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029]
[codex:578029] /// @title Interface of the upgradeable contract
[codex:578029] /// @author Matter Labs
[codex:578029] /// @author ZKSwap L2 Labs
[codex:578029] interface Upgradeable {
[codex:578029]
[codex:578029] /// @notice Upgrades target of upgradeable contract
[codex:578029] /// @param newTarget New target
[codex:578029] /// @param newTargetInitializationParameters New target initialization parameters
[codex:578029] function upgradeTarget(address newTarget, bytes calldata newTargetInitializationParameters) external;
[codex:578029]
[codex:578029] }
[codex:578029]
[codex:578029] thinking
[codex:578029] **Checking term meaning**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,200p' contracts/contracts/UpgradeableMaster.sol" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029]
[codex:578029] /// @title Interface of the upgradeable master contract (defines notice period duration and allows finish upgrade during preparation of it)
[codex:578029] /// @author Matter Labs
[codex:578029] /// @author ZKSwap L2 Labs
[codex:578029] interface UpgradeableMaster {
[codex:578029]
[codex:578029] /// @notice Notice period before activation preparation status of upgrade mode
[codex:578029] function getNoticePeriod() external returns (uint);
[codex:578029]
[codex:578029] /// @notice Notifies contract that notice period started
[codex:578029] function upgradeNoticePeriodStarted() external;
[codex:578029]
[codex:578029] /// @notice Notifies contract that upgrade preparation status is activated
[codex:578029] function upgradePreparationStarted() external;
[codex:578029]
[codex:578029] /// @notice Notifies contract that upgrade canceled
[codex:578029] function upgradeCanceled() external;
[codex:578029]
[codex:578029]
[codex:578029] thinking
[codex:578029] **Investigating potential signature verification issue**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,260p' contracts/contracts/Operations.sol" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029]
[codex:578029] import "./Bytes.sol";
[codex:578029]
[codex:578029]
[codex:578029] /// @title ZKSwap operations tools
[codex:578029] library Operations {
[codex:578029]
[codex:578029] // Circuit ops and their pubdata (chunks * bytes)
[codex:578029]
[codex:578029] /// @notice ZKSwap circuit operation type
[codex:578029] enum OpType {
[codex:578029] Noop,
[codex:578029] Deposit,
[codex:578029] TransferToNew,
[codex:578029] PartialExit,
[codex:578029] _CloseAccount, // used for correct op id offset
[codex:578029] Transfer,
[codex:578029] FullExit,
[codex:578029] ChangePubKey,
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing unprotected initialization vulnerability**
[codex:578029]
[codex:578029] I'm investigating how the unprotected setGenesisRootAndAddresses allows an attacker to set critical commit and exit addresses to malicious contracts before initialization, enabling delegatecalls via fallback to manipulate contract storage and drain funds through withdraw functions. This hinges on proxy deployment leaving addresses zero and deposits being possible pre-initialization. I'll check code line numbers next for clarity.
[codex:578029] exec
[codex:578029] /bin/bash -lc "nl -ba contracts/contracts/ZkSync.sol | sed -n '150,220p'" in /tmp/codex-multi-2prxuax3 succeeded in 7ms:
[codex:578029] 150 require(address(governance) == address(0), "init0");
[codex:578029] 151 initializeReentrancyGuard();
[codex:578029] 152
[codex:578029] 153 (
[codex:578029] 154 address _governanceAddress,
[codex:578029] 155 address _verifierAddress,
[codex:578029] 156 address _verifierExitAddress,
[codex:578029] 157 address _pairManagerAddress
[codex:578029] 158 ) = abi.decode(initializationParameters, (address, address, address, address));
[codex:578029] 159
[codex:578029] 160 verifier = Verifier(_verifierAddress);
[codex:578029] 161 verifierExit = VerifierExit(_verifierExitAddress);
[codex:578029] 162 governance = Governance(_governanceAddress);
[codex:578029] 163 pairmanager = UniswapV2Factory(_pairManagerAddress);
[codex:578029] 164
[codex:578029] 165 maxDepositAmount = DEFAULT_MAX_DEPOSIT_AMOUNT;
[codex:578029] 166 withdrawGasLimit = ERC20_WITHDRAWAL_GAS_LIMIT;
[codex:578029] 167 }
[codex:578029] 168
[codex:578029] 169 function setGenesisRootAndAddresses(bytes32 _genesisRoot, address _zkSyncCommitBlockAddress, address _zkSyncExitAddress) external {
[codex:578029]
[codex:578029] thinking
[codex:578029] **Considering fallback line numbers for delegatecall**
[codex:578029] exec
[codex:578029] /bin/bash -lc "nl -ba contracts/contracts/ZkSync.sol | sed -n '500,560p'" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] 500
[codex:578029] 501 emit NewPriorityRequest(
[codex:578029] 502 msg.sender,
[codex:578029] 503 nextPriorityRequestId,
[codex:578029] 504 _opType,
[codex:578029] 505 _pubData,
[codex:578029] 506 _userData,
[codex:578029] 507 expirationBlock
[codex:578029] 508 );
[codex:578029] 509
[codex:578029] 510 totalOpenPriorityRequests++;
[codex:578029] 511 }
[codex:578029] 512
[codex:578029] 513 // The contract is too large. Break some functions to zkSyncCommitBlockAddress
[codex:578029] 514 function() external payable {
[codex:578029] 515 address nextAddress = zkSyncCommitBlockAddress;
[codex:578029] 516 require(nextAddress != address(0), "zkSyncCommitBlockAddress should be set");
[codex:578029] 517 // Execute external function from facet using delegatecall and return any value.
[codex:578029] 518 assembly {
[codex:578029] 519 calldatacopy(0, 0, calldatasize())
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing unprotected initialization vulnerability**
[codex:578029]
[codex:578029] I'll examine how missing access control in setGenesisRootAndAddresses can enable an attacker—especially in proxy deployments—to set malicious contract addresses, then exploit delegatecall in fallback to hijack funds via withdraw functions, while collecting relevant line numbers for evidence.
[codex:578029] exec
[codex:578029] /bin/bash -lc "nl -ba contracts/contracts/ZkSync.sol | sed -n '300,380p'" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] 300 /// @param _amount Ether amount to withdraw
[codex:578029] 301 function withdrawETHWithAddress(uint128 _amount, address payable _to) external nonReentrant {
[codex:578029] 302 require(_to != address(0), "ipa11");
[codex:578029] 303 registerWithdrawal(0, _amount, _to);
[codex:578029] 304 (bool success,) = _to.call.value(_amount)("");
[codex:578029] 305 require(success, "fwe12");
[codex:578029] 306 // ETH withdraw failed
[codex:578029] 307 }
[codex:578029] 308
[codex:578029] 309 /// @notice Config amount limit for each ERC20 deposit
[codex:578029] 310 /// @param _amount Max deposit amount
[codex:578029] 311 function setMaxDepositAmount(uint128 _amount) external {
[codex:578029] 312 governance.requireGovernor(msg.sender);
[codex:578029] 313 maxDepositAmount = _amount;
[codex:578029] 314 }
[codex:578029] 315
[codex:578029] 316 /// @notice Config gas limit for withdraw erc20 token
[codex:578029] 317 /// @param _gasLimit withdraw erc20 gas limit
[codex:578029] 318 function setWithDrawGasLimit(uint256 _gasLimit) external {
[codex:578029] 319 governance.requireGovernor(msg.sender);
[codex:578029]
[codex:578029] thinking
[codex:578029] **Noticing WithdrawETH call without address**
[codex:578029] exec
[codex:578029] /bin/bash -lc "nl -ba contracts/contracts/ZkSync.sol | sed -n '260,320p'" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] 260
[codex:578029] 261 /// @notice Accrues users balances from deposit priority requests in Exodus mode
[codex:578029] 262 /// @dev WARNING: Only for Exodus mode
[codex:578029] 263 /// @dev Canceling may take several separate transactions to be completed
[codex:578029] 264 /// @param _n number of requests to process
[codex:578029] 265 function cancelOutstandingDepositsForExodusMode(uint64 _n) external nonReentrant {
[codex:578029] 266 require(exodusMode, "coe01");
[codex:578029] 267 // exodus mode not active
[codex:578029] 268 uint64 toProcess = Utils.minU64(totalOpenPriorityRequests, _n);
[codex:578029] 269 require(toProcess > 0, "coe02");
[codex:578029] 270 // no deposits to process
[codex:578029] 271 for (uint64 id = firstPriorityRequestId; id < firstPriorityRequestId + toProcess; id++) {
[codex:578029] 272 if (priorityRequests[id].opType == Operations.OpType.Deposit) {
[codex:578029] 273 Operations.Deposit memory op = Operations.readDepositPubdata(priorityRequests[id].pubData);
[codex:578029] 274 bytes22 packedBalanceKey = packAddressAndTokenId(op.owner, op.tokenId);
[codex:578029] 275 balancesToWithdraw[packedBalanceKey].balanceToWithdraw += op.amount;
[codex:578029] 276 }
[codex:578029] 277 delete priorityRequests[id];
[codex:578029] 278 }
[codex:578029] 279 firstPriorityRequestId += toProcess;
[codex:578029]
[codex:578029] thinking
[codex:578029] **Analyzing unprotected delegatecall vulnerability**
[codex:578029]
[codex:578029] I'll work through the details of the unprotected `setGenesisRootAndAddresses` function allowing an attacker in the proxy deployment phase to hijack delegatecall targets, enabling arbitrary code execution, storage manipulation, and a full drain of contract funds, then prepare a JSON-formatted report including exact line references and an attack scenario.
[codex:578029] codex
[codex:578029] {"no_findings":false,"summary":"Critical proxy-hijack path: `setGenesisRootAndAddresses` is publicly callable when the commit/exit addresses are unset, allowing an attacker to set a malicious delegatecall target and drain all assets held by the contract.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected genesis/commit address initialization enables delegatecall takeover and fund drain","exploit_scenario":"1) On a fresh proxy deployment (constructor not run), `zkSyncCommitBlockAddress`/`zkSyncExitAddress` are zero. An attacker deploys a malicious facet with a `drain()` function that calls `IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)))` and/or sends `address(this).balance` to `msg.sender`.\n2) Attacker calls `setGenesisRootAndAddresses(...)` to set `_zkSyncCommitBlockAddress` to the malicious facet (and any `_zkSyncExitAddress`).\n3) Attacker calls the ZkSync proxy with calldata for `drain()`; fallback delegates to the malicious facet, executing in ZkSync context and transferring ETH/ERC20s to the attacker.\nProfit: up to 100% of ETH and ERC20 balances held by the ZkSync contract (all user deposits).","recommendation":"Restrict `setGenesisRootAndAddresses` to governance/owner and/or fold it into the authenticated initializer. Also consider making the fallback delegatecall target immutable after a trusted initialization step and verifying the caller for any admin-only setup.","evidence":"`setGenesisRootAndAddresses` is external with no access control and only checks for zero addresses, allowing anyone to set `zkSyncCommitBlockAddress`/`zkSyncExitAddress`. The fallback then blindly delegatecalls to `zkSyncCommitBlockAddress`, enabling arbitrary code execution in ZkSync storage.","locations":["contracts/contracts/ZkSync.sol:169","contracts/contracts/ZkSync.sol:173","contracts/contracts/ZkSync.sol:175","contracts/contracts/ZkSync.sol:176","contracts/contracts/ZkSync.sol:513","contracts/contracts/ZkSync.sol:515","contracts/contracts/ZkSync.sol:519"]}]}
[codex:578029] tokens used
[codex:578029] 86,839
[codex:578029] {"no_findings":false,"summary":"Critical proxy-hijack path: `setGenesisRootAndAddresses` is publicly callable when the commit/exit addresses are unset, allowing an attacker to set a malicious delegatecall target and drain all assets held by the contract.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected genesis/commit address initialization enables delegatecall takeover and fund drain","exploit_scenario":"1) On a fresh proxy deployment (constructor not run), `zkSyncCommitBlockAddress`/`zkSyncExitAddress` are zero. An attacker deploys a malicious facet with a `drain()` function that calls `IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)))` and/or sends `address(this).balance` to `msg.sender`.\n2) Attacker calls `setGenesisRootAndAddresses(...)` to set `_zkSyncCommitBlockAddress` to the malicious facet (and any `_zkSyncExitAddress`).\n3) Attacker calls the ZkSync proxy with calldata for `drain()`; fallback delegates to the malicious facet, executing in ZkSync context and transferring ETH/ERC20s to the attacker.\nProfit: up to 100% of ETH and ERC20 balances held by the ZkSync contract (all user deposits).","recommendation":"Restrict `setGenesisRootAndAddresses` to governance/owner and/or fold it into the authenticated initializer. Also consider making the fallback delegatecall target immutable after a trusted initialization step and verifying the caller for any admin-only setup.","evidence":"`setGenesisRootAndAddresses` is external with no access control and only checks for zero addresses, allowing anyone to set `zkSyncCommitBlockAddress`/`zkSyncExitAddress`. The fallback then blindly delegatecalls to `zkSyncCommitBlockAddress`, enabling arbitrary code execution in ZkSync storage.","locations":["contracts/contracts/ZkSync.sol:169","contracts/contracts/ZkSync.sol:173","contracts/contracts/ZkSync.sol:175","contracts/contracts/ZkSync.sol:176","contracts/contracts/ZkSync.sol:513","contracts/contracts/ZkSync.sol:515","contracts/contracts/ZkSync.sol:519"]}]}
{
"codex": {
"ran_at": "2026-01-05T19:59:17.339656+00:00",
"returncode": 0
},
"summary": "Critical proxy-hijack path: `setGenesisRootAndAddresses` is publicly callable when the commit/exit addresses are unset, allowing an attacker to set a malicious delegatecall target and drain all assets held by the contract.",
"raw_final": {
"summary": "Critical proxy-hijack path: `setGenesisRootAndAddresses` is publicly callable when the commit/exit addresses are unset, allowing an attacker to set a malicious delegatecall target and drain all assets held by the contract.",
"findings": [
{
"title": "Unprotected genesis/commit address initialization enables delegatecall takeover and fund drain",
"category": "upgradeability",
"evidence": "`setGenesisRootAndAddresses` is external with no access control and only checks for zero addresses, allowing anyone to set `zkSyncCommitBlockAddress`/`zkSyncExitAddress`. The fallback then blindly delegatecalls to `zkSyncCommitBlockAddress`, enabling arbitrary code execution in ZkSync storage.",
"severity": "critical",
"locations": [
"contracts/contracts/ZkSync.sol:169",
"contracts/contracts/ZkSync.sol:173",
"contracts/contracts/ZkSync.sol:175",
"contracts/contracts/ZkSync.sol:176",
"contracts/contracts/ZkSync.sol:513",
"contracts/contracts/ZkSync.sol:515",
"contracts/contracts/ZkSync.sol:519"
],
"recommendation": "Restrict `setGenesisRootAndAddresses` to governance/owner and/or fold it into the authenticated initializer. Also consider making the fallback delegatecall target immutable after a trusted initialization step and verifying the caller for any admin-only setup.",
"exploit_scenario": "1) On a fresh proxy deployment (constructor not run), `zkSyncCommitBlockAddress`/`zkSyncExitAddress` are zero. An attacker deploys a malicious facet with a `drain()` function that calls `IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)))` and/or sends `address(this).balance` to `msg.sender`.\n2) Attacker calls `setGenesisRootAndAddresses(...)` to set `_zkSyncCommitBlockAddress` to the malicious facet (and any `_zkSyncExitAddress`).\n3) Attacker calls the ZkSync proxy with calldata for `drain()`; fallback delegates to the malicious facet, executing in ZkSync context and transferring ETH/ERC20s to the attacker.\nProfit: up to 100% of ETH and ERC20 balances held by the ZkSync contract (all user deposits)."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x02e1 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8ac7d296 00000019: GT 0000001a: PUSH2 0x0190 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xc57b22be 00000024: GT 00000025: PUSH2 0x00dc 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xe7f40cf6 0000002f: GT 00000030: PUSH2 0x0095 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xfa6b53c3 0000003a: GT 0000003b: PUSH2 0x006f 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xfa6b53c3 00000045: EQ 00000046: PUSH2 0x0d09 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfaf4d8cb 00000050: EQ 00000051: PUSH2 0x0d46 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xfc97a303 0000005b: EQ 0000005c: PUSH2 0x0d5b 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xffeec237 00000066: EQ 00000067: PUSH2 0x0d8e 0000006a: JUMPI 0000006b: PUSH2 0x02e1 0000006e: JUMP 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0xe7f40cf6 00000076: EQ 00000077: PUSH2 0x0c75 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xe96aa205 00000081: EQ 00000082: PUSH2 0x0c8a 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xf3a4d4af 0000008c: EQ 0000008d: PUSH2 0x0cbd 00000090: JUMPI 00000091: PUSH2 0x02e1 00000094: JUMP 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0xc57b22be 0000009c: EQ 0000009d: PUSH2 0x0b56 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xc94c5b7c 000000a7: EQ 000000a8: PUSH2 0x0b6b 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xc9c65396 000000b2: EQ 000000b3: PUSH2 0x0bad 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xcc54f026 000000bd: EQ 000000be: PUSH2 0x0be8 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xcd24ee08 000000c8: EQ 000000c9: PUSH2 0x0c14 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0xe17376b5 000000d3: EQ 000000d4: PUSH2 0x0c29 000000d7: JUMPI 000000d8: PUSH2 0x02e1 000000db: JUMP 000000dc: JUMPDEST 000000dd: DUP1 000000de: PUSH4 0xa2f9f1ce 000000e3: GT 000000e4: PUSH2 0x0149 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0xb5d6b8be 000000ee: GT 000000ef: PUSH2 0x0123 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0xb5d6b8be 000000f9: EQ 000000fa: PUSH2 0x0a95 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0xb7c73165 00000104: EQ 00000105: PUSH2 0x0aaa 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0xbc5cd7ba 0000010f: EQ 00000110: PUSH2 0x0ae2 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0xc488a09c 0000011a: EQ 0000011b: PUSH2 0x0b23 0000011e: JUMPI 0000011f: PUSH2 0x02e1 00000122: JUMP 00000123: JUMPDEST 00000124: DUP1 00000125: PUSH4 0xa2f9f1ce 0000012a: EQ 0000012b: PUSH2 0x09fd 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0xa5dcdf71 00000135: EQ 00000136: PUSH2 0x0a53 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0xb269b9ae 00000140: EQ 00000141: PUSH2 0x08b2 00000144: JUMPI 00000145: PUSH2 0x02e1 00000148: JUMP 00000149: JUMPDEST 0000014a: DUP1 0000014b: PUSH4 0x8ac7d296 00000150: EQ 00000151: PUSH2 0x08dc 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0x8ae20dc9 0000015b: EQ 0000015c: PUSH2 0x08f1 0000015f: JUMPI 00000160: DUP1 00000161: PUSH4 0x8d43428a 00000166: EQ 00000167: PUSH2 0x0930 0000016a: JUMPI 0000016b: DUP1 0000016c: PUSH4 0x8ed83271 00000171: EQ 00000172: PUSH2 0x0963 00000175: JUMPI 00000176: DUP1 00000177: PUSH4 0x922e1492 0000017c: EQ 0000017d: PUSH2 0x0994 00000180: JUMPI 00000181: DUP1 00000182: PUSH4 0x9a83400d 00000187: EQ 00000188: PUSH2 0x09a9 0000018b: JUMPI 0000018c: PUSH2 0x02e1 0000018f: JUMP 00000190: JUMPDEST 00000191: DUP1 00000192: PUSH4 0x34f6bb1c 00000197: GT 00000198: PUSH2 0x024f 0000019b: JUMPI 0000019c: DUP1 0000019d: PUSH4 0x67708dae 000001a2: GT 000001a3: PUSH2 0x0208 000001a6: JUMPI 000001a7: DUP1 000001a8: PUSH4 0x78b91e70 000001ad: GT 000001ae: PUSH2 0x01e2 000001b1: JUMPI 000001b2: DUP1 000001b3: PUSH4 0x78b91e70 000001b8: EQ 000001b9: PUSH2 0x07d6 000001bc: JUMPI 000001bd: DUP1 000001be: PUSH4 0x7d490798 000001c3: EQ 000001c4: PUSH2 0x07eb 000001c7: JUMPI 000001c8: DUP1 000001c9: PUSH4 0x871b8ff1 000001ce: EQ 000001cf: PUSH2 0x08b2 000001d2: JUMPI 000001d3: DUP1 000001d4: PUSH4 0x8773334c 000001d9: EQ 000001da: PUSH2 0x08c7 000001dd: JUMPI 000001de: PUSH2 0x02e1 000001e1: JUMP 000001e2: JUMPDEST 000001e3: DUP1 000001e4: PUSH4 0x67708dae 000001e9: EQ 000001ea: PUSH2 0x075e 000001ed: JUMPI 000001ee: DUP1 000001ef: PUSH4 0x6a387fc9 000001f4: EQ 000001f5: PUSH2 0x0773 000001f8: JUMPI 000001f9: DUP1 000001fa: PUSH4 0x77d6e067 000001ff: EQ 00000200: PUSH2 0x07a3 00000203: JUMPI 00000204: PUSH2 0x02e1 00000207: JUMP 00000208: JUMPDEST 00000209: DUP1 0000020a: PUSH4 0x34f6bb1c 0000020f: EQ 00000210: PUSH2 0x05b8 00000213: JUMPI 00000214: DUP1 00000215: PUSH4 0x3b154b73 0000021a: EQ 0000021b: PUSH2 0x05e9 0000021e: JUMPI 0000021f: DUP1 00000220: PUSH4 0x3c06e514 00000225: EQ 00000226: PUSH2 0x05fe 00000229: JUMPI 0000022a: DUP1 0000022b: PUSH4 0x3c6461a9 00000230: EQ 00000231: PUSH2 0x0613 00000234: JUMPI 00000235: DUP1 00000236: PUSH4 0x439fab91 0000023b: EQ 0000023c: PUSH2 0x066c 0000023f: JUMPI 00000240: DUP1 00000241: PUSH4 0x5cd0783e 00000246: EQ 00000247: PUSH2 0x06e7 0000024a: JUMPI 0000024b: PUSH2 0x02e1 0000024e: JUMP 0000024f: JUMPDEST 00000250: DUP1 00000251: PUSH4 0x2a3174f4 00000256: GT 00000257: PUSH2 0x02a1 0000025a: JUMPI 0000025b: DUP1 0000025c: PUSH4 0x2a3174f4 00000261: EQ 00000262: PUSH2 0x04d1 00000265: JUMPI 00000266: DUP1 00000267: PUSH4 0x2b8c062a 0000026c: EQ 0000026d: PUSH2 0x04e6 00000270: JUMPI 00000271: DUP1 00000272: PUSH4 0x2d24006c 00000277: EQ 00000278: PUSH2 0x0520 0000027b: JUMPI 0000027c: DUP1 0000027d: PUSH4 0x2d2da806 00000282: EQ 00000283: PUSH2 0x0535 00000286: JUMPI 00000287: DUP1 00000288: PUSH4 0x2f804bd2 0000028d: EQ 0000028e: PUSH2 0x055b 00000291: JUMPI 00000292: DUP1 00000293: PUSH4 0x34c961fc 00000298: EQ 00000299: PUSH2 0x058e 0000029c: JUMPI 0000029d: PUSH2 0x02e1 000002a0: JUMP 000002a1: JUMPDEST 000002a2: DUP1 000002a3: PUSH1 0xe2 000002a5: EQ 000002a6: PUSH2 0x034d 000002a9: JUMPI 000002aa: DUP1 000002ab: PUSH4 0x10603dad 000002b0: EQ 000002b1: PUSH2 0x038e 000002b4: JUMPI 000002b5: DUP1 000002b6: PUSH4 0x1523ab05 000002bb: EQ 000002bc: PUSH2 0x03d8 000002bf: JUMPI 000002c0: DUP1 000002c1: PUSH4 0x21ae6054 000002c6: EQ 000002c7: PUSH2 0x0406 000002ca: JUMPI 000002cb: DUP1 000002cc: PUSH4 0x25394645 000002d1: EQ 000002d2: PUSH2 0x042d 000002d5: JUMPI 000002d6: DUP1 000002d7: PUSH4 0x264c0912 000002dc: EQ 000002dd: PUSH2 0x04a8 000002e0: JUMPI 000002e1: JUMPDEST 000002e2: PUSH1 0x13 000002e4: SLOAD 000002e5: PUSH1 0x01 000002e7: PUSH1 0x01 000002e9: PUSH1 0xa0 000002eb: SHL 000002ec: SUB 000002ed: AND 000002ee: DUP1 000002ef: PUSH2 0x0329 000002f2: JUMPI 000002f3: PUSH1 0x40 000002f5: MLOAD 000002f6: PUSH3 0x461bcd 000002fa: PUSH1 0xe5 000002fc: SHL 000002fd: DUP2 000002fe: MSTORE 000002ff: PUSH1 0x04 00000301: ADD 00000302: DUP1 00000303: DUP1 00000304: PUSH1 0x20 00000306: ADD 00000307: DUP3 00000308: DUP2 00000309: SUB 0000030a: DUP3 0000030b: MSTORE 0000030c: PUSH1 0x26 0000030e: DUP2 0000030f: MSTORE 00000310: PUSH1 0x20 00000312: ADD 00000313: DUP1 00000314: PUSH2 0x414c 00000317: PUSH1 0x26 00000319: SWAP2 0000031a: CODECOPY 0000031b: PUSH1 0x40 0000031d: ADD 0000031e: SWAP2 0000031f: POP 00000320: POP 00000321: PUSH1 0x40 00000323: MLOAD 00000324: DUP1 00000325: SWAP2 00000326: SUB 00000327: SWAP1 00000328: REVERT 00000329: JUMPDEST 0000032a: CALLDATASIZE 0000032b: PUSH1 0x00 0000032d: DUP1 0000032e: CALLDATACOPY 0000032f: PUSH1 0x00 00000331: DUP1 00000332: CALLDATASIZE 00000333: PUSH1 0x00 00000335: DUP5 00000336: GAS 00000337: DELEGATECALL 00000338: RETURNDATASIZE 00000339: PUSH1 0x00 0000033b: DUP1 0000033c: RETURNDATACOPY 0000033d: DUP1 0000033e: DUP1 0000033f: ISZERO 00000340: PUSH2 0x0348 00000343: JUMPI 00000344: RETURNDATASIZE 00000345: PUSH1 0x00 00000347: RETURN 00000348: JUMPDEST 00000349: RETURNDATASIZE 0000034a: PUSH1 0x00 0000034c: REVERT 0000034d: JUMPDEST 0000034e: CALLVALUE 0000034f: DUP1 00000350: ISZERO 00000351: PUSH2 0x0359 00000354: JUMPI 00000355: PUSH1 0x00 00000357: DUP1 00000358: REVERT 00000359: JUMPDEST 0000035a: POP 0000035b: PUSH2 0x038c 0000035e: PUSH1 0x04 00000360: DUP1 00000361: CALLDATASIZE 00000362: SUB 00000363: PUSH1 0x40 00000365: DUP2 00000366: LT 00000367: ISZERO 00000368: PUSH2 0x0370 0000036b: JUMPI 0000036c: PUSH1 0x00 0000036e: DUP1 0000036f: REVERT 00000370: JUMPDEST 00000371: POP 00000372: DUP1 00000373: CALLDATALOAD 00000374: PUSH4 0xffffffff 00000379: AND 0000037a: SWAP1 0000037b: PUSH1 0x20 0000037d: ADD 0000037e: CALLDATALOAD 0000037f: PUSH1 0x01 00000381: PUSH1 0x01 00000383: PUSH1 0xa0 00000385: SHL 00000386: SUB 00000387: AND 00000388: PUSH2 0x0da3 0000038b: JUMP 0000038c: JUMPDEST 0000038d: STOP 0000038e: JUMPDEST 0000038f: CALLVALUE 00000390: DUP1 00000391: ISZERO 00000392: PUSH2 0x039a 00000395: JUMPI 00000396: PUSH1 0x00 00000398: DUP1 00000399: REVERT 0000039a: JUMPDEST 0000039b: POP 0000039c: PUSH2 0x03bc 0000039f: PUSH1 0x04 000003a1: DUP1 000003a2: CALLDATASIZE 000003a3: SUB 000003a4: PUSH1 0x20 000003a6: DUP2 000003a7: LT 000003a8: ISZERO 000003a9: PUSH2 0x03b1 000003ac: JUMPI 000003ad: PUSH1 0x00 000003af: DUP1 000003b0: REVERT 000003b1: JUMPDEST 000003b2: POP 000003b3: CALLDATALOAD 000003b4: PUSH2 0xffff 000003b7: AND 000003b8: PUSH2 0x0fea 000003bb: JUMP 000003bc: JUMPDEST 000003bd: PUSH1 0x40 000003bf: DUP1 000003c0: MLOAD 000003c1: PUSH1 0x01 000003c3: PUSH1 0x01 000003c5: PUSH1 0xa0 000003c7: SHL 000003c8: SUB 000003c9: SWAP1 000003ca: SWAP3 000003cb: AND 000003cc: DUP3 000003cd: MSTORE 000003ce: MLOAD 000003cf: SWAP1 000003d0: DUP2 000003d1: SWAP1 000003d2: SUB 000003d3: PUSH1 0x20 000003d5: ADD 000003d6: SWAP1 000003d7: RETURN 000003d8: JUMPDEST 000003d9: CALLVALUE 000003da: DUP1 000003db: ISZERO 000003dc: PUSH2 0x03e4 000003df: JUMPI 000003e0: PUSH1 0x00 000003e2: DUP1 000003e3: REVERT 000003e4: JUMPDEST 000003e5: POP 000003e6: PUSH2 0x03ed 000003e9: PUSH2 0x1005 000003ec: JUMP 000003ed: JUMPDEST 000003ee: PUSH1 0x40 000003f0: DUP1 000003f1: MLOAD 000003f2: PUSH4 0xffffffff 000003f7: SWAP1 000003f8: SWAP3 000003f9: AND 000003fa: DUP3 000003fb: MSTORE 000003fc: MLOAD 000003fd: SWAP1 000003fe: DUP2 000003ff: SWAP1 00000400: SUB 00000401: PUSH1 0x20 00000403: ADD 00000404: SWAP1 00000405: RETURN 00000406: JUMPDEST 00000407: CALLVALUE 00000408: DUP1 00000409: ISZERO 0000040a: PUSH2 0x0412 0000040d: JUMPI 0000040e: PUSH1 0x00 00000410: DUP1 00000411: REVERT 00000412: JUMPDEST 00000413: POP 00000414: PUSH2 0x041b 00000417: PUSH2 0x1018 0000041a: JUMP 0000041b: JUMPDEST 0000041c: PUSH1 0x40 0000041e: DUP1 0000041f: MLOAD 00000420: SWAP2 00000421: DUP3 00000422: MSTORE 00000423: MLOAD 00000424: SWAP1 00000425: DUP2 00000426: SWAP1 00000427: SUB 00000428: PUSH1 0x20 0000042a: ADD 0000042b: SWAP1 0000042c: RETURN 0000042d: JUMPDEST 0000042e: CALLVALUE 0000042f: DUP1 00000430: ISZERO 00000431: PUSH2 0x0439 00000434: JUMPI 00000435: PUSH1 0x00 00000437: DUP1 00000438: REVERT 00000439: JUMPDEST 0000043a: POP 0000043b: PUSH2 0x038c 0000043e: PUSH1 0x04 00000440: DUP1 00000441: CALLDATASIZE 00000442: SUB 00000443: PUSH1 0x20 00000445: DUP2 00000446: LT 00000447: ISZERO 00000448: PUSH2 0x0450 0000044b: JUMPI 0000044c: PUSH1 0x00 0000044e: DUP1 0000044f: REVERT 00000450: JUMPDEST 00000451: DUP2 00000452: ADD 00000453: SWAP1 00000454: PUSH1 0x20 00000456: DUP2 00000457: ADD 00000458: DUP2 00000459: CALLDATALOAD 0000045a: PUSH1 0x01 0000045c: PUSH1 0x20 0000045e: SHL 0000045f: DUP2 00000460: GT 00000461: ISZERO 00000462: PUSH2 0x046a 00000465: JUMPI 00000466: PUSH1 0x00 00000468: DUP1 00000469: REVERT 0000046a: JUMPDEST 0000046b: DUP3 0000046c: ADD 0000046d: DUP4 0000046e: PUSH1 0x20 00000470: DUP3 00000471: ADD 00000472: GT 00000473: ISZERO 00000474: PUSH2 0x047c 00000477: JUMPI 00000478: PUSH1 0x00 0000047a: DUP1 0000047b: REVERT 0000047c: JUMPDEST 0000047d: DUP1 0000047e: CALLDATALOAD 0000047f: SWAP1 00000480: PUSH1 0x20 00000482: ADD 00000483: SWAP2 00000484: DUP5 00000485: PUSH1 0x01 00000487: DUP4 00000488: MUL 00000489: DUP5 0000048a: ADD 0000048b: GT 0000048c: PUSH1 0x01 0000048e: PUSH1 0x20 00000490: SHL 00000491: DUP4 00000492: GT 00000493: OR 00000494: ISZERO 00000495: PUSH2 0x049d 00000498: JUMPI 00000499: PUSH1 0x00 0000049b: DUP1 0000049c: REVERT 0000049d: JUMPDEST 0000049e: POP 0000049f: SWAP1 000004a0: SWAP3 000004a1: POP 000004a2: SWAP1 000004a3: POP 000004a4: PUSH2 0x103c 000004a7: JUMP 000004a8: JUMPDEST 000004a9: CALLVALUE 000004aa: DUP1 000004ab: ISZERO 000004ac: PUSH2 0x04b4 000004af: JUMPI 000004b0: PUSH1 0x00 000004b2: DUP1 000004b3: REVERT 000004b4: JUMPDEST 000004b5: POP 000004b6: PUSH2 0x04bd 000004b9: PUSH2 0x1040 000004bc: JUMP 000004bd: JUMPDEST 000004be: PUSH1 0x40 000004c0: DUP1 000004c1: MLOAD 000004c2: SWAP2 000004c3: ISZERO 000004c4: ISZERO 000004c5: DUP3 000004c6: MSTORE 000004c7: MLOAD 000004c8: SWAP1 000004c9: DUP2 000004ca: SWAP1 000004cb: SUB 000004cc: PUSH1 0x20 000004ce: ADD 000004cf: SWAP1 000004d0: RETURN 000004d1: JUMPDEST 000004d2: CALLVALUE 000004d3: DUP1 000004d4: ISZERO 000004d5: PUSH2 0x04dd 000004d8: JUMPI 000004d9: PUSH1 0x00 000004db: DUP1 000004dc: REVERT 000004dd: JUMPDEST 000004de: POP 000004df: PUSH2 0x041b 000004e2: PUSH2 0x1049 000004e5: JUMP 000004e6: JUMPDEST 000004e7: CALLVALUE 000004e8: DUP1 000004e9: ISZERO 000004ea: PUSH2 0x04f2 000004ed: JUMPI 000004ee: PUSH1 0x00 000004f0: DUP1 000004f1: REVERT 000004f2: JUMPDEST 000004f3: POP 000004f4: PUSH2 0x04bd 000004f7: PUSH1 0x04 000004f9: DUP1 000004fa: CALLDATASIZE 000004fb: SUB 000004fc: PUSH1 0x40 000004fe: DUP2 000004ff: LT 00000500: ISZERO 00000501: PUSH2 0x0509 00000504: JUMPI 00000505: PUSH1 0x00 00000507: DUP1 00000508: REVERT 00000509: JUMPDEST 0000050a: POP 0000050b: DUP1 0000050c: CALLDATALOAD 0000050d: PUSH4 0xffffffff 00000512: AND 00000513: SWAP1 00000514: PUSH1 0x20 00000516: ADD 00000517: CALLDATALOAD 00000518: PUSH2 0xffff 0000051b: AND 0000051c: PUSH2 0x1051 0000051f: JUMP 00000520: JUMPDEST 00000521: CALLVALUE 00000522: DUP1 00000523: ISZERO 00000524: PUSH2 0x052c 00000527: JUMPI 00000528: PUSH1 0x00 0000052a: DUP1 0000052b: REVERT 0000052c: JUMPDEST 0000052d: POP 0000052e: PUSH2 0x03ed 00000531: PUSH2 0x1071 00000534: JUMP 00000535: JUMPDEST 00000536: PUSH2 0x038c 00000539: PUSH1 0x04 0000053b: DUP1 0000053c: CALLDATASIZE 0000053d: SUB 0000053e: PUSH1 0x20 00000540: DUP2 00000541: LT 00000542: ISZERO 00000543: PUSH2 0x054b 00000546: JUMPI 00000547: PUSH1 0x00 00000549: DUP1 0000054a: REVERT 0000054b: JUMPDEST 0000054c: POP 0000054d: CALLDATALOAD 0000054e: PUSH1 0x01 00000550: PUSH1 0x01 00000552: PUSH1 0xa0 00000554: SHL 00000555: SUB 00000556: AND 00000557: PUSH2 0x1084 0000055a: JUMP 0000055b: JUMPDEST 0000055c: CALLVALUE 0000055d: DUP1 0000055e: ISZERO 0000055f: PUSH2 0x0567 00000562: JUMPI 00000563: PUSH1 0x00 00000565: DUP1 00000566: REVERT 00000567: JUMPDEST 00000568: POP 00000569: PUSH2 0x038c 0000056c: PUSH1 0x04 0000056e: DUP1 0000056f: CALLDATASIZE 00000570: SUB 00000571: PUSH1 0x20 00000573: DUP2 00000574: LT 00000575: ISZERO 00000576: PUSH2 0x057e 00000579: JUMPI 0000057a: PUSH1 0x00 0000057c: DUP1 0000057d: REVERT 0000057e: JUMPDEST 0000057f: POP 00000580: CALLDATALOAD 00000581: PUSH1 0x01 00000583: PUSH1 0x01 00000585: PUSH1 0x40 00000587: SHL 00000588: SUB 00000589: AND 0000058a: PUSH2 0x1118 0000058d: JUMP 0000058e: JUMPDEST 0000058f: CALLVALUE 00000590: DUP1 00000591: ISZERO 00000592: PUSH2 0x059a 00000595: JUMPI 00000596: PUSH1 0x00 00000598: DUP1 00000599: REVERT 0000059a: JUMPDEST 0000059b: POP 0000059c: PUSH2 0x038c 0000059f: PUSH1 0x04 000005a1: DUP1 000005a2: CALLDATASIZE 000005a3: SUB 000005a4: PUSH1 0x20 000005a6: DUP2 000005a7: LT 000005a8: ISZERO 000005a9: PUSH2 0x05b1 000005ac: JUMPI 000005ad: PUSH1 0x00 000005af: DUP1 000005b0: REVERT 000005b1: JUMPDEST 000005b2: POP 000005b3: CALLDATALOAD 000005b4: PUSH2 0x1445 000005b7: JUMP 000005b8: JUMPDEST 000005b9: CALLVALUE 000005ba: DUP1 000005bb: ISZERO 000005bc: PUSH2 0x05c4 000005bf: JUMPI 000005c0: PUSH1 0x00 000005c2: DUP1 000005c3: REVERT 000005c4: JUMPDEST 000005c5: POP 000005c6: PUSH2 0x05cd 000005c9: PUSH2 0x14b0 000005cc: JUMP 000005cd: JUMPDEST 000005ce: PUSH1 0x40 000005d0: DUP1 000005d1: MLOAD 000005d2: PUSH1 0x01 000005d4: PUSH1 0x01 000005d6: PUSH1 0x40 000005d8: SHL 000005d9: SUB 000005da: SWAP1 000005db: SWAP3 000005dc: AND 000005dd: DUP3 000005de: MSTORE 000005df: MLOAD 000005e0: SWAP1 000005e1: DUP2 000005e2: SWAP1 000005e3: SUB 000005e4: PUSH1 0x20 000005e6: ADD 000005e7: SWAP1 000005e8: RETURN 000005e9: JUMPDEST 000005ea: CALLVALUE 000005eb: DUP1 000005ec: ISZERO 000005ed: PUSH2 0x05f5 000005f0: JUMPI 000005f1: PUSH1 0x00 000005f3: DUP1 000005f4: REVERT 000005f5: JUMPDEST 000005f6: POP 000005f7: PUSH2 0x038c 000005fa: PUSH2 0x14c6 000005fd: JUMP 000005fe: JUMPDEST 000005ff: CALLVALUE 00000600: DUP1 00000601: ISZERO 00000602: PUSH2 0x060a 00000605: JUMPI 00000606: PUSH1 0x00 00000608: DUP1 00000609: REVERT 0000060a: JUMPDEST 0000060b: POP 0000060c: PUSH2 0x03ed 0000060f: PUSH2 0x14c8 00000612: JUMP 00000613: JUMPDEST 00000614: CALLVALUE 00000615: DUP1 00000616: ISZERO 00000617: PUSH2 0x061f 0000061a: JUMPI 0000061b: PUSH1 0x00 0000061d: DUP1 0000061e: REVERT 0000061f: JUMPDEST 00000620: POP 00000621: PUSH2 0x0647 00000624: PUSH1 0x04 00000626: DUP1 00000627: CALLDATASIZE 00000628: SUB 00000629: PUSH1 0x20 0000062b: DUP2 0000062c: LT 0000062d: ISZERO 0000062e: PUSH2 0x0636 00000631: JUMPI 00000632: PUSH1 0x00 00000634: DUP1 00000635: REVERT 00000636: JUMPDEST 00000637: POP 00000638: CALLDATALOAD 00000639: PUSH1 0x01 0000063b: PUSH1 0x01 0000063d: PUSH1 0x50 0000063f: SHL 00000640: SUB 00000641: NOT 00000642: AND 00000643: PUSH2 0x14db 00000646: JUMP 00000647: JUMPDEST 00000648: PUSH1 0x40 0000064a: DUP1 0000064b: MLOAD 0000064c: PUSH1 0x01 0000064e: PUSH1 0x01 00000650: PUSH1 0x80 00000652: SHL 00000653: SUB 00000654: SWAP1 00000655: SWAP4 00000656: AND 00000657: DUP4 00000658: MSTORE 00000659: PUSH1 0xff 0000065b: SWAP1 0000065c: SWAP2 0000065d: AND 0000065e: PUSH1 0x20 00000660: DUP4 00000661: ADD 00000662: MSTORE 00000663: DUP1 00000664: MLOAD 00000665: SWAP2 00000666: DUP3 00000667: SWAP1 00000668: SUB 00000669: ADD 0000066a: SWAP1 0000066b: RETURN 0000066c: JUMPDEST 0000066d: CALLVALUE 0000066e: DUP1 0000066f: ISZERO 00000670: PUSH2 0x0678 00000673: JUMPI 00000674: PUSH1 0x00 00000676: DUP1 00000677: REVERT 00000678: JUMPDEST 00000679: POP 0000067a: PUSH2 0x038c 0000067d: PUSH1 0x04 0000067f: DUP1 00000680: CALLDATASIZE 00000681: SUB 00000682: PUSH1 0x20 00000684: DUP2 00000685: LT 00000686: ISZERO 00000687: PUSH2 0x068f 0000068a: JUMPI 0000068b: PUSH1 0x00 0000068d: DUP1 0000068e: REVERT 0000068f: JUMPDEST 00000690: DUP2 00000691: ADD 00000692: SWAP1 00000693: PUSH1 0x20 00000695: DUP2 00000696: ADD 00000697: DUP2 00000698: CALLDATALOAD 00000699: PUSH1 0x01 0000069b: PUSH1 0x20 0000069d: SHL 0000069e: DUP2 0000069f: GT 000006a0: ISZERO 000006a1: PUSH2 0x06a9 000006a4: JUMPI 000006a5: PUSH1 0x00 000006a7: DUP1 000006a8: REVERT 000006a9: JUMPDEST 000006aa: DUP3 000006ab: ADD 000006ac: DUP4 000006ad: PUSH1 0x20 000006af: DUP3 000006b0: ADD 000006b1: GT 000006b2: ISZERO 000006b3: PUSH2 0x06bb 000006b6: JUMPI 000006b7: PUSH1 0x00 000006b9: DUP1 000006ba: REVERT 000006bb: JUMPDEST 000006bc: DUP1 000006bd: CALLDATALOAD 000006be: SWAP1 000006bf: PUSH1 0x20 000006c1: ADD 000006c2: SWAP2 000006c3: DUP5 000006c4: PUSH1 0x01 000006c6: DUP4 000006c7: MUL 000006c8: DUP5 000006c9: ADD 000006ca: GT 000006cb: PUSH1 0x01 000006cd: PUSH1 0x20 000006cf: SHL 000006d0: DUP4 000006d1: GT 000006d2: OR 000006d3: ISZERO 000006d4: PUSH2 0x06dc 000006d7: JUMPI 000006d8: PUSH1 0x00 000006da: DUP1 000006db: REVERT 000006dc: JUMPDEST 000006dd: POP 000006de: SWAP1 000006df: SWAP3 000006e0: POP 000006e1: SWAP1 000006e2: POP 000006e3: PUSH2 0x1502 000006e6: JUMP 000006e7: JUMPDEST 000006e8: CALLVALUE 000006e9: DUP1 000006ea: ISZERO 000006eb: PUSH2 0x06f3 000006ee: JUMPI 000006ef: PUSH1 0x00 000006f1: DUP1 000006f2: REVERT 000006f3: JUMPDEST 000006f4: POP 000006f5: PUSH2 0x0717 000006f8: PUSH1 0x04 000006fa: DUP1 000006fb: CALLDATASIZE 000006fc: SUB 000006fd: PUSH1 0x20 000006ff: DUP2 00000700: LT 00000701: ISZERO 00000702: PUSH2 0x070a 00000705: JUMPI 00000706: PUSH1 0x00 00000708: DUP1 00000709: REVERT 0000070a: JUMPDEST 0000070b: POP 0000070c: CALLDATALOAD 0000070d: PUSH4 0xffffffff 00000712: AND 00000713: PUSH2 0x15e5 00000716: JUMP 00000717: JUMPDEST 00000718: PUSH1 0x40 0000071a: DUP1 0000071b: MLOAD 0000071c: PUSH4 0xffffffff 00000721: SWAP8 00000722: DUP9 00000723: AND 00000724: DUP2 00000725: MSTORE 00000726: PUSH1 0x01 00000728: PUSH1 0x01 0000072a: PUSH1 0x40 0000072c: SHL 0000072d: SUB 0000072e: SWAP1 0000072f: SWAP7 00000730: AND 00000731: PUSH1 0x20 00000733: DUP8 00000734: ADD 00000735: MSTORE 00000736: SWAP4 00000737: SWAP1 00000738: SWAP6 00000739: AND 0000073a: DUP5 0000073b: DUP5 0000073c: ADD 0000073d: MSTORE 0000073e: PUSH1 0x60 00000740: DUP5 00000741: ADD 00000742: SWAP2 00000743: SWAP1 00000744: SWAP2 00000745: MSTORE 00000746: PUSH1 0x80 00000748: DUP4 00000749: ADD 0000074a: MSTORE 0000074b: PUSH1 0xa0 0000074d: DUP3 0000074e: ADD 0000074f: SWAP3 00000750: SWAP1 00000751: SWAP3 00000752: MSTORE 00000753: SWAP1 00000754: MLOAD 00000755: SWAP1 00000756: DUP2 00000757: SWAP1 00000758: SUB 00000759: PUSH1 0xc0 0000075b: ADD 0000075c: SWAP1 0000075d: RETURN 0000075e: JUMPDEST 0000075f: CALLVALUE 00000760: DUP1 00000761: ISZERO 00000762: PUSH2 0x076a 00000765: JUMPI 00000766: PUSH1 0x00 00000768: DUP1 00000769: REVERT 0000076a: JUMPDEST 0000076b: POP 0000076c: PUSH2 0x05cd 0000076f: PUSH2 0x162e 00000772: JUMP 00000773: JUMPDEST 00000774: CALLVALUE 00000775: DUP1 00000776: ISZERO 00000777: PUSH2 0x077f 0000077a: JUMPI 0000077b: PUSH1 0x00 0000077d: DUP1 0000077e: REVERT 0000077f: JUMPDEST 00000780: POP 00000781: PUSH2 0x038c 00000784: PUSH1 0x04 00000786: DUP1 00000787: CALLDATASIZE 00000788: SUB 00000789: PUSH1 0x20 0000078b: DUP2 0000078c: LT 0000078d: ISZERO 0000078e: PUSH2 0x0796 00000791: JUMPI 00000792: PUSH1 0x00 00000794: DUP1 00000795: REVERT 00000796: JUMPDEST 00000797: POP 00000798: CALLDATALOAD 00000799: PUSH4 0xffffffff 0000079e: AND 0000079f: PUSH2 0x163d 000007a2: JUMP 000007a3: JUMPDEST 000007a4: CALLVALUE 000007a5: DUP1 000007a6: ISZERO 000007a7: PUSH2 0x07af 000007aa: JUMPI 000007ab: PUSH1 0x00 000007ad: DUP1 000007ae: REVERT 000007af: JUMPDEST 000007b0: POP 000007b1: PUSH2 0x038c 000007b4: PUSH1 0x04 000007b6: DUP1 000007b7: CALLDATASIZE 000007b8: SUB 000007b9: PUSH1 0x20 000007bb: DUP2 000007bc: LT 000007bd: ISZERO 000007be: PUSH2 0x07c6 000007c1: JUMPI 000007c2: PUSH1 0x00 000007c4: DUP1 000007c5: REVERT 000007c6: JUMPDEST 000007c7: POP 000007c8: CALLDATALOAD 000007c9: PUSH1 0x01 000007cb: PUSH1 0x01 000007cd: PUSH1 0x80 000007cf: SHL 000007d0: SUB 000007d1: AND 000007d2: PUSH2 0x1a93 000007d5: JUMP 000007d6: JUMPDEST 000007d7: CALLVALUE 000007d8: DUP1 000007d9: ISZERO 000007da: PUSH2 0x07e2 000007dd: JUMPI 000007de: PUSH1 0x00 000007e0: DUP1 000007e1: REVERT 000007e2: JUMPDEST 000007e3: POP 000007e4: PUSH2 0x038c 000007e7: PUSH2 0x1b19 000007ea: JUMP 000007eb: JUMPDEST 000007ec: CALLVALUE 000007ed: DUP1 000007ee: ISZERO 000007ef: PUSH2 0x07f7 000007f2: JUMPI 000007f3: PUSH1 0x00 000007f5: DUP1 000007f6: REVERT 000007f7: JUMPDEST 000007f8: POP 000007f9: PUSH2 0x081e 000007fc: PUSH1 0x04 000007fe: DUP1 000007ff: CALLDATASIZE 00000800: SUB 00000801: PUSH1 0x20 00000803: DUP2 00000804: LT 00000805: ISZERO 00000806: PUSH2 0x080e 00000809: JUMPI 0000080a: PUSH1 0x00 0000080c: DUP1 0000080d: REVERT 0000080e: JUMPDEST 0000080f: POP 00000810: CALLDATALOAD 00000811: PUSH1 0x01 00000813: PUSH1 0x01 00000815: PUSH1 0x40 00000817: SHL 00000818: SUB 00000819: AND 0000081a: PUSH2 0x1b2c 0000081d: JUMP 0000081e: JUMPDEST 0000081f: PUSH1 0x40 00000821: MLOAD 00000822: DUP1 00000823: DUP5 00000824: PUSH1 0x0b 00000826: DUP2 00000827: GT 00000828: ISZERO 00000829: PUSH2 0x082e 0000082c: JUMPI 0000082d: INVALID 0000082e: JUMPDEST 0000082f: PUSH1 0xff 00000831: AND 00000832: DUP2 00000833: MSTORE 00000834: PUSH1 0x20 00000836: ADD 00000837: DUP1 00000838: PUSH1 0x20 0000083a: ADD 0000083b: DUP4 0000083c: DUP2 0000083d: MSTORE 0000083e: PUSH1 0x20 00000840: ADD 00000841: DUP3 00000842: DUP2 00000843: SUB 00000844: DUP3 00000845: MSTORE 00000846: DUP5 00000847: DUP2 00000848: DUP2 00000849: MLOAD 0000084a: DUP2 0000084b: MSTORE 0000084c: PUSH1 0x20 0000084e: ADD 0000084f: SWAP2 00000850: POP 00000851: DUP1 00000852: MLOAD 00000853: SWAP1 00000854: PUSH1 0x20 00000856: ADD 00000857: SWAP1 00000858: DUP1 00000859: DUP4 0000085a: DUP4 0000085b: PUSH1 0x00 0000085d: JUMPDEST 0000085e: DUP4 0000085f: DUP2 00000860: LT 00000861: ISZERO 00000862: PUSH2 0x0875 00000865: JUMPI 00000866: DUP2 00000867: DUP2 00000868: ADD 00000869: MLOAD 0000086a: DUP4 0000086b: DUP3 0000086c: ADD 0000086d: MSTORE 0000086e: PUSH1 0x20 00000870: ADD 00000871: PUSH2 0x085d 00000874: JUMP 00000875: JUMPDEST 00000876: POP 00000877: POP 00000878: POP 00000879: POP 0000087a: SWAP1 0000087b: POP 0000087c: SWAP1 0000087d: DUP2 0000087e: ADD 0000087f: SWAP1 00000880: PUSH1 0x1f 00000882: AND 00000883: DUP1 00000884: ISZERO 00000885: PUSH2 0x08a2 00000888: JUMPI 00000889: DUP1 0000088a: DUP3 0000088b: SUB 0000088c: DUP1 0000088d: MLOAD 0000088e: PUSH1 0x01 00000890: DUP4 00000891: PUSH1 0x20 00000893: SUB 00000894: PUSH2 0x0100 00000897: EXP 00000898: SUB 00000899: NOT 0000089a: AND 0000089b: DUP2 0000089c: MSTORE 0000089d: PUSH1 0x20 0000089f: ADD 000008a0: SWAP2 000008a1: POP 000008a2: JUMPDEST 000008a3: POP 000008a4: SWAP5 000008a5: POP 000008a6: POP 000008a7: POP 000008a8: POP 000008a9: POP 000008aa: PUSH1 0x40 000008ac: MLOAD 000008ad: DUP1 000008ae: SWAP2 000008af: SUB 000008b0: SWAP1 000008b1: RETURN 000008b2: JUMPDEST 000008b3: CALLVALUE 000008b4: DUP1 000008b5: ISZERO 000008b6: PUSH2 0x08be 000008b9: JUMPI 000008ba: PUSH1 0x00 000008bc: DUP1 000008bd: REVERT 000008be: JUMPDEST 000008bf: POP 000008c0: PUSH2 0x038c 000008c3: PUSH2 0x1be0 000008c6: JUMP 000008c7: JUMPDEST 000008c8: CALLVALUE 000008c9: DUP1 000008ca: ISZERO 000008cb: PUSH2 0x08d3 000008ce: JUMPI 000008cf: PUSH1 0x00 000008d1: DUP1 000008d2: REVERT 000008d3: JUMPDEST 000008d4: POP 000008d5: PUSH2 0x04bd 000008d8: PUSH2 0x1bf1 000008db: JUMP 000008dc: JUMPDEST 000008dd: CALLVALUE 000008de: DUP1 000008df: ISZERO 000008e0: PUSH2 0x08e8 000008e3: JUMPI 000008e4: PUSH1 0x00 000008e6: DUP1 000008e7: REVERT 000008e8: JUMPDEST 000008e9: POP 000008ea: PUSH2 0x041b 000008ed: PUSH2 0x1bfb 000008f0: JUMP 000008f1: JUMPDEST 000008f2: CALLVALUE 000008f3: DUP1 000008f4: ISZERO 000008f5: PUSH2 0x08fd 000008f8: JUMPI 000008f9: PUSH1 0x00 000008fb: DUP1 000008fc: REVERT 000008fd: JUMPDEST 000008fe: POP 000008ff: PUSH2 0x041b 00000902: PUSH1 0x04 00000904: DUP1 00000905: CALLDATASIZE 00000906: SUB 00000907: PUSH1 0x40 00000909: DUP2 0000090a: LT 0000090b: ISZERO 0000090c: PUSH2 0x0914 0000090f: JUMPI 00000910: PUSH1 0x00 00000912: DUP1 00000913: REVERT 00000914: JUMPDEST 00000915: POP 00000916: DUP1 00000917: CALLDATALOAD 00000918: PUSH1 0x01 0000091a: PUSH1 0x01 0000091c: PUSH1 0xa0 0000091e: SHL 0000091f: SUB 00000920: AND 00000921: SWAP1 00000922: PUSH1 0x20 00000924: ADD 00000925: CALLDATALOAD 00000926: PUSH4 0xffffffff 0000092b: AND 0000092c: PUSH2 0x1c01 0000092f: JUMP 00000930: JUMPDEST 00000931: CALLVALUE 00000932: DUP1 00000933: ISZERO 00000934: PUSH2 0x093c 00000937: JUMPI 00000938: PUSH1 0x00 0000093a: DUP1 0000093b: REVERT 0000093c: JUMPDEST 0000093d: POP 0000093e: PUSH2 0x038c 00000941: PUSH1 0x04 00000943: DUP1 00000944: CALLDATASIZE 00000945: SUB 00000946: PUSH1 0x20 00000948: DUP2 00000949: LT 0000094a: ISZERO 0000094b: PUSH2 0x0953 0000094e: JUMPI 0000094f: PUSH1 0x00 00000951: DUP1 00000952: REVERT 00000953: JUMPDEST 00000954: POP 00000955: CALLDATALOAD 00000956: PUSH1 0x01 00000958: PUSH1 0x01 0000095a: PUSH1 0xa0 0000095c: SHL 0000095d: SUB 0000095e: AND 0000095f: PUSH2 0x1c1e 00000962: JUMP 00000963: JUMPDEST 00000964: CALLVALUE 00000965: DUP1 00000966: ISZERO 00000967: PUSH2 0x096f 0000096a: JUMPI 0000096b: PUSH1 0x00 0000096d: DUP1 0000096e: REVERT 0000096f: JUMPDEST 00000970: POP 00000971: PUSH2 0x0978 00000974: PUSH2 0x1e01 00000977: JUMP 00000978: JUMPDEST 00000979: PUSH1 0x40 0000097b: DUP1 0000097c: MLOAD 0000097d: PUSH1 0x01 0000097f: PUSH1 0x01 00000981: PUSH1 0x80 00000983: SHL 00000984: SUB 00000985: SWAP1 00000986: SWAP3 00000987: AND 00000988: DUP3 00000989: MSTORE 0000098a: MLOAD 0000098b: SWAP1 0000098c: DUP2 0000098d: SWAP1 0000098e: SUB 0000098f: PUSH1 0x20 00000991: ADD 00000992: SWAP1 00000993: RETURN 00000994: JUMPDEST 00000995: CALLVALUE 00000996: DUP1 00000997: ISZERO 00000998: PUSH2 0x09a0 0000099b: JUMPI 0000099c: PUSH1 0x00 0000099e: DUP1 0000099f: REVERT 000009a0: JUMPDEST 000009a1: POP 000009a2: PUSH2 0x04bd 000009a5: PUSH2 0x1e10 000009a8: JUMP 000009a9: JUMPDEST 000009aa: CALLVALUE 000009ab: DUP1 000009ac: ISZERO 000009ad: PUSH2 0x09b5 000009b0: JUMPI 000009b1: PUSH1 0x00 000009b3: DUP1 000009b4: REVERT 000009b5: JUMPDEST 000009b6: POP 000009b7: PUSH2 0x0978 000009ba: PUSH1 0x04 000009bc: DUP1 000009bd: CALLDATASIZE 000009be: SUB 000009bf: PUSH1 0x80 000009c1: DUP2 000009c2: LT 000009c3: ISZERO 000009c4: PUSH2 0x09cc 000009c7: JUMPI 000009c8: PUSH1 0x00 000009ca: DUP1 000009cb: REVERT 000009cc: JUMPDEST 000009cd: POP 000009ce: PUSH1 0x01 000009d0: PUSH1 0x01 000009d2: PUSH1 0xa0 000009d4: SHL 000009d5: SUB 000009d6: DUP2 000009d7: CALLDATALOAD 000009d8: DUP2 000009d9: AND 000009da: SWAP2 000009db: PUSH1 0x20 000009dd: DUP2 000009de: ADD 000009df: CALLDATALOAD 000009e0: SWAP1 000009e1: SWAP2 000009e2: AND 000009e3: SWAP1 000009e4: PUSH1 0x01 000009e6: PUSH1 0x01 000009e8: PUSH1 0x80 000009ea: SHL 000009eb: SUB 000009ec: PUSH1 0x40 000009ee: DUP3 000009ef: ADD 000009f0: CALLDATALOAD 000009f1: DUP2 000009f2: AND 000009f3: SWAP2 000009f4: PUSH1 0x60 000009f6: ADD 000009f7: CALLDATALOAD 000009f8: AND 000009f9: PUSH2 0x1e19 000009fc: JUMP 000009fd: JUMPDEST 000009fe: CALLVALUE 000009ff: DUP1 00000a00: ISZERO 00000a01: PUSH2 0x0a09 00000a04: JUMPI 00000a05: PUSH1 0x00 00000a07: DUP1 00000a08: REVERT 00000a09: JUMPDEST 00000a0a: POP 00000a0b: PUSH2 0x0a2d 00000a0e: PUSH1 0x04 00000a10: DUP1 00000a11: CALLDATASIZE 00000a12: SUB 00000a13: PUSH1 0x20 00000a15: DUP2 00000a16: LT 00000a17: ISZERO 00000a18: PUSH2 0x0a20 00000a1b: JUMPI 00000a1c: PUSH1 0x00 00000a1e: DUP1 00000a1f: REVERT 00000a20: JUMPDEST 00000a21: POP 00000a22: CALLDATALOAD 00000a23: PUSH4 0xffffffff 00000a28: AND 00000a29: PUSH2 0x20a9 00000a2c: JUMP 00000a2d: JUMPDEST 00000a2e: PUSH1 0x40 00000a30: DUP1 00000a31: MLOAD 00000a32: PUSH1 0x01 00000a34: PUSH1 0x01 00000a36: PUSH1 0xa0 00000a38: SHL 00000a39: SUB 00000a3a: SWAP1 00000a3b: SWAP4 00000a3c: AND 00000a3d: DUP4 00000a3e: MSTORE 00000a3f: PUSH2 0xffff 00000a42: SWAP1 00000a43: SWAP2 00000a44: AND 00000a45: PUSH1 0x20 00000a47: DUP4 00000a48: ADD 00000a49: MSTORE 00000a4a: DUP1 00000a4b: MLOAD 00000a4c: SWAP2 00000a4d: DUP3 00000a4e: SWAP1 00000a4f: SUB 00000a50: ADD 00000a51: SWAP1 00000a52: RETURN 00000a53: JUMPDEST 00000a54: CALLVALUE 00000a55: DUP1 00000a56: ISZERO 00000a57: PUSH2 0x0a5f 00000a5a: JUMPI 00000a5b: PUSH1 0x00 00000a5d: DUP1 00000a5e: REVERT 00000a5f: JUMPDEST 00000a60: POP 00000a61: PUSH2 0x038c 00000a64: PUSH1 0x04 00000a66: DUP1 00000a67: CALLDATASIZE 00000a68: SUB 00000a69: PUSH1 0x40 00000a6b: DUP2 00000a6c: LT 00000a6d: ISZERO 00000a6e: PUSH2 0x0a76 00000a71: JUMPI 00000a72: PUSH1 0x00 00000a74: DUP1 00000a75: REVERT 00000a76: JUMPDEST 00000a77: POP 00000a78: DUP1 00000a79: CALLDATALOAD 00000a7a: PUSH1 0x01 00000a7c: PUSH1 0x01 00000a7e: PUSH1 0x80 00000a80: SHL 00000a81: SUB 00000a82: AND 00000a83: SWAP1 00000a84: PUSH1 0x20 00000a86: ADD 00000a87: CALLDATALOAD 00000a88: PUSH1 0x01 00000a8a: PUSH1 0x01 00000a8c: PUSH1 0xa0 00000a8e: SHL 00000a8f: SUB 00000a90: AND 00000a91: PUSH2 0x20d1 00000a94: JUMP 00000a95: JUMPDEST 00000a96: CALLVALUE 00000a97: DUP1 00000a98: ISZERO 00000a99: PUSH2 0x0aa1 00000a9c: JUMPI 00000a9d: PUSH1 0x00 00000a9f: DUP1 00000aa0: REVERT 00000aa1: JUMPDEST 00000aa2: POP 00000aa3: PUSH2 0x03bc 00000aa6: PUSH2 0x2228 00000aa9: JUMP 00000aaa: JUMPDEST 00000aab: CALLVALUE 00000aac: DUP1 00000aad: ISZERO 00000aae: PUSH2 0x0ab6 00000ab1: JUMPI 00000ab2: PUSH1 0x00 00000ab4: DUP1 00000ab5: REVERT 00000ab6: JUMPDEST 00000ab7: POP 00000ab8: PUSH2 0x04bd 00000abb: PUSH1 0x04 00000abd: DUP1 00000abe: CALLDATASIZE 00000abf: SUB 00000ac0: PUSH1 0x40 00000ac2: DUP2 00000ac3: LT 00000ac4: ISZERO 00000ac5: PUSH2 0x0acd 00000ac8: JUMPI 00000ac9: PUSH1 0x00 00000acb: DUP1 00000acc: REVERT 00000acd: JUMPDEST 00000ace: POP 00000acf: PUSH4 0xffffffff 00000ad4: DUP2 00000ad5: CALLDATALOAD 00000ad6: DUP2 00000ad7: AND 00000ad8: SWAP2 00000ad9: PUSH1 0x20 00000adb: ADD 00000adc: CALLDATALOAD 00000add: AND 00000ade: PUSH2 0x2237 00000ae1: JUMP 00000ae2: JUMPDEST 00000ae3: CALLVALUE 00000ae4: DUP1 00000ae5: ISZERO 00000ae6: PUSH2 0x0aee 00000ae9: JUMPI 00000aea: PUSH1 0x00 00000aec: DUP1 00000aed: REVERT 00000aee: JUMPDEST 00000aef: POP 00000af0: PUSH2 0x038c 00000af3: PUSH1 0x04 00000af5: DUP1 00000af6: CALLDATASIZE 00000af7: SUB 00000af8: PUSH1 0x60 00000afa: DUP2 00000afb: LT 00000afc: ISZERO 00000afd: PUSH2 0x0b05 00000b00: JUMPI 00000b01: PUSH1 0x00 00000b03: DUP1 00000b04: REVERT 00000b05: JUMPDEST 00000b06: POP 00000b07: DUP1 00000b08: CALLDATALOAD 00000b09: SWAP1 00000b0a: PUSH1 0x01 00000b0c: PUSH1 0x01 00000b0e: PUSH1 0xa0 00000b10: SHL 00000b11: SUB 00000b12: PUSH1 0x20 00000b14: DUP3 00000b15: ADD 00000b16: CALLDATALOAD 00000b17: DUP2 00000b18: AND 00000b19: SWAP2 00000b1a: PUSH1 0x40 00000b1c: ADD 00000b1d: CALLDATALOAD 00000b1e: AND 00000b1f: PUSH2 0x2257 00000b22: JUMP 00000b23: JUMPDEST 00000b24: CALLVALUE 00000b25: DUP1 00000b26: ISZERO 00000b27: PUSH2 0x0b2f 00000b2a: JUMPI 00000b2b: PUSH1 0x00 00000b2d: DUP1 00000b2e: REVERT 00000b2f: JUMPDEST 00000b30: POP 00000b31: PUSH2 0x038c 00000b34: PUSH1 0x04 00000b36: DUP1 00000b37: CALLDATASIZE 00000b38: SUB 00000b39: PUSH1 0x20 00000b3b: DUP2 00000b3c: LT 00000b3d: ISZERO 00000b3e: PUSH2 0x0b46 00000b41: JUMPI 00000b42: PUSH1 0x00 00000b44: DUP1 00000b45: REVERT 00000b46: JUMPDEST 00000b47: POP 00000b48: CALLDATALOAD 00000b49: PUSH1 0x01 00000b4b: PUSH1 0x01 00000b4d: PUSH1 0x80 00000b4f: SHL 00000b50: SUB 00000b51: AND 00000b52: PUSH2 0x233f 00000b55: JUMP 00000b56: JUMPDEST 00000b57: CALLVALUE 00000b58: DUP1 00000b59: ISZERO 00000b5a: PUSH2 0x0b62 00000b5d: JUMPI 00000b5e: PUSH1 0x00 00000b60: DUP1 00000b61: REVERT 00000b62: JUMPDEST 00000b63: POP 00000b64: PUSH2 0x05cd 00000b67: PUSH2 0x2449 00000b6a: JUMP 00000b6b: JUMPDEST 00000b6c: CALLVALUE 00000b6d: DUP1 00000b6e: ISZERO 00000b6f: PUSH2 0x0b77 00000b72: JUMPI 00000b73: PUSH1 0x00 00000b75: DUP1 00000b76: REVERT 00000b77: JUMPDEST 00000b78: POP 00000b79: PUSH2 0x038c 00000b7c: PUSH1 0x04 00000b7e: DUP1 00000b7f: CALLDATASIZE 00000b80: SUB 00000b81: PUSH1 0x40 00000b83: DUP2 00000b84: LT 00000b85: ISZERO 00000b86: PUSH2 0x0b8e 00000b89: JUMPI 00000b8a: PUSH1 0x00 00000b8c: DUP1 00000b8d: REVERT 00000b8e: JUMPDEST 00000b8f: POP 00000b90: DUP1 00000b91: CALLDATALOAD 00000b92: PUSH1 0x01 00000b94: PUSH1 0x01 00000b96: PUSH1 0xa0 00000b98: SHL 00000b99: SUB 00000b9a: AND 00000b9b: SWAP1 00000b9c: PUSH1 0x20 00000b9e: ADD 00000b9f: CALLDATALOAD 00000ba0: PUSH1 0x01 00000ba2: PUSH1 0x01 00000ba4: PUSH1 0x80 00000ba6: SHL 00000ba7: SUB 00000ba8: AND 00000ba9: PUSH2 0x245f 00000bac: JUMP 00000bad: JUMPDEST 00000bae: CALLVALUE 00000baf: DUP1 00000bb0: ISZERO 00000bb1: PUSH2 0x0bb9 00000bb4: JUMPI 00000bb5: PUSH1 0x00 00000bb7: DUP1 00000bb8: REVERT 00000bb9: JUMPDEST 00000bba: POP 00000bbb: PUSH2 0x038c 00000bbe: PUSH1 0x04 00000bc0: DUP1 00000bc1: CALLDATASIZE 00000bc2: SUB 00000bc3: PUSH1 0x40 00000bc5: DUP2 00000bc6: LT 00000bc7: ISZERO 00000bc8: PUSH2 0x0bd0 00000bcb: JUMPI 00000bcc: PUSH1 0x00 00000bce: DUP1 00000bcf: REVERT 00000bd0: JUMPDEST 00000bd1: POP 00000bd2: PUSH1 0x01 00000bd4: PUSH1 0x01 00000bd6: PUSH1 0xa0 00000bd8: SHL 00000bd9: SUB 00000bda: DUP2 00000bdb: CALLDATALOAD 00000bdc: DUP2 00000bdd: AND 00000bde: SWAP2 00000bdf: PUSH1 0x20 00000be1: ADD 00000be2: CALLDATALOAD 00000be3: AND 00000be4: PUSH2 0x2653 00000be7: JUMP 00000be8: JUMPDEST 00000be9: CALLVALUE 00000bea: DUP1 00000beb: ISZERO 00000bec: PUSH2 0x0bf4 00000bef: JUMPI 00000bf0: PUSH1 0x00 00000bf2: DUP1 00000bf3: REVERT 00000bf4: JUMPDEST 00000bf5: POP 00000bf6: PUSH2 0x0bfd 00000bf9: PUSH2 0x290b 00000bfc: JUMP 00000bfd: JUMPDEST 00000bfe: PUSH1 0x40 00000c00: DUP1 00000c01: MLOAD 00000c02: PUSH2 0xffff 00000c05: SWAP1 00000c06: SWAP3 00000c07: AND 00000c08: DUP3 00000c09: MSTORE 00000c0a: MLOAD 00000c0b: SWAP1 00000c0c: DUP2 00000c0d: SWAP1 00000c0e: SUB 00000c0f: PUSH1 0x20 00000c11: ADD 00000c12: SWAP1 00000c13: RETURN 00000c14: JUMPDEST 00000c15: CALLVALUE 00000c16: DUP1 00000c17: ISZERO 00000c18: PUSH2 0x0c20 00000c1b: JUMPI 00000c1c: PUSH1 0x00 00000c1e: DUP1 00000c1f: REVERT 00000c20: JUMPDEST 00000c21: POP 00000c22: PUSH2 0x03ed 00000c25: PUSH2 0x2915 00000c28: JUMP 00000c29: JUMPDEST 00000c2a: CALLVALUE 00000c2b: DUP1 00000c2c: ISZERO 00000c2d: PUSH2 0x0c35 00000c30: JUMPI 00000c31: PUSH1 0x00 00000c33: DUP1 00000c34: REVERT 00000c35: JUMPDEST 00000c36: POP 00000c37: PUSH2 0x038c 00000c3a: PUSH1 0x04 00000c3c: DUP1 00000c3d: CALLDATASIZE 00000c3e: SUB 00000c3f: PUSH1 0x60 00000c41: DUP2 00000c42: LT 00000c43: ISZERO 00000c44: PUSH2 0x0c4c 00000c47: JUMPI 00000c48: PUSH1 0x00 00000c4a: DUP1 00000c4b: REVERT 00000c4c: JUMPDEST 00000c4d: POP 00000c4e: PUSH1 0x01 00000c50: PUSH1 0x01 00000c52: PUSH1 0xa0 00000c54: SHL 00000c55: SUB 00000c56: DUP2 00000c57: CALLDATALOAD 00000c58: DUP2 00000c59: AND 00000c5a: SWAP2 00000c5b: PUSH1 0x01 00000c5d: PUSH1 0x01 00000c5f: PUSH1 0x68 00000c61: SHL 00000c62: SUB 00000c63: PUSH1 0x20 00000c65: DUP3 00000c66: ADD 00000c67: CALLDATALOAD 00000c68: AND 00000c69: SWAP2 00000c6a: PUSH1 0x40 00000c6c: SWAP1 00000c6d: SWAP2 00000c6e: ADD 00000c6f: CALLDATALOAD 00000c70: AND 00000c71: PUSH2 0x2921 00000c74: JUMP 00000c75: JUMPDEST 00000c76: CALLVALUE 00000c77: DUP1 00000c78: ISZERO 00000c79: PUSH2 0x0c81 00000c7c: JUMPI 00000c7d: PUSH1 0x00 00000c7f: DUP1 00000c80: REVERT 00000c81: JUMPDEST 00000c82: POP 00000c83: PUSH2 0x03bc 00000c86: PUSH2 0x2e27 00000c89: JUMP 00000c8a: JUMPDEST 00000c8b: CALLVALUE 00000c8c: DUP1 00000c8d: ISZERO 00000c8e: PUSH2 0x0c96 00000c91: JUMPI 00000c92: PUSH1 0x00 00000c94: DUP1 00000c95: REVERT 00000c96: JUMPDEST 00000c97: POP 00000c98: PUSH2 0x0bfd 00000c9b: PUSH1 0x04 00000c9d: DUP1 00000c9e: CALLDATASIZE 00000c9f: SUB 00000ca0: PUSH1 0x20 00000ca2: DUP2 00000ca3: LT 00000ca4: ISZERO 00000ca5: PUSH2 0x0cad 00000ca8: JUMPI 00000ca9: PUSH1 0x00 00000cab: DUP1 00000cac: REVERT 00000cad: JUMPDEST 00000cae: POP 00000caf: CALLDATALOAD 00000cb0: PUSH1 0x01 00000cb2: PUSH1 0x01 00000cb4: PUSH1 0xa0 00000cb6: SHL 00000cb7: SUB 00000cb8: AND 00000cb9: PUSH2 0x2e36 00000cbc: JUMP 00000cbd: JUMPDEST 00000cbe: CALLVALUE 00000cbf: DUP1 00000cc0: ISZERO 00000cc1: PUSH2 0x0cc9 00000cc4: JUMPI 00000cc5: PUSH1 0x00 00000cc7: DUP1 00000cc8: REVERT 00000cc9: JUMPDEST 00000cca: POP 00000ccb: PUSH2 0x038c 00000cce: PUSH1 0x04 00000cd0: DUP1 00000cd1: CALLDATASIZE 00000cd2: SUB 00000cd3: PUSH1 0x60 00000cd5: DUP2 00000cd6: LT 00000cd7: ISZERO 00000cd8: PUSH2 0x0ce0 00000cdb: JUMPI 00000cdc: PUSH1 0x00 00000cde: DUP1 00000cdf: REVERT 00000ce0: JUMPDEST 00000ce1: POP 00000ce2: PUSH1 0x01 00000ce4: PUSH1 0x01 00000ce6: PUSH1 0xa0 00000ce8: SHL 00000ce9: SUB 00000cea: DUP2 00000ceb: CALLDATALOAD 00000cec: DUP2 00000ced: AND 00000cee: SWAP2 00000cef: PUSH1 0x01 00000cf1: PUSH1 0x01 00000cf3: PUSH1 0x80 00000cf5: SHL 00000cf6: SUB 00000cf7: PUSH1 0x20 00000cf9: DUP3 00000cfa: ADD 00000cfb: CALLDATALOAD 00000cfc: AND 00000cfd: SWAP2 00000cfe: PUSH1 0x40 00000d00: SWAP1 00000d01: SWAP2 00000d02: ADD 00000d03: CALLDATALOAD 00000d04: AND 00000d05: PUSH2 0x2ed6 00000d08: JUMP 00000d09: JUMPDEST 00000d0a: CALLVALUE 00000d0b: DUP1 00000d0c: ISZERO 00000d0d: PUSH2 0x0d15 00000d10: JUMPI 00000d11: PUSH1 0x00 00000d13: DUP1 00000d14: REVERT 00000d15: JUMPDEST 00000d16: POP 00000d17: PUSH2 0x0978 00000d1a: PUSH1 0x04 00000d1c: DUP1 00000d1d: CALLDATASIZE 00000d1e: SUB 00000d1f: PUSH1 0x40 00000d21: DUP2 00000d22: LT 00000d23: ISZERO 00000d24: PUSH2 0x0d2c 00000d27: JUMPI 00000d28: PUSH1 0x00 00000d2a: DUP1 00000d2b: REVERT 00000d2c: JUMPDEST 00000d2d: POP 00000d2e: DUP1 00000d2f: CALLDATALOAD 00000d30: PUSH1 0x01 00000d32: PUSH1 0x01 00000d34: PUSH1 0xa0 00000d36: SHL 00000d37: SUB 00000d38: AND 00000d39: SWAP1 00000d3a: PUSH1 0x20 00000d3c: ADD 00000d3d: CALLDATALOAD 00000d3e: PUSH2 0xffff 00000d41: AND 00000d42: PUSH2 0x30f4 00000d45: JUMP 00000d46: JUMPDEST 00000d47: CALLVALUE 00000d48: DUP1 00000d49: ISZERO 00000d4a: PUSH2 0x0d52 00000d4d: JUMPI 00000d4e: PUSH1 0x00 00000d50: DUP1 00000d51: REVERT 00000d52: JUMPDEST 00000d53: POP 00000d54: PUSH2 0x03ed 00000d57: PUSH2 0x312f 00000d5a: JUMP 00000d5b: JUMPDEST 00000d5c: CALLVALUE 00000d5d: DUP1 00000d5e: ISZERO 00000d5f: PUSH2 0x0d67 00000d62: JUMPI 00000d63: PUSH1 0x00 00000d65: DUP1 00000d66: REVERT 00000d67: JUMPDEST 00000d68: POP 00000d69: PUSH2 0x0bfd 00000d6c: PUSH1 0x04 00000d6e: DUP1 00000d6f: CALLDATASIZE 00000d70: SUB 00000d71: PUSH1 0x20 00000d73: DUP2 00000d74: LT 00000d75: ISZERO 00000d76: PUSH2 0x0d7e 00000d79: JUMPI 00000d7a: PUSH1 0x00 00000d7c: DUP1 00000d7d: REVERT 00000d7e: JUMPDEST 00000d7f: POP 00000d80: CALLDATALOAD 00000d81: PUSH1 0x01 00000d83: PUSH1 0x01 00000d85: PUSH1 0xa0 00000d87: SHL 00000d88: SUB 00000d89: AND 00000d8a: PUSH2 0x3142 00000d8d: JUMP 00000d8e: JUMPDEST 00000d8f: CALLVALUE 00000d90: DUP1 00000d91: ISZERO 00000d92: PUSH2 0x0d9a 00000d95: JUMPI 00000d96: PUSH1 0x00 00000d98: DUP1 00000d99: REVERT 00000d9a: JUMPDEST 00000d9b: POP 00000d9c: PUSH2 0x041b 00000d9f: PUSH2 0x3158 00000da2: JUMP 00000da3: JUMPDEST 00000da4: PUSH1 0x00 00000da6: DUP1 00000da7: MLOAD 00000da8: PUSH1 0x20 00000daa: PUSH2 0x4172 00000dad: DUP4 00000dae: CODECOPY 00000daf: DUP2 00000db0: MLOAD 00000db1: SWAP2 00000db2: MSTORE 00000db3: SLOAD 00000db4: DUP1 00000db5: PUSH2 0x0df3 00000db8: JUMPI 00000db9: PUSH1 0x40 00000dbb: DUP1 00000dbc: MLOAD 00000dbd: PUSH3 0x461bcd 00000dc1: PUSH1 0xe5 00000dc3: SHL 00000dc4: DUP2 00000dc5: MSTORE 00000dc6: PUSH1 0x20 00000dc8: PUSH1 0x04 00000dca: DUP3 00000dcb: ADD 00000dcc: MSTORE 00000dcd: PUSH1 0x1f 00000dcf: PUSH1 0x24 00000dd1: DUP3 00000dd2: ADD 00000dd3: MSTORE 00000dd4: PUSH1 0x00 00000dd6: DUP1 00000dd7: MLOAD 00000dd8: PUSH1 0x20 00000dda: PUSH2 0x412c 00000ddd: DUP4 00000dde: CODECOPY 00000ddf: DUP2 00000de0: MLOAD 00000de1: SWAP2 00000de2: MSTORE 00000de3: PUSH1 0x44 00000de5: DUP3 00000de6: ADD 00000de7: MSTORE 00000de8: SWAP1 00000de9: MLOAD 00000dea: SWAP1 00000deb: DUP2 00000dec: SWAP1 00000ded: SUB 00000dee: PUSH1 0x64 00000df0: ADD 00000df1: SWAP1 00000df2: REVERT 00000df3: JUMPDEST 00000df4: PUSH1 0x00 00000df6: PUSH1 0x00 00000df8: DUP1 00000df9: MLOAD 00000dfa: PUSH1 0x20 00000dfc: PUSH2 0x4172 00000dff: DUP4 00000e00: CODECOPY 00000e01: DUP2 00000e02: MLOAD 00000e03: SWAP2 00000e04: MSTORE 00000e05: SSTORE 00000e06: PUSH2 0x0e0d 00000e09: PUSH2 0x315e 00000e0c: JUMP 00000e0d: JUMPDEST 00000e0e: PUSH4 0x0fffffff 00000e13: PUSH4 0xffffffff 00000e18: DUP5 00000e19: AND 00000e1a: GT 00000e1b: ISZERO 00000e1c: PUSH2 0x0e54 00000e1f: JUMPI 00000e20: PUSH1 0x40 00000e22: DUP1 00000e23: MLOAD 00000e24: PUSH3 0x461bcd 00000e28: PUSH1 0xe5 00000e2a: SHL 00000e2b: DUP2 00000e2c: MSTORE 00000e2d: PUSH1 0x20 00000e2f: PUSH1 0x04 00000e31: DUP3 00000e32: ADD 00000e33: MSTORE 00000e34: PUSH1 0x05 00000e36: PUSH1 0x24 00000e38: DUP3 00000e39: ADD 00000e3a: MSTORE 00000e3b: PUSH5 0x6665653131 00000e41: PUSH1 0xd8 00000e43: SHL 00000e44: PUSH1 0x44 00000e46: DUP3 00000e47: ADD 00000e48: MSTORE 00000e49: SWAP1 00000e4a: MLOAD 00000e4b: SWAP1 00000e4c: DUP2 00000e4d: SWAP1 00000e4e: SUB 00000e4f: PUSH1 0x64 00000e51: ADD 00000e52: SWAP1 00000e53: REVERT 00000e54: JUMPDEST 00000e55: PUSH1 0x00 00000e57: PUSH1 0x01 00000e59: PUSH1 0x01 00000e5b: PUSH1 0xa0 00000e5d: SHL 00000e5e: SUB 00000e5f: DUP4 00000e60: AND 00000e61: PUSH2 0x0e6c 00000e64: JUMPI 00000e65: POP 00000e66: PUSH1 0x00 00000e68: PUSH2 0x0f2a 00000e6b: JUMP 00000e6c: JUMPDEST 00000e6d: PUSH1 0x07 00000e6f: SLOAD 00000e70: PUSH1 0x40 00000e72: DUP1 00000e73: MLOAD 00000e74: PUSH4 0x75698bb1 00000e79: PUSH1 0xe1 00000e7b: SHL 00000e7c: DUP2 00000e7d: MSTORE 00000e7e: PUSH1 0x01 00000e80: PUSH1 0x01 00000e82: PUSH1 0xa0 00000e84: SHL 00000e85: SUB 00000e86: DUP7 00000e87: DUP2 00000e88: AND 00000e89: PUSH1 0x04 00000e8b: DUP4 00000e8c: ADD 00000e8d: MSTORE 00000e8e: SWAP2 00000e8f: MLOAD 00000e90: SWAP2 00000e91: SWAP1 00000e92: SWAP3 00000e93: AND 00000e94: SWAP2 00000e95: PUSH4 0xead31762 00000e9a: SWAP2 00000e9b: PUSH1 0x24 00000e9d: DUP1 00000e9e: DUP4 00000e9f: ADD 00000ea0: SWAP3 00000ea1: PUSH1 0x20 00000ea3: SWAP3 00000ea4: SWAP2 00000ea5: SWAP1 00000ea6: DUP3 00000ea7: SWAP1 00000ea8: SUB 00000ea9: ADD 00000eaa: DUP2 00000eab: DUP7 00000eac: DUP1 00000ead: EXTCODESIZE 00000eae: ISZERO 00000eaf: DUP1 00000eb0: ISZERO 00000eb1: PUSH2 0x0eb9 00000eb4: JUMPI 00000eb5: PUSH1 0x00 00000eb7: DUP1 00000eb8: REVERT 00000eb9: JUMPDEST 00000eba: POP 00000ebb: GAS 00000ebc: STATICCALL 00000ebd: ISZERO 00000ebe: DUP1 00000ebf: ISZERO 00000ec0: PUSH2 0x0ecd 00000ec3: JUMPI 00000ec4: RETURNDATASIZE 00000ec5: PUSH1 0x00 00000ec7: DUP1 00000ec8: RETURNDATACOPY 00000ec9: RETURNDATASIZE 00000eca: PUSH1 0x00 00000ecc: REVERT 00000ecd: JUMPDEST 00000ece: POP 00000ecf: POP 00000ed0: POP 00000ed1: POP 00000ed2: PUSH1 0x40 00000ed4: MLOAD 00000ed5: RETURNDATASIZE 00000ed6: PUSH1 0x20 00000ed8: DUP2 00000ed9: LT 00000eda: ISZERO 00000edb: PUSH2 0x0ee3 00000ede: JUMPI 00000edf: PUSH1 0x00 00000ee1: DUP1 00000ee2: REVERT 00000ee3: JUMPDEST 00000ee4: POP 00000ee5: MLOAD 00000ee6: SWAP1 00000ee7: POP 00000ee8: PUSH2 0x3fff 00000eeb: PUSH2 0xffff 00000eee: DUP3 00000eef: AND 00000ef0: GT 00000ef1: ISZERO 00000ef2: PUSH2 0x0f2a 00000ef5: JUMPI 00000ef6: PUSH1 0x40 00000ef8: DUP1 00000ef9: MLOAD 00000efa: PUSH3 0x461bcd 00000efe: PUSH1 0xe5 00000f00: SHL 00000f01: DUP2 00000f02: MSTORE 00000f03: PUSH1 0x20 00000f05: PUSH1 0x04 00000f07: DUP3 00000f08: ADD 00000f09: MSTORE 00000f0a: PUSH1 0x05 00000f0c: PUSH1 0x24 00000f0e: DUP3 00000f0f: ADD 00000f10: MSTORE 00000f11: PUSH5 0x3332b29899 00000f17: PUSH1 0xd9 00000f19: SHL 00000f1a: PUSH1 0x44 00000f1c: DUP3 00000f1d: ADD 00000f1e: MSTORE 00000f1f: SWAP1 00000f20: MLOAD 00000f21: SWAP1 00000f22: DUP2 00000f23: SWAP1 00000f24: SUB 00000f25: PUSH1 0x64 00000f27: ADD 00000f28: SWAP1 00000f29: REVERT 00000f2a: JUMPDEST 00000f2b: PUSH2 0x0f32 00000f2e: PUSH2 0x3ffb 00000f31: JUMP 00000f32: JUMPDEST 00000f33: PUSH1 0x40 00000f35: MLOAD 00000f36: DUP1 00000f37: PUSH1 0x80 00000f39: ADD 00000f3a: PUSH1 0x40 00000f3c: MSTORE 00000f3d: DUP1 00000f3e: DUP7 00000f3f: PUSH4 0xffffffff 00000f44: AND 00000f45: DUP2 00000f46: MSTORE 00000f47: PUSH1 0x20 00000f49: ADD 00000f4a: CALLER 00000f4b: PUSH1 0x01 00000f4d: PUSH1 0x01 00000f4f: PUSH1 0xa0 00000f51: SHL 00000f52: SUB 00000f53: AND 00000f54: DUP2 00000f55: MSTORE 00000f56: PUSH1 0x20 00000f58: ADD 00000f59: DUP4 00000f5a: PUSH2 0xffff 00000f5d: AND 00000f5e: DUP2 00000f5f: MSTORE 00000f60: PUSH1 0x20 00000f62: ADD 00000f63: PUSH1 0x00 00000f65: PUSH1 0x01 00000f67: PUSH1 0x01 00000f69: PUSH1 0x80 00000f6b: SHL 00000f6c: SUB 00000f6d: AND 00000f6e: DUP2 00000f6f: MSTORE 00000f70: POP 00000f71: SWAP1 00000f72: POP 00000f73: PUSH1 0x60 00000f75: PUSH2 0x0f7d 00000f78: DUP3 00000f79: PUSH2 0x319e 00000f7c: JUMP 00000f7d: JUMPDEST 00000f7e: SWAP1 00000f7f: POP 00000f80: PUSH2 0x0f9a 00000f83: PUSH1 0x06 00000f85: DUP3 00000f86: PUSH1 0x40 00000f88: MLOAD 00000f89: DUP1 00000f8a: PUSH1 0x20 00000f8c: ADD 00000f8d: PUSH1 0x40 00000f8f: MSTORE 00000f90: DUP1 00000f91: PUSH1 0x00 00000f93: DUP2 00000f94: MSTORE 00000f95: POP 00000f96: PUSH2 0x3233 00000f99: JUMP 00000f9a: JUMPDEST 00000f9b: PUSH1 0x00 00000f9d: PUSH2 0x0fa6 00000fa0: CALLER 00000fa1: DUP6 00000fa2: PUSH2 0x345e 00000fa5: JUMP 00000fa6: JUMPDEST 00000fa7: PUSH1 0x01 00000fa9: PUSH1 0x01 00000fab: PUSH1 0x50 00000fad: SHL 00000fae: SUB 00000faf: NOT 00000fb0: AND 00000fb1: PUSH1 0x00 00000fb3: SWAP1 00000fb4: DUP2 00000fb5: MSTORE 00000fb6: PUSH1 0x09 00000fb8: PUSH1 0x20 00000fba: MSTORE 00000fbb: PUSH1 0x40 00000fbd: SWAP1 00000fbe: KECCAK256 00000fbf: DUP1 00000fc0: SLOAD 00000fc1: PUSH1 0xff 00000fc3: PUSH1 0x80 00000fc5: SHL 00000fc6: NOT 00000fc7: AND 00000fc8: PUSH1 0xff 00000fca: PUSH1 0x80 00000fcc: SHL 00000fcd: OR 00000fce: SWAP1 00000fcf: SSTORE 00000fd0: POP 00000fd1: POP 00000fd2: PUSH1 0x01 00000fd4: PUSH1 0x00 00000fd6: DUP1 00000fd7: MLOAD 00000fd8: PUSH1 0x20 00000fda: PUSH2 0x4172 00000fdd: DUP4 00000fde: CODECOPY 00000fdf: DUP2 00000fe0: MLOAD 00000fe1: SWAP2 00000fe2: MSTORE 00000fe3: SSTORE 00000fe4: POP 00000fe5: POP 00000fe6: POP 00000fe7: POP 00000fe8: POP 00000fe9: JUMP 00000fea: JUMPDEST 00000feb: PUSH1 0x01 00000fed: PUSH1 0x20 00000fef: MSTORE 00000ff0: PUSH1 0x00 00000ff2: SWAP1 00000ff3: DUP2 00000ff4: MSTORE 00000ff5: PUSH1 0x40 00000ff7: SWAP1 00000ff8: KECCAK256 00000ff9: SLOAD 00000ffa: PUSH1 0x01 00000ffc: PUSH1 0x01 00000ffe: PUSH1 0xa0 00001000: SHL 00001001: SUB 00001002: AND 00001003: DUP2 00001004: JUMP 00001005: JUMPDEST 00001006: PUSH1 0x0b 00001008: SLOAD 00001009: PUSH1 0x01 0000100b: PUSH1 0x60 0000100d: SHL 0000100e: SWAP1 0000100f: DIV 00001010: PUSH4 0xffffffff 00001015: AND 00001016: DUP2 00001017: JUMP 00001018: JUMPDEST 00001019: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 0000103a: DUP2 0000103b: JUMP 0000103c: JUMPDEST 0000103d: POP 0000103e: POP 0000103f: JUMP 00001040: JUMPDEST 00001041: PUSH1 0x0f 00001043: SLOAD 00001044: PUSH1 0xff 00001046: AND 00001047: DUP2 00001048: JUMP 00001049: JUMPDEST 0000104a: PUSH3 0x0a8c00 0000104e: JUMPDEST 0000104f: SWAP1 00001050: JUMP 00001051: JUMPDEST 00001052: PUSH1 0x0d 00001054: PUSH1 0x20 00001056: SWAP1 00001057: DUP2 00001058: MSTORE 00001059: PUSH1 0x00 0000105b: SWAP3 0000105c: DUP4 0000105d: MSTORE 0000105e: PUSH1 0x40 00001060: DUP1 00001061: DUP5 00001062: KECCAK256 00001063: SWAP1 00001064: SWAP2 00001065: MSTORE 00001066: SWAP1 00001067: DUP3 00001068: MSTORE 00001069: SWAP1 0000106a: KECCAK256 0000106b: SLOAD 0000106c: PUSH1 0xff 0000106e: AND 0000106f: DUP2 00001070: JUMP 00001071: JUMPDEST 00001072: PUSH1 0x0b 00001074: SLOAD 00001075: PUSH1 0x01 00001077: PUSH1 0x40 00001079: SHL 0000107a: SWAP1 0000107b: DIV 0000107c: PUSH4 0xffffffff 00001081: AND 00001082: DUP2 00001083: JUMP 00001084: JUMPDEST 00001085: PUSH1 0x00 00001087: DUP1 00001088: MLOAD 00001089: PUSH1 0x20 0000108b: PUSH2 0x4172 0000108e: DUP4 0000108f: CODECOPY 00001090: DUP2 00001091: MLOAD 00001092: SWAP2 00001093: MSTORE 00001094: SLOAD 00001095: DUP1 00001096: PUSH2 0x10d4 00001099: JUMPI 0000109a: PUSH1 0x40 0000109c: DUP1 0000109d: MLOAD 0000109e: PUSH3 0x461bcd 000010a2: PUSH1 0xe5 000010a4: SHL 000010a5: DUP2 000010a6: MSTORE 000010a7: PUSH1 0x20 000010a9: PUSH1 0x04 000010ab: DUP3 000010ac: ADD 000010ad: MSTORE 000010ae: PUSH1 0x1f 000010b0: PUSH1 0x24 000010b2: DUP3 000010b3: ADD 000010b4: MSTORE 000010b5: PUSH1 0x00 000010b7: DUP1 000010b8: MLOAD 000010b9: PUSH1 0x20 000010bb: PUSH2 0x412c 000010be: DUP4 000010bf: CODECOPY 000010c0: DUP2 000010c1: MLOAD 000010c2: SWAP2 000010c3: MSTORE 000010c4: PUSH1 0x44 000010c6: DUP3 000010c7: ADD 000010c8: MSTORE 000010c9: SWAP1 000010ca: MLOAD 000010cb: SWAP1 000010cc: DUP2 000010cd: SWAP1 000010ce: SUB 000010cf: PUSH1 0x64 000010d1: ADD 000010d2: SWAP1 000010d3: REVERT 000010d4: JUMPDEST 000010d5: PUSH1 0x00 000010d7: PUSH1 0x00 000010d9: DUP1 000010da: MLOAD 000010db: PUSH1 0x20 000010dd: PUSH2 0x4172 000010e0: DUP4 000010e1: CODECOPY 000010e2: DUP2 000010e3: MLOAD 000010e4: SWAP2 000010e5: MSTORE 000010e6: SSTORE 000010e7: PUSH2 0x10ee 000010ea: PUSH2 0x315e 000010ed: JUMP 000010ee: JUMPDEST 000010ef: PUSH2 0x1102 000010f2: PUSH1 0x00 000010f4: PUSH2 0x10fc 000010f7: CALLVALUE 000010f8: PUSH2 0x347b 000010fb: JUMP 000010fc: JUMPDEST 000010fd: DUP5 000010fe: PUSH2 0x34c3 00001101: JUMP 00001102: JUMPDEST 00001103: PUSH1 0x01 00001105: PUSH1 0x00 00001107: DUP1 00001108: MLOAD 00001109: PUSH1 0x20 0000110b: PUSH2 0x4172 0000110e: DUP4 0000110f: CODECOPY 00001110: DUP2 00001111: MLOAD 00001112: SWAP2 00001113: MSTORE 00001114: SSTORE 00001115: POP 00001116: POP 00001117: JUMP 00001118: JUMPDEST 00001119: PUSH1 0x00 0000111b: DUP1 0000111c: MLOAD 0000111d: PUSH1 0x20 0000111f: PUSH2 0x4172 00001122: DUP4 00001123: CODECOPY 00001124: DUP2 00001125: MLOAD 00001126: SWAP2 00001127: MSTORE 00001128: SLOAD 00001129: DUP1 0000112a: PUSH2 0x1168 0000112d: JUMPI 0000112e: PUSH1 0x40 00001130: DUP1 00001131: MLOAD 00001132: PUSH3 0x461bcd 00001136: PUSH1 0xe5 00001138: SHL 00001139: DUP2 0000113a: MSTORE 0000113b: PUSH1 0x20 0000113d: PUSH1 0x04 0000113f: DUP3 00001140: ADD 00001141: MSTORE 00001142: PUSH1 0x1f 00001144: PUSH1 0x24 00001146: DUP3 00001147: ADD 00001148: MSTORE 00001149: PUSH1 0x00 0000114b: DUP1 0000114c: MLOAD 0000114d: PUSH1 0x20 0000114f: PUSH2 0x412c 00001152: DUP4 00001153: CODECOPY 00001154: DUP2 00001155: MLOAD 00001156: SWAP2 00001157: MSTORE 00001158: PUSH1 0x44 0000115a: DUP3 0000115b: ADD 0000115c: MSTORE 0000115d: SWAP1 0000115e: MLOAD 0000115f: SWAP1 00001160: DUP2 00001161: SWAP1 00001162: SUB 00001163: PUSH1 0x64 00001165: ADD 00001166: SWAP1 00001167: REVERT 00001168: JUMPDEST 00001169: PUSH1 0x00 0000116b: PUSH1 0x00 0000116d: DUP1 0000116e: MLOAD 0000116f: PUSH1 0x20 00001171: PUSH2 0x4172 00001174: DUP4 00001175: CODECOPY 00001176: DUP2 00001177: MLOAD 00001178: SWAP2 00001179: MSTORE 0000117a: SSTORE 0000117b: PUSH1 0x0f 0000117d: SLOAD 0000117e: PUSH1 0xff 00001180: AND 00001181: PUSH2 0x11b9 00001184: JUMPI 00001185: PUSH1 0x40 00001187: DUP1 00001188: MLOAD 00001189: PUSH3 0x461bcd 0000118d: PUSH1 0xe5 0000118f: SHL 00001190: DUP2 00001191: MSTORE 00001192: PUSH1 0x20 00001194: PUSH1 0x04 00001196: DUP3 00001197: ADD 00001198: MSTORE 00001199: PUSH1 0x05 0000119b: PUSH1 0x24 0000119d: DUP3 0000119e: ADD 0000119f: MSTORE 000011a0: PUSH5 0x636f653031 000011a6: PUSH1 0xd8 000011a8: SHL 000011a9: PUSH1 0x44 000011ab: DUP3 000011ac: ADD 000011ad: MSTORE 000011ae: SWAP1 000011af: MLOAD 000011b0: SWAP1 000011b1: DUP2 000011b2: SWAP1 000011b3: SUB 000011b4: PUSH1 0x64 000011b6: ADD 000011b7: SWAP1 000011b8: REVERT 000011b9: JUMPDEST 000011ba: PUSH1 0x12 000011bc: SLOAD 000011bd: PUSH1 0x00 000011bf: SWAP1 000011c0: PUSH2 0x11d9 000011c3: SWAP1 000011c4: PUSH1 0x01 000011c6: PUSH1 0x40 000011c8: SHL 000011c9: SWAP1 000011ca: DIV 000011cb: PUSH1 0x01 000011cd: PUSH1 0x01 000011cf: PUSH1 0x40 000011d1: SHL 000011d2: SUB 000011d3: AND 000011d4: DUP5 000011d5: PUSH2 0x358a 000011d8: JUMP 000011d9: JUMPDEST 000011da: SWAP1 000011db: POP 000011dc: PUSH1 0x00 000011de: DUP2 000011df: PUSH1 0x01 000011e1: PUSH1 0x01 000011e3: PUSH1 0x40 000011e5: SHL 000011e6: SUB 000011e7: AND 000011e8: GT 000011e9: PUSH2 0x1221 000011ec: JUMPI 000011ed: PUSH1 0x40 000011ef: DUP1 000011f0: MLOAD 000011f1: PUSH3 0x461bcd 000011f5: PUSH1 0xe5 000011f7: SHL 000011f8: DUP2 000011f9: MSTORE 000011fa: PUSH1 0x20 000011fc: PUSH1 0x04 000011fe: DUP3 000011ff: ADD 00001200: MSTORE 00001201: PUSH1 0x05 00001203: PUSH1 0x24 00001205: DUP3 00001206: ADD 00001207: MSTORE 00001208: PUSH5 0x31b7b29819 0000120e: PUSH1 0xd9 00001210: SHL 00001211: PUSH1 0x44 00001213: DUP3 00001214: ADD 00001215: MSTORE 00001216: SWAP1 00001217: MLOAD 00001218: SWAP1 00001219: DUP2 0000121a: SWAP1 0000121b: SUB 0000121c: PUSH1 0x64 0000121e: ADD 0000121f: SWAP1 00001220: REVERT 00001221: JUMPDEST 00001222: PUSH1 0x12 00001224: SLOAD 00001225: PUSH1 0x01 00001227: PUSH1 0x01 00001229: PUSH1 0x40 0000122b: SHL 0000122c: SUB 0000122d: AND 0000122e: JUMPDEST 0000122f: PUSH1 0x12 00001231: SLOAD 00001232: PUSH1 0x01 00001234: PUSH1 0x01 00001236: PUSH1 0x40 00001238: SHL 00001239: SUB 0000123a: SWAP1 0000123b: DUP2 0000123c: AND 0000123d: DUP4 0000123e: ADD 0000123f: DUP2 00001240: AND 00001241: SWAP1 00001242: DUP3 00001243: AND 00001244: LT 00001245: ISZERO 00001246: PUSH2 0x13e5 00001249: JUMPI 0000124a: PUSH1 0x01 0000124c: PUSH1 0x01 0000124e: PUSH1 0x01 00001250: PUSH1 0x40 00001252: SHL 00001253: SUB 00001254: DUP3 00001255: AND 00001256: PUSH1 0x00 00001258: SWAP1 00001259: DUP2 0000125a: MSTORE 0000125b: PUSH1 0x11 0000125d: PUSH1 0x20 0000125f: MSTORE 00001260: PUSH1 0x40 00001262: SWAP1 00001263: KECCAK256 00001264: SLOAD 00001265: PUSH1 0xff 00001267: AND 00001268: PUSH1 0x0b 0000126a: DUP2 0000126b: GT 0000126c: ISZERO 0000126d: PUSH2 0x1272 00001270: JUMPI 00001271: INVALID 00001272: JUMPDEST 00001273: EQ 00001274: ISZERO 00001275: PUSH2 0x13a5 00001278: JUMPI 00001279: PUSH2 0x1280 0000127c: PUSH2 0x3ffb 0000127f: JUMP 00001280: JUMPDEST 00001281: PUSH2 0x1349 00001284: PUSH1 0x11 00001286: PUSH1 0x00 00001288: DUP5 00001289: PUSH1 0x01 0000128b: PUSH1 0x01 0000128d: PUSH1 0x40 0000128f: SHL 00001290: SUB 00001291: AND 00001292: PUSH1 0x01 00001294: PUSH1 0x01 00001296: PUSH1 0x40 00001298: SHL 00001299: SUB 0000129a: AND 0000129b: DUP2 0000129c: MSTORE 0000129d: PUSH1 0x20 0000129f: ADD 000012a0: SWAP1 000012a1: DUP2 000012a2: MSTORE 000012a3: PUSH1 0x20 000012a5: ADD 000012a6: PUSH1 0x00 000012a8: KECCAK256 000012a9: PUSH1 0x01 000012ab: ADD 000012ac: DUP1 000012ad: SLOAD 000012ae: PUSH1 0x01 000012b0: DUP2 000012b1: PUSH1 0x01 000012b3: AND 000012b4: ISZERO 000012b5: PUSH2 0x0100 000012b8: MUL 000012b9: SUB 000012ba: AND 000012bb: PUSH1 0x02 000012bd: SWAP1 000012be: DIV 000012bf: DUP1 000012c0: PUSH1 0x1f 000012c2: ADD 000012c3: PUSH1 0x20 000012c5: DUP1 000012c6: SWAP2 000012c7: DIV 000012c8: MUL 000012c9: PUSH1 0x20 000012cb: ADD 000012cc: PUSH1 0x40 000012ce: MLOAD 000012cf: SWAP1 000012d0: DUP2 000012d1: ADD 000012d2: PUSH1 0x40 000012d4: MSTORE 000012d5: DUP1 000012d6: SWAP3 000012d7: SWAP2 000012d8: SWAP1 000012d9: DUP2 000012da: DUP2 000012db: MSTORE 000012dc: PUSH1 0x20 000012de: ADD 000012df: DUP3 000012e0: DUP1 000012e1: SLOAD 000012e2: PUSH1 0x01 000012e4: DUP2 000012e5: PUSH1 0x01 000012e7: AND 000012e8: ISZERO 000012e9: PUSH2 0x0100 000012ec: MUL 000012ed: SUB 000012ee: AND 000012ef: PUSH1 0x02 000012f1: SWAP1 000012f2: DIV 000012f3: DUP1 000012f4: ISZERO 000012f5: PUSH2 0x133f 000012f8: JUMPI 000012f9: DUP1 000012fa: PUSH1 0x1f 000012fc: LT 000012fd: PUSH2 0x1314 00001300: JUMPI 00001301: PUSH2 0x0100 00001304: DUP1 00001305: DUP4 00001306: SLOAD 00001307: DIV 00001308: MUL 00001309: DUP4 0000130a: MSTORE 0000130b: SWAP2 0000130c: PUSH1 0x20 0000130e: ADD 0000130f: SWAP2 00001310: PUSH2 0x133f 00001313: JUMP 00001314: JUMPDEST 00001315: DUP3 00001316: ADD 00001317: SWAP2 00001318: SWAP1 00001319: PUSH1 0x00 0000131b: MSTORE 0000131c: PUSH1 0x20 0000131e: PUSH1 0x00 00001320: KECCAK256 00001321: SWAP1 00001322: JUMPDEST 00001323: DUP2 00001324: SLOAD 00001325: DUP2 00001326: MSTORE 00001327: SWAP1 00001328: PUSH1 0x01 0000132a: ADD 0000132b: SWAP1 0000132c: PUSH1 0x20 0000132e: ADD 0000132f: DUP1 00001330: DUP4 00001331: GT 00001332: PUSH2 0x1322 00001335: JUMPI 00001336: DUP3 00001337: SWAP1 00001338: SUB 00001339: PUSH1 0x1f 0000133b: AND 0000133c: DUP3 0000133d: ADD 0000133e: SWAP2 0000133f: JUMPDEST 00001340: POP 00001341: POP 00001342: POP 00001343: POP 00001344: POP 00001345: PUSH2 0x35b4 00001348: JUMP 00001349: JUMPDEST 0000134a: SWAP1 0000134b: POP 0000134c: PUSH1 0x00 0000134e: PUSH2 0x135f 00001351: DUP3 00001352: PUSH1 0x60 00001354: ADD 00001355: MLOAD 00001356: DUP4 00001357: PUSH1 0x20 00001359: ADD 0000135a: MLOAD 0000135b: PUSH2 0x345e 0000135e: JUMP 0000135f: JUMPDEST 00001360: PUSH1 0x40 00001362: SWAP3 00001363: DUP4 00001364: ADD 00001365: MLOAD 00001366: PUSH1 0x01 00001368: PUSH1 0x01 0000136a: PUSH1 0x50 0000136c: SHL 0000136d: SUB 0000136e: NOT 0000136f: SWAP2 00001370: SWAP1 00001371: SWAP2 00001372: AND 00001373: PUSH1 0x00 00001375: SWAP1 00001376: DUP2 00001377: MSTORE 00001378: PUSH1 0x09 0000137a: PUSH1 0x20 0000137c: MSTORE 0000137d: SWAP3 0000137e: SWAP1 0000137f: SWAP3 00001380: KECCAK256 00001381: DUP1 00001382: SLOAD 00001383: PUSH1 0x01 00001385: PUSH1 0x01 00001387: PUSH1 0x80 00001389: SHL 0000138a: SUB 0000138b: NOT 0000138c: DUP2 0000138d: AND 0000138e: PUSH1 0x01 00001390: PUSH1 0x01 00001392: PUSH1 0x80 00001394: SHL 00001395: SUB 00001396: SWAP2 00001397: DUP3 00001398: AND 00001399: SWAP1 0000139a: SWAP5 0000139b: ADD 0000139c: AND 0000139d: SWAP3 0000139e: SWAP1 0000139f: SWAP3 000013a0: OR 000013a1: SWAP1 000013a2: SWAP2 000013a3: SSTORE 000013a4: POP 000013a5: JUMPDEST 000013a6: PUSH1 0x01 000013a8: PUSH1 0x01 000013aa: PUSH1 0x40 000013ac: SHL 000013ad: SUB 000013ae: DUP2 000013af: AND 000013b0: PUSH1 0x00 000013b2: SWAP1 000013b3: DUP2 000013b4: MSTORE 000013b5: PUSH1 0x11 000013b7: PUSH1 0x20 000013b9: MSTORE 000013ba: PUSH1 0x40 000013bc: DUP2 000013bd: KECCAK256 000013be: DUP1 000013bf: SLOAD 000013c0: PUSH1 0xff 000013c2: NOT 000013c3: AND 000013c4: DUP2 000013c5: SSTORE 000013c6: SWAP1 000013c7: PUSH2 0x13d3 000013ca: PUSH1 0x01 000013cc: DUP4 000013cd: ADD 000013ce: DUP3 000013cf: PUSH2 0x4022 000013d2: JUMP 000013d3: JUMPDEST 000013d4: POP 000013d5: PUSH1 0x00 000013d7: PUSH1 0x02 000013d9: SWAP2 000013da: SWAP1 000013db: SWAP2 000013dc: ADD 000013dd: SSTORE 000013de: PUSH1 0x01 000013e0: ADD 000013e1: PUSH2 0x122e 000013e4: JUMP 000013e5: JUMPDEST 000013e6: POP 000013e7: PUSH1 0x12 000013e9: DUP1 000013ea: SLOAD 000013eb: PUSH8 0xffffffffffffffff 000013f4: PUSH1 0x40 000013f6: SHL 000013f7: NOT 000013f8: PUSH8 0xffffffffffffffff 00001401: NOT 00001402: DUP3 00001403: AND 00001404: PUSH1 0x01 00001406: PUSH1 0x01 00001408: PUSH1 0x40 0000140a: SHL 0000140b: SUB 0000140c: SWAP3 0000140d: DUP4 0000140e: AND 0000140f: DUP6 00001410: ADD 00001411: DUP4 00001412: AND 00001413: OR 00001414: SWAP1 00001415: DUP2 00001416: AND 00001417: PUSH1 0x01 00001419: PUSH1 0x40 0000141b: SHL 0000141c: SWAP2 0000141d: DUP3 0000141e: SWAP1 0000141f: DIV 00001420: DUP4 00001421: AND 00001422: SWAP5 00001423: SWAP1 00001424: SWAP5 00001425: SUB 00001426: SWAP1 00001427: SWAP2 00001428: AND 00001429: MUL 0000142a: SWAP2 0000142b: SWAP1 0000142c: SWAP2 0000142d: OR 0000142e: SWAP1 0000142f: SSTORE 00001430: POP 00001431: POP 00001432: PUSH1 0x01 00001434: PUSH1 0x00 00001436: DUP1 00001437: MLOAD 00001438: PUSH1 0x20 0000143a: PUSH2 0x4172 0000143d: DUP4 0000143e: CODECOPY 0000143f: DUP2 00001440: MLOAD 00001441: SWAP2 00001442: MSTORE 00001443: SSTORE 00001444: JUMP 00001445: JUMPDEST 00001446: PUSH1 0x07 00001448: SLOAD 00001449: PUSH1 0x40 0000144b: DUP1 0000144c: MLOAD 0000144d: PUSH4 0x3d7e13b5 00001452: PUSH1 0xe2 00001454: SHL 00001455: DUP2 00001456: MSTORE 00001457: CALLER 00001458: PUSH1 0x04 0000145a: DUP3 0000145b: ADD 0000145c: MSTORE 0000145d: SWAP1 0000145e: MLOAD 0000145f: PUSH1 0x01 00001461: PUSH1 0x01 00001463: PUSH1 0xa0 00001465: SHL 00001466: SUB 00001467: SWAP1 00001468: SWAP3 00001469: AND 0000146a: SWAP2 0000146b: PUSH4 0xf5f84ed4 00001470: SWAP2 00001471: PUSH1 0x24 00001473: DUP1 00001474: DUP3 00001475: ADD 00001476: SWAP3 00001477: PUSH1 0x00 00001479: SWAP3 0000147a: SWAP1 0000147b: SWAP2 0000147c: SWAP1 0000147d: DUP3 0000147e: SWAP1 0000147f: SUB 00001480: ADD 00001481: DUP2 00001482: DUP7 00001483: DUP1 00001484: EXTCODESIZE 00001485: ISZERO 00001486: DUP1 00001487: ISZERO 00001488: PUSH2 0x1490 0000148b: JUMPI 0000148c: PUSH1 0x00 0000148e: DUP1 0000148f: REVERT 00001490: JUMPDEST 00001491: POP 00001492: GAS 00001493: STATICCALL 00001494: ISZERO 00001495: DUP1 00001496: ISZERO 00001497: PUSH2 0x14a4 0000149a: JUMPI 0000149b: RETURNDATASIZE 0000149c: PUSH1 0x00 0000149e: DUP1 0000149f: RETURNDATACOPY 000014a0: RETURNDATASIZE 000014a1: PUSH1 0x00 000014a3: REVERT 000014a4: JUMPDEST 000014a5: POP 000014a6: POP 000014a7: POP 000014a8: PUSH1 0x16 000014aa: SWAP2 000014ab: SWAP1 000014ac: SWAP2 000014ad: SSTORE 000014ae: POP 000014af: JUMP 000014b0: JUMPDEST 000014b1: PUSH1 0x12 000014b3: SLOAD 000014b4: PUSH1 0x01 000014b6: PUSH1 0x80 000014b8: SHL 000014b9: SWAP1 000014ba: DIV 000014bb: PUSH1 0x01 000014bd: PUSH1 0x01 000014bf: PUSH1 0x40 000014c1: SHL 000014c2: SUB 000014c3: AND 000014c4: DUP2 000014c5: JUMP 000014c6: JUMPDEST 000014c7: JUMP 000014c8: JUMPDEST 000014c9: PUSH1 0x0b 000014cb: SLOAD 000014cc: PUSH1 0x01 000014ce: PUSH1 0x20 000014d0: SHL 000014d1: SWAP1 000014d2: DIV 000014d3: PUSH4 0xffffffff 000014d8: AND 000014d9: DUP2 000014da: JUMP 000014db: JUMPDEST 000014dc: PUSH1 0x09 000014de: PUSH1 0x20 000014e0: MSTORE 000014e1: PUSH1 0x00 000014e3: SWAP1 000014e4: DUP2 000014e5: MSTORE 000014e6: PUSH1 0x40 000014e8: SWAP1 000014e9: KECCAK256 000014ea: SLOAD 000014eb: PUSH1 0x01 000014ed: PUSH1 0x01 000014ef: PUSH1 0x80 000014f1: SHL 000014f2: SUB 000014f3: DUP2 000014f4: AND 000014f5: SWAP1 000014f6: PUSH1 0x01 000014f8: PUSH1 0x80 000014fa: SHL 000014fb: SWAP1 000014fc: DIV 000014fd: PUSH1 0xff 000014ff: AND 00001500: DUP3 00001501: JUMP 00001502: JUMPDEST 00001503: PUSH1 0x07 00001505: SLOAD 00001506: PUSH1 0x01 00001508: PUSH1 0x01 0000150a: PUSH1 0xa0 0000150c: SHL 0000150d: SUB 0000150e: AND 0000150f: ISZERO 00001510: PUSH2 0x1548 00001513: JUMPI 00001514: PUSH1 0x40 00001516: DUP1 00001517: MLOAD 00001518: PUSH3 0x461bcd 0000151c: PUSH1 0xe5 0000151e: SHL 0000151f: DUP2 00001520: MSTORE 00001521: PUSH1 0x20 00001523: PUSH1 0x04 00001525: DUP3 00001526: ADD 00001527: MSTORE 00001528: PUSH1 0x05 0000152a: PUSH1 0x24 0000152c: DUP3 0000152d: ADD 0000152e: MSTORE 0000152f: PUSH5 0x0696e69743 00001535: PUSH1 0xdc 00001537: SHL 00001538: PUSH1 0x44 0000153a: DUP3 0000153b: ADD 0000153c: MSTORE 0000153d: SWAP1 0000153e: MLOAD 0000153f: SWAP1 00001540: DUP2 00001541: SWAP1 00001542: SUB 00001543: PUSH1 0x64 00001545: ADD 00001546: SWAP1 00001547: REVERT 00001548: JUMPDEST 00001549: PUSH2 0x1550 0000154c: PUSH2 0x365e 0000154f: JUMP 00001550: JUMPDEST 00001551: PUSH1 0x00 00001553: DUP1 00001554: PUSH1 0x00 00001556: DUP1 00001557: DUP6 00001558: DUP6 00001559: PUSH1 0x80 0000155b: DUP2 0000155c: LT 0000155d: ISZERO 0000155e: PUSH2 0x1566 00001561: JUMPI 00001562: PUSH1 0x00 00001564: DUP1 00001565: REVERT 00001566: JUMPDEST 00001567: POP 00001568: PUSH1 0x05 0000156a: DUP1 0000156b: SLOAD 0000156c: PUSH1 0x01 0000156e: PUSH1 0x01 00001570: PUSH1 0xa0 00001572: SHL 00001573: SUB 00001574: PUSH1 0x20 00001576: DUP5 00001577: ADD 00001578: CALLDATALOAD 00001579: DUP2 0000157a: AND 0000157b: PUSH1 0x01 0000157d: PUSH1 0x01 0000157f: PUSH1 0xa0 00001581: SHL 00001582: SUB 00001583: NOT 00001584: SWAP3 00001585: DUP4 00001586: AND 00001587: OR 00001588: SWAP1 00001589: SWAP3 0000158a: SSTORE 0000158b: PUSH1 0x06 0000158d: DUP1 0000158e: SLOAD 0000158f: PUSH1 0x40 00001591: DUP6 00001592: ADD 00001593: CALLDATALOAD 00001594: DUP5 00001595: AND 00001596: SWAP1 00001597: DUP4 00001598: AND 00001599: OR 0000159a: SWAP1 0000159b: SSTORE 0000159c: PUSH1 0x07 0000159e: DUP1 0000159f: SLOAD 000015a0: DUP5 000015a1: CALLDATALOAD 000015a2: DUP5 000015a3: AND 000015a4: SWAP1 000015a5: DUP4 000015a6: AND 000015a7: OR 000015a8: SWAP1 000015a9: SSTORE 000015aa: PUSH1 0x08 000015ac: DUP1 000015ad: SLOAD 000015ae: PUSH1 0x60 000015b0: SWAP1 000015b1: SWAP5 000015b2: ADD 000015b3: CALLDATALOAD 000015b4: SWAP1 000015b5: SWAP3 000015b6: AND 000015b7: SWAP3 000015b8: AND 000015b9: SWAP2 000015ba: SWAP1 000015bb: SWAP2 000015bc: OR 000015bd: SWAP1 000015be: SSTORE 000015bf: POP 000015c0: POP 000015c1: PUSH1 0x15 000015c3: DUP1 000015c4: SLOAD 000015c5: PUSH1 0x01 000015c7: PUSH1 0x55 000015c9: SHL 000015ca: PUSH1 0x01 000015cc: PUSH1 0x01 000015ce: PUSH1 0x80 000015d0: SHL 000015d1: SUB 000015d2: NOT 000015d3: SWAP1 000015d4: SWAP2 000015d5: AND 000015d6: OR 000015d7: SWAP1 000015d8: SSTORE 000015d9: POP 000015da: POP 000015db: PUSH3 0x055730 000015df: PUSH1 0x16 000015e1: SSTORE 000015e2: POP 000015e3: POP 000015e4: JUMP 000015e5: JUMPDEST 000015e6: PUSH1 0x0c 000015e8: PUSH1 0x20 000015ea: MSTORE 000015eb: PUSH1 0x00 000015ed: SWAP1 000015ee: DUP2 000015ef: MSTORE 000015f0: PUSH1 0x40 000015f2: SWAP1 000015f3: KECCAK256 000015f4: DUP1 000015f5: SLOAD 000015f6: PUSH1 0x01 000015f8: DUP3 000015f9: ADD 000015fa: SLOAD 000015fb: PUSH1 0x02 000015fd: DUP4 000015fe: ADD 000015ff: SLOAD 00001600: PUSH1 0x03 00001602: SWAP1 00001603: SWAP4 00001604: ADD 00001605: SLOAD 00001606: PUSH4 0xffffffff 0000160b: DUP1 0000160c: DUP5 0000160d: AND 0000160e: SWAP5 0000160f: PUSH1 0x01 00001611: PUSH1 0x01 00001613: PUSH1 0x40 00001615: SHL 00001616: SUB 00001617: PUSH1 0x01 00001619: PUSH1 0x20 0000161b: SHL 0000161c: DUP7 0000161d: DIV 0000161e: AND 0000161f: SWAP5 00001620: PUSH1 0x01 00001622: PUSH1 0x60 00001624: SHL 00001625: SWAP1 00001626: DIV 00001627: SWAP1 00001628: SWAP2 00001629: AND 0000162a: SWAP3 0000162b: SWAP2 0000162c: DUP7 0000162d: JUMP 0000162e: JUMPDEST 0000162f: PUSH1 0x12 00001631: SLOAD 00001632: PUSH1 0x01 00001634: PUSH1 0x01 00001636: PUSH1 0x40 00001638: SHL 00001639: SUB 0000163a: AND 0000163b: DUP2 0000163c: JUMP 0000163d: JUMPDEST 0000163e: PUSH1 0x00 00001640: DUP1 00001641: MLOAD 00001642: PUSH1 0x20 00001644: PUSH2 0x4172 00001647: DUP4 00001648: CODECOPY 00001649: DUP2 0000164a: MLOAD 0000164b: SWAP2 0000164c: MSTORE 0000164d: SLOAD 0000164e: DUP1 0000164f: PUSH2 0x168d 00001652: JUMPI 00001653: PUSH1 0x40 00001655: DUP1 00001656: MLOAD 00001657: PUSH3 0x461bcd 0000165b: PUSH1 0xe5 0000165d: SHL 0000165e: DUP2 0000165f: MSTORE 00001660: PUSH1 0x20 00001662: PUSH1 0x04 00001664: DUP3 00001665: ADD 00001666: MSTORE 00001667: PUSH1 0x1f 00001669: PUSH1 0x24 0000166b: DUP3 0000166c: ADD 0000166d: MSTORE 0000166e: PUSH1 0x00 00001670: DUP1 00001671: MLOAD 00001672: PUSH1 0x20 00001674: PUSH2 0x412c 00001677: DUP4 00001678: CODECOPY 00001679: DUP2 0000167a: MLOAD 0000167b: SWAP2 0000167c: MSTORE 0000167d: PUSH1 0x44 0000167f: DUP3 00001680: ADD 00001681: MSTORE 00001682: SWAP1 00001683: MLOAD 00001684: SWAP1 00001685: DUP2 00001686: SWAP1 00001687: SUB 00001688: PUSH1 0x64 0000168a: ADD 0000168b: SWAP1 0000168c: REVERT 0000168d: JUMPDEST 0000168e: PUSH1 0x00 00001690: PUSH1 0x00 00001692: DUP1 00001693: MLOAD 00001694: PUSH1 0x20 00001696: PUSH2 0x4172 00001699: DUP4 0000169a: CODECOPY 0000169b: DUP2 0000169c: MLOAD 0000169d: SWAP2 0000169e: MSTORE 0000169f: SSTORE 000016a0: PUSH1 0x00 000016a2: PUSH2 0x16bd 000016a5: DUP4 000016a6: PUSH1 0x0b 000016a8: PUSH1 0x04 000016aa: SWAP1 000016ab: SLOAD 000016ac: SWAP1 000016ad: PUSH2 0x0100 000016b0: EXP 000016b1: SWAP1 000016b2: DIV 000016b3: PUSH4 0xffffffff 000016b8: AND 000016b9: PUSH2 0x3672 000016bc: JUMP 000016bd: JUMPDEST 000016be: PUSH1 0x0b 000016c0: DUP1 000016c1: SLOAD 000016c2: PUSH1 0x01 000016c4: PUSH1 0x20 000016c6: SHL 000016c7: DUP1 000016c8: DUP3 000016c9: DIV 000016ca: PUSH4 0xffffffff 000016cf: SWAP1 000016d0: DUP2 000016d1: AND 000016d2: DUP6 000016d3: SWAP1 000016d4: SUB 000016d5: DUP2 000016d6: AND 000016d7: SWAP1 000016d8: SWAP2 000016d9: MUL 000016da: PUSH8 0xffffffff00000000 000016e3: NOT 000016e4: DUP4 000016e5: AND 000016e6: OR 000016e7: DUP1 000016e8: DUP3 000016e9: AND 000016ea: DUP6 000016eb: ADD 000016ec: DUP3 000016ed: AND 000016ee: PUSH4 0xffffffff 000016f3: NOT 000016f4: SWAP1 000016f5: SWAP2 000016f6: AND 000016f7: OR 000016f8: SWAP1 000016f9: SWAP3 000016fa: SSTORE 000016fb: SWAP2 000016fc: SWAP3 000016fd: POP 000016fe: AND 000016ff: DUP1 00001700: JUMPDEST 00001701: DUP3 00001702: DUP3 00001703: ADD 00001704: PUSH4 0xffffffff 00001709: AND 0000170a: DUP2 0000170b: PUSH4 0xffffffff 00001710: AND 00001711: LT 00001712: ISZERO 00001713: PUSH2 0x1a29 00001716: JUMPI 00001717: PUSH4 0xffffffff 0000171c: DUP2 0000171d: AND 0000171e: PUSH1 0x00 00001720: SWAP1 00001721: DUP2 00001722: MSTORE 00001723: PUSH1 0x0a 00001725: PUSH1 0x20 00001727: MSTORE 00001728: PUSH1 0x40 0000172a: DUP2 0000172b: KECCAK256 0000172c: DUP1 0000172d: SLOAD 0000172e: PUSH1 0x01 00001730: PUSH1 0x01 00001732: PUSH1 0xb0 00001734: SHL 00001735: SUB 00001736: NOT 00001737: DUP2 00001738: AND 00001739: SWAP1 0000173a: SWAP2 0000173b: SSTORE 0000173c: PUSH2 0xffff 0000173f: PUSH1 0x01 00001741: PUSH1 0xa0 00001743: SHL 00001744: DUP3 00001745: DIV 00001746: AND 00001747: SWAP2 00001748: PUSH1 0x01 0000174a: PUSH1 0x01 0000174c: PUSH1 0xa0 0000174e: SHL 0000174f: SUB 00001750: SWAP1 00001751: SWAP2 00001752: AND 00001753: SWAP1 00001754: PUSH2 0x175d 00001757: DUP3 00001758: DUP5 00001759: PUSH2 0x345e 0000175c: JUMP 0000175d: JUMPDEST 0000175e: PUSH1 0x01 00001760: PUSH1 0x01 00001762: PUSH1 0x50 00001764: SHL 00001765: SUB 00001766: NOT 00001767: DUP2 00001768: AND 00001769: PUSH1 0x00 0000176b: SWAP1 0000176c: DUP2 0000176d: MSTORE 0000176e: PUSH1 0x09 00001770: PUSH1 0x20 00001772: MSTORE 00001773: PUSH1 0x40 00001775: SWAP1 00001776: KECCAK256 00001777: SLOAD 00001778: SWAP1 00001779: SWAP2 0000177a: POP 0000177b: PUSH1 0x01 0000177d: PUSH1 0x01 0000177f: PUSH1 0x80 00001781: SHL 00001782: SUB 00001783: AND 00001784: DUP1 00001785: ISZERO 00001786: PUSH2 0x1a1a 00001789: JUMPI 0000178a: PUSH1 0x01 0000178c: PUSH1 0x01 0000178e: PUSH1 0x50 00001790: SHL 00001791: SUB 00001792: NOT 00001793: DUP3 00001794: AND 00001795: PUSH1 0x00 00001797: SWAP1 00001798: DUP2 00001799: MSTORE 0000179a: PUSH1 0x09 0000179c: PUSH1 0x20 0000179e: MSTORE 0000179f: PUSH1 0x40 000017a1: DUP2 000017a2: KECCAK256 000017a3: DUP1 000017a4: SLOAD 000017a5: PUSH1 0x01 000017a7: PUSH1 0x01 000017a9: PUSH1 0x80 000017ab: SHL 000017ac: SUB 000017ad: DUP1 000017ae: DUP3 000017af: AND 000017b0: DUP6 000017b1: SWAP1 000017b2: SUB 000017b3: AND 000017b4: PUSH1 0x01 000017b6: PUSH1 0x01 000017b8: PUSH1 0x80 000017ba: SHL 000017bb: SUB 000017bc: NOT 000017bd: SWAP1 000017be: SWAP2 000017bf: AND 000017c0: OR 000017c1: SWAP1 000017c2: SSTORE 000017c3: PUSH2 0xffff 000017c6: DUP6 000017c7: AND 000017c8: PUSH2 0x17e7 000017cb: JUMPI 000017cc: DUP4 000017cd: PUSH2 0x17df 000017d0: DUP2 000017d1: PUSH1 0x01 000017d3: PUSH1 0x01 000017d5: PUSH1 0x80 000017d7: SHL 000017d8: SUB 000017d9: DUP6 000017da: AND 000017db: PUSH2 0x368d 000017de: JUMP 000017df: JUMPDEST 000017e0: SWAP2 000017e1: POP 000017e2: POP 000017e3: PUSH2 0x19da 000017e6: JUMP 000017e7: JUMPDEST 000017e8: PUSH1 0x00 000017ea: PUSH2 0x4000 000017ed: PUSH2 0xffff 000017f0: DUP8 000017f1: AND 000017f2: LT 000017f3: ISZERO 000017f4: PUSH2 0x1879 000017f7: JUMPI 000017f8: PUSH1 0x07 000017fa: SLOAD 000017fb: PUSH1 0x40 000017fd: DUP1 000017fe: MLOAD 000017ff: PUSH4 0x10603dad 00001804: PUSH1 0xe0 00001806: SHL 00001807: DUP2 00001808: MSTORE 00001809: PUSH2 0xffff 0000180c: DUP10 0000180d: AND 0000180e: PUSH1 0x04 00001810: DUP3 00001811: ADD 00001812: MSTORE 00001813: SWAP1 00001814: MLOAD 00001815: PUSH1 0x01 00001817: PUSH1 0x01 00001819: PUSH1 0xa0 0000181b: SHL 0000181c: SUB 0000181d: SWAP1 0000181e: SWAP3 0000181f: AND 00001820: SWAP2 00001821: PUSH4 0x10603dad 00001826: SWAP2 00001827: PUSH1 0x24 00001829: DUP1 0000182a: DUP3 0000182b: ADD 0000182c: SWAP3 0000182d: PUSH1 0x20 0000182f: SWAP3 00001830: SWAP1 00001831: SWAP2 00001832: SWAP1 00001833: DUP3 00001834: SWAP1 00001835: SUB 00001836: ADD 00001837: DUP2 00001838: DUP7 00001839: DUP1 0000183a: EXTCODESIZE 0000183b: ISZERO 0000183c: DUP1 0000183d: ISZERO 0000183e: PUSH2 0x1846 00001841: JUMPI 00001842: PUSH1 0x00 00001844: DUP1 00001845: REVERT 00001846: JUMPDEST 00001847: POP 00001848: GAS 00001849: STATICCALL 0000184a: ISZERO 0000184b: DUP1 0000184c: ISZERO 0000184d: PUSH2 0x185a 00001850: JUMPI 00001851: RETURNDATASIZE 00001852: PUSH1 0x00 00001854: DUP1 00001855: RETURNDATACOPY 00001856: RETURNDATASIZE 00001857: PUSH1 0x00 00001859: REVERT 0000185a: JUMPDEST 0000185b: POP 0000185c: POP 0000185d: POP 0000185e: POP 0000185f: PUSH1 0x40 00001861: MLOAD 00001862: RETURNDATASIZE 00001863: PUSH1 0x20 00001865: DUP2 00001866: LT 00001867: ISZERO 00001868: PUSH2 0x1870 0000186b: JUMPI 0000186c: PUSH1 0x00 0000186e: DUP1 0000186f: REVERT 00001870: JUMPDEST 00001871: POP 00001872: MLOAD 00001873: SWAP1 00001874: POP 00001875: PUSH2 0x1898 00001878: JUMP 00001879: JUMPDEST 0000187a: POP 0000187b: PUSH2 0xffff 0000187e: DUP6 0000187f: AND 00001880: PUSH1 0x00 00001882: SWAP1 00001883: DUP2 00001884: MSTORE 00001885: PUSH1 0x01 00001887: PUSH1 0x20 00001889: MSTORE 0000188a: PUSH1 0x40 0000188c: SWAP1 0000188d: KECCAK256 0000188e: SLOAD 0000188f: PUSH1 0x01 00001891: PUSH1 0x01 00001893: PUSH1 0xa0 00001895: SHL 00001896: SUB 00001897: AND 00001898: JUMPDEST 00001899: PUSH1 0x01 0000189b: PUSH1 0x01 0000189d: PUSH1 0xa0 0000189f: SHL 000018a0: SUB 000018a1: DUP2 000018a2: AND 000018a3: PUSH2 0x18dc 000018a6: JUMPI 000018a7: PUSH1 0x40 000018a9: DUP1 000018aa: MLOAD 000018ab: PUSH3 0x461bcd 000018af: PUSH1 0xe5 000018b1: SHL 000018b2: DUP2 000018b3: MSTORE 000018b4: PUSH1 0x20 000018b6: PUSH1 0x04 000018b8: DUP1 000018b9: DUP4 000018ba: ADD 000018bb: SWAP2 000018bc: SWAP1 000018bd: SWAP2 000018be: MSTORE 000018bf: PUSH1 0x24 000018c1: DUP3 000018c2: ADD 000018c3: MSTORE 000018c4: PUSH4 0x06377743 000018c9: PUSH1 0xe4 000018cb: SHL 000018cc: PUSH1 0x44 000018ce: DUP3 000018cf: ADD 000018d0: MSTORE 000018d1: SWAP1 000018d2: MLOAD 000018d3: SWAP1 000018d4: DUP2 000018d5: SWAP1 000018d6: SUB 000018d7: PUSH1 0x64 000018d9: ADD 000018da: SWAP1 000018db: REVERT 000018dc: JUMPDEST 000018dd: PUSH1 0x16 000018df: SLOAD 000018e0: PUSH1 0x40 000018e2: DUP1 000018e3: MLOAD 000018e4: PUSH1 0x01 000018e6: PUSH1 0x01 000018e8: PUSH1 0xa0 000018ea: SHL 000018eb: SUB 000018ec: DUP5 000018ed: DUP2 000018ee: AND 000018ef: PUSH1 0x24 000018f1: DUP4 000018f2: ADD 000018f3: MSTORE 000018f4: DUP9 000018f5: AND 000018f6: PUSH1 0x44 000018f8: DUP3 000018f9: ADD 000018fa: MSTORE 000018fb: PUSH1 0x01 000018fd: PUSH1 0x01 000018ff: PUSH1 0x80 00001901: SHL 00001902: SUB 00001903: DUP7 00001904: AND 00001905: PUSH1 0x64 00001907: DUP3 00001908: ADD 00001909: DUP2 0000190a: SWAP1 0000190b: MSTORE 0000190c: PUSH1 0x84 0000190e: DUP1 0000190f: DUP4 00001910: ADD 00001911: SWAP2 00001912: SWAP1 00001913: SWAP2 00001914: MSTORE 00001915: DUP3 00001916: MLOAD 00001917: DUP1 00001918: DUP4 00001919: SUB 0000191a: SWAP1 0000191b: SWAP2 0000191c: ADD 0000191d: DUP2 0000191e: MSTORE 0000191f: PUSH1 0xa4 00001921: SWAP1 00001922: SWAP2 00001923: ADD 00001924: DUP3 00001925: MSTORE 00001926: PUSH1 0x20 00001928: DUP2 00001929: ADD 0000192a: DUP1 0000192b: MLOAD 0000192c: PUSH1 0x01 0000192e: PUSH1 0x01 00001930: PUSH1 0xe0 00001932: SHL 00001933: SUB 00001934: AND 00001935: PUSH4 0x9a83400d 0000193a: PUSH1 0xe0 0000193c: SHL 0000193d: OR 0000193e: DUP2 0000193f: MSTORE 00001940: SWAP2 00001941: MLOAD 00001942: DUP2 00001943: MLOAD 00001944: ADDRESS 00001945: SWAP5 00001946: SWAP4 00001947: DUP3 00001948: SWAP2 00001949: DUP1 0000194a: DUP4 0000194b: DUP4 0000194c: JUMPDEST 0000194d: PUSH1 0x20 0000194f: DUP4 00001950: LT 00001951: PUSH2 0x196b 00001954: JUMPI 00001955: DUP1 00001956: MLOAD 00001957: DUP3 00001958: MSTORE 00001959: PUSH1 0x1f 0000195b: NOT 0000195c: SWAP1 0000195d: SWAP3 0000195e: ADD 0000195f: SWAP2 00001960: PUSH1 0x20 00001962: SWAP2 00001963: DUP3 00001964: ADD 00001965: SWAP2 00001966: ADD 00001967: PUSH2 0x194c 0000196a: JUMP 0000196b: JUMPDEST 0000196c: PUSH1 0x01 0000196e: DUP4 0000196f: PUSH1 0x20 00001971: SUB 00001972: PUSH2 0x0100 00001975: EXP 00001976: SUB 00001977: DUP1 00001978: NOT 00001979: DUP3 0000197a: MLOAD 0000197b: AND 0000197c: DUP2 0000197d: DUP5 0000197e: MLOAD 0000197f: AND 00001980: DUP1 00001981: DUP3 00001982: OR 00001983: DUP6 00001984: MSTORE 00001985: POP 00001986: POP 00001987: POP 00001988: POP 00001989: POP 0000198a: POP 0000198b: SWAP1 0000198c: POP 0000198d: ADD 0000198e: SWAP2 0000198f: POP 00001990: POP 00001991: PUSH1 0x00 00001993: PUSH1 0x40 00001995: MLOAD 00001996: DUP1 00001997: DUP4 00001998: SUB 00001999: DUP2 0000199a: PUSH1 0x00 0000199c: DUP8 0000199d: DUP8 0000199e: CALL 0000199f: SWAP3 000019a0: POP 000019a1: POP 000019a2: POP 000019a3: RETURNDATASIZE 000019a4: DUP1 000019a5: PUSH1 0x00 000019a7: DUP2 000019a8: EQ 000019a9: PUSH2 0x19ce 000019ac: JUMPI 000019ad: PUSH1 0x40 000019af: MLOAD 000019b0: SWAP2 000019b1: POP 000019b2: PUSH1 0x1f 000019b4: NOT 000019b5: PUSH1 0x3f 000019b7: RETURNDATASIZE 000019b8: ADD 000019b9: AND 000019ba: DUP3 000019bb: ADD 000019bc: PUSH1 0x40 000019be: MSTORE 000019bf: RETURNDATASIZE 000019c0: DUP3 000019c1: MSTORE 000019c2: RETURNDATASIZE 000019c3: PUSH1 0x00 000019c5: PUSH1 0x20 000019c7: DUP5 000019c8: ADD 000019c9: RETURNDATACOPY 000019ca: PUSH2 0x19d3 000019cd: JUMP 000019ce: JUMPDEST 000019cf: PUSH1 0x60 000019d1: SWAP2 000019d2: POP 000019d3: JUMPDEST 000019d4: POP 000019d5: SWAP1 000019d6: SWAP3 000019d7: POP 000019d8: POP 000019d9: POP 000019da: JUMPDEST 000019db: DUP1 000019dc: PUSH2 0x1a18 000019df: JUMPI 000019e0: PUSH1 0x01 000019e2: PUSH1 0x01 000019e4: PUSH1 0x50 000019e6: SHL 000019e7: SUB 000019e8: NOT 000019e9: DUP4 000019ea: AND 000019eb: PUSH1 0x00 000019ed: SWAP1 000019ee: DUP2 000019ef: MSTORE 000019f0: PUSH1 0x09 000019f2: PUSH1 0x20 000019f4: MSTORE 000019f5: PUSH1 0x40 000019f7: SWAP1 000019f8: KECCAK256 000019f9: DUP1 000019fa: SLOAD 000019fb: PUSH1 0x01 000019fd: PUSH1 0x01 000019ff: PUSH1 0x80 00001a01: SHL 00001a02: SUB 00001a03: DUP1 00001a04: DUP3 00001a05: AND 00001a06: DUP6 00001a07: ADD 00001a08: AND 00001a09: PUSH1 0x01 00001a0b: PUSH1 0x01 00001a0d: PUSH1 0x80 00001a0f: SHL 00001a10: SUB 00001a11: NOT 00001a12: SWAP1 00001a13: SWAP2 00001a14: AND 00001a15: OR 00001a16: SWAP1 00001a17: SSTORE 00001a18: JUMPDEST 00001a19: POP 00001a1a: JUMPDEST 00001a1b: POP 00001a1c: POP 00001a1d: POP 00001a1e: POP 00001a1f: DUP1 00001a20: PUSH1 0x01 00001a22: ADD 00001a23: SWAP1 00001a24: POP 00001a25: PUSH2 0x1700 00001a28: JUMP 00001a29: JUMPDEST 00001a2a: POP 00001a2b: PUSH4 0xffffffff 00001a30: DUP3 00001a31: AND 00001a32: ISZERO 00001a33: PUSH2 0x1a7b 00001a36: JUMPI 00001a37: PUSH1 0x40 00001a39: DUP1 00001a3a: MLOAD 00001a3b: PUSH4 0xffffffff 00001a40: DUP1 00001a41: DUP5 00001a42: AND 00001a43: DUP3 00001a44: MSTORE 00001a45: DUP5 00001a46: DUP5 00001a47: ADD 00001a48: AND 00001a49: PUSH1 0x20 00001a4b: DUP3 00001a4c: ADD 00001a4d: MSTORE 00001a4e: DUP2 00001a4f: MLOAD 00001a50: PUSH32 0x9b5478c99b5ca41beec4f6f6084126d6f9e26382d017b4bb67c37c9e8453a313 00001a71: SWAP3 00001a72: SWAP2 00001a73: DUP2 00001a74: SWAP1 00001a75: SUB 00001a76: SWAP1 00001a77: SWAP2 00001a78: ADD 00001a79: SWAP1 00001a7a: LOG1 00001a7b: JUMPDEST 00001a7c: POP 00001a7d: POP 00001a7e: PUSH1 0x01 00001a80: PUSH1 0x00 00001a82: DUP1 00001a83: MLOAD 00001a84: PUSH1 0x20 00001a86: PUSH2 0x4172 00001a89: DUP4 00001a8a: CODECOPY 00001a8b: DUP2 00001a8c: MLOAD 00001a8d: SWAP2 00001a8e: MSTORE 00001a8f: SSTORE 00001a90: POP 00001a91: POP 00001a92: JUMP 00001a93: JUMPDEST 00001a94: PUSH1 0x07 00001a96: SLOAD 00001a97: PUSH1 0x40 00001a99: DUP1 00001a9a: MLOAD 00001a9b: PUSH4 0x3d7e13b5 00001aa0: PUSH1 0xe2 00001aa2: SHL 00001aa3: DUP2 00001aa4: MSTORE 00001aa5: CALLER 00001aa6: PUSH1 0x04 00001aa8: DUP3 00001aa9: ADD 00001aaa: MSTORE 00001aab: SWAP1 00001aac: MLOAD 00001aad: PUSH1 0x01 00001aaf: PUSH1 0x01 00001ab1: PUSH1 0xa0 00001ab3: SHL 00001ab4: SUB 00001ab5: SWAP1 00001ab6: SWAP3 00001ab7: AND 00001ab8: SWAP2 00001ab9: PUSH4 0xf5f84ed4 00001abe: SWAP2 00001abf: PUSH1 0x24 00001ac1: DUP1 00001ac2: DUP3 00001ac3: ADD 00001ac4: SWAP3 00001ac5: PUSH1 0x00 00001ac7: SWAP3 00001ac8: SWAP1 00001ac9: SWAP2 00001aca: SWAP1 00001acb: DUP3 00001acc: SWAP1 00001acd: SUB 00001ace: ADD 00001acf: DUP2 00001ad0: DUP7 00001ad1: DUP1 00001ad2: EXTCODESIZE 00001ad3: ISZERO 00001ad4: DUP1 00001ad5: ISZERO 00001ad6: PUSH2 0x1ade 00001ad9: JUMPI 00001ada: PUSH1 0x00 00001adc: DUP1 00001add: REVERT 00001ade: JUMPDEST 00001adf: POP 00001ae0: GAS 00001ae1: STATICCALL 00001ae2: ISZERO 00001ae3: DUP1 00001ae4: ISZERO 00001ae5: PUSH2 0x1af2 00001ae8: JUMPI 00001ae9: RETURNDATASIZE 00001aea: PUSH1 0x00 00001aec: DUP1 00001aed: RETURNDATACOPY 00001aee: RETURNDATASIZE 00001aef: PUSH1 0x00 00001af1: REVERT 00001af2: JUMPDEST 00001af3: POP 00001af4: POP 00001af5: PUSH1 0x15 00001af7: DUP1 00001af8: SLOAD 00001af9: PUSH1 0x01 00001afb: PUSH1 0x01 00001afd: PUSH1 0x80 00001aff: SHL 00001b00: SUB 00001b01: NOT 00001b02: AND 00001b03: PUSH1 0x01 00001b05: PUSH1 0x01 00001b07: PUSH1 0x80 00001b09: SHL 00001b0a: SUB 00001b0b: SWAP5 00001b0c: SWAP1 00001b0d: SWAP5 00001b0e: AND 00001b0f: SWAP4 00001b10: SWAP1 00001b11: SWAP4 00001b12: OR 00001b13: SWAP1 00001b14: SWAP3 00001b15: SSTORE 00001b16: POP 00001b17: POP 00001b18: JUMP 00001b19: JUMPDEST 00001b1a: PUSH1 0x03 00001b1c: DUP1 00001b1d: SLOAD 00001b1e: PUSH1 0xff 00001b20: NOT 00001b21: AND 00001b22: PUSH1 0x01 00001b24: OR 00001b25: SWAP1 00001b26: SSTORE 00001b27: TIMESTAMP 00001b28: PUSH1 0x04 00001b2a: SSTORE 00001b2b: JUMP 00001b2c: JUMPDEST 00001b2d: PUSH1 0x11 00001b2f: PUSH1 0x20 00001b31: SWAP1 00001b32: DUP2 00001b33: MSTORE 00001b34: PUSH1 0x00 00001b36: SWAP2 00001b37: DUP3 00001b38: MSTORE 00001b39: PUSH1 0x40 00001b3b: SWAP2 00001b3c: DUP3 00001b3d: SWAP1 00001b3e: KECCAK256 00001b3f: DUP1 00001b40: SLOAD 00001b41: PUSH1 0x01 00001b43: DUP1 00001b44: DUP4 00001b45: ADD 00001b46: DUP1 00001b47: SLOAD 00001b48: DUP7 00001b49: MLOAD 00001b4a: PUSH1 0x02 00001b4c: PUSH2 0x0100 00001b4f: SWAP5 00001b50: DUP4 00001b51: AND 00001b52: ISZERO 00001b53: SWAP5 00001b54: SWAP1 00001b55: SWAP5 00001b56: MUL 00001b57: PUSH1 0x00 00001b59: NOT 00001b5a: ADD 00001b5b: SWAP1 00001b5c: SWAP2 00001b5d: AND 00001b5e: SWAP3 00001b5f: SWAP1 00001b60: SWAP3 00001b61: DIV 00001b62: PUSH1 0x1f 00001b64: DUP2 00001b65: ADD 00001b66: DUP7 00001b67: SWAP1 00001b68: DIV 00001b69: DUP7 00001b6a: MUL 00001b6b: DUP4 00001b6c: ADD 00001b6d: DUP7 00001b6e: ADD 00001b6f: SWAP1 00001b70: SWAP7 00001b71: MSTORE 00001b72: DUP6 00001b73: DUP3 00001b74: MSTORE 00001b75: PUSH1 0xff 00001b77: SWAP1 00001b78: SWAP3 00001b79: AND 00001b7a: SWAP5 00001b7b: SWAP3 00001b7c: SWAP4 00001b7d: SWAP1 00001b7e: SWAP3 00001b7f: SWAP1 00001b80: DUP4 00001b81: ADD 00001b82: DUP3 00001b83: DUP3 00001b84: DUP1 00001b85: ISZERO 00001b86: PUSH2 0x1bd0 00001b89: JUMPI 00001b8a: DUP1 00001b8b: PUSH1 0x1f 00001b8d: LT 00001b8e: PUSH2 0x1ba5 00001b91: JUMPI 00001b92: PUSH2 0x0100 00001b95: DUP1 00001b96: DUP4 00001b97: SLOAD 00001b98: DIV 00001b99: MUL 00001b9a: DUP4 00001b9b: MSTORE 00001b9c: SWAP2 00001b9d: PUSH1 0x20 00001b9f: ADD 00001ba0: SWAP2 00001ba1: PUSH2 0x1bd0 00001ba4: JUMP 00001ba5: JUMPDEST 00001ba6: DUP3 00001ba7: ADD 00001ba8: SWAP2 00001ba9: SWAP1 00001baa: PUSH1 0x00 00001bac: MSTORE 00001bad: PUSH1 0x20 00001baf: PUSH1 0x00 00001bb1: KECCAK256 00001bb2: SWAP1 00001bb3: JUMPDEST 00001bb4: DUP2 00001bb5: SLOAD 00001bb6: DUP2 00001bb7: MSTORE 00001bb8: SWAP1 00001bb9: PUSH1 0x01 00001bbb: ADD 00001bbc: SWAP1 00001bbd: PUSH1 0x20 00001bbf: ADD 00001bc0: DUP1 00001bc1: DUP4 00001bc2: GT 00001bc3: PUSH2 0x1bb3 00001bc6: JUMPI 00001bc7: DUP3 00001bc8: SWAP1 00001bc9: SUB 00001bca: PUSH1 0x1f 00001bcc: AND 00001bcd: DUP3 00001bce: ADD 00001bcf: SWAP2 00001bd0: JUMPDEST 00001bd1: POP 00001bd2: POP 00001bd3: POP 00001bd4: POP 00001bd5: POP 00001bd6: SWAP1 00001bd7: DUP1 00001bd8: PUSH1 0x02 00001bda: ADD 00001bdb: SLOAD 00001bdc: SWAP1 00001bdd: POP 00001bde: DUP4 00001bdf: JUMP 00001be0: JUMPDEST 00001be1: PUSH1 0x03 00001be3: DUP1 00001be4: SLOAD 00001be5: PUSH1 0xff 00001be7: NOT 00001be8: AND 00001be9: SWAP1 00001bea: SSTORE 00001beb: PUSH1 0x00 00001bed: PUSH1 0x04 00001bef: SSTORE 00001bf0: JUMP 00001bf1: JUMPDEST 00001bf2: PUSH1 0x0f 00001bf4: SLOAD 00001bf5: PUSH1 0xff 00001bf7: AND 00001bf8: ISZERO 00001bf9: SWAP1 00001bfa: JUMP 00001bfb: JUMPDEST 00001bfc: PUSH1 0x16 00001bfe: SLOAD 00001bff: DUP2 00001c00: JUMP 00001c01: JUMPDEST 00001c02: PUSH1 0x10 00001c04: PUSH1 0x20 00001c06: SWAP1 00001c07: DUP2 00001c08: MSTORE 00001c09: PUSH1 0x00 00001c0b: SWAP3 00001c0c: DUP4 00001c0d: MSTORE 00001c0e: PUSH1 0x40 00001c10: DUP1 00001c11: DUP5 00001c12: KECCAK256 00001c13: SWAP1 00001c14: SWAP2 00001c15: MSTORE 00001c16: SWAP1 00001c17: DUP3 00001c18: MSTORE 00001c19: SWAP1 00001c1a: KECCAK256 00001c1b: SLOAD 00001c1c: DUP2 00001c1d: JUMP 00001c1e: JUMPDEST 00001c1f: PUSH2 0x1c26 00001c22: PUSH2 0x315e 00001c25: JUMP 00001c26: JUMPDEST 00001c27: PUSH1 0x07 00001c29: SLOAD 00001c2a: PUSH1 0x40 00001c2c: DUP1 00001c2d: MLOAD 00001c2e: PUSH4 0x0c883eb5 00001c33: PUSH1 0xe4 00001c35: SHL 00001c36: DUP2 00001c37: MSTORE 00001c38: CALLER 00001c39: PUSH1 0x04 00001c3b: DUP3 00001c3c: ADD 00001c3d: MSTORE 00001c3e: SWAP1 00001c3f: MLOAD 00001c40: PUSH1 0x01 00001c42: PUSH1 0x01 00001c44: PUSH1 0xa0 00001c46: SHL 00001c47: SUB 00001c48: SWAP1 00001c49: SWAP3 00001c4a: AND 00001c4b: SWAP2 00001c4c: PUSH4 0xc883eb50 00001c51: SWAP2 00001c52: PUSH1 0x24 00001c54: DUP1 00001c55: DUP3 00001c56: ADD 00001c57: SWAP3 00001c58: PUSH1 0x00 00001c5a: SWAP3 00001c5b: SWAP1 00001c5c: SWAP2 00001c5d: SWAP1 00001c5e: DUP3 00001c5f: SWAP1 00001c60: SUB 00001c61: ADD 00001c62: DUP2 00001c63: DUP7 00001c64: DUP1 00001c65: EXTCODESIZE 00001c66: ISZERO 00001c67: DUP1 00001c68: ISZERO 00001c69: PUSH2 0x1c71 00001c6c: JUMPI 00001c6d: PUSH1 0x00 00001c6f: DUP1 00001c70: REVERT 00001c71: JUMPDEST 00001c72: POP 00001c73: GAS 00001c74: STATICCALL 00001c75: ISZERO 00001c76: DUP1 00001c77: ISZERO 00001c78: PUSH2 0x1c85 00001c7b: JUMPI 00001c7c: RETURNDATASIZE 00001c7d: PUSH1 0x00 00001c7f: DUP1 00001c80: RETURNDATACOPY 00001c81: RETURNDATASIZE 00001c82: PUSH1 0x00 00001c84: REVERT 00001c85: JUMPDEST 00001c86: POP 00001c87: POP 00001c88: PUSH1 0x07 00001c8a: SLOAD 00001c8b: PUSH1 0x40 00001c8d: DUP1 00001c8e: MLOAD 00001c8f: PUSH4 0x75698bb1 00001c94: PUSH1 0xe1 00001c96: SHL 00001c97: DUP2 00001c98: MSTORE 00001c99: PUSH1 0x01 00001c9b: PUSH1 0x01 00001c9d: PUSH1 0xa0 00001c9f: SHL 00001ca0: SUB 00001ca1: DUP7 00001ca2: DUP2 00001ca3: AND 00001ca4: PUSH1 0x04 00001ca6: DUP4 00001ca7: ADD 00001ca8: MSTORE 00001ca9: SWAP2 00001caa: MLOAD 00001cab: PUSH1 0x00 00001cad: SWAP6 00001cae: POP 00001caf: SWAP2 00001cb0: SWAP1 00001cb1: SWAP3 00001cb2: AND 00001cb3: SWAP3 00001cb4: POP 00001cb5: PUSH4 0xead31762 00001cba: SWAP2 00001cbb: PUSH1 0x24 00001cbd: DUP1 00001cbe: DUP3 00001cbf: ADD 00001cc0: SWAP3 00001cc1: PUSH1 0x20 00001cc3: SWAP3 00001cc4: SWAP1 00001cc5: SWAP2 00001cc6: SWAP1 00001cc7: DUP3 00001cc8: SWAP1 00001cc9: SUB 00001cca: ADD 00001ccb: DUP2 00001ccc: DUP7 00001ccd: DUP1 00001cce: EXTCODESIZE 00001ccf: ISZERO 00001cd0: DUP1 00001cd1: ISZERO 00001cd2: PUSH2 0x1cda 00001cd5: JUMPI 00001cd6: PUSH1 0x00 00001cd8: DUP1 00001cd9: REVERT 00001cda: JUMPDEST 00001cdb: POP 00001cdc: GAS 00001cdd: STATICCALL 00001cde: ISZERO 00001cdf: DUP1 00001ce0: ISZERO 00001ce1: PUSH2 0x1cee 00001ce4: JUMPI 00001ce5: RETURNDATASIZE 00001ce6: PUSH1 0x00 00001ce8: DUP1 00001ce9: RETURNDATACOPY 00001cea: RETURNDATASIZE 00001ceb: PUSH1 0x00 00001ced: REVERT 00001cee: JUMPDEST 00001cef: POP 00001cf0: POP 00001cf1: POP 00001cf2: POP 00001cf3: PUSH1 0x40 00001cf5: MLOAD 00001cf6: RETURNDATASIZE 00001cf7: PUSH1 0x20 00001cf9: DUP2 00001cfa: LT 00001cfb: ISZERO 00001cfc: PUSH2 0x1d04 00001cff: JUMPI 00001d00: PUSH1 0x00 00001d02: DUP1 00001d03: REVERT 00001d04: JUMPDEST 00001d05: POP 00001d06: MLOAD 00001d07: PUSH1 0x08 00001d09: SLOAD 00001d0a: PUSH1 0x40 00001d0c: DUP1 00001d0d: MLOAD 00001d0e: PUSH4 0x64e329cb 00001d13: PUSH1 0xe1 00001d15: SHL 00001d16: DUP2 00001d17: MSTORE 00001d18: PUSH1 0x00 00001d1a: PUSH1 0x04 00001d1c: DUP3 00001d1d: ADD 00001d1e: DUP2 00001d1f: SWAP1 00001d20: MSTORE 00001d21: PUSH1 0x01 00001d23: PUSH1 0x01 00001d25: PUSH1 0xa0 00001d27: SHL 00001d28: SUB 00001d29: DUP8 00001d2a: DUP2 00001d2b: AND 00001d2c: PUSH1 0x24 00001d2e: DUP5 00001d2f: ADD 00001d30: MSTORE 00001d31: SWAP3 00001d32: MLOAD 00001d33: SWAP5 00001d34: SWAP6 00001d35: POP 00001d36: SWAP4 00001d37: SWAP2 00001d38: SWAP1 00001d39: SWAP3 00001d3a: AND 00001d3b: SWAP2 00001d3c: PUSH4 0xc9c65396 00001d41: SWAP2 00001d42: PUSH1 0x44 00001d44: DUP1 00001d45: DUP4 00001d46: ADD 00001d47: SWAP3 00001d48: PUSH1 0x20 00001d4a: SWAP3 00001d4b: SWAP2 00001d4c: SWAP1 00001d4d: DUP3 00001d4e: SWAP1 00001d4f: SUB 00001d50: ADD 00001d51: DUP2 00001d52: DUP8 00001d53: DUP8 00001d54: DUP1 00001d55: EXTCODESIZE 00001d56: ISZERO 00001d57: DUP1 00001d58: ISZERO 00001d59: PUSH2 0x1d61 00001d5c: JUMPI 00001d5d: PUSH1 0x00 00001d5f: DUP1 00001d60: REVERT 00001d61: JUMPDEST 00001d62: POP 00001d63: GAS 00001d64: CALL 00001d65: ISZERO 00001d66: DUP1 00001d67: ISZERO 00001d68: PUSH2 0x1d75 00001d6b: JUMPI 00001d6c: RETURNDATASIZE 00001d6d: PUSH1 0x00 00001d6f: DUP1 00001d70: RETURNDATACOPY 00001d71: RETURNDATASIZE 00001d72: PUSH1 0x00 00001d74: REVERT 00001d75: JUMPDEST 00001d76: POP 00001d77: POP 00001d78: POP 00001d79: POP 00001d7a: PUSH1 0x40 00001d7c: MLOAD 00001d7d: RETURNDATASIZE 00001d7e: PUSH1 0x20 00001d80: DUP2 00001d81: LT 00001d82: ISZERO 00001d83: PUSH2 0x1d8b 00001d86: JUMPI 00001d87: PUSH1 0x00 00001d89: DUP1 00001d8a: REVERT 00001d8b: JUMPDEST 00001d8c: POP 00001d8d: MLOAD 00001d8e: SWAP1 00001d8f: POP 00001d90: PUSH1 0x01 00001d92: PUSH1 0x01 00001d94: PUSH1 0xa0 00001d96: SHL 00001d97: SUB 00001d98: DUP2 00001d99: AND 00001d9a: PUSH2 0x1ddc 00001d9d: JUMPI 00001d9e: PUSH1 0x40 00001da0: DUP1 00001da1: MLOAD 00001da2: PUSH3 0x461bcd 00001da6: PUSH1 0xe5 00001da8: SHL 00001da9: DUP2 00001daa: MSTORE 00001dab: PUSH1 0x20 00001dad: PUSH1 0x04 00001daf: DUP3 00001db0: ADD 00001db1: MSTORE 00001db2: PUSH1 0x0f 00001db4: PUSH1 0x24 00001db6: DUP3 00001db7: ADD 00001db8: MSTORE 00001db9: PUSH15 0x1c185a5c881a5cc81a5b9d985b1a59 00001dc9: PUSH1 0x8a 00001dcb: SHL 00001dcc: PUSH1 0x44 00001dce: DUP3 00001dcf: ADD 00001dd0: MSTORE 00001dd1: SWAP1 00001dd2: MLOAD 00001dd3: SWAP1 00001dd4: DUP2 00001dd5: SWAP1 00001dd6: SUB 00001dd7: PUSH1 0x64 00001dd9: ADD 00001dda: SWAP1 00001ddb: REVERT 00001ddc: JUMPDEST 00001ddd: PUSH2 0x1de5 00001de0: DUP2 00001de1: PUSH2 0x36f2 00001de4: JUMP 00001de5: JUMPDEST 00001de6: PUSH2 0x1dfc 00001de9: PUSH1 0x00 00001deb: DUP1 00001dec: DUP5 00001ded: DUP7 00001dee: PUSH2 0x1df6 00001df1: DUP7 00001df2: PUSH2 0x2e36 00001df5: JUMP 00001df6: JUMPDEST 00001df7: DUP7 00001df8: PUSH2 0x3822 00001dfb: JUMP 00001dfc: JUMPDEST 00001dfd: POP 00001dfe: POP 00001dff: POP 00001e00: JUMP 00001e01: JUMPDEST 00001e02: PUSH1 0x15 00001e04: SLOAD 00001e05: PUSH1 0x01 00001e07: PUSH1 0x01 00001e09: PUSH1 0x80 00001e0b: SHL 00001e0c: SUB 00001e0d: AND 00001e0e: DUP2 00001e0f: JUMP 00001e10: JUMPDEST 00001e11: PUSH1 0x03 00001e13: SLOAD 00001e14: PUSH1 0xff 00001e16: AND 00001e17: DUP2 00001e18: JUMP 00001e19: JUMPDEST 00001e1a: PUSH1 0x00 00001e1c: CALLER 00001e1d: ADDRESS 00001e1e: EQ 00001e1f: PUSH2 0x1e57 00001e22: JUMPI 00001e23: PUSH1 0x40 00001e25: DUP1 00001e26: MLOAD 00001e27: PUSH3 0x461bcd 00001e2b: PUSH1 0xe5 00001e2d: SHL 00001e2e: DUP2 00001e2f: MSTORE 00001e30: PUSH1 0x20 00001e32: PUSH1 0x04 00001e34: DUP3 00001e35: ADD 00001e36: MSTORE 00001e37: PUSH1 0x05 00001e39: PUSH1 0x24 00001e3b: DUP3 00001e3c: ADD 00001e3d: MSTORE 00001e3e: PUSH5 0x0777467313 00001e44: PUSH1 0xdc 00001e46: SHL 00001e47: PUSH1 0x44 00001e49: DUP3 00001e4a: ADD 00001e4b: MSTORE 00001e4c: SWAP1 00001e4d: MLOAD 00001e4e: SWAP1 00001e4f: DUP2 00001e50: SWAP1 00001e51: SUB 00001e52: PUSH1 0x64 00001e54: ADD 00001e55: SWAP1 00001e56: REVERT 00001e57: JUMPDEST 00001e58: PUSH1 0x01 00001e5a: PUSH1 0x01 00001e5c: PUSH1 0xa0 00001e5e: SHL 00001e5f: SUB 00001e60: DUP6 00001e61: AND 00001e62: PUSH1 0x00 00001e64: DUP2 00001e65: DUP2 00001e66: MSTORE 00001e67: PUSH1 0x02 00001e69: PUSH1 0x20 00001e6b: SWAP1 00001e6c: DUP2 00001e6d: MSTORE 00001e6e: PUSH1 0x40 00001e70: DUP1 00001e71: DUP4 00001e72: KECCAK256 00001e73: SLOAD 00001e74: DUP2 00001e75: MLOAD 00001e76: PUSH4 0x70a08231 00001e7b: PUSH1 0xe0 00001e7d: SHL 00001e7e: DUP2 00001e7f: MSTORE 00001e80: ADDRESS 00001e81: PUSH1 0x04 00001e83: DUP3 00001e84: ADD 00001e85: MSTORE 00001e86: SWAP2 00001e87: MLOAD 00001e88: PUSH2 0xffff 00001e8b: SWAP1 00001e8c: SWAP2 00001e8d: AND 00001e8e: SWAP5 00001e8f: SWAP3 00001e90: PUSH4 0x70a08231 00001e95: SWAP3 00001e96: PUSH1 0x24 00001e98: DUP1 00001e99: DUP3 00001e9a: ADD 00001e9b: SWAP4 00001e9c: SWAP2 00001e9d: DUP3 00001e9e: SWAP1 00001e9f: SUB 00001ea0: ADD 00001ea1: DUP2 00001ea2: DUP7 00001ea3: DUP1 00001ea4: EXTCODESIZE 00001ea5: ISZERO 00001ea6: DUP1 00001ea7: ISZERO 00001ea8: PUSH2 0x1eb0 00001eab: JUMPI 00001eac: PUSH1 0x00 00001eae: DUP1 00001eaf: REVERT 00001eb0: JUMPDEST 00001eb1: POP 00001eb2: GAS 00001eb3: STATICCALL 00001eb4: ISZERO 00001eb5: DUP1 00001eb6: ISZERO 00001eb7: PUSH2 0x1ec4 00001eba: JUMPI 00001ebb: RETURNDATASIZE 00001ebc: PUSH1 0x00 00001ebe: DUP1 00001ebf: RETURNDATACOPY 00001ec0: RETURNDATASIZE 00001ec1: PUSH1 0x00 00001ec3: REVERT 00001ec4: JUMPDEST 00001ec5: POP 00001ec6: POP 00001ec7: POP 00001ec8: POP 00001ec9: PUSH1 0x40 00001ecb: MLOAD 00001ecc: RETURNDATASIZE 00001ecd: PUSH1 0x20 00001ecf: DUP2 00001ed0: LT 00001ed1: ISZERO 00001ed2: PUSH2 0x1eda 00001ed5: JUMPI 00001ed6: PUSH1 0x00 00001ed8: DUP1 00001ed9: REVERT 00001eda: JUMPDEST 00001edb: POP 00001edc: MLOAD 00001edd: SWAP1 00001ede: POP 00001edf: PUSH2 0xffff 00001ee2: DUP3 00001ee3: AND 00001ee4: ISZERO 00001ee5: PUSH2 0x1f74 00001ee8: JUMPI 00001ee9: PUSH2 0x1ef1 00001eec: DUP8 00001eed: PUSH2 0x2e36 00001ef0: JUMP 00001ef1: JUMPDEST 00001ef2: POP 00001ef3: PUSH1 0x08 00001ef5: SLOAD 00001ef6: PUSH1 0x40 00001ef8: DUP1 00001ef9: MLOAD 00001efa: PUSH4 0x6361ddf3 00001eff: PUSH1 0xe1 00001f01: SHL 00001f02: DUP2 00001f03: MSTORE 00001f04: PUSH1 0x01 00001f06: PUSH1 0x01 00001f08: PUSH1 0xa0 00001f0a: SHL 00001f0b: SUB 00001f0c: DUP11 00001f0d: DUP2 00001f0e: AND 00001f0f: PUSH1 0x04 00001f11: DUP4 00001f12: ADD 00001f13: MSTORE 00001f14: DUP10 00001f15: DUP2 00001f16: AND 00001f17: PUSH1 0x24 00001f19: DUP4 00001f1a: ADD 00001f1b: MSTORE 00001f1c: PUSH1 0x01 00001f1e: PUSH1 0x01 00001f20: PUSH1 0x80 00001f22: SHL 00001f23: SUB 00001f24: DUP10 00001f25: AND 00001f26: PUSH1 0x44 00001f28: DUP4 00001f29: ADD 00001f2a: MSTORE 00001f2b: SWAP2 00001f2c: MLOAD 00001f2d: SWAP2 00001f2e: SWAP1 00001f2f: SWAP3 00001f30: AND 00001f31: SWAP2 00001f32: PUSH4 0xc6c3bbe6 00001f37: SWAP2 00001f38: PUSH1 0x64 00001f3a: DUP1 00001f3b: DUP4 00001f3c: ADD 00001f3d: SWAP3 00001f3e: PUSH1 0x00 00001f40: SWAP3 00001f41: SWAP2 00001f42: SWAP1 00001f43: DUP3 00001f44: SWAP1 00001f45: SUB 00001f46: ADD 00001f47: DUP2 00001f48: DUP4 00001f49: DUP8 00001f4a: DUP1 00001f4b: EXTCODESIZE 00001f4c: ISZERO 00001f4d: DUP1 00001f4e: ISZERO 00001f4f: PUSH2 0x1f57 00001f52: JUMPI 00001f53: PUSH1 0x00 00001f55: DUP1 00001f56: REVERT 00001f57: JUMPDEST 00001f58: POP 00001f59: GAS 00001f5a: CALL 00001f5b: ISZERO 00001f5c: DUP1 00001f5d: ISZERO 00001f5e: PUSH2 0x1f6b 00001f61: JUMPI 00001f62: RETURNDATASIZE 00001f63: PUSH1 0x00 00001f65: DUP1 00001f66: RETURNDATACOPY 00001f67: RETURNDATASIZE 00001f68: PUSH1 0x00 00001f6a: REVERT 00001f6b: JUMPDEST 00001f6c: POP 00001f6d: POP 00001f6e: POP 00001f6f: POP 00001f70: PUSH2 0x1fc1 00001f73: JUMP 00001f74: JUMPDEST 00001f75: PUSH2 0x1f88 00001f78: DUP8 00001f79: DUP8 00001f7a: DUP8 00001f7b: PUSH1 0x01 00001f7d: PUSH1 0x01 00001f7f: PUSH1 0x80 00001f81: SHL 00001f82: SUB 00001f83: AND 00001f84: PUSH2 0x3913 00001f87: JUMP 00001f88: JUMPDEST 00001f89: PUSH2 0x1fc1 00001f8c: JUMPI 00001f8d: PUSH1 0x40 00001f8f: DUP1 00001f90: MLOAD 00001f91: PUSH3 0x461bcd 00001f95: PUSH1 0xe5 00001f97: SHL 00001f98: DUP2 00001f99: MSTORE 00001f9a: PUSH1 0x20 00001f9c: PUSH1 0x04 00001f9e: DUP3 00001f9f: ADD 00001fa0: MSTORE 00001fa1: PUSH1 0x05 00001fa3: PUSH1 0x24 00001fa5: DUP3 00001fa6: ADD 00001fa7: MSTORE 00001fa8: PUSH5 0x7774673131 00001fae: PUSH1 0xd8 00001fb0: SHL 00001fb1: PUSH1 0x44 00001fb3: DUP3 00001fb4: ADD 00001fb5: MSTORE 00001fb6: SWAP1 00001fb7: MLOAD 00001fb8: SWAP1 00001fb9: DUP2 00001fba: SWAP1 00001fbb: SUB 00001fbc: PUSH1 0x64 00001fbe: ADD 00001fbf: SWAP1 00001fc0: REVERT 00001fc1: JUMPDEST 00001fc2: PUSH1 0x40 00001fc4: DUP1 00001fc5: MLOAD 00001fc6: PUSH4 0x70a08231 00001fcb: PUSH1 0xe0 00001fcd: SHL 00001fce: DUP2 00001fcf: MSTORE 00001fd0: ADDRESS 00001fd1: PUSH1 0x04 00001fd3: DUP3 00001fd4: ADD 00001fd5: MSTORE 00001fd6: SWAP1 00001fd7: MLOAD 00001fd8: PUSH1 0x00 00001fda: SWAP2 00001fdb: PUSH1 0x01 00001fdd: PUSH1 0x01 00001fdf: PUSH1 0xa0 00001fe1: SHL 00001fe2: SUB 00001fe3: DUP11 00001fe4: AND 00001fe5: SWAP2 00001fe6: PUSH4 0x70a08231 00001feb: SWAP2 00001fec: PUSH1 0x24 00001fee: DUP1 00001fef: DUP3 00001ff0: ADD 00001ff1: SWAP3 00001ff2: PUSH1 0x20 00001ff4: SWAP3 00001ff5: SWAP1 00001ff6: SWAP2 00001ff7: SWAP1 00001ff8: DUP3 00001ff9: SWAP1 00001ffa: SUB 00001ffb: ADD 00001ffc: DUP2 00001ffd: DUP7 00001ffe: DUP1 00001fff: EXTCODESIZE 00002000: ISZERO 00002001: DUP1 00002002: ISZERO 00002003: PUSH2 0x200b 00002006: JUMPI 00002007: PUSH1 0x00 00002009: DUP1 0000200a: REVERT 0000200b: JUMPDEST 0000200c: POP 0000200d: GAS 0000200e: STATICCALL 0000200f: ISZERO 00002010: DUP1 00002011: ISZERO 00002012: PUSH2 0x201f 00002015: JUMPI 00002016: RETURNDATASIZE 00002017: PUSH1 0x00 00002019: DUP1 0000201a: RETURNDATACOPY 0000201b: RETURNDATASIZE 0000201c: PUSH1 0x00 0000201e: REVERT 0000201f: JUMPDEST 00002020: POP 00002021: POP 00002022: POP 00002023: POP 00002024: PUSH1 0x40 00002026: MLOAD 00002027: RETURNDATASIZE 00002028: PUSH1 0x20 0000202a: DUP2 0000202b: LT 0000202c: ISZERO 0000202d: PUSH2 0x2035 00002030: JUMPI 00002031: PUSH1 0x00 00002033: DUP1 00002034: REVERT 00002035: JUMPDEST 00002036: POP 00002037: MLOAD 00002038: SWAP1 00002039: POP 0000203a: PUSH1 0x00 0000203c: PUSH2 0x204b 0000203f: DUP4 00002040: DUP4 00002041: PUSH4 0xffffffff 00002046: PUSH2 0x3a3a 00002049: AND 0000204a: JUMP 0000204b: JUMPDEST 0000204c: SWAP1 0000204d: POP 0000204e: DUP6 0000204f: PUSH1 0x01 00002051: PUSH1 0x01 00002053: PUSH1 0x80 00002055: SHL 00002056: SUB 00002057: AND 00002058: DUP2 00002059: GT 0000205a: ISZERO 0000205b: PUSH2 0x2093 0000205e: JUMPI 0000205f: PUSH1 0x40 00002061: DUP1 00002062: MLOAD 00002063: PUSH3 0x461bcd 00002067: PUSH1 0xe5 00002069: SHL 0000206a: DUP2 0000206b: MSTORE 0000206c: PUSH1 0x20 0000206e: PUSH1 0x04 00002070: DUP3 00002071: ADD 00002072: MSTORE 00002073: PUSH1 0x05 00002075: PUSH1 0x24 00002077: DUP3 00002078: ADD 00002079: MSTORE 0000207a: PUSH5 0x3bba339899 00002080: PUSH1 0xd9 00002082: SHL 00002083: PUSH1 0x44 00002085: DUP3 00002086: ADD 00002087: MSTORE 00002088: SWAP1 00002089: MLOAD 0000208a: SWAP1 0000208b: DUP2 0000208c: SWAP1 0000208d: SUB 0000208e: PUSH1 0x64 00002090: ADD 00002091: SWAP1 00002092: REVERT 00002093: JUMPDEST 00002094: PUSH2 0x209c 00002097: DUP2 00002098: PUSH2 0x347b 0000209b: JUMP 0000209c: JUMPDEST 0000209d: SWAP10 0000209e: SWAP9 0000209f: POP 000020a0: POP 000020a1: POP 000020a2: POP 000020a3: POP 000020a4: POP 000020a5: POP 000020a6: POP 000020a7: POP 000020a8: JUMP 000020a9: JUMPDEST 000020aa: PUSH1 0x0a 000020ac: PUSH1 0x20 000020ae: MSTORE 000020af: PUSH1 0x00 000020b1: SWAP1 000020b2: DUP2 000020b3: MSTORE 000020b4: PUSH1 0x40 000020b6: SWAP1 000020b7: KECCAK256 000020b8: SLOAD 000020b9: PUSH1 0x01 000020bb: PUSH1 0x01 000020bd: PUSH1 0xa0 000020bf: SHL 000020c0: SUB 000020c1: DUP2 000020c2: AND 000020c3: SWAP1 000020c4: PUSH1 0x01 000020c6: PUSH1 0xa0 000020c8: SHL 000020c9: SWAP1 000020ca: DIV 000020cb: PUSH2 0xffff 000020ce: AND 000020cf: DUP3 000020d0: JUMP 000020d1: JUMPDEST 000020d2: PUSH1 0x00 000020d4: DUP1 000020d5: MLOAD 000020d6: PUSH1 0x20 000020d8: PUSH2 0x4172 000020db: DUP4 000020dc: CODECOPY 000020dd: DUP2 000020de: MLOAD 000020df: SWAP2 000020e0: MSTORE 000020e1: SLOAD 000020e2: DUP1 000020e3: PUSH2 0x2121 000020e6: JUMPI 000020e7: PUSH1 0x40 000020e9: DUP1 000020ea: MLOAD 000020eb: PUSH3 0x461bcd 000020ef: PUSH1 0xe5 000020f1: SHL 000020f2: DUP2 000020f3: MSTORE 000020f4: PUSH1 0x20 000020f6: PUSH1 0x04 000020f8: DUP3 000020f9: ADD 000020fa: MSTORE 000020fb: PUSH1 0x1f 000020fd: PUSH1 0x24 000020ff: DUP3 00002100: ADD 00002101: MSTORE 00002102: PUSH1 0x00 00002104: DUP1 00002105: MLOAD 00002106: PUSH1 0x20 00002108: PUSH2 0x412c 0000210b: DUP4 0000210c: CODECOPY 0000210d: DUP2 0000210e: MLOAD 0000210f: SWAP2 00002110: MSTORE 00002111: PUSH1 0x44 00002113: DUP3 00002114: ADD 00002115: MSTORE 00002116: SWAP1 00002117: MLOAD 00002118: SWAP1 00002119: DUP2 0000211a: SWAP1 0000211b: SUB 0000211c: PUSH1 0x64 0000211e: ADD 0000211f: SWAP1 00002120: REVERT 00002121: JUMPDEST 00002122: PUSH1 0x00 00002124: PUSH1 0x00 00002126: DUP1 00002127: MLOAD 00002128: PUSH1 0x20 0000212a: PUSH2 0x4172 0000212d: DUP4 0000212e: CODECOPY 0000212f: DUP2 00002130: MLOAD 00002131: SWAP2 00002132: MSTORE 00002133: SSTORE 00002134: PUSH1 0x01 00002136: PUSH1 0x01 00002138: PUSH1 0xa0 0000213a: SHL 0000213b: SUB 0000213c: DUP3 0000213d: AND 0000213e: PUSH2 0x2176 00002141: JUMPI 00002142: PUSH1 0x40 00002144: DUP1 00002145: MLOAD 00002146: PUSH3 0x461bcd 0000214a: PUSH1 0xe5 0000214c: SHL 0000214d: DUP2 0000214e: MSTORE 0000214f: PUSH1 0x20 00002151: PUSH1 0x04 00002153: DUP3 00002154: ADD 00002155: MSTORE 00002156: PUSH1 0x05 00002158: PUSH1 0x24 0000215a: DUP3 0000215b: ADD 0000215c: MSTORE 0000215d: PUSH5 0x6970613131 00002163: PUSH1 0xd8 00002165: SHL 00002166: PUSH1 0x44 00002168: DUP3 00002169: ADD 0000216a: MSTORE 0000216b: SWAP1 0000216c: MLOAD 0000216d: SWAP1 0000216e: DUP2 0000216f: SWAP1 00002170: SUB 00002171: PUSH1 0x64 00002173: ADD 00002174: SWAP1 00002175: REVERT 00002176: JUMPDEST 00002177: PUSH2 0x2182 0000217a: PUSH1 0x00 0000217c: DUP5 0000217d: DUP5 0000217e: PUSH2 0x3a7c 00002181: JUMP 00002182: JUMPDEST 00002183: PUSH1 0x40 00002185: MLOAD 00002186: PUSH1 0x00 00002188: SWAP1 00002189: PUSH1 0x01 0000218b: PUSH1 0x01 0000218d: PUSH1 0xa0 0000218f: SHL 00002190: SUB 00002191: DUP5 00002192: AND 00002193: SWAP1 00002194: DUP6 00002195: SWAP1 00002196: DUP4 00002197: DUP2 00002198: DUP2 00002199: DUP2 0000219a: DUP6 0000219b: DUP8 0000219c: GAS 0000219d: CALL 0000219e: SWAP3 0000219f: POP 000021a0: POP 000021a1: POP 000021a2: RETURNDATASIZE 000021a3: DUP1 000021a4: PUSH1 0x00 000021a6: DUP2 000021a7: EQ 000021a8: PUSH2 0x21cd 000021ab: JUMPI 000021ac: PUSH1 0x40 000021ae: MLOAD 000021af: SWAP2 000021b0: POP 000021b1: PUSH1 0x1f 000021b3: NOT 000021b4: PUSH1 0x3f 000021b6: RETURNDATASIZE 000021b7: ADD 000021b8: AND 000021b9: DUP3 000021ba: ADD 000021bb: PUSH1 0x40 000021bd: MSTORE 000021be: RETURNDATASIZE 000021bf: DUP3 000021c0: MSTORE 000021c1: RETURNDATASIZE 000021c2: PUSH1 0x00 000021c4: PUSH1 0x20 000021c6: DUP5 000021c7: ADD 000021c8: RETURNDATACOPY 000021c9: PUSH2 0x21d2 000021cc: JUMP 000021cd: JUMPDEST 000021ce: PUSH1 0x60 000021d0: SWAP2 000021d1: POP 000021d2: JUMPDEST 000021d3: POP 000021d4: POP 000021d5: SWAP1 000021d6: POP 000021d7: DUP1 000021d8: PUSH2 0x2210 000021db: JUMPI 000021dc: PUSH1 0x40 000021de: DUP1 000021df: MLOAD 000021e0: PUSH3 0x461bcd 000021e4: PUSH1 0xe5 000021e6: SHL 000021e7: DUP2 000021e8: MSTORE 000021e9: PUSH1 0x20 000021eb: PUSH1 0x04 000021ed: DUP3 000021ee: ADD 000021ef: MSTORE 000021f0: PUSH1 0x05 000021f2: PUSH1 0x24 000021f4: DUP3 000021f5: ADD 000021f6: MSTORE 000021f7: PUSH5 0x333bb29899 000021fd: PUSH1 0xd9 000021ff: SHL 00002200: PUSH1 0x44 00002202: DUP3 00002203: ADD 00002204: MSTORE 00002205: SWAP1 00002206: MLOAD 00002207: SWAP1 00002208: DUP2 00002209: SWAP1 0000220a: SUB 0000220b: PUSH1 0x64 0000220d: ADD 0000220e: SWAP1 0000220f: REVERT 00002210: JUMPDEST 00002211: POP 00002212: PUSH1 0x01 00002214: PUSH1 0x00 00002216: DUP1 00002217: MLOAD 00002218: PUSH1 0x20 0000221a: PUSH2 0x4172 0000221d: DUP4 0000221e: CODECOPY 0000221f: DUP2 00002220: MLOAD 00002221: SWAP2 00002222: MSTORE 00002223: SSTORE 00002224: POP 00002225: POP 00002226: POP 00002227: JUMP 00002228: JUMPDEST 00002229: PUSH1 0x13 0000222b: SLOAD 0000222c: PUSH1 0x01 0000222e: PUSH1 0x01 00002230: PUSH1 0xa0 00002232: SHL 00002233: SUB 00002234: AND 00002235: DUP2 00002236: JUMP 00002237: JUMPDEST 00002238: PUSH1 0x0e 0000223a: PUSH1 0x20 0000223c: SWAP1 0000223d: DUP2 0000223e: MSTORE 0000223f: PUSH1 0x00 00002241: SWAP3 00002242: DUP4 00002243: MSTORE 00002244: PUSH1 0x40 00002246: DUP1 00002247: DUP5 00002248: KECCAK256 00002249: SWAP1 0000224a: SWAP2 0000224b: MSTORE 0000224c: SWAP1 0000224d: DUP3 0000224e: MSTORE 0000224f: SWAP1 00002250: KECCAK256 00002251: SLOAD 00002252: PUSH1 0xff 00002254: AND 00002255: DUP2 00002256: JUMP 00002257: JUMPDEST 00002258: PUSH1 0x13 0000225a: SLOAD 0000225b: PUSH1 0x01 0000225d: PUSH1 0x01 0000225f: PUSH1 0xa0 00002261: SHL 00002262: SUB 00002263: AND 00002264: ISZERO 00002265: PUSH2 0x229d 00002268: JUMPI 00002269: PUSH1 0x40 0000226b: DUP1 0000226c: MLOAD 0000226d: PUSH3 0x461bcd 00002271: PUSH1 0xe5 00002273: SHL 00002274: DUP2 00002275: MSTORE 00002276: PUSH1 0x20 00002278: PUSH1 0x04 0000227a: DUP3 0000227b: ADD 0000227c: MSTORE 0000227d: PUSH1 0x05 0000227f: PUSH1 0x24 00002281: DUP3 00002282: ADD 00002283: MSTORE 00002284: PUSH5 0x7372616131 0000228a: PUSH1 0xd8 0000228c: SHL 0000228d: PUSH1 0x44 0000228f: DUP3 00002290: ADD 00002291: MSTORE 00002292: SWAP1 00002293: MLOAD 00002294: SWAP1 00002295: DUP2 00002296: SWAP1 00002297: SUB 00002298: PUSH1 0x64 0000229a: ADD 0000229b: SWAP1 0000229c: REVERT 0000229d: JUMPDEST 0000229e: PUSH1 0x14 000022a0: SLOAD 000022a1: PUSH1 0x01 000022a3: PUSH1 0x01 000022a5: PUSH1 0xa0 000022a7: SHL 000022a8: SUB 000022a9: AND 000022aa: ISZERO 000022ab: PUSH2 0x22e3 000022ae: JUMPI 000022af: PUSH1 0x40 000022b1: DUP1 000022b2: MLOAD 000022b3: PUSH3 0x461bcd 000022b7: PUSH1 0xe5 000022b9: SHL 000022ba: DUP2 000022bb: MSTORE 000022bc: PUSH1 0x20 000022be: PUSH1 0x04 000022c0: DUP3 000022c1: ADD 000022c2: MSTORE 000022c3: PUSH1 0x05 000022c5: PUSH1 0x24 000022c7: DUP3 000022c8: ADD 000022c9: MSTORE 000022ca: PUSH5 0x39b930b099 000022d0: PUSH1 0xd9 000022d2: SHL 000022d3: PUSH1 0x44 000022d5: DUP3 000022d6: ADD 000022d7: MSTORE 000022d8: SWAP1 000022d9: MLOAD 000022da: SWAP1 000022db: DUP2 000022dc: SWAP1 000022dd: SUB 000022de: PUSH1 0x64 000022e0: ADD 000022e1: SWAP1 000022e2: REVERT 000022e3: JUMPDEST 000022e4: PUSH1 0x00 000022e6: DUP1 000022e7: MSTORE 000022e8: PUSH1 0x0c 000022ea: PUSH1 0x20 000022ec: MSTORE 000022ed: PUSH32 0x13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116eb 0000230e: SWAP3 0000230f: SWAP1 00002310: SWAP3 00002311: SSTORE 00002312: PUSH1 0x13 00002314: DUP1 00002315: SLOAD 00002316: PUSH1 0x01 00002318: PUSH1 0x01 0000231a: PUSH1 0xa0 0000231c: SHL 0000231d: SUB 0000231e: SWAP3 0000231f: DUP4 00002320: AND 00002321: PUSH1 0x01 00002323: PUSH1 0x01 00002325: PUSH1 0xa0 00002327: SHL 00002328: SUB 00002329: NOT 0000232a: SWAP2 0000232b: DUP3 0000232c: AND 0000232d: OR 0000232e: SWAP1 0000232f: SWAP2 00002330: SSTORE 00002331: PUSH1 0x14 00002333: DUP1 00002334: SLOAD 00002335: SWAP3 00002336: SWAP1 00002337: SWAP4 00002338: AND 00002339: SWAP2 0000233a: AND 0000233b: OR 0000233c: SWAP1 0000233d: SSTORE 0000233e: JUMP 0000233f: JUMPDEST 00002340: PUSH1 0x00 00002342: DUP1 00002343: MLOAD 00002344: PUSH1 0x20 00002346: PUSH2 0x4172 00002349: DUP4 0000234a: CODECOPY 0000234b: DUP2 0000234c: MLOAD 0000234d: SWAP2 0000234e: MSTORE 0000234f: SLOAD 00002350: DUP1 00002351: PUSH2 0x238f 00002354: JUMPI 00002355: PUSH1 0x40 00002357: DUP1 00002358: MLOAD 00002359: PUSH3 0x461bcd 0000235d: PUSH1 0xe5 0000235f: SHL 00002360: DUP2 00002361: MSTORE 00002362: PUSH1 0x20 00002364: PUSH1 0x04 00002366: DUP3 00002367: ADD 00002368: MSTORE 00002369: PUSH1 0x1f 0000236b: PUSH1 0x24 0000236d: DUP3 0000236e: ADD 0000236f: MSTORE 00002370: PUSH1 0x00 00002372: DUP1 00002373: MLOAD 00002374: PUSH1 0x20 00002376: PUSH2 0x412c 00002379: DUP4 0000237a: CODECOPY 0000237b: DUP2 0000237c: MLOAD 0000237d: SWAP2 0000237e: MSTORE 0000237f: PUSH1 0x44 00002381: DUP3 00002382: ADD 00002383: MSTORE 00002384: SWAP1 00002385: MLOAD 00002386: SWAP1 00002387: DUP2 00002388: SWAP1 00002389: SUB 0000238a: PUSH1 0x64 0000238c: ADD 0000238d: SWAP1 0000238e: REVERT 0000238f: JUMPDEST 00002390: PUSH1 0x00 00002392: PUSH1 0x00 00002394: DUP1 00002395: MLOAD 00002396: PUSH1 0x20 00002398: PUSH2 0x4172 0000239b: DUP4 0000239c: CODECOPY 0000239d: DUP2 0000239e: MLOAD 0000239f: SWAP2 000023a0: MSTORE 000023a1: SSTORE 000023a2: PUSH2 0x23ad 000023a5: PUSH1 0x00 000023a7: DUP4 000023a8: CALLER 000023a9: PUSH2 0x3a7c 000023ac: JUMP 000023ad: JUMPDEST 000023ae: PUSH1 0x40 000023b0: MLOAD 000023b1: PUSH1 0x00 000023b3: SWAP1 000023b4: CALLER 000023b5: SWAP1 000023b6: DUP5 000023b7: SWAP1 000023b8: DUP4 000023b9: DUP2 000023ba: DUP2 000023bb: DUP2 000023bc: DUP6 000023bd: DUP8 000023be: GAS 000023bf: CALL 000023c0: SWAP3 000023c1: POP 000023c2: POP 000023c3: POP 000023c4: RETURNDATASIZE 000023c5: DUP1 000023c6: PUSH1 0x00 000023c8: DUP2 000023c9: EQ 000023ca: PUSH2 0x23ef 000023cd: JUMPI 000023ce: PUSH1 0x40 000023d0: MLOAD 000023d1: SWAP2 000023d2: POP 000023d3: PUSH1 0x1f 000023d5: NOT 000023d6: PUSH1 0x3f 000023d8: RETURNDATASIZE 000023d9: ADD 000023da: AND 000023db: DUP3 000023dc: ADD 000023dd: PUSH1 0x40 000023df: MSTORE 000023e0: RETURNDATASIZE 000023e1: DUP3 000023e2: MSTORE 000023e3: RETURNDATASIZE 000023e4: PUSH1 0x00 000023e6: PUSH1 0x20 000023e8: DUP5 000023e9: ADD 000023ea: RETURNDATACOPY 000023eb: PUSH2 0x23f4 000023ee: JUMP 000023ef: JUMPDEST 000023f0: PUSH1 0x60 000023f2: SWAP2 000023f3: POP 000023f4: JUMPDEST 000023f5: POP 000023f6: POP 000023f7: SWAP1 000023f8: POP 000023f9: DUP1 000023fa: PUSH2 0x2432 000023fd: JUMPI 000023fe: PUSH1 0x40 00002400: DUP1 00002401: MLOAD 00002402: PUSH3 0x461bcd 00002406: PUSH1 0xe5 00002408: SHL 00002409: DUP2 0000240a: MSTORE 0000240b: PUSH1 0x20 0000240d: PUSH1 0x04 0000240f: DUP3 00002410: ADD 00002411: MSTORE 00002412: PUSH1 0x05 00002414: PUSH1 0x24 00002416: DUP3 00002417: ADD 00002418: MSTORE 00002419: PUSH5 0x6677653131 0000241f: PUSH1 0xd8 00002421: SHL 00002422: PUSH1 0x44 00002424: DUP3 00002425: ADD 00002426: MSTORE 00002427: SWAP1 00002428: MLOAD 00002429: SWAP1 0000242a: DUP2 0000242b: SWAP1 0000242c: SUB 0000242d: PUSH1 0x64 0000242f: ADD 00002430: SWAP1 00002431: REVERT 00002432: JUMPDEST 00002433: POP 00002434: PUSH1 0x01 00002436: PUSH1 0x00 00002438: DUP1 00002439: MLOAD 0000243a: PUSH1 0x20 0000243c: PUSH2 0x4172 0000243f: DUP4 00002440: CODECOPY 00002441: DUP2 00002442: MLOAD 00002443: SWAP2 00002444: MSTORE 00002445: SSTORE 00002446: POP 00002447: POP 00002448: JUMP 00002449: JUMPDEST 0000244a: PUSH1 0x12 0000244c: SLOAD 0000244d: PUSH1 0x01 0000244f: PUSH1 0x40 00002451: SHL 00002452: SWAP1 00002453: DIV 00002454: PUSH1 0x01 00002456: PUSH1 0x01 00002458: PUSH1 0x40 0000245a: SHL 0000245b: SUB 0000245c: AND 0000245d: DUP2 0000245e: JUMP 0000245f: JUMPDEST 00002460: PUSH1 0x00 00002462: DUP1 00002463: MLOAD 00002464: PUSH1 0x20 00002466: PUSH2 0x4172 00002469: DUP4 0000246a: CODECOPY 0000246b: DUP2 0000246c: MLOAD 0000246d: SWAP2 0000246e: MSTORE 0000246f: SLOAD 00002470: DUP1 00002471: PUSH2 0x24af 00002474: JUMPI 00002475: PUSH1 0x40 00002477: DUP1 00002478: MLOAD 00002479: PUSH3 0x461bcd 0000247d: PUSH1 0xe5 0000247f: SHL 00002480: DUP2 00002481: MSTORE 00002482: PUSH1 0x20 00002484: PUSH1 0x04 00002486: DUP3 00002487: ADD 00002488: MSTORE 00002489: PUSH1 0x1f 0000248b: PUSH1 0x24 0000248d: DUP3 0000248e: ADD 0000248f: MSTORE 00002490: PUSH1 0x00 00002492: DUP1 00002493: MLOAD 00002494: PUSH1 0x20 00002496: PUSH2 0x412c 00002499: DUP4 0000249a: CODECOPY 0000249b: DUP2 0000249c: MLOAD 0000249d: SWAP2 0000249e: MSTORE 0000249f: PUSH1 0x44 000024a1: DUP3 000024a2: ADD 000024a3: MSTORE 000024a4: SWAP1 000024a5: MLOAD 000024a6: SWAP1 000024a7: DUP2 000024a8: SWAP1 000024a9: SUB 000024aa: PUSH1 0x64 000024ac: ADD 000024ad: SWAP1 000024ae: REVERT 000024af: JUMPDEST 000024b0: PUSH1 0x00 000024b2: PUSH1 0x00 000024b4: DUP1 000024b5: MLOAD 000024b6: PUSH1 0x20 000024b8: PUSH2 0x4172 000024bb: DUP4 000024bc: CODECOPY 000024bd: DUP2 000024be: MLOAD 000024bf: SWAP2 000024c0: MSTORE 000024c1: DUP2 000024c2: SWAP1 000024c3: SSTORE 000024c4: PUSH1 0x01 000024c6: PUSH1 0x01 000024c8: PUSH1 0xa0 000024ca: SHL 000024cb: SUB 000024cc: DUP5 000024cd: AND 000024ce: DUP2 000024cf: MSTORE 000024d0: PUSH1 0x02 000024d2: PUSH1 0x20 000024d4: MSTORE 000024d5: PUSH1 0x40 000024d7: DUP2 000024d8: KECCAK256 000024d9: SLOAD 000024da: PUSH2 0xffff 000024dd: AND 000024de: SWAP1 000024df: DUP2 000024e0: PUSH2 0x2563 000024e3: JUMPI 000024e4: PUSH1 0x07 000024e6: SLOAD 000024e7: PUSH1 0x40 000024e9: DUP1 000024ea: MLOAD 000024eb: PUSH4 0x75698bb1 000024f0: PUSH1 0xe1 000024f2: SHL 000024f3: DUP2 000024f4: MSTORE 000024f5: PUSH1 0x01 000024f7: PUSH1 0x01 000024f9: PUSH1 0xa0 000024fb: SHL 000024fc: SUB 000024fd: DUP9 000024fe: DUP2 000024ff: AND 00002500: PUSH1 0x04 00002502: DUP4 00002503: ADD 00002504: MSTORE 00002505: SWAP2 00002506: MLOAD 00002507: SWAP2 00002508: SWAP1 00002509: SWAP3 0000250a: AND 0000250b: SWAP2 0000250c: PUSH4 0xead31762 00002511: SWAP2 00002512: PUSH1 0x24 00002514: DUP1 00002515: DUP4 00002516: ADD 00002517: SWAP3 00002518: PUSH1 0x20 0000251a: SWAP3 0000251b: SWAP2 0000251c: SWAP1 0000251d: DUP3 0000251e: SWAP1 0000251f: SUB 00002520: ADD 00002521: DUP2 00002522: DUP7 00002523: DUP1 00002524: EXTCODESIZE 00002525: ISZERO 00002526: DUP1 00002527: ISZERO 00002528: PUSH2 0x2530 0000252b: JUMPI 0000252c: PUSH1 0x00 0000252e: DUP1 0000252f: REVERT 00002530: JUMPDEST 00002531: POP 00002532: GAS 00002533: STATICCALL 00002534: ISZERO 00002535: DUP1 00002536: ISZERO 00002537: PUSH2 0x2544 0000253a: JUMPI 0000253b: RETURNDATASIZE 0000253c: PUSH1 0x00 0000253e: DUP1 0000253f: RETURNDATACOPY 00002540: RETURNDATASIZE 00002541: PUSH1 0x00 00002543: REVERT 00002544: JUMPDEST 00002545: POP 00002546: POP 00002547: POP 00002548: POP 00002549: PUSH1 0x40 0000254b: MLOAD 0000254c: RETURNDATASIZE 0000254d: PUSH1 0x20 0000254f: DUP2 00002550: LT 00002551: ISZERO 00002552: PUSH2 0x255a 00002555: JUMPI 00002556: PUSH1 0x00 00002558: DUP1 00002559: REVERT 0000255a: JUMPDEST 0000255b: POP 0000255c: MLOAD 0000255d: SWAP1 0000255e: POP 0000255f: PUSH2 0x256f 00002562: JUMP 00002563: JUMPDEST 00002564: PUSH2 0x256c 00002567: DUP6 00002568: PUSH2 0x2e36 0000256b: JUMP 0000256c: JUMPDEST 0000256d: SWAP1 0000256e: POP 0000256f: JUMPDEST 00002570: PUSH1 0x00 00002572: PUSH2 0x257b 00002575: CALLER 00002576: DUP4 00002577: PUSH2 0x345e 0000257a: JUMP 0000257b: JUMPDEST 0000257c: PUSH1 0x01 0000257e: PUSH1 0x01 00002580: PUSH1 0x50 00002582: SHL 00002583: SUB 00002584: NOT 00002585: DUP2 00002586: AND 00002587: PUSH1 0x00 00002589: SWAP1 0000258a: DUP2 0000258b: MSTORE 0000258c: PUSH1 0x09 0000258e: PUSH1 0x20 00002590: SWAP1 00002591: DUP2 00002592: MSTORE 00002593: PUSH1 0x40 00002595: DUP1 00002596: DUP4 00002597: KECCAK256 00002598: SLOAD 00002599: DUP2 0000259a: MLOAD 0000259b: PUSH4 0x9a83400d 000025a0: PUSH1 0xe0 000025a2: SHL 000025a3: DUP2 000025a4: MSTORE 000025a5: PUSH1 0x01 000025a7: PUSH1 0x01 000025a9: PUSH1 0xa0 000025ab: SHL 000025ac: SUB 000025ad: DUP13 000025ae: AND 000025af: PUSH1 0x04 000025b1: DUP3 000025b2: ADD 000025b3: MSTORE 000025b4: CALLER 000025b5: PUSH1 0x24 000025b7: DUP3 000025b8: ADD 000025b9: MSTORE 000025ba: PUSH1 0x01 000025bc: PUSH1 0x01 000025be: PUSH1 0x80 000025c0: SHL 000025c1: SUB 000025c2: DUP12 000025c3: DUP2 000025c4: AND 000025c5: PUSH1 0x44 000025c7: DUP4 000025c8: ADD 000025c9: MSTORE 000025ca: SWAP1 000025cb: SWAP2 000025cc: AND 000025cd: PUSH1 0x64 000025cf: DUP3 000025d0: ADD 000025d1: DUP2 000025d2: SWAP1 000025d3: MSTORE 000025d4: SWAP2 000025d5: MLOAD 000025d6: SWAP5 000025d7: SWAP6 000025d8: POP 000025d9: SWAP1 000025da: SWAP4 000025db: ADDRESS 000025dc: SWAP3 000025dd: PUSH4 0x9a83400d 000025e2: SWAP3 000025e3: PUSH1 0x84 000025e5: DUP1 000025e6: DUP3 000025e7: ADD 000025e8: SWAP4 000025e9: SWAP2 000025ea: DUP3 000025eb: SWAP1 000025ec: SUB 000025ed: ADD 000025ee: DUP2 000025ef: DUP8 000025f0: DUP8 000025f1: DUP1 000025f2: EXTCODESIZE 000025f3: ISZERO 000025f4: DUP1 000025f5: ISZERO 000025f6: PUSH2 0x25fe 000025f9: JUMPI 000025fa: PUSH1 0x00 000025fc: DUP1 000025fd: REVERT 000025fe: JUMPDEST 000025ff: POP 00002600: GAS 00002601: CALL 00002602: ISZERO 00002603: DUP1 00002604: ISZERO 00002605: PUSH2 0x2612 00002608: JUMPI 00002609: RETURNDATASIZE 0000260a: PUSH1 0x00 0000260c: DUP1 0000260d: RETURNDATACOPY 0000260e: RETURNDATASIZE 0000260f: PUSH1 0x00 00002611: REVERT 00002612: JUMPDEST 00002613: POP 00002614: POP 00002615: POP 00002616: POP 00002617: PUSH1 0x40 00002619: MLOAD 0000261a: RETURNDATASIZE 0000261b: PUSH1 0x20 0000261d: DUP2 0000261e: LT 0000261f: ISZERO 00002620: PUSH2 0x2628 00002623: JUMPI 00002624: PUSH1 0x00 00002626: DUP1 00002627: REVERT 00002628: JUMPDEST 00002629: POP 0000262a: MLOAD 0000262b: SWAP1 0000262c: POP 0000262d: PUSH2 0x2637 00002630: DUP5 00002631: DUP3 00002632: CALLER 00002633: PUSH2 0x3a7c 00002636: JUMP 00002637: JUMPDEST 00002638: POP 00002639: POP 0000263a: POP 0000263b: POP 0000263c: POP 0000263d: PUSH1 0x01 0000263f: PUSH1 0x00 00002641: DUP1 00002642: MLOAD 00002643: PUSH1 0x20 00002645: PUSH2 0x4172 00002648: DUP4 00002649: CODECOPY 0000264a: DUP2 0000264b: MLOAD 0000264c: SWAP2 0000264d: MSTORE 0000264e: SSTORE 0000264f: POP 00002650: POP 00002651: POP 00002652: JUMP 00002653: JUMPDEST 00002654: PUSH2 0x265b 00002657: PUSH2 0x315e 0000265a: JUMP 0000265b: JUMPDEST 0000265c: PUSH1 0x07 0000265e: SLOAD 0000265f: PUSH1 0x40 00002661: DUP1 00002662: MLOAD 00002663: PUSH4 0x0c883eb5 00002668: PUSH1 0xe4 0000266a: SHL 0000266b: DUP2 0000266c: MSTORE 0000266d: CALLER 0000266e: PUSH1 0x04 00002670: DUP3 00002671: ADD 00002672: MSTORE 00002673: SWAP1 00002674: MLOAD 00002675: PUSH1 0x01 00002677: PUSH1 0x01 00002679: PUSH1 0xa0 0000267b: SHL 0000267c: SUB 0000267d: SWAP1 0000267e: SWAP3 0000267f: AND 00002680: SWAP2 00002681: PUSH4 0xc883eb50 00002686: SWAP2 00002687: PUSH1 0x24 00002689: DUP1 0000268a: DUP3 0000268b: ADD 0000268c: SWAP3 0000268d: PUSH1 0x00 0000268f: SWAP3 00002690: SWAP1 00002691: SWAP2 00002692: SWAP1 00002693: DUP3 00002694: SWAP1 00002695: SUB 00002696: ADD 00002697: DUP2 00002698: DUP7 00002699: DUP1 0000269a: EXTCODESIZE 0000269b: ISZERO 0000269c: DUP1 0000269d: ISZERO 0000269e: PUSH2 0x26a6 000026a1: JUMPI 000026a2: PUSH1 0x00 000026a4: DUP1 000026a5: REVERT 000026a6: JUMPDEST 000026a7: POP 000026a8: GAS 000026a9: STATICCALL 000026aa: ISZERO 000026ab: DUP1 000026ac: ISZERO 000026ad: PUSH2 0x26ba 000026b0: JUMPI 000026b1: RETURNDATASIZE 000026b2: PUSH1 0x00 000026b4: DUP1 000026b5: RETURNDATACOPY 000026b6: RETURNDATASIZE 000026b7: PUSH1 0x00 000026b9: REVERT 000026ba: JUMPDEST 000026bb: POP 000026bc: POP 000026bd: PUSH1 0x07 000026bf: SLOAD 000026c0: PUSH1 0x40 000026c2: DUP1 000026c3: MLOAD 000026c4: PUSH4 0x75698bb1 000026c9: PUSH1 0xe1 000026cb: SHL 000026cc: DUP2 000026cd: MSTORE 000026ce: PUSH1 0x01 000026d0: PUSH1 0x01 000026d2: PUSH1 0xa0 000026d4: SHL 000026d5: SUB 000026d6: DUP8 000026d7: DUP2 000026d8: AND 000026d9: PUSH1 0x04 000026db: DUP4 000026dc: ADD 000026dd: MSTORE 000026de: SWAP2 000026df: MLOAD 000026e0: PUSH1 0x00 000026e2: SWAP6 000026e3: POP 000026e4: SWAP2 000026e5: SWAP1 000026e6: SWAP3 000026e7: AND 000026e8: SWAP3 000026e9: POP 000026ea: PUSH4 0xead31762 000026ef: SWAP2 000026f0: PUSH1 0x24 000026f2: DUP1 000026f3: DUP3 000026f4: ADD 000026f5: SWAP3 000026f6: PUSH1 0x20 000026f8: SWAP3 000026f9: SWAP1 000026fa: SWAP2 000026fb: SWAP1 000026fc: DUP3 000026fd: SWAP1 000026fe: SUB 000026ff: ADD 00002700: DUP2 00002701: DUP7 00002702: DUP1 00002703: EXTCODESIZE 00002704: ISZERO 00002705: DUP1 00002706: ISZERO 00002707: PUSH2 0x270f 0000270a: JUMPI 0000270b: PUSH1 0x00 0000270d: DUP1 0000270e: REVERT 0000270f: JUMPDEST 00002710: POP 00002711: GAS 00002712: STATICCALL 00002713: ISZERO 00002714: DUP1 00002715: ISZERO 00002716: PUSH2 0x2723 00002719: JUMPI 0000271a: RETURNDATASIZE 0000271b: PUSH1 0x00 0000271d: DUP1 0000271e: RETURNDATACOPY 0000271f: RETURNDATASIZE 00002720: PUSH1 0x00 00002722: REVERT 00002723: JUMPDEST 00002724: POP 00002725: POP 00002726: POP 00002727: POP 00002728: PUSH1 0x40 0000272a: MLOAD 0000272b: RETURNDATASIZE 0000272c: PUSH1 0x20 0000272e: DUP2 0000272f: LT 00002730: ISZERO 00002731: PUSH2 0x2739 00002734: JUMPI 00002735: PUSH1 0x00 00002737: DUP1 00002738: REVERT 00002739: JUMPDEST 0000273a: POP 0000273b: MLOAD 0000273c: PUSH1 0x07 0000273e: SLOAD 0000273f: PUSH1 0x40 00002741: DUP1 00002742: MLOAD 00002743: PUSH4 0x75698bb1 00002748: PUSH1 0xe1 0000274a: SHL 0000274b: DUP2 0000274c: MSTORE 0000274d: PUSH1 0x01 0000274f: PUSH1 0x01 00002751: PUSH1 0xa0 00002753: SHL 00002754: SUB 00002755: DUP7 00002756: DUP2 00002757: AND 00002758: PUSH1 0x04 0000275a: DUP4 0000275b: ADD 0000275c: MSTORE 0000275d: SWAP2 0000275e: MLOAD 0000275f: SWAP4 00002760: SWAP5 00002761: POP 00002762: PUSH1 0x00 00002764: SWAP4 00002765: SWAP2 00002766: SWAP1 00002767: SWAP3 00002768: AND 00002769: SWAP2 0000276a: PUSH4 0xead31762 0000276f: SWAP2 00002770: PUSH1 0x24 00002772: DUP1 00002773: DUP4 00002774: ADD 00002775: SWAP3 00002776: PUSH1 0x20 00002778: SWAP3 00002779: SWAP2 0000277a: SWAP1 0000277b: DUP3 0000277c: SWAP1 0000277d: SUB 0000277e: ADD 0000277f: DUP2 00002780: DUP7 00002781: DUP1 00002782: EXTCODESIZE 00002783: ISZERO 00002784: DUP1 00002785: ISZERO 00002786: PUSH2 0x278e 00002789: JUMPI 0000278a: PUSH1 0x00 0000278c: DUP1 0000278d: REVERT 0000278e: JUMPDEST 0000278f: POP 00002790: GAS 00002791: STATICCALL 00002792: ISZERO 00002793: DUP1 00002794: ISZERO 00002795: PUSH2 0x27a2 00002798: JUMPI 00002799: RETURNDATASIZE 0000279a: PUSH1 0x00 0000279c: DUP1 0000279d: RETURNDATACOPY 0000279e: RETURNDATASIZE 0000279f: PUSH1 0x00 000027a1: REVERT 000027a2: JUMPDEST 000027a3: POP 000027a4: POP 000027a5: POP 000027a6: POP 000027a7: PUSH1 0x40 000027a9: MLOAD 000027aa: RETURNDATASIZE 000027ab: PUSH1 0x20 000027ad: DUP2 000027ae: LT 000027af: ISZERO 000027b0: PUSH2 0x27b8 000027b3: JUMPI 000027b4: PUSH1 0x00 000027b6: DUP1 000027b7: REVERT 000027b8: JUMPDEST 000027b9: POP 000027ba: MLOAD 000027bb: SWAP1 000027bc: POP 000027bd: PUSH1 0x1f 000027bf: PUSH2 0xffff 000027c2: DUP4 000027c3: AND 000027c4: GT 000027c5: ISZERO 000027c6: PUSH2 0x2816 000027c9: JUMPI 000027ca: PUSH1 0x40 000027cc: DUP1 000027cd: MLOAD 000027ce: PUSH3 0x461bcd 000027d2: PUSH1 0xe5 000027d4: SHL 000027d5: DUP2 000027d6: MSTORE 000027d7: PUSH1 0x20 000027d9: PUSH1 0x04 000027db: DUP3 000027dc: ADD 000027dd: MSTORE 000027de: PUSH1 0x1a 000027e0: PUSH1 0x24 000027e2: DUP3 000027e3: ADD 000027e4: MSTORE 000027e5: PUSH32 0x746f6b656e412073686f756c642062652066656520746f6b656e000000000000 00002806: PUSH1 0x44 00002808: DUP3 00002809: ADD 0000280a: MSTORE 0000280b: SWAP1 0000280c: MLOAD 0000280d: SWAP1 0000280e: DUP2 0000280f: SWAP1 00002810: SUB 00002811: PUSH1 0x64 00002813: ADD 00002814: SWAP1 00002815: REVERT 00002816: JUMPDEST 00002817: PUSH1 0x08 00002819: SLOAD 0000281a: PUSH1 0x40 0000281c: DUP1 0000281d: MLOAD 0000281e: PUSH4 0x64e329cb 00002823: PUSH1 0xe1 00002825: SHL 00002826: DUP2 00002827: MSTORE 00002828: PUSH1 0x01 0000282a: PUSH1 0x01 0000282c: PUSH1 0xa0 0000282e: SHL 0000282f: SUB 00002830: DUP8 00002831: DUP2 00002832: AND 00002833: PUSH1 0x04 00002835: DUP4 00002836: ADD 00002837: MSTORE 00002838: DUP7 00002839: DUP2 0000283a: AND 0000283b: PUSH1 0x24 0000283d: DUP4 0000283e: ADD 0000283f: MSTORE 00002840: SWAP2 00002841: MLOAD 00002842: PUSH1 0x00 00002844: SWAP4 00002845: SWAP3 00002846: SWAP1 00002847: SWAP3 00002848: AND 00002849: SWAP2 0000284a: PUSH4 0xc9c65396 0000284f: SWAP2 00002850: PUSH1 0x44 00002852: DUP1 00002853: DUP3 00002854: ADD 00002855: SWAP3 00002856: PUSH1 0x20 00002858: SWAP3 00002859: SWAP1 0000285a: SWAP2 0000285b: SWAP1 0000285c: DUP3 0000285d: SWAP1 0000285e: SUB 0000285f: ADD 00002860: DUP2 00002861: DUP8 00002862: DUP8 00002863: DUP1 00002864: EXTCODESIZE 00002865: ISZERO 00002866: DUP1 00002867: ISZERO 00002868: PUSH2 0x2870 0000286b: JUMPI 0000286c: PUSH1 0x00 0000286e: DUP1 0000286f: REVERT 00002870: JUMPDEST 00002871: POP 00002872: GAS 00002873: CALL 00002874: ISZERO 00002875: DUP1 00002876: ISZERO 00002877: PUSH2 0x2884 0000287a: JUMPI 0000287b: RETURNDATASIZE 0000287c: PUSH1 0x00 0000287e: DUP1 0000287f: RETURNDATACOPY 00002880: RETURNDATASIZE 00002881: PUSH1 0x00 00002883: REVERT 00002884: JUMPDEST 00002885: POP 00002886: POP 00002887: POP 00002888: POP 00002889: PUSH1 0x40 0000288b: MLOAD 0000288c: RETURNDATASIZE 0000288d: PUSH1 0x20 0000288f: DUP2 00002890: LT 00002891: ISZERO 00002892: PUSH2 0x289a 00002895: JUMPI 00002896: PUSH1 0x00 00002898: DUP1 00002899: REVERT 0000289a: JUMPDEST 0000289b: POP 0000289c: MLOAD 0000289d: SWAP1 0000289e: POP 0000289f: PUSH1 0x01 000028a1: PUSH1 0x01 000028a3: PUSH1 0xa0 000028a5: SHL 000028a6: SUB 000028a7: DUP2 000028a8: AND 000028a9: PUSH2 0x28eb 000028ac: JUMPI 000028ad: PUSH1 0x40 000028af: DUP1 000028b0: MLOAD 000028b1: PUSH3 0x461bcd 000028b5: PUSH1 0xe5 000028b7: SHL 000028b8: DUP2 000028b9: MSTORE 000028ba: PUSH1 0x20 000028bc: PUSH1 0x04 000028be: DUP3 000028bf: ADD 000028c0: MSTORE 000028c1: PUSH1 0x0f 000028c3: PUSH1 0x24 000028c5: DUP3 000028c6: ADD 000028c7: MSTORE 000028c8: PUSH15 0x1c185a5c881a5cc81a5b9d985b1a59 000028d8: PUSH1 0x8a 000028da: SHL 000028db: PUSH1 0x44 000028dd: DUP3 000028de: ADD 000028df: MSTORE 000028e0: SWAP1 000028e1: MLOAD 000028e2: SWAP1 000028e3: DUP2 000028e4: SWAP1 000028e5: SUB 000028e6: PUSH1 0x64 000028e8: ADD 000028e9: SWAP1 000028ea: REVERT 000028eb: JUMPDEST 000028ec: PUSH2 0x28f4 000028ef: DUP2 000028f0: PUSH2 0x36f2 000028f3: JUMP 000028f4: JUMPDEST 000028f5: PUSH2 0x2904 000028f8: DUP4 000028f9: DUP7 000028fa: DUP5 000028fb: DUP8 000028fc: PUSH2 0x1df6 000028ff: DUP7 00002900: PUSH2 0x2e36 00002903: JUMP 00002904: JUMPDEST 00002905: POP 00002906: POP 00002907: POP 00002908: POP 00002909: POP 0000290a: JUMP 0000290b: JUMPDEST 0000290c: PUSH1 0x00 0000290e: SLOAD 0000290f: PUSH2 0xffff 00002912: AND 00002913: DUP2 00002914: JUMP 00002915: JUMPDEST 00002916: PUSH1 0x0b 00002918: SLOAD 00002919: PUSH4 0xffffffff 0000291e: AND 0000291f: DUP2 00002920: JUMP 00002921: JUMPDEST 00002922: PUSH1 0x00 00002924: DUP1 00002925: MLOAD 00002926: PUSH1 0x20 00002928: PUSH2 0x4172 0000292b: DUP4 0000292c: CODECOPY 0000292d: DUP2 0000292e: MLOAD 0000292f: SWAP2 00002930: MSTORE 00002931: SLOAD 00002932: DUP1 00002933: PUSH2 0x2971 00002936: JUMPI 00002937: PUSH1 0x40 00002939: DUP1 0000293a: MLOAD 0000293b: PUSH3 0x461bcd 0000293f: PUSH1 0xe5 00002941: SHL 00002942: DUP2 00002943: MSTORE 00002944: PUSH1 0x20 00002946: PUSH1 0x04 00002948: DUP3 00002949: ADD 0000294a: MSTORE 0000294b: PUSH1 0x1f 0000294d: PUSH1 0x24 0000294f: DUP3 00002950: ADD 00002951: MSTORE 00002952: PUSH1 0x00 00002954: DUP1 00002955: MLOAD 00002956: PUSH1 0x20 00002958: PUSH2 0x412c 0000295b: DUP4 0000295c: CODECOPY 0000295d: DUP2 0000295e: MLOAD 0000295f: SWAP2 00002960: MSTORE 00002961: PUSH1 0x44 00002963: DUP3 00002964: ADD 00002965: MSTORE 00002966: SWAP1 00002967: MLOAD 00002968: SWAP1 00002969: DUP2 0000296a: SWAP1 0000296b: SUB 0000296c: PUSH1 0x64 0000296e: ADD 0000296f: SWAP1 00002970: REVERT 00002971: JUMPDEST 00002972: PUSH1 0x00 00002974: PUSH1 0x00 00002976: DUP1 00002977: MLOAD 00002978: PUSH1 0x20 0000297a: PUSH2 0x4172 0000297d: DUP4 0000297e: CODECOPY 0000297f: DUP2 00002980: MLOAD 00002981: SWAP2 00002982: MSTORE 00002983: SSTORE 00002984: PUSH2 0x298b 00002987: PUSH2 0x315e 0000298a: JUMP 0000298b: JUMPDEST 0000298c: PUSH1 0x01 0000298e: PUSH1 0x01 00002990: PUSH1 0xa0 00002992: SHL 00002993: SUB 00002994: DUP5 00002995: AND 00002996: PUSH1 0x00 00002998: SWAP1 00002999: DUP2 0000299a: MSTORE 0000299b: PUSH1 0x02 0000299d: PUSH1 0x20 0000299f: MSTORE 000029a0: PUSH1 0x40 000029a2: DUP2 000029a3: KECCAK256 000029a4: SLOAD 000029a5: PUSH2 0xffff 000029a8: AND 000029a9: SWAP1 000029aa: DUP2 000029ab: PUSH2 0x2a2e 000029ae: JUMPI 000029af: PUSH1 0x07 000029b1: SLOAD 000029b2: PUSH1 0x40 000029b4: DUP1 000029b5: MLOAD 000029b6: PUSH4 0x75698bb1 000029bb: PUSH1 0xe1 000029bd: SHL 000029be: DUP2 000029bf: MSTORE 000029c0: PUSH1 0x01 000029c2: PUSH1 0x01 000029c4: PUSH1 0xa0 000029c6: SHL 000029c7: SUB 000029c8: DUP10 000029c9: DUP2 000029ca: AND 000029cb: PUSH1 0x04 000029cd: DUP4 000029ce: ADD 000029cf: MSTORE 000029d0: SWAP2 000029d1: MLOAD 000029d2: SWAP2 000029d3: SWAP1 000029d4: SWAP3 000029d5: AND 000029d6: SWAP2 000029d7: PUSH4 0xead31762 000029dc: SWAP2 000029dd: PUSH1 0x24 000029df: DUP1 000029e0: DUP4 000029e1: ADD 000029e2: SWAP3 000029e3: PUSH1 0x20 000029e5: SWAP3 000029e6: SWAP2 000029e7: SWAP1 000029e8: DUP3 000029e9: SWAP1 000029ea: SUB 000029eb: ADD 000029ec: DUP2 000029ed: DUP7 000029ee: DUP1 000029ef: EXTCODESIZE 000029f0: ISZERO 000029f1: DUP1 000029f2: ISZERO 000029f3: PUSH2 0x29fb 000029f6: JUMPI 000029f7: PUSH1 0x00 000029f9: DUP1 000029fa: REVERT 000029fb: JUMPDEST 000029fc: POP 000029fd: GAS 000029fe: STATICCALL 000029ff: ISZERO 00002a00: DUP1 00002a01: ISZERO 00002a02: PUSH2 0x2a0f 00002a05: JUMPI 00002a06: RETURNDATASIZE 00002a07: PUSH1 0x00 00002a09: DUP1 00002a0a: RETURNDATACOPY 00002a0b: RETURNDATASIZE 00002a0c: PUSH1 0x00 00002a0e: REVERT 00002a0f: JUMPDEST 00002a10: POP 00002a11: POP 00002a12: POP 00002a13: POP 00002a14: PUSH1 0x40 00002a16: MLOAD 00002a17: RETURNDATASIZE 00002a18: PUSH1 0x20 00002a1a: DUP2 00002a1b: LT 00002a1c: ISZERO 00002a1d: PUSH2 0x2a25 00002a20: JUMPI 00002a21: PUSH1 0x00 00002a23: DUP1 00002a24: REVERT 00002a25: JUMPDEST 00002a26: POP 00002a27: MLOAD 00002a28: SWAP1 00002a29: POP 00002a2a: PUSH2 0x2a3a 00002a2d: JUMP 00002a2e: JUMPDEST 00002a2f: PUSH2 0x2a37 00002a32: DUP7 00002a33: PUSH2 0x2e36 00002a36: JUMP 00002a37: JUMPDEST 00002a38: SWAP2 00002a39: POP 00002a3a: JUMPDEST 00002a3b: PUSH1 0x00 00002a3d: DUP1 00002a3e: DUP1 00002a3f: PUSH2 0xffff 00002a42: DUP6 00002a43: AND 00002a44: ISZERO 00002a45: PUSH2 0x2c56 00002a48: JUMPI 00002a49: PUSH1 0x40 00002a4b: DUP1 00002a4c: MLOAD 00002a4d: PUSH4 0x70a08231 00002a52: PUSH1 0xe0 00002a54: SHL 00002a55: DUP2 00002a56: MSTORE 00002a57: CALLER 00002a58: PUSH1 0x04 00002a5a: DUP3 00002a5b: ADD 00002a5c: MSTORE 00002a5d: SWAP1 00002a5e: MLOAD 00002a5f: PUSH1 0x01 00002a61: PUSH1 0x01 00002a63: PUSH1 0xa0 00002a65: SHL 00002a66: SUB 00002a67: DUP12 00002a68: AND 00002a69: SWAP2 00002a6a: PUSH4 0x70a08231 00002a6f: SWAP2 00002a70: PUSH1 0x24 00002a72: DUP1 00002a73: DUP4 00002a74: ADD 00002a75: SWAP3 00002a76: PUSH1 0x20 00002a78: SWAP3 00002a79: SWAP2 00002a7a: SWAP1 00002a7b: DUP3 00002a7c: SWAP1 00002a7d: SUB 00002a7e: ADD 00002a7f: DUP2 00002a80: DUP7 00002a81: DUP1 00002a82: EXTCODESIZE 00002a83: ISZERO 00002a84: DUP1 00002a85: ISZERO 00002a86: PUSH2 0x2a8e 00002a89: JUMPI 00002a8a: PUSH1 0x00 00002a8c: DUP1 00002a8d: REVERT 00002a8e: JUMPDEST 00002a8f: POP 00002a90: GAS 00002a91: STATICCALL 00002a92: ISZERO 00002a93: DUP1 00002a94: ISZERO 00002a95: PUSH2 0x2aa2 00002a98: JUMPI 00002a99: RETURNDATASIZE 00002a9a: PUSH1 0x00 00002a9c: DUP1 00002a9d: RETURNDATACOPY 00002a9e: RETURNDATASIZE 00002a9f: PUSH1 0x00 00002aa1: REVERT 00002aa2: JUMPDEST 00002aa3: POP 00002aa4: POP 00002aa5: POP 00002aa6: POP 00002aa7: PUSH1 0x40 00002aa9: MLOAD 00002aaa: RETURNDATASIZE 00002aab: PUSH1 0x20 00002aad: DUP2 00002aae: LT 00002aaf: ISZERO 00002ab0: PUSH2 0x2ab8 00002ab3: JUMPI 00002ab4: PUSH1 0x00 00002ab6: DUP1 00002ab7: REVERT 00002ab8: JUMPDEST 00002ab9: POP 00002aba: MLOAD 00002abb: PUSH1 0x08 00002abd: SLOAD 00002abe: SWAP1 00002abf: SWAP4 00002ac0: POP 00002ac1: PUSH1 0x01 00002ac3: PUSH1 0x01 00002ac5: PUSH1 0xa0 00002ac7: SHL 00002ac8: SUB 00002ac9: AND 00002aca: PUSH4 0xf6b911bc 00002acf: DUP11 00002ad0: CALLER 00002ad1: PUSH2 0x2ae2 00002ad4: PUSH1 0x01 00002ad6: PUSH1 0x01 00002ad8: PUSH1 0x68 00002ada: SHL 00002adb: SUB 00002adc: DUP14 00002add: AND 00002ade: PUSH2 0x347b 00002ae1: JUMP 00002ae2: JUMPDEST 00002ae3: PUSH1 0x40 00002ae5: MLOAD 00002ae6: DUP5 00002ae7: PUSH4 0xffffffff 00002aec: AND 00002aed: PUSH1 0xe0 00002aef: SHL 00002af0: DUP2 00002af1: MSTORE 00002af2: PUSH1 0x04 00002af4: ADD 00002af5: DUP1 00002af6: DUP5 00002af7: PUSH1 0x01 00002af9: PUSH1 0x01 00002afb: PUSH1 0xa0 00002afd: SHL 00002afe: SUB 00002aff: AND 00002b00: PUSH1 0x01 00002b02: PUSH1 0x01 00002b04: PUSH1 0xa0 00002b06: SHL 00002b07: SUB 00002b08: AND 00002b09: DUP2 00002b0a: MSTORE 00002b0b: PUSH1 0x20 00002b0d: ADD 00002b0e: DUP4 00002b0f: PUSH1 0x01 00002b11: PUSH1 0x01 00002b13: PUSH1 0xa0 00002b15: SHL 00002b16: SUB 00002b17: AND 00002b18: PUSH1 0x01 00002b1a: PUSH1 0x01 00002b1c: PUSH1 0xa0 00002b1e: SHL 00002b1f: SUB 00002b20: AND 00002b21: DUP2 00002b22: MSTORE 00002b23: PUSH1 0x20 00002b25: ADD 00002b26: DUP3 00002b27: PUSH1 0x01 00002b29: PUSH1 0x01 00002b2b: PUSH1 0x80 00002b2d: SHL 00002b2e: SUB 00002b2f: AND 00002b30: DUP2 00002b31: MSTORE 00002b32: PUSH1 0x20 00002b34: ADD 00002b35: SWAP4 00002b36: POP 00002b37: POP 00002b38: POP 00002b39: POP 00002b3a: PUSH1 0x00 00002b3c: PUSH1 0x40 00002b3e: MLOAD 00002b3f: DUP1 00002b40: DUP4 00002b41: SUB 00002b42: DUP2 00002b43: PUSH1 0x00 00002b45: DUP8 00002b46: DUP1 00002b47: EXTCODESIZE 00002b48: ISZERO 00002b49: DUP1 00002b4a: ISZERO 00002b4b: PUSH2 0x2b53 00002b4e: JUMPI 00002b4f: PUSH1 0x00 00002b51: DUP1 00002b52: REVERT 00002b53: JUMPDEST 00002b54: POP 00002b55: GAS 00002b56: CALL 00002b57: ISZERO 00002b58: DUP1 00002b59: ISZERO 00002b5a: PUSH2 0x2b67 00002b5d: JUMPI 00002b5e: RETURNDATASIZE 00002b5f: PUSH1 0x00 00002b61: DUP1 00002b62: RETURNDATACOPY 00002b63: RETURNDATASIZE 00002b64: PUSH1 0x00 00002b66: REVERT 00002b67: JUMPDEST 00002b68: POP 00002b69: POP 00002b6a: PUSH1 0x40 00002b6c: DUP1 00002b6d: MLOAD 00002b6e: PUSH4 0x70a08231 00002b73: PUSH1 0xe0 00002b75: SHL 00002b76: DUP2 00002b77: MSTORE 00002b78: CALLER 00002b79: PUSH1 0x04 00002b7b: DUP3 00002b7c: ADD 00002b7d: MSTORE 00002b7e: SWAP1 00002b7f: MLOAD 00002b80: PUSH1 0x01 00002b82: PUSH1 0x01 00002b84: PUSH1 0xa0 00002b86: SHL 00002b87: SUB 00002b88: DUP14 00002b89: AND 00002b8a: SWAP4 00002b8b: POP 00002b8c: PUSH4 0x70a08231 00002b91: SWAP3 00002b92: POP 00002b93: PUSH1 0x24 00002b95: DUP1 00002b96: DUP4 00002b97: ADD 00002b98: SWAP3 00002b99: PUSH1 0x20 00002b9b: SWAP3 00002b9c: SWAP2 00002b9d: SWAP1 00002b9e: DUP3 00002b9f: SWAP1 00002ba0: SUB 00002ba1: ADD 00002ba2: DUP2 00002ba3: DUP7 00002ba4: DUP1 00002ba5: EXTCODESIZE 00002ba6: ISZERO 00002ba7: DUP1 00002ba8: ISZERO 00002ba9: PUSH2 0x2bb1 00002bac: JUMPI 00002bad: PUSH1 0x00 00002baf: DUP1 00002bb0: REVERT 00002bb1: JUMPDEST 00002bb2: POP 00002bb3: GAS 00002bb4: STATICCALL 00002bb5: ISZERO 00002bb6: DUP1 00002bb7: ISZERO 00002bb8: PUSH2 0x2bc5 00002bbb: JUMPI 00002bbc: RETURNDATASIZE 00002bbd: PUSH1 0x00 00002bbf: DUP1 00002bc0: RETURNDATACOPY 00002bc1: RETURNDATASIZE 00002bc2: PUSH1 0x00 00002bc4: REVERT 00002bc5: JUMPDEST 00002bc6: POP 00002bc7: POP 00002bc8: POP 00002bc9: POP 00002bca: PUSH1 0x40 00002bcc: MLOAD 00002bcd: RETURNDATASIZE 00002bce: PUSH1 0x20 00002bd0: DUP2 00002bd1: LT 00002bd2: ISZERO 00002bd3: PUSH2 0x2bdb 00002bd6: JUMPI 00002bd7: PUSH1 0x00 00002bd9: DUP1 00002bda: REVERT 00002bdb: JUMPDEST 00002bdc: POP 00002bdd: MLOAD 00002bde: SWAP2 00002bdf: POP 00002be0: PUSH2 0x2bf7 00002be3: PUSH2 0x2bf2 00002be6: DUP5 00002be7: DUP5 00002be8: PUSH4 0xffffffff 00002bed: PUSH2 0x3a3a 00002bf0: AND 00002bf1: JUMP 00002bf2: JUMPDEST 00002bf3: PUSH2 0x347b 00002bf6: JUMP 00002bf7: JUMPDEST 00002bf8: PUSH1 0x15 00002bfa: SLOAD 00002bfb: SWAP1 00002bfc: SWAP2 00002bfd: POP 00002bfe: PUSH1 0x01 00002c00: PUSH1 0x01 00002c02: PUSH1 0x80 00002c04: SHL 00002c05: SUB 00002c06: SWAP1 00002c07: DUP2 00002c08: AND 00002c09: SWAP1 00002c0a: DUP3 00002c0b: AND 00002c0c: GT 00002c0d: ISZERO 00002c0e: PUSH2 0x2c46 00002c11: JUMPI 00002c12: PUSH1 0x40 00002c14: DUP1 00002c15: MLOAD 00002c16: PUSH3 0x461bcd 00002c1a: PUSH1 0xe5 00002c1c: SHL 00002c1d: DUP2 00002c1e: MSTORE 00002c1f: PUSH1 0x20 00002c21: PUSH1 0x04 00002c23: DUP3 00002c24: ADD 00002c25: MSTORE 00002c26: PUSH1 0x05 00002c28: PUSH1 0x24 00002c2a: DUP3 00002c2b: ADD 00002c2c: MSTORE 00002c2d: PUSH5 0x6664303131 00002c33: PUSH1 0xd8 00002c35: SHL 00002c36: PUSH1 0x44 00002c38: DUP3 00002c39: ADD 00002c3a: MSTORE 00002c3b: SWAP1 00002c3c: MLOAD 00002c3d: SWAP1 00002c3e: DUP2 00002c3f: SWAP1 00002c40: SUB 00002c41: PUSH1 0x64 00002c43: ADD 00002c44: SWAP1 00002c45: REVERT 00002c46: JUMPDEST 00002c47: PUSH2 0x2c51 00002c4a: DUP6 00002c4b: DUP3 00002c4c: DUP10 00002c4d: PUSH2 0x34c3 00002c50: JUMP 00002c51: JUMPDEST 00002c52: PUSH2 0x2e0a 00002c55: JUMP 00002c56: JUMPDEST 00002c57: PUSH1 0x40 00002c59: DUP1 00002c5a: MLOAD 00002c5b: PUSH4 0x70a08231 00002c60: PUSH1 0xe0 00002c62: SHL 00002c63: DUP2 00002c64: MSTORE 00002c65: ADDRESS 00002c66: PUSH1 0x04 00002c68: DUP3 00002c69: ADD 00002c6a: MSTORE 00002c6b: SWAP1 00002c6c: MLOAD 00002c6d: PUSH1 0x01 00002c6f: PUSH1 0x01 00002c71: PUSH1 0xa0 00002c73: SHL 00002c74: SUB 00002c75: DUP12 00002c76: AND 00002c77: SWAP2 00002c78: PUSH4 0x70a08231 00002c7d: SWAP2 00002c7e: PUSH1 0x24 00002c80: DUP1 00002c81: DUP4 00002c82: ADD 00002c83: SWAP3 00002c84: PUSH1 0x20 00002c86: SWAP3 00002c87: SWAP2 00002c88: SWAP1 00002c89: DUP3 00002c8a: SWAP1 00002c8b: SUB 00002c8c: ADD 00002c8d: DUP2 00002c8e: DUP7 00002c8f: DUP1 00002c90: EXTCODESIZE 00002c91: ISZERO 00002c92: DUP1 00002c93: ISZERO 00002c94: PUSH2 0x2c9c 00002c97: JUMPI 00002c98: PUSH1 0x00 00002c9a: DUP1 00002c9b: REVERT 00002c9c: JUMPDEST 00002c9d: POP 00002c9e: GAS 00002c9f: STATICCALL 00002ca0: ISZERO 00002ca1: DUP1 00002ca2: ISZERO 00002ca3: PUSH2 0x2cb0 00002ca6: JUMPI 00002ca7: RETURNDATASIZE 00002ca8: PUSH1 0x00 00002caa: DUP1 00002cab: RETURNDATACOPY 00002cac: RETURNDATASIZE 00002cad: PUSH1 0x00 00002caf: REVERT 00002cb0: JUMPDEST 00002cb1: POP 00002cb2: POP 00002cb3: POP 00002cb4: POP 00002cb5: PUSH1 0x40 00002cb7: MLOAD 00002cb8: RETURNDATASIZE 00002cb9: PUSH1 0x20 00002cbb: DUP2 00002cbc: LT 00002cbd: ISZERO 00002cbe: PUSH2 0x2cc6 00002cc1: JUMPI 00002cc2: PUSH1 0x00 00002cc4: DUP1 00002cc5: REVERT 00002cc6: JUMPDEST 00002cc7: POP 00002cc8: MLOAD 00002cc9: SWAP3 00002cca: POP 00002ccb: PUSH2 0x2cf0 00002cce: DUP10 00002ccf: CALLER 00002cd0: ADDRESS 00002cd1: PUSH2 0x2ce2 00002cd4: PUSH1 0x01 00002cd6: PUSH1 0x01 00002cd8: PUSH1 0x68 00002cda: SHL 00002cdb: SUB 00002cdc: DUP14 00002cdd: AND 00002cde: PUSH2 0x347b 00002ce1: JUMP 00002ce2: JUMPDEST 00002ce3: PUSH1 0x01 00002ce5: PUSH1 0x01 00002ce7: PUSH1 0x80 00002ce9: SHL 00002cea: SUB 00002ceb: AND 00002cec: PUSH2 0x3b3f 00002cef: JUMP 00002cf0: JUMPDEST 00002cf1: PUSH2 0x2d29 00002cf4: JUMPI 00002cf5: PUSH1 0x40 00002cf7: DUP1 00002cf8: MLOAD 00002cf9: PUSH3 0x461bcd 00002cfd: PUSH1 0xe5 00002cff: SHL 00002d00: DUP2 00002d01: MSTORE 00002d02: PUSH1 0x20 00002d04: PUSH1 0x04 00002d06: DUP3 00002d07: ADD 00002d08: MSTORE 00002d09: PUSH1 0x05 00002d0b: PUSH1 0x24 00002d0d: DUP3 00002d0e: ADD 00002d0f: MSTORE 00002d10: PUSH5 0x3332181899 00002d16: PUSH1 0xd9 00002d18: SHL 00002d19: PUSH1 0x44 00002d1b: DUP3 00002d1c: ADD 00002d1d: MSTORE 00002d1e: SWAP1 00002d1f: MLOAD 00002d20: SWAP1 00002d21: DUP2 00002d22: SWAP1 00002d23: SUB 00002d24: PUSH1 0x64 00002d26: ADD 00002d27: SWAP1 00002d28: REVERT 00002d29: JUMPDEST 00002d2a: PUSH1 0x40 00002d2c: DUP1 00002d2d: MLOAD 00002d2e: PUSH4 0x70a08231 00002d33: PUSH1 0xe0 00002d35: SHL 00002d36: DUP2 00002d37: MSTORE 00002d38: ADDRESS 00002d39: PUSH1 0x04 00002d3b: DUP3 00002d3c: ADD 00002d3d: MSTORE 00002d3e: SWAP1 00002d3f: MLOAD 00002d40: PUSH1 0x01 00002d42: PUSH1 0x01 00002d44: PUSH1 0xa0 00002d46: SHL 00002d47: SUB 00002d48: DUP12 00002d49: AND 00002d4a: SWAP2 00002d4b: PUSH4 0x70a08231 00002d50: SWAP2 00002d51: PUSH1 0x24 00002d53: DUP1 00002d54: DUP4 00002d55: ADD 00002d56: SWAP3 00002d57: PUSH1 0x20 00002d59: SWAP3 00002d5a: SWAP2 00002d5b: SWAP1 00002d5c: DUP3 00002d5d: SWAP1 00002d5e: SUB 00002d5f: ADD 00002d60: DUP2 00002d61: DUP7 00002d62: DUP1 00002d63: EXTCODESIZE 00002d64: ISZERO 00002d65: DUP1 00002d66: ISZERO 00002d67: PUSH2 0x2d6f 00002d6a: JUMPI 00002d6b: PUSH1 0x00 00002d6d: DUP1 00002d6e: REVERT 00002d6f: JUMPDEST 00002d70: POP 00002d71: GAS 00002d72: STATICCALL 00002d73: ISZERO 00002d74: DUP1 00002d75: ISZERO 00002d76: PUSH2 0x2d83 00002d79: JUMPI 00002d7a: RETURNDATASIZE 00002d7b: PUSH1 0x00 00002d7d: DUP1 00002d7e: RETURNDATACOPY 00002d7f: RETURNDATASIZE 00002d80: PUSH1 0x00 00002d82: REVERT 00002d83: JUMPDEST 00002d84: POP 00002d85: POP 00002d86: POP 00002d87: POP 00002d88: PUSH1 0x40 00002d8a: MLOAD 00002d8b: RETURNDATASIZE 00002d8c: PUSH1 0x20 00002d8e: DUP2 00002d8f: LT 00002d90: ISZERO 00002d91: PUSH2 0x2d99 00002d94: JUMPI 00002d95: PUSH1 0x00 00002d97: DUP1 00002d98: REVERT 00002d99: JUMPDEST 00002d9a: POP 00002d9b: MLOAD 00002d9c: SWAP2 00002d9d: POP 00002d9e: PUSH2 0x2db0 00002da1: PUSH2 0x2bf2 00002da4: DUP4 00002da5: DUP6 00002da6: PUSH4 0xffffffff 00002dab: PUSH2 0x3a3a 00002dae: AND 00002daf: JUMP 00002db0: JUMPDEST 00002db1: PUSH1 0x15 00002db3: SLOAD 00002db4: SWAP1 00002db5: SWAP2 00002db6: POP 00002db7: PUSH1 0x01 00002db9: PUSH1 0x01 00002dbb: PUSH1 0x80 00002dbd: SHL 00002dbe: SUB 00002dbf: SWAP1 00002dc0: DUP2 00002dc1: AND 00002dc2: SWAP1 00002dc3: DUP3 00002dc4: AND 00002dc5: GT 00002dc6: ISZERO 00002dc7: PUSH2 0x2dff 00002dca: JUMPI 00002dcb: PUSH1 0x40 00002dcd: DUP1 00002dce: MLOAD 00002dcf: PUSH3 0x461bcd 00002dd3: PUSH1 0xe5 00002dd5: SHL 00002dd6: DUP2 00002dd7: MSTORE 00002dd8: PUSH1 0x20 00002dda: PUSH1 0x04 00002ddc: DUP3 00002ddd: ADD 00002dde: MSTORE 00002ddf: PUSH1 0x05 00002de1: PUSH1 0x24 00002de3: DUP3 00002de4: ADD 00002de5: MSTORE 00002de6: PUSH5 0x6664303133 00002dec: PUSH1 0xd8 00002dee: SHL 00002def: PUSH1 0x44 00002df1: DUP3 00002df2: ADD 00002df3: MSTORE 00002df4: SWAP1 00002df5: MLOAD 00002df6: SWAP1 00002df7: DUP2 00002df8: SWAP1 00002df9: SUB 00002dfa: PUSH1 0x64 00002dfc: ADD 00002dfd: SWAP1 00002dfe: REVERT 00002dff: JUMPDEST 00002e00: PUSH2 0x2e0a 00002e03: DUP5 00002e04: DUP3 00002e05: DUP10 00002e06: PUSH2 0x34c3 00002e09: JUMP 00002e0a: JUMPDEST 00002e0b: POP 00002e0c: POP 00002e0d: POP 00002e0e: POP 00002e0f: POP 00002e10: PUSH1 0x01 00002e12: PUSH1 0x00 00002e14: DUP1 00002e15: MLOAD 00002e16: PUSH1 0x20 00002e18: PUSH2 0x4172 00002e1b: DUP4 00002e1c: CODECOPY 00002e1d: DUP2 00002e1e: MLOAD 00002e1f: SWAP2 00002e20: MSTORE 00002e21: SSTORE 00002e22: POP 00002e23: POP 00002e24: POP 00002e25: POP 00002e26: JUMP 00002e27: JUMPDEST 00002e28: PUSH1 0x14 00002e2a: SLOAD 00002e2b: PUSH1 0x01 00002e2d: PUSH1 0x01 00002e2f: PUSH1 0xa0 00002e31: SHL 00002e32: SUB 00002e33: AND 00002e34: DUP2 00002e35: JUMP 00002e36: JUMPDEST 00002e37: PUSH1 0x01 00002e39: PUSH1 0x01 00002e3b: PUSH1 0xa0 00002e3d: SHL 00002e3e: SUB 00002e3f: DUP2 00002e40: AND 00002e41: PUSH1 0x00 00002e43: SWAP1 00002e44: DUP2 00002e45: MSTORE 00002e46: PUSH1 0x02 00002e48: PUSH1 0x20 00002e4a: MSTORE 00002e4b: PUSH1 0x40 00002e4d: DUP2 00002e4e: KECCAK256 00002e4f: SLOAD 00002e50: PUSH2 0xffff 00002e53: AND 00002e54: DUP1 00002e55: PUSH2 0x2e8e 00002e58: JUMPI 00002e59: PUSH1 0x40 00002e5b: DUP1 00002e5c: MLOAD 00002e5d: PUSH3 0x461bcd 00002e61: PUSH1 0xe5 00002e63: SHL 00002e64: DUP2 00002e65: MSTORE 00002e66: PUSH1 0x20 00002e68: PUSH1 0x04 00002e6a: DUP1 00002e6b: DUP4 00002e6c: ADD 00002e6d: SWAP2 00002e6e: SWAP1 00002e6f: SWAP2 00002e70: MSTORE 00002e71: PUSH1 0x24 00002e73: DUP3 00002e74: ADD 00002e75: MSTORE 00002e76: PUSH4 0x706d7333 00002e7b: PUSH1 0xe0 00002e7d: SHL 00002e7e: PUSH1 0x44 00002e80: DUP3 00002e81: ADD 00002e82: MSTORE 00002e83: SWAP1 00002e84: MLOAD 00002e85: SWAP1 00002e86: DUP2 00002e87: SWAP1 00002e88: SUB 00002e89: PUSH1 0x64 00002e8b: ADD 00002e8c: SWAP1 00002e8d: REVERT 00002e8e: JUMPDEST 00002e8f: PUSH2 0xffff 00002e92: DUP2 00002e93: DUP2 00002e94: AND 00002e95: GT 00002e96: ISZERO 00002e97: PUSH2 0x2ed0 00002e9a: JUMPI 00002e9b: PUSH1 0x40 00002e9d: DUP1 00002e9e: MLOAD 00002e9f: PUSH3 0x461bcd 00002ea3: PUSH1 0xe5 00002ea5: SHL 00002ea6: DUP2 00002ea7: MSTORE 00002ea8: PUSH1 0x20 00002eaa: PUSH1 0x04 00002eac: DUP1 00002ead: DUP4 00002eae: ADD 00002eaf: SWAP2 00002eb0: SWAP1 00002eb1: SWAP2 00002eb2: MSTORE 00002eb3: PUSH1 0x24 00002eb5: DUP3 00002eb6: ADD 00002eb7: MSTORE 00002eb8: PUSH4 0x1c1b5ccd 00002ebd: PUSH1 0xe2 00002ebf: SHL 00002ec0: PUSH1 0x44 00002ec2: DUP3 00002ec3: ADD 00002ec4: MSTORE 00002ec5: SWAP1 00002ec6: MLOAD 00002ec7: SWAP1 00002ec8: DUP2 00002ec9: SWAP1 00002eca: SUB 00002ecb: PUSH1 0x64 00002ecd: ADD 00002ece: SWAP1 00002ecf: REVERT 00002ed0: JUMPDEST 00002ed1: SWAP3 00002ed2: SWAP2 00002ed3: POP 00002ed4: POP 00002ed5: JUMP 00002ed6: JUMPDEST 00002ed7: PUSH1 0x00 00002ed9: DUP1 00002eda: MLOAD 00002edb: PUSH1 0x20 00002edd: PUSH2 0x4172 00002ee0: DUP4 00002ee1: CODECOPY 00002ee2: DUP2 00002ee3: MLOAD 00002ee4: SWAP2 00002ee5: MSTORE 00002ee6: SLOAD 00002ee7: DUP1 00002ee8: PUSH2 0x2f26 00002eeb: JUMPI 00002eec: PUSH1 0x40 00002eee: DUP1 00002eef: MLOAD 00002ef0: PUSH3 0x461bcd 00002ef4: PUSH1 0xe5 00002ef6: SHL 00002ef7: DUP2 00002ef8: MSTORE 00002ef9: PUSH1 0x20 00002efb: PUSH1 0x04 00002efd: DUP3 00002efe: ADD 00002eff: MSTORE 00002f00: PUSH1 0x1f 00002f02: PUSH1 0x24 00002f04: DUP3 00002f05: ADD 00002f06: MSTORE 00002f07: PUSH1 0x00 00002f09: DUP1 00002f0a: MLOAD 00002f0b: PUSH1 0x20 00002f0d: PUSH2 0x412c 00002f10: DUP4 00002f11: CODECOPY 00002f12: DUP2 00002f13: MLOAD 00002f14: SWAP2 00002f15: MSTORE 00002f16: PUSH1 0x44 00002f18: DUP3 00002f19: ADD 00002f1a: MSTORE 00002f1b: SWAP1 00002f1c: MLOAD 00002f1d: SWAP1 00002f1e: DUP2 00002f1f: SWAP1 00002f20: SUB 00002f21: PUSH1 0x64 00002f23: ADD 00002f24: SWAP1 00002f25: REVERT 00002f26: JUMPDEST 00002f27: PUSH1 0x00 00002f29: PUSH1 0x00 00002f2b: DUP1 00002f2c: MLOAD 00002f2d: PUSH1 0x20 00002f2f: PUSH2 0x4172 00002f32: DUP4 00002f33: CODECOPY 00002f34: DUP2 00002f35: MLOAD 00002f36: SWAP2 00002f37: MSTORE 00002f38: SSTORE 00002f39: PUSH1 0x01 00002f3b: PUSH1 0x01 00002f3d: PUSH1 0xa0 00002f3f: SHL 00002f40: SUB 00002f41: DUP3 00002f42: AND 00002f43: PUSH2 0x2f7b 00002f46: JUMPI 00002f47: PUSH1 0x40 00002f49: DUP1 00002f4a: MLOAD 00002f4b: PUSH3 0x461bcd 00002f4f: PUSH1 0xe5 00002f51: SHL 00002f52: DUP2 00002f53: MSTORE 00002f54: PUSH1 0x20 00002f56: PUSH1 0x04 00002f58: DUP3 00002f59: ADD 00002f5a: MSTORE 00002f5b: PUSH1 0x05 00002f5d: PUSH1 0x24 00002f5f: DUP3 00002f60: ADD 00002f61: MSTORE 00002f62: PUSH5 0x34b8309899 00002f68: PUSH1 0xd9 00002f6a: SHL 00002f6b: PUSH1 0x44 00002f6d: DUP3 00002f6e: ADD 00002f6f: MSTORE 00002f70: SWAP1 00002f71: MLOAD 00002f72: SWAP1 00002f73: DUP2 00002f74: SWAP1 00002f75: SUB 00002f76: PUSH1 0x64 00002f78: ADD 00002f79: SWAP1 00002f7a: REVERT 00002f7b: JUMPDEST 00002f7c: PUSH1 0x01 00002f7e: PUSH1 0x01 00002f80: PUSH1 0xa0 00002f82: SHL 00002f83: SUB 00002f84: DUP5 00002f85: AND 00002f86: PUSH1 0x00 00002f88: SWAP1 00002f89: DUP2 00002f8a: MSTORE 00002f8b: PUSH1 0x02 00002f8d: PUSH1 0x20 00002f8f: MSTORE 00002f90: PUSH1 0x40 00002f92: DUP2 00002f93: KECCAK256 00002f94: SLOAD 00002f95: PUSH2 0xffff 00002f98: AND 00002f99: SWAP1 00002f9a: DUP2 00002f9b: PUSH2 0x301e 00002f9e: JUMPI 00002f9f: PUSH1 0x07 00002fa1: SLOAD 00002fa2: PUSH1 0x40 00002fa4: DUP1 00002fa5: MLOAD 00002fa6: PUSH4 0x75698bb1 00002fab: PUSH1 0xe1 00002fad: SHL 00002fae: DUP2 00002faf: MSTORE 00002fb0: PUSH1 0x01 00002fb2: PUSH1 0x01 00002fb4: PUSH1 0xa0 00002fb6: SHL 00002fb7: SUB 00002fb8: DUP10 00002fb9: DUP2 00002fba: AND 00002fbb: PUSH1 0x04 00002fbd: DUP4 00002fbe: ADD 00002fbf: MSTORE 00002fc0: SWAP2 00002fc1: MLOAD 00002fc2: SWAP2 00002fc3: SWAP1 00002fc4: SWAP3 00002fc5: AND 00002fc6: SWAP2 00002fc7: PUSH4 0xead31762 00002fcc: SWAP2 00002fcd: PUSH1 0x24 00002fcf: DUP1 00002fd0: DUP4 00002fd1: ADD 00002fd2: SWAP3 00002fd3: PUSH1 0x20 00002fd5: SWAP3 00002fd6: SWAP2 00002fd7: SWAP1 00002fd8: DUP3 00002fd9: SWAP1 00002fda: SUB 00002fdb: ADD 00002fdc: DUP2 00002fdd: DUP7 00002fde: DUP1 00002fdf: EXTCODESIZE 00002fe0: ISZERO 00002fe1: DUP1 00002fe2: ISZERO 00002fe3: PUSH2 0x2feb 00002fe6: JUMPI 00002fe7: PUSH1 0x00 00002fe9: DUP1 00002fea: REVERT 00002feb: JUMPDEST 00002fec: POP 00002fed: GAS 00002fee: STATICCALL 00002fef: ISZERO 00002ff0: DUP1 00002ff1: ISZERO 00002ff2: PUSH2 0x2fff 00002ff5: JUMPI 00002ff6: RETURNDATASIZE 00002ff7: PUSH1 0x00 00002ff9: DUP1 00002ffa: RETURNDATACOPY 00002ffb: RETURNDATASIZE 00002ffc: PUSH1 0x00 00002ffe: REVERT 00002fff: JUMPDEST 00003000: POP 00003001: POP 00003002: POP 00003003: POP 00003004: PUSH1 0x40 00003006: MLOAD 00003007: RETURNDATASIZE 00003008: PUSH1 0x20 0000300a: DUP2 0000300b: LT 0000300c: ISZERO 0000300d: PUSH2 0x3015 00003010: JUMPI 00003011: PUSH1 0x00 00003013: DUP1 00003014: REVERT 00003015: JUMPDEST 00003016: POP 00003017: MLOAD 00003018: SWAP1 00003019: POP 0000301a: PUSH2 0x302a 0000301d: JUMP 0000301e: JUMPDEST 0000301f: PUSH2 0x3027 00003022: DUP7 00003023: PUSH2 0x2e36 00003026: JUMP 00003027: JUMPDEST 00003028: SWAP1 00003029: POP 0000302a: JUMPDEST 0000302b: PUSH1 0x00 0000302d: PUSH2 0x3036 00003030: DUP6 00003031: DUP4 00003032: PUSH2 0x345e 00003035: JUMP 00003036: JUMPDEST 00003037: PUSH1 0x01 00003039: PUSH1 0x01 0000303b: PUSH1 0x50 0000303d: SHL 0000303e: SUB 0000303f: NOT 00003040: DUP2 00003041: AND 00003042: PUSH1 0x00 00003044: SWAP1 00003045: DUP2 00003046: MSTORE 00003047: PUSH1 0x09 00003049: PUSH1 0x20 0000304b: SWAP1 0000304c: DUP2 0000304d: MSTORE 0000304e: PUSH1 0x40 00003050: DUP1 00003051: DUP4 00003052: KECCAK256 00003053: SLOAD 00003054: DUP2 00003055: MLOAD 00003056: PUSH4 0x9a83400d 0000305b: PUSH1 0xe0 0000305d: SHL 0000305e: DUP2 0000305f: MSTORE 00003060: PUSH1 0x01 00003062: PUSH1 0x01 00003064: PUSH1 0xa0 00003066: SHL 00003067: SUB 00003068: DUP14 00003069: DUP2 0000306a: AND 0000306b: PUSH1 0x04 0000306d: DUP4 0000306e: ADD 0000306f: MSTORE 00003070: DUP12 00003071: AND 00003072: PUSH1 0x24 00003074: DUP3 00003075: ADD 00003076: MSTORE 00003077: PUSH1 0x01 00003079: PUSH1 0x01 0000307b: PUSH1 0x80 0000307d: SHL 0000307e: SUB 0000307f: DUP13 00003080: DUP2 00003081: AND 00003082: PUSH1 0x44 00003084: DUP4 00003085: ADD 00003086: MSTORE 00003087: SWAP1 00003088: SWAP2 00003089: AND 0000308a: PUSH1 0x64 0000308c: DUP3 0000308d: ADD 0000308e: DUP2 0000308f: SWAP1 00003090: MSTORE 00003091: SWAP2 00003092: MLOAD 00003093: SWAP5 00003094: SWAP6 00003095: POP 00003096: SWAP1 00003097: SWAP4 00003098: ADDRESS 00003099: SWAP3 0000309a: PUSH4 0x9a83400d 0000309f: SWAP3 000030a0: PUSH1 0x84 000030a2: DUP1 000030a3: DUP3 000030a4: ADD 000030a5: SWAP4 000030a6: SWAP2 000030a7: DUP3 000030a8: SWAP1 000030a9: SUB 000030aa: ADD 000030ab: DUP2 000030ac: DUP8 000030ad: DUP8 000030ae: DUP1 000030af: EXTCODESIZE 000030b0: ISZERO 000030b1: DUP1 000030b2: ISZERO 000030b3: PUSH2 0x30bb 000030b6: JUMPI 000030b7: PUSH1 0x00 000030b9: DUP1 000030ba: REVERT 000030bb: JUMPDEST 000030bc: POP 000030bd: GAS 000030be: CALL 000030bf: ISZERO 000030c0: DUP1 000030c1: ISZERO 000030c2: PUSH2 0x30cf 000030c5: JUMPI 000030c6: RETURNDATASIZE 000030c7: PUSH1 0x00 000030c9: DUP1 000030ca: RETURNDATACOPY 000030cb: RETURNDATASIZE 000030cc: PUSH1 0x00 000030ce: REVERT 000030cf: JUMPDEST 000030d0: POP 000030d1: POP 000030d2: POP 000030d3: POP 000030d4: PUSH1 0x40 000030d6: MLOAD 000030d7: RETURNDATASIZE 000030d8: PUSH1 0x20 000030da: DUP2 000030db: LT 000030dc: ISZERO 000030dd: PUSH2 0x30e5 000030e0: JUMPI 000030e1: PUSH1 0x00 000030e3: DUP1 000030e4: REVERT 000030e5: JUMPDEST 000030e6: POP 000030e7: MLOAD 000030e8: SWAP1 000030e9: POP 000030ea: PUSH2 0x2e0a 000030ed: DUP5 000030ee: DUP3 000030ef: DUP10 000030f0: PUSH2 0x3a7c 000030f3: JUMP 000030f4: JUMPDEST 000030f5: PUSH1 0x00 000030f7: PUSH1 0x09 000030f9: PUSH1 0x00 000030fb: PUSH2 0x3104 000030fe: DUP6 000030ff: DUP6 00003100: PUSH2 0x345e 00003103: JUMP 00003104: JUMPDEST 00003105: PUSH1 0x01 00003107: PUSH1 0x01 00003109: PUSH1 0x50 0000310b: SHL 0000310c: SUB 0000310d: NOT 0000310e: AND 0000310f: DUP2 00003110: MSTORE 00003111: PUSH1 0x20 00003113: DUP2 00003114: ADD 00003115: SWAP2 00003116: SWAP1 00003117: SWAP2 00003118: MSTORE 00003119: PUSH1 0x40 0000311b: ADD 0000311c: PUSH1 0x00 0000311e: KECCAK256 0000311f: SLOAD 00003120: PUSH1 0x01 00003122: PUSH1 0x01 00003124: PUSH1 0x80 00003126: SHL 00003127: SUB 00003128: AND 00003129: SWAP4 0000312a: SWAP3 0000312b: POP 0000312c: POP 0000312d: POP 0000312e: JUMP 0000312f: JUMPDEST 00003130: PUSH1 0x0b 00003132: SLOAD 00003133: PUSH1 0x01 00003135: PUSH1 0x80 00003137: SHL 00003138: SWAP1 00003139: DIV 0000313a: PUSH4 0xffffffff 0000313f: AND 00003140: DUP2 00003141: JUMP 00003142: JUMPDEST 00003143: PUSH1 0x02 00003145: PUSH1 0x20 00003147: MSTORE 00003148: PUSH1 0x00 0000314a: SWAP1 0000314b: DUP2 0000314c: MSTORE 0000314d: PUSH1 0x40 0000314f: SWAP1 00003150: KECCAK256 00003151: SLOAD 00003152: PUSH2 0xffff 00003155: AND 00003156: DUP2 00003157: JUMP 00003158: JUMPDEST 00003159: PUSH1 0x04 0000315b: SLOAD 0000315c: DUP2 0000315d: JUMP 0000315e: JUMPDEST 0000315f: PUSH1 0x0f 00003161: SLOAD 00003162: PUSH1 0xff 00003164: AND 00003165: ISZERO 00003166: PUSH2 0x14c6 00003169: JUMPI 0000316a: PUSH1 0x40 0000316c: DUP1 0000316d: MLOAD 0000316e: PUSH3 0x461bcd 00003172: PUSH1 0xe5 00003174: SHL 00003175: DUP2 00003176: MSTORE 00003177: PUSH1 0x20 00003179: PUSH1 0x04 0000317b: DUP3 0000317c: ADD 0000317d: MSTORE 0000317e: PUSH1 0x05 00003180: PUSH1 0x24 00003182: DUP3 00003183: ADD 00003184: MSTORE 00003185: PUSH5 0x6672653131 0000318b: PUSH1 0xd8 0000318d: SHL 0000318e: PUSH1 0x44 00003190: DUP3 00003191: ADD 00003192: MSTORE 00003193: SWAP1 00003194: MLOAD 00003195: SWAP1 00003196: DUP2 00003197: SWAP1 00003198: SUB 00003199: PUSH1 0x64 0000319b: ADD 0000319c: SWAP1 0000319d: REVERT 0000319e: JUMPDEST 0000319f: PUSH1 0x60 000031a1: DUP2 000031a2: PUSH1 0x00 000031a4: ADD 000031a5: MLOAD 000031a6: DUP3 000031a7: PUSH1 0x20 000031a9: ADD 000031aa: MLOAD 000031ab: DUP4 000031ac: PUSH1 0x40 000031ae: ADD 000031af: MLOAD 000031b0: DUP5 000031b1: PUSH1 0x60 000031b3: ADD 000031b4: MLOAD 000031b5: PUSH1 0x40 000031b7: MLOAD 000031b8: PUSH1 0x20 000031ba: ADD 000031bb: DUP1 000031bc: DUP6 000031bd: PUSH4 0xffffffff 000031c2: AND 000031c3: PUSH4 0xffffffff 000031c8: AND 000031c9: PUSH1 0xe0 000031cb: SHL 000031cc: DUP2 000031cd: MSTORE 000031ce: PUSH1 0x04 000031d0: ADD 000031d1: DUP5 000031d2: PUSH1 0x01 000031d4: PUSH1 0x01 000031d6: PUSH1 0xa0 000031d8: SHL 000031d9: SUB 000031da: AND 000031db: PUSH1 0x01 000031dd: PUSH1 0x01 000031df: PUSH1 0xa0 000031e1: SHL 000031e2: SUB 000031e3: AND 000031e4: PUSH1 0x60 000031e6: SHL 000031e7: DUP2 000031e8: MSTORE 000031e9: PUSH1 0x14 000031eb: ADD 000031ec: DUP4 000031ed: PUSH2 0xffff 000031f0: AND 000031f1: PUSH2 0xffff 000031f4: AND 000031f5: PUSH1 0xf0 000031f7: SHL 000031f8: DUP2 000031f9: MSTORE 000031fa: PUSH1 0x02 000031fc: ADD 000031fd: DUP3 000031fe: PUSH1 0x01 00003200: PUSH1 0x01 00003202: PUSH1 0x80 00003204: SHL 00003205: SUB 00003206: AND 00003207: PUSH1 0x01 00003209: PUSH1 0x01 0000320b: PUSH1 0x80 0000320d: SHL 0000320e: SUB 0000320f: AND 00003210: PUSH1 0x80 00003212: SHL 00003213: DUP2 00003214: MSTORE 00003215: PUSH1 0x10 00003217: ADD 00003218: SWAP5 00003219: POP 0000321a: POP 0000321b: POP 0000321c: POP 0000321d: POP 0000321e: PUSH1 0x40 00003220: MLOAD 00003221: PUSH1 0x20 00003223: DUP2 00003224: DUP4 00003225: SUB 00003226: SUB 00003227: DUP2 00003228: MSTORE 00003229: SWAP1 0000322a: PUSH1 0x40 0000322c: MSTORE 0000322d: SWAP1 0000322e: POP 0000322f: SWAP2 00003230: SWAP1 00003231: POP 00003232: JUMP 00003233: JUMPDEST 00003234: PUSH1 0x12 00003236: SLOAD 00003237: PUSH1 0x40 00003239: DUP1 0000323a: MLOAD 0000323b: PUSH1 0x60 0000323d: DUP2 0000323e: ADD 0000323f: SWAP1 00003240: SWAP2 00003241: MSTORE 00003242: NUMBER 00003243: PUSH2 0x4380 00003246: ADD 00003247: SWAP2 00003248: PUSH1 0x01 0000324a: PUSH1 0x01 0000324c: PUSH1 0x40 0000324e: SHL 0000324f: SUB 00003250: DUP1 00003251: DUP3 00003252: AND 00003253: PUSH1 0x01 00003255: PUSH1 0x40 00003257: SHL 00003258: SWAP1 00003259: SWAP3 0000325a: DIV 0000325b: AND 0000325c: ADD 0000325d: SWAP1 0000325e: DUP1 0000325f: DUP7 00003260: PUSH1 0x0b 00003262: DUP2 00003263: GT 00003264: ISZERO 00003265: PUSH2 0x326a 00003268: JUMPI 00003269: INVALID 0000326a: JUMPDEST 0000326b: DUP2 0000326c: MSTORE 0000326d: PUSH1 0x20 0000326f: DUP1 00003270: DUP3 00003271: ADD 00003272: DUP8 00003273: SWAP1 00003274: MSTORE 00003275: PUSH1 0x40 00003277: SWAP2 00003278: DUP3 00003279: ADD 0000327a: DUP6 0000327b: SWAP1 0000327c: MSTORE 0000327d: PUSH1 0x01 0000327f: PUSH1 0x01 00003281: PUSH1 0x40 00003283: SHL 00003284: SUB 00003285: DUP5 00003286: AND 00003287: PUSH1 0x00 00003289: SWAP1 0000328a: DUP2 0000328b: MSTORE 0000328c: PUSH1 0x11 0000328e: SWAP1 0000328f: SWAP2 00003290: MSTORE 00003291: KECCAK256 00003292: DUP2 00003293: MLOAD 00003294: DUP2 00003295: SLOAD 00003296: DUP3 00003297: SWAP1 00003298: PUSH1 0xff 0000329a: NOT 0000329b: AND 0000329c: PUSH1 0x01 0000329e: DUP4 0000329f: PUSH1 0x0b 000032a1: DUP2 000032a2: GT 000032a3: ISZERO 000032a4: PUSH2 0x32a9 000032a7: JUMPI 000032a8: INVALID 000032a9: JUMPDEST 000032aa: MUL 000032ab: OR 000032ac: SWAP1 000032ad: SSTORE 000032ae: POP 000032af: PUSH1 0x20 000032b1: DUP3 000032b2: DUP2 000032b3: ADD 000032b4: MLOAD 000032b5: DUP1 000032b6: MLOAD 000032b7: PUSH2 0x32c6 000032ba: SWAP3 000032bb: PUSH1 0x01 000032bd: DUP6 000032be: ADD 000032bf: SWAP3 000032c0: ADD 000032c1: SWAP1 000032c2: PUSH2 0x4069 000032c5: JUMP 000032c6: JUMPDEST 000032c7: POP 000032c8: PUSH1 0x40 000032ca: DUP3 000032cb: ADD 000032cc: MLOAD 000032cd: DUP2 000032ce: PUSH1 0x02 000032d0: ADD 000032d1: SSTORE 000032d2: SWAP1 000032d3: POP 000032d4: POP 000032d5: PUSH32 0x61a320c641d3946236359022627bfeb930f7a628b0d863a325a1d4983f2e4238 000032f6: CALLER 000032f7: DUP3 000032f8: DUP8 000032f9: DUP8 000032fa: DUP8 000032fb: DUP8 000032fc: PUSH1 0x40 000032fe: MLOAD 000032ff: DUP1 00003300: DUP8 00003301: PUSH1 0x01 00003303: PUSH1 0x01 00003305: PUSH1 0xa0 00003307: SHL 00003308: SUB 00003309: AND 0000330a: PUSH1 0x01 0000330c: PUSH1 0x01 0000330e: PUSH1 0xa0 00003310: SHL 00003311: SUB 00003312: AND 00003313: DUP2 00003314: MSTORE 00003315: PUSH1 0x20 00003317: ADD 00003318: DUP7 00003319: PUSH1 0x01 0000331b: PUSH1 0x01 0000331d: PUSH1 0x40 0000331f: SHL 00003320: SUB 00003321: AND 00003322: PUSH1 0x01 00003324: PUSH1 0x01 00003326: PUSH1 0x40 00003328: SHL 00003329: SUB 0000332a: AND 0000332b: DUP2 0000332c: MSTORE 0000332d: PUSH1 0x20 0000332f: ADD 00003330: DUP6 00003331: PUSH1 0x0b 00003333: DUP2 00003334: GT 00003335: ISZERO 00003336: PUSH2 0x333b 00003339: JUMPI 0000333a: INVALID 0000333b: JUMPDEST 0000333c: PUSH1 0xff 0000333e: AND 0000333f: DUP2 00003340: MSTORE 00003341: PUSH1 0x20 00003343: ADD 00003344: DUP1 00003345: PUSH1 0x20 00003347: ADD 00003348: DUP1 00003349: PUSH1 0x20 0000334b: ADD 0000334c: DUP5 0000334d: DUP2 0000334e: MSTORE 0000334f: PUSH1 0x20 00003351: ADD 00003352: DUP4 00003353: DUP2 00003354: SUB 00003355: DUP4 00003356: MSTORE 00003357: DUP7 00003358: DUP2 00003359: DUP2 0000335a: MLOAD 0000335b: DUP2 0000335c: MSTORE 0000335d: PUSH1 0x20 0000335f: ADD 00003360: SWAP2 00003361: POP 00003362: DUP1 00003363: MLOAD 00003364: SWAP1 00003365: PUSH1 0x20 00003367: ADD 00003368: SWAP1 00003369: DUP1 0000336a: DUP4 0000336b: DUP4 0000336c: PUSH1 0x00 0000336e: JUMPDEST 0000336f: DUP4 00003370: DUP2 00003371: LT 00003372: ISZERO 00003373: PUSH2 0x3386 00003376: JUMPI 00003377: DUP2 00003378: DUP2 00003379: ADD 0000337a: MLOAD 0000337b: DUP4 0000337c: DUP3 0000337d: ADD 0000337e: MSTORE 0000337f: PUSH1 0x20 00003381: ADD 00003382: PUSH2 0x336e 00003385: JUMP 00003386: JUMPDEST 00003387: POP 00003388: POP 00003389: POP 0000338a: POP 0000338b: SWAP1 0000338c: POP 0000338d: SWAP1 0000338e: DUP2 0000338f: ADD 00003390: SWAP1 00003391: PUSH1 0x1f 00003393: AND 00003394: DUP1 00003395: ISZERO 00003396: PUSH2 0x33b3 00003399: JUMPI 0000339a: DUP1 0000339b: DUP3 0000339c: SUB 0000339d: DUP1 0000339e: MLOAD 0000339f: PUSH1 0x01 000033a1: DUP4 000033a2: PUSH1 0x20 000033a4: SUB 000033a5: PUSH2 0x0100 000033a8: EXP 000033a9: SUB 000033aa: NOT 000033ab: AND 000033ac: DUP2 000033ad: MSTORE 000033ae: PUSH1 0x20 000033b0: ADD 000033b1: SWAP2 000033b2: POP 000033b3: JUMPDEST 000033b4: POP 000033b5: DUP4 000033b6: DUP2 000033b7: SUB 000033b8: DUP3 000033b9: MSTORE 000033ba: DUP6 000033bb: MLOAD 000033bc: DUP2 000033bd: MSTORE 000033be: DUP6 000033bf: MLOAD 000033c0: PUSH1 0x20 000033c2: SWAP2 000033c3: DUP3 000033c4: ADD 000033c5: SWAP2 000033c6: DUP8 000033c7: ADD 000033c8: SWAP1 000033c9: DUP1 000033ca: DUP4 000033cb: DUP4 000033cc: PUSH1 0x00 000033ce: JUMPDEST 000033cf: DUP4 000033d0: DUP2 000033d1: LT 000033d2: ISZERO 000033d3: PUSH2 0x33e6 000033d6: JUMPI 000033d7: DUP2 000033d8: DUP2 000033d9: ADD 000033da: MLOAD 000033db: DUP4 000033dc: DUP3 000033dd: ADD 000033de: MSTORE 000033df: PUSH1 0x20 000033e1: ADD 000033e2: PUSH2 0x33ce 000033e5: JUMP 000033e6: JUMPDEST 000033e7: POP 000033e8: POP 000033e9: POP 000033ea: POP 000033eb: SWAP1 000033ec: POP 000033ed: SWAP1 000033ee: DUP2 000033ef: ADD 000033f0: SWAP1 000033f1: PUSH1 0x1f 000033f3: AND 000033f4: DUP1 000033f5: ISZERO 000033f6: PUSH2 0x3413 000033f9: JUMPI 000033fa: DUP1 000033fb: DUP3 000033fc: SUB 000033fd: DUP1 000033fe: MLOAD 000033ff: PUSH1 0x01 00003401: DUP4 00003402: PUSH1 0x20 00003404: SUB 00003405: PUSH2 0x0100 00003408: EXP 00003409: SUB 0000340a: NOT 0000340b: AND 0000340c: DUP2 0000340d: MSTORE 0000340e: PUSH1 0x20 00003410: ADD 00003411: SWAP2 00003412: POP 00003413: JUMPDEST 00003414: POP 00003415: SWAP9 00003416: POP 00003417: POP 00003418: POP 00003419: POP 0000341a: POP 0000341b: POP 0000341c: POP 0000341d: POP 0000341e: POP 0000341f: PUSH1 0x40 00003421: MLOAD 00003422: DUP1 00003423: SWAP2 00003424: SUB 00003425: SWAP1 00003426: LOG1 00003427: POP 00003428: POP 00003429: PUSH1 0x12 0000342b: DUP1 0000342c: SLOAD 0000342d: PUSH1 0x01 0000342f: PUSH1 0x01 00003431: PUSH1 0x01 00003433: PUSH1 0x40 00003435: SHL 00003436: SUB 00003437: PUSH1 0x01 00003439: PUSH1 0x40 0000343b: SHL 0000343c: DUP1 0000343d: DUP5 0000343e: DIV 0000343f: DUP3 00003440: AND 00003441: SWAP3 00003442: SWAP1 00003443: SWAP3 00003444: ADD 00003445: AND 00003446: MUL 00003447: PUSH8 0xffffffffffffffff 00003450: PUSH1 0x40 00003452: SHL 00003453: NOT 00003454: SWAP1 00003455: SWAP2 00003456: AND 00003457: OR 00003458: SWAP1 00003459: SSTORE 0000345a: POP 0000345b: POP 0000345c: POP 0000345d: JUMP 0000345e: JUMPDEST 0000345f: PUSH1 0xa0 00003461: SHL 00003462: PUSH2 0xffff 00003465: PUSH1 0xa0 00003467: SHL 00003468: AND 00003469: PUSH1 0x01 0000346b: PUSH1 0x01 0000346d: PUSH1 0xa0 0000346f: SHL 00003470: SUB 00003471: SWAP2 00003472: SWAP1 00003473: SWAP2 00003474: AND 00003475: OR 00003476: PUSH1 0x50 00003478: SHL 00003479: SWAP1 0000347a: JUMP 0000347b: JUMPDEST 0000347c: PUSH1 0x00 0000347e: PUSH1 0x01 00003480: PUSH1 0x80 00003482: SHL 00003483: DUP3 00003484: LT 00003485: PUSH2 0x34bf 00003488: JUMPI 00003489: PUSH1 0x40 0000348b: MLOAD 0000348c: PUSH3 0x461bcd 00003490: PUSH1 0xe5 00003492: SHL 00003493: DUP2 00003494: MSTORE 00003495: PUSH1 0x04 00003497: ADD 00003498: DUP1 00003499: DUP1 0000349a: PUSH1 0x20 0000349c: ADD 0000349d: DUP3 0000349e: DUP2 0000349f: SUB 000034a0: DUP3 000034a1: MSTORE 000034a2: PUSH1 0x27 000034a4: DUP2 000034a5: MSTORE 000034a6: PUSH1 0x20 000034a8: ADD 000034a9: DUP1 000034aa: PUSH2 0x4192 000034ad: PUSH1 0x27 000034af: SWAP2 000034b0: CODECOPY 000034b1: PUSH1 0x40 000034b3: ADD 000034b4: SWAP2 000034b5: POP 000034b6: POP 000034b7: PUSH1 0x40 000034b9: MLOAD 000034ba: DUP1 000034bb: SWAP2 000034bc: SUB 000034bd: SWAP1 000034be: REVERT 000034bf: JUMPDEST 000034c0: POP 000034c1: SWAP1 000034c2: JUMP 000034c3: JUMPDEST 000034c4: PUSH2 0x34cb 000034c7: PUSH2 0x3ffb 000034ca: JUMP 000034cb: JUMPDEST 000034cc: PUSH1 0x40 000034ce: MLOAD 000034cf: DUP1 000034d0: PUSH1 0x80 000034d2: ADD 000034d3: PUSH1 0x40 000034d5: MSTORE 000034d6: DUP1 000034d7: PUSH1 0x00 000034d9: PUSH4 0xffffffff 000034de: AND 000034df: DUP2 000034e0: MSTORE 000034e1: PUSH1 0x20 000034e3: ADD 000034e4: DUP6 000034e5: PUSH2 0xffff 000034e8: AND 000034e9: DUP2 000034ea: MSTORE 000034eb: PUSH1 0x20 000034ed: ADD 000034ee: DUP5 000034ef: PUSH1 0x01 000034f1: PUSH1 0x01 000034f3: PUSH1 0x80 000034f5: SHL 000034f6: SUB 000034f7: AND 000034f8: DUP2 000034f9: MSTORE 000034fa: PUSH1 0x20 000034fc: ADD 000034fd: DUP4 000034fe: PUSH1 0x01 00003500: PUSH1 0x01 00003502: PUSH1 0xa0 00003504: SHL 00003505: SUB 00003506: AND 00003507: DUP2 00003508: MSTORE 00003509: POP 0000350a: SWAP1 0000350b: POP 0000350c: PUSH1 0x60 0000350e: PUSH2 0x3516 00003511: DUP3 00003512: PUSH2 0x3c6f 00003515: JUMP 00003516: JUMPDEST 00003517: SWAP1 00003518: POP 00003519: PUSH2 0x3533 0000351c: PUSH1 0x01 0000351e: DUP3 0000351f: PUSH1 0x40 00003521: MLOAD 00003522: DUP1 00003523: PUSH1 0x20 00003525: ADD 00003526: PUSH1 0x40 00003528: MSTORE 00003529: DUP1 0000352a: PUSH1 0x00 0000352c: DUP2 0000352d: MSTORE 0000352e: POP 0000352f: PUSH2 0x3233 00003532: JUMP 00003533: JUMPDEST 00003534: PUSH1 0x40 00003536: DUP1 00003537: MLOAD 00003538: PUSH1 0x01 0000353a: PUSH1 0x01 0000353c: PUSH1 0x80 0000353e: SHL 0000353f: SUB 00003540: DUP7 00003541: AND 00003542: DUP2 00003543: MSTORE 00003544: SWAP1 00003545: MLOAD 00003546: PUSH1 0x01 00003548: PUSH1 0x01 0000354a: PUSH1 0xa0 0000354c: SHL 0000354d: SUB 0000354e: DUP6 0000354f: AND 00003550: SWAP2 00003551: PUSH2 0xffff 00003554: DUP9 00003555: AND 00003556: SWAP2 00003557: CALLER 00003558: SWAP2 00003559: PUSH32 0xb6866b029f3aa29cd9e2bff8159a8ccaa4389f7a087c710968e0b200c0c73b08 0000357a: SWAP2 0000357b: SWAP1 0000357c: DUP2 0000357d: SWAP1 0000357e: SUB 0000357f: PUSH1 0x20 00003581: ADD 00003582: SWAP1 00003583: LOG4 00003584: POP 00003585: POP 00003586: POP 00003587: POP 00003588: POP 00003589: JUMP 0000358a: JUMPDEST 0000358b: PUSH1 0x00 0000358d: DUP2 0000358e: PUSH1 0x01 00003590: PUSH1 0x01 00003592: PUSH1 0x40 00003594: SHL 00003595: SUB 00003596: AND 00003597: DUP4 00003598: PUSH1 0x01 0000359a: PUSH1 0x01 0000359c: PUSH1 0x40 0000359e: SHL 0000359f: SUB 000035a0: AND 000035a1: LT 000035a2: PUSH2 0x35ab 000035a5: JUMPI 000035a6: DUP2 000035a7: PUSH2 0x35ad 000035aa: JUMP 000035ab: JUMPDEST 000035ac: DUP3 000035ad: JUMPDEST 000035ae: SWAP4 000035af: SWAP3 000035b0: POP 000035b1: POP 000035b2: POP 000035b3: JUMP 000035b4: JUMPDEST 000035b5: PUSH2 0x35bc 000035b8: PUSH2 0x3ffb 000035bb: JUMP 000035bc: JUMPDEST 000035bd: PUSH1 0x00 000035bf: PUSH2 0x35c8 000035c2: DUP4 000035c3: DUP3 000035c4: PUSH2 0x3cd9 000035c7: JUMP 000035c8: JUMPDEST 000035c9: PUSH4 0xffffffff 000035ce: AND 000035cf: DUP4 000035d0: MSTORE 000035d1: SWAP1 000035d2: POP 000035d3: PUSH2 0x35dc 000035d6: DUP4 000035d7: DUP3 000035d8: PUSH2 0x3cf2 000035db: JUMP 000035dc: JUMPDEST 000035dd: PUSH2 0xffff 000035e0: AND 000035e1: PUSH1 0x20 000035e3: DUP5 000035e4: ADD 000035e5: MSTORE 000035e6: SWAP1 000035e7: POP 000035e8: PUSH2 0x35f1 000035eb: DUP4 000035ec: DUP3 000035ed: PUSH2 0x3d02 000035f0: JUMP 000035f1: JUMPDEST 000035f2: PUSH1 0x01 000035f4: PUSH1 0x01 000035f6: PUSH1 0x80 000035f8: SHL 000035f9: SUB 000035fa: AND 000035fb: PUSH1 0x40 000035fd: DUP5 000035fe: ADD 000035ff: MSTORE 00003600: SWAP1 00003601: POP 00003602: PUSH2 0x360b 00003605: DUP4 00003606: DUP3 00003607: PUSH2 0x3d12 0000360a: JUMP 0000360b: JUMPDEST 0000360c: PUSH1 0x01 0000360e: PUSH1 0x01 00003610: PUSH1 0xa0 00003612: SHL 00003613: SUB 00003614: AND 00003615: PUSH1 0x60 00003617: DUP5 00003618: ADD 00003619: MSTORE 0000361a: SWAP1 0000361b: POP 0000361c: PUSH1 0x2a 0000361e: DUP2 0000361f: EQ 00003620: PUSH2 0x3658 00003623: JUMPI 00003624: PUSH1 0x40 00003626: DUP1 00003627: MLOAD 00003628: PUSH3 0x461bcd 0000362c: PUSH1 0xe5 0000362e: SHL 0000362f: DUP2 00003630: MSTORE 00003631: PUSH1 0x20 00003633: PUSH1 0x04 00003635: DUP3 00003636: ADD 00003637: MSTORE 00003638: PUSH1 0x05 0000363a: PUSH1 0x24 0000363c: DUP3 0000363d: ADD 0000363e: MSTORE 0000363f: PUSH5 0x0726470313 00003645: PUSH1 0xdc 00003647: SHL 00003648: PUSH1 0x44 0000364a: DUP3 0000364b: ADD 0000364c: MSTORE 0000364d: SWAP1 0000364e: MLOAD 0000364f: SWAP1 00003650: DUP2 00003651: SWAP1 00003652: SUB 00003653: PUSH1 0x64 00003655: ADD 00003656: SWAP1 00003657: REVERT 00003658: JUMPDEST 00003659: POP 0000365a: SWAP2 0000365b: SWAP1 0000365c: POP 0000365d: JUMP 0000365e: JUMPDEST 0000365f: PUSH1 0x01 00003661: PUSH1 0x00 00003663: DUP1 00003664: MLOAD 00003665: PUSH1 0x20 00003667: PUSH2 0x4172 0000366a: DUP4 0000366b: CODECOPY 0000366c: DUP2 0000366d: MLOAD 0000366e: SWAP2 0000366f: MSTORE 00003670: SSTORE 00003671: JUMP 00003672: JUMPDEST 00003673: PUSH1 0x00 00003675: DUP2 00003676: PUSH4 0xffffffff 0000367b: AND 0000367c: DUP4 0000367d: PUSH4 0xffffffff 00003682: AND 00003683: LT 00003684: PUSH2 0x35ab 00003687: JUMPI 00003688: DUP2 00003689: PUSH2 0x35ad 0000368c: JUMP 0000368d: JUMPDEST 0000368e: PUSH1 0x40 00003690: MLOAD 00003691: PUSH1 0x00 00003693: SWAP1 00003694: PUSH2 0x2710 00003697: SWAP1 00003698: DUP3 00003699: SWAP1 0000369a: PUSH1 0x01 0000369c: PUSH1 0x01 0000369e: PUSH1 0xa0 000036a0: SHL 000036a1: SUB 000036a2: DUP7 000036a3: AND 000036a4: SWAP1 000036a5: DUP4 000036a6: SWAP1 000036a7: DUP7 000036a8: SWAP1 000036a9: DUP5 000036aa: DUP2 000036ab: DUP2 000036ac: DUP2 000036ad: DUP6 000036ae: DUP9 000036af: DUP9 000036b0: CALL 000036b1: SWAP4 000036b2: POP 000036b3: POP 000036b4: POP 000036b5: POP 000036b6: RETURNDATASIZE 000036b7: DUP1 000036b8: PUSH1 0x00 000036ba: DUP2 000036bb: EQ 000036bc: PUSH2 0x36e1 000036bf: JUMPI 000036c0: PUSH1 0x40 000036c2: MLOAD 000036c3: SWAP2 000036c4: POP 000036c5: PUSH1 0x1f 000036c7: NOT 000036c8: PUSH1 0x3f 000036ca: RETURNDATASIZE 000036cb: ADD 000036cc: AND 000036cd: DUP3 000036ce: ADD 000036cf: PUSH1 0x40 000036d1: MSTORE 000036d2: RETURNDATASIZE 000036d3: DUP3 000036d4: MSTORE 000036d5: RETURNDATASIZE 000036d6: PUSH1 0x00 000036d8: PUSH1 0x20 000036da: DUP5 000036db: ADD 000036dc: RETURNDATACOPY 000036dd: PUSH2 0x36e6 000036e0: JUMP 000036e1: JUMPDEST 000036e2: PUSH1 0x60 000036e4: SWAP2 000036e5: POP 000036e6: JUMPDEST 000036e7: POP 000036e8: SWAP1 000036e9: SWAP7 000036ea: SWAP6 000036eb: POP 000036ec: POP 000036ed: POP 000036ee: POP 000036ef: POP 000036f0: POP 000036f1: JUMP 000036f2: JUMPDEST 000036f3: PUSH1 0x01 000036f5: PUSH1 0x01 000036f7: PUSH1 0xa0 000036f9: SHL 000036fa: SUB 000036fb: DUP2 000036fc: AND 000036fd: PUSH1 0x00 000036ff: SWAP1 00003700: DUP2 00003701: MSTORE 00003702: PUSH1 0x02 00003704: PUSH1 0x20 00003706: MSTORE 00003707: PUSH1 0x40 00003709: SWAP1 0000370a: KECCAK256 0000370b: SLOAD 0000370c: PUSH2 0xffff 0000370f: AND 00003710: ISZERO 00003711: PUSH2 0x374a 00003714: JUMPI 00003715: PUSH1 0x40 00003717: DUP1 00003718: MLOAD 00003719: PUSH3 0x461bcd 0000371d: PUSH1 0xe5 0000371f: SHL 00003720: DUP2 00003721: MSTORE 00003722: PUSH1 0x20 00003724: PUSH1 0x04 00003726: DUP1 00003727: DUP4 00003728: ADD 00003729: SWAP2 0000372a: SWAP1 0000372b: SWAP2 0000372c: MSTORE 0000372d: PUSH1 0x24 0000372f: DUP3 00003730: ADD 00003731: MSTORE 00003732: PUSH4 0x70616e31 00003737: PUSH1 0xe0 00003739: SHL 0000373a: PUSH1 0x44 0000373c: DUP3 0000373d: ADD 0000373e: MSTORE 0000373f: SWAP1 00003740: MLOAD 00003741: SWAP1 00003742: DUP2 00003743: SWAP1 00003744: SUB 00003745: PUSH1 0x64 00003747: ADD 00003748: SWAP1 00003749: REVERT 0000374a: JUMPDEST 0000374b: PUSH1 0x00 0000374d: SLOAD 0000374e: PUSH2 0xc000 00003751: PUSH2 0xffff 00003754: SWAP1 00003755: SWAP2 00003756: AND 00003757: LT 00003758: PUSH2 0x3791 0000375b: JUMPI 0000375c: PUSH1 0x40 0000375e: DUP1 0000375f: MLOAD 00003760: PUSH3 0x461bcd 00003764: PUSH1 0xe5 00003766: SHL 00003767: DUP2 00003768: MSTORE 00003769: PUSH1 0x20 0000376b: PUSH1 0x04 0000376d: DUP1 0000376e: DUP4 0000376f: ADD 00003770: SWAP2 00003771: SWAP1 00003772: SWAP2 00003773: MSTORE 00003774: PUSH1 0x24 00003776: DUP3 00003777: ADD 00003778: MSTORE 00003779: PUSH4 0x3830b719 0000377e: PUSH1 0xe1 00003780: SHL 00003781: PUSH1 0x44 00003783: DUP3 00003784: ADD 00003785: MSTORE 00003786: SWAP1 00003787: MLOAD 00003788: SWAP1 00003789: DUP2 0000378a: SWAP1 0000378b: SUB 0000378c: PUSH1 0x64 0000378e: ADD 0000378f: SWAP1 00003790: REVERT 00003791: JUMPDEST 00003792: PUSH1 0x00 00003794: DUP1 00003795: SLOAD 00003796: PUSH2 0xffff 00003799: DUP1 0000379a: DUP3 0000379b: AND 0000379c: PUSH1 0x01 0000379e: DUP2 0000379f: DUP2 000037a0: ADD 000037a1: DUP4 000037a2: AND 000037a3: PUSH2 0xffff 000037a6: NOT 000037a7: SWAP5 000037a8: DUP6 000037a9: AND 000037aa: OR 000037ab: DUP6 000037ac: SSTORE 000037ad: PUSH2 0x4000 000037b0: SWAP1 000037b1: SWAP2 000037b2: ADD 000037b3: SWAP2 000037b4: DUP3 000037b5: AND 000037b6: DUP1 000037b7: DUP6 000037b8: MSTORE 000037b9: PUSH1 0x20 000037bb: SWAP2 000037bc: DUP3 000037bd: MSTORE 000037be: PUSH1 0x40 000037c0: DUP1 000037c1: DUP7 000037c2: KECCAK256 000037c3: DUP1 000037c4: SLOAD 000037c5: PUSH1 0x01 000037c7: PUSH1 0x01 000037c9: PUSH1 0xa0 000037cb: SHL 000037cc: SUB 000037cd: DUP10 000037ce: AND 000037cf: PUSH1 0x01 000037d1: PUSH1 0x01 000037d3: PUSH1 0xa0 000037d5: SHL 000037d6: SUB 000037d7: NOT 000037d8: SWAP1 000037d9: SWAP2 000037da: AND 000037db: DUP2 000037dc: OR 000037dd: SWAP1 000037de: SWAP2 000037df: SSTORE 000037e0: DUP1 000037e1: DUP8 000037e2: MSTORE 000037e3: PUSH1 0x02 000037e5: SWAP1 000037e6: SWAP4 000037e7: MSTORE 000037e8: DUP1 000037e9: DUP7 000037ea: KECCAK256 000037eb: DUP1 000037ec: SLOAD 000037ed: SWAP1 000037ee: SWAP6 000037ef: AND 000037f0: DUP3 000037f1: OR 000037f2: SWAP1 000037f3: SWAP5 000037f4: SSTORE 000037f5: SWAP3 000037f6: MLOAD 000037f7: SWAP2 000037f8: SWAP4 000037f9: SWAP1 000037fa: SWAP2 000037fb: PUSH32 0xfe74dea79bde70d1990ddb655bac45735b14f495ddc508cfab80b7729aa9d668 0000381c: SWAP2 0000381d: SWAP1 0000381e: LOG3 0000381f: POP 00003820: POP 00003821: JUMP 00003822: JUMPDEST 00003823: PUSH2 0x382a 00003826: PUSH2 0x40e3 00003829: JUMP 0000382a: JUMPDEST 0000382b: PUSH1 0x40 0000382d: MLOAD 0000382e: DUP1 0000382f: PUSH1 0xa0 00003831: ADD 00003832: PUSH1 0x40 00003834: MSTORE 00003835: DUP1 00003836: PUSH1 0x00 00003838: PUSH4 0xffffffff 0000383d: AND 0000383e: DUP2 0000383f: MSTORE 00003840: PUSH1 0x20 00003842: ADD 00003843: DUP9 00003844: PUSH2 0xffff 00003847: AND 00003848: DUP2 00003849: MSTORE 0000384a: PUSH1 0x20 0000384c: ADD 0000384d: DUP7 0000384e: PUSH2 0xffff 00003851: AND 00003852: DUP2 00003853: MSTORE 00003854: PUSH1 0x20 00003856: ADD 00003857: DUP5 00003858: PUSH2 0xffff 0000385b: AND 0000385c: DUP2 0000385d: MSTORE 0000385e: PUSH1 0x20 00003860: ADD 00003861: DUP4 00003862: PUSH1 0x01 00003864: PUSH1 0x01 00003866: PUSH1 0xa0 00003868: SHL 00003869: SUB 0000386a: AND 0000386b: DUP2 0000386c: MSTORE 0000386d: POP 0000386e: SWAP1 0000386f: POP 00003870: PUSH1 0x60 00003872: PUSH2 0x387a 00003875: DUP3 00003876: PUSH2 0x3d22 00003879: JUMP 0000387a: JUMPDEST 0000387b: PUSH1 0x40 0000387d: DUP1 0000387e: MLOAD 0000387f: PUSH1 0x01 00003881: PUSH1 0x01 00003883: PUSH1 0x60 00003885: SHL 00003886: SUB 00003887: NOT 00003888: PUSH1 0x60 0000388a: DUP12 0000388b: DUP2 0000388c: SHL 0000388d: DUP3 0000388e: AND 0000388f: PUSH1 0x20 00003891: DUP5 00003892: ADD 00003893: MSTORE 00003894: DUP10 00003895: SWAP1 00003896: SHL 00003897: AND 00003898: PUSH1 0x34 0000389a: DUP3 0000389b: ADD 0000389c: MSTORE 0000389d: DUP2 0000389e: MLOAD 0000389f: PUSH1 0x28 000038a1: DUP2 000038a2: DUP4 000038a3: SUB 000038a4: ADD 000038a5: DUP2 000038a6: MSTORE 000038a7: PUSH1 0x48 000038a9: SWAP1 000038aa: SWAP2 000038ab: ADD 000038ac: SWAP1 000038ad: SWAP2 000038ae: MSTORE 000038af: SWAP1 000038b0: SWAP2 000038b1: POP 000038b2: PUSH2 0x38bd 000038b5: PUSH1 0x08 000038b7: DUP4 000038b8: DUP4 000038b9: PUSH2 0x3233 000038bc: JUMP 000038bd: JUMPDEST 000038be: PUSH1 0x40 000038c0: DUP1 000038c1: MLOAD 000038c2: PUSH1 0x01 000038c4: PUSH1 0x01 000038c6: PUSH1 0xa0 000038c8: SHL 000038c9: SUB 000038ca: DUP7 000038cb: AND 000038cc: DUP2 000038cd: MSTORE 000038ce: SWAP1 000038cf: MLOAD 000038d0: PUSH2 0xffff 000038d3: DUP1 000038d4: DUP9 000038d5: AND 000038d6: SWAP3 000038d7: DUP11 000038d8: DUP3 000038d9: AND 000038da: SWAP3 000038db: SWAP2 000038dc: DUP14 000038dd: AND 000038de: SWAP2 000038df: PUSH32 0x2c87b60b0d81063e9b0ba8089ea00f8b35b25ff04a89aa904d257b675d610b99 00003900: SWAP2 00003901: DUP2 00003902: SWAP1 00003903: SUB 00003904: PUSH1 0x20 00003906: ADD 00003907: SWAP1 00003908: LOG4 00003909: POP 0000390a: POP 0000390b: POP 0000390c: POP 0000390d: POP 0000390e: POP 0000390f: POP 00003910: POP 00003911: POP 00003912: JUMP 00003913: JUMPDEST 00003914: PUSH1 0x40 00003916: DUP1 00003917: MLOAD 00003918: PUSH1 0x01 0000391a: PUSH1 0x01 0000391c: PUSH1 0xa0 0000391e: SHL 0000391f: SUB 00003920: DUP5 00003921: DUP2 00003922: AND 00003923: PUSH1 0x24 00003925: DUP4 00003926: ADD 00003927: MSTORE 00003928: PUSH1 0x44 0000392a: DUP1 0000392b: DUP4 0000392c: ADD 0000392d: DUP6 0000392e: SWAP1 0000392f: MSTORE 00003930: DUP4 00003931: MLOAD 00003932: DUP1 00003933: DUP5 00003934: SUB 00003935: SWAP1 00003936: SWAP2 00003937: ADD 00003938: DUP2 00003939: MSTORE 0000393a: PUSH1 0x64 0000393c: SWAP1 0000393d: SWAP3 0000393e: ADD 0000393f: DUP4 00003940: MSTORE 00003941: PUSH1 0x20 00003943: DUP3 00003944: ADD 00003945: DUP1 00003946: MLOAD 00003947: PUSH1 0x01 00003949: PUSH1 0x01 0000394b: PUSH1 0xe0 0000394d: SHL 0000394e: SUB 0000394f: AND 00003950: PUSH4 0xa9059cbb 00003955: PUSH1 0xe0 00003957: SHL 00003958: OR 00003959: DUP2 0000395a: MSTORE 0000395b: SWAP3 0000395c: MLOAD 0000395d: DUP3 0000395e: MLOAD 0000395f: PUSH1 0x00 00003961: SWAP5 00003962: DUP6 00003963: SWAP5 00003964: PUSH1 0x60 00003966: SWAP5 00003967: DUP11 00003968: AND 00003969: SWAP4 0000396a: SWAP1 0000396b: SWAP3 0000396c: SWAP1 0000396d: SWAP2 0000396e: DUP3 0000396f: SWAP2 00003970: DUP1 00003971: DUP4 00003972: DUP4 00003973: JUMPDEST 00003974: PUSH1 0x20 00003976: DUP4 00003977: LT 00003978: PUSH2 0x3992 0000397b: JUMPI 0000397c: DUP1 0000397d: MLOAD 0000397e: DUP3 0000397f: MSTORE 00003980: PUSH1 0x1f 00003982: NOT 00003983: SWAP1 00003984: SWAP3 00003985: ADD 00003986: SWAP2 00003987: PUSH1 0x20 00003989: SWAP2 0000398a: DUP3 0000398b: ADD 0000398c: SWAP2 0000398d: ADD 0000398e: PUSH2 0x3973 00003991: JUMP 00003992: JUMPDEST 00003993: PUSH1 0x01 00003995: DUP4 00003996: PUSH1 0x20 00003998: SUB 00003999: PUSH2 0x0100 0000399c: EXP 0000399d: SUB 0000399e: DUP1 0000399f: NOT 000039a0: DUP3 000039a1: MLOAD 000039a2: AND 000039a3: DUP2 000039a4: DUP5 000039a5: MLOAD 000039a6: AND 000039a7: DUP1 000039a8: DUP3 000039a9: OR 000039aa: DUP6 000039ab: MSTORE 000039ac: POP 000039ad: POP 000039ae: POP 000039af: POP 000039b0: POP 000039b1: POP 000039b2: SWAP1 000039b3: POP 000039b4: ADD 000039b5: SWAP2 000039b6: POP 000039b7: POP 000039b8: PUSH1 0x00 000039ba: PUSH1 0x40 000039bc: MLOAD 000039bd: DUP1 000039be: DUP4 000039bf: SUB 000039c0: DUP2 000039c1: PUSH1 0x00 000039c3: DUP7 000039c4: GAS 000039c5: CALL 000039c6: SWAP2 000039c7: POP 000039c8: POP 000039c9: RETURNDATASIZE 000039ca: DUP1 000039cb: PUSH1 0x00 000039cd: DUP2 000039ce: EQ 000039cf: PUSH2 0x39f4 000039d2: JUMPI 000039d3: PUSH1 0x40 000039d5: MLOAD 000039d6: SWAP2 000039d7: POP 000039d8: PUSH1 0x1f 000039da: NOT 000039db: PUSH1 0x3f 000039dd: RETURNDATASIZE 000039de: ADD 000039df: AND 000039e0: DUP3 000039e1: ADD 000039e2: PUSH1 0x40 000039e4: MSTORE 000039e5: RETURNDATASIZE 000039e6: DUP3 000039e7: MSTORE 000039e8: RETURNDATASIZE 000039e9: PUSH1 0x00 000039eb: PUSH1 0x20 000039ed: DUP5 000039ee: ADD 000039ef: RETURNDATACOPY 000039f0: PUSH2 0x39f9 000039f3: JUMP 000039f4: JUMPDEST 000039f5: PUSH1 0x60 000039f7: SWAP2 000039f8: POP 000039f9: JUMPDEST 000039fa: POP 000039fb: SWAP2 000039fc: POP 000039fd: SWAP2 000039fe: POP 000039ff: PUSH1 0x00 00003a01: DUP2 00003a02: MLOAD 00003a03: PUSH1 0x00 00003a05: EQ 00003a06: DUP1 00003a07: PUSH2 0x3a23 00003a0a: JUMPI 00003a0b: POP 00003a0c: DUP2 00003a0d: DUP1 00003a0e: PUSH1 0x20 00003a10: ADD 00003a11: SWAP1 00003a12: MLOAD 00003a13: PUSH1 0x20 00003a15: DUP2 00003a16: LT 00003a17: ISZERO 00003a18: PUSH2 0x3a20 00003a1b: JUMPI 00003a1c: PUSH1 0x00 00003a1e: DUP1 00003a1f: REVERT 00003a20: JUMPDEST 00003a21: POP 00003a22: MLOAD 00003a23: JUMPDEST 00003a24: SWAP1 00003a25: POP 00003a26: DUP3 00003a27: DUP1 00003a28: ISZERO 00003a29: PUSH2 0x3a2f 00003a2c: JUMPI 00003a2d: POP 00003a2e: DUP1 00003a2f: JUMPDEST 00003a30: SWAP8 00003a31: SWAP7 00003a32: POP 00003a33: POP 00003a34: POP 00003a35: POP 00003a36: POP 00003a37: POP 00003a38: POP 00003a39: JUMP 00003a3a: JUMPDEST 00003a3b: PUSH1 0x00 00003a3d: PUSH2 0x35ad 00003a40: DUP4 00003a41: DUP4 00003a42: PUSH1 0x40 00003a44: MLOAD 00003a45: DUP1 00003a46: PUSH1 0x40 00003a48: ADD 00003a49: PUSH1 0x40 00003a4b: MSTORE 00003a4c: DUP1 00003a4d: PUSH1 0x1e 00003a4f: DUP2 00003a50: MSTORE 00003a51: PUSH1 0x20 00003a53: ADD 00003a54: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 00003a75: DUP2 00003a76: MSTORE 00003a77: POP 00003a78: PUSH2 0x3d96 00003a7b: JUMP 00003a7c: JUMPDEST 00003a7d: PUSH1 0x00 00003a7f: PUSH2 0x3a88 00003a82: DUP3 00003a83: DUP6 00003a84: PUSH2 0x345e 00003a87: JUMP 00003a88: JUMPDEST 00003a89: PUSH1 0x01 00003a8b: PUSH1 0x01 00003a8d: PUSH1 0x50 00003a8f: SHL 00003a90: SUB 00003a91: NOT 00003a92: DUP2 00003a93: AND 00003a94: PUSH1 0x00 00003a96: SWAP1 00003a97: DUP2 00003a98: MSTORE 00003a99: PUSH1 0x09 00003a9b: PUSH1 0x20 00003a9d: MSTORE 00003a9e: PUSH1 0x40 00003aa0: SWAP1 00003aa1: KECCAK256 00003aa2: SLOAD 00003aa3: SWAP1 00003aa4: SWAP2 00003aa5: POP 00003aa6: PUSH1 0x01 00003aa8: PUSH1 0x01 00003aaa: PUSH1 0x80 00003aac: SHL 00003aad: SUB 00003aae: AND 00003aaf: PUSH2 0x3abe 00003ab2: DUP2 00003ab3: DUP6 00003ab4: PUSH4 0xffffffff 00003ab9: PUSH2 0x3e2d 00003abc: AND 00003abd: JUMP 00003abe: JUMPDEST 00003abf: PUSH1 0x01 00003ac1: PUSH1 0x01 00003ac3: PUSH1 0x50 00003ac5: SHL 00003ac6: SUB 00003ac7: NOT 00003ac8: DUP4 00003ac9: AND 00003aca: PUSH1 0x00 00003acc: SWAP1 00003acd: DUP2 00003ace: MSTORE 00003acf: PUSH1 0x09 00003ad1: PUSH1 0x20 00003ad3: SWAP1 00003ad4: DUP2 00003ad5: MSTORE 00003ad6: PUSH1 0x40 00003ad8: SWAP2 00003ad9: DUP3 00003ada: SWAP1 00003adb: KECCAK256 00003adc: DUP1 00003add: SLOAD 00003ade: PUSH1 0x01 00003ae0: PUSH1 0x01 00003ae2: PUSH1 0x80 00003ae4: SHL 00003ae5: SUB 00003ae6: NOT 00003ae7: AND 00003ae8: PUSH1 0x01 00003aea: PUSH1 0x01 00003aec: PUSH1 0x80 00003aee: SHL 00003aef: SUB 00003af0: SWAP5 00003af1: DUP6 00003af2: AND 00003af3: OR 00003af4: SWAP1 00003af5: SSTORE 00003af6: DUP2 00003af7: MLOAD 00003af8: SWAP3 00003af9: DUP8 00003afa: AND 00003afb: DUP4 00003afc: MSTORE 00003afd: SWAP1 00003afe: MLOAD 00003aff: PUSH2 0xffff 00003b02: DUP9 00003b03: AND 00003b04: SWAP3 00003b05: PUSH1 0x01 00003b07: PUSH1 0x01 00003b09: PUSH1 0xa0 00003b0b: SHL 00003b0c: SUB 00003b0d: DUP8 00003b0e: AND 00003b0f: SWAP3 00003b10: PUSH32 0x3ac065a1e69cd78fa12ba7269660a2894da2ec7f1ff1135ed5ca04de4b4e389e 00003b31: SWAP3 00003b32: SWAP2 00003b33: DUP3 00003b34: SWAP1 00003b35: SUB 00003b36: ADD 00003b37: SWAP1 00003b38: LOG3 00003b39: POP 00003b3a: POP 00003b3b: POP 00003b3c: POP 00003b3d: POP 00003b3e: JUMP 00003b3f: JUMPDEST 00003b40: PUSH1 0x40 00003b42: DUP1 00003b43: MLOAD 00003b44: PUSH1 0x01 00003b46: PUSH1 0x01 00003b48: PUSH1 0xa0 00003b4a: SHL 00003b4b: SUB 00003b4c: DUP6 00003b4d: DUP2 00003b4e: AND 00003b4f: PUSH1 0x24 00003b51: DUP4 00003b52: ADD 00003b53: MSTORE 00003b54: DUP5 00003b55: DUP2 00003b56: AND 00003b57: PUSH1 0x44 00003b59: DUP4 00003b5a: ADD 00003b5b: MSTORE 00003b5c: PUSH1 0x64 00003b5e: DUP1 00003b5f: DUP4 00003b60: ADD 00003b61: DUP6 00003b62: SWAP1 00003b63: MSTORE 00003b64: DUP4 00003b65: MLOAD 00003b66: DUP1 00003b67: DUP5 00003b68: SUB 00003b69: SWAP1 00003b6a: SWAP2 00003b6b: ADD 00003b6c: DUP2 00003b6d: MSTORE 00003b6e: PUSH1 0x84 00003b70: SWAP1 00003b71: SWAP3 00003b72: ADD 00003b73: DUP4 00003b74: MSTORE 00003b75: PUSH1 0x20 00003b77: DUP3 00003b78: ADD 00003b79: DUP1 00003b7a: MLOAD 00003b7b: PUSH1 0x01 00003b7d: PUSH1 0x01 00003b7f: PUSH1 0xe0 00003b81: SHL 00003b82: SUB 00003b83: AND 00003b84: PUSH4 0x23b872dd 00003b89: PUSH1 0xe0 00003b8b: SHL 00003b8c: OR 00003b8d: DUP2 00003b8e: MSTORE 00003b8f: SWAP3 00003b90: MLOAD 00003b91: DUP3 00003b92: MLOAD 00003b93: PUSH1 0x00 00003b95: SWAP5 00003b96: DUP6 00003b97: SWAP5 00003b98: PUSH1 0x60 00003b9a: SWAP5 00003b9b: DUP12 00003b9c: AND 00003b9d: SWAP4 00003b9e: SWAP1 00003b9f: SWAP3 00003ba0: SWAP1 00003ba1: SWAP2 00003ba2: DUP3 00003ba3: SWAP2 00003ba4: DUP1 00003ba5: DUP4 00003ba6: DUP4 00003ba7: JUMPDEST 00003ba8: PUSH1 0x20 00003baa: DUP4 00003bab: LT 00003bac: PUSH2 0x3bc6 00003baf: JUMPI 00003bb0: DUP1 00003bb1: MLOAD 00003bb2: DUP3 00003bb3: MSTORE 00003bb4: PUSH1 0x1f 00003bb6: NOT 00003bb7: SWAP1 00003bb8: SWAP3 00003bb9: ADD 00003bba: SWAP2 00003bbb: PUSH1 0x20 00003bbd: SWAP2 00003bbe: DUP3 00003bbf: ADD 00003bc0: SWAP2 00003bc1: ADD 00003bc2: PUSH2 0x3ba7 00003bc5: JUMP 00003bc6: JUMPDEST 00003bc7: PUSH1 0x01 00003bc9: DUP4 00003bca: PUSH1 0x20 00003bcc: SUB 00003bcd: PUSH2 0x0100 00003bd0: EXP 00003bd1: SUB 00003bd2: DUP1 00003bd3: NOT 00003bd4: DUP3 00003bd5: MLOAD 00003bd6: AND 00003bd7: DUP2 00003bd8: DUP5 00003bd9: MLOAD 00003bda: AND 00003bdb: DUP1 00003bdc: DUP3 00003bdd: OR 00003bde: DUP6 00003bdf: MSTORE 00003be0: POP 00003be1: POP 00003be2: POP 00003be3: POP 00003be4: POP 00003be5: POP 00003be6: SWAP1 00003be7: POP 00003be8: ADD 00003be9: SWAP2 00003bea: POP 00003beb: POP 00003bec: PUSH1 0x00 00003bee: PUSH1 0x40 00003bf0: MLOAD 00003bf1: DUP1 00003bf2: DUP4 00003bf3: SUB 00003bf4: DUP2 00003bf5: PUSH1 0x00 00003bf7: DUP7 00003bf8: GAS 00003bf9: CALL 00003bfa: SWAP2 00003bfb: POP 00003bfc: POP 00003bfd: RETURNDATASIZE 00003bfe: DUP1 00003bff: PUSH1 0x00 00003c01: DUP2 00003c02: EQ 00003c03: PUSH2 0x3c28 00003c06: JUMPI 00003c07: PUSH1 0x40 00003c09: MLOAD 00003c0a: SWAP2 00003c0b: POP 00003c0c: PUSH1 0x1f 00003c0e: NOT 00003c0f: PUSH1 0x3f 00003c11: RETURNDATASIZE 00003c12: ADD 00003c13: AND 00003c14: DUP3 00003c15: ADD 00003c16: PUSH1 0x40 00003c18: MSTORE 00003c19: RETURNDATASIZE 00003c1a: DUP3 00003c1b: MSTORE 00003c1c: RETURNDATASIZE 00003c1d: PUSH1 0x00 00003c1f: PUSH1 0x20 00003c21: DUP5 00003c22: ADD 00003c23: RETURNDATACOPY 00003c24: PUSH2 0x3c2d 00003c27: JUMP 00003c28: JUMPDEST 00003c29: PUSH1 0x60 00003c2b: SWAP2 00003c2c: POP 00003c2d: JUMPDEST 00003c2e: POP 00003c2f: SWAP2 00003c30: POP 00003c31: SWAP2 00003c32: POP 00003c33: PUSH1 0x00 00003c35: DUP2 00003c36: MLOAD 00003c37: PUSH1 0x00 00003c39: EQ 00003c3a: DUP1 00003c3b: PUSH2 0x3c57 00003c3e: JUMPI 00003c3f: POP 00003c40: DUP2 00003c41: DUP1 00003c42: PUSH1 0x20 00003c44: ADD 00003c45: SWAP1 00003c46: MLOAD 00003c47: PUSH1 0x20 00003c49: DUP2 00003c4a: LT 00003c4b: ISZERO 00003c4c: PUSH2 0x3c54 00003c4f: JUMPI 00003c50: PUSH1 0x00 00003c52: DUP1 00003c53: REVERT 00003c54: JUMPDEST 00003c55: POP 00003c56: MLOAD 00003c57: JUMPDEST 00003c58: SWAP1 00003c59: POP 00003c5a: DUP3 00003c5b: DUP1 00003c5c: ISZERO 00003c5d: PUSH2 0x3c63 00003c60: JUMPI 00003c61: POP 00003c62: DUP1 00003c63: JUMPDEST 00003c64: SWAP9 00003c65: SWAP8 00003c66: POP 00003c67: POP 00003c68: POP 00003c69: POP 00003c6a: POP 00003c6b: POP 00003c6c: POP 00003c6d: POP 00003c6e: JUMP 00003c6f: JUMPDEST 00003c70: PUSH1 0x20 00003c72: DUP2 00003c73: DUP2 00003c74: ADD 00003c75: MLOAD 00003c76: PUSH1 0x40 00003c78: DUP1 00003c79: DUP5 00003c7a: ADD 00003c7b: MLOAD 00003c7c: PUSH1 0x60 00003c7e: SWAP5 00003c7f: DUP6 00003c80: ADD 00003c81: MLOAD 00003c82: DUP3 00003c83: MLOAD 00003c84: PUSH1 0x00 00003c86: SWAP6 00003c87: DUP2 00003c88: ADD 00003c89: SWAP6 00003c8a: SWAP1 00003c8b: SWAP6 00003c8c: MSTORE 00003c8d: PUSH1 0xf0 00003c8f: SWAP4 00003c90: SWAP1 00003c91: SWAP4 00003c92: SHL 00003c93: PUSH1 0x01 00003c95: PUSH1 0x01 00003c97: PUSH1 0xf0 00003c99: SHL 00003c9a: SUB 00003c9b: NOT 00003c9c: AND 00003c9d: PUSH1 0x24 00003c9f: DUP6 00003ca0: ADD 00003ca1: MSTORE 00003ca2: PUSH1 0x80 00003ca4: SHL 00003ca5: PUSH1 0x01 00003ca7: PUSH1 0x01 00003ca9: PUSH1 0x80 00003cab: SHL 00003cac: SUB 00003cad: NOT 00003cae: AND 00003caf: PUSH1 0x26 00003cb1: DUP5 00003cb2: ADD 00003cb3: MSTORE 00003cb4: SWAP3 00003cb5: SHL 00003cb6: PUSH1 0x01 00003cb8: PUSH1 0x01 00003cba: PUSH1 0x60 00003cbc: SHL 00003cbd: SUB 00003cbe: NOT 00003cbf: AND 00003cc0: PUSH1 0x36 00003cc2: DUP3 00003cc3: ADD 00003cc4: MSTORE 00003cc5: DUP2 00003cc6: MLOAD 00003cc7: DUP1 00003cc8: DUP3 00003cc9: SUB 00003cca: PUSH1 0x2a 00003ccc: ADD 00003ccd: DUP2 00003cce: MSTORE 00003ccf: PUSH1 0x4a 00003cd1: SWAP1 00003cd2: SWAP2 00003cd3: ADD 00003cd4: SWAP1 00003cd5: SWAP2 00003cd6: MSTORE 00003cd7: SWAP1 00003cd8: JUMP 00003cd9: JUMPDEST 00003cda: PUSH1 0x04 00003cdc: DUP2 00003cdd: ADD 00003cde: PUSH1 0x00 00003ce0: PUSH2 0x3ce9 00003ce3: DUP5 00003ce4: DUP5 00003ce5: PUSH2 0x3e6f 00003ce8: JUMP 00003ce9: JUMPDEST 00003cea: SWAP1 00003ceb: POP 00003cec: SWAP3 00003ced: POP 00003cee: SWAP3 00003cef: SWAP1 00003cf0: POP 00003cf1: JUMP 00003cf2: JUMPDEST 00003cf3: PUSH1 0x02 00003cf5: DUP2 00003cf6: ADD 00003cf7: PUSH1 0x00 00003cf9: PUSH2 0x3ce9 00003cfc: DUP5 00003cfd: DUP5 00003cfe: PUSH2 0x3ec1 00003d01: JUMP 00003d02: JUMPDEST 00003d03: PUSH1 0x10 00003d05: DUP2 00003d06: ADD 00003d07: PUSH1 0x00 00003d09: PUSH2 0x3ce9 00003d0c: DUP5 00003d0d: DUP5 00003d0e: PUSH2 0x3f08 00003d11: JUMP 00003d12: JUMPDEST 00003d13: PUSH1 0x14 00003d15: DUP2 00003d16: ADD 00003d17: PUSH1 0x00 00003d19: PUSH2 0x3ce9 00003d1c: DUP5 00003d1d: DUP5 00003d1e: PUSH2 0x3f4f 00003d21: JUMP 00003d22: JUMPDEST 00003d23: PUSH1 0x20 00003d25: DUP2 00003d26: DUP2 00003d27: ADD 00003d28: MLOAD 00003d29: PUSH1 0x40 00003d2b: DUP1 00003d2c: DUP5 00003d2d: ADD 00003d2e: MLOAD 00003d2f: PUSH1 0x60 00003d31: DUP1 00003d32: DUP7 00003d33: ADD 00003d34: MLOAD 00003d35: PUSH1 0x80 00003d37: SWAP1 00003d38: SWAP7 00003d39: ADD 00003d3a: MLOAD 00003d3b: DUP4 00003d3c: MLOAD 00003d3d: PUSH1 0x00 00003d3f: SWAP7 00003d40: DUP2 00003d41: ADD 00003d42: SWAP7 00003d43: SWAP1 00003d44: SWAP7 00003d45: MSTORE 00003d46: PUSH1 0xf0 00003d48: SWAP5 00003d49: DUP6 00003d4a: SHL 00003d4b: PUSH1 0x01 00003d4d: PUSH1 0x01 00003d4f: PUSH1 0xf0 00003d51: SHL 00003d52: SUB 00003d53: NOT 00003d54: SWAP1 00003d55: DUP2 00003d56: AND 00003d57: PUSH1 0x24 00003d59: DUP9 00003d5a: ADD 00003d5b: MSTORE 00003d5c: SWAP3 00003d5d: DUP6 00003d5e: SHL 00003d5f: DUP4 00003d60: AND 00003d61: PUSH1 0x26 00003d63: DUP8 00003d64: ADD 00003d65: MSTORE 00003d66: SWAP6 00003d67: SWAP1 00003d68: SWAP4 00003d69: SHL 00003d6a: AND 00003d6b: PUSH1 0x28 00003d6d: DUP5 00003d6e: ADD 00003d6f: MSTORE 00003d70: SWAP3 00003d71: SWAP1 00003d72: SHL 00003d73: PUSH1 0x01 00003d75: PUSH1 0x01 00003d77: PUSH1 0x60 00003d79: SHL 00003d7a: SUB 00003d7b: NOT 00003d7c: AND 00003d7d: PUSH1 0x2a 00003d7f: DUP3 00003d80: ADD 00003d81: MSTORE 00003d82: DUP2 00003d83: MLOAD 00003d84: DUP1 00003d85: DUP3 00003d86: SUB 00003d87: PUSH1 0x1e 00003d89: ADD 00003d8a: DUP2 00003d8b: MSTORE 00003d8c: PUSH1 0x3e 00003d8e: SWAP1 00003d8f: SWAP2 00003d90: ADD 00003d91: SWAP1 00003d92: SWAP2 00003d93: MSTORE 00003d94: SWAP1 00003d95: JUMP 00003d96: JUMPDEST 00003d97: PUSH1 0x00 00003d99: DUP2 00003d9a: DUP5 00003d9b: DUP5 00003d9c: GT 00003d9d: ISZERO 00003d9e: PUSH2 0x3e25 00003da1: JUMPI 00003da2: PUSH1 0x40 00003da4: MLOAD 00003da5: PUSH3 0x461bcd 00003da9: PUSH1 0xe5 00003dab: SHL 00003dac: DUP2 00003dad: MSTORE 00003dae: PUSH1 0x04 00003db0: ADD 00003db1: DUP1 00003db2: DUP1 00003db3: PUSH1 0x20 00003db5: ADD 00003db6: DUP3 00003db7: DUP2 00003db8: SUB 00003db9: DUP3 00003dba: MSTORE 00003dbb: DUP4 00003dbc: DUP2 00003dbd: DUP2 00003dbe: MLOAD 00003dbf: DUP2 00003dc0: MSTORE 00003dc1: PUSH1 0x20 00003dc3: ADD 00003dc4: SWAP2 00003dc5: POP 00003dc6: DUP1 00003dc7: MLOAD 00003dc8: SWAP1 00003dc9: PUSH1 0x20 00003dcb: ADD 00003dcc: SWAP1 00003dcd: DUP1 00003dce: DUP4 00003dcf: DUP4 00003dd0: PUSH1 0x00 00003dd2: JUMPDEST 00003dd3: DUP4 00003dd4: DUP2 00003dd5: LT 00003dd6: ISZERO 00003dd7: PUSH2 0x3dea 00003dda: JUMPI 00003ddb: DUP2 00003ddc: DUP2 00003ddd: ADD 00003dde: MLOAD 00003ddf: DUP4 00003de0: DUP3 00003de1: ADD 00003de2: MSTORE 00003de3: PUSH1 0x20 00003de5: ADD 00003de6: PUSH2 0x3dd2 00003de9: JUMP 00003dea: JUMPDEST 00003deb: POP 00003dec: POP 00003ded: POP 00003dee: POP 00003def: SWAP1 00003df0: POP 00003df1: SWAP1 00003df2: DUP2 00003df3: ADD 00003df4: SWAP1 00003df5: PUSH1 0x1f 00003df7: AND 00003df8: DUP1 00003df9: ISZERO 00003dfa: PUSH2 0x3e17 00003dfd: JUMPI 00003dfe: DUP1 00003dff: DUP3 00003e00: SUB 00003e01: DUP1 00003e02: MLOAD 00003e03: PUSH1 0x01 00003e05: DUP4 00003e06: PUSH1 0x20 00003e08: SUB 00003e09: PUSH2 0x0100 00003e0c: EXP 00003e0d: SUB 00003e0e: NOT 00003e0f: AND 00003e10: DUP2 00003e11: MSTORE 00003e12: PUSH1 0x20 00003e14: ADD 00003e15: SWAP2 00003e16: POP 00003e17: JUMPDEST 00003e18: POP 00003e19: SWAP3 00003e1a: POP 00003e1b: POP 00003e1c: POP 00003e1d: PUSH1 0x40 00003e1f: MLOAD 00003e20: DUP1 00003e21: SWAP2 00003e22: SUB 00003e23: SWAP1 00003e24: REVERT 00003e25: JUMPDEST 00003e26: POP 00003e27: POP 00003e28: POP 00003e29: SWAP1 00003e2a: SUB 00003e2b: SWAP1 00003e2c: JUMP 00003e2d: JUMPDEST 00003e2e: PUSH1 0x00 00003e30: PUSH2 0x35ad 00003e33: DUP4 00003e34: DUP4 00003e35: PUSH1 0x40 00003e37: MLOAD 00003e38: DUP1 00003e39: PUSH1 0x40 00003e3b: ADD 00003e3c: PUSH1 0x40 00003e3e: MSTORE 00003e3f: DUP1 00003e40: PUSH1 0x1e 00003e42: DUP2 00003e43: MSTORE 00003e44: PUSH1 0x20 00003e46: ADD 00003e47: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 00003e68: DUP2 00003e69: MSTORE 00003e6a: POP 00003e6b: PUSH2 0x3f96 00003e6e: JUMP 00003e6f: JUMPDEST 00003e70: PUSH1 0x00 00003e72: DUP1 00003e73: DUP3 00003e74: PUSH1 0x04 00003e76: ADD 00003e77: SWAP1 00003e78: POP 00003e79: DUP1 00003e7a: DUP5 00003e7b: MLOAD 00003e7c: LT 00003e7d: ISZERO 00003e7e: PUSH2 0x3eb6 00003e81: JUMPI 00003e82: PUSH1 0x40 00003e84: DUP1 00003e85: MLOAD 00003e86: PUSH3 0x461bcd 00003e8a: PUSH1 0xe5 00003e8c: SHL 00003e8d: DUP2 00003e8e: MSTORE 00003e8f: PUSH1 0x20 00003e91: PUSH1 0x04 00003e93: DUP3 00003e94: ADD 00003e95: MSTORE 00003e96: PUSH1 0x05 00003e98: PUSH1 0x24 00003e9a: DUP3 00003e9b: ADD 00003e9c: MSTORE 00003e9d: PUSH5 0x189d1d4c0d 00003ea3: PUSH1 0xda 00003ea5: SHL 00003ea6: PUSH1 0x44 00003ea8: DUP3 00003ea9: ADD 00003eaa: MSTORE 00003eab: SWAP1 00003eac: MLOAD 00003ead: SWAP1 00003eae: DUP2 00003eaf: SWAP1 00003eb0: SUB 00003eb1: PUSH1 0x64 00003eb3: ADD 00003eb4: SWAP1 00003eb5: REVERT 00003eb6: JUMPDEST 00003eb7: SWAP3 00003eb8: SWAP1 00003eb9: SWAP3 00003eba: ADD 00003ebb: MLOAD 00003ebc: SWAP3 00003ebd: SWAP2 00003ebe: POP 00003ebf: POP 00003ec0: JUMP 00003ec1: JUMPDEST 00003ec2: PUSH1 0x00 00003ec4: DUP1 00003ec5: DUP3 00003ec6: PUSH1 0x02 00003ec8: ADD 00003ec9: SWAP1 00003eca: POP 00003ecb: DUP1 00003ecc: DUP5 00003ecd: MLOAD 00003ece: LT 00003ecf: ISZERO 00003ed0: PUSH2 0x3eb6 00003ed3: JUMPI 00003ed4: PUSH1 0x40 00003ed6: DUP1 00003ed7: MLOAD 00003ed8: PUSH3 0x461bcd 00003edc: PUSH1 0xe5 00003ede: SHL 00003edf: DUP2 00003ee0: MSTORE 00003ee1: PUSH1 0x20 00003ee3: PUSH1 0x04 00003ee5: DUP3 00003ee6: ADD 00003ee7: MSTORE 00003ee8: PUSH1 0x05 00003eea: PUSH1 0x24 00003eec: DUP3 00003eed: ADD 00003eee: MSTORE 00003eef: PUSH5 0x313a3a9819 00003ef5: PUSH1 0xd9 00003ef7: SHL 00003ef8: PUSH1 0x44 00003efa: DUP3 00003efb: ADD 00003efc: MSTORE 00003efd: SWAP1 00003efe: MLOAD 00003eff: SWAP1 00003f00: DUP2 00003f01: SWAP1 00003f02: SUB 00003f03: PUSH1 0x64 00003f05: ADD 00003f06: SWAP1 00003f07: REVERT 00003f08: JUMPDEST 00003f09: PUSH1 0x00 00003f0b: DUP1 00003f0c: DUP3 00003f0d: PUSH1 0x10 00003f0f: ADD 00003f10: SWAP1 00003f11: POP 00003f12: DUP1 00003f13: DUP5 00003f14: MLOAD 00003f15: LT 00003f16: ISZERO 00003f17: PUSH2 0x3eb6 00003f1a: JUMPI 00003f1b: PUSH1 0x40 00003f1d: DUP1 00003f1e: MLOAD 00003f1f: PUSH3 0x461bcd 00003f23: PUSH1 0xe5 00003f25: SHL 00003f26: DUP2 00003f27: MSTORE 00003f28: PUSH1 0x20 00003f2a: PUSH1 0x04 00003f2c: DUP3 00003f2d: ADD 00003f2e: MSTORE 00003f2f: PUSH1 0x05 00003f31: PUSH1 0x24 00003f33: DUP3 00003f34: ADD 00003f35: MSTORE 00003f36: PUSH5 0x313a3a989b 00003f3c: PUSH1 0xd9 00003f3e: SHL 00003f3f: PUSH1 0x44 00003f41: DUP3 00003f42: ADD 00003f43: MSTORE 00003f44: SWAP1 00003f45: MLOAD 00003f46: SWAP1 00003f47: DUP2 00003f48: SWAP1 00003f49: SUB 00003f4a: PUSH1 0x64 00003f4c: ADD 00003f4d: SWAP1 00003f4e: REVERT 00003f4f: JUMPDEST 00003f50: PUSH1 0x00 00003f52: DUP1 00003f53: DUP3 00003f54: PUSH1 0x14 00003f56: ADD 00003f57: SWAP1 00003f58: POP 00003f59: DUP1 00003f5a: DUP5 00003f5b: MLOAD 00003f5c: LT 00003f5d: ISZERO 00003f5e: PUSH2 0x3eb6 00003f61: JUMPI 00003f62: PUSH1 0x40 00003f64: DUP1 00003f65: MLOAD 00003f66: PUSH3 0x461bcd 00003f6a: PUSH1 0xe5 00003f6c: SHL 00003f6d: DUP2 00003f6e: MSTORE 00003f6f: PUSH1 0x20 00003f71: PUSH1 0x04 00003f73: DUP3 00003f74: ADD 00003f75: MSTORE 00003f76: PUSH1 0x05 00003f78: PUSH1 0x24 00003f7a: DUP3 00003f7b: ADD 00003f7c: MSTORE 00003f7d: PUSH5 0x6274613131 00003f83: PUSH1 0xd8 00003f85: SHL 00003f86: PUSH1 0x44 00003f88: DUP3 00003f89: ADD 00003f8a: MSTORE 00003f8b: SWAP1 00003f8c: MLOAD 00003f8d: SWAP1 00003f8e: DUP2 00003f8f: SWAP1 00003f90: SUB 00003f91: PUSH1 0x64 00003f93: ADD 00003f94: SWAP1 00003f95: REVERT 00003f96: JUMPDEST 00003f97: PUSH1 0x00 00003f99: DUP4 00003f9a: PUSH1 0x01 00003f9c: PUSH1 0x01 00003f9e: PUSH1 0x80 00003fa0: SHL 00003fa1: SUB 00003fa2: AND 00003fa3: DUP4 00003fa4: PUSH1 0x01 00003fa6: PUSH1 0x01 00003fa8: PUSH1 0x80 00003faa: SHL 00003fab: SUB 00003fac: AND 00003fad: GT 00003fae: ISZERO 00003faf: DUP3 00003fb0: SWAP1 00003fb1: PUSH2 0x3e25 00003fb4: JUMPI 00003fb5: PUSH1 0x40 00003fb7: MLOAD 00003fb8: PUSH3 0x461bcd 00003fbc: PUSH1 0xe5 00003fbe: SHL 00003fbf: DUP2 00003fc0: MSTORE 00003fc1: PUSH1 0x20 00003fc3: PUSH1 0x04 00003fc5: DUP3 00003fc6: ADD 00003fc7: DUP2 00003fc8: DUP2 00003fc9: MSTORE 00003fca: DUP4 00003fcb: MLOAD 00003fcc: PUSH1 0x24 00003fce: DUP5 00003fcf: ADD 00003fd0: MSTORE 00003fd1: DUP4 00003fd2: MLOAD 00003fd3: SWAP1 00003fd4: SWAP3 00003fd5: DUP4 00003fd6: SWAP3 00003fd7: PUSH1 0x44 00003fd9: SWAP1 00003fda: SWAP2 00003fdb: ADD 00003fdc: SWAP2 00003fdd: SWAP1 00003fde: DUP6 00003fdf: ADD 00003fe0: SWAP1 00003fe1: DUP1 00003fe2: DUP4 00003fe3: DUP4 00003fe4: PUSH1 0x00 00003fe6: DUP4 00003fe7: ISZERO 00003fe8: PUSH2 0x3dea 00003feb: JUMPI 00003fec: DUP2 00003fed: DUP2 00003fee: ADD 00003fef: MLOAD 00003ff0: DUP4 00003ff1: DUP3 00003ff2: ADD 00003ff3: MSTORE 00003ff4: PUSH1 0x20 00003ff6: ADD 00003ff7: PUSH2 0x3dd2 00003ffa: JUMP 00003ffb: JUMPDEST 00003ffc: PUSH1 0x40 00003ffe: DUP1 00003fff: MLOAD 00004000: PUSH1 0x80 00004002: DUP2 00004003: ADD 00004004: DUP3 00004005: MSTORE 00004006: PUSH1 0x00 00004008: DUP1 00004009: DUP3 0000400a: MSTORE 0000400b: PUSH1 0x20 0000400d: DUP3 0000400e: ADD 0000400f: DUP2 00004010: SWAP1 00004011: MSTORE 00004012: SWAP2 00004013: DUP2 00004014: ADD 00004015: DUP3 00004016: SWAP1 00004017: MSTORE 00004018: PUSH1 0x60 0000401a: DUP2 0000401b: ADD 0000401c: SWAP2 0000401d: SWAP1 0000401e: SWAP2 0000401f: MSTORE 00004020: SWAP1 00004021: JUMP 00004022: JUMPDEST 00004023: POP 00004024: DUP1 00004025: SLOAD 00004026: PUSH1 0x01 00004028: DUP2 00004029: PUSH1 0x01 0000402b: AND 0000402c: ISZERO 0000402d: PUSH2 0x0100 00004030: MUL 00004031: SUB 00004032: AND 00004033: PUSH1 0x02 00004035: SWAP1 00004036: DIV 00004037: PUSH1 0x00 00004039: DUP3 0000403a: SSTORE 0000403b: DUP1 0000403c: PUSH1 0x1f 0000403e: LT 0000403f: PUSH2 0x4048 00004042: JUMPI 00004043: POP 00004044: PUSH2 0x4066 00004047: JUMP 00004048: JUMPDEST 00004049: PUSH1 0x1f 0000404b: ADD 0000404c: PUSH1 0x20 0000404e: SWAP1 0000404f: DIV 00004050: SWAP1 00004051: PUSH1 0x00 00004053: MSTORE 00004054: PUSH1 0x20 00004056: PUSH1 0x00 00004058: KECCAK256 00004059: SWAP1 0000405a: DUP2 0000405b: ADD 0000405c: SWAP1 0000405d: PUSH2 0x4066 00004060: SWAP2 00004061: SWAP1 00004062: PUSH2 0x4111 00004065: JUMP 00004066: JUMPDEST 00004067: POP 00004068: JUMP 00004069: JUMPDEST 0000406a: DUP3 0000406b: DUP1 0000406c: SLOAD 0000406d: PUSH1 0x01 0000406f: DUP2 00004070: PUSH1 0x01 00004072: AND 00004073: ISZERO 00004074: PUSH2 0x0100 00004077: MUL 00004078: SUB 00004079: AND 0000407a: PUSH1 0x02 0000407c: SWAP1 0000407d: DIV 0000407e: SWAP1 0000407f: PUSH1 0x00 00004081: MSTORE 00004082: PUSH1 0x20 00004084: PUSH1 0x00 00004086: KECCAK256 00004087: SWAP1 00004088: PUSH1 0x1f 0000408a: ADD 0000408b: PUSH1 0x20 0000408d: SWAP1 0000408e: DIV 0000408f: DUP2 00004090: ADD 00004091: SWAP3 00004092: DUP3 00004093: PUSH1 0x1f 00004095: LT 00004096: PUSH2 0x40aa 00004099: JUMPI 0000409a: DUP1 0000409b: MLOAD 0000409c: PUSH1 0xff 0000409e: NOT 0000409f: AND 000040a0: DUP4 000040a1: DUP1 000040a2: ADD 000040a3: OR 000040a4: DUP6 000040a5: SSTORE 000040a6: PUSH2 0x40d7 000040a9: JUMP 000040aa: JUMPDEST 000040ab: DUP3 000040ac: DUP1 000040ad: ADD 000040ae: PUSH1 0x01 000040b0: ADD 000040b1: DUP6 000040b2: SSTORE 000040b3: DUP3 000040b4: ISZERO 000040b5: PUSH2 0x40d7 000040b8: JUMPI 000040b9: SWAP2 000040ba: DUP3 000040bb: ADD 000040bc: JUMPDEST 000040bd: DUP3 000040be: DUP2 000040bf: GT 000040c0: ISZERO 000040c1: PUSH2 0x40d7 000040c4: JUMPI 000040c5: DUP3 000040c6: MLOAD 000040c7: DUP3 000040c8: SSTORE 000040c9: SWAP2 000040ca: PUSH1 0x20 000040cc: ADD 000040cd: SWAP2 000040ce: SWAP1 000040cf: PUSH1 0x01 000040d1: ADD 000040d2: SWAP1 000040d3: PUSH2 0x40bc 000040d6: JUMP 000040d7: JUMPDEST 000040d8: POP 000040d9: PUSH2 0x34bf 000040dc: SWAP3 000040dd: SWAP2 000040de: POP 000040df: PUSH2 0x4111 000040e2: JUMP 000040e3: JUMPDEST 000040e4: PUSH1 0x40 000040e6: DUP1 000040e7: MLOAD 000040e8: PUSH1 0xa0 000040ea: DUP2 000040eb: ADD 000040ec: DUP3 000040ed: MSTORE 000040ee: PUSH1 0x00 000040f0: DUP1 000040f1: DUP3 000040f2: MSTORE 000040f3: PUSH1 0x20 000040f5: DUP3 000040f6: ADD 000040f7: DUP2 000040f8: SWAP1 000040f9: MSTORE 000040fa: SWAP2 000040fb: DUP2 000040fc: ADD 000040fd: DUP3 000040fe: SWAP1 000040ff: MSTORE 00004100: PUSH1 0x60 00004102: DUP2 00004103: ADD 00004104: DUP3 00004105: SWAP1 00004106: MSTORE 00004107: PUSH1 0x80 00004109: DUP2 0000410a: ADD 0000410b: SWAP2 0000410c: SWAP1 0000410d: SWAP2 0000410e: MSTORE 0000410f: SWAP1 00004110: JUMP 00004111: JUMPDEST 00004112: PUSH2 0x104e 00004115: SWAP2 00004116: SWAP1 00004117: JUMPDEST 00004118: DUP1 00004119: DUP3 0000411a: GT 0000411b: ISZERO 0000411c: PUSH2 0x34bf 0000411f: JUMPI 00004120: PUSH1 0x00 00004122: DUP2 00004123: SSTORE 00004124: PUSH1 0x01 00004126: ADD 00004127: PUSH2 0x4117 0000412a: JUMP 0000412b: INVALID 0000412c: MSTORE 0000412d: PUSH6 0x656e7472616e 00004134: PUSH4 0x79477561 00004139: PUSH19 0x643a207265656e7472616e742063616c6c007a 0000414d: PUSH12 0x53796e63436f6d6d6974426c 0000415a: PUSH16 0x636b416464726573732073686f756c64 0000416b: KECCAK256 0000416c: PUSH3 0x652073 00004170: PUSH6 0x748e94fed442 00004177: CODECOPY 00004178: UNKNOWN(0xEB) 00004179: UNKNOWN(0x23) 0000417a: EQ 0000417b: UNKNOWN(0xAB) 0000417c: PUSH27 0x406345e6c5a8f0ccedf3b600de3d004e672c33abf4536166654361 00004198: PUSH20 0x743a2076616c756520646f65736e277420666974 000041ad: KECCAK256 000041ae: PUSH10 0x6e203132382062697473 000041b9: LOG2 000041ba: PUSH6 0x627a7a723158 000041c1: KECCAK256 000041c2: UNKNOWN(0xDA) 000041c3: UNKNOWN(0xC6) 000041c4: DUP10 000041c5: UNKNOWN(0x2E) 000041c6: MLOAD 000041c7: UNKNOWN(0xB5) 000041c8: DUP15 000041c9: DUP3 000041ca: AND 000041cb: UNKNOWN(0xE0) 000041cc: UNKNOWN(0xEF) 000041cd: INVALID 000041ce: SWAP9 000041cf: UNKNOWN(0xE7) 000041d0: ADDMOD 000041d1: SMOD 000041d2: UNKNOWN(0xE3) 000041d3: BASEFEE 000041d4: PUSH16 0x7f0c3b9b22d303e73ec647d0fa64736f 000041e5: PUSH13
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | codex | Unprotected genesis/commit address initialization enables delegatecall takeover and fund drain | 90 | no | — |
viewevidence_json{
"evidence": "`setGenesisRootAndAddresses` is external with no access control and only checks for zero addresses, allowing anyone to set `zkSyncCommitBlockAddress`/`zkSyncExitAddress`. The fallback then blindly delegatecalls to `zkSyncCommitBlockAddress`, enabling arbitrary code execution in ZkSync storage.",
"locations": [
"contracts/contracts/ZkSync.sol:169",
"contracts/contracts/ZkSync.sol:173",
"contracts/contracts/ZkSync.sol:175",
"contracts/contracts/ZkSync.sol:176",
"contracts/contracts/ZkSync.sol:513",
"contracts/contracts/ZkSync.sol:515",
"contracts/contracts/ZkSync.sol:519"
],
"recommendation": "Restrict `setGenesisRootAndAddresses` to governance/owner and/or fold it into the authenticated initializer. Also consider making the fallback delegatecall target immutable after a trusted initialization step and verifying the caller for any admin-only setup.",
"exploit_scenario": "1) On a fresh proxy deployment (constructor not run), `zkSyncCommitBlockAddress`/`zkSyncExitAddress` are zero. An attacker deploys a malicious facet with a `drain()` function that calls `IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)))` and/or sends `address(this).balance` to `msg.sender`.\n2) Attacker calls `setGenesisRootAndAddresses(...)` to set `_zkSyncCommitBlockAddress` to the malicious facet (and any `_zkSyncExitAddress`).\n3) Attacker calls the ZkSync proxy with calldata for `drain()`; fallback delegates to the malicious facet, executing in ZkSync context and transferring ETH/ERC20s to the attacker.\nProfit: up to 100% of ETH and ERC20 balances held by the ZkSync contract (all user deposits)."
}
|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x78e576d1923ea49d01d1d7ff37ddbda907b532d30d6211c517731ddfcda2eb80
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x78e576d1923ea49d01d1d7ff37ddbda907b532d30d6211c517731ddfcda2eb80",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xfa6b53c3",
"selector": "0xfa6b53c3",
"calldata_variants": [
"0xfa6b53c3",
"0xfa6b53c30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfaf4d8cb",
"selector": "0xfaf4d8cb",
"calldata_variants": [
"0xfaf4d8cb",
"0xfaf4d8cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc97a303",
"selector": "0xfc97a303",
"calldata_variants": [
"0xfc97a303",
"0xfc97a3030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffeec237",
"selector": "0xffeec237",
"calldata_variants": [
"0xffeec237",
"0xffeec2370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7f40cf6",
"selector": "0xe7f40cf6",
"calldata_variants": [
"0xe7f40cf6",
"0xe7f40cf60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe96aa205",
"selector": "0xe96aa205",
"calldata_variants": [
"0xe96aa205",
"0xe96aa2050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3a4d4af",
"selector": "0xf3a4d4af",
"calldata_variants": [
"0xf3a4d4af",
"0xf3a4d4af0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc57b22be",
"selector": "0xc57b22be",
"calldata_variants": [
"0xc57b22be",
"0xc57b22be0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 823,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 7710,
"type": "msg_sender_eq_const",
"value": 0
}
],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x7abbffaa97ad8d4fad7c8a0564356e6d3a198495ca83fbc3b49b73612d078f56
call_targets:
0xf2c351f22b148a9ff583a0f81701471a74e7338e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x7abbffaa97ad8d4fad7c8a0564356e6d3a198495ca83fbc3b49b73612d078f56",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf2c351f22b148a9ff583a0f81701471a74e7338e"
],
"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": "0xfa6b53c3",
"selector": "0xfa6b53c3",
"calldata_variants": [
"0xfa6b53c3",
"0xfa6b53c30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfaf4d8cb",
"selector": "0xfaf4d8cb",
"calldata_variants": [
"0xfaf4d8cb",
"0xfaf4d8cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc97a303",
"selector": "0xfc97a303",
"calldata_variants": [
"0xfc97a303",
"0xfc97a3030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffeec237",
"selector": "0xffeec237",
"calldata_variants": [
"0xffeec237",
"0xffeec2370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7f40cf6",
"selector": "0xe7f40cf6",
"calldata_variants": [
"0xe7f40cf6",
"0xe7f40cf60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe96aa205",
"selector": "0xe96aa205",
"calldata_variants": [
"0xe96aa205",
"0xe96aa2050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3a4d4af",
"selector": "0xf3a4d4af",
"calldata_variants": [
"0xf3a4d4af",
"0xf3a4d4af0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc57b22be",
"selector": "0xc57b22be",
"calldata_variants": [
"0xc57b22be",
"0xc57b22be0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6558,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7524,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8026,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 12,
"guards_detected": [
{
"pc": 7710,
"type": "msg_sender_eq_const",
"value": 0
}
],
"untrusted_call_count": 12
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x7abbffaa97ad8d4fad7c8a0564356e6d3a198495ca83fbc3b49b73612d078f56
call_targets:
0xf2c351f22b148a9ff583a0f81701471a74e7338e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x7abbffaa97ad8d4fad7c8a0564356e6d3a198495ca83fbc3b49b73612d078f56",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf2c351f22b148a9ff583a0f81701471a74e7338e"
],
"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": "0xfa6b53c3",
"selector": "0xfa6b53c3",
"calldata_variants": [
"0xfa6b53c3",
"0xfa6b53c30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfaf4d8cb",
"selector": "0xfaf4d8cb",
"calldata_variants": [
"0xfaf4d8cb",
"0xfaf4d8cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc97a303",
"selector": "0xfc97a303",
"calldata_variants": [
"0xfc97a303",
"0xfc97a3030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffeec237",
"selector": "0xffeec237",
"calldata_variants": [
"0xffeec237",
"0xffeec2370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7f40cf6",
"selector": "0xe7f40cf6",
"calldata_variants": [
"0xe7f40cf6",
"0xe7f40cf60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe96aa205",
"selector": "0xe96aa205",
"calldata_variants": [
"0xe96aa205",
"0xe96aa2050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3a4d4af",
"selector": "0xf3a4d4af",
"calldata_variants": [
"0xf3a4d4af",
"0xf3a4d4af0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc57b22be",
"selector": "0xc57b22be",
"calldata_variants": [
"0xc57b22be",
"0xc57b22be0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6558,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7524,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8026,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 12,
"guards_detected": [
{
"pc": 7710,
"type": "msg_sender_eq_const",
"value": 0
}
]
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 30
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 24
}
|