8ec2f2fa-e10f-4766-9520-8c4e451b8c4f
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 |
|---|---|---|---|---|
| 30179 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 93673 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 93674 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 93675 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 93676 | capability.graph | complete | 1 / 3 | 1 week ago |
| 93677 | detector.run | complete | 1 / 3 | 1 week ago |
| 93678 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1470605] OpenAI Codex v0.77.0 (research preview)
[codex:1470605] --------
[codex:1470605] workdir: /tmp/codex-multi-y_02cg40
[codex:1470605] model: gpt-5.2-codex
[codex:1470605] provider: openai
[codex:1470605] approval: never
[codex:1470605] sandbox: read-only
[codex:1470605] reasoning effort: xhigh
[codex:1470605] reasoning summaries: auto
[codex:1470605] session id: 019b5b35-380a-7092-be86-437576b000e9
[codex:1470605] --------
[codex:1470605] user
[codex:1470605] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1470605] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1470605] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1470605]
[codex:1470605] Scope rules:
[codex:1470605] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1470605] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1470605]
[codex:1470605] Output MUST be valid JSON matching the provided schema.
[codex:1470605] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1470605] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1470605]
[codex:1470605] Output constraints (IMPORTANT):
[codex:1470605] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1470605] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1470605] mcp startup: no servers
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Reading AUDIT_BUNDLE.txt**
[codex:1470605] exec
[codex:1470605] /bin/bash -lc ls in /tmp/codex-multi-y_02cg40 succeeded in 5ms:
[codex:1470605] AUDIT_BUNDLE.txt
[codex:1470605] codex-output-schema.json
[codex:1470605] contracts
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Reading AUDIT_BUNDLE.txt completely**
[codex:1470605] exec
[codex:1470605] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-y_02cg40 succeeded in 6ms:
[codex:1470605] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1470605]
[codex:1470605] ================================================================================
[codex:1470605] FILE: contracts/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol
[codex:1470605] ================================================================================
[codex:1470605] // SPDX-License-Identifier: MIT
[codex:1470605] // OpenZeppelin Contracts (last updated v5.4.0) (access/IAccessControl.sol)
[codex:1470605]
[codex:1470605] pragma solidity >=0.8.4;
[codex:1470605]
[codex:1470605] /**
[codex:1470605] * @dev External interface of AccessControl declared to support ERC-165 detection.
[codex:1470605] */
[codex:1470605] interface IAccessControl {
[codex:1470605] /**
[codex:1470605] * @dev The `account` is missing a role.
[codex:1470605] */
[codex:1470605] error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
[codex:1470605]
[codex:1470605] /**
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Planning full AUDIT_BUNDLE read**
[codex:1470605]
[codex:1470605] I'm figuring out how to fully read the very large AUDIT_BUNDLE.txt file without missing any content, since tools truncate output. I'll use a combination of commands to read it in manageable chunks and identify first-party file sections by parsing "FILE:" markers. Using a Python script to load and parse the entire file in memory seems like a good way to efficiently separate first-party code from third-party libs while ensuring the whole file is processed before analysis.
[codex:1470605] exec
[codex:1470605] /bin/bash -lc "python - <<'PY'
[codex:1470605] from pathlib import Path
[codex:1470605] text = Path('AUDIT_BUNDLE.txt').read_text()
[codex:1470605] # confirm read full file
[codex:1470605] print('chars', len(text), 'lines', text.count('\\n')+1)
[codex:1470605] # list file sections
[codex:1470605] import re
[codex:1470605] files = re.findall(r'"'^FILE: (.+)$'"', text, re.M)
[codex:1470605] print('files', len(files))
[codex:1470605] # show first 30 file paths
[codex:1470605] for f in files[:30]:
[codex:1470605] print(f)
[codex:1470605] PY" in /tmp/codex-multi-y_02cg40 succeeded in 27ms:
[codex:1470605] chars 253453 lines 6595
[codex:1470605] files 33
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/utils/Arrays.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/utils/Comparators.sol
[codex:1470605] contracts/lib/openzeppelin-contracts/contracts/utils/Errors.sol
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Fetching additional files list**
[codex:1470605] exec
[codex:1470605] /bin/bash -lc "python - <<'PY'
[codex:1470605] from pathlib import Path
[codex:1470605] import re
[codex:1470605] text = Path('AUDIT_BUNDLE.txt').read_text()
[codex:1470605] files = re.findall(r'"'^FILE: (.+)$'"', text, re.M)
[codex:1470605] for f in files[30:]:
[codex:1470605] print(f)
[codex:1470605] PY" in /tmp/codex-multi-y_02cg40 succeeded in 30ms:
[codex:1470605] contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol
[codex:1470605] contracts/src/ISparkVault.sol
[codex:1470605] contracts/src/SparkVault.sol
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Extracting first-party contract code**
[codex:1470605] exec
[codex:1470605] /bin/bash -lc "python - <<'PY'
[codex:1470605] from pathlib import Path
[codex:1470605] import re
[codex:1470605] text = Path('AUDIT_BUNDLE.txt').read_text()
[codex:1470605] # extract sections for first-party
[codex:1470605] paths = ['contracts/src/ISparkVault.sol','contracts/src/SparkVault.sol']
[codex:1470605] for path in paths:
[codex:1470605] # find section boundaries
[codex:1470605] pattern = rf\""'^FILE: {re.escape(path)}$"
[codex:1470605] m = re.search(pattern, text, re.M)
[codex:1470605] if not m:
[codex:1470605] print('"'missing', path)
[codex:1470605] continue
[codex:1470605] start = m.end()
[codex:1470605] # section ends at next \"FILE:\" or end
[codex:1470605] m2 = re.search(r'"'^FILE: '"', text[start:], re.M)
[codex:1470605] end = start + (m2.start() if m2 else len(text) - start)
[codex:1470605] section = text[start:end]
[codex:1470605] print('---', path, '---')
[codex:1470605] print(section.strip())
[codex:1470605] PY" in /tmp/codex-multi-y_02cg40 succeeded in 31ms:
[codex:1470605] --- contracts/src/ISparkVault.sol ---
[codex:1470605] ================================================================================
[codex:1470605] // SPDX-License-Identifier: AGPL-3.0-or-later
[codex:1470605]
[codex:1470605] // Copyright (C) 2021 Dai Foundation
[codex:1470605] //
[codex:1470605] // This program is free software: you can redistribute it and/or modify
[codex:1470605] // it under the terms of the GNU Affero General Public License as published by
[codex:1470605] // the Free Software Foundation, either version 3 of the License, or
[codex:1470605] // (at your option) any later version.
[codex:1470605] //
[codex:1470605] // This program is distributed in the hope that it will be useful,
[codex:1470605] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:1470605] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[codex:1470605] // GNU Affero General Public License for more details.
[codex:1470605] //
[codex:1470605] // You should have received a copy of the GNU Affero General Public License
[codex:1470605] // along with this program. If not, see <https://www.gnu.org/licenses/>.
[codex:1470605]
[codex:1470605] pragma solidity >=0.8.0;
[codex:1470605]
[codex:1470605]
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Evaluating SparkVault security risks**
[codex:1470605] thinking
[codex:1470605] **Detailing nuanced token and access behaviors**
[codex:1470605]
[codex:1470605] I’m parsing subtle issues around fee-on-transfer tokens affecting user received amounts, reentrancy potentials with ERC777 hooks, role assignments for critical functions, upgrade initialization, and rounding effects on share minting. I’m also checking deposit cap logic with asset drains, signature validation compatibility, and the public `drip` function state updates, all while weighing typical design choices versus possible edge cases. There’s a lot here!
[codex:1470605] thinking
[codex:1470605] **Evaluating interface support and reentrancy nuances**
[codex:1470605]
[codex:1470605] I'm reviewing whether the contract should override `supportsInterface` due to multiple inherited interfaces and analyzing ERC777-related reentrancy risks, especially deposit cap bypass through token hooks. I’m also weighing upgrade patterns, signature validation details, and the impact of accounting logic, focusing on which issues may represent meaningful concerns or just lower-risk quirks.
[codex:1470605] exec
[codex:1470605] /bin/bash -lc 'rg -n "SparkVault" AUDIT_BUNDLE.txt' in /tmp/codex-multi-y_02cg40 succeeded in 7ms:
[codex:1470605] 5857:FILE: contracts/src/ISparkVault.sol
[codex:1470605] 5882:interface ISparkVault is IERC20Permit, IERC4626, IAccessControlEnumerable {
[codex:1470605] 6031:FILE: contracts/src/SparkVault.sol
[codex:1470605] 6046:import { ISparkVault } from "./ISparkVault.sol";
[codex:1470605] 6065:/// ISparkVault`.
[codex:1470605] 6066:contract SparkVault is AccessControlEnumerableUpgradeable, UUPSUpgradeable, ISparkVault {
[codex:1470605] 6153: require(minVsr_ >= RAY, "SparkVault/vsr-too-low");
[codex:1470605] 6154: require(maxVsr_ <= MAX_VSR, "SparkVault/vsr-too-high");
[codex:1470605] 6155: require(minVsr_ <= maxVsr_, "SparkVault/min-vsr-gt-max-vsr");
[codex:1470605] 6164: require(newVsr >= minVsr, "SparkVault/vsr-too-low");
[codex:1470605] 6165: require(newVsr <= maxVsr, "SparkVault/vsr-too-high");
[codex:1470605] 6214: require(to != address(0) && to != address(this), "SparkVault/invalid-address");
[codex:1470605] 6216: require(balance >= value, "SparkVault/insufficient-balance");
[codex:1470605] 6230: require(to != address(0) && to != address(this), "SparkVault/invalid-address");
[codex:1470605] 6232: require(balance >= value, "SparkVault/insufficient-balance");
[codex:1470605] 6237: require(allowed >= value, "SparkVault/insufficient-allowance");
[codex:1470605] 6267: require(block.timestamp <= deadline, "SparkVault/permit-expired");
[codex:1470605] 6268: require(owner != address(0), "SparkVault/invalid-owner");
[codex:1470605] 6287: require(_isValidSignature(owner, digest, signature), "SparkVault/invalid-permit");
[codex:1470605] 6404: "SparkVault/insufficient-liquidity"
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Summarizing vulnerability findings and planning evidence gathering**
[codex:1470605]
[codex:1470605] I'm organizing potential vulnerabilities around deposit cap reentrancy, fee-on-transfer token handling, and signature validation concerns. I'll gather exact file paths and line numbers from SparkVault.sol to support these findings and prepare JSON output per the requested schema.
[codex:1470605] exec
[codex:1470605] /bin/bash -lc 'rg -n "function _mint|_pullAsset|depositCap" contracts/src/SparkVault.sol' in /tmp/codex-multi-y_02cg40 succeeded in 7ms:
[codex:1470605] 71: uint256 public depositCap;
[codex:1470605] 116: emit DepositCapSet(depositCap, newCap);
[codex:1470605] 117: depositCap = newCap;
[codex:1470605] 329: uint256 depositCap_ = depositCap;
[codex:1470605] 330: return depositCap_ <= totalAssets_ ? 0 : depositCap_ - totalAssets_;
[codex:1470605] 334: uint256 depositCap_ = depositCap;
[codex:1470605] 336: // NOTE: Prevents overflow on (depositCap_ - totalAssets_) * RAY below, values above
[codex:1470605] 338: if (depositCap_ > type(uint256).max / RAY) return type(uint256).max;
[codex:1470605] 342: return depositCap_ <= totalAssets_ ? 0 : (depositCap_ - totalAssets_) * RAY / nowChi();
[codex:1470605] 442: function _mint(uint256 assets, uint256 shares, address receiver) internal {
[codex:1470605] 450: require(totalAssets() + assets <= depositCap, "SparkVault/deposit-cap-exceeded");
[codex:1470605] 452: _pullAsset(msg.sender, assets);
[codex:1470605] 465: function _pullAsset(address from, uint256 value) internal {
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Inspecting code around _mint**
[codex:1470605] exec
[codex:1470605] /bin/bash -lc "nl -ba contracts/src/SparkVault.sol | sed -n '430,470p'" in /tmp/codex-multi-y_02cg40 succeeded in 6ms:
[codex:1470605] 430 // and balance <= totalSupply
[codex:1470605] 431 unchecked {
[codex:1470605] 432 balanceOf[owner] = balance - shares;
[codex:1470605] 433 totalSupply = totalSupply - shares;
[codex:1470605] 434 }
[codex:1470605] 435
[codex:1470605] 436 _pushAsset(receiver, assets);
[codex:1470605] 437
[codex:1470605] 438 emit Transfer(owner, address(0), shares);
[codex:1470605] 439 emit Withdraw(msg.sender, receiver, owner, assets, shares);
[codex:1470605] 440 }
[codex:1470605] 441
[codex:1470605] 442 function _mint(uint256 assets, uint256 shares, address receiver) internal {
[codex:1470605] 443 require(receiver != address(0) && receiver != address(this), "SparkVault/invalid-address");
[codex:1470605] 444
[codex:1470605] 445 require(
[codex:1470605] 446 !hasRole(TAKER_ROLE, msg.sender) && !hasRole(TAKER_ROLE, receiver),
[codex:1470605] 447 "SparkVault/taker-cannot-deposit"
[codex:1470605] 448 );
[codex:1470605] 449
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Identifying reentrancy and signature check points**
[codex:1470605] exec
[codex:1470605] /bin/bash -lc 'rg -n "_isValidSignature|ecrecover" contracts/src/SparkVault.sol' in /tmp/codex-multi-y_02cg40 succeeded in 6ms:
[codex:1470605] 255: require(_isValidSignature(owner, digest, signature), "SparkVault/invalid-permit");
[codex:1470605] 497: function _isValidSignature(
[codex:1470605] 511: if (signer == ecrecover(digest, v, r, s)) {
[codex:1470605] exec
[codex:1470605] /bin/bash -lc "nl -ba contracts/src/SparkVault.sol | sed -n '490,530p'" in /tmp/codex-multi-y_02cg40 succeeded in 6ms:
[codex:1470605] 490 );
[codex:1470605] 491 }
[codex:1470605] 492
[codex:1470605] 493 function DOMAIN_SEPARATOR() external view returns (bytes32) {
[codex:1470605] 494 return _calculateDomainSeparator(block.chainid);
[codex:1470605] 495 }
[codex:1470605] 496
[codex:1470605] 497 function _isValidSignature(
[codex:1470605] 498 address signer,
[codex:1470605] 499 bytes32 digest,
[codex:1470605] 500 bytes memory signature
[codex:1470605] 501 ) internal view returns (bool valid) {
[codex:1470605] 502 if (signature.length == 65) {
[codex:1470605] 503 bytes32 r;
[codex:1470605] 504 bytes32 s;
[codex:1470605] 505 uint8 v;
[codex:1470605] 506 assembly {
[codex:1470605] 507 r := mload(add(signature, 0x20))
[codex:1470605] 508 s := mload(add(signature, 0x40))
[codex:1470605] 509 v := byte(0, mload(add(signature, 0x60)))
[codex:1470605]
[codex:1470605] thinking
[codex:1470605] **Summarizing and categorizing audit findings with severity**
[codex:1470605] codex
[codex:1470605] {"no_findings":false,"summary":"Found 3 issues: deposit-cap bypass via reentrancy, share over-minting with fee-on-transfer assets, and malleable ECDSA permits.","findings":[{"severity":"medium","category":"reentrancy","title":"Deposit cap can be bypassed via reentrancy during asset transfer","exploit_scenario":"If the underlying asset invokes callbacks (e.g., ERC777 hooks or a malicious ERC20), a depositor can reenter `deposit`/`mint` during `_pullAsset`. Because `totalSupply` is only updated after the external transfer, each reentrant call sees the same pre-mint `totalAssets()` and passes the cap check, resulting in `totalAssets` exceeding `depositCap` after the stack unwinds.","recommendation":"Apply checks-effects-interactions: update `totalSupply`/balances before external calls and revert on failure, or add `nonReentrant` to `deposit`/`mint`, or enforce the cap using a pre-updated local accumulator to prevent reentrancy bypasses.","evidence":"`_mint` checks `totalAssets() + assets <= depositCap` and then calls `_pullAsset` (external) before updating `totalSupply`/`balanceOf`.","locations":["contracts/src/SparkVault.sol:442","contracts/src/SparkVault.sol:450","contracts/src/SparkVault.sol:452","contracts/src/SparkVault.sol:465"]},{"severity":"medium","category":"other","title":"Fee-on-transfer or deflationary assets break share accounting","exploit_scenario":"For fee-on-transfer tokens, a user can deposit `assets` where the vault receives fewer tokens than `assets`, yet shares are minted for the full amount. If there is sufficient liquidity (from other users), the depositor can later redeem more assets than were actually received, diluting other holders or causing insolvency/withdrawal failures.","recommendation":"Either explicitly restrict `asset` to non-deflationary ERC20s or compute `actualReceived` by checking balance before/after `_pullAsset` and mint shares based on that delta.","evidence":"Shares are minted from the input `assets` while `_pullAsset` does not verify the actual amount received.","locations":["contracts/src/SparkVault.sol:442","contracts/src/SparkVault.sol:452","contracts/src/SparkVault.sol:465"]},{"severity":"low","category":"auth","title":"Permit accepts malleable ECDSA signatures","exploit_scenario":"Because `ecrecover` is used without enforcing `s` in the lower half-order or validating `v`, the same permit digest can have multiple valid signatures. This can break integrations that assume signature uniqueness or allow alternate signatures to be replayed by relayers.","recommendation":"Use OpenZeppelin’s `ECDSA.recover` (or add explicit `s`/`v` checks) before accepting the signature.","evidence":"`_isValidSignature` calls `ecrecover` directly without `s`/`v` normalization checks.","locations":["contracts/src/SparkVault.sol:497","contracts/src/SparkVault.sol:511"]}]}
[codex:1470605] tokens used
[codex:1470605] 61,465
[codex:1470605] {"no_findings":false,"summary":"Found 3 issues: deposit-cap bypass via reentrancy, share over-minting with fee-on-transfer assets, and malleable ECDSA permits.","findings":[{"severity":"medium","category":"reentrancy","title":"Deposit cap can be bypassed via reentrancy during asset transfer","exploit_scenario":"If the underlying asset invokes callbacks (e.g., ERC777 hooks or a malicious ERC20), a depositor can reenter `deposit`/`mint` during `_pullAsset`. Because `totalSupply` is only updated after the external transfer, each reentrant call sees the same pre-mint `totalAssets()` and passes the cap check, resulting in `totalAssets` exceeding `depositCap` after the stack unwinds.","recommendation":"Apply checks-effects-interactions: update `totalSupply`/balances before external calls and revert on failure, or add `nonReentrant` to `deposit`/`mint`, or enforce the cap using a pre-updated local accumulator to prevent reentrancy bypasses.","evidence":"`_mint` checks `totalAssets() + assets <= depositCap` and then calls `_pullAsset` (external) before updating `totalSupply`/`balanceOf`.","locations":["contracts/src/SparkVault.sol:442","contracts/src/SparkVault.sol:450","contracts/src/SparkVault.sol:452","contracts/src/SparkVault.sol:465"]},{"severity":"medium","category":"other","title":"Fee-on-transfer or deflationary assets break share accounting","exploit_scenario":"For fee-on-transfer tokens, a user can deposit `assets` where the vault receives fewer tokens than `assets`, yet shares are minted for the full amount. If there is sufficient liquidity (from other users), the depositor can later redeem more assets than were actually received, diluting other holders or causing insolvency/withdrawal failures.","recommendation":"Either explicitly restrict `asset` to non-deflationary ERC20s or compute `actualReceived` by checking balance before/after `_pullAsset` and mint shares based on that delta.","evidence":"Shares are minted from the input `assets` while `_pullAsset` does not verify the actual amount received.","locations":["contracts/src/SparkVault.sol:442","contracts/src/SparkVault.sol:452","contracts/src/SparkVault.sol:465"]},{"severity":"low","category":"auth","title":"Permit accepts malleable ECDSA signatures","exploit_scenario":"Because `ecrecover` is used without enforcing `s` in the lower half-order or validating `v`, the same permit digest can have multiple valid signatures. This can break integrations that assume signature uniqueness or allow alternate signatures to be replayed by relayers.","recommendation":"Use OpenZeppelin’s `ECDSA.recover` (or add explicit `s`/`v` checks) before accepting the signature.","evidence":"`_isValidSignature` calls `ecrecover` directly without `s`/`v` normalization checks.","locations":["contracts/src/SparkVault.sol:497","contracts/src/SparkVault.sol:511"]}]}
{
"codex": {
"ran_at": "2025-12-26T15:15:24.306994+00:00",
"returncode": 0
},
"summary": "Found 3 issues: deposit-cap bypass via reentrancy, share over-minting with fee-on-transfer assets, and malleable ECDSA permits.",
"raw_final": {
"summary": "Found 3 issues: deposit-cap bypass via reentrancy, share over-minting with fee-on-transfer assets, and malleable ECDSA permits.",
"findings": [
{
"title": "Deposit cap can be bypassed via reentrancy during asset transfer",
"category": "reentrancy",
"evidence": "`_mint` checks `totalAssets() + assets <= depositCap` and then calls `_pullAsset` (external) before updating `totalSupply`/`balanceOf`.",
"severity": "medium",
"locations": [
"contracts/src/SparkVault.sol:442",
"contracts/src/SparkVault.sol:450",
"contracts/src/SparkVault.sol:452",
"contracts/src/SparkVault.sol:465"
],
"recommendation": "Apply checks-effects-interactions: update `totalSupply`/balances before external calls and revert on failure, or add `nonReentrant` to `deposit`/`mint`, or enforce the cap using a pre-updated local accumulator to prevent reentrancy bypasses.",
"exploit_scenario": "If the underlying asset invokes callbacks (e.g., ERC777 hooks or a malicious ERC20), a depositor can reenter `deposit`/`mint` during `_pullAsset`. Because `totalSupply` is only updated after the external transfer, each reentrant call sees the same pre-mint `totalAssets()` and passes the cap check, resulting in `totalAssets` exceeding `depositCap` after the stack unwinds."
},
{
"title": "Fee-on-transfer or deflationary assets break share accounting",
"category": "other",
"evidence": "Shares are minted from the input `assets` while `_pullAsset` does not verify the actual amount received.",
"severity": "medium",
"locations": [
"contracts/src/SparkVault.sol:442",
"contracts/src/SparkVault.sol:452",
"contracts/src/SparkVault.sol:465"
],
"recommendation": "Either explicitly restrict `asset` to non-deflationary ERC20s or compute `actualReceived` by checking balance before/after `_pullAsset` and mint shares based on that delta.",
"exploit_scenario": "For fee-on-transfer tokens, a user can deposit `assets` where the vault receives fewer tokens than `assets`, yet shares are minted for the full amount. If there is sufficient liquidity (from other users), the depositor can later redeem more assets than were actually received, diluting other holders or causing insolvency/withdrawal failures."
},
{
"title": "Permit accepts malleable ECDSA signatures",
"category": "auth",
"evidence": "`_isValidSignature` calls `ecrecover` directly without `s`/`v` normalization checks.",
"severity": "low",
"locations": [
"contracts/src/SparkVault.sol:497",
"contracts/src/SparkVault.sol:511"
],
"recommendation": "Use OpenZeppelin\u2019s `ECDSA.recover` (or add explicit `s`/`v` checks) before accepting the signature.",
"exploit_scenario": "Because `ecrecover` is used without enforcing `s` in the lower half-order or validating `v`, the same permit digest can have multiple valid signatures. This can break integrations that assume signature uniqueness or allow alternate signatures to be replayed by relayers."
}
],
"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 0x03c9 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x78d3e538 00000018: GT 00000019: PUSH2 0x01f4 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xad3cb1cc 00000023: GT 00000024: PUSH2 0x0113 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xce96cb77 0000002e: GT 0000002f: PUSH2 0x00a8 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xd9d5f4cb 00000039: GT 0000003a: PUSH2 0x0078 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xd9d5f4cb 00000044: EQ 00000045: PUSH2 0x0b93 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xdbd5edc7 0000004f: EQ 00000050: PUSH2 0x0ba8 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xdd62ed3e 0000005a: EQ 0000005b: PUSH2 0x0bbd 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0xef8b30f7 00000065: EQ 00000066: PUSH2 0x0bf3 00000069: JUMPI 0000006a: DUP1 0000006b: PUSH4 0xf65de94a 00000070: EQ 00000071: PUSH2 0x0c12 00000074: JUMPI 00000075: PUSH0 00000076: PUSH0 00000077: REVERT 00000078: JUMPDEST 00000079: DUP1 0000007a: PUSH4 0xce96cb77 0000007f: EQ 00000080: PUSH2 0x0b17 00000083: JUMPI 00000084: DUP1 00000085: PUSH4 0xd505accf 0000008a: EQ 0000008b: PUSH2 0x0b36 0000008e: JUMPI 0000008f: DUP1 00000090: PUSH4 0xd547741f 00000095: EQ 00000096: PUSH2 0x0b55 00000099: JUMPI 0000009a: DUP1 0000009b: PUSH4 0xd905777e 000000a0: EQ 000000a1: PUSH2 0x0b74 000000a4: JUMPI 000000a5: PUSH0 000000a6: PUSH0 000000a7: REVERT 000000a8: JUMPDEST 000000a9: DUP1 000000aa: PUSH4 0xc63d75b6 000000af: GT 000000b0: PUSH2 0x00e3 000000b3: JUMPI 000000b4: DUP1 000000b5: PUSH4 0xc63d75b6 000000ba: EQ 000000bb: PUSH2 0x0a7c 000000be: JUMPI 000000bf: DUP1 000000c0: PUSH4 0xc6e6f592 000000c5: EQ 000000c6: PUSH2 0x0a9b 000000c9: JUMPI 000000ca: DUP1 000000cb: PUSH4 0xc92aecc4 000000d0: EQ 000000d1: PUSH2 0x0aba 000000d4: JUMPI 000000d5: DUP1 000000d6: PUSH4 0xca15c873 000000db: EQ 000000dc: PUSH2 0x0af8 000000df: JUMPI 000000e0: PUSH0 000000e1: PUSH0 000000e2: REVERT 000000e3: JUMPDEST 000000e4: DUP1 000000e5: PUSH4 0xad3cb1cc 000000ea: EQ 000000eb: PUSH2 0x09ef 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0xb3d7f6b9 000000f5: EQ 000000f6: PUSH2 0x0a1f 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0xb460af94 00000100: EQ 00000101: PUSH2 0x0a3e 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0xba087652 0000010b: EQ 0000010c: PUSH2 0x0a5d 0000010f: JUMPI 00000110: PUSH0 00000111: PUSH0 00000112: REVERT 00000113: JUMPDEST 00000114: DUP1 00000115: PUSH4 0x9b8d6d38 0000011a: GT 0000011b: PUSH2 0x0189 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0xa217fddf 00000125: GT 00000126: PUSH2 0x0159 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0xa217fddf 00000130: EQ 00000131: PUSH2 0x097d 00000134: JUMPI 00000135: DUP1 00000136: PUSH4 0xa3246ad3 0000013b: EQ 0000013c: PUSH2 0x0990 0000013f: JUMPI 00000140: DUP1 00000141: PUSH4 0xa9059cbb 00000146: EQ 00000147: PUSH2 0x09bc 0000014a: JUMPI 0000014b: DUP1 0000014c: PUSH4 0xaaf10f42 00000151: EQ 00000152: PUSH2 0x09db 00000155: JUMPI 00000156: PUSH0 00000157: PUSH0 00000158: REVERT 00000159: JUMPDEST 0000015a: DUP1 0000015b: PUSH4 0x9b8d6d38 00000160: EQ 00000161: PUSH2 0x08f8 00000164: JUMPI 00000165: DUP1 00000166: PUSH4 0x9f678cca 0000016b: EQ 0000016c: PUSH2 0x0917 0000016f: JUMPI 00000170: DUP1 00000171: PUSH4 0x9fd5a6cf 00000176: EQ 00000177: PUSH2 0x092b 0000017a: JUMPI 0000017b: DUP1 0000017c: PUSH4 0xa2011b3f 00000181: EQ 00000182: PUSH2 0x094a 00000185: JUMPI 00000186: PUSH0 00000187: PUSH0 00000188: REVERT 00000189: JUMPDEST 0000018a: DUP1 0000018b: PUSH4 0x91d14854 00000190: GT 00000191: PUSH2 0x01c4 00000194: JUMPI 00000195: DUP1 00000196: PUSH4 0x91d14854 0000019b: EQ 0000019c: PUSH2 0x0892 0000019f: JUMPI 000001a0: DUP1 000001a1: PUSH4 0x925455ca 000001a6: EQ 000001a7: PUSH2 0x08b1 000001aa: JUMPI 000001ab: DUP1 000001ac: PUSH4 0x94bf804d 000001b1: EQ 000001b2: PUSH2 0x08c5 000001b5: JUMPI 000001b6: DUP1 000001b7: PUSH4 0x95d89b41 000001bc: EQ 000001bd: PUSH2 0x08e4 000001c0: JUMPI 000001c1: PUSH0 000001c2: PUSH0 000001c3: REVERT 000001c4: JUMPDEST 000001c5: DUP1 000001c6: PUSH4 0x78d3e538 000001cb: EQ 000001cc: PUSH2 0x080a 000001cf: JUMPI 000001d0: DUP1 000001d1: PUSH4 0x7ecebe00 000001d6: EQ 000001d7: PUSH2 0x0829 000001da: JUMPI 000001db: DUP1 000001dc: PUSH4 0x86651203 000001e1: EQ 000001e2: PUSH2 0x0854 000001e5: JUMPI 000001e6: DUP1 000001e7: PUSH4 0x9010d07c 000001ec: EQ 000001ed: PUSH2 0x0873 000001f0: JUMPI 000001f1: PUSH0 000001f2: PUSH0 000001f3: REVERT 000001f4: JUMPDEST 000001f5: DUP1 000001f6: PUSH4 0x313ce567 000001fb: GT 000001fc: PUSH2 0x02eb 000001ff: JUMPI 00000200: DUP1 00000201: PUSH4 0x4fd9efc4 00000206: GT 00000207: PUSH2 0x0280 0000020a: JUMPI 0000020b: DUP1 0000020c: PUSH4 0x5cc66269 00000211: GT 00000212: PUSH2 0x0250 00000215: JUMPI 00000216: DUP1 00000217: PUSH4 0x5cc66269 0000021c: EQ 0000021d: PUSH2 0x0763 00000220: JUMPI 00000221: DUP1 00000222: PUSH4 0x613d25bb 00000227: EQ 00000228: PUSH2 0x0782 0000022b: JUMPI 0000022c: DUP1 0000022d: PUSH4 0x6e553f65 00000232: EQ 00000233: PUSH2 0x07a1 00000236: JUMPI 00000237: DUP1 00000238: PUSH4 0x70a08231 0000023d: EQ 0000023e: PUSH2 0x07c0 00000241: JUMPI 00000242: DUP1 00000243: PUSH4 0x7497d46c 00000248: EQ 00000249: PUSH2 0x07eb 0000024c: JUMPI 0000024d: PUSH0 0000024e: PUSH0 0000024f: REVERT 00000250: JUMPDEST 00000251: DUP1 00000252: PUSH4 0x4fd9efc4 00000257: EQ 00000258: PUSH2 0x06e6 0000025b: JUMPI 0000025c: DUP1 0000025d: PUSH4 0x52d1902d 00000262: EQ 00000263: PUSH2 0x0705 00000266: JUMPI 00000267: DUP1 00000268: PUSH4 0x54fd4d50 0000026d: EQ 0000026e: PUSH2 0x0719 00000271: JUMPI 00000272: DUP1 00000273: PUSH4 0x552033c4 00000278: EQ 00000279: PUSH2 0x0745 0000027c: JUMPI 0000027d: PUSH0 0000027e: PUSH0 0000027f: REVERT 00000280: JUMPDEST 00000281: DUP1 00000282: PUSH4 0x402d267d 00000287: GT 00000288: PUSH2 0x02bb 0000028b: JUMPI 0000028c: DUP1 0000028d: PUSH4 0x402d267d 00000292: EQ 00000293: PUSH2 0x0681 00000296: JUMPI 00000297: DUP1 00000298: PUSH4 0x4ab65039 0000029d: EQ 0000029e: PUSH2 0x06a0 000002a1: JUMPI 000002a2: DUP1 000002a3: PUSH4 0x4cdad506 000002a8: EQ 000002a9: PUSH2 0x06b4 000002ac: JUMPI 000002ad: DUP1 000002ae: PUSH4 0x4f1ef286 000002b3: EQ 000002b4: PUSH2 0x06d3 000002b7: JUMPI 000002b8: PUSH0 000002b9: PUSH0 000002ba: REVERT 000002bb: JUMPDEST 000002bc: DUP1 000002bd: PUSH4 0x313ce567 000002c2: EQ 000002c3: PUSH2 0x05e7 000002c6: JUMPI 000002c7: DUP1 000002c8: PUSH4 0x3644e515 000002cd: EQ 000002ce: PUSH2 0x0618 000002d1: JUMPI 000002d2: DUP1 000002d3: PUSH4 0x36568abe 000002d8: EQ 000002d9: PUSH2 0x062c 000002dc: JUMPI 000002dd: DUP1 000002de: PUSH4 0x38d52e0f 000002e3: EQ 000002e4: PUSH2 0x064b 000002e7: JUMPI 000002e8: PUSH0 000002e9: PUSH0 000002ea: REVERT 000002eb: JUMPDEST 000002ec: DUP1 000002ed: PUSH4 0x20aba08b 000002f2: GT 000002f3: PUSH2 0x0361 000002f6: JUMPI 000002f7: DUP1 000002f8: PUSH4 0x2c62fa10 000002fd: GT 000002fe: PUSH2 0x0331 00000301: JUMPI 00000302: DUP1 00000303: PUSH4 0x2c62fa10 00000308: EQ 00000309: PUSH2 0x055f 0000030c: JUMPI 0000030d: DUP1 0000030e: PUSH4 0x2ced1b2d 00000313: EQ 00000314: PUSH2 0x057e 00000317: JUMPI 00000318: DUP1 00000319: PUSH4 0x2f2ff15d 0000031e: EQ 0000031f: PUSH2 0x0593 00000322: JUMPI 00000323: DUP1 00000324: PUSH4 0x30adf81f 00000329: EQ 0000032a: PUSH2 0x05b4 0000032d: JUMPI 0000032e: PUSH0 0000032f: PUSH0 00000330: REVERT 00000331: JUMPDEST 00000332: DUP1 00000333: PUSH4 0x20aba08b 00000338: EQ 00000339: PUSH2 0x04cb 0000033c: JUMPI 0000033d: DUP1 0000033e: PUSH4 0x216740a0 00000343: EQ 00000344: PUSH2 0x0502 00000347: JUMPI 00000348: DUP1 00000349: PUSH4 0x23b872dd 0000034e: EQ 0000034f: PUSH2 0x0521 00000352: JUMPI 00000353: DUP1 00000354: PUSH4 0x248a9ca3 00000359: EQ 0000035a: PUSH2 0x0540 0000035d: JUMPI 0000035e: PUSH0 0000035f: PUSH0 00000360: REVERT 00000361: JUMPDEST 00000362: DUP1 00000363: PUSH4 0x095ea7b3 00000368: GT 00000369: PUSH2 0x039c 0000036c: JUMPI 0000036d: DUP1 0000036e: PUSH4 0x095ea7b3 00000373: EQ 00000374: PUSH2 0x0463 00000377: JUMPI 00000378: DUP1 00000379: PUSH4 0x0a28a477 0000037e: EQ 0000037f: PUSH2 0x0482 00000382: JUMPI 00000383: DUP1 00000384: PUSH4 0x18160ddd 00000389: EQ 0000038a: PUSH2 0x04a1 0000038d: JUMPI 0000038e: DUP1 0000038f: PUSH4 0x1e7b14d3 00000394: EQ 00000395: PUSH2 0x04b6 00000398: JUMPI 00000399: PUSH0 0000039a: PUSH0 0000039b: REVERT 0000039c: JUMPDEST 0000039d: DUP1 0000039e: PUSH4 0x01e1d114 000003a3: EQ 000003a4: PUSH2 0x03cd 000003a7: JUMPI 000003a8: DUP1 000003a9: PUSH4 0x01ffc9a7 000003ae: EQ 000003af: PUSH2 0x03f4 000003b2: JUMPI 000003b3: DUP1 000003b4: PUSH4 0x06fdde03 000003b9: EQ 000003ba: PUSH2 0x0423 000003bd: JUMPI 000003be: DUP1 000003bf: PUSH4 0x07a2d13a 000003c4: EQ 000003c5: PUSH2 0x0444 000003c8: JUMPI 000003c9: JUMPDEST 000003ca: PUSH0 000003cb: PUSH0 000003cc: REVERT 000003cd: JUMPDEST 000003ce: CALLVALUE 000003cf: DUP1 000003d0: ISZERO 000003d1: PUSH2 0x03d8 000003d4: JUMPI 000003d5: PUSH0 000003d6: PUSH0 000003d7: REVERT 000003d8: JUMPDEST 000003d9: POP 000003da: PUSH2 0x03e1 000003dd: PUSH2 0x0c32 000003e0: JUMP 000003e1: JUMPDEST 000003e2: PUSH1 0x40 000003e4: MLOAD 000003e5: SWAP1 000003e6: DUP2 000003e7: MSTORE 000003e8: PUSH1 0x20 000003ea: ADD 000003eb: JUMPDEST 000003ec: PUSH1 0x40 000003ee: MLOAD 000003ef: DUP1 000003f0: SWAP2 000003f1: SUB 000003f2: SWAP1 000003f3: RETURN 000003f4: JUMPDEST 000003f5: CALLVALUE 000003f6: DUP1 000003f7: ISZERO 000003f8: PUSH2 0x03ff 000003fb: JUMPI 000003fc: PUSH0 000003fd: PUSH0 000003fe: REVERT 000003ff: JUMPDEST 00000400: POP 00000401: PUSH2 0x0413 00000404: PUSH2 0x040e 00000407: CALLDATASIZE 00000408: PUSH1 0x04 0000040a: PUSH2 0x302d 0000040d: JUMP 0000040e: JUMPDEST 0000040f: PUSH2 0x0c43 00000412: JUMP 00000413: JUMPDEST 00000414: PUSH1 0x40 00000416: MLOAD 00000417: SWAP1 00000418: ISZERO 00000419: ISZERO 0000041a: DUP2 0000041b: MSTORE 0000041c: PUSH1 0x20 0000041e: ADD 0000041f: PUSH2 0x03eb 00000422: JUMP 00000423: JUMPDEST 00000424: CALLVALUE 00000425: DUP1 00000426: ISZERO 00000427: PUSH2 0x042e 0000042a: JUMPI 0000042b: PUSH0 0000042c: PUSH0 0000042d: REVERT 0000042e: JUMPDEST 0000042f: POP 00000430: PUSH2 0x0437 00000433: PUSH2 0x0c6d 00000436: JUMP 00000437: JUMPDEST 00000438: PUSH1 0x40 0000043a: MLOAD 0000043b: PUSH2 0x03eb 0000043e: SWAP2 0000043f: SWAP1 00000440: PUSH2 0x3076 00000443: JUMP 00000444: JUMPDEST 00000445: CALLVALUE 00000446: DUP1 00000447: ISZERO 00000448: PUSH2 0x044f 0000044b: JUMPI 0000044c: PUSH0 0000044d: PUSH0 0000044e: REVERT 0000044f: JUMPDEST 00000450: POP 00000451: PUSH2 0x03e1 00000454: PUSH2 0x045e 00000457: CALLDATASIZE 00000458: PUSH1 0x04 0000045a: PUSH2 0x3088 0000045d: JUMP 0000045e: JUMPDEST 0000045f: PUSH2 0x0cf9 00000462: JUMP 00000463: JUMPDEST 00000464: CALLVALUE 00000465: DUP1 00000466: ISZERO 00000467: PUSH2 0x046e 0000046a: JUMPI 0000046b: PUSH0 0000046c: PUSH0 0000046d: REVERT 0000046e: JUMPDEST 0000046f: POP 00000470: PUSH2 0x0413 00000473: PUSH2 0x047d 00000476: CALLDATASIZE 00000477: PUSH1 0x04 00000479: PUSH2 0x30b5 0000047c: JUMP 0000047d: JUMPDEST 0000047e: PUSH2 0x0d22 00000481: JUMP 00000482: JUMPDEST 00000483: CALLVALUE 00000484: DUP1 00000485: ISZERO 00000486: PUSH2 0x048d 00000489: JUMPI 0000048a: PUSH0 0000048b: PUSH0 0000048c: REVERT 0000048d: JUMPDEST 0000048e: POP 0000048f: PUSH2 0x03e1 00000492: PUSH2 0x049c 00000495: CALLDATASIZE 00000496: PUSH1 0x04 00000498: PUSH2 0x3088 0000049b: JUMP 0000049c: JUMPDEST 0000049d: PUSH2 0x0d8d 000004a0: JUMP 000004a1: JUMPDEST 000004a2: CALLVALUE 000004a3: DUP1 000004a4: ISZERO 000004a5: PUSH2 0x04ac 000004a8: JUMPI 000004a9: PUSH0 000004aa: PUSH0 000004ab: REVERT 000004ac: JUMPDEST 000004ad: POP 000004ae: PUSH2 0x03e1 000004b1: PUSH1 0x08 000004b3: SLOAD 000004b4: DUP2 000004b5: JUMP 000004b6: JUMPDEST 000004b7: CALLVALUE 000004b8: DUP1 000004b9: ISZERO 000004ba: PUSH2 0x04c1 000004bd: JUMPI 000004be: PUSH0 000004bf: PUSH0 000004c0: REVERT 000004c1: JUMPDEST 000004c2: POP 000004c3: PUSH2 0x03e1 000004c6: PUSH1 0x04 000004c8: SLOAD 000004c9: DUP2 000004ca: JUMP 000004cb: JUMPDEST 000004cc: CALLVALUE 000004cd: DUP1 000004ce: ISZERO 000004cf: PUSH2 0x04d6 000004d2: JUMPI 000004d3: PUSH0 000004d4: PUSH0 000004d5: REVERT 000004d6: JUMPDEST 000004d7: POP 000004d8: PUSH1 0x03 000004da: SLOAD 000004db: PUSH2 0x04ea 000004de: SWAP1 000004df: PUSH1 0x01 000004e1: PUSH1 0x01 000004e3: PUSH1 0x40 000004e5: SHL 000004e6: SUB 000004e7: AND 000004e8: DUP2 000004e9: JUMP 000004ea: JUMPDEST 000004eb: PUSH1 0x40 000004ed: MLOAD 000004ee: PUSH1 0x01 000004f0: PUSH1 0x01 000004f2: PUSH1 0x40 000004f4: SHL 000004f5: SUB 000004f6: SWAP1 000004f7: SWAP2 000004f8: AND 000004f9: DUP2 000004fa: MSTORE 000004fb: PUSH1 0x20 000004fd: ADD 000004fe: PUSH2 0x03eb 00000501: JUMP 00000502: JUMPDEST 00000503: CALLVALUE 00000504: DUP1 00000505: ISZERO 00000506: PUSH2 0x050d 00000509: JUMPI 0000050a: PUSH0 0000050b: PUSH0 0000050c: REVERT 0000050d: JUMPDEST 0000050e: POP 0000050f: PUSH2 0x03e1 00000512: PUSH2 0x051c 00000515: CALLDATASIZE 00000516: PUSH1 0x04 00000518: PUSH2 0x30dd 0000051b: JUMP 0000051c: JUMPDEST 0000051d: PUSH2 0x0e43 00000520: JUMP 00000521: JUMPDEST 00000522: CALLVALUE 00000523: DUP1 00000524: ISZERO 00000525: PUSH2 0x052c 00000528: JUMPI 00000529: PUSH0 0000052a: PUSH0 0000052b: REVERT 0000052c: JUMPDEST 0000052d: POP 0000052e: PUSH2 0x0413 00000531: PUSH2 0x053b 00000534: CALLDATASIZE 00000535: PUSH1 0x04 00000537: PUSH2 0x3120 0000053a: JUMP 0000053b: JUMPDEST 0000053c: PUSH2 0x0ea8 0000053f: JUMP 00000540: JUMPDEST 00000541: CALLVALUE 00000542: DUP1 00000543: ISZERO 00000544: PUSH2 0x054b 00000547: JUMPI 00000548: PUSH0 00000549: PUSH0 0000054a: REVERT 0000054b: JUMPDEST 0000054c: POP 0000054d: PUSH2 0x03e1 00000550: PUSH2 0x055a 00000553: CALLDATASIZE 00000554: PUSH1 0x04 00000556: PUSH2 0x3088 00000559: JUMP 0000055a: JUMPDEST 0000055b: PUSH2 0x1004 0000055e: JUMP 0000055f: JUMPDEST 00000560: CALLVALUE 00000561: DUP1 00000562: ISZERO 00000563: PUSH2 0x056a 00000566: JUMPI 00000567: PUSH0 00000568: PUSH0 00000569: REVERT 0000056a: JUMPDEST 0000056b: POP 0000056c: PUSH2 0x03e1 0000056f: PUSH2 0x0579 00000572: CALLDATASIZE 00000573: PUSH1 0x04 00000575: PUSH2 0x315a 00000578: JUMP 00000579: JUMPDEST 0000057a: PUSH2 0x1024 0000057d: JUMP 0000057e: JUMPDEST 0000057f: CALLVALUE 00000580: DUP1 00000581: ISZERO 00000582: PUSH2 0x0589 00000585: JUMPI 00000586: PUSH0 00000587: PUSH0 00000588: REVERT 00000589: JUMPDEST 0000058a: POP 0000058b: PUSH2 0x03e1 0000058e: PUSH1 0x05 00000590: SLOAD 00000591: DUP2 00000592: JUMP 00000593: JUMPDEST 00000594: CALLVALUE 00000595: DUP1 00000596: ISZERO 00000597: PUSH2 0x059e 0000059a: JUMPI 0000059b: PUSH0 0000059c: PUSH0 0000059d: REVERT 0000059e: JUMPDEST 0000059f: POP 000005a0: PUSH2 0x05b2 000005a3: PUSH2 0x05ad 000005a6: CALLDATASIZE 000005a7: PUSH1 0x04 000005a9: PUSH2 0x3173 000005ac: JUMP 000005ad: JUMPDEST 000005ae: PUSH2 0x1045 000005b1: JUMP 000005b2: JUMPDEST 000005b3: STOP 000005b4: JUMPDEST 000005b5: CALLVALUE 000005b6: DUP1 000005b7: ISZERO 000005b8: PUSH2 0x05bf 000005bb: JUMPI 000005bc: PUSH0 000005bd: PUSH0 000005be: REVERT 000005bf: JUMPDEST 000005c0: POP 000005c1: PUSH2 0x03e1 000005c4: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 000005e5: DUP2 000005e6: JUMP 000005e7: JUMPDEST 000005e8: CALLVALUE 000005e9: DUP1 000005ea: ISZERO 000005eb: PUSH2 0x05f2 000005ee: JUMPI 000005ef: PUSH0 000005f0: PUSH0 000005f1: REVERT 000005f2: JUMPDEST 000005f3: POP 000005f4: PUSH0 000005f5: SLOAD 000005f6: PUSH2 0x0606 000005f9: SWAP1 000005fa: PUSH1 0x01 000005fc: PUSH1 0xa0 000005fe: SHL 000005ff: SWAP1 00000600: DIV 00000601: PUSH1 0xff 00000603: AND 00000604: DUP2 00000605: JUMP 00000606: JUMPDEST 00000607: PUSH1 0x40 00000609: MLOAD 0000060a: PUSH1 0xff 0000060c: SWAP1 0000060d: SWAP2 0000060e: AND 0000060f: DUP2 00000610: MSTORE 00000611: PUSH1 0x20 00000613: ADD 00000614: PUSH2 0x03eb 00000617: JUMP 00000618: JUMPDEST 00000619: CALLVALUE 0000061a: DUP1 0000061b: ISZERO 0000061c: PUSH2 0x0623 0000061f: JUMPI 00000620: PUSH0 00000621: PUSH0 00000622: REVERT 00000623: JUMPDEST 00000624: POP 00000625: PUSH2 0x03e1 00000628: PUSH2 0x1067 0000062b: JUMP 0000062c: JUMPDEST 0000062d: CALLVALUE 0000062e: DUP1 0000062f: ISZERO 00000630: PUSH2 0x0637 00000633: JUMPI 00000634: PUSH0 00000635: PUSH0 00000636: REVERT 00000637: JUMPDEST 00000638: POP 00000639: PUSH2 0x05b2 0000063c: PUSH2 0x0646 0000063f: CALLDATASIZE 00000640: PUSH1 0x04 00000642: PUSH2 0x3173 00000645: JUMP 00000646: JUMPDEST 00000647: PUSH2 0x1071 0000064a: JUMP 0000064b: JUMPDEST 0000064c: CALLVALUE 0000064d: DUP1 0000064e: ISZERO 0000064f: PUSH2 0x0656 00000652: JUMPI 00000653: PUSH0 00000654: PUSH0 00000655: REVERT 00000656: JUMPDEST 00000657: POP 00000658: PUSH0 00000659: SLOAD 0000065a: PUSH2 0x0669 0000065d: SWAP1 0000065e: PUSH1 0x01 00000660: PUSH1 0x01 00000662: PUSH1 0xa0 00000664: SHL 00000665: SUB 00000666: AND 00000667: DUP2 00000668: JUMP 00000669: JUMPDEST 0000066a: PUSH1 0x40 0000066c: MLOAD 0000066d: PUSH1 0x01 0000066f: PUSH1 0x01 00000671: PUSH1 0xa0 00000673: SHL 00000674: SUB 00000675: SWAP1 00000676: SWAP2 00000677: AND 00000678: DUP2 00000679: MSTORE 0000067a: PUSH1 0x20 0000067c: ADD 0000067d: PUSH2 0x03eb 00000680: JUMP 00000681: JUMPDEST 00000682: CALLVALUE 00000683: DUP1 00000684: ISZERO 00000685: PUSH2 0x068c 00000688: JUMPI 00000689: PUSH0 0000068a: PUSH0 0000068b: REVERT 0000068c: JUMPDEST 0000068d: POP 0000068e: PUSH2 0x03e1 00000691: PUSH2 0x069b 00000694: CALLDATASIZE 00000695: PUSH1 0x04 00000697: PUSH2 0x315a 0000069a: JUMP 0000069b: JUMPDEST 0000069c: PUSH2 0x10a9 0000069f: JUMP 000006a0: JUMPDEST 000006a1: CALLVALUE 000006a2: DUP1 000006a3: ISZERO 000006a4: PUSH2 0x06ab 000006a7: JUMPI 000006a8: PUSH0 000006a9: PUSH0 000006aa: REVERT 000006ab: JUMPDEST 000006ac: POP 000006ad: PUSH2 0x03e1 000006b0: PUSH2 0x10da 000006b3: JUMP 000006b4: JUMPDEST 000006b5: CALLVALUE 000006b6: DUP1 000006b7: ISZERO 000006b8: PUSH2 0x06bf 000006bb: JUMPI 000006bc: PUSH0 000006bd: PUSH0 000006be: REVERT 000006bf: JUMPDEST 000006c0: POP 000006c1: PUSH2 0x03e1 000006c4: PUSH2 0x06ce 000006c7: CALLDATASIZE 000006c8: PUSH1 0x04 000006ca: PUSH2 0x3088 000006cd: JUMP 000006ce: JUMPDEST 000006cf: PUSH2 0x1159 000006d2: JUMP 000006d3: JUMPDEST 000006d4: PUSH2 0x05b2 000006d7: PUSH2 0x06e1 000006da: CALLDATASIZE 000006db: PUSH1 0x04 000006dd: PUSH2 0x3240 000006e0: JUMP 000006e1: JUMPDEST 000006e2: PUSH2 0x11f4 000006e5: JUMP 000006e6: JUMPDEST 000006e7: CALLVALUE 000006e8: DUP1 000006e9: ISZERO 000006ea: PUSH2 0x06f1 000006ed: JUMPI 000006ee: PUSH0 000006ef: PUSH0 000006f0: REVERT 000006f1: JUMPDEST 000006f2: POP 000006f3: PUSH2 0x05b2 000006f6: PUSH2 0x0700 000006f9: CALLDATASIZE 000006fa: PUSH1 0x04 000006fc: PUSH2 0x3088 000006ff: JUMP 00000700: JUMPDEST 00000701: PUSH2 0x1213 00000704: JUMP 00000705: JUMPDEST 00000706: CALLVALUE 00000707: DUP1 00000708: ISZERO 00000709: PUSH2 0x0710 0000070c: JUMPI 0000070d: PUSH0 0000070e: PUSH0 0000070f: REVERT 00000710: JUMPDEST 00000711: POP 00000712: PUSH2 0x03e1 00000715: PUSH2 0x126d 00000718: JUMP 00000719: JUMPDEST 0000071a: CALLVALUE 0000071b: DUP1 0000071c: ISZERO 0000071d: PUSH2 0x0724 00000720: JUMPI 00000721: PUSH0 00000722: PUSH0 00000723: REVERT 00000724: JUMPDEST 00000725: POP 00000726: PUSH2 0x0437 00000729: PUSH1 0x40 0000072b: MLOAD 0000072c: DUP1 0000072d: PUSH1 0x40 0000072f: ADD 00000730: PUSH1 0x40 00000732: MSTORE 00000733: DUP1 00000734: PUSH1 0x01 00000736: DUP2 00000737: MSTORE 00000738: PUSH1 0x20 0000073a: ADD 0000073b: PUSH1 0x31 0000073d: PUSH1 0xf8 0000073f: SHL 00000740: DUP2 00000741: MSTORE 00000742: POP 00000743: DUP2 00000744: JUMP 00000745: JUMPDEST 00000746: CALLVALUE 00000747: DUP1 00000748: ISZERO 00000749: PUSH2 0x0750 0000074c: JUMPI 0000074d: PUSH0 0000074e: PUSH0 0000074f: REVERT 00000750: JUMPDEST 00000751: POP 00000752: PUSH2 0x03e1 00000755: PUSH8 0x6765c793fa10079d 0000075e: PUSH1 0x1b 00000760: SHL 00000761: DUP2 00000762: JUMP 00000763: JUMPDEST 00000764: CALLVALUE 00000765: DUP1 00000766: ISZERO 00000767: PUSH2 0x076e 0000076a: JUMPI 0000076b: PUSH0 0000076c: PUSH0 0000076d: REVERT 0000076e: JUMPDEST 0000076f: POP 00000770: PUSH2 0x03e1 00000773: PUSH12 0x033b2e3dd0d78f60556d6583 00000780: DUP2 00000781: JUMP 00000782: JUMPDEST 00000783: CALLVALUE 00000784: DUP1 00000785: ISZERO 00000786: PUSH2 0x078d 00000789: JUMPI 0000078a: PUSH0 0000078b: PUSH0 0000078c: REVERT 0000078d: JUMPDEST 0000078e: POP 0000078f: PUSH2 0x05b2 00000792: PUSH2 0x079c 00000795: CALLDATASIZE 00000796: PUSH1 0x04 00000798: PUSH2 0x328a 0000079b: JUMP 0000079c: JUMPDEST 0000079d: PUSH2 0x1288 000007a0: JUMP 000007a1: JUMPDEST 000007a2: CALLVALUE 000007a3: DUP1 000007a4: ISZERO 000007a5: PUSH2 0x07ac 000007a8: JUMPI 000007a9: PUSH0 000007aa: PUSH0 000007ab: REVERT 000007ac: JUMPDEST 000007ad: POP 000007ae: PUSH2 0x03e1 000007b1: PUSH2 0x07bb 000007b4: CALLDATASIZE 000007b5: PUSH1 0x04 000007b7: PUSH2 0x3173 000007ba: JUMP 000007bb: JUMPDEST 000007bc: PUSH2 0x1469 000007bf: JUMP 000007c0: JUMPDEST 000007c1: CALLVALUE 000007c2: DUP1 000007c3: ISZERO 000007c4: PUSH2 0x07cb 000007c7: JUMPI 000007c8: PUSH0 000007c9: PUSH0 000007ca: REVERT 000007cb: JUMPDEST 000007cc: POP 000007cd: PUSH2 0x03e1 000007d0: PUSH2 0x07da 000007d3: CALLDATASIZE 000007d4: PUSH1 0x04 000007d6: PUSH2 0x315a 000007d9: JUMP 000007da: JUMPDEST 000007db: PUSH1 0x09 000007dd: PUSH1 0x20 000007df: MSTORE 000007e0: PUSH0 000007e1: SWAP1 000007e2: DUP2 000007e3: MSTORE 000007e4: PUSH1 0x40 000007e6: SWAP1 000007e7: KECCAK256 000007e8: SLOAD 000007e9: DUP2 000007ea: JUMP 000007eb: JUMPDEST 000007ec: CALLVALUE 000007ed: DUP1 000007ee: ISZERO 000007ef: PUSH2 0x07f6 000007f2: JUMPI 000007f3: PUSH0 000007f4: PUSH0 000007f5: REVERT 000007f6: JUMPDEST 000007f7: POP 000007f8: PUSH2 0x05b2 000007fb: PUSH2 0x0805 000007fe: CALLDATASIZE 000007ff: PUSH1 0x04 00000801: PUSH2 0x3088 00000804: JUMP 00000805: JUMPDEST 00000806: PUSH2 0x149e 00000809: JUMP 0000080a: JUMPDEST 0000080b: CALLVALUE 0000080c: DUP1 0000080d: ISZERO 0000080e: PUSH2 0x0815 00000811: JUMPI 00000812: PUSH0 00000813: PUSH0 00000814: REVERT 00000815: JUMPDEST 00000816: POP 00000817: PUSH2 0x05b2 0000081a: PUSH2 0x0824 0000081d: CALLDATASIZE 0000081e: PUSH1 0x04 00000820: PUSH2 0x330d 00000823: JUMP 00000824: JUMPDEST 00000825: PUSH2 0x15b0 00000828: JUMP 00000829: JUMPDEST 0000082a: CALLVALUE 0000082b: DUP1 0000082c: ISZERO 0000082d: PUSH2 0x0834 00000830: JUMPI 00000831: PUSH0 00000832: PUSH0 00000833: REVERT 00000834: JUMPDEST 00000835: POP 00000836: PUSH2 0x03e1 00000839: PUSH2 0x0843 0000083c: CALLDATASIZE 0000083d: PUSH1 0x04 0000083f: PUSH2 0x315a 00000842: JUMP 00000843: JUMPDEST 00000844: PUSH1 0x0a 00000846: PUSH1 0x20 00000848: MSTORE 00000849: PUSH0 0000084a: SWAP1 0000084b: DUP2 0000084c: MSTORE 0000084d: PUSH1 0x40 0000084f: SWAP1 00000850: KECCAK256 00000851: SLOAD 00000852: DUP2 00000853: JUMP 00000854: JUMPDEST 00000855: CALLVALUE 00000856: DUP1 00000857: ISZERO 00000858: PUSH2 0x085f 0000085b: JUMPI 0000085c: PUSH0 0000085d: PUSH0 0000085e: REVERT 0000085f: JUMPDEST 00000860: POP 00000861: PUSH2 0x05b2 00000864: PUSH2 0x086e 00000867: CALLDATASIZE 00000868: PUSH1 0x04 0000086a: PUSH2 0x3088 0000086d: JUMP 0000086e: JUMPDEST 0000086f: PUSH2 0x170e 00000872: JUMP 00000873: JUMPDEST 00000874: CALLVALUE 00000875: DUP1 00000876: ISZERO 00000877: PUSH2 0x087e 0000087a: JUMPI 0000087b: PUSH0 0000087c: PUSH0 0000087d: REVERT 0000087e: JUMPDEST 0000087f: POP 00000880: PUSH2 0x0669 00000883: PUSH2 0x088d 00000886: CALLDATASIZE 00000887: PUSH1 0x04 00000889: PUSH2 0x330d 0000088c: JUMP 0000088d: JUMPDEST 0000088e: PUSH2 0x175a 00000891: JUMP 00000892: JUMPDEST 00000893: CALLVALUE 00000894: DUP1 00000895: ISZERO 00000896: PUSH2 0x089d 00000899: JUMPI 0000089a: PUSH0 0000089b: PUSH0 0000089c: REVERT 0000089d: JUMPDEST 0000089e: POP 0000089f: PUSH2 0x0413 000008a2: PUSH2 0x08ac 000008a5: CALLDATASIZE 000008a6: PUSH1 0x04 000008a8: PUSH2 0x3173 000008ab: JUMP 000008ac: JUMPDEST 000008ad: PUSH2 0x177f 000008b0: JUMP 000008b1: JUMPDEST 000008b2: CALLVALUE 000008b3: DUP1 000008b4: ISZERO 000008b5: PUSH2 0x08bc 000008b8: JUMPI 000008b9: PUSH0 000008ba: PUSH0 000008bb: REVERT 000008bc: JUMPDEST 000008bd: POP 000008be: PUSH2 0x03e1 000008c1: PUSH2 0x17b5 000008c4: JUMP 000008c5: JUMPDEST 000008c6: CALLVALUE 000008c7: DUP1 000008c8: ISZERO 000008c9: PUSH2 0x08d0 000008cc: JUMPI 000008cd: PUSH0 000008ce: PUSH0 000008cf: REVERT 000008d0: JUMPDEST 000008d1: POP 000008d2: PUSH2 0x03e1 000008d5: PUSH2 0x08df 000008d8: CALLDATASIZE 000008d9: PUSH1 0x04 000008db: PUSH2 0x3173 000008de: JUMP 000008df: JUMPDEST 000008e0: PUSH2 0x184b 000008e3: JUMP 000008e4: JUMPDEST 000008e5: CALLVALUE 000008e6: DUP1 000008e7: ISZERO 000008e8: PUSH2 0x08ef 000008eb: JUMPI 000008ec: PUSH0 000008ed: PUSH0 000008ee: REVERT 000008ef: JUMPDEST 000008f0: POP 000008f1: PUSH2 0x0437 000008f4: PUSH2 0x187f 000008f7: JUMP 000008f8: JUMPDEST 000008f9: CALLVALUE 000008fa: DUP1 000008fb: ISZERO 000008fc: PUSH2 0x0903 000008ff: JUMPI 00000900: PUSH0 00000901: PUSH0 00000902: REVERT 00000903: JUMPDEST 00000904: POP 00000905: PUSH2 0x03e1 00000908: PUSH2 0x0912 0000090b: CALLDATASIZE 0000090c: PUSH1 0x04 0000090e: PUSH2 0x30dd 00000911: JUMP 00000912: JUMPDEST 00000913: PUSH2 0x188c 00000916: JUMP 00000917: JUMPDEST 00000918: CALLVALUE 00000919: DUP1 0000091a: ISZERO 0000091b: PUSH2 0x0922 0000091e: JUMPI 0000091f: PUSH0 00000920: PUSH0 00000921: REVERT 00000922: JUMPDEST 00000923: POP 00000924: PUSH2 0x03e1 00000927: PUSH2 0x18e2 0000092a: JUMP 0000092b: JUMPDEST 0000092c: CALLVALUE 0000092d: DUP1 0000092e: ISZERO 0000092f: PUSH2 0x0936 00000932: JUMPI 00000933: PUSH0 00000934: PUSH0 00000935: REVERT 00000936: JUMPDEST 00000937: POP 00000938: PUSH2 0x05b2 0000093b: PUSH2 0x0945 0000093e: CALLDATASIZE 0000093f: PUSH1 0x04 00000941: PUSH2 0x332d 00000944: JUMP 00000945: JUMPDEST 00000946: PUSH2 0x1a02 00000949: JUMP 0000094a: JUMPDEST 0000094b: CALLVALUE 0000094c: DUP1 0000094d: ISZERO 0000094e: PUSH2 0x0955 00000951: JUMPI 00000952: PUSH0 00000953: PUSH0 00000954: REVERT 00000955: JUMPDEST 00000956: POP 00000957: PUSH2 0x03e1 0000095a: PUSH32 0x61c92169ef077349011ff0b1383c894d86c5f0b41d986366b58a6cf31e93beda 0000097b: DUP2 0000097c: JUMP 0000097d: JUMPDEST 0000097e: CALLVALUE 0000097f: DUP1 00000980: ISZERO 00000981: PUSH2 0x0988 00000984: JUMPI 00000985: PUSH0 00000986: PUSH0 00000987: REVERT 00000988: JUMPDEST 00000989: POP 0000098a: PUSH2 0x03e1 0000098d: PUSH0 0000098e: DUP2 0000098f: JUMP 00000990: JUMPDEST 00000991: CALLVALUE 00000992: DUP1 00000993: ISZERO 00000994: PUSH2 0x099b 00000997: JUMPI 00000998: PUSH0 00000999: PUSH0 0000099a: REVERT 0000099b: JUMPDEST 0000099c: POP 0000099d: PUSH2 0x09af 000009a0: PUSH2 0x09aa 000009a3: CALLDATASIZE 000009a4: PUSH1 0x04 000009a6: PUSH2 0x3088 000009a9: JUMP 000009aa: JUMPDEST 000009ab: PUSH2 0x1c3e 000009ae: JUMP 000009af: JUMPDEST 000009b0: PUSH1 0x40 000009b2: MLOAD 000009b3: PUSH2 0x03eb 000009b6: SWAP2 000009b7: SWAP1 000009b8: PUSH2 0x3399 000009bb: JUMP 000009bc: JUMPDEST 000009bd: CALLVALUE 000009be: DUP1 000009bf: ISZERO 000009c0: PUSH2 0x09c7 000009c3: JUMPI 000009c4: PUSH0 000009c5: PUSH0 000009c6: REVERT 000009c7: JUMPDEST 000009c8: POP 000009c9: PUSH2 0x0413 000009cc: PUSH2 0x09d6 000009cf: CALLDATASIZE 000009d0: PUSH1 0x04 000009d2: PUSH2 0x30b5 000009d5: JUMP 000009d6: JUMPDEST 000009d7: PUSH2 0x1c67 000009da: JUMP 000009db: JUMPDEST 000009dc: CALLVALUE 000009dd: DUP1 000009de: ISZERO 000009df: PUSH2 0x09e6 000009e2: JUMPI 000009e3: PUSH0 000009e4: PUSH0 000009e5: REVERT 000009e6: JUMPDEST 000009e7: POP 000009e8: PUSH2 0x0669 000009eb: PUSH2 0x1d2a 000009ee: JUMP 000009ef: JUMPDEST 000009f0: CALLVALUE 000009f1: DUP1 000009f2: ISZERO 000009f3: PUSH2 0x09fa 000009f6: JUMPI 000009f7: PUSH0 000009f8: PUSH0 000009f9: REVERT 000009fa: JUMPDEST 000009fb: POP 000009fc: PUSH2 0x0437 000009ff: PUSH1 0x40 00000a01: MLOAD 00000a02: DUP1 00000a03: PUSH1 0x40 00000a05: ADD 00000a06: PUSH1 0x40 00000a08: MSTORE 00000a09: DUP1 00000a0a: PUSH1 0x05 00000a0c: DUP2 00000a0d: MSTORE 00000a0e: PUSH1 0x20 00000a10: ADD 00000a11: PUSH5 0x0352e302e3 00000a17: PUSH1 0xdc 00000a19: SHL 00000a1a: DUP2 00000a1b: MSTORE 00000a1c: POP 00000a1d: DUP2 00000a1e: JUMP 00000a1f: JUMPDEST 00000a20: CALLVALUE 00000a21: DUP1 00000a22: ISZERO 00000a23: PUSH2 0x0a2a 00000a26: JUMPI 00000a27: PUSH0 00000a28: PUSH0 00000a29: REVERT 00000a2a: JUMPDEST 00000a2b: POP 00000a2c: PUSH2 0x03e1 00000a2f: PUSH2 0x0a39 00000a32: CALLDATASIZE 00000a33: PUSH1 0x04 00000a35: PUSH2 0x3088 00000a38: JUMP 00000a39: JUMPDEST 00000a3a: PUSH2 0x1d49 00000a3d: JUMP 00000a3e: JUMPDEST 00000a3f: CALLVALUE 00000a40: DUP1 00000a41: ISZERO 00000a42: PUSH2 0x0a49 00000a45: JUMPI 00000a46: PUSH0 00000a47: PUSH0 00000a48: REVERT 00000a49: JUMPDEST 00000a4a: POP 00000a4b: PUSH2 0x03e1 00000a4e: PUSH2 0x0a58 00000a51: CALLDATASIZE 00000a52: PUSH1 0x04 00000a54: PUSH2 0x33e4 00000a57: JUMP 00000a58: JUMPDEST 00000a59: PUSH2 0x1d5f 00000a5c: JUMP 00000a5d: JUMPDEST 00000a5e: CALLVALUE 00000a5f: DUP1 00000a60: ISZERO 00000a61: PUSH2 0x0a68 00000a64: JUMPI 00000a65: PUSH0 00000a66: PUSH0 00000a67: REVERT 00000a68: JUMPDEST 00000a69: POP 00000a6a: PUSH2 0x03e1 00000a6d: PUSH2 0x0a77 00000a70: CALLDATASIZE 00000a71: PUSH1 0x04 00000a73: PUSH2 0x33e4 00000a76: JUMP 00000a77: JUMPDEST 00000a78: PUSH2 0x1d8e 00000a7b: JUMP 00000a7c: JUMPDEST 00000a7d: CALLVALUE 00000a7e: DUP1 00000a7f: ISZERO 00000a80: PUSH2 0x0a87 00000a83: JUMPI 00000a84: PUSH0 00000a85: PUSH0 00000a86: REVERT 00000a87: JUMPDEST 00000a88: POP 00000a89: PUSH2 0x03e1 00000a8c: PUSH2 0x0a96 00000a8f: CALLDATASIZE 00000a90: PUSH1 0x04 00000a92: PUSH2 0x315a 00000a95: JUMP 00000a96: JUMPDEST 00000a97: PUSH2 0x1dc5 00000a9a: JUMP 00000a9b: JUMPDEST 00000a9c: CALLVALUE 00000a9d: DUP1 00000a9e: ISZERO 00000a9f: PUSH2 0x0aa6 00000aa2: JUMPI 00000aa3: PUSH0 00000aa4: PUSH0 00000aa5: REVERT 00000aa6: JUMPDEST 00000aa7: POP 00000aa8: PUSH2 0x03e1 00000aab: PUSH2 0x0ab5 00000aae: CALLDATASIZE 00000aaf: PUSH1 0x04 00000ab1: PUSH2 0x3088 00000ab4: JUMP 00000ab5: JUMPDEST 00000ab6: PUSH2 0x1e35 00000ab9: JUMP 00000aba: JUMPDEST 00000abb: CALLVALUE 00000abc: DUP1 00000abd: ISZERO 00000abe: PUSH2 0x0ac5 00000ac1: JUMPI 00000ac2: PUSH0 00000ac3: PUSH0 00000ac4: REVERT 00000ac5: JUMPDEST 00000ac6: POP 00000ac7: PUSH1 0x03 00000ac9: SLOAD 00000aca: PUSH2 0x0ae0 00000acd: SWAP1 00000ace: PUSH1 0x01 00000ad0: PUSH1 0x40 00000ad2: SHL 00000ad3: SWAP1 00000ad4: DIV 00000ad5: PUSH1 0x01 00000ad7: PUSH1 0x01 00000ad9: PUSH1 0xc0 00000adb: SHL 00000adc: SUB 00000add: AND 00000ade: DUP2 00000adf: JUMP 00000ae0: JUMPDEST 00000ae1: PUSH1 0x40 00000ae3: MLOAD 00000ae4: PUSH1 0x01 00000ae6: PUSH1 0x01 00000ae8: PUSH1 0xc0 00000aea: SHL 00000aeb: SUB 00000aec: SWAP1 00000aed: SWAP2 00000aee: AND 00000aef: DUP2 00000af0: MSTORE 00000af1: PUSH1 0x20 00000af3: ADD 00000af4: PUSH2 0x03eb 00000af7: JUMP 00000af8: JUMPDEST 00000af9: CALLVALUE 00000afa: DUP1 00000afb: ISZERO 00000afc: PUSH2 0x0b03 00000aff: JUMPI 00000b00: PUSH0 00000b01: PUSH0 00000b02: REVERT 00000b03: JUMPDEST 00000b04: POP 00000b05: PUSH2 0x03e1 00000b08: PUSH2 0x0b12 00000b0b: CALLDATASIZE 00000b0c: PUSH1 0x04 00000b0e: PUSH2 0x3088 00000b11: JUMP 00000b12: JUMPDEST 00000b13: PUSH2 0x1e53 00000b16: JUMP 00000b17: JUMPDEST 00000b18: CALLVALUE 00000b19: DUP1 00000b1a: ISZERO 00000b1b: PUSH2 0x0b22 00000b1e: JUMPI 00000b1f: PUSH0 00000b20: PUSH0 00000b21: REVERT 00000b22: JUMPDEST 00000b23: POP 00000b24: PUSH2 0x03e1 00000b27: PUSH2 0x0b31 00000b2a: CALLDATASIZE 00000b2b: PUSH1 0x04 00000b2d: PUSH2 0x315a 00000b30: JUMP 00000b31: JUMPDEST 00000b32: PUSH2 0x1e77 00000b35: JUMP 00000b36: JUMPDEST 00000b37: CALLVALUE 00000b38: DUP1 00000b39: ISZERO 00000b3a: PUSH2 0x0b41 00000b3d: JUMPI 00000b3e: PUSH0 00000b3f: PUSH0 00000b40: REVERT 00000b41: JUMPDEST 00000b42: POP 00000b43: PUSH2 0x05b2 00000b46: PUSH2 0x0b50 00000b49: CALLDATASIZE 00000b4a: PUSH1 0x04 00000b4c: PUSH2 0x342b 00000b4f: JUMP 00000b50: JUMPDEST 00000b51: PUSH2 0x1efc 00000b54: JUMP 00000b55: JUMPDEST 00000b56: CALLVALUE 00000b57: DUP1 00000b58: ISZERO 00000b59: PUSH2 0x0b60 00000b5c: JUMPI 00000b5d: PUSH0 00000b5e: PUSH0 00000b5f: REVERT 00000b60: JUMPDEST 00000b61: POP 00000b62: PUSH2 0x05b2 00000b65: PUSH2 0x0b6f 00000b68: CALLDATASIZE 00000b69: PUSH1 0x04 00000b6b: PUSH2 0x3173 00000b6e: JUMP 00000b6f: JUMPDEST 00000b70: PUSH2 0x1f53 00000b73: JUMP 00000b74: JUMPDEST 00000b75: CALLVALUE 00000b76: DUP1 00000b77: ISZERO 00000b78: PUSH2 0x0b7f 00000b7b: JUMPI 00000b7c: PUSH0 00000b7d: PUSH0 00000b7e: REVERT 00000b7f: JUMPDEST 00000b80: POP 00000b81: PUSH2 0x03e1 00000b84: PUSH2 0x0b8e 00000b87: CALLDATASIZE 00000b88: PUSH1 0x04 00000b8a: PUSH2 0x315a 00000b8d: JUMP 00000b8e: JUMPDEST 00000b8f: PUSH2 0x1f6f 00000b92: JUMP 00000b93: JUMPDEST 00000b94: CALLVALUE 00000b95: DUP1 00000b96: ISZERO 00000b97: PUSH2 0x0b9e 00000b9a: JUMPI 00000b9b: PUSH0 00000b9c: PUSH0 00000b9d: REVERT 00000b9e: JUMPDEST 00000b9f: POP 00000ba0: PUSH2 0x03e1 00000ba3: PUSH1 0x06 00000ba5: SLOAD 00000ba6: DUP2 00000ba7: JUMP 00000ba8: JUMPDEST 00000ba9: CALLVALUE 00000baa: DUP1 00000bab: ISZERO 00000bac: PUSH2 0x0bb3 00000baf: JUMPI 00000bb0: PUSH0 00000bb1: PUSH0 00000bb2: REVERT 00000bb3: JUMPDEST 00000bb4: POP 00000bb5: PUSH2 0x03e1 00000bb8: PUSH1 0x07 00000bba: SLOAD 00000bbb: DUP2 00000bbc: JUMP 00000bbd: JUMPDEST 00000bbe: CALLVALUE 00000bbf: DUP1 00000bc0: ISZERO 00000bc1: PUSH2 0x0bc8 00000bc4: JUMPI 00000bc5: PUSH0 00000bc6: PUSH0 00000bc7: REVERT 00000bc8: JUMPDEST 00000bc9: POP 00000bca: PUSH2 0x03e1 00000bcd: PUSH2 0x0bd7 00000bd0: CALLDATASIZE 00000bd1: PUSH1 0x04 00000bd3: PUSH2 0x3493 00000bd6: JUMP 00000bd7: JUMPDEST 00000bd8: PUSH1 0x0b 00000bda: PUSH1 0x20 00000bdc: SWAP1 00000bdd: DUP2 00000bde: MSTORE 00000bdf: PUSH0 00000be0: SWAP3 00000be1: DUP4 00000be2: MSTORE 00000be3: PUSH1 0x40 00000be5: DUP1 00000be6: DUP5 00000be7: KECCAK256 00000be8: SWAP1 00000be9: SWAP2 00000bea: MSTORE 00000beb: SWAP1 00000bec: DUP3 00000bed: MSTORE 00000bee: SWAP1 00000bef: KECCAK256 00000bf0: SLOAD 00000bf1: DUP2 00000bf2: JUMP 00000bf3: JUMPDEST 00000bf4: CALLVALUE 00000bf5: DUP1 00000bf6: ISZERO 00000bf7: PUSH2 0x0bfe 00000bfa: JUMPI 00000bfb: PUSH0 00000bfc: PUSH0 00000bfd: REVERT 00000bfe: JUMPDEST 00000bff: POP 00000c00: PUSH2 0x03e1 00000c03: PUSH2 0x0c0d 00000c06: CALLDATASIZE 00000c07: PUSH1 0x04 00000c09: PUSH2 0x3088 00000c0c: JUMP 00000c0d: JUMPDEST 00000c0e: PUSH2 0x2029 00000c11: JUMP 00000c12: JUMPDEST 00000c13: CALLVALUE 00000c14: DUP1 00000c15: ISZERO 00000c16: PUSH2 0x0c1d 00000c19: JUMPI 00000c1a: PUSH0 00000c1b: PUSH0 00000c1c: REVERT 00000c1d: JUMPDEST 00000c1e: POP 00000c1f: PUSH2 0x03e1 00000c22: PUSH0 00000c23: MLOAD 00000c24: PUSH1 0x20 00000c26: PUSH2 0x3901 00000c29: PUSH0 00000c2a: CODECOPY 00000c2b: PUSH0 00000c2c: MLOAD 00000c2d: SWAP1 00000c2e: PUSH0 00000c2f: MSTORE 00000c30: DUP2 00000c31: JUMP 00000c32: JUMPDEST 00000c33: PUSH0 00000c34: PUSH2 0x0c3e 00000c37: PUSH1 0x08 00000c39: SLOAD 00000c3a: PUSH2 0x0cf9 00000c3d: JUMP 00000c3e: JUMPDEST 00000c3f: SWAP1 00000c40: POP 00000c41: SWAP1 00000c42: JUMP 00000c43: JUMPDEST 00000c44: PUSH0 00000c45: PUSH1 0x01 00000c47: PUSH1 0x01 00000c49: PUSH1 0xe0 00000c4b: SHL 00000c4c: SUB 00000c4d: NOT 00000c4e: DUP3 00000c4f: AND 00000c50: PUSH4 0x5a05180f 00000c55: PUSH1 0xe0 00000c57: SHL 00000c58: EQ 00000c59: DUP1 00000c5a: PUSH2 0x0c67 00000c5d: JUMPI 00000c5e: POP 00000c5f: PUSH2 0x0c67 00000c62: DUP3 00000c63: PUSH2 0x2033 00000c66: JUMP 00000c67: JUMPDEST 00000c68: SWAP3 00000c69: SWAP2 00000c6a: POP 00000c6b: POP 00000c6c: JUMP 00000c6d: JUMPDEST 00000c6e: PUSH1 0x01 00000c70: DUP1 00000c71: SLOAD 00000c72: PUSH2 0x0c7a 00000c75: SWAP1 00000c76: PUSH2 0x34bb 00000c79: JUMP 00000c7a: JUMPDEST 00000c7b: DUP1 00000c7c: PUSH1 0x1f 00000c7e: ADD 00000c7f: PUSH1 0x20 00000c81: DUP1 00000c82: SWAP2 00000c83: DIV 00000c84: MUL 00000c85: PUSH1 0x20 00000c87: ADD 00000c88: PUSH1 0x40 00000c8a: MLOAD 00000c8b: SWAP1 00000c8c: DUP2 00000c8d: ADD 00000c8e: PUSH1 0x40 00000c90: MSTORE 00000c91: DUP1 00000c92: SWAP3 00000c93: SWAP2 00000c94: SWAP1 00000c95: DUP2 00000c96: DUP2 00000c97: MSTORE 00000c98: PUSH1 0x20 00000c9a: ADD 00000c9b: DUP3 00000c9c: DUP1 00000c9d: SLOAD 00000c9e: PUSH2 0x0ca6 00000ca1: SWAP1 00000ca2: PUSH2 0x34bb 00000ca5: JUMP 00000ca6: JUMPDEST 00000ca7: DUP1 00000ca8: ISZERO 00000ca9: PUSH2 0x0cf1 00000cac: JUMPI 00000cad: DUP1 00000cae: PUSH1 0x1f 00000cb0: LT 00000cb1: PUSH2 0x0cc8 00000cb4: JUMPI 00000cb5: PUSH2 0x0100 00000cb8: DUP1 00000cb9: DUP4 00000cba: SLOAD 00000cbb: DIV 00000cbc: MUL 00000cbd: DUP4 00000cbe: MSTORE 00000cbf: SWAP2 00000cc0: PUSH1 0x20 00000cc2: ADD 00000cc3: SWAP2 00000cc4: PUSH2 0x0cf1 00000cc7: JUMP 00000cc8: JUMPDEST 00000cc9: DUP3 00000cca: ADD 00000ccb: SWAP2 00000ccc: SWAP1 00000ccd: PUSH0 00000cce: MSTORE 00000ccf: PUSH1 0x20 00000cd1: PUSH0 00000cd2: KECCAK256 00000cd3: SWAP1 00000cd4: JUMPDEST 00000cd5: DUP2 00000cd6: SLOAD 00000cd7: DUP2 00000cd8: MSTORE 00000cd9: SWAP1 00000cda: PUSH1 0x01 00000cdc: ADD 00000cdd: SWAP1 00000cde: PUSH1 0x20 00000ce0: ADD 00000ce1: DUP1 00000ce2: DUP4 00000ce3: GT 00000ce4: PUSH2 0x0cd4 00000ce7: JUMPI 00000ce8: DUP3 00000ce9: SWAP1 00000cea: SUB 00000ceb: PUSH1 0x1f 00000ced: AND 00000cee: DUP3 00000cef: ADD 00000cf0: SWAP2 00000cf1: JUMPDEST 00000cf2: POP 00000cf3: POP 00000cf4: POP 00000cf5: POP 00000cf6: POP 00000cf7: DUP2 00000cf8: JUMP 00000cf9: JUMPDEST 00000cfa: PUSH0 00000cfb: PUSH8 0x6765c793fa10079d 00000d04: PUSH1 0x1b 00000d06: SHL 00000d07: PUSH2 0x0d0e 00000d0a: PUSH2 0x10da 00000d0d: JUMP 00000d0e: JUMPDEST 00000d0f: PUSH2 0x0d18 00000d12: SWAP1 00000d13: DUP5 00000d14: PUSH2 0x3507 00000d17: JUMP 00000d18: JUMPDEST 00000d19: PUSH2 0x0c67 00000d1c: SWAP2 00000d1d: SWAP1 00000d1e: PUSH2 0x3532 00000d21: JUMP 00000d22: JUMPDEST 00000d23: CALLER 00000d24: PUSH0 00000d25: DUP2 00000d26: DUP2 00000d27: MSTORE 00000d28: PUSH1 0x0b 00000d2a: PUSH1 0x20 00000d2c: SWAP1 00000d2d: DUP2 00000d2e: MSTORE 00000d2f: PUSH1 0x40 00000d31: DUP1 00000d32: DUP4 00000d33: KECCAK256 00000d34: PUSH1 0x01 00000d36: PUSH1 0x01 00000d38: PUSH1 0xa0 00000d3a: SHL 00000d3b: SUB 00000d3c: DUP8 00000d3d: AND 00000d3e: DUP1 00000d3f: DUP6 00000d40: MSTORE 00000d41: SWAP3 00000d42: MSTORE 00000d43: DUP1 00000d44: DUP4 00000d45: KECCAK256 00000d46: DUP6 00000d47: SWAP1 00000d48: SSTORE 00000d49: MLOAD 00000d4a: SWAP2 00000d4b: SWAP3 00000d4c: SWAP1 00000d4d: SWAP2 00000d4e: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00000d6f: SWAP1 00000d70: PUSH2 0x0d7c 00000d73: SWAP1 00000d74: DUP7 00000d75: DUP2 00000d76: MSTORE 00000d77: PUSH1 0x20 00000d79: ADD 00000d7a: SWAP1 00000d7b: JUMP 00000d7c: JUMPDEST 00000d7d: PUSH1 0x40 00000d7f: MLOAD 00000d80: DUP1 00000d81: SWAP2 00000d82: SUB 00000d83: SWAP1 00000d84: LOG3 00000d85: POP 00000d86: PUSH1 0x01 00000d88: SWAP3 00000d89: SWAP2 00000d8a: POP 00000d8b: POP 00000d8c: JUMP 00000d8d: JUMPDEST 00000d8e: PUSH0 00000d8f: DUP1 00000d90: SLOAD 00000d91: PUSH1 0x40 00000d93: MLOAD 00000d94: PUSH4 0x70a08231 00000d99: PUSH1 0xe0 00000d9b: SHL 00000d9c: DUP2 00000d9d: MSTORE 00000d9e: ADDRESS 00000d9f: PUSH1 0x04 00000da1: DUP3 00000da2: ADD 00000da3: MSTORE 00000da4: DUP4 00000da5: SWAP2 00000da6: PUSH1 0x01 00000da8: PUSH1 0x01 00000daa: PUSH1 0xa0 00000dac: SHL 00000dad: SUB 00000dae: AND 00000daf: SWAP1 00000db0: PUSH4 0x70a08231 00000db5: SWAP1 00000db6: PUSH1 0x24 00000db8: ADD 00000db9: PUSH1 0x20 00000dbb: PUSH1 0x40 00000dbd: MLOAD 00000dbe: DUP1 00000dbf: DUP4 00000dc0: SUB 00000dc1: DUP2 00000dc2: DUP7 00000dc3: GAS 00000dc4: STATICCALL 00000dc5: ISZERO 00000dc6: DUP1 00000dc7: ISZERO 00000dc8: PUSH2 0x0dd3 00000dcb: JUMPI 00000dcc: RETURNDATASIZE 00000dcd: PUSH0 00000dce: PUSH0 00000dcf: RETURNDATACOPY 00000dd0: RETURNDATASIZE 00000dd1: PUSH0 00000dd2: REVERT 00000dd3: JUMPDEST 00000dd4: POP 00000dd5: POP 00000dd6: POP 00000dd7: POP 00000dd8: PUSH1 0x40 00000dda: MLOAD 00000ddb: RETURNDATASIZE 00000ddc: PUSH1 0x1f 00000dde: NOT 00000ddf: PUSH1 0x1f 00000de1: DUP3 00000de2: ADD 00000de3: AND 00000de4: DUP3 00000de5: ADD 00000de6: DUP1 00000de7: PUSH1 0x40 00000de9: MSTORE 00000dea: POP 00000deb: DUP2 00000dec: ADD 00000ded: SWAP1 00000dee: PUSH2 0x0df7 00000df1: SWAP2 00000df2: SWAP1 00000df3: PUSH2 0x3551 00000df6: JUMP 00000df7: JUMPDEST 00000df8: LT 00000df9: ISZERO 00000dfa: PUSH2 0x0e1e 00000dfd: JUMPI 00000dfe: PUSH1 0x40 00000e00: MLOAD 00000e01: PUSH3 0x461bcd 00000e05: PUSH1 0xe5 00000e07: SHL 00000e08: DUP2 00000e09: MSTORE 00000e0a: PUSH1 0x04 00000e0c: ADD 00000e0d: PUSH2 0x0e15 00000e10: SWAP1 00000e11: PUSH2 0x3568 00000e14: JUMP 00000e15: JUMPDEST 00000e16: PUSH1 0x40 00000e18: MLOAD 00000e19: DUP1 00000e1a: SWAP2 00000e1b: SUB 00000e1c: SWAP1 00000e1d: REVERT 00000e1e: JUMPDEST 00000e1f: PUSH2 0x0c67 00000e22: PUSH2 0x0e36 00000e25: PUSH8 0x6765c793fa10079d 00000e2e: PUSH1 0x1b 00000e30: SHL 00000e31: DUP5 00000e32: PUSH2 0x3507 00000e35: JUMP 00000e36: JUMPDEST 00000e37: PUSH2 0x0e3e 00000e3a: PUSH2 0x10da 00000e3d: JUMP 00000e3e: JUMPDEST 00000e3f: PUSH2 0x2067 00000e42: JUMP 00000e43: JUMPDEST 00000e44: PUSH0 00000e45: PUSH2 0x0e4e 00000e48: DUP5 00000e49: DUP5 00000e4a: PUSH2 0x184b 00000e4d: JUMP 00000e4e: JUMPDEST 00000e4f: SWAP1 00000e50: POP 00000e51: DUP3 00000e52: PUSH1 0x01 00000e54: PUSH1 0x01 00000e56: PUSH1 0xa0 00000e58: SHL 00000e59: SUB 00000e5a: AND 00000e5b: DUP3 00000e5c: PUSH2 0xffff 00000e5f: AND 00000e60: PUSH32 0xb30a03a0e2a407f18ae0e83491331dc069d1521e292feffb071e61c8f7f40636 00000e81: DUP4 00000e82: DUP8 00000e83: PUSH1 0x40 00000e85: MLOAD 00000e86: PUSH2 0x0e99 00000e89: SWAP3 00000e8a: SWAP2 00000e8b: SWAP1 00000e8c: SWAP2 00000e8d: DUP3 00000e8e: MSTORE 00000e8f: PUSH1 0x20 00000e91: DUP3 00000e92: ADD 00000e93: MSTORE 00000e94: PUSH1 0x40 00000e96: ADD 00000e97: SWAP1 00000e98: JUMP 00000e99: JUMPDEST 00000e9a: PUSH1 0x40 00000e9c: MLOAD 00000e9d: DUP1 00000e9e: SWAP2 00000e9f: SUB 00000ea0: SWAP1 00000ea1: LOG3 00000ea2: SWAP4 00000ea3: SWAP3 00000ea4: POP 00000ea5: POP 00000ea6: POP 00000ea7: JUMP 00000ea8: JUMPDEST 00000ea9: PUSH0 00000eaa: PUSH1 0x01 00000eac: PUSH1 0x01 00000eae: PUSH1 0xa0 00000eb0: SHL 00000eb1: SUB 00000eb2: DUP4 00000eb3: AND 00000eb4: ISZERO 00000eb5: DUP1 00000eb6: ISZERO 00000eb7: SWAP1 00000eb8: PUSH2 0x0eca 00000ebb: JUMPI 00000ebc: POP 00000ebd: PUSH1 0x01 00000ebf: PUSH1 0x01 00000ec1: PUSH1 0xa0 00000ec3: SHL 00000ec4: SUB 00000ec5: DUP4 00000ec6: AND 00000ec7: ADDRESS 00000ec8: EQ 00000ec9: ISZERO 00000eca: JUMPDEST 00000ecb: PUSH2 0x0ee6 00000ece: JUMPI 00000ecf: PUSH1 0x40 00000ed1: MLOAD 00000ed2: PUSH3 0x461bcd 00000ed6: PUSH1 0xe5 00000ed8: SHL 00000ed9: DUP2 00000eda: MSTORE 00000edb: PUSH1 0x04 00000edd: ADD 00000ede: PUSH2 0x0e15 00000ee1: SWAP1 00000ee2: PUSH2 0x35a9 00000ee5: JUMP 00000ee6: JUMPDEST 00000ee7: PUSH1 0x01 00000ee9: PUSH1 0x01 00000eeb: PUSH1 0xa0 00000eed: SHL 00000eee: SUB 00000eef: DUP5 00000ef0: AND 00000ef1: PUSH0 00000ef2: SWAP1 00000ef3: DUP2 00000ef4: MSTORE 00000ef5: PUSH1 0x09 00000ef7: PUSH1 0x20 00000ef9: MSTORE 00000efa: PUSH1 0x40 00000efc: SWAP1 00000efd: KECCAK256 00000efe: SLOAD 00000eff: DUP3 00000f00: DUP2 00000f01: LT 00000f02: ISZERO 00000f03: PUSH2 0x0f1e 00000f06: JUMPI 00000f07: PUSH1 0x40 00000f09: MLOAD 00000f0a: PUSH3 0x461bcd 00000f0e: PUSH1 0xe5 00000f10: SHL 00000f11: DUP2 00000f12: MSTORE 00000f13: PUSH1 0x04 00000f15: ADD 00000f16: PUSH2 0x0e15 00000f19: SWAP1 00000f1a: PUSH2 0x35e0 00000f1d: JUMP 00000f1e: JUMPDEST 00000f1f: PUSH1 0x01 00000f21: PUSH1 0x01 00000f23: PUSH1 0xa0 00000f25: SHL 00000f26: SUB 00000f27: DUP6 00000f28: AND 00000f29: CALLER 00000f2a: EQ 00000f2b: PUSH2 0x0fa3 00000f2e: JUMPI 00000f2f: PUSH1 0x01 00000f31: PUSH1 0x01 00000f33: PUSH1 0xa0 00000f35: SHL 00000f36: SUB 00000f37: DUP6 00000f38: AND 00000f39: PUSH0 00000f3a: SWAP1 00000f3b: DUP2 00000f3c: MSTORE 00000f3d: PUSH1 0x0b 00000f3f: PUSH1 0x20 00000f41: SWAP1 00000f42: DUP2 00000f43: MSTORE 00000f44: PUSH1 0x40 00000f46: DUP1 00000f47: DUP4 00000f48: KECCAK256 00000f49: CALLER 00000f4a: DUP5 00000f4b: MSTORE 00000f4c: SWAP1 00000f4d: SWAP2 00000f4e: MSTORE 00000f4f: SWAP1 00000f50: KECCAK256 00000f51: SLOAD 00000f52: PUSH0 00000f53: NOT 00000f54: DUP2 00000f55: EQ 00000f56: PUSH2 0x0fa1 00000f59: JUMPI 00000f5a: DUP4 00000f5b: DUP2 00000f5c: LT 00000f5d: ISZERO 00000f5e: PUSH2 0x0f79 00000f61: JUMPI 00000f62: PUSH1 0x40 00000f64: MLOAD 00000f65: PUSH3 0x461bcd 00000f69: PUSH1 0xe5 00000f6b: SHL 00000f6c: DUP2 00000f6d: MSTORE 00000f6e: PUSH1 0x04 00000f70: ADD 00000f71: PUSH2 0x0e15 00000f74: SWAP1 00000f75: PUSH2 0x3617 00000f78: JUMP 00000f79: JUMPDEST 00000f7a: PUSH1 0x01 00000f7c: PUSH1 0x01 00000f7e: PUSH1 0xa0 00000f80: SHL 00000f81: SUB 00000f82: DUP7 00000f83: AND 00000f84: PUSH0 00000f85: SWAP1 00000f86: DUP2 00000f87: MSTORE 00000f88: PUSH1 0x0b 00000f8a: PUSH1 0x20 00000f8c: SWAP1 00000f8d: DUP2 00000f8e: MSTORE 00000f8f: PUSH1 0x40 00000f91: DUP1 00000f92: DUP4 00000f93: KECCAK256 00000f94: CALLER 00000f95: DUP5 00000f96: MSTORE 00000f97: SWAP1 00000f98: SWAP2 00000f99: MSTORE 00000f9a: SWAP1 00000f9b: KECCAK256 00000f9c: DUP5 00000f9d: DUP3 00000f9e: SUB 00000f9f: SWAP1 00000fa0: SSTORE 00000fa1: JUMPDEST 00000fa2: POP 00000fa3: JUMPDEST 00000fa4: PUSH1 0x01 00000fa6: PUSH1 0x01 00000fa8: PUSH1 0xa0 00000faa: SHL 00000fab: SUB 00000fac: DUP1 00000fad: DUP7 00000fae: AND 00000faf: PUSH0 00000fb0: DUP2 00000fb1: DUP2 00000fb2: MSTORE 00000fb3: PUSH1 0x09 00000fb5: PUSH1 0x20 00000fb7: MSTORE 00000fb8: PUSH1 0x40 00000fba: DUP1 00000fbb: DUP3 00000fbc: KECCAK256 00000fbd: DUP8 00000fbe: DUP7 00000fbf: SUB 00000fc0: SWAP1 00000fc1: SSTORE 00000fc2: SWAP3 00000fc3: DUP8 00000fc4: AND 00000fc5: DUP1 00000fc6: DUP3 00000fc7: MSTORE 00000fc8: SWAP1 00000fc9: DUP4 00000fca: SWAP1 00000fcb: KECCAK256 00000fcc: DUP1 00000fcd: SLOAD 00000fce: DUP8 00000fcf: ADD 00000fd0: SWAP1 00000fd1: SSTORE 00000fd2: SWAP2 00000fd3: MLOAD 00000fd4: PUSH0 00000fd5: MLOAD 00000fd6: PUSH1 0x20 00000fd8: PUSH2 0x38c1 00000fdb: PUSH0 00000fdc: CODECOPY 00000fdd: PUSH0 00000fde: MLOAD 00000fdf: SWAP1 00000fe0: PUSH0 00000fe1: MSTORE 00000fe2: SWAP1 00000fe3: PUSH2 0x0fef 00000fe6: SWAP1 00000fe7: DUP8 00000fe8: DUP2 00000fe9: MSTORE 00000fea: PUSH1 0x20 00000fec: ADD 00000fed: SWAP1 00000fee: JUMP 00000fef: JUMPDEST 00000ff0: PUSH1 0x40 00000ff2: MLOAD 00000ff3: DUP1 00000ff4: SWAP2 00000ff5: SUB 00000ff6: SWAP1 00000ff7: LOG3 00000ff8: PUSH1 0x01 00000ffa: SWAP2 00000ffb: POP 00000ffc: POP 00000ffd: JUMPDEST 00000ffe: SWAP4 00000fff: SWAP3 00001000: POP 00001001: POP 00001002: POP 00001003: JUMP 00001004: JUMPDEST 00001005: PUSH0 00001006: SWAP1 00001007: DUP2 00001008: MSTORE 00001009: PUSH0 0000100a: MLOAD 0000100b: PUSH1 0x20 0000100d: PUSH2 0x38e1 00001010: PUSH0 00001011: CODECOPY 00001012: PUSH0 00001013: MLOAD 00001014: SWAP1 00001015: PUSH0 00001016: MSTORE 00001017: PUSH1 0x20 00001019: MSTORE 0000101a: PUSH1 0x40 0000101c: SWAP1 0000101d: KECCAK256 0000101e: PUSH1 0x01 00001020: ADD 00001021: SLOAD 00001022: SWAP1 00001023: JUMP 00001024: JUMPDEST 00001025: PUSH1 0x01 00001027: PUSH1 0x01 00001029: PUSH1 0xa0 0000102b: SHL 0000102c: SUB 0000102d: DUP2 0000102e: AND 0000102f: PUSH0 00001030: SWAP1 00001031: DUP2 00001032: MSTORE 00001033: PUSH1 0x09 00001035: PUSH1 0x20 00001037: MSTORE 00001038: PUSH1 0x40 0000103a: DUP2 0000103b: KECCAK256 0000103c: SLOAD 0000103d: PUSH2 0x0c67 00001040: SWAP1 00001041: PUSH2 0x0cf9 00001044: JUMP 00001045: JUMPDEST 00001046: PUSH2 0x104e 00001049: DUP3 0000104a: PUSH2 0x1004 0000104d: JUMP 0000104e: JUMPDEST 0000104f: PUSH2 0x1057 00001052: DUP2 00001053: PUSH2 0x2092 00001056: JUMP 00001057: JUMPDEST 00001058: PUSH2 0x1061 0000105b: DUP4 0000105c: DUP4 0000105d: PUSH2 0x209f 00001060: JUMP 00001061: JUMPDEST 00001062: POP 00001063: POP 00001064: POP 00001065: POP 00001066: JUMP 00001067: JUMPDEST 00001068: PUSH0 00001069: PUSH2 0x0c3e 0000106c: CHAINID 0000106d: PUSH2 0x20e1 00001070: JUMP 00001071: JUMPDEST 00001072: PUSH1 0x01 00001074: PUSH1 0x01 00001076: PUSH1 0xa0 00001078: SHL 00001079: SUB 0000107a: DUP2 0000107b: AND 0000107c: CALLER 0000107d: EQ 0000107e: PUSH2 0x109a 00001081: JUMPI 00001082: PUSH1 0x40 00001084: MLOAD 00001085: PUSH4 0x334bd919 0000108a: PUSH1 0xe1 0000108c: SHL 0000108d: DUP2 0000108e: MSTORE 0000108f: PUSH1 0x04 00001091: ADD 00001092: PUSH1 0x40 00001094: MLOAD 00001095: DUP1 00001096: SWAP2 00001097: SUB 00001098: SWAP1 00001099: REVERT 0000109a: JUMPDEST 0000109b: PUSH2 0x10a4 0000109e: DUP3 0000109f: DUP3 000010a0: PUSH2 0x2192 000010a3: JUMP 000010a4: JUMPDEST 000010a5: POP 000010a6: POP 000010a7: POP 000010a8: JUMP 000010a9: JUMPDEST 000010aa: PUSH0 000010ab: PUSH0 000010ac: PUSH2 0x10b3 000010af: PUSH2 0x0c32 000010b2: JUMP 000010b3: JUMPDEST 000010b4: PUSH1 0x07 000010b6: SLOAD 000010b7: SWAP1 000010b8: SWAP2 000010b9: POP 000010ba: DUP2 000010bb: DUP2 000010bc: GT 000010bd: ISZERO 000010be: PUSH2 0x10d0 000010c1: JUMPI 000010c2: PUSH2 0x10cb 000010c5: DUP3 000010c6: DUP3 000010c7: PUSH2 0x3658 000010ca: JUMP 000010cb: JUMPDEST 000010cc: PUSH2 0x10d2 000010cf: JUMP 000010d0: JUMPDEST 000010d1: PUSH0 000010d2: JUMPDEST 000010d3: SWAP5 000010d4: SWAP4 000010d5: POP 000010d6: POP 000010d7: POP 000010d8: POP 000010d9: JUMP 000010da: JUMPDEST 000010db: PUSH1 0x03 000010dd: SLOAD 000010de: PUSH0 000010df: SWAP1 000010e0: PUSH1 0x01 000010e2: PUSH1 0x01 000010e4: PUSH1 0x40 000010e6: SHL 000010e7: SUB 000010e8: AND 000010e9: TIMESTAMP 000010ea: GT 000010eb: PUSH2 0x1105 000010ee: JUMPI 000010ef: POP 000010f0: PUSH1 0x03 000010f2: SLOAD 000010f3: PUSH1 0x01 000010f5: PUSH1 0x40 000010f7: SHL 000010f8: SWAP1 000010f9: DIV 000010fa: PUSH1 0x01 000010fc: PUSH1 0x01 000010fe: PUSH1 0xc0 00001100: SHL 00001101: SUB 00001102: AND 00001103: SWAP1 00001104: JUMP 00001105: JUMPDEST 00001106: PUSH1 0x03 00001108: SLOAD 00001109: PUSH1 0x04 0000110b: SLOAD 0000110c: PUSH8 0x6765c793fa10079d 00001115: PUSH1 0x1b 00001117: SHL 00001118: SWAP2 00001119: PUSH1 0x01 0000111b: PUSH1 0x01 0000111d: PUSH1 0xc0 0000111f: SHL 00001120: SUB 00001121: PUSH1 0x01 00001123: PUSH1 0x40 00001125: SHL 00001126: DUP3 00001127: DIV 00001128: AND 00001129: SWAP2 0000112a: PUSH2 0x1145 0000112d: SWAP2 0000112e: PUSH2 0x1140 00001131: SWAP1 00001132: PUSH1 0x01 00001134: PUSH1 0x01 00001136: PUSH1 0x40 00001138: SHL 00001139: SUB 0000113a: AND 0000113b: TIMESTAMP 0000113c: PUSH2 0x3658 0000113f: JUMP 00001140: JUMPDEST 00001141: PUSH2 0x21cb 00001144: JUMP 00001145: JUMPDEST 00001146: PUSH2 0x114f 00001149: SWAP2 0000114a: SWAP1 0000114b: PUSH2 0x3507 0000114e: JUMP 0000114f: JUMPDEST 00001150: PUSH2 0x0c3e 00001153: SWAP2 00001154: SWAP1 00001155: PUSH2 0x3532 00001158: JUMP 00001159: JUMPDEST 0000115a: PUSH0 0000115b: PUSH2 0x1163 0000115e: DUP3 0000115f: PUSH2 0x0cf9 00001162: JUMP 00001163: JUMPDEST 00001164: PUSH0 00001165: SLOAD 00001166: PUSH1 0x40 00001168: MLOAD 00001169: PUSH4 0x70a08231 0000116e: PUSH1 0xe0 00001170: SHL 00001171: DUP2 00001172: MSTORE 00001173: ADDRESS 00001174: PUSH1 0x04 00001176: DUP3 00001177: ADD 00001178: MSTORE 00001179: SWAP2 0000117a: SWAP3 0000117b: POP 0000117c: DUP3 0000117d: SWAP2 0000117e: PUSH1 0x01 00001180: PUSH1 0x01 00001182: PUSH1 0xa0 00001184: SHL 00001185: SUB 00001186: SWAP1 00001187: SWAP2 00001188: AND 00001189: SWAP1 0000118a: PUSH4 0x70a08231 0000118f: SWAP1 00001190: PUSH1 0x24 00001192: ADD 00001193: PUSH1 0x20 00001195: PUSH1 0x40 00001197: MLOAD 00001198: DUP1 00001199: DUP4 0000119a: SUB 0000119b: DUP2 0000119c: DUP7 0000119d: GAS 0000119e: STATICCALL 0000119f: ISZERO 000011a0: DUP1 000011a1: ISZERO 000011a2: PUSH2 0x11ad 000011a5: JUMPI 000011a6: RETURNDATASIZE 000011a7: PUSH0 000011a8: PUSH0 000011a9: RETURNDATACOPY 000011aa: RETURNDATASIZE 000011ab: PUSH0 000011ac: REVERT 000011ad: JUMPDEST 000011ae: POP 000011af: POP 000011b0: POP 000011b1: POP 000011b2: PUSH1 0x40 000011b4: MLOAD 000011b5: RETURNDATASIZE 000011b6: PUSH1 0x1f 000011b8: NOT 000011b9: PUSH1 0x1f 000011bb: DUP3 000011bc: ADD 000011bd: AND 000011be: DUP3 000011bf: ADD 000011c0: DUP1 000011c1: PUSH1 0x40 000011c3: MSTORE 000011c4: POP 000011c5: DUP2 000011c6: ADD 000011c7: SWAP1 000011c8: PUSH2 0x11d1 000011cb: SWAP2 000011cc: SWAP1 000011cd: PUSH2 0x3551 000011d0: JUMP 000011d1: JUMPDEST 000011d2: LT 000011d3: ISZERO 000011d4: PUSH2 0x11ef 000011d7: JUMPI 000011d8: PUSH1 0x40 000011da: MLOAD 000011db: PUSH3 0x461bcd 000011df: PUSH1 0xe5 000011e1: SHL 000011e2: DUP2 000011e3: MSTORE 000011e4: PUSH1 0x04 000011e6: ADD 000011e7: PUSH2 0x0e15 000011ea: SWAP1 000011eb: PUSH2 0x3568 000011ee: JUMP 000011ef: JUMPDEST 000011f0: SWAP2 000011f1: SWAP1 000011f2: POP 000011f3: JUMP 000011f4: JUMPDEST 000011f5: PUSH2 0x11fc 000011f8: PUSH2 0x22b7 000011fb: JUMP 000011fc: JUMPDEST 000011fd: PUSH2 0x1205 00001200: DUP3 00001201: PUSH2 0x235d 00001204: JUMP 00001205: JUMPDEST 00001206: PUSH2 0x120f 00001209: DUP3 0000120a: DUP3 0000120b: PUSH2 0x2367 0000120e: JUMP 0000120f: JUMPDEST 00001210: POP 00001211: POP 00001212: JUMP 00001213: JUMPDEST 00001214: PUSH0 00001215: MLOAD 00001216: PUSH1 0x20 00001218: PUSH2 0x3901 0000121b: PUSH0 0000121c: CODECOPY 0000121d: PUSH0 0000121e: MLOAD 0000121f: SWAP1 00001220: PUSH0 00001221: MSTORE 00001222: PUSH2 0x122a 00001225: DUP2 00001226: PUSH2 0x2092 00001229: JUMP 0000122a: JUMPDEST 0000122b: PUSH2 0x1234 0000122e: CALLER 0000122f: DUP4 00001230: PUSH2 0x2423 00001233: JUMP 00001234: JUMPDEST 00001235: PUSH1 0x40 00001237: MLOAD 00001238: DUP3 00001239: DUP2 0000123a: MSTORE 0000123b: CALLER 0000123c: SWAP1 0000123d: PUSH32 0xd69eabfc802f58b2a23d16767d1fcab6551f30a60ab43a24f147d3823d7d0368 0000125e: SWAP1 0000125f: PUSH1 0x20 00001261: ADD 00001262: PUSH1 0x40 00001264: MLOAD 00001265: DUP1 00001266: SWAP2 00001267: SUB 00001268: SWAP1 00001269: LOG2 0000126a: POP 0000126b: POP 0000126c: JUMP 0000126d: JUMPDEST 0000126e: PUSH0 0000126f: PUSH2 0x1276 00001272: PUSH2 0x24c1 00001275: JUMP 00001276: JUMPDEST 00001277: POP 00001278: PUSH0 00001279: MLOAD 0000127a: PUSH1 0x20 0000127c: PUSH2 0x38a1 0000127f: PUSH0 00001280: CODECOPY 00001281: PUSH0 00001282: MLOAD 00001283: SWAP1 00001284: PUSH0 00001285: MSTORE 00001286: SWAP1 00001287: JUMP 00001288: JUMPDEST 00001289: PUSH0 0000128a: PUSH2 0x1291 0000128d: PUSH2 0x250a 00001290: JUMP 00001291: JUMPDEST 00001292: DUP1 00001293: SLOAD 00001294: SWAP1 00001295: SWAP2 00001296: POP 00001297: PUSH1 0xff 00001299: PUSH1 0x01 0000129b: PUSH1 0x40 0000129d: SHL 0000129e: DUP3 0000129f: DIV 000012a0: AND 000012a1: ISZERO 000012a2: SWAP1 000012a3: PUSH1 0x01 000012a5: PUSH1 0x01 000012a7: PUSH1 0x40 000012a9: SHL 000012aa: SUB 000012ab: AND 000012ac: PUSH0 000012ad: DUP2 000012ae: ISZERO 000012af: DUP1 000012b0: ISZERO 000012b1: PUSH2 0x12b7 000012b4: JUMPI 000012b5: POP 000012b6: DUP3 000012b7: JUMPDEST 000012b8: SWAP1 000012b9: POP 000012ba: PUSH0 000012bb: DUP3 000012bc: PUSH1 0x01 000012be: PUSH1 0x01 000012c0: PUSH1 0x40 000012c2: SHL 000012c3: SUB 000012c4: AND 000012c5: PUSH1 0x01 000012c7: EQ 000012c8: DUP1 000012c9: ISZERO 000012ca: PUSH2 0x12d2 000012cd: JUMPI 000012ce: POP 000012cf: ADDRESS 000012d0: EXTCODESIZE 000012d1: ISZERO 000012d2: JUMPDEST 000012d3: SWAP1 000012d4: POP 000012d5: DUP2 000012d6: ISZERO 000012d7: DUP1 000012d8: ISZERO 000012d9: PUSH2 0x12e0 000012dc: JUMPI 000012dd: POP 000012de: DUP1 000012df: ISZERO 000012e0: JUMPDEST 000012e1: ISZERO 000012e2: PUSH2 0x12fe 000012e5: JUMPI 000012e6: PUSH1 0x40 000012e8: MLOAD 000012e9: PUSH4 0xf92ee8a9 000012ee: PUSH1 0xe0 000012f0: SHL 000012f1: DUP2 000012f2: MSTORE 000012f3: PUSH1 0x04 000012f5: ADD 000012f6: PUSH1 0x40 000012f8: MLOAD 000012f9: DUP1 000012fa: SWAP2 000012fb: SUB 000012fc: SWAP1 000012fd: REVERT 000012fe: JUMPDEST 000012ff: DUP5 00001300: SLOAD 00001301: PUSH8 0xffffffffffffffff 0000130a: NOT 0000130b: AND 0000130c: PUSH1 0x01 0000130e: OR 0000130f: DUP6 00001310: SSTORE 00001311: DUP4 00001312: ISZERO 00001313: PUSH2 0x1328 00001316: JUMPI 00001317: DUP5 00001318: SLOAD 00001319: PUSH1 0xff 0000131b: PUSH1 0x40 0000131d: SHL 0000131e: NOT 0000131f: AND 00001320: PUSH1 0x01 00001322: PUSH1 0x40 00001324: SHL 00001325: OR 00001326: DUP6 00001327: SSTORE 00001328: JUMPDEST 00001329: PUSH0 0000132a: DUP1 0000132b: SLOAD 0000132c: PUSH1 0x01 0000132e: PUSH1 0x01 00001330: PUSH1 0xa0 00001332: SHL 00001333: SUB 00001334: NOT 00001335: AND 00001336: PUSH1 0x01 00001338: PUSH1 0x01 0000133a: PUSH1 0xa0 0000133c: SHL 0000133d: SUB 0000133e: DUP12 0000133f: AND 00001340: OR 00001341: SWAP1 00001342: SSTORE 00001343: PUSH1 0x01 00001345: PUSH2 0x134e 00001348: DUP10 00001349: DUP3 0000134a: PUSH2 0x36b6 0000134d: JUMP 0000134e: JUMPDEST 0000134f: POP 00001350: PUSH1 0x02 00001352: PUSH2 0x135b 00001355: DUP9 00001356: DUP3 00001357: PUSH2 0x36b6 0000135a: JUMP 0000135b: JUMPDEST 0000135c: POP 0000135d: PUSH2 0x1366 00001360: PUSH0 00001361: DUP8 00001362: PUSH2 0x209f 00001365: JUMP 00001366: JUMPDEST 00001367: POP 00001368: DUP9 00001369: PUSH1 0x01 0000136b: PUSH1 0x01 0000136d: PUSH1 0xa0 0000136f: SHL 00001370: SUB 00001371: AND 00001372: PUSH4 0x313ce567 00001377: PUSH1 0x40 00001379: MLOAD 0000137a: DUP2 0000137b: PUSH4 0xffffffff 00001380: AND 00001381: PUSH1 0xe0 00001383: SHL 00001384: DUP2 00001385: MSTORE 00001386: PUSH1 0x04 00001388: ADD 00001389: PUSH1 0x20 0000138b: PUSH1 0x40 0000138d: MLOAD 0000138e: DUP1 0000138f: DUP4 00001390: SUB 00001391: DUP2 00001392: DUP7 00001393: GAS 00001394: STATICCALL 00001395: ISZERO 00001396: DUP1 00001397: ISZERO 00001398: PUSH2 0x13a3 0000139b: JUMPI 0000139c: RETURNDATASIZE 0000139d: PUSH0 0000139e: PUSH0 0000139f: RETURNDATACOPY 000013a0: RETURNDATASIZE 000013a1: PUSH0 000013a2: REVERT 000013a3: JUMPDEST 000013a4: POP 000013a5: POP 000013a6: POP 000013a7: POP 000013a8: PUSH1 0x40 000013aa: MLOAD 000013ab: RETURNDATASIZE 000013ac: PUSH1 0x1f 000013ae: NOT 000013af: PUSH1 0x1f 000013b1: DUP3 000013b2: ADD 000013b3: AND 000013b4: DUP3 000013b5: ADD 000013b6: DUP1 000013b7: PUSH1 0x40 000013b9: MSTORE 000013ba: POP 000013bb: DUP2 000013bc: ADD 000013bd: SWAP1 000013be: PUSH2 0x13c7 000013c1: SWAP2 000013c2: SWAP1 000013c3: PUSH2 0x3770 000013c6: JUMP 000013c7: JUMPDEST 000013c8: PUSH0 000013c9: DUP1 000013ca: SLOAD 000013cb: PUSH1 0xff 000013cd: SWAP3 000013ce: SWAP1 000013cf: SWAP3 000013d0: AND 000013d1: PUSH1 0x01 000013d3: PUSH1 0xa0 000013d5: SHL 000013d6: MUL 000013d7: PUSH1 0xff 000013d9: PUSH1 0xa0 000013db: SHL 000013dc: NOT 000013dd: SWAP1 000013de: SWAP3 000013df: AND 000013e0: SWAP2 000013e1: SWAP1 000013e2: SWAP2 000013e3: OR 000013e4: SWAP1 000013e5: SSTORE 000013e6: TIMESTAMP 000013e7: PUSH1 0x01 000013e9: PUSH1 0x01 000013eb: PUSH1 0x40 000013ed: SHL 000013ee: SUB 000013ef: AND 000013f0: PUSH8 0x6765c793fa10079d 000013f9: PUSH1 0x5b 000013fb: SHL 000013fc: OR 000013fd: PUSH1 0x03 000013ff: SSTORE 00001400: PUSH8 0x6765c793fa10079d 00001409: PUSH1 0x1b 0000140b: SHL 0000140c: PUSH1 0x04 0000140e: DUP2 0000140f: SWAP1 00001410: SSTORE 00001411: PUSH1 0x05 00001413: DUP2 00001414: SWAP1 00001415: SSTORE 00001416: PUSH1 0x06 00001418: SSTORE 00001419: DUP4 0000141a: ISZERO 0000141b: PUSH2 0x145e 0000141e: JUMPI 0000141f: DUP5 00001420: SLOAD 00001421: PUSH1 0xff 00001423: PUSH1 0x40 00001425: SHL 00001426: NOT 00001427: AND 00001428: DUP6 00001429: SSTORE 0000142a: PUSH1 0x40 0000142c: MLOAD 0000142d: PUSH1 0x01 0000142f: DUP2 00001430: MSTORE 00001431: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 00001452: SWAP1 00001453: PUSH1 0x20 00001455: ADD 00001456: PUSH1 0x40 00001458: MLOAD 00001459: DUP1 0000145a: SWAP2 0000145b: SUB 0000145c: SWAP1 0000145d: LOG1 0000145e: JUMPDEST 0000145f: POP 00001460: POP 00001461: POP 00001462: POP 00001463: POP 00001464: POP 00001465: POP 00001466: POP 00001467: POP 00001468: JUMP 00001469: JUMPDEST 0000146a: PUSH0 0000146b: PUSH2 0x1472 0000146e: PUSH2 0x18e2 00001471: JUMP 00001472: JUMPDEST 00001473: PUSH2 0x1487 00001476: PUSH8 0x6765c793fa10079d 0000147f: PUSH1 0x1b 00001481: SHL 00001482: DUP6 00001483: PUSH2 0x3507 00001486: JUMP 00001487: JUMPDEST 00001488: PUSH2 0x1491 0000148b: SWAP2 0000148c: SWAP1 0000148d: PUSH2 0x3532 00001490: JUMP 00001491: JUMPDEST 00001492: SWAP1 00001493: POP 00001494: PUSH2 0x0c67 00001497: DUP4 00001498: DUP3 00001499: DUP5 0000149a: PUSH2 0x2532 0000149d: JUMP 0000149e: JUMPDEST 0000149f: PUSH32 0x61c92169ef077349011ff0b1383c894d86c5f0b41d986366b58a6cf31e93beda 000014c0: PUSH2 0x14c8 000014c3: DUP2 000014c4: PUSH2 0x2092 000014c7: JUMP 000014c8: JUMPDEST 000014c9: PUSH1 0x05 000014cb: SLOAD 000014cc: DUP3 000014cd: LT 000014ce: ISZERO 000014cf: PUSH2 0x1513 000014d2: JUMPI 000014d3: PUSH1 0x40 000014d5: MLOAD 000014d6: PUSH3 0x461bcd 000014da: PUSH1 0xe5 000014dc: SHL 000014dd: DUP2 000014de: MSTORE 000014df: PUSH1 0x20 000014e1: PUSH1 0x04 000014e3: DUP3 000014e4: ADD 000014e5: MSTORE 000014e6: PUSH1 0x16 000014e8: PUSH1 0x24 000014ea: DUP3 000014eb: ADD 000014ec: MSTORE 000014ed: PUSH22 0x537061726b5661756c742f7673722d746f6f2d6c6f77 00001504: PUSH1 0x50 00001506: SHL 00001507: PUSH1 0x44 00001509: DUP3 0000150a: ADD 0000150b: MSTORE 0000150c: PUSH1 0x64 0000150e: ADD 0000150f: PUSH2 0x0e15 00001512: JUMP 00001513: JUMPDEST 00001514: PUSH1 0x06 00001516: SLOAD 00001517: DUP3 00001518: GT 00001519: ISZERO 0000151a: PUSH2 0x155f 0000151d: JUMPI 0000151e: PUSH1 0x40 00001520: MLOAD 00001521: PUSH3 0x461bcd 00001525: PUSH1 0xe5 00001527: SHL 00001528: DUP2 00001529: MSTORE 0000152a: PUSH1 0x20 0000152c: PUSH1 0x04 0000152e: DUP3 0000152f: ADD 00001530: MSTORE 00001531: PUSH1 0x17 00001533: PUSH1 0x24 00001535: DUP3 00001536: ADD 00001537: MSTORE 00001538: PUSH23 0x0a6e0c2e4d6acc2ead8e85eece6e45ae8dede5ad0d2ced 00001550: PUSH1 0x4b 00001552: SHL 00001553: PUSH1 0x44 00001555: DUP3 00001556: ADD 00001557: MSTORE 00001558: PUSH1 0x64 0000155a: ADD 0000155b: PUSH2 0x0e15 0000155e: JUMP 0000155f: JUMPDEST 00001560: PUSH2 0x1567 00001563: PUSH2 0x18e2 00001566: JUMP 00001567: JUMPDEST 00001568: POP 00001569: PUSH1 0x04 0000156b: DUP1 0000156c: SLOAD 0000156d: SWAP1 0000156e: DUP4 0000156f: SWAP1 00001570: SSTORE 00001571: PUSH1 0x40 00001573: DUP1 00001574: MLOAD 00001575: DUP3 00001576: DUP2 00001577: MSTORE 00001578: PUSH1 0x20 0000157a: DUP2 0000157b: ADD 0000157c: DUP6 0000157d: SWAP1 0000157e: MSTORE 0000157f: CALLER 00001580: SWAP2 00001581: PUSH32 0xdd4573165d2d2b3ad7be79cfb35bd79c5d5e90e9a51ca373b975e89591b1e513 000015a2: SWAP2 000015a3: ADD 000015a4: PUSH1 0x40 000015a6: MLOAD 000015a7: DUP1 000015a8: SWAP2 000015a9: SUB 000015aa: SWAP1 000015ab: LOG2 000015ac: POP 000015ad: POP 000015ae: POP 000015af: JUMP 000015b0: JUMPDEST 000015b1: PUSH0 000015b2: PUSH2 0x15ba 000015b5: DUP2 000015b6: PUSH2 0x2092 000015b9: JUMP 000015ba: JUMPDEST 000015bb: PUSH8 0x6765c793fa10079d 000015c4: PUSH1 0x1b 000015c6: SHL 000015c7: DUP4 000015c8: LT 000015c9: ISZERO 000015ca: PUSH2 0x160e 000015cd: JUMPI 000015ce: PUSH1 0x40 000015d0: MLOAD 000015d1: PUSH3 0x461bcd 000015d5: PUSH1 0xe5 000015d7: SHL 000015d8: DUP2 000015d9: MSTORE 000015da: PUSH1 0x20 000015dc: PUSH1 0x04 000015de: DUP3 000015df: ADD 000015e0: MSTORE 000015e1: PUSH1 0x16 000015e3: PUSH1 0x24 000015e5: DUP3 000015e6: ADD 000015e7: MSTORE 000015e8: PUSH22 0x537061726b5661756c742f7673722d746f6f2d6c6f77 000015ff: PUSH1 0x50 00001601: SHL 00001602: PUSH1 0x44 00001604: DUP3 00001605: ADD 00001606: MSTORE 00001607: PUSH1 0x64 00001609: ADD 0000160a: PUSH2 0x0e15 0000160d: JUMP 0000160e: JUMPDEST 0000160f: PUSH12 0x033b2e3dd0d78f60556d6583 0000161c: DUP3 0000161d: GT 0000161e: ISZERO 0000161f: PUSH2 0x1664 00001622: JUMPI 00001623: PUSH1 0x40 00001625: MLOAD 00001626: PUSH3 0x461bcd 0000162a: PUSH1 0xe5 0000162c: SHL 0000162d: DUP2 0000162e: MSTORE 0000162f: PUSH1 0x20 00001631: PUSH1 0x04 00001633: DUP3 00001634: ADD 00001635: MSTORE 00001636: PUSH1 0x17 00001638: PUSH1 0x24 0000163a: DUP3 0000163b: ADD 0000163c: MSTORE 0000163d: PUSH23 0x0a6e0c2e4d6acc2ead8e85eece6e45ae8dede5ad0d2ced 00001655: PUSH1 0x4b 00001657: SHL 00001658: PUSH1 0x44 0000165a: DUP3 0000165b: ADD 0000165c: MSTORE 0000165d: PUSH1 0x64 0000165f: ADD 00001660: PUSH2 0x0e15 00001663: JUMP 00001664: JUMPDEST 00001665: DUP2 00001666: DUP4 00001667: GT 00001668: ISZERO 00001669: PUSH2 0x16b4 0000166c: JUMPI 0000166d: PUSH1 0x40 0000166f: MLOAD 00001670: PUSH3 0x461bcd 00001674: PUSH1 0xe5 00001676: SHL 00001677: DUP2 00001678: MSTORE 00001679: PUSH1 0x20 0000167b: PUSH1 0x04 0000167d: DUP3 0000167e: ADD 0000167f: MSTORE 00001680: PUSH1 0x1d 00001682: PUSH1 0x24 00001684: DUP3 00001685: ADD 00001686: MSTORE 00001687: PUSH32 0x537061726b5661756c742f6d696e2d7673722d67742d6d61782d767372000000 000016a8: PUSH1 0x44 000016aa: DUP3 000016ab: ADD 000016ac: MSTORE 000016ad: PUSH1 0x64 000016af: ADD 000016b0: PUSH2 0x0e15 000016b3: JUMP 000016b4: JUMPDEST 000016b5: PUSH1 0x05 000016b7: SLOAD 000016b8: PUSH1 0x06 000016ba: SLOAD 000016bb: PUSH1 0x40 000016bd: DUP1 000016be: MLOAD 000016bf: SWAP3 000016c0: DUP4 000016c1: MSTORE 000016c2: PUSH1 0x20 000016c4: DUP4 000016c5: ADD 000016c6: SWAP2 000016c7: SWAP1 000016c8: SWAP2 000016c9: MSTORE 000016ca: DUP2 000016cb: ADD 000016cc: DUP5 000016cd: SWAP1 000016ce: MSTORE 000016cf: PUSH1 0x60 000016d1: DUP2 000016d2: ADD 000016d3: DUP4 000016d4: SWAP1 000016d5: MSTORE 000016d6: PUSH32 0x6074f38f2f0894d37e6c6842e522ed5a263a62e38db11377b063d485b0b30220 000016f7: SWAP1 000016f8: PUSH1 0x80 000016fa: ADD 000016fb: PUSH1 0x40 000016fd: MLOAD 000016fe: DUP1 000016ff: SWAP2 00001700: SUB 00001701: SWAP1 00001702: LOG1 00001703: POP 00001704: PUSH1 0x05 00001706: SWAP2 00001707: SWAP1 00001708: SWAP2 00001709: SSTORE 0000170a: PUSH1 0x06 0000170c: SSTORE 0000170d: JUMP 0000170e: JUMPDEST 0000170f: PUSH0 00001710: PUSH2 0x1718 00001713: DUP2 00001714: PUSH2 0x2092 00001717: JUMP 00001718: JUMPDEST 00001719: PUSH1 0x07 0000171b: SLOAD 0000171c: PUSH1 0x40 0000171e: DUP1 0000171f: MLOAD 00001720: SWAP2 00001721: DUP3 00001722: MSTORE 00001723: PUSH1 0x20 00001725: DUP3 00001726: ADD 00001727: DUP5 00001728: SWAP1 00001729: MSTORE 0000172a: PUSH32 0x296bce538ac6d09f30846d670defb82b44ccc28a772613d99904be3f6ed7a167 0000174b: SWAP2 0000174c: ADD 0000174d: PUSH1 0x40 0000174f: MLOAD 00001750: DUP1 00001751: SWAP2 00001752: SUB 00001753: SWAP1 00001754: LOG1 00001755: POP 00001756: PUSH1 0x07 00001758: SSTORE 00001759: JUMP 0000175a: JUMPDEST 0000175b: PUSH0 0000175c: DUP3 0000175d: DUP2 0000175e: MSTORE 0000175f: PUSH0 00001760: MLOAD 00001761: PUSH1 0x20 00001763: PUSH2 0x3881 00001766: PUSH0 00001767: CODECOPY 00001768: PUSH0 00001769: MLOAD 0000176a: SWAP1 0000176b: PUSH0 0000176c: MSTORE 0000176d: PUSH1 0x20 0000176f: DUP2 00001770: SWAP1 00001771: MSTORE 00001772: PUSH1 0x40 00001774: DUP3 00001775: KECCAK256 00001776: PUSH2 0x10d2 00001779: SWAP1 0000177a: DUP5 0000177b: PUSH2 0x26fd 0000177e: JUMP 0000177f: JUMPDEST 00001780: PUSH0 00001781: SWAP2 00001782: DUP3 00001783: MSTORE 00001784: PUSH0 00001785: MLOAD 00001786: PUSH1 0x20 00001788: PUSH2 0x38e1 0000178b: PUSH0 0000178c: CODECOPY 0000178d: PUSH0 0000178e: MLOAD 0000178f: SWAP1 00001790: PUSH0 00001791: MSTORE 00001792: PUSH1 0x20 00001794: SWAP1 00001795: DUP2 00001796: MSTORE 00001797: PUSH1 0x40 00001799: DUP1 0000179a: DUP5 0000179b: KECCAK256 0000179c: PUSH1 0x01 0000179e: PUSH1 0x01 000017a0: PUSH1 0xa0 000017a2: SHL 000017a3: SUB 000017a4: SWAP4 000017a5: SWAP1 000017a6: SWAP4 000017a7: AND 000017a8: DUP5 000017a9: MSTORE 000017aa: SWAP2 000017ab: SWAP1 000017ac: MSTORE 000017ad: SWAP1 000017ae: KECCAK256 000017af: SLOAD 000017b0: PUSH1 0xff 000017b2: AND 000017b3: SWAP1 000017b4: JUMP 000017b5: JUMPDEST 000017b6: PUSH0 000017b7: DUP1 000017b8: SLOAD 000017b9: PUSH1 0x40 000017bb: MLOAD 000017bc: PUSH4 0x70a08231 000017c1: PUSH1 0xe0 000017c3: SHL 000017c4: DUP2 000017c5: MSTORE 000017c6: ADDRESS 000017c7: PUSH1 0x04 000017c9: DUP3 000017ca: ADD 000017cb: MSTORE 000017cc: DUP3 000017cd: SWAP2 000017ce: PUSH1 0x01 000017d0: PUSH1 0x01 000017d2: PUSH1 0xa0 000017d4: SHL 000017d5: SUB 000017d6: AND 000017d7: SWAP1 000017d8: PUSH4 0x70a08231 000017dd: SWAP1 000017de: PUSH1 0x24 000017e0: ADD 000017e1: PUSH1 0x20 000017e3: PUSH1 0x40 000017e5: MLOAD 000017e6: DUP1 000017e7: DUP4 000017e8: SUB 000017e9: DUP2 000017ea: DUP7 000017eb: GAS 000017ec: STATICCALL 000017ed: ISZERO 000017ee: DUP1 000017ef: ISZERO 000017f0: PUSH2 0x17fb 000017f3: JUMPI 000017f4: RETURNDATASIZE 000017f5: PUSH0 000017f6: PUSH0 000017f7: RETURNDATACOPY 000017f8: RETURNDATASIZE 000017f9: PUSH0 000017fa: REVERT 000017fb: JUMPDEST 000017fc: POP 000017fd: POP 000017fe: POP 000017ff: POP 00001800: PUSH1 0x40 00001802: MLOAD 00001803: RETURNDATASIZE 00001804: PUSH1 0x1f 00001806: NOT 00001807: PUSH1 0x1f 00001809: DUP3 0000180a: ADD 0000180b: AND 0000180c: DUP3 0000180d: ADD 0000180e: DUP1 0000180f: PUSH1 0x40 00001811: MSTORE 00001812: POP 00001813: DUP2 00001814: ADD 00001815: SWAP1 00001816: PUSH2 0x181f 00001819: SWAP2 0000181a: SWAP1 0000181b: PUSH2 0x3551 0000181e: JUMP 0000181f: JUMPDEST 00001820: SWAP1 00001821: POP 00001822: PUSH0 00001823: PUSH2 0x182a 00001826: PUSH2 0x0c32 00001829: JUMP 0000182a: JUMPDEST 0000182b: SWAP1 0000182c: POP 0000182d: DUP2 0000182e: DUP2 0000182f: LT 00001830: ISZERO 00001831: PUSH2 0x183a 00001834: JUMPI 00001835: PUSH0 00001836: PUSH2 0x1844 00001839: JUMP 0000183a: JUMPDEST 0000183b: PUSH2 0x1844 0000183e: DUP3 0000183f: DUP3 00001840: PUSH2 0x3658 00001843: JUMP 00001844: JUMPDEST 00001845: SWAP3 00001846: POP 00001847: POP 00001848: POP 00001849: SWAP1 0000184a: JUMP 0000184b: JUMPDEST 0000184c: PUSH0 0000184d: PUSH2 0x1872 00001850: PUSH2 0x1857 00001853: PUSH2 0x18e2 00001856: JUMP 00001857: JUMPDEST 00001858: PUSH2 0x1861 0000185b: SWAP1 0000185c: DUP6 0000185d: PUSH2 0x3507 00001860: JUMP 00001861: JUMPDEST 00001862: PUSH8 0x6765c793fa10079d 0000186b: PUSH1 0x1b 0000186d: SHL 0000186e: PUSH2 0x2067 00001871: JUMP 00001872: JUMPDEST 00001873: SWAP1 00001874: POP 00001875: PUSH2 0x0c67 00001878: DUP2 00001879: DUP5 0000187a: DUP5 0000187b: PUSH2 0x2532 0000187e: JUMP 0000187f: JUMPDEST 00001880: PUSH1 0x02 00001882: DUP1 00001883: SLOAD 00001884: PUSH2 0x0c7a 00001887: SWAP1 00001888: PUSH2 0x34bb 0000188b: JUMP 0000188c: JUMPDEST 0000188d: PUSH0 0000188e: PUSH2 0x1897 00001891: DUP5 00001892: DUP5 00001893: PUSH2 0x1469 00001896: JUMP 00001897: JUMPDEST 00001898: SWAP1 00001899: POP 0000189a: DUP3 0000189b: PUSH1 0x01 0000189d: PUSH1 0x01 0000189f: PUSH1 0xa0 000018a1: SHL 000018a2: SUB 000018a3: AND 000018a4: DUP3 000018a5: PUSH2 0xffff 000018a8: AND 000018a9: PUSH32 0xb30a03a0e2a407f18ae0e83491331dc069d1521e292feffb071e61c8f7f40636 000018ca: DUP7 000018cb: DUP5 000018cc: PUSH1 0x40 000018ce: MLOAD 000018cf: PUSH2 0x0e99 000018d2: SWAP3 000018d3: SWAP2 000018d4: SWAP1 000018d5: SWAP2 000018d6: DUP3 000018d7: MSTORE 000018d8: PUSH1 0x20 000018da: DUP3 000018db: ADD 000018dc: MSTORE 000018dd: PUSH1 0x40 000018df: ADD 000018e0: SWAP1 000018e1: JUMP 000018e2: JUMPDEST 000018e3: PUSH1 0x03 000018e5: SLOAD 000018e6: PUSH0 000018e7: SWAP1 000018e8: PUSH1 0x01 000018ea: PUSH1 0x01 000018ec: PUSH1 0xc0 000018ee: SHL 000018ef: SUB 000018f0: PUSH1 0x01 000018f2: PUSH1 0x40 000018f4: SHL 000018f5: DUP3 000018f6: DIV 000018f7: AND 000018f8: SWAP1 000018f9: PUSH1 0x01 000018fb: PUSH1 0x01 000018fd: PUSH1 0x40 000018ff: SHL 00001900: SUB 00001901: AND 00001902: DUP3 00001903: TIMESTAMP 00001904: DUP3 00001905: LT 00001906: ISZERO 00001907: PUSH2 0x19bf 0000190a: JUMPI 0000190b: PUSH8 0x6765c793fa10079d 00001914: PUSH1 0x1b 00001916: SHL 00001917: DUP4 00001918: PUSH2 0x1929 0000191b: PUSH1 0x04 0000191d: SLOAD 0000191e: DUP6 0000191f: TIMESTAMP 00001920: PUSH2 0x1140 00001923: SWAP2 00001924: SWAP1 00001925: PUSH2 0x3658 00001928: JUMP 00001929: JUMPDEST 0000192a: PUSH2 0x1933 0000192d: SWAP2 0000192e: SWAP1 0000192f: PUSH2 0x3507 00001932: JUMP 00001933: JUMPDEST 00001934: PUSH2 0x193d 00001937: SWAP2 00001938: SWAP1 00001939: PUSH2 0x3532 0000193c: JUMP 0000193d: JUMPDEST 0000193e: PUSH1 0x08 00001940: SLOAD 00001941: SWAP1 00001942: SWAP5 00001943: POP 00001944: PUSH8 0x6765c793fa10079d 0000194d: PUSH1 0x1b 0000194f: SHL 00001950: PUSH2 0x1959 00001953: DUP6 00001954: DUP4 00001955: PUSH2 0x3507 00001958: JUMP 00001959: JUMPDEST 0000195a: PUSH2 0x1963 0000195d: SWAP2 0000195e: SWAP1 0000195f: PUSH2 0x3532 00001962: JUMP 00001963: JUMPDEST 00001964: PUSH8 0x6765c793fa10079d 0000196d: PUSH1 0x1b 0000196f: SHL 00001970: PUSH2 0x1979 00001973: DUP8 00001974: DUP5 00001975: PUSH2 0x3507 00001978: JUMP 00001979: JUMPDEST 0000197a: PUSH2 0x1983 0000197d: SWAP2 0000197e: SWAP1 0000197f: PUSH2 0x3532 00001982: JUMP 00001983: JUMPDEST 00001984: PUSH2 0x198d 00001987: SWAP2 00001988: SWAP1 00001989: PUSH2 0x3658 0000198c: JUMP 0000198d: JUMPDEST 0000198e: TIMESTAMP 0000198f: PUSH1 0x01 00001991: PUSH1 0x01 00001993: PUSH1 0x40 00001995: SHL 00001996: SUB 00001997: AND 00001998: PUSH1 0x01 0000199a: PUSH1 0x01 0000199c: PUSH1 0xc0 0000199e: SHL 0000199f: SUB 000019a0: DUP8 000019a1: AND 000019a2: PUSH1 0x01 000019a4: PUSH1 0x40 000019a6: SHL 000019a7: MUL 000019a8: PUSH8 0xffffffffffffffff 000019b1: NOT 000019b2: AND 000019b3: OR 000019b4: PUSH1 0x03 000019b6: SSTORE 000019b7: SWAP2 000019b8: POP 000019b9: PUSH2 0x19c3 000019bc: SWAP1 000019bd: POP 000019be: JUMP 000019bf: JUMPDEST 000019c0: DUP3 000019c1: SWAP4 000019c2: POP 000019c3: JUMPDEST 000019c4: PUSH1 0x40 000019c6: DUP1 000019c7: MLOAD 000019c8: DUP6 000019c9: DUP2 000019ca: MSTORE 000019cb: PUSH1 0x20 000019cd: DUP2 000019ce: ADD 000019cf: DUP4 000019d0: SWAP1 000019d1: MSTORE 000019d2: PUSH32 0xad1e8a53178522eb68a9d94d862bf30c841f709d2115f743eb6b34528751c79f 000019f3: SWAP2 000019f4: ADD 000019f5: PUSH1 0x40 000019f7: MLOAD 000019f8: DUP1 000019f9: SWAP2 000019fa: SUB 000019fb: SWAP1 000019fc: LOG1 000019fd: POP 000019fe: POP 000019ff: POP 00001a00: SWAP1 00001a01: JUMP 00001a02: JUMPDEST 00001a03: DUP2 00001a04: TIMESTAMP 00001a05: GT 00001a06: ISZERO 00001a07: PUSH2 0x1a52 00001a0a: JUMPI 00001a0b: PUSH1 0x40 00001a0d: MLOAD 00001a0e: PUSH3 0x461bcd 00001a12: PUSH1 0xe5 00001a14: SHL 00001a15: DUP2 00001a16: MSTORE 00001a17: PUSH1 0x20 00001a19: PUSH1 0x04 00001a1b: DUP3 00001a1c: ADD 00001a1d: MSTORE 00001a1e: PUSH1 0x19 00001a20: PUSH1 0x24 00001a22: DUP3 00001a23: ADD 00001a24: MSTORE 00001a25: PUSH32 0x537061726b5661756c742f7065726d69742d6578706972656400000000000000 00001a46: PUSH1 0x44 00001a48: DUP3 00001a49: ADD 00001a4a: MSTORE 00001a4b: PUSH1 0x64 00001a4d: ADD 00001a4e: PUSH2 0x0e15 00001a51: JUMP 00001a52: JUMPDEST 00001a53: PUSH1 0x01 00001a55: PUSH1 0x01 00001a57: PUSH1 0xa0 00001a59: SHL 00001a5a: SUB 00001a5b: DUP6 00001a5c: AND 00001a5d: PUSH2 0x1aa8 00001a60: JUMPI 00001a61: PUSH1 0x40 00001a63: MLOAD 00001a64: PUSH3 0x461bcd 00001a68: PUSH1 0xe5 00001a6a: SHL 00001a6b: DUP2 00001a6c: MSTORE 00001a6d: PUSH1 0x20 00001a6f: PUSH1 0x04 00001a71: DUP3 00001a72: ADD 00001a73: MSTORE 00001a74: PUSH1 0x18 00001a76: PUSH1 0x24 00001a78: DUP3 00001a79: ADD 00001a7a: MSTORE 00001a7b: PUSH32 0x537061726b5661756c742f696e76616c69642d6f776e65720000000000000000 00001a9c: PUSH1 0x44 00001a9e: DUP3 00001a9f: ADD 00001aa0: MSTORE 00001aa1: PUSH1 0x64 00001aa3: ADD 00001aa4: PUSH2 0x0e15 00001aa7: JUMP 00001aa8: JUMPDEST 00001aa9: PUSH1 0x01 00001aab: PUSH1 0x01 00001aad: PUSH1 0xa0 00001aaf: SHL 00001ab0: SUB 00001ab1: DUP6 00001ab2: AND 00001ab3: PUSH0 00001ab4: SWAP1 00001ab5: DUP2 00001ab6: MSTORE 00001ab7: PUSH1 0x0a 00001ab9: PUSH1 0x20 00001abb: MSTORE 00001abc: PUSH1 0x40 00001abe: DUP2 00001abf: KECCAK256 00001ac0: DUP1 00001ac1: SLOAD 00001ac2: PUSH1 0x01 00001ac4: DUP2 00001ac5: ADD 00001ac6: SWAP1 00001ac7: SWAP2 00001ac8: SSTORE 00001ac9: SWAP1 00001aca: PUSH2 0x1ad2 00001acd: CHAINID 00001ace: PUSH2 0x20e1 00001ad1: JUMP 00001ad2: JUMPDEST 00001ad3: PUSH1 0x40 00001ad5: DUP1 00001ad6: MLOAD 00001ad7: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 00001af8: PUSH1 0x20 00001afa: DUP3 00001afb: ADD 00001afc: MSTORE 00001afd: PUSH1 0x01 00001aff: PUSH1 0x01 00001b01: PUSH1 0xa0 00001b03: SHL 00001b04: SUB 00001b05: DUP1 00001b06: DUP12 00001b07: AND 00001b08: SWAP3 00001b09: DUP3 00001b0a: ADD 00001b0b: SWAP3 00001b0c: SWAP1 00001b0d: SWAP3 00001b0e: MSTORE 00001b0f: SWAP1 00001b10: DUP9 00001b11: AND 00001b12: PUSH1 0x60 00001b14: DUP3 00001b15: ADD 00001b16: MSTORE 00001b17: PUSH1 0x80 00001b19: DUP2 00001b1a: ADD 00001b1b: DUP8 00001b1c: SWAP1 00001b1d: MSTORE 00001b1e: PUSH1 0xa0 00001b20: DUP2 00001b21: ADD 00001b22: DUP5 00001b23: SWAP1 00001b24: MSTORE 00001b25: PUSH1 0xc0 00001b27: DUP2 00001b28: ADD 00001b29: DUP7 00001b2a: SWAP1 00001b2b: MSTORE 00001b2c: PUSH1 0xe0 00001b2e: ADD 00001b2f: PUSH1 0x40 00001b31: MLOAD 00001b32: PUSH1 0x20 00001b34: DUP2 00001b35: DUP4 00001b36: SUB 00001b37: SUB 00001b38: DUP2 00001b39: MSTORE 00001b3a: SWAP1 00001b3b: PUSH1 0x40 00001b3d: MSTORE 00001b3e: DUP1 00001b3f: MLOAD 00001b40: SWAP1 00001b41: PUSH1 0x20 00001b43: ADD 00001b44: KECCAK256 00001b45: PUSH1 0x40 00001b47: MLOAD 00001b48: PUSH1 0x20 00001b4a: ADD 00001b4b: PUSH2 0x1b6b 00001b4e: SWAP3 00001b4f: SWAP2 00001b50: SWAP1 00001b51: PUSH2 0x1901 00001b54: PUSH1 0xf0 00001b56: SHL 00001b57: DUP2 00001b58: MSTORE 00001b59: PUSH1 0x02 00001b5b: DUP2 00001b5c: ADD 00001b5d: SWAP3 00001b5e: SWAP1 00001b5f: SWAP3 00001b60: MSTORE 00001b61: PUSH1 0x22 00001b63: DUP3 00001b64: ADD 00001b65: MSTORE 00001b66: PUSH1 0x42 00001b68: ADD 00001b69: SWAP1 00001b6a: JUMP 00001b6b: JUMPDEST 00001b6c: PUSH1 0x40 00001b6e: MLOAD 00001b6f: PUSH1 0x20 00001b71: DUP2 00001b72: DUP4 00001b73: SUB 00001b74: SUB 00001b75: DUP2 00001b76: MSTORE 00001b77: SWAP1 00001b78: PUSH1 0x40 00001b7a: MSTORE 00001b7b: DUP1 00001b7c: MLOAD 00001b7d: SWAP1 00001b7e: PUSH1 0x20 00001b80: ADD 00001b81: KECCAK256 00001b82: SWAP1 00001b83: POP 00001b84: PUSH2 0x1b8e 00001b87: DUP8 00001b88: DUP3 00001b89: DUP6 00001b8a: PUSH2 0x2708 00001b8d: JUMP 00001b8e: JUMPDEST 00001b8f: PUSH2 0x1bda 00001b92: JUMPI 00001b93: PUSH1 0x40 00001b95: MLOAD 00001b96: PUSH3 0x461bcd 00001b9a: PUSH1 0xe5 00001b9c: SHL 00001b9d: DUP2 00001b9e: MSTORE 00001b9f: PUSH1 0x20 00001ba1: PUSH1 0x04 00001ba3: DUP3 00001ba4: ADD 00001ba5: MSTORE 00001ba6: PUSH1 0x19 00001ba8: PUSH1 0x24 00001baa: DUP3 00001bab: ADD 00001bac: MSTORE 00001bad: PUSH32 0x537061726b5661756c742f696e76616c69642d7065726d697400000000000000 00001bce: PUSH1 0x44 00001bd0: DUP3 00001bd1: ADD 00001bd2: MSTORE 00001bd3: PUSH1 0x64 00001bd5: ADD 00001bd6: PUSH2 0x0e15 00001bd9: JUMP 00001bda: JUMPDEST 00001bdb: PUSH1 0x01 00001bdd: PUSH1 0x01 00001bdf: PUSH1 0xa0 00001be1: SHL 00001be2: SUB 00001be3: DUP8 00001be4: DUP2 00001be5: AND 00001be6: PUSH0 00001be7: DUP2 00001be8: DUP2 00001be9: MSTORE 00001bea: PUSH1 0x0b 00001bec: PUSH1 0x20 00001bee: SWAP1 00001bef: DUP2 00001bf0: MSTORE 00001bf1: PUSH1 0x40 00001bf3: DUP1 00001bf4: DUP4 00001bf5: KECCAK256 00001bf6: SWAP5 00001bf7: DUP12 00001bf8: AND 00001bf9: DUP1 00001bfa: DUP5 00001bfb: MSTORE 00001bfc: SWAP5 00001bfd: DUP3 00001bfe: MSTORE 00001bff: SWAP2 00001c00: DUP3 00001c01: SWAP1 00001c02: KECCAK256 00001c03: DUP10 00001c04: SWAP1 00001c05: SSTORE 00001c06: SWAP1 00001c07: MLOAD 00001c08: DUP9 00001c09: DUP2 00001c0a: MSTORE 00001c0b: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00001c2c: SWAP2 00001c2d: ADD 00001c2e: PUSH1 0x40 00001c30: MLOAD 00001c31: DUP1 00001c32: SWAP2 00001c33: SUB 00001c34: SWAP1 00001c35: LOG3 00001c36: POP 00001c37: POP 00001c38: POP 00001c39: POP 00001c3a: POP 00001c3b: POP 00001c3c: POP 00001c3d: JUMP 00001c3e: JUMPDEST 00001c3f: PUSH0 00001c40: DUP2 00001c41: DUP2 00001c42: MSTORE 00001c43: PUSH0 00001c44: MLOAD 00001c45: PUSH1 0x20 00001c47: PUSH2 0x3881 00001c4a: PUSH0 00001c4b: CODECOPY 00001c4c: PUSH0 00001c4d: MLOAD 00001c4e: SWAP1 00001c4f: PUSH0 00001c50: MSTORE 00001c51: PUSH1 0x20 00001c53: DUP2 00001c54: SWAP1 00001c55: MSTORE 00001c56: PUSH1 0x40 00001c58: SWAP1 00001c59: SWAP2 00001c5a: KECCAK256 00001c5b: PUSH1 0x60 00001c5d: SWAP2 00001c5e: SWAP1 00001c5f: PUSH2 0x0ffd 00001c62: SWAP1 00001c63: PUSH2 0x2890 00001c66: JUMP 00001c67: JUMPDEST 00001c68: PUSH0 00001c69: PUSH1 0x01 00001c6b: PUSH1 0x01 00001c6d: PUSH1 0xa0 00001c6f: SHL 00001c70: SUB 00001c71: DUP4 00001c72: AND 00001c73: ISZERO 00001c74: DUP1 00001c75: ISZERO 00001c76: SWAP1 00001c77: PUSH2 0x1c89 00001c7a: JUMPI 00001c7b: POP 00001c7c: PUSH1 0x01 00001c7e: PUSH1 0x01 00001c80: PUSH1 0xa0 00001c82: SHL 00001c83: SUB 00001c84: DUP4 00001c85: AND 00001c86: ADDRESS 00001c87: EQ 00001c88: ISZERO 00001c89: JUMPDEST 00001c8a: PUSH2 0x1ca5 00001c8d: JUMPI 00001c8e: PUSH1 0x40 00001c90: MLOAD 00001c91: PUSH3 0x461bcd 00001c95: PUSH1 0xe5 00001c97: SHL 00001c98: DUP2 00001c99: MSTORE 00001c9a: PUSH1 0x04 00001c9c: ADD 00001c9d: PUSH2 0x0e15 00001ca0: SWAP1 00001ca1: PUSH2 0x35a9 00001ca4: JUMP 00001ca5: JUMPDEST 00001ca6: CALLER 00001ca7: PUSH0 00001ca8: SWAP1 00001ca9: DUP2 00001caa: MSTORE 00001cab: PUSH1 0x09 00001cad: PUSH1 0x20 00001caf: MSTORE 00001cb0: PUSH1 0x40 00001cb2: SWAP1 00001cb3: KECCAK256 00001cb4: SLOAD 00001cb5: DUP3 00001cb6: DUP2 00001cb7: LT 00001cb8: ISZERO 00001cb9: PUSH2 0x1cd4 00001cbc: JUMPI 00001cbd: PUSH1 0x40 00001cbf: MLOAD 00001cc0: PUSH3 0x461bcd 00001cc4: PUSH1 0xe5 00001cc6: SHL 00001cc7: DUP2 00001cc8: MSTORE 00001cc9: PUSH1 0x04 00001ccb: ADD 00001ccc: PUSH2 0x0e15 00001ccf: SWAP1 00001cd0: PUSH2 0x35e0 00001cd3: JUMP 00001cd4: JUMPDEST 00001cd5: CALLER 00001cd6: PUSH0 00001cd7: DUP2 00001cd8: DUP2 00001cd9: MSTORE 00001cda: PUSH1 0x09 00001cdc: PUSH1 0x20 00001cde: SWAP1 00001cdf: DUP2 00001ce0: MSTORE 00001ce1: PUSH1 0x40 00001ce3: DUP1 00001ce4: DUP4 00001ce5: KECCAK256 00001ce6: DUP8 00001ce7: DUP7 00001ce8: SUB 00001ce9: SWAP1 00001cea: SSTORE 00001ceb: PUSH1 0x01 00001ced: PUSH1 0x01 00001cef: PUSH1 0xa0 00001cf1: SHL 00001cf2: SUB 00001cf3: DUP9 00001cf4: AND 00001cf5: DUP1 00001cf6: DUP5 00001cf7: MSTORE 00001cf8: SWAP3 00001cf9: DUP2 00001cfa: SWAP1 00001cfb: KECCAK256 00001cfc: DUP1 00001cfd: SLOAD 00001cfe: DUP9 00001cff: ADD 00001d00: SWAP1 00001d01: SSTORE 00001d02: MLOAD 00001d03: DUP7 00001d04: DUP2 00001d05: MSTORE 00001d06: SWAP2 00001d07: SWAP3 00001d08: SWAP2 00001d09: PUSH0 00001d0a: MLOAD 00001d0b: PUSH1 0x20 00001d0d: PUSH2 0x38c1 00001d10: PUSH0 00001d11: CODECOPY 00001d12: PUSH0 00001d13: MLOAD 00001d14: SWAP1 00001d15: PUSH0 00001d16: MSTORE 00001d17: SWAP2 00001d18: ADD 00001d19: PUSH1 0x40 00001d1b: MLOAD 00001d1c: DUP1 00001d1d: SWAP2 00001d1e: SUB 00001d1f: SWAP1 00001d20: LOG3 00001d21: POP 00001d22: PUSH1 0x01 00001d24: SWAP4 00001d25: SWAP3 00001d26: POP 00001d27: POP 00001d28: POP 00001d29: JUMP 00001d2a: JUMPDEST 00001d2b: PUSH0 00001d2c: PUSH2 0x0c3e 00001d2f: PUSH0 00001d30: MLOAD 00001d31: PUSH1 0x20 00001d33: PUSH2 0x38a1 00001d36: PUSH0 00001d37: CODECOPY 00001d38: PUSH0 00001d39: MLOAD 00001d3a: SWAP1 00001d3b: PUSH0 00001d3c: MSTORE 00001d3d: SLOAD 00001d3e: PUSH1 0x01 00001d40: PUSH1 0x01 00001d42: PUSH1 0xa0 00001d44: SHL 00001d45: SUB 00001d46: AND 00001d47: SWAP1 00001d48: JUMP 00001d49: JUMPDEST 00001d4a: PUSH0 00001d4b: PUSH2 0x0c67 00001d4e: PUSH2 0x1d55 00001d51: PUSH2 0x10da 00001d54: JUMP 00001d55: JUMPDEST 00001d56: PUSH2 0x1861 00001d59: SWAP1 00001d5a: DUP5 00001d5b: PUSH2 0x3507 00001d5e: JUMP 00001d5f: JUMPDEST 00001d60: PUSH0 00001d61: PUSH2 0x1d80 00001d64: PUSH2 0x1d78 00001d67: PUSH8 0x6765c793fa10079d 00001d70: PUSH1 0x1b 00001d72: SHL 00001d73: DUP7 00001d74: PUSH2 0x3507 00001d77: JUMP 00001d78: JUMPDEST 00001d79: PUSH2 0x0e3e 00001d7c: PUSH2 0x18e2 00001d7f: JUMP 00001d80: JUMPDEST 00001d81: SWAP1 00001d82: POP 00001d83: PUSH2 0x0ffd 00001d86: DUP5 00001d87: DUP3 00001d88: DUP6 00001d89: DUP6 00001d8a: PUSH2 0x289c 00001d8d: JUMP 00001d8e: JUMPDEST 00001d8f: PUSH0 00001d90: PUSH8 0x6765c793fa10079d 00001d99: PUSH1 0x1b 00001d9b: SHL 00001d9c: PUSH2 0x1da3 00001d9f: PUSH2 0x18e2 00001da2: JUMP 00001da3: JUMPDEST 00001da4: PUSH2 0x1dad 00001da7: SWAP1 00001da8: DUP7 00001da9: PUSH2 0x3507 00001dac: JUMP 00001dad: JUMPDEST 00001dae: PUSH2 0x1db7 00001db1: SWAP2 00001db2: SWAP1 00001db3: PUSH2 0x3532 00001db6: JUMP 00001db7: JUMPDEST 00001db8: SWAP1 00001db9: POP 00001dba: PUSH2 0x0ffd 00001dbd: DUP2 00001dbe: DUP6 00001dbf: DUP6 00001dc0: DUP6 00001dc1: PUSH2 0x289c 00001dc4: JUMP 00001dc5: JUMPDEST 00001dc6: PUSH1 0x07 00001dc8: SLOAD 00001dc9: PUSH0 00001dca: SWAP1 00001dcb: PUSH2 0x1de0 00001dce: PUSH8 0x6765c793fa10079d 00001dd7: PUSH1 0x1b 00001dd9: SHL 00001dda: PUSH0 00001ddb: NOT 00001ddc: PUSH2 0x3532 00001ddf: JUMP 00001de0: JUMPDEST 00001de1: DUP2 00001de2: GT 00001de3: ISZERO 00001de4: PUSH2 0x1df0 00001de7: JUMPI 00001de8: POP 00001de9: PUSH0 00001dea: NOT 00001deb: SWAP3 00001dec: SWAP2 00001ded: POP 00001dee: POP 00001def: JUMP 00001df0: JUMPDEST 00001df1: PUSH0 00001df2: PUSH2 0x1df9 00001df5: PUSH2 0x0c32 00001df8: JUMP 00001df9: JUMPDEST 00001dfa: SWAP1 00001dfb: POP 00001dfc: DUP1 00001dfd: DUP3 00001dfe: GT 00001dff: ISZERO 00001e00: PUSH2 0x10d0 00001e03: JUMPI 00001e04: PUSH2 0x1e0b 00001e07: PUSH2 0x10da 00001e0a: JUMP 00001e0b: JUMPDEST 00001e0c: PUSH8 0x6765c793fa10079d 00001e15: PUSH1 0x1b 00001e17: SHL 00001e18: PUSH2 0x1e21 00001e1b: DUP4 00001e1c: DUP6 00001e1d: PUSH2 0x3658 00001e20: JUMP 00001e21: JUMPDEST 00001e22: PUSH2 0x1e2b 00001e25: SWAP2 00001e26: SWAP1 00001e27: PUSH2 0x3507 00001e2a: JUMP 00001e2b: JUMPDEST 00001e2c: PUSH2 0x10cb 00001e2f: SWAP2 00001e30: SWAP1 00001e31: PUSH2 0x3532 00001e34: JUMP 00001e35: JUMPDEST 00001e36: PUSH0 00001e37: PUSH2 0x1e3e 00001e3a: PUSH2 0x10da 00001e3d: JUMP 00001e3e: JUMPDEST 00001e3f: PUSH2 0x0d18 00001e42: PUSH8 0x6765c793fa10079d 00001e4b: PUSH1 0x1b 00001e4d: SHL 00001e4e: DUP5 00001e4f: PUSH2 0x3507 00001e52: JUMP 00001e53: JUMPDEST 00001e54: PUSH0 00001e55: DUP2 00001e56: DUP2 00001e57: MSTORE 00001e58: PUSH0 00001e59: MLOAD 00001e5a: PUSH1 0x20 00001e5c: PUSH2 0x3881 00001e5f: PUSH0 00001e60: CODECOPY 00001e61: PUSH0 00001e62: MLOAD 00001e63: SWAP1 00001e64: PUSH0 00001e65: MSTORE 00001e66: PUSH1 0x20 00001e68: DUP2 00001e69: SWAP1 00001e6a: MSTORE 00001e6b: PUSH1 0x40 00001e6d: DUP3 00001e6e: KECCAK256 00001e6f: PUSH2 0x0ffd 00001e72: SWAP1 00001e73: PUSH2 0x2a07 00001e76: JUMP 00001e77: JUMPDEST 00001e78: PUSH0 00001e79: DUP1 00001e7a: SLOAD 00001e7b: PUSH1 0x40 00001e7d: MLOAD 00001e7e: PUSH4 0x70a08231 00001e83: PUSH1 0xe0 00001e85: SHL 00001e86: DUP2 00001e87: MSTORE 00001e88: ADDRESS 00001e89: PUSH1 0x04 00001e8b: DUP3 00001e8c: ADD 00001e8d: MSTORE 00001e8e: DUP3 00001e8f: SWAP2 00001e90: PUSH1 0x01 00001e92: PUSH1 0x01 00001e94: PUSH1 0xa0 00001e96: SHL 00001e97: SUB 00001e98: AND 00001e99: SWAP1 00001e9a: PUSH4 0x70a08231 00001e9f: SWAP1 00001ea0: PUSH1 0x24 00001ea2: ADD 00001ea3: PUSH1 0x20 00001ea5: PUSH1 0x40 00001ea7: MLOAD 00001ea8: DUP1 00001ea9: DUP4 00001eaa: SUB 00001eab: DUP2 00001eac: DUP7 00001ead: GAS 00001eae: STATICCALL 00001eaf: ISZERO 00001eb0: DUP1 00001eb1: ISZERO 00001eb2: PUSH2 0x1ebd 00001eb5: JUMPI 00001eb6: RETURNDATASIZE 00001eb7: PUSH0 00001eb8: PUSH0 00001eb9: RETURNDATACOPY 00001eba: RETURNDATASIZE 00001ebb: PUSH0 00001ebc: REVERT 00001ebd: JUMPDEST 00001ebe: POP 00001ebf: POP 00001ec0: POP 00001ec1: POP 00001ec2: PUSH1 0x40 00001ec4: MLOAD 00001ec5: RETURNDATASIZE 00001ec6: PUSH1 0x1f 00001ec8: NOT 00001ec9: PUSH1 0x1f 00001ecb: DUP3 00001ecc: ADD 00001ecd: AND 00001ece: DUP3 00001ecf: ADD 00001ed0: DUP1 00001ed1: PUSH1 0x40 00001ed3: MSTORE 00001ed4: POP 00001ed5: DUP2 00001ed6: ADD 00001ed7: SWAP1 00001ed8: PUSH2 0x1ee1 00001edb: SWAP2 00001edc: SWAP1 00001edd: PUSH2 0x3551 00001ee0: JUMP 00001ee1: JUMPDEST 00001ee2: SWAP1 00001ee3: POP 00001ee4: PUSH0 00001ee5: PUSH2 0x1eed 00001ee8: DUP5 00001ee9: PUSH2 0x1024 00001eec: JUMP 00001eed: JUMPDEST 00001eee: SWAP1 00001eef: POP 00001ef0: DUP1 00001ef1: DUP3 00001ef2: GT 00001ef3: PUSH2 0x0ffd 00001ef6: JUMPI 00001ef7: DUP2 00001ef8: PUSH2 0x10d2 00001efb: JUMP 00001efc: JUMPDEST 00001efd: PUSH2 0x1f4a 00001f00: DUP8 00001f01: DUP8 00001f02: DUP8 00001f03: DUP8 00001f04: DUP7 00001f05: DUP7 00001f06: DUP10 00001f07: PUSH1 0x40 00001f09: MLOAD 00001f0a: PUSH1 0x20 00001f0c: ADD 00001f0d: PUSH2 0x1f36 00001f10: SWAP4 00001f11: SWAP3 00001f12: SWAP2 00001f13: SWAP1 00001f14: SWAP3 00001f15: DUP4 00001f16: MSTORE 00001f17: PUSH1 0x20 00001f19: DUP4 00001f1a: ADD 00001f1b: SWAP2 00001f1c: SWAP1 00001f1d: SWAP2 00001f1e: MSTORE 00001f1f: PUSH1 0xf8 00001f21: SHL 00001f22: PUSH1 0x01 00001f24: PUSH1 0x01 00001f26: PUSH1 0xf8 00001f28: SHL 00001f29: SUB 00001f2a: NOT 00001f2b: AND 00001f2c: PUSH1 0x40 00001f2e: DUP3 00001f2f: ADD 00001f30: MSTORE 00001f31: PUSH1 0x41 00001f33: ADD 00001f34: SWAP1 00001f35: JUMP 00001f36: JUMPDEST 00001f37: PUSH1 0x40 00001f39: MLOAD 00001f3a: PUSH1 0x20 00001f3c: DUP2 00001f3d: DUP4 00001f3e: SUB 00001f3f: SUB 00001f40: DUP2 00001f41: MSTORE 00001f42: SWAP1 00001f43: PUSH1 0x40 00001f45: MSTORE 00001f46: PUSH2 0x1a02 00001f49: JUMP 00001f4a: JUMPDEST 00001f4b: POP 00001f4c: POP 00001f4d: POP 00001f4e: POP 00001f4f: POP 00001f50: POP 00001f51: POP 00001f52: JUMP 00001f53: JUMPDEST 00001f54: PUSH2 0x1f5c 00001f57: DUP3 00001f58: PUSH2 0x1004 00001f5b: JUMP 00001f5c: JUMPDEST 00001f5d: PUSH2 0x1f65 00001f60: DUP2 00001f61: PUSH2 0x2092 00001f64: JUMP 00001f65: JUMPDEST 00001f66: PUSH2 0x1061 00001f69: DUP4 00001f6a: DUP4 00001f6b: PUSH2 0x2192 00001f6e: JUMP 00001f6f: JUMPDEST 00001f70: PUSH0 00001f71: PUSH0 00001f72: PUSH2 0x1f79 00001f75: PUSH2 0x10da 00001f78: JUMP 00001f79: JUMPDEST 00001f7a: PUSH0 00001f7b: SLOAD 00001f7c: PUSH1 0x40 00001f7e: MLOAD 00001f7f: PUSH4 0x70a08231 00001f84: PUSH1 0xe0 00001f86: SHL 00001f87: DUP2 00001f88: MSTORE 00001f89: ADDRESS 00001f8a: PUSH1 0x04 00001f8c: DUP3 00001f8d: ADD 00001f8e: MSTORE 00001f8f: PUSH8 0x6765c793fa10079d 00001f98: PUSH1 0x1b 00001f9a: SHL 00001f9b: SWAP2 00001f9c: PUSH1 0x01 00001f9e: PUSH1 0x01 00001fa0: PUSH1 0xa0 00001fa2: SHL 00001fa3: SUB 00001fa4: AND 00001fa5: SWAP1 00001fa6: PUSH4 0x70a08231 00001fab: SWAP1 00001fac: PUSH1 0x24 00001fae: ADD 00001faf: PUSH1 0x20 00001fb1: PUSH1 0x40 00001fb3: MLOAD 00001fb4: DUP1 00001fb5: DUP4 00001fb6: SUB 00001fb7: DUP2 00001fb8: DUP7 00001fb9: GAS 00001fba: STATICCALL 00001fbb: ISZERO 00001fbc: DUP1 00001fbd: ISZERO 00001fbe: PUSH2 0x1fc9 00001fc1: JUMPI 00001fc2: RETURNDATASIZE 00001fc3: PUSH0 00001fc4: PUSH0 00001fc5: RETURNDATACOPY 00001fc6: RETURNDATASIZE 00001fc7: PUSH0 00001fc8: REVERT 00001fc9: JUMPDEST 00001fca: POP 00001fcb: POP 00001fcc: POP 00001fcd: POP 00001fce: PUSH1 0x40 00001fd0: MLOAD 00001fd1: RETURNDATASIZE 00001fd2: PUSH1 0x1f 00001fd4: NOT 00001fd5: PUSH1 0x1f 00001fd7: DUP3 00001fd8: ADD 00001fd9: AND 00001fda: DUP3 00001fdb: ADD 00001fdc: DUP1 00001fdd: PUSH1 0x40 00001fdf: MSTORE 00001fe0: POP 00001fe1: DUP2 00001fe2: ADD 00001fe3: SWAP1 00001fe4: PUSH2 0x1fed 00001fe7: SWAP2 00001fe8: SWAP1 00001fe9: PUSH2 0x3551 00001fec: JUMP 00001fed: JUMPDEST 00001fee: PUSH2 0x1ff7 00001ff1: SWAP2 00001ff2: SWAP1 00001ff3: PUSH2 0x3507 00001ff6: JUMP 00001ff7: JUMPDEST 00001ff8: PUSH2 0x2001 00001ffb: SWAP2 00001ffc: SWAP1 00001ffd: PUSH2 0x3532 00002000: JUMP 00002001: JUMPDEST 00002002: PUSH1 0x01 00002004: PUSH1 0x01 00002006: PUSH1 0xa0 00002008: SHL 00002009: SUB 0000200a: DUP5 0000200b: AND 0000200c: PUSH0 0000200d: SWAP1 0000200e: DUP2 0000200f: MSTORE 00002010: PUSH1 0x09 00002012: PUSH1 0x20 00002014: MSTORE 00002015: PUSH1 0x40 00002017: SWAP1 00002018: KECCAK256 00002019: SLOAD 0000201a: SWAP1 0000201b: SWAP2 0000201c: POP 0000201d: DUP1 0000201e: DUP3 0000201f: GT 00002020: PUSH2 0x0ffd 00002023: JUMPI 00002024: DUP2 00002025: PUSH2 0x10d2 00002028: JUMP 00002029: JUMPDEST 0000202a: PUSH0 0000202b: PUSH2 0x0c67 0000202e: DUP3 0000202f: PUSH2 0x1e35 00002032: JUMP 00002033: JUMPDEST 00002034: PUSH0 00002035: PUSH1 0x01 00002037: PUSH1 0x01 00002039: PUSH1 0xe0 0000203b: SHL 0000203c: SUB 0000203d: NOT 0000203e: DUP3 0000203f: AND 00002040: PUSH4 0x7965db0b 00002045: PUSH1 0xe0 00002047: SHL 00002048: EQ 00002049: DUP1 0000204a: PUSH2 0x0c67 0000204d: JUMPI 0000204e: POP 0000204f: PUSH4 0x01ffc9a7 00002054: PUSH1 0xe0 00002056: SHL 00002057: PUSH1 0x01 00002059: PUSH1 0x01 0000205b: PUSH1 0xe0 0000205d: SHL 0000205e: SUB 0000205f: NOT 00002060: DUP4 00002061: AND 00002062: EQ 00002063: PUSH2 0x0c67 00002066: JUMP 00002067: JUMPDEST 00002068: PUSH0 00002069: DUP3 0000206a: PUSH0 0000206b: SUB 0000206c: PUSH2 0x2075 0000206f: JUMPI 00002070: PUSH0 00002071: PUSH2 0x0ffd 00002074: JUMP 00002075: JUMPDEST 00002076: DUP2 00002077: PUSH1 0x01 00002079: DUP5 0000207a: SUB 0000207b: DUP2 0000207c: PUSH2 0x2087 0000207f: JUMPI 00002080: PUSH2 0x2087 00002083: PUSH2 0x351e 00002086: JUMP 00002087: JUMPDEST 00002088: DIV 00002089: PUSH1 0x01 0000208b: ADD 0000208c: SWAP4 0000208d: SWAP3 0000208e: POP 0000208f: POP 00002090: POP 00002091: JUMP 00002092: JUMPDEST 00002093: PUSH2 0x209c 00002096: DUP2 00002097: CALLER 00002098: PUSH2 0x2a10 0000209b: JUMP 0000209c: JUMPDEST 0000209d: POP 0000209e: JUMP 0000209f: JUMPDEST 000020a0: PUSH0 000020a1: PUSH0 000020a2: MLOAD 000020a3: PUSH1 0x20 000020a5: PUSH2 0x3881 000020a8: PUSH0 000020a9: CODECOPY 000020aa: PUSH0 000020ab: MLOAD 000020ac: SWAP1 000020ad: PUSH0 000020ae: MSTORE 000020af: DUP2 000020b0: PUSH2 0x20b9 000020b3: DUP6 000020b4: DUP6 000020b5: PUSH2 0x2a49 000020b8: JUMP 000020b9: JUMPDEST 000020ba: SWAP1 000020bb: POP 000020bc: DUP1 000020bd: ISZERO 000020be: PUSH2 0x10d2 000020c1: JUMPI 000020c2: PUSH0 000020c3: DUP6 000020c4: DUP2 000020c5: MSTORE 000020c6: PUSH1 0x20 000020c8: DUP4 000020c9: SWAP1 000020ca: MSTORE 000020cb: PUSH1 0x40 000020cd: SWAP1 000020ce: KECCAK256 000020cf: PUSH2 0x20d8 000020d2: SWAP1 000020d3: DUP6 000020d4: PUSH2 0x2aea 000020d7: JUMP 000020d8: JUMPDEST 000020d9: POP 000020da: SWAP5 000020db: SWAP4 000020dc: POP 000020dd: POP 000020de: POP 000020df: POP 000020e0: JUMP 000020e1: JUMPDEST 000020e2: PUSH0 000020e3: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 00002104: PUSH1 0x01 00002106: PUSH1 0x40 00002108: MLOAD 00002109: PUSH2 0x2112 0000210c: SWAP2 0000210d: SWAP1 0000210e: PUSH2 0x378b 00002111: JUMP 00002112: JUMPDEST 00002113: PUSH1 0x40 00002115: DUP1 00002116: MLOAD 00002117: SWAP2 00002118: DUP3 00002119: SWAP1 0000211a: SUB 0000211b: DUP3 0000211c: KECCAK256 0000211d: DUP3 0000211e: DUP3 0000211f: ADD 00002120: DUP3 00002121: MSTORE 00002122: PUSH1 0x01 00002124: DUP4 00002125: MSTORE 00002126: PUSH1 0x31 00002128: PUSH1 0xf8 0000212a: SHL 0000212b: PUSH1 0x20 0000212d: SWAP4 0000212e: DUP5 0000212f: ADD 00002130: MSTORE 00002131: DUP2 00002132: MLOAD 00002133: SWAP3 00002134: DUP4 00002135: ADD 00002136: SWAP4 00002137: SWAP1 00002138: SWAP4 00002139: MSTORE 0000213a: DUP2 0000213b: ADD 0000213c: SWAP2 0000213d: SWAP1 0000213e: SWAP2 0000213f: MSTORE 00002140: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 00002161: PUSH1 0x60 00002163: DUP3 00002164: ADD 00002165: MSTORE 00002166: PUSH1 0x80 00002168: DUP2 00002169: ADD 0000216a: DUP4 0000216b: SWAP1 0000216c: MSTORE 0000216d: ADDRESS 0000216e: PUSH1 0xa0 00002170: DUP3 00002171: ADD 00002172: MSTORE 00002173: PUSH1 0xc0 00002175: ADD 00002176: PUSH1 0x40 00002178: MLOAD 00002179: PUSH1 0x20 0000217b: DUP2 0000217c: DUP4 0000217d: SUB 0000217e: SUB 0000217f: DUP2 00002180: MSTORE 00002181: SWAP1 00002182: PUSH1 0x40 00002184: MSTORE 00002185: DUP1 00002186: MLOAD 00002187: SWAP1 00002188: PUSH1 0x20 0000218a: ADD 0000218b: KECCAK256 0000218c: SWAP1 0000218d: POP 0000218e: SWAP2 0000218f: SWAP1 00002190: POP 00002191: JUMP 00002192: JUMPDEST 00002193: PUSH0 00002194: PUSH0 00002195: MLOAD 00002196: PUSH1 0x20 00002198: PUSH2 0x3881 0000219b: PUSH0 0000219c: CODECOPY 0000219d: PUSH0 0000219e: MLOAD 0000219f: SWAP1 000021a0: PUSH0 000021a1: MSTORE 000021a2: DUP2 000021a3: PUSH2 0x21ac 000021a6: DUP6 000021a7: DUP6 000021a8: PUSH2 0x2afe 000021ab: JUMP 000021ac: JUMPDEST 000021ad: SWAP1 000021ae: POP 000021af: DUP1 000021b0: ISZERO 000021b1: PUSH2 0x10d2 000021b4: JUMPI 000021b5: PUSH0 000021b6: DUP6 000021b7: DUP2 000021b8: MSTORE 000021b9: PUSH1 0x20 000021bb: DUP4 000021bc: SWAP1 000021bd: MSTORE 000021be: PUSH1 0x40 000021c0: SWAP1 000021c1: KECCAK256 000021c2: PUSH2 0x20d8 000021c5: SWAP1 000021c6: DUP6 000021c7: PUSH2 0x2b77 000021ca: JUMP 000021cb: JUMPDEST 000021cc: PUSH0 000021cd: DUP3 000021ce: DUP1 000021cf: ISZERO 000021d0: PUSH2 0x2290 000021d3: JUMPI 000021d4: PUSH1 0x01 000021d6: DUP4 000021d7: AND 000021d8: DUP1 000021d9: ISZERO 000021da: PUSH2 0x21e5 000021dd: JUMPI 000021de: DUP5 000021df: SWAP3 000021e0: POP 000021e1: PUSH2 0x21f4 000021e4: JUMP 000021e5: JUMPDEST 000021e6: PUSH8 0x6765c793fa10079d 000021ef: PUSH1 0x1b 000021f1: SHL 000021f2: SWAP3 000021f3: POP 000021f4: JUMPDEST 000021f5: POP 000021f6: PUSH1 0x02 000021f8: SWAP1 000021f9: SWAP3 000021fa: DIV 000021fb: SWAP2 000021fc: PUSH12 0x019d971e4fe8401e74000000 00002209: JUMPDEST 0000220a: DUP4 0000220b: ISZERO 0000220c: PUSH2 0x228a 0000220f: JUMPI 00002210: DUP5 00002211: DUP6 00002212: MUL 00002213: DUP6 00002214: DUP7 00002215: DUP3 00002216: DIV 00002217: EQ 00002218: PUSH2 0x221f 0000221b: JUMPI 0000221c: PUSH0 0000221d: PUSH0 0000221e: REVERT 0000221f: JUMPDEST 00002220: DUP2 00002221: DUP2 00002222: ADD 00002223: DUP2 00002224: DUP2 00002225: LT 00002226: ISZERO 00002227: PUSH2 0x222e 0000222a: JUMPI 0000222b: PUSH0 0000222c: PUSH0 0000222d: REVERT 0000222e: JUMPDEST 0000222f: PUSH8 0x6765c793fa10079d 00002238: PUSH1 0x1b 0000223a: SHL 0000223b: SWAP1 0000223c: DIV 0000223d: SWAP6 0000223e: POP 0000223f: POP 00002240: PUSH1 0x01 00002242: DUP5 00002243: AND 00002244: ISZERO 00002245: PUSH2 0x227f 00002248: JUMPI 00002249: DUP5 0000224a: DUP4 0000224b: MUL 0000224c: DUP4 0000224d: DUP7 0000224e: DUP3 0000224f: DIV 00002250: EQ 00002251: ISZERO 00002252: DUP7 00002253: ISZERO 00002254: ISZERO 00002255: AND 00002256: ISZERO 00002257: PUSH2 0x225e 0000225a: JUMPI 0000225b: PUSH0 0000225c: PUSH0 0000225d: REVERT 0000225e: JUMPDEST 0000225f: DUP2 00002260: DUP2 00002261: ADD 00002262: DUP2 00002263: DUP2 00002264: LT 00002265: ISZERO 00002266: PUSH2 0x226d 00002269: JUMPI 0000226a: PUSH0 0000226b: PUSH0 0000226c: REVERT 0000226d: JUMPDEST 0000226e: PUSH8 0x6765c793fa10079d 00002277: PUSH1 0x1b 00002279: SHL 0000227a: SWAP1 0000227b: DIV 0000227c: SWAP4 0000227d: POP 0000227e: POP 0000227f: JUMPDEST 00002280: PUSH1 0x02 00002282: DUP5 00002283: DIV 00002284: SWAP4 00002285: POP 00002286: PUSH2 0x2209 00002289: JUMP 0000228a: JUMPDEST 0000228b: POP 0000228c: PUSH2 0x22b0 0000228f: JUMP 00002290: JUMPDEST 00002291: DUP3 00002292: DUP1 00002293: ISZERO 00002294: PUSH2 0x229f 00002297: JUMPI 00002298: PUSH0 00002299: SWAP3 0000229a: POP 0000229b: PUSH2 0x22ae 0000229e: JUMP 0000229f: JUMPDEST 000022a0: PUSH8 0x6765c793fa10079d 000022a9: PUSH1 0x1b 000022ab: SHL 000022ac: SWAP3 000022ad: POP 000022ae: JUMPDEST 000022af: POP 000022b0: JUMPDEST 000022b1: POP 000022b2: SWAP3 000022b3: SWAP2 000022b4: POP 000022b5: POP 000022b6: JUMP 000022b7: JUMPDEST 000022b8: ADDRESS 000022b9: PUSH1 0x01 000022bb: PUSH1 0x01 000022bd: PUSH1 0xa0 000022bf: SHL 000022c0: SUB 000022c1: PUSH32 0x0000000000000000000000001b992302652a92611dcd5090d1cb388c6377f455 000022e2: AND 000022e3: EQ 000022e4: DUP1 000022e5: PUSH2 0x233d 000022e8: JUMPI 000022e9: POP 000022ea: PUSH32 0x0000000000000000000000001b992302652a92611dcd5090d1cb388c6377f455 0000230b: PUSH1 0x01 0000230d: PUSH1 0x01 0000230f: PUSH1 0xa0 00002311: SHL 00002312: SUB 00002313: AND 00002314: PUSH2 0x2331 00002317: PUSH0 00002318: MLOAD 00002319: PUSH1 0x20 0000231b: PUSH2 0x38a1 0000231e: PUSH0 0000231f: CODECOPY 00002320: PUSH0 00002321: MLOAD 00002322: SWAP1 00002323: PUSH0 00002324: MSTORE 00002325: SLOAD 00002326: PUSH1 0x01 00002328: PUSH1 0x01 0000232a: PUSH1 0xa0 0000232c: SHL 0000232d: SUB 0000232e: AND 0000232f: SWAP1 00002330: JUMP 00002331: JUMPDEST 00002332: PUSH1 0x01 00002334: PUSH1 0x01 00002336: PUSH1 0xa0 00002338: SHL 00002339: SUB 0000233a: AND 0000233b: EQ 0000233c: ISZERO 0000233d: JUMPDEST 0000233e: ISZERO 0000233f: PUSH2 0x235b 00002342: JUMPI 00002343: PUSH1 0x40 00002345: MLOAD 00002346: PUSH4 0x703e46dd 0000234b: PUSH1 0xe1 0000234d: SHL 0000234e: DUP2 0000234f: MSTORE 00002350: PUSH1 0x04 00002352: ADD 00002353: PUSH1 0x40 00002355: MLOAD 00002356: DUP1 00002357: SWAP2 00002358: SUB 00002359: SWAP1 0000235a: REVERT 0000235b: JUMPDEST 0000235c: JUMP 0000235d: JUMPDEST 0000235e: PUSH0 0000235f: PUSH2 0x120f 00002362: DUP2 00002363: PUSH2 0x2092 00002366: JUMP 00002367: JUMPDEST 00002368: DUP2 00002369: PUSH1 0x01 0000236b: PUSH1 0x01 0000236d: PUSH1 0xa0 0000236f: SHL 00002370: SUB 00002371: AND 00002372: PUSH4 0x52d1902d 00002377: PUSH1 0x40 00002379: MLOAD 0000237a: DUP2 0000237b: PUSH4 0xffffffff 00002380: AND 00002381: PUSH1 0xe0 00002383: SHL 00002384: DUP2 00002385: MSTORE 00002386: PUSH1 0x04 00002388: ADD 00002389: PUSH1 0x20 0000238b: PUSH1 0x40 0000238d: MLOAD 0000238e: DUP1 0000238f: DUP4 00002390: SUB 00002391: DUP2 00002392: DUP7 00002393: GAS 00002394: STATICCALL 00002395: SWAP3 00002396: POP 00002397: POP 00002398: POP 00002399: DUP1 0000239a: ISZERO 0000239b: PUSH2 0x23c1 0000239e: JUMPI 0000239f: POP 000023a0: PUSH1 0x40 000023a2: DUP1 000023a3: MLOAD 000023a4: PUSH1 0x1f 000023a6: RETURNDATASIZE 000023a7: SWAP1 000023a8: DUP2 000023a9: ADD 000023aa: PUSH1 0x1f 000023ac: NOT 000023ad: AND 000023ae: DUP3 000023af: ADD 000023b0: SWAP1 000023b1: SWAP3 000023b2: MSTORE 000023b3: PUSH2 0x23be 000023b6: SWAP2 000023b7: DUP2 000023b8: ADD 000023b9: SWAP1 000023ba: PUSH2 0x3551 000023bd: JUMP 000023be: JUMPDEST 000023bf: PUSH1 0x01 000023c1: JUMPDEST 000023c2: PUSH2 0x23e9 000023c5: JUMPI 000023c6: PUSH1 0x40 000023c8: MLOAD 000023c9: PUSH4 0x4c9c8ce3 000023ce: PUSH1 0xe0 000023d0: SHL 000023d1: DUP2 000023d2: MSTORE 000023d3: PUSH1 0x01 000023d5: PUSH1 0x01 000023d7: PUSH1 0xa0 000023d9: SHL 000023da: SUB 000023db: DUP4 000023dc: AND 000023dd: PUSH1 0x04 000023df: DUP3 000023e0: ADD 000023e1: MSTORE 000023e2: PUSH1 0x24 000023e4: ADD 000023e5: PUSH2 0x0e15 000023e8: JUMP 000023e9: JUMPDEST 000023ea: PUSH0 000023eb: MLOAD 000023ec: PUSH1 0x20 000023ee: PUSH2 0x38a1 000023f1: PUSH0 000023f2: CODECOPY 000023f3: PUSH0 000023f4: MLOAD 000023f5: SWAP1 000023f6: PUSH0 000023f7: MSTORE 000023f8: DUP2 000023f9: EQ 000023fa: PUSH2 0x2419 000023fd: JUMPI 000023fe: PUSH1 0x40 00002400: MLOAD 00002401: PUSH4 0x2a875269 00002406: PUSH1 0xe2 00002408: SHL 00002409: DUP2 0000240a: MSTORE 0000240b: PUSH1 0x04 0000240d: DUP2 0000240e: ADD 0000240f: DUP3 00002410: SWAP1 00002411: MSTORE 00002412: PUSH1 0x24 00002414: ADD 00002415: PUSH2 0x0e15 00002418: JUMP 00002419: JUMPDEST 0000241a: PUSH2 0x10a4 0000241d: DUP4 0000241e: DUP4 0000241f: PUSH2 0x2b8b 00002422: JUMP 00002423: JUMPDEST 00002424: PUSH0 00002425: SLOAD 00002426: PUSH1 0x40 00002428: MLOAD 00002429: PUSH4 0x70a08231 0000242e: PUSH1 0xe0 00002430: SHL 00002431: DUP2 00002432: MSTORE 00002433: ADDRESS 00002434: PUSH1 0x04 00002436: DUP3 00002437: ADD 00002438: MSTORE 00002439: PUSH1 0x01 0000243b: PUSH1 0x01 0000243d: PUSH1 0xa0 0000243f: SHL 00002440: SUB 00002441: SWAP1 00002442: SWAP2 00002443: AND 00002444: SWAP1 00002445: PUSH4 0x70a08231 0000244a: SWAP1 0000244b: PUSH1 0x24 0000244d: ADD 0000244e: PUSH1 0x20 00002450: PUSH1 0x40 00002452: MLOAD 00002453: DUP1 00002454: DUP4 00002455: SUB 00002456: DUP2 00002457: DUP7 00002458: GAS 00002459: STATICCALL 0000245a: ISZERO 0000245b: DUP1 0000245c: ISZERO 0000245d: PUSH2 0x2468 00002460: JUMPI 00002461: RETURNDATASIZE 00002462: PUSH0 00002463: PUSH0 00002464: RETURNDATACOPY 00002465: RETURNDATASIZE 00002466: PUSH0 00002467: REVERT 00002468: JUMPDEST 00002469: POP 0000246a: POP 0000246b: POP 0000246c: POP 0000246d: PUSH1 0x40 0000246f: MLOAD 00002470: RETURNDATASIZE 00002471: PUSH1 0x1f 00002473: NOT 00002474: PUSH1 0x1f 00002476: DUP3 00002477: ADD 00002478: AND 00002479: DUP3 0000247a: ADD 0000247b: DUP1 0000247c: PUSH1 0x40 0000247e: MSTORE 0000247f: POP 00002480: DUP2 00002481: ADD 00002482: SWAP1 00002483: PUSH2 0x248c 00002486: SWAP2 00002487: SWAP1 00002488: PUSH2 0x3551 0000248b: JUMP 0000248c: JUMPDEST 0000248d: DUP2 0000248e: GT 0000248f: ISZERO 00002490: PUSH2 0x24ab 00002493: JUMPI 00002494: PUSH1 0x40 00002496: MLOAD 00002497: PUSH3 0x461bcd 0000249b: PUSH1 0xe5 0000249d: SHL 0000249e: DUP2 0000249f: MSTORE 000024a0: PUSH1 0x04 000024a2: ADD 000024a3: PUSH2 0x0e15 000024a6: SWAP1 000024a7: PUSH2 0x3568 000024aa: JUMP 000024ab: JUMPDEST 000024ac: PUSH0 000024ad: SLOAD 000024ae: PUSH2 0x120f 000024b1: SWAP1 000024b2: PUSH1 0x01 000024b4: PUSH1 0x01 000024b6: PUSH1 0xa0 000024b8: SHL 000024b9: SUB 000024ba: AND 000024bb: DUP4 000024bc: DUP4 000024bd: PUSH2 0x2be0 000024c0: JUMP 000024c1: JUMPDEST 000024c2: ADDRESS 000024c3: PUSH1 0x01 000024c5: PUSH1 0x01 000024c7: PUSH1 0xa0 000024c9: SHL 000024ca: SUB 000024cb: PUSH32 0x0000000000000000000000001b992302652a92611dcd5090d1cb388c6377f455 000024ec: AND 000024ed: EQ 000024ee: PUSH2 0x235b 000024f1: JUMPI 000024f2: PUSH1 0x40 000024f4: MLOAD 000024f5: PUSH4 0x703e46dd 000024fa: PUSH1 0xe1 000024fc: SHL 000024fd: DUP2 000024fe: MSTORE 000024ff: PUSH1 0x04 00002501: ADD 00002502: PUSH1 0x40 00002504: MLOAD 00002505: DUP1 00002506: SWAP2 00002507: SUB 00002508: SWAP1 00002509: REVERT 0000250a: JUMPDEST 0000250b: PUSH0 0000250c: DUP1 0000250d: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 0000252e: PUSH2 0x0c67 00002531: JUMP 00002532: JUMPDEST 00002533: PUSH1 0x01 00002535: PUSH1 0x01 00002537: PUSH1 0xa0 00002539: SHL 0000253a: SUB 0000253b: DUP2 0000253c: AND 0000253d: ISZERO 0000253e: DUP1 0000253f: ISZERO 00002540: SWAP1 00002541: PUSH2 0x2553 00002544: JUMPI 00002545: POP 00002546: PUSH1 0x01 00002548: PUSH1 0x01 0000254a: PUSH1 0xa0 0000254c: SHL 0000254d: SUB 0000254e: DUP2 0000254f: AND 00002550: ADDRESS 00002551: EQ 00002552: ISZERO 00002553: JUMPDEST 00002554: PUSH2 0x256f 00002557: JUMPI 00002558: PUSH1 0x40 0000255a: MLOAD 0000255b: PUSH3 0x461bcd 0000255f: PUSH1 0xe5 00002561: SHL 00002562: DUP2 00002563: MSTORE 00002564: PUSH1 0x04 00002566: ADD 00002567: PUSH2 0x0e15 0000256a: SWAP1 0000256b: PUSH2 0x35a9 0000256e: JUMP 0000256f: JUMPDEST 00002570: PUSH2 0x2586 00002573: PUSH0 00002574: MLOAD 00002575: PUSH1 0x20 00002577: PUSH2 0x3901 0000257a: PUSH0 0000257b: CODECOPY 0000257c: PUSH0 0000257d: MLOAD 0000257e: SWAP1 0000257f: PUSH0 00002580: MSTORE 00002581: CALLER 00002582: PUSH2 0x177f 00002585: JUMP 00002586: JUMPDEST 00002587: ISZERO 00002588: DUP1 00002589: ISZERO 0000258a: PUSH2 0x25a7 0000258d: JUMPI 0000258e: POP 0000258f: PUSH2 0x25a5 00002592: PUSH0 00002593: MLOAD 00002594: PUSH1 0x20 00002596: PUSH2 0x3901 00002599: PUSH0 0000259a: CODECOPY 0000259b: PUSH0 0000259c: MLOAD 0000259d: SWAP1 0000259e: PUSH0 0000259f: MSTORE 000025a0: DUP3 000025a1: PUSH2 0x177f 000025a4: JUMP 000025a5: JUMPDEST 000025a6: ISZERO 000025a7: JUMPDEST 000025a8: PUSH2 0x25f3 000025ab: JUMPI 000025ac: PUSH1 0x40 000025ae: MLOAD 000025af: PUSH3 0x461bcd 000025b3: PUSH1 0xe5 000025b5: SHL 000025b6: DUP2 000025b7: MSTORE 000025b8: PUSH1 0x20 000025ba: PUSH1 0x04 000025bc: DUP3 000025bd: ADD 000025be: MSTORE 000025bf: PUSH1 0x1f 000025c1: PUSH1 0x24 000025c3: DUP3 000025c4: ADD 000025c5: MSTORE 000025c6: PUSH32 0x537061726b5661756c742f74616b65722d63616e6e6f742d6465706f73697400 000025e7: PUSH1 0x44 000025e9: DUP3 000025ea: ADD 000025eb: MSTORE 000025ec: PUSH1 0x64 000025ee: ADD 000025ef: PUSH2 0x0e15 000025f2: JUMP 000025f3: JUMPDEST 000025f4: PUSH1 0x07 000025f6: SLOAD 000025f7: DUP4 000025f8: PUSH2 0x25ff 000025fb: PUSH2 0x0c32 000025fe: JUMP 000025ff: JUMPDEST 00002600: PUSH2 0x2609 00002603: SWAP2 00002604: SWAP1 00002605: PUSH2 0x37fc 00002608: JUMP 00002609: JUMPDEST 0000260a: GT 0000260b: ISZERO 0000260c: PUSH2 0x2657 0000260f: JUMPI 00002610: PUSH1 0x40 00002612: MLOAD 00002613: PUSH3 0x461bcd 00002617: PUSH1 0xe5 00002619: SHL 0000261a: DUP2 0000261b: MSTORE 0000261c: PUSH1 0x20 0000261e: PUSH1 0x04 00002620: DUP3 00002621: ADD 00002622: MSTORE 00002623: PUSH1 0x1f 00002625: PUSH1 0x24 00002627: DUP3 00002628: ADD 00002629: MSTORE 0000262a: PUSH32 0x537061726b5661756c742f6465706f7369742d6361702d657863656564656400 0000264b: PUSH1 0x44 0000264d: DUP3 0000264e: ADD 0000264f: MSTORE 00002650: PUSH1 0x64 00002652: ADD 00002653: PUSH2 0x0e15 00002656: JUMP 00002657: JUMPDEST 00002658: PUSH2 0x2661 0000265b: CALLER 0000265c: DUP5 0000265d: PUSH2 0x2c3f 00002660: JUMP 00002661: JUMPDEST 00002662: DUP2 00002663: PUSH1 0x08 00002665: SLOAD 00002666: PUSH2 0x266f 00002669: SWAP2 0000266a: SWAP1 0000266b: PUSH2 0x37fc 0000266e: JUMP 0000266f: JUMPDEST 00002670: PUSH1 0x08 00002672: SSTORE 00002673: PUSH1 0x01 00002675: PUSH1 0x01 00002677: PUSH1 0xa0 00002679: SHL 0000267a: SUB 0000267b: DUP2 0000267c: AND 0000267d: PUSH0 0000267e: DUP2 0000267f: DUP2 00002680: MSTORE 00002681: PUSH1 0x09 00002683: PUSH1 0x20 00002685: SWAP1 00002686: DUP2 00002687: MSTORE 00002688: PUSH1 0x40 0000268a: SWAP2 0000268b: DUP3 0000268c: SWAP1 0000268d: KECCAK256 0000268e: DUP1 0000268f: SLOAD 00002690: DUP7 00002691: ADD 00002692: SWAP1 00002693: SSTORE 00002694: DUP2 00002695: MLOAD 00002696: DUP7 00002697: DUP2 00002698: MSTORE 00002699: SWAP1 0000269a: DUP2 0000269b: ADD 0000269c: DUP6 0000269d: SWAP1 0000269e: MSTORE 0000269f: CALLER 000026a0: SWAP2 000026a1: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 000026c2: SWAP2 000026c3: ADD 000026c4: PUSH1 0x40 000026c6: MLOAD 000026c7: DUP1 000026c8: SWAP2 000026c9: SUB 000026ca: SWAP1 000026cb: LOG3 000026cc: PUSH1 0x40 000026ce: MLOAD 000026cf: DUP3 000026d0: DUP2 000026d1: MSTORE 000026d2: PUSH1 0x01 000026d4: PUSH1 0x01 000026d6: PUSH1 0xa0 000026d8: SHL 000026d9: SUB 000026da: DUP3 000026db: AND 000026dc: SWAP1 000026dd: PUSH0 000026de: SWAP1 000026df: PUSH0 000026e0: MLOAD 000026e1: PUSH1 0x20 000026e3: PUSH2 0x38c1 000026e6: PUSH0 000026e7: CODECOPY 000026e8: PUSH0 000026e9: MLOAD 000026ea: SWAP1 000026eb: PUSH0 000026ec: MSTORE 000026ed: SWAP1 000026ee: PUSH1 0x20 000026f0: ADD 000026f1: PUSH1 0x40 000026f3: MLOAD 000026f4: DUP1 000026f5: SWAP2 000026f6: SUB 000026f7: SWAP1 000026f8: LOG3 000026f9: POP 000026fa: POP 000026fb: POP 000026fc: JUMP 000026fd: JUMPDEST 000026fe: PUSH0 000026ff: PUSH2 0x0ffd 00002702: DUP4 00002703: DUP4 00002704: PUSH2 0x2c56 00002707: JUMP 00002708: JUMPDEST 00002709: PUSH0 0000270a: DUP2 0000270b: MLOAD 0000270c: PUSH1 0x41 0000270e: SUB 0000270f: PUSH2 0x27a1 00002712: JUMPI 00002713: PUSH1 0x20 00002715: DUP3 00002716: DUP2 00002717: ADD 00002718: MLOAD 00002719: PUSH1 0x40 0000271b: DUP1 0000271c: DUP6 0000271d: ADD 0000271e: MLOAD 0000271f: PUSH1 0x60 00002721: DUP1 00002722: DUP8 00002723: ADD 00002724: MLOAD 00002725: DUP4 00002726: MLOAD 00002727: PUSH0 00002728: DUP1 00002729: DUP3 0000272a: MSTORE 0000272b: SWAP7 0000272c: DUP2 0000272d: ADD 0000272e: DUP1 0000272f: DUP7 00002730: MSTORE 00002731: DUP11 00002732: SWAP1 00002733: MSTORE 00002734: SWAP6 00002735: BYTE 00002736: SWAP3 00002737: DUP6 00002738: ADD 00002739: DUP4 0000273a: SWAP1 0000273b: MSTORE 0000273c: DUP5 0000273d: ADD 0000273e: DUP4 0000273f: SWAP1 00002740: MSTORE 00002741: PUSH1 0x80 00002743: DUP5 00002744: ADD 00002745: DUP2 00002746: SWAP1 00002747: MSTORE 00002748: SWAP2 00002749: SWAP3 0000274a: PUSH1 0x01 0000274c: SWAP1 0000274d: PUSH1 0xa0 0000274f: ADD 00002750: PUSH1 0x20 00002752: PUSH1 0x40 00002754: MLOAD 00002755: PUSH1 0x20 00002757: DUP2 00002758: SUB 00002759: SWAP1 0000275a: DUP1 0000275b: DUP5 0000275c: SUB 0000275d: SWAP1 0000275e: DUP6 0000275f: GAS 00002760: STATICCALL 00002761: ISZERO 00002762: DUP1 00002763: ISZERO 00002764: PUSH2 0x276f 00002767: JUMPI 00002768: RETURNDATASIZE 00002769: PUSH0 0000276a: PUSH0 0000276b: RETURNDATACOPY 0000276c: RETURNDATASIZE 0000276d: PUSH0 0000276e: REVERT 0000276f: JUMPDEST 00002770: POP 00002771: POP 00002772: POP 00002773: PUSH1 0x20 00002775: PUSH1 0x40 00002777: MLOAD 00002778: SUB 00002779: MLOAD 0000277a: PUSH1 0x01 0000277c: PUSH1 0x01 0000277e: PUSH1 0xa0 00002780: SHL 00002781: SUB 00002782: AND 00002783: DUP8 00002784: PUSH1 0x01 00002786: PUSH1 0x01 00002788: PUSH1 0xa0 0000278a: SHL 0000278b: SUB 0000278c: AND 0000278d: SUB 0000278e: PUSH2 0x279d 00002791: JUMPI 00002792: PUSH1 0x01 00002794: SWAP4 00002795: POP 00002796: POP 00002797: POP 00002798: POP 00002799: PUSH2 0x0ffd 0000279c: JUMP 0000279d: JUMPDEST 0000279e: POP 0000279f: POP 000027a0: POP 000027a1: JUMPDEST 000027a2: PUSH1 0x01 000027a4: PUSH1 0x01 000027a6: PUSH1 0xa0 000027a8: SHL 000027a9: SUB 000027aa: DUP5 000027ab: AND 000027ac: EXTCODESIZE 000027ad: ISZERO 000027ae: PUSH2 0x0ffd 000027b1: JUMPI 000027b2: PUSH0 000027b3: PUSH0 000027b4: DUP6 000027b5: PUSH1 0x01 000027b7: PUSH1 0x01 000027b9: PUSH1 0xa0 000027bb: SHL 000027bc: SUB 000027bd: AND 000027be: DUP6 000027bf: DUP6 000027c0: PUSH1 0x40 000027c2: MLOAD 000027c3: PUSH1 0x24 000027c5: ADD 000027c6: PUSH2 0x27d0 000027c9: SWAP3 000027ca: SWAP2 000027cb: SWAP1 000027cc: PUSH2 0x380f 000027cf: JUMP 000027d0: JUMPDEST 000027d1: PUSH1 0x40 000027d3: DUP1 000027d4: MLOAD 000027d5: PUSH1 0x1f 000027d7: NOT 000027d8: DUP2 000027d9: DUP5 000027da: SUB 000027db: ADD 000027dc: DUP2 000027dd: MSTORE 000027de: SWAP2 000027df: DUP2 000027e0: MSTORE 000027e1: PUSH1 0x20 000027e3: DUP3 000027e4: ADD 000027e5: DUP1 000027e6: MLOAD 000027e7: PUSH1 0x01 000027e9: PUSH1 0x01 000027eb: PUSH1 0xe0 000027ed: SHL 000027ee: SUB 000027ef: AND 000027f0: PUSH4 0x0b135d3f 000027f5: PUSH1 0xe1 000027f7: SHL 000027f8: OR 000027f9: SWAP1 000027fa: MSTORE 000027fb: MLOAD 000027fc: PUSH2 0x2805 000027ff: SWAP2 00002800: SWAP1 00002801: PUSH2 0x3827 00002804: JUMP 00002805: JUMPDEST 00002806: PUSH0 00002807: PUSH1 0x40 00002809: MLOAD 0000280a: DUP1 0000280b: DUP4 0000280c: SUB 0000280d: DUP2 0000280e: DUP6 0000280f: GAS 00002810: STATICCALL 00002811: SWAP2 00002812: POP 00002813: POP 00002814: RETURNDATASIZE 00002815: DUP1 00002816: PUSH0 00002817: DUP2 00002818: EQ 00002819: PUSH2 0x283d 0000281c: JUMPI 0000281d: PUSH1 0x40 0000281f: MLOAD 00002820: SWAP2 00002821: POP 00002822: PUSH1 0x1f 00002824: NOT 00002825: PUSH1 0x3f 00002827: RETURNDATASIZE 00002828: ADD 00002829: AND 0000282a: DUP3 0000282b: ADD 0000282c: PUSH1 0x40 0000282e: MSTORE 0000282f: RETURNDATASIZE 00002830: DUP3 00002831: MSTORE 00002832: RETURNDATASIZE 00002833: PUSH0 00002834: PUSH1 0x20 00002836: DUP5 00002837: ADD 00002838: RETURNDATACOPY 00002839: PUSH2 0x2842 0000283c: JUMP 0000283d: JUMPDEST 0000283e: PUSH1 0x60 00002840: SWAP2 00002841: POP 00002842: JUMPDEST 00002843: POP 00002844: SWAP2 00002845: POP 00002846: SWAP2 00002847: POP 00002848: DUP2 00002849: DUP1 0000284a: ISZERO 0000284b: PUSH2 0x2855 0000284e: JUMPI 0000284f: POP 00002850: DUP1 00002851: MLOAD 00002852: PUSH1 0x20 00002854: EQ 00002855: JUMPDEST 00002856: DUP1 00002857: ISZERO 00002858: PUSH2 0x2886 0000285b: JUMPI 0000285c: POP 0000285d: DUP1 0000285e: MLOAD 0000285f: PUSH4 0x0b135d3f 00002864: PUSH1 0xe1 00002866: SHL 00002867: SWAP1 00002868: PUSH2 0x287a 0000286b: SWAP1 0000286c: DUP4 0000286d: ADD 0000286e: PUSH1 0x20 00002870: SWAP1 00002871: DUP2 00002872: ADD 00002873: SWAP1 00002874: DUP5 00002875: ADD 00002876: PUSH2 0x383d 00002879: JUMP 0000287a: JUMPDEST 0000287b: PUSH1 0x01 0000287d: PUSH1 0x01 0000287f: PUSH1 0xe0 00002881: SHL 00002882: SUB 00002883: NOT 00002884: AND 00002885: EQ 00002886: JUMPDEST 00002887: SWAP7 00002888: SWAP6 00002889: POP 0000288a: POP 0000288b: POP 0000288c: POP 0000288d: POP 0000288e: POP 0000288f: JUMP 00002890: JUMPDEST 00002891: PUSH1 0x60 00002893: PUSH0 00002894: PUSH2 0x0ffd 00002897: DUP4 00002898: PUSH2 0x2c7c 0000289b: JUMP 0000289c: JUMPDEST 0000289d: PUSH1 0x01 0000289f: PUSH1 0x01 000028a1: PUSH1 0xa0 000028a3: SHL 000028a4: SUB 000028a5: DUP2 000028a6: AND 000028a7: PUSH0 000028a8: SWAP1 000028a9: DUP2 000028aa: MSTORE 000028ab: PUSH1 0x09 000028ad: PUSH1 0x20 000028af: MSTORE 000028b0: PUSH1 0x40 000028b2: SWAP1 000028b3: KECCAK256 000028b4: SLOAD 000028b5: DUP4 000028b6: DUP2 000028b7: LT 000028b8: ISZERO 000028b9: PUSH2 0x28d4 000028bc: JUMPI 000028bd: PUSH1 0x40 000028bf: MLOAD 000028c0: PUSH3 0x461bcd 000028c4: PUSH1 0xe5 000028c6: SHL 000028c7: DUP2 000028c8: MSTORE 000028c9: PUSH1 0x04 000028cb: ADD 000028cc: PUSH2 0x0e15 000028cf: SWAP1 000028d0: PUSH2 0x35e0 000028d3: JUMP 000028d4: JUMPDEST 000028d5: PUSH1 0x01 000028d7: PUSH1 0x01 000028d9: PUSH1 0xa0 000028db: SHL 000028dc: SUB 000028dd: DUP3 000028de: AND 000028df: CALLER 000028e0: EQ 000028e1: PUSH2 0x2959 000028e4: JUMPI 000028e5: PUSH1 0x01 000028e7: PUSH1 0x01 000028e9: PUSH1 0xa0 000028eb: SHL 000028ec: SUB 000028ed: DUP3 000028ee: AND 000028ef: PUSH0 000028f0: SWAP1 000028f1: DUP2 000028f2: MSTORE 000028f3: PUSH1 0x0b 000028f5: PUSH1 0x20 000028f7: SWAP1 000028f8: DUP2 000028f9: MSTORE 000028fa: PUSH1 0x40 000028fc: DUP1 000028fd: DUP4 000028fe: KECCAK256 000028ff: CALLER 00002900: DUP5 00002901: MSTORE 00002902: SWAP1 00002903: SWAP2 00002904: MSTORE 00002905: SWAP1 00002906: KECCAK256 00002907: SLOAD 00002908: PUSH0 00002909: NOT 0000290a: DUP2 0000290b: EQ 0000290c: PUSH2 0x2957 0000290f: JUMPI 00002910: DUP5 00002911: DUP2 00002912: LT 00002913: ISZERO 00002914: PUSH2 0x292f 00002917: JUMPI 00002918: PUSH1 0x40 0000291a: MLOAD 0000291b: PUSH3 0x461bcd 0000291f: PUSH1 0xe5 00002921: SHL 00002922: DUP2 00002923: MSTORE 00002924: PUSH1 0x04 00002926: ADD 00002927: PUSH2 0x0e15 0000292a: SWAP1 0000292b: PUSH2 0x3617 0000292e: JUMP 0000292f: JUMPDEST 00002930: PUSH1 0x01 00002932: PUSH1 0x01 00002934: PUSH1 0xa0 00002936: SHL 00002937: SUB 00002938: DUP4 00002939: AND 0000293a: PUSH0 0000293b: SWAP1 0000293c: DUP2 0000293d: MSTORE 0000293e: PUSH1 0x0b 00002940: PUSH1 0x20 00002942: SWAP1 00002943: DUP2 00002944: MSTORE 00002945: PUSH1 0x40 00002947: DUP1 00002948: DUP4 00002949: KECCAK256 0000294a: CALLER 0000294b: DUP5 0000294c: MSTORE 0000294d: SWAP1 0000294e: SWAP2 0000294f: MSTORE 00002950: SWAP1 00002951: KECCAK256 00002952: DUP6 00002953: DUP3 00002954: SUB 00002955: SWAP1 00002956: SSTORE 00002957: JUMPDEST 00002958: POP 00002959: JUMPDEST 0000295a: PUSH1 0x01 0000295c: PUSH1 0x01 0000295e: PUSH1 0xa0 00002960: SHL 00002961: SUB 00002962: DUP3 00002963: AND 00002964: PUSH0 00002965: SWAP1 00002966: DUP2 00002967: MSTORE 00002968: PUSH1 0x09 0000296a: PUSH1 0x20 0000296c: MSTORE 0000296d: PUSH1 0x40 0000296f: SWAP1 00002970: KECCAK256 00002971: DUP5 00002972: DUP3 00002973: SUB 00002974: SWAP1 00002975: SSTORE 00002976: PUSH1 0x08 00002978: DUP1 00002979: SLOAD 0000297a: DUP6 0000297b: SWAP1 0000297c: SUB 0000297d: SWAP1 0000297e: SSTORE 0000297f: PUSH2 0x2988 00002982: DUP4 00002983: DUP7 00002984: PUSH2 0x2423 00002987: JUMP 00002988: JUMPDEST 00002989: PUSH1 0x40 0000298b: MLOAD 0000298c: DUP5 0000298d: DUP2 0000298e: MSTORE 0000298f: PUSH0 00002990: SWAP1 00002991: PUSH1 0x01 00002993: PUSH1 0x01 00002995: PUSH1 0xa0 00002997: SHL 00002998: SUB 00002999: DUP5 0000299a: AND 0000299b: SWAP1 0000299c: PUSH0 0000299d: MLOAD 0000299e: PUSH1 0x20 000029a0: PUSH2 0x38c1 000029a3: PUSH0 000029a4: CODECOPY 000029a5: PUSH0 000029a6: MLOAD 000029a7: SWAP1 000029a8: PUSH0 000029a9: MSTORE 000029aa: SWAP1 000029ab: PUSH1 0x20 000029ad: ADD 000029ae: PUSH1 0x40 000029b0: MLOAD 000029b1: DUP1 000029b2: SWAP2 000029b3: SUB 000029b4: SWAP1 000029b5: LOG3 000029b6: PUSH1 0x40 000029b8: DUP1 000029b9: MLOAD 000029ba: DUP7 000029bb: DUP2 000029bc: MSTORE 000029bd: PUSH1 0x20 000029bf: DUP2 000029c0: ADD 000029c1: DUP7 000029c2: SWAP1 000029c3: MSTORE 000029c4: PUSH1 0x01 000029c6: PUSH1 0x01 000029c8: PUSH1 0xa0 000029ca: SHL 000029cb: SUB 000029cc: DUP1 000029cd: DUP6 000029ce: AND 000029cf: SWAP3 000029d0: SWAP1 000029d1: DUP7 000029d2: AND 000029d3: SWAP2 000029d4: CALLER 000029d5: SWAP2 000029d6: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db 000029f7: SWAP2 000029f8: ADD 000029f9: PUSH1 0x40 000029fb: MLOAD 000029fc: DUP1 000029fd: SWAP2 000029fe: SUB 000029ff: SWAP1 00002a00: LOG4 00002a01: POP 00002a02: POP 00002a03: POP 00002a04: POP 00002a05: POP 00002a06: JUMP 00002a07: JUMPDEST 00002a08: PUSH0 00002a09: PUSH2 0x0c67 00002a0c: DUP3 00002a0d: SLOAD 00002a0e: SWAP1 00002a0f: JUMP 00002a10: JUMPDEST 00002a11: PUSH2 0x2a1a 00002a14: DUP3 00002a15: DUP3 00002a16: PUSH2 0x177f 00002a19: JUMP 00002a1a: JUMPDEST 00002a1b: PUSH2 0x120f 00002a1e: JUMPI 00002a1f: PUSH1 0x40 00002a21: MLOAD 00002a22: PUSH4 0xe2517d3f 00002a27: PUSH1 0xe0 00002a29: SHL 00002a2a: DUP2 00002a2b: MSTORE 00002a2c: PUSH1 0x01 00002a2e: PUSH1 0x01 00002a30: PUSH1 0xa0 00002a32: SHL 00002a33: SUB 00002a34: DUP3 00002a35: AND 00002a36: PUSH1 0x04 00002a38: DUP3 00002a39: ADD 00002a3a: MSTORE 00002a3b: PUSH1 0x24 00002a3d: DUP2 00002a3e: ADD 00002a3f: DUP4 00002a40: SWAP1 00002a41: MSTORE 00002a42: PUSH1 0x44 00002a44: ADD 00002a45: PUSH2 0x0e15 00002a48: JUMP 00002a49: JUMPDEST 00002a4a: PUSH0 00002a4b: PUSH0 00002a4c: MLOAD 00002a4d: PUSH1 0x20 00002a4f: PUSH2 0x38e1 00002a52: PUSH0 00002a53: CODECOPY 00002a54: PUSH0 00002a55: MLOAD 00002a56: SWAP1 00002a57: PUSH0 00002a58: MSTORE 00002a59: PUSH2 0x2a62 00002a5c: DUP5 00002a5d: DUP5 00002a5e: PUSH2 0x177f 00002a61: JUMP 00002a62: JUMPDEST 00002a63: PUSH2 0x2ae1 00002a66: JUMPI 00002a67: PUSH0 00002a68: DUP5 00002a69: DUP2 00002a6a: MSTORE 00002a6b: PUSH1 0x20 00002a6d: DUP3 00002a6e: DUP2 00002a6f: MSTORE 00002a70: PUSH1 0x40 00002a72: DUP1 00002a73: DUP4 00002a74: KECCAK256 00002a75: PUSH1 0x01 00002a77: PUSH1 0x01 00002a79: PUSH1 0xa0 00002a7b: SHL 00002a7c: SUB 00002a7d: DUP8 00002a7e: AND 00002a7f: DUP5 00002a80: MSTORE 00002a81: SWAP1 00002a82: SWAP2 00002a83: MSTORE 00002a84: SWAP1 00002a85: KECCAK256 00002a86: DUP1 00002a87: SLOAD 00002a88: PUSH1 0xff 00002a8a: NOT 00002a8b: AND 00002a8c: PUSH1 0x01 00002a8e: OR 00002a8f: SWAP1 00002a90: SSTORE 00002a91: PUSH2 0x2a97 00002a94: CALLER 00002a95: SWAP1 00002a96: JUMP 00002a97: JUMPDEST 00002a98: PUSH1 0x01 00002a9a: PUSH1 0x01 00002a9c: PUSH1 0xa0 00002a9e: SHL 00002a9f: SUB 00002aa0: AND 00002aa1: DUP4 00002aa2: PUSH1 0x01 00002aa4: PUSH1 0x01 00002aa6: PUSH1 0xa0 00002aa8: SHL 00002aa9: SUB 00002aaa: AND 00002aab: DUP6 00002aac: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 00002acd: PUSH1 0x40 00002acf: MLOAD 00002ad0: PUSH1 0x40 00002ad2: MLOAD 00002ad3: DUP1 00002ad4: SWAP2 00002ad5: SUB 00002ad6: SWAP1 00002ad7: LOG4 00002ad8: PUSH1 0x01 00002ada: SWAP2 00002adb: POP 00002adc: POP 00002add: PUSH2 0x0c67 00002ae0: JUMP 00002ae1: JUMPDEST 00002ae2: PUSH0 00002ae3: SWAP2 00002ae4: POP 00002ae5: POP 00002ae6: PUSH2 0x0c67 00002ae9: JUMP 00002aea: JUMPDEST 00002aeb: PUSH0 00002aec: PUSH2 0x0ffd 00002aef: DUP4 00002af0: PUSH1 0x01 00002af2: PUSH1 0x01 00002af4: PUSH1 0xa0 00002af6: SHL 00002af7: SUB 00002af8: DUP5 00002af9: AND 00002afa: PUSH2 0x2cd5 00002afd: JUMP 00002afe: JUMPDEST 00002aff: PUSH0 00002b00: PUSH0 00002b01: MLOAD 00002b02: PUSH1 0x20 00002b04: PUSH2 0x38e1 00002b07: PUSH0 00002b08: CODECOPY 00002b09: PUSH0 00002b0a: MLOAD 00002b0b: SWAP1 00002b0c: PUSH0 00002b0d: MSTORE 00002b0e: PUSH2 0x2b17 00002b11: DUP5 00002b12: DUP5 00002b13: PUSH2 0x177f 00002b16: JUMP 00002b17: JUMPDEST 00002b18: ISZERO 00002b19: PUSH2 0x2ae1 00002b1c: JUMPI 00002b1d: PUSH0 00002b1e: DUP5 00002b1f: DUP2 00002b20: MSTORE 00002b21: PUSH1 0x20 00002b23: DUP3 00002b24: DUP2 00002b25: MSTORE 00002b26: PUSH1 0x40 00002b28: DUP1 00002b29: DUP4 00002b2a: KECCAK256 00002b2b: PUSH1 0x01 00002b2d: PUSH1 0x01 00002b2f: PUSH1 0xa0 00002b31: SHL 00002b32: SUB 00002b33: DUP8 00002b34: AND 00002b35: DUP1 00002b36: DUP6 00002b37: MSTORE 00002b38: SWAP3 00002b39: MSTORE 00002b3a: DUP1 00002b3b: DUP4 00002b3c: KECCAK256 00002b3d: DUP1 00002b3e: SLOAD 00002b3f: PUSH1 0xff 00002b41: NOT 00002b42: AND 00002b43: SWAP1 00002b44: SSTORE 00002b45: MLOAD 00002b46: CALLER 00002b47: SWAP3 00002b48: DUP8 00002b49: SWAP2 00002b4a: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 00002b6b: SWAP2 00002b6c: SWAP1 00002b6d: LOG4 00002b6e: PUSH1 0x01 00002b70: SWAP2 00002b71: POP 00002b72: POP 00002b73: PUSH2 0x0c67 00002b76: JUMP 00002b77: JUMPDEST 00002b78: PUSH0 00002b79: PUSH2 0x0ffd 00002b7c: DUP4 00002b7d: PUSH1 0x01 00002b7f: PUSH1 0x01 00002b81: PUSH1 0xa0 00002b83: SHL 00002b84: SUB 00002b85: DUP5 00002b86: AND 00002b87: PUSH2 0x2d21 00002b8a: JUMP 00002b8b: JUMPDEST 00002b8c: PUSH2 0x2b94 00002b8f: DUP3 00002b90: PUSH2 0x2dfb 00002b93: JUMP 00002b94: JUMPDEST 00002b95: PUSH1 0x40 00002b97: MLOAD 00002b98: PUSH1 0x01 00002b9a: PUSH1 0x01 00002b9c: PUSH1 0xa0 00002b9e: SHL 00002b9f: SUB 00002ba0: DUP4 00002ba1: AND 00002ba2: SWAP1 00002ba3: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 00002bc4: SWAP1 00002bc5: PUSH0 00002bc6: SWAP1 00002bc7: LOG2 00002bc8: DUP1 00002bc9: MLOAD 00002bca: ISZERO 00002bcb: PUSH2 0x2bd8 00002bce: JUMPI 00002bcf: PUSH2 0x10a4 00002bd2: DUP3 00002bd3: DUP3 00002bd4: PUSH2 0x2e5e 00002bd7: JUMP 00002bd8: JUMPDEST 00002bd9: PUSH2 0x120f 00002bdc: PUSH2 0x2ed0 00002bdf: JUMP 00002be0: JUMPDEST 00002be1: PUSH1 0x40 00002be3: MLOAD 00002be4: PUSH1 0x01 00002be6: PUSH1 0x01 00002be8: PUSH1 0xa0 00002bea: SHL 00002beb: SUB 00002bec: DUP4 00002bed: DUP2 00002bee: AND 00002bef: PUSH1 0x24 00002bf1: DUP4 00002bf2: ADD 00002bf3: MSTORE 00002bf4: PUSH1 0x44 00002bf6: DUP3 00002bf7: ADD 00002bf8: DUP4 00002bf9: SWAP1 00002bfa: MSTORE 00002bfb: PUSH2 0x10a4 00002bfe: SWAP2 00002bff: DUP6 00002c00: SWAP2 00002c01: DUP3 00002c02: AND 00002c03: SWAP1 00002c04: PUSH4 0xa9059cbb 00002c09: SWAP1 00002c0a: PUSH1 0x64 00002c0c: ADD 00002c0d: JUMPDEST 00002c0e: PUSH1 0x40 00002c10: MLOAD 00002c11: PUSH1 0x20 00002c13: DUP2 00002c14: DUP4 00002c15: SUB 00002c16: SUB 00002c17: DUP2 00002c18: MSTORE 00002c19: SWAP1 00002c1a: PUSH1 0x40 00002c1c: MSTORE 00002c1d: SWAP2 00002c1e: POP 00002c1f: PUSH1 0xe0 00002c21: SHL 00002c22: PUSH1 0x20 00002c24: DUP3 00002c25: ADD 00002c26: DUP1 00002c27: MLOAD 00002c28: PUSH1 0x01 00002c2a: PUSH1 0x01 00002c2c: PUSH1 0xe0 00002c2e: SHL 00002c2f: SUB 00002c30: DUP4 00002c31: DUP2 00002c32: DUP4 00002c33: AND 00002c34: OR 00002c35: DUP4 00002c36: MSTORE 00002c37: POP 00002c38: POP 00002c39: POP 00002c3a: POP 00002c3b: PUSH2 0x2eef 00002c3e: JUMP 00002c3f: JUMPDEST 00002c40: PUSH0 00002c41: SLOAD 00002c42: PUSH2 0x120f 00002c45: SWAP1 00002c46: PUSH1 0x01 00002c48: PUSH1 0x01 00002c4a: PUSH1 0xa0 00002c4c: SHL 00002c4d: SUB 00002c4e: AND 00002c4f: DUP4 00002c50: ADDRESS 00002c51: DUP5 00002c52: PUSH2 0x2f5b 00002c55: JUMP 00002c56: JUMPDEST 00002c57: PUSH0 00002c58: DUP3 00002c59: PUSH0 00002c5a: ADD 00002c5b: DUP3 00002c5c: DUP2 00002c5d: SLOAD 00002c5e: DUP2 00002c5f: LT 00002c60: PUSH2 0x2c6b 00002c63: JUMPI 00002c64: PUSH2 0x2c6b 00002c67: PUSH2 0x3858 00002c6a: JUMP 00002c6b: JUMPDEST 00002c6c: SWAP1 00002c6d: PUSH0 00002c6e: MSTORE 00002c6f: PUSH1 0x20 00002c71: PUSH0 00002c72: KECCAK256 00002c73: ADD 00002c74: SLOAD 00002c75: SWAP1 00002c76: POP 00002c77: SWAP3 00002c78: SWAP2 00002c79: POP 00002c7a: POP 00002c7b: JUMP 00002c7c: JUMPDEST 00002c7d: PUSH1 0x60 00002c7f: DUP2 00002c80: PUSH0 00002c81: ADD 00002c82: DUP1 00002c83: SLOAD 00002c84: DUP1 00002c85: PUSH1 0x20 00002c87: MUL 00002c88: PUSH1 0x20 00002c8a: ADD 00002c8b: PUSH1 0x40 00002c8d: MLOAD 00002c8e: SWAP1 00002c8f: DUP2 00002c90: ADD 00002c91: PUSH1 0x40 00002c93: MSTORE 00002c94: DUP1 00002c95: SWAP3 00002c96: SWAP2 00002c97: SWAP1 00002c98: DUP2 00002c99: DUP2 00002c9a: MSTORE 00002c9b: PUSH1 0x20 00002c9d: ADD 00002c9e: DUP3 00002c9f: DUP1 00002ca0: SLOAD 00002ca1: DUP1 00002ca2: ISZERO 00002ca3: PUSH2 0x2cc9 00002ca6: JUMPI 00002ca7: PUSH1 0x20 00002ca9: MUL 00002caa: DUP3 00002cab: ADD 00002cac: SWAP2 00002cad: SWAP1 00002cae: PUSH0 00002caf: MSTORE 00002cb0: PUSH1 0x20 00002cb2: PUSH0 00002cb3: KECCAK256 00002cb4: SWAP1 00002cb5: JUMPDEST 00002cb6: DUP2 00002cb7: SLOAD 00002cb8: DUP2 00002cb9: MSTORE 00002cba: PUSH1 0x20 00002cbc: ADD 00002cbd: SWAP1 00002cbe: PUSH1 0x01 00002cc0: ADD 00002cc1: SWAP1 00002cc2: DUP1 00002cc3: DUP4 00002cc4: GT 00002cc5: PUSH2 0x2cb5 00002cc8: JUMPI 00002cc9: JUMPDEST 00002cca: POP 00002ccb: POP 00002ccc: POP 00002ccd: POP 00002cce: POP 00002ccf: SWAP1 00002cd0: POP 00002cd1: SWAP2 00002cd2: SWAP1 00002cd3: POP 00002cd4: JUMP 00002cd5: JUMPDEST 00002cd6: PUSH0 00002cd7: DUP2 00002cd8: DUP2 00002cd9: MSTORE 00002cda: PUSH1 0x01 00002cdc: DUP4 00002cdd: ADD 00002cde: PUSH1 0x20 00002ce0: MSTORE 00002ce1: PUSH1 0x40 00002ce3: DUP2 00002ce4: KECCAK256 00002ce5: SLOAD 00002ce6: PUSH2 0x2d1a 00002ce9: JUMPI 00002cea: POP 00002ceb: DUP2 00002cec: SLOAD 00002ced: PUSH1 0x01 00002cef: DUP2 00002cf0: DUP2 00002cf1: ADD 00002cf2: DUP5 00002cf3: SSTORE 00002cf4: PUSH0 00002cf5: DUP5 00002cf6: DUP2 00002cf7: MSTORE 00002cf8: PUSH1 0x20 00002cfa: DUP1 00002cfb: DUP3 00002cfc: KECCAK256 00002cfd: SWAP1 00002cfe: SWAP4 00002cff: ADD 00002d00: DUP5 00002d01: SWAP1 00002d02: SSTORE 00002d03: DUP5 00002d04: SLOAD 00002d05: DUP5 00002d06: DUP3 00002d07: MSTORE 00002d08: DUP3 00002d09: DUP7 00002d0a: ADD 00002d0b: SWAP1 00002d0c: SWAP4 00002d0d: MSTORE 00002d0e: PUSH1 0x40 00002d10: SWAP1 00002d11: KECCAK256 00002d12: SWAP2 00002d13: SWAP1 00002d14: SWAP2 00002d15: SSTORE 00002d16: PUSH2 0x0c67 00002d19: JUMP 00002d1a: JUMPDEST 00002d1b: POP 00002d1c: PUSH0 00002d1d: PUSH2 0x0c67 00002d20: JUMP 00002d21: JUMPDEST 00002d22: PUSH0 00002d23: DUP2 00002d24: DUP2 00002d25: MSTORE 00002d26: PUSH1 0x01 00002d28: DUP4 00002d29: ADD 00002d2a: PUSH1 0x20 00002d2c: MSTORE 00002d2d: PUSH1 0x40 00002d2f: DUP2 00002d30: KECCAK256 00002d31: SLOAD 00002d32: DUP1 00002d33: ISZERO 00002d34: PUSH2 0x2ae1 00002d37: JUMPI 00002d38: PUSH0 00002d39: PUSH2 0x2d43 00002d3c: PUSH1 0x01 00002d3e: DUP4 00002d3f: PUSH2 0x3658 00002d42: JUMP 00002d43: JUMPDEST 00002d44: DUP6 00002d45: SLOAD 00002d46: SWAP1 00002d47: SWAP2 00002d48: POP 00002d49: PUSH0 00002d4a: SWAP1 00002d4b: PUSH2 0x2d56 00002d4e: SWAP1 00002d4f: PUSH1 0x01 00002d51: SWAP1 00002d52: PUSH2 0x3658 00002d55: JUMP 00002d56: JUMPDEST 00002d57: SWAP1 00002d58: POP 00002d59: DUP1 00002d5a: DUP3 00002d5b: EQ 00002d5c: PUSH2 0x2db5 00002d5f: JUMPI 00002d60: PUSH0 00002d61: DUP7 00002d62: PUSH0 00002d63: ADD 00002d64: DUP3 00002d65: DUP2 00002d66: SLOAD 00002d67: DUP2 00002d68: LT 00002d69: PUSH2 0x2d74 00002d6c: JUMPI 00002d6d: PUSH2 0x2d74 00002d70: PUSH2 0x3858 00002d73: JUMP 00002d74: JUMPDEST 00002d75: SWAP1 00002d76: PUSH0 00002d77: MSTORE 00002d78: PUSH1 0x20 00002d7a: PUSH0 00002d7b: KECCAK256 00002d7c: ADD 00002d7d: SLOAD 00002d7e: SWAP1 00002d7f: POP 00002d80: DUP1 00002d81: DUP8 00002d82: PUSH0 00002d83: ADD 00002d84: DUP5 00002d85: DUP2 00002d86: SLOAD 00002d87: DUP2 00002d88: LT 00002d89: PUSH2 0x2d94 00002d8c: JUMPI 00002d8d: PUSH2 0x2d94 00002d90: PUSH2 0x3858 00002d93: JUMP 00002d94: JUMPDEST 00002d95: PUSH0 00002d96: SWAP2 00002d97: DUP3 00002d98: MSTORE 00002d99: PUSH1 0x20 00002d9b: DUP1 00002d9c: DUP4 00002d9d: KECCAK256 00002d9e: SWAP1 00002d9f: SWAP2 00002da0: ADD 00002da1: SWAP3 00002da2: SWAP1 00002da3: SWAP3 00002da4: SSTORE 00002da5: SWAP2 00002da6: DUP3 00002da7: MSTORE 00002da8: PUSH1 0x01 00002daa: DUP9 00002dab: ADD 00002dac: SWAP1 00002dad: MSTORE 00002dae: PUSH1 0x40 00002db0: SWAP1 00002db1: KECCAK256 00002db2: DUP4 00002db3: SWAP1 00002db4: SSTORE 00002db5: JUMPDEST 00002db6: DUP6 00002db7: SLOAD 00002db8: DUP7 00002db9: SWAP1 00002dba: DUP1 00002dbb: PUSH2 0x2dc6 00002dbe: JUMPI 00002dbf: PUSH2 0x2dc6 00002dc2: PUSH2 0x386c 00002dc5: JUMP 00002dc6: JUMPDEST 00002dc7: PUSH1 0x01 00002dc9: SWAP1 00002dca: SUB 00002dcb: DUP2 00002dcc: DUP2 00002dcd: SWAP1 00002dce: PUSH0 00002dcf: MSTORE 00002dd0: PUSH1 0x20 00002dd2: PUSH0 00002dd3: KECCAK256 00002dd4: ADD 00002dd5: PUSH0 00002dd6: SWAP1 00002dd7: SSTORE 00002dd8: SWAP1 00002dd9: SSTORE 00002dda: DUP6 00002ddb: PUSH1 0x01 00002ddd: ADD 00002dde: PUSH0 00002ddf: DUP7 00002de0: DUP2 00002de1: MSTORE 00002de2: PUSH1 0x20 00002de4: ADD 00002de5: SWAP1 00002de6: DUP2 00002de7: MSTORE 00002de8: PUSH1 0x20 00002dea: ADD 00002deb: PUSH0 00002dec: KECCAK256 00002ded: PUSH0 00002dee: SWAP1 00002def: SSTORE 00002df0: PUSH1 0x01 00002df2: SWAP4 00002df3: POP 00002df4: POP 00002df5: POP 00002df6: POP 00002df7: PUSH2 0x0c67 00002dfa: JUMP 00002dfb: JUMPDEST 00002dfc: DUP1 00002dfd: PUSH1 0x01 00002dff: PUSH1 0x01 00002e01: PUSH1 0xa0 00002e03: SHL 00002e04: SUB 00002e05: AND 00002e06: EXTCODESIZE 00002e07: PUSH0 00002e08: SUB 00002e09: PUSH2 0x2e30 00002e0c: JUMPI 00002e0d: PUSH1 0x40 00002e0f: MLOAD 00002e10: PUSH4 0x4c9c8ce3 00002e15: PUSH1 0xe0 00002e17: SHL 00002e18: DUP2 00002e19: MSTORE 00002e1a: PUSH1 0x01 00002e1c: PUSH1 0x01 00002e1e: PUSH1 0xa0 00002e20: SHL 00002e21: SUB 00002e22: DUP3 00002e23: AND 00002e24: PUSH1 0x04 00002e26: DUP3 00002e27: ADD 00002e28: MSTORE 00002e29: PUSH1 0x24 00002e2b: ADD 00002e2c: PUSH2 0x0e15 00002e2f: JUMP 00002e30: JUMPDEST 00002e31: PUSH0 00002e32: MLOAD 00002e33: PUSH1 0x20 00002e35: PUSH2 0x38a1 00002e38: PUSH0 00002e39: CODECOPY 00002e3a: PUSH0 00002e3b: MLOAD 00002e3c: SWAP1 00002e3d: PUSH0 00002e3e: MSTORE 00002e3f: DUP1 00002e40: SLOAD 00002e41: PUSH1 0x01 00002e43: PUSH1 0x01 00002e45: PUSH1 0xa0 00002e47: SHL 00002e48: SUB 00002e49: NOT 00002e4a: AND 00002e4b: PUSH1 0x01 00002e4d: PUSH1 0x01 00002e4f: PUSH1 0xa0 00002e51: SHL 00002e52: SUB 00002e53: SWAP3 00002e54: SWAP1 00002e55: SWAP3 00002e56: AND 00002e57: SWAP2 00002e58: SWAP1 00002e59: SWAP2 00002e5a: OR 00002e5b: SWAP1 00002e5c: SSTORE 00002e5d: JUMP 00002e5e: JUMPDEST 00002e5f: PUSH1 0x60 00002e61: PUSH0 00002e62: PUSH0 00002e63: DUP5 00002e64: PUSH1 0x01 00002e66: PUSH1 0x01 00002e68: PUSH1 0xa0 00002e6a: SHL 00002e6b: SUB 00002e6c: AND 00002e6d: DUP5 00002e6e: PUSH1 0x40 00002e70: MLOAD 00002e71: PUSH2 0x2e7a 00002e74: SWAP2 00002e75: SWAP1 00002e76: PUSH2 0x3827 00002e79: JUMP 00002e7a: JUMPDEST 00002e7b: PUSH0 00002e7c: PUSH1 0x40 00002e7e: MLOAD 00002e7f: DUP1 00002e80: DUP4 00002e81: SUB 00002e82: DUP2 00002e83: DUP6 00002e84: GAS 00002e85: DELEGATECALL 00002e86: SWAP2 00002e87: POP 00002e88: POP 00002e89: RETURNDATASIZE 00002e8a: DUP1 00002e8b: PUSH0 00002e8c: DUP2 00002e8d: EQ 00002e8e: PUSH2 0x2eb2 00002e91: JUMPI 00002e92: PUSH1 0x40 00002e94: MLOAD 00002e95: SWAP2 00002e96: POP 00002e97: PUSH1 0x1f 00002e99: NOT 00002e9a: PUSH1 0x3f 00002e9c: RETURNDATASIZE 00002e9d: ADD 00002e9e: AND 00002e9f: DUP3 00002ea0: ADD 00002ea1: PUSH1 0x40 00002ea3: MSTORE 00002ea4: RETURNDATASIZE 00002ea5: DUP3 00002ea6: MSTORE 00002ea7: RETURNDATASIZE 00002ea8: PUSH0 00002ea9: PUSH1 0x20 00002eab: DUP5 00002eac: ADD 00002ead: RETURNDATACOPY 00002eae: PUSH2 0x2eb7 00002eb1: JUMP 00002eb2: JUMPDEST 00002eb3: PUSH1 0x60 00002eb5: SWAP2 00002eb6: POP 00002eb7: JUMPDEST 00002eb8: POP 00002eb9: SWAP2 00002eba: POP 00002ebb: SWAP2 00002ebc: POP 00002ebd: PUSH2 0x2ec7 00002ec0: DUP6 00002ec1: DUP4 00002ec2: DUP4 00002ec3: PUSH2 0x2f94 00002ec6: JUMP 00002ec7: JUMPDEST 00002ec8: SWAP6 00002ec9: SWAP5 00002eca: POP 00002ecb: POP 00002ecc: POP 00002ecd: POP 00002ece: POP 00002ecf: JUMP 00002ed0: JUMPDEST 00002ed1: CALLVALUE 00002ed2: ISZERO 00002ed3: PUSH2 0x235b 00002ed6: JUMPI 00002ed7: PUSH1 0x40 00002ed9: MLOAD 00002eda: PUSH4 0xb398979f 00002edf: PUSH1 0xe0 00002ee1: SHL 00002ee2: DUP2 00002ee3: MSTORE 00002ee4: PUSH1 0x04 00002ee6: ADD 00002ee7: PUSH1 0x40 00002ee9: MLOAD 00002eea: DUP1 00002eeb: SWAP2 00002eec: SUB 00002eed: SWAP1 00002eee: REVERT 00002eef: JUMPDEST 00002ef0: PUSH0 00002ef1: PUSH0 00002ef2: PUSH1 0x20 00002ef4: PUSH0 00002ef5: DUP5 00002ef6: MLOAD 00002ef7: PUSH1 0x20 00002ef9: DUP7 00002efa: ADD 00002efb: PUSH0 00002efc: DUP9 00002efd: GAS 00002efe: CALL 00002eff: DUP1 00002f00: PUSH2 0x2f0e 00002f03: JUMPI 00002f04: PUSH1 0x40 00002f06: MLOAD 00002f07: RETURNDATASIZE 00002f08: PUSH0 00002f09: DUP3 00002f0a: RETURNDATACOPY 00002f0b: RETURNDATASIZE 00002f0c: DUP2 00002f0d: REVERT 00002f0e: JUMPDEST 00002f0f: POP 00002f10: POP 00002f11: PUSH0 00002f12: MLOAD 00002f13: RETURNDATASIZE 00002f14: SWAP2 00002f15: POP 00002f16: DUP2 00002f17: ISZERO 00002f18: PUSH2 0x2f25 00002f1b: JUMPI 00002f1c: DUP1 00002f1d: PUSH1 0x01 00002f1f: EQ 00002f20: ISZERO 00002f21: PUSH2 0x2f32 00002f24: JUMP 00002f25: JUMPDEST 00002f26: PUSH1 0x01 00002f28: PUSH1 0x01 00002f2a: PUSH1 0xa0 00002f2c: SHL 00002f2d: SUB 00002f2e: DUP5 00002f2f: AND 00002f30: EXTCODESIZE 00002f31: ISZERO 00002f32: JUMPDEST 00002f33: ISZERO 00002f34: PUSH2 0x1061 00002f37: JUMPI 00002f38: PUSH1 0x40 00002f3a: MLOAD 00002f3b: PUSH4 0x5274afe7 00002f40: PUSH1 0xe0 00002f42: SHL 00002f43: DUP2 00002f44: MSTORE 00002f45: PUSH1 0x01 00002f47: PUSH1 0x01 00002f49: PUSH1 0xa0 00002f4b: SHL 00002f4c: SUB 00002f4d: DUP6 00002f4e: AND 00002f4f: PUSH1 0x04 00002f51: DUP3 00002f52: ADD 00002f53: MSTORE 00002f54: PUSH1 0x24 00002f56: ADD 00002f57: PUSH2 0x0e15 00002f5a: JUMP 00002f5b: JUMPDEST 00002f5c: PUSH1 0x40 00002f5e: MLOAD 00002f5f: PUSH1 0x01 00002f61: PUSH1 0x01 00002f63: PUSH1 0xa0 00002f65: SHL 00002f66: SUB 00002f67: DUP5 00002f68: DUP2 00002f69: AND 00002f6a: PUSH1 0x24 00002f6c: DUP4 00002f6d: ADD 00002f6e: MSTORE 00002f6f: DUP4 00002f70: DUP2 00002f71: AND 00002f72: PUSH1 0x44 00002f74: DUP4 00002f75: ADD 00002f76: MSTORE 00002f77: PUSH1 0x64 00002f79: DUP3 00002f7a: ADD 00002f7b: DUP4 00002f7c: SWAP1 00002f7d: MSTORE 00002f7e: PUSH2 0x1061 00002f81: SWAP2 00002f82: DUP7 00002f83: SWAP2 00002f84: DUP3 00002f85: AND 00002f86: SWAP1 00002f87: PUSH4 0x23b872dd 00002f8c: SWAP1 00002f8d: PUSH1 0x84 00002f8f: ADD 00002f90: PUSH2 0x2c0d 00002f93: JUMP 00002f94: JUMPDEST 00002f95: PUSH1 0x60 00002f97: DUP3 00002f98: PUSH2 0x2fa9 00002f9b: JUMPI 00002f9c: PUSH2 0x2fa4 00002f9f: DUP3 00002fa0: PUSH2 0x2ff0 00002fa3: JUMP 00002fa4: JUMPDEST 00002fa5: PUSH2 0x0ffd 00002fa8: JUMP 00002fa9: JUMPDEST 00002faa: DUP2 00002fab: MLOAD 00002fac: ISZERO 00002fad: DUP1 00002fae: ISZERO 00002faf: PUSH2 0x2fc0 00002fb2: JUMPI 00002fb3: POP 00002fb4: PUSH1 0x01 00002fb6: PUSH1 0x01 00002fb8: PUSH1 0xa0 00002fba: SHL 00002fbb: SUB 00002fbc: DUP5 00002fbd: AND 00002fbe: EXTCODESIZE 00002fbf: ISZERO 00002fc0: JUMPDEST 00002fc1: ISZERO 00002fc2: PUSH2 0x2fe9 00002fc5: JUMPI 00002fc6: PUSH1 0x40 00002fc8: MLOAD 00002fc9: PUSH4 0x9996b315 00002fce: PUSH1 0xe0 00002fd0: SHL 00002fd1: DUP2 00002fd2: MSTORE 00002fd3: PUSH1 0x01 00002fd5: PUSH1 0x01 00002fd7: PUSH1 0xa0 00002fd9: SHL 00002fda: SUB 00002fdb: DUP6 00002fdc: AND 00002fdd: PUSH1 0x04 00002fdf: DUP3 00002fe0: ADD 00002fe1: MSTORE 00002fe2: PUSH1 0x24 00002fe4: ADD 00002fe5: PUSH2 0x0e15 00002fe8: JUMP 00002fe9: JUMPDEST 00002fea: POP 00002feb: DUP1 00002fec: PUSH2 0x0ffd 00002fef: JUMP 00002ff0: JUMPDEST 00002ff1: DUP1 00002ff2: MLOAD 00002ff3: ISZERO 00002ff4: PUSH2 0x2fff 00002ff7: JUMPI 00002ff8: DUP1 00002ff9: MLOAD 00002ffa: PUSH1 0x20 00002ffc: DUP3 00002ffd: ADD 00002ffe: REVERT 00002fff: JUMPDEST 00003000: PUSH1 0x40 00003002: MLOAD 00003003: PUSH4 0xd6bda275 00003008: PUSH1 0xe0 0000300a: SHL 0000300b: DUP2 0000300c: MSTORE 0000300d: PUSH1 0x04 0000300f: ADD 00003010: PUSH1 0x40 00003012: MLOAD 00003013: DUP1 00003014: SWAP2 00003015: SUB 00003016: SWAP1 00003017: REVERT 00003018: JUMPDEST 00003019: PUSH1 0x01 0000301b: PUSH1 0x01 0000301d: PUSH1 0xe0 0000301f: SHL 00003020: SUB 00003021: NOT 00003022: DUP2 00003023: AND 00003024: DUP2 00003025: EQ 00003026: PUSH2 0x209c 00003029: JUMPI 0000302a: PUSH0 0000302b: PUSH0 0000302c: REVERT 0000302d: JUMPDEST 0000302e: PUSH0 0000302f: PUSH1 0x20 00003031: DUP3 00003032: DUP5 00003033: SUB 00003034: SLT 00003035: ISZERO 00003036: PUSH2 0x303d 00003039: JUMPI 0000303a: PUSH0 0000303b: PUSH0 0000303c: REVERT 0000303d: JUMPDEST 0000303e: DUP2 0000303f: CALLDATALOAD 00003040: PUSH2 0x0ffd 00003043: DUP2 00003044: PUSH2 0x3018 00003047: JUMP 00003048: JUMPDEST 00003049: PUSH0 0000304a: DUP2 0000304b: MLOAD 0000304c: DUP1 0000304d: DUP5 0000304e: MSTORE 0000304f: DUP1 00003050: PUSH1 0x20 00003052: DUP5 00003053: ADD 00003054: PUSH1 0x20 00003056: DUP7 00003057: ADD 00003058: MCOPY 00003059: PUSH0 0000305a: PUSH1 0x20 0000305c: DUP3 0000305d: DUP7 0000305e: ADD 0000305f: ADD 00003060: MSTORE 00003061: PUSH1 0x20 00003063: PUSH1 0x1f 00003065: NOT 00003066: PUSH1 0x1f 00003068: DUP4 00003069: ADD 0000306a: AND 0000306b: DUP6 0000306c: ADD 0000306d: ADD 0000306e: SWAP2 0000306f: POP 00003070: POP 00003071: SWAP3 00003072: SWAP2 00003073: POP 00003074: POP 00003075: JUMP 00003076: JUMPDEST 00003077: PUSH1 0x20 00003079: DUP2 0000307a: MSTORE 0000307b: PUSH0 0000307c: PUSH2 0x0ffd 0000307f: PUSH1 0x20 00003081: DUP4 00003082: ADD 00003083: DUP5 00003084: PUSH2 0x3048 00003087: JUMP 00003088: JUMPDEST 00003089: PUSH0 0000308a: PUSH1 0x20 0000308c: DUP3 0000308d: DUP5 0000308e: SUB 0000308f: SLT 00003090: ISZERO 00003091: PUSH2 0x3098 00003094: JUMPI 00003095: PUSH0 00003096: PUSH0 00003097: REVERT 00003098: JUMPDEST 00003099: POP 0000309a: CALLDATALOAD 0000309b: SWAP2 0000309c: SWAP1 0000309d: POP 0000309e: JUMP 0000309f: JUMPDEST 000030a0: DUP1 000030a1: CALLDATALOAD 000030a2: PUSH1 0x01 000030a4: PUSH1 0x01 000030a6: PUSH1 0xa0 000030a8: SHL 000030a9: SUB 000030aa: DUP2 000030ab: AND 000030ac: DUP2 000030ad: EQ 000030ae: PUSH2 0x11ef 000030b1: JUMPI 000030b2: PUSH0 000030b3: PUSH0 000030b4: REVERT 000030b5: JUMPDEST 000030b6: PUSH0 000030b7: PUSH0 000030b8: PUSH1 0x40 000030ba: DUP4 000030bb: DUP6 000030bc: SUB 000030bd: SLT 000030be: ISZERO 000030bf: PUSH2 0x30c6 000030c2: JUMPI 000030c3: PUSH0 000030c4: PUSH0 000030c5: REVERT 000030c6: JUMPDEST 000030c7: PUSH2 0x30cf 000030ca: DUP4 000030cb: PUSH2 0x309f 000030ce: JUMP 000030cf: JUMPDEST 000030d0: SWAP5 000030d1: PUSH1 0x20 000030d3: SWAP4 000030d4: SWAP1 000030d5: SWAP4 000030d6: ADD 000030d7: CALLDATALOAD 000030d8: SWAP4 000030d9: POP 000030da: POP 000030db: POP 000030dc: JUMP 000030dd: JUMPDEST 000030de: PUSH0 000030df: PUSH0 000030e0: PUSH0 000030e1: PUSH1 0x60 000030e3: DUP5 000030e4: DUP7 000030e5: SUB 000030e6: SLT 000030e7: ISZERO 000030e8: PUSH2 0x30ef 000030eb: JUMPI 000030ec: PUSH0 000030ed: PUSH0 000030ee: REVERT 000030ef: JUMPDEST 000030f0: DUP4 000030f1: CALLDATALOAD 000030f2: SWAP3 000030f3: POP 000030f4: PUSH2 0x30ff 000030f7: PUSH1 0x20 000030f9: DUP6 000030fa: ADD 000030fb: PUSH2 0x309f 000030fe: JUMP 000030ff: JUMPDEST 00003100: SWAP2 00003101: POP 00003102: PUSH1 0x40 00003104: DUP5 00003105: ADD 00003106: CALLDATALOAD 00003107: PUSH2 0xffff 0000310a: DUP2 0000310b: AND 0000310c: DUP2 0000310d: EQ 0000310e: PUSH2 0x3115 00003111: JUMPI 00003112: PUSH0 00003113: PUSH0 00003114: REVERT 00003115: JUMPDEST 00003116: DUP1 00003117: SWAP2 00003118: POP 00003119: POP 0000311a: SWAP3 0000311b: POP 0000311c: SWAP3 0000311d: POP 0000311e: SWAP3 0000311f: JUMP 00003120: JUMPDEST 00003121: PUSH0 00003122: PUSH0 00003123: PUSH0 00003124: PUSH1 0x60 00003126: DUP5 00003127: DUP7 00003128: SUB 00003129: SLT 0000312a: ISZERO 0000312b: PUSH2 0x3132 0000312e: JUMPI 0000312f: PUSH0 00003130: PUSH0 00003131: REVERT 00003132: JUMPDEST 00003133: PUSH2 0x313b 00003136: DUP5 00003137: PUSH2 0x309f 0000313a: JUMP 0000313b: JUMPDEST 0000313c: SWAP3 0000313d: POP 0000313e: PUSH2 0x3149 00003141: PUSH1 0x20 00003143: DUP6 00003144: ADD 00003145: PUSH2 0x309f 00003148: JUMP 00003149: JUMPDEST 0000314a: SWAP3 0000314b: SWAP6 0000314c: SWAP3 0000314d: SWAP5 0000314e: POP 0000314f: POP 00003150: POP 00003151: PUSH1 0x40 00003153: SWAP2 00003154: SWAP1 00003155: SWAP2 00003156: ADD 00003157: CALLDATALOAD 00003158: SWAP1 00003159: JUMP 0000315a: JUMPDEST 0000315b: PUSH0 0000315c: PUSH1 0x20 0000315e: DUP3 0000315f: DUP5 00003160: SUB 00003161: SLT 00003162: ISZERO 00003163: PUSH2 0x316a 00003166: JUMPI 00003167: PUSH0 00003168: PUSH0 00003169: REVERT 0000316a: JUMPDEST 0000316b: PUSH2 0x0ffd 0000316e: DUP3 0000316f: PUSH2 0x309f 00003172: JUMP 00003173: JUMPDEST 00003174: PUSH0 00003175: PUSH0 00003176: PUSH1 0x40 00003178: DUP4 00003179: DUP6 0000317a: SUB 0000317b: SLT 0000317c: ISZERO 0000317d: PUSH2 0x3184 00003180: JUMPI 00003181: PUSH0 00003182: PUSH0 00003183: REVERT 00003184: JUMPDEST 00003185: DUP3 00003186: CALLDATALOAD 00003187: SWAP2 00003188: POP 00003189: PUSH2 0x3194 0000318c: PUSH1 0x20 0000318e: DUP5 0000318f: ADD 00003190: PUSH2 0x309f 00003193: JUMP 00003194: JUMPDEST 00003195: SWAP1 00003196: POP 00003197: SWAP3 00003198: POP 00003199: SWAP3 0000319a: SWAP1 0000319b: POP 0000319c: JUMP 0000319d: JUMPDEST 0000319e: PUSH4 0x4e487b71 000031a3: PUSH1 0xe0 000031a5: SHL 000031a6: PUSH0 000031a7: MSTORE 000031a8: PUSH1 0x41 000031aa: PUSH1 0x04 000031ac: MSTORE 000031ad: PUSH1 0x24 000031af: PUSH0 000031b0: REVERT 000031b1: JUMPDEST 000031b2: PUSH0 000031b3: DUP3 000031b4: PUSH1 0x1f 000031b6: DUP4 000031b7: ADD 000031b8: SLT 000031b9: PUSH2 0x31c0 000031bc: JUMPI 000031bd: PUSH0 000031be: PUSH0 000031bf: REVERT 000031c0: JUMPDEST 000031c1: DUP2 000031c2: CALLDATALOAD 000031c3: PUSH1 0x20 000031c5: DUP4 000031c6: ADD 000031c7: PUSH0 000031c8: PUSH0 000031c9: PUSH1 0x01 000031cb: PUSH1 0x01 000031cd: PUSH1 0x40 000031cf: SHL 000031d0: SUB 000031d1: DUP5 000031d2: GT 000031d3: ISZERO 000031d4: PUSH2 0x31df 000031d7: JUMPI 000031d8: PUSH2 0x31df 000031db: PUSH2 0x319d 000031de: JUMP 000031df: JUMPDEST 000031e0: POP 000031e1: PUSH1 0x40 000031e3: MLOAD 000031e4: PUSH1 0x1f 000031e6: NOT 000031e7: PUSH1 0x1f 000031e9: DUP6 000031ea: ADD 000031eb: DUP2 000031ec: AND 000031ed: PUSH1 0x3f 000031ef: ADD 000031f0: AND 000031f1: DUP2 000031f2: ADD 000031f3: DUP2 000031f4: DUP2 000031f5: LT 000031f6: PUSH1 0x01 000031f8: PUSH1 0x01 000031fa: PUSH1 0x40 000031fc: SHL 000031fd: SUB 000031fe: DUP3 000031ff: GT 00003200: OR 00003201: ISZERO 00003202: PUSH2 0x320d 00003205: JUMPI 00003206: PUSH2 0x320d 00003209: PUSH2 0x319d 0000320c: JUMP 0000320d: JUMPDEST 0000320e: PUSH1 0x40 00003210: MSTORE 00003211: DUP4 00003212: DUP2 00003213: MSTORE 00003214: SWAP1 00003215: POP 00003216: DUP1 00003217: DUP3 00003218: DUP5 00003219: ADD 0000321a: DUP8 0000321b: LT 0000321c: ISZERO 0000321d: PUSH2 0x3224 00003220: JUMPI 00003221: PUSH0 00003222: PUSH0 00003223: REVERT 00003224: JUMPDEST 00003225: DUP4 00003226: DUP4 00003227: PUSH1 0x20 00003229: DUP4 0000322a: ADD 0000322b: CALLDATACOPY 0000322c: PUSH0 0000322d: PUSH1 0x20 0000322f: DUP6 00003230: DUP4 00003231: ADD 00003232: ADD 00003233: MSTORE 00003234: DUP1 00003235: SWAP5 00003236: POP 00003237: POP 00003238: POP 00003239: POP 0000323a: POP 0000323b: SWAP3 0000323c: SWAP2 0000323d: POP 0000323e: POP 0000323f: JUMP 00003240: JUMPDEST 00003241: PUSH0 00003242: PUSH0 00003243: PUSH1 0x40 00003245: DUP4 00003246: DUP6 00003247: SUB 00003248: SLT 00003249: ISZERO 0000324a: PUSH2 0x3251 0000324d: JUMPI 0000324e: PUSH0 0000324f: PUSH0 00003250: REVERT 00003251: JUMPDEST 00003252: PUSH2 0x325a 00003255: DUP4 00003256: PUSH2 0x309f 00003259: JUMP 0000325a: JUMPDEST 0000325b: SWAP2 0000325c: POP 0000325d: PUSH1 0x20 0000325f: DUP4 00003260: ADD 00003261: CALLDATALOAD 00003262: PUSH1 0x01 00003264: PUSH1 0x01 00003266: PUSH1 0x40 00003268: SHL 00003269: SUB 0000326a: DUP2 0000326b: GT 0000326c: ISZERO 0000326d: PUSH2 0x3274 00003270: JUMPI 00003271: PUSH0 00003272: PUSH0 00003273: REVERT 00003274: JUMPDEST 00003275: PUSH2 0x3280 00003278: DUP6 00003279: DUP3 0000327a: DUP7 0000327b: ADD 0000327c: PUSH2 0x31b1 0000327f: JUMP 00003280: JUMPDEST 00003281: SWAP2 00003282: POP 00003283: POP 00003284: SWAP3 00003285: POP 00003286: SWAP3 00003287: SWAP1 00003288: POP 00003289: JUMP 0000328a: JUMPDEST 0000328b: PUSH0 0000328c: PUSH0 0000328d: PUSH0 0000328e: PUSH0 0000328f: PUSH1 0x80 00003291: DUP6 00003292: DUP8 00003293: SUB 00003294: SLT 00003295: ISZERO 00003296: PUSH2 0x329d 00003299: JUMPI 0000329a: PUSH0 0000329b: PUSH0 0000329c: REVERT 0000329d: JUMPDEST 0000329e: PUSH2 0x32a6 000032a1: DUP6 000032a2: PUSH2 0x309f 000032a5: JUMP 000032a6: JUMPDEST 000032a7: SWAP4 000032a8: POP 000032a9: PUSH1 0x20 000032ab: DUP6 000032ac: ADD 000032ad: CALLDATALOAD 000032ae: PUSH1 0x01 000032b0: PUSH1 0x01 000032b2: PUSH1 0x40 000032b4: SHL 000032b5: SUB 000032b6: DUP2 000032b7: GT 000032b8: ISZERO 000032b9: PUSH2 0x32c0 000032bc: JUMPI 000032bd: PUSH0 000032be: PUSH0 000032bf: REVERT 000032c0: JUMPDEST 000032c1: PUSH2 0x32cc 000032c4: DUP8 000032c5: DUP3 000032c6: DUP9 000032c7: ADD 000032c8: PUSH2 0x31b1 000032cb: JUMP 000032cc: JUMPDEST 000032cd: SWAP4 000032ce: POP 000032cf: POP 000032d0: PUSH1 0x40 000032d2: DUP6 000032d3: ADD 000032d4: CALLDATALOAD 000032d5: PUSH1 0x01 000032d7: PUSH1 0x01 000032d9: PUSH1 0x40 000032db: SHL 000032dc: SUB 000032dd: DUP2 000032de: GT 000032df: ISZERO 000032e0: PUSH2 0x32e7 000032e3: JUMPI 000032e4: PUSH0 000032e5: PUSH0 000032e6: REVERT 000032e7: JUMPDEST 000032e8: PUSH2 0x32f3 000032eb: DUP8 000032ec: DUP3 000032ed: DUP9 000032ee: ADD 000032ef: PUSH2 0x31b1 000032f2: JUMP 000032f3: JUMPDEST 000032f4: SWAP3 000032f5: POP 000032f6: POP 000032f7: PUSH2 0x3302 000032fa: PUSH1 0x60 000032fc: DUP7 000032fd: ADD 000032fe: PUSH2 0x309f 00003301: JUMP 00003302: JUMPDEST 00003303: SWAP1 00003304: POP 00003305: SWAP3 00003306: SWAP6 00003307: SWAP2 00003308: SWAP5 00003309: POP 0000330a: SWAP3 0000330b: POP 0000330c: JUMP 0000330d: JUMPDEST 0000330e: PUSH0 0000330f: PUSH0 00003310: PUSH1 0x40 00003312: DUP4 00003313: DUP6 00003314: SUB 00003315: SLT 00003316: ISZERO 00003317: PUSH2 0x331e 0000331a: JUMPI 0000331b: PUSH0 0000331c: PUSH0 0000331d: REVERT 0000331e: JUMPDEST 0000331f: POP 00003320: POP 00003321: DUP1 00003322: CALLDATALOAD 00003323: SWAP3 00003324: PUSH1 0x20 00003326: SWAP1 00003327: SWAP2 00003328: ADD 00003329: CALLDATALOAD 0000332a: SWAP2 0000332b: POP 0000332c: JUMP 0000332d: JUMPDEST 0000332e: PUSH0 0000332f: PUSH0 00003330: PUSH0 00003331: PUSH0 00003332: PUSH0 00003333: PUSH1 0xa0 00003335: DUP7 00003336: DUP9 00003337: SUB 00003338: SLT 00003339: ISZERO 0000333a: PUSH2 0x3341 0000333d: JUMPI 0000333e: PUSH0 0000333f: PUSH0 00003340: REVERT 00003341: JUMPDEST 00003342: PUSH2 0x334a 00003345: DUP7 00003346: PUSH2 0x309f 00003349: JUMP 0000334a: JUMPDEST 0000334b: SWAP5 0000334c: POP 0000334d: PUSH2 0x3358 00003350: PUSH1 0x20 00003352: DUP8 00003353: ADD 00003354: PUSH2 0x309f 00003357: JUMP 00003358: JUMPDEST 00003359: SWAP4 0000335a: POP 0000335b: PUSH1 0x40 0000335d: DUP7 0000335e: ADD 0000335f: CALLDATALOAD 00003360: SWAP3 00003361: POP 00003362: PUSH1 0x60 00003364: DUP7 00003365: ADD 00003366: CALLDATALOAD 00003367: SWAP2 00003368: POP 00003369: PUSH1 0x80 0000336b: DUP7 0000336c: ADD 0000336d: CALLDATALOAD 0000336e: PUSH1 0x01 00003370: PUSH1 0x01 00003372: PUSH1 0x40 00003374: SHL 00003375: SUB 00003376: DUP2 00003377: GT 00003378: ISZERO 00003379: PUSH2 0x3380 0000337c: JUMPI 0000337d: PUSH0 0000337e: PUSH0 0000337f: REVERT 00003380: JUMPDEST 00003381: PUSH2 0x338c 00003384: DUP9 00003385: DUP3 00003386: DUP10 00003387: ADD 00003388: PUSH2 0x31b1 0000338b: JUMP 0000338c: JUMPDEST 0000338d: SWAP2 0000338e: POP 0000338f: POP 00003390: SWAP3 00003391: SWAP6 00003392: POP 00003393: SWAP3 00003394: SWAP6 00003395: SWAP1 00003396: SWAP4 00003397: POP 00003398: JUMP 00003399: JUMPDEST 0000339a: PUSH1 0x20 0000339c: DUP1 0000339d: DUP3 0000339e: MSTORE 0000339f: DUP3 000033a0: MLOAD 000033a1: DUP3 000033a2: DUP3 000033a3: ADD 000033a4: DUP2 000033a5: SWAP1 000033a6: MSTORE 000033a7: PUSH0 000033a8: SWAP2 000033a9: DUP5 000033aa: ADD 000033ab: SWAP1 000033ac: PUSH1 0x40 000033ae: DUP5 000033af: ADD 000033b0: SWAP1 000033b1: DUP4 000033b2: JUMPDEST 000033b3: DUP2 000033b4: DUP2 000033b5: LT 000033b6: ISZERO 000033b7: PUSH2 0x33d9 000033ba: JUMPI 000033bb: DUP4 000033bc: MLOAD 000033bd: PUSH1 0x01 000033bf: PUSH1 0x01 000033c1: PUSH1 0xa0 000033c3: SHL 000033c4: SUB 000033c5: AND 000033c6: DUP4 000033c7: MSTORE 000033c8: PUSH1 0x20 000033ca: SWAP4 000033cb: DUP5 000033cc: ADD 000033cd: SWAP4 000033ce: SWAP1 000033cf: SWAP3 000033d0: ADD 000033d1: SWAP2 000033d2: PUSH1 0x01 000033d4: ADD 000033d5: PUSH2 0x33b2 000033d8: JUMP 000033d9: JUMPDEST 000033da: POP 000033db: SWAP1 000033dc: SWAP6 000033dd: SWAP5 000033de: POP 000033df: POP 000033e0: POP 000033e1: POP 000033e2: POP 000033e3: JUMP 000033e4: JUMPDEST 000033e5: PUSH0 000033e6: PUSH0 000033e7: PUSH0 000033e8: PUSH1 0x60 000033ea: DUP5 000033eb: DUP7 000033ec: SUB 000033ed: SLT 000033ee: ISZERO 000033ef: PUSH2 0x33f6 000033f2: JUMPI 000033f3: PUSH0 000033f4: PUSH0 000033f5: REVERT 000033f6: JUMPDEST 000033f7: DUP4 000033f8: CALLDATALOAD 000033f9: SWAP3 000033fa: POP 000033fb: PUSH2 0x3406 000033fe: PUSH1 0x20 00003400: DUP6 00003401: ADD 00003402: PUSH2 0x309f 00003405: JUMP 00003406: JUMPDEST 00003407: SWAP2 00003408: POP 00003409: PUSH2 0x3414 0000340c: PUSH1 0x40 0000340e: DUP6 0000340f: ADD 00003410: PUSH2 0x309f 00003413: JUMP 00003414: JUMPDEST 00003415: SWAP1 00003416: POP 00003417: SWAP3 00003418: POP 00003419: SWAP3 0000341a: POP 0000341b: SWAP3 0000341c: JUMP 0000341d: JUMPDEST 0000341e: PUSH1 0xff 00003420: DUP2 00003421: AND 00003422: DUP2 00003423: EQ 00003424: PUSH2 0x209c 00003427: JUMPI 00003428: PUSH0 00003429: PUSH0 0000342a: REVERT 0000342b: JUMPDEST 0000342c: PUSH0 0000342d: PUSH0 0000342e: PUSH0 0000342f: PUSH0 00003430: PUSH0 00003431: PUSH0 00003432: PUSH0 00003433: PUSH1 0xe0 00003435: DUP9 00003436: DUP11 00003437: SUB 00003438: SLT 00003439: ISZERO 0000343a: PUSH2 0x3441 0000343d: JUMPI 0000343e: PUSH0 0000343f: PUSH0 00003440: REVERT 00003441: JUMPDEST 00003442: PUSH2 0x344a 00003445: DUP9 00003446: PUSH2 0x309f 00003449: JUMP 0000344a: JUMPDEST 0000344b: SWAP7 0000344c: POP 0000344d: PUSH2 0x3458 00003450: PUSH1 0x20 00003452: DUP10 00003453: ADD 00003454: PUSH2 0x309f 00003457: JUMP 00003458: JUMPDEST 00003459: SWAP6 0000345a: POP 0000345b: PUSH1 0x40 0000345d: DUP9 0000345e: ADD 0000345f: CALLDATALOAD 00003460: SWAP5 00003461: POP 00003462: PUSH1 0x60 00003464: DUP9 00003465: ADD 00003466: CALLDATALOAD 00003467: SWAP4 00003468: POP 00003469: PUSH1 0x80 0000346b: DUP9 0000346c: ADD 0000346d: CALLDATALOAD 0000346e: PUSH2 0x3476 00003471: DUP2 00003472: PUSH2 0x341d 00003475: JUMP 00003476: JUMPDEST 00003477: SWAP7 00003478: SWAP10 00003479: SWAP6 0000347a: SWAP9 0000347b: POP 0000347c: SWAP4 0000347d: SWAP7 0000347e: SWAP3 0000347f: SWAP6 00003480: SWAP5 00003481: PUSH1 0xa0 00003483: DUP5 00003484: ADD 00003485: CALLDATALOAD 00003486: SWAP5 00003487: POP 00003488: PUSH1 0xc0 0000348a: SWAP1 0000348b: SWAP4 0000348c: ADD 0000348d: CALLDATALOAD 0000348e: SWAP3 0000348f: SWAP2 00003490: POP 00003491: POP 00003492: JUMP 00003493: JUMPDEST 00003494: PUSH0 00003495: PUSH0 00003496: PUSH1 0x40 00003498: DUP4 00003499: DUP6 0000349a: SUB 0000349b: SLT 0000349c: ISZERO 0000349d: PUSH2 0x34a4 000034a0: JUMPI 000034a1: PUSH0 000034a2: PUSH0 000034a3: REVERT 000034a4: JUMPDEST 000034a5: PUSH2 0x34ad 000034a8: DUP4 000034a9: PUSH2 0x309f 000034ac: JUMP 000034ad: JUMPDEST 000034ae: SWAP2 000034af: POP 000034b0: PUSH2 0x3194 000034b3: PUSH1 0x20 000034b5: DUP5 000034b6: ADD 000034b7: PUSH2 0x309f 000034ba: JUMP 000034bb: JUMPDEST 000034bc: PUSH1 0x01 000034be: DUP2 000034bf: DUP2 000034c0: SHR 000034c1: SWAP1 000034c2: DUP3 000034c3: AND 000034c4: DUP1 000034c5: PUSH2 0x34cf 000034c8: JUMPI 000034c9: PUSH1 0x7f 000034cb: DUP3 000034cc: AND 000034cd: SWAP2 000034ce: POP 000034cf: JUMPDEST 000034d0: PUSH1 0x20 000034d2: DUP3 000034d3: LT 000034d4: DUP2 000034d5: SUB 000034d6: PUSH2 0x34ed 000034d9: JUMPI 000034da: PUSH4 0x4e487b71 000034df: PUSH1 0xe0 000034e1: SHL 000034e2: PUSH0 000034e3: MSTORE 000034e4: PUSH1 0x22 000034e6: PUSH1 0x04 000034e8: MSTORE 000034e9: PUSH1 0x24 000034eb: PUSH0 000034ec: REVERT 000034ed: JUMPDEST 000034ee: POP 000034ef: SWAP2 000034f0: SWAP1 000034f1: POP 000034f2: JUMP 000034f3: JUMPDEST 000034f4: PUSH4 0x4e487b71 000034f9: PUSH1 0xe0 000034fb: SHL 000034fc: PUSH0 000034fd: MSTORE 000034fe: PUSH1 0x11 00003500: PUSH1 0x04 00003502: MSTORE 00003503: PUSH1 0x24 00003505: PUSH0 00003506: REVERT 00003507: JUMPDEST 00003508: DUP1 00003509: DUP3 0000350a: MUL 0000350b: DUP2 0000350c: ISZERO 0000350d: DUP3 0000350e: DUP3 0000350f: DIV 00003510: DUP5 00003511: EQ 00003512: OR 00003513: PUSH2 0x0c67 00003516: JUMPI 00003517: PUSH2 0x0c67 0000351a: PUSH2 0x34f3 0000351d: JUMP 0000351e: JUMPDEST 0000351f: PUSH4 0x4e487b71 00003524: PUSH1 0xe0 00003526: SHL 00003527: PUSH0 00003528: MSTORE 00003529: PUSH1 0x12 0000352b: PUSH1 0x04 0000352d: MSTORE 0000352e: PUSH1 0x24 00003530: PUSH0 00003531: REVERT 00003532: JUMPDEST 00003533: PUSH0 00003534: DUP3 00003535: PUSH2 0x354c 00003538: JUMPI 00003539: PUSH4 0x4e487b71 0000353e: PUSH1 0xe0 00003540: SHL 00003541: PUSH0 00003542: MSTORE 00003543: PUSH1 0x12 00003545: PUSH1 0x04 00003547: MSTORE 00003548: PUSH1 0x24 0000354a: PUSH0 0000354b: REVERT 0000354c: JUMPDEST 0000354d: POP 0000354e: DIV 0000354f: SWAP1 00003550: JUMP 00003551: JUMPDEST 00003552: PUSH0 00003553: PUSH1 0x20 00003555: DUP3 00003556: DUP5 00003557: SUB 00003558: SLT 00003559: ISZERO 0000355a: PUSH2 0x3561 0000355d: JUMPI 0000355e: PUSH0 0000355f: PUSH0 00003560: REVERT 00003561: JUMPDEST 00003562: POP 00003563: MLOAD 00003564: SWAP2 00003565: SWAP1 00003566: POP 00003567: JUMP 00003568: JUMPDEST 00003569: PUSH1 0x20 0000356b: DUP1 0000356c: DUP3 0000356d: MSTORE 0000356e: PUSH1 0x21 00003570: SWAP1 00003571: DUP3 00003572: ADD 00003573: MSTORE 00003574: PUSH32 0x537061726b5661756c742f696e73756666696369656e742d6c69717569646974 00003595: PUSH1 0x40 00003597: DUP3 00003598: ADD 00003599: MSTORE 0000359a: PUSH1 0x79 0000359c: PUSH1 0xf8 0000359e: SHL 0000359f: PUSH1 0x60 000035a1: DUP3 000035a2: ADD 000035a3: MSTORE 000035a4: PUSH1 0x80 000035a6: ADD 000035a7: SWAP1 000035a8: JUMP 000035a9: JUMPDEST 000035aa: PUSH1 0x20 000035ac: DUP1 000035ad: DUP3 000035ae: MSTORE 000035af: PUSH1 0x1a 000035b1: SWAP1 000035b2: DUP3 000035b3: ADD 000035b4: MSTORE 000035b5: PUSH32 0x537061726b5661756c742f696e76616c69642d61646472657373000000000000 000035d6: PUSH1 0x40 000035d8: DUP3 000035d9: ADD 000035da: MSTORE 000035db: PUSH1 0x60 000035dd: ADD 000035de: SWAP1 000035df: JUMP 000035e0: JUMPDEST 000035e1: PUSH1 0x20 000035e3: DUP1 000035e4: DUP3 000035e5: MSTORE 000035e6: PUSH1 0x1f 000035e8: SWAP1 000035e9: DUP3 000035ea: ADD 000035eb: MSTORE 000035ec: PUSH32 0x537061726b5661756c742f696e73756666696369656e742d62616c616e636500 0000360d: PUSH1 0x40 0000360f: DUP3 00003610: ADD 00003611: MSTORE 00003612: PUSH1 0x60 00003614: ADD 00003615: SWAP1 00003616: JUMP 00003617: JUMPDEST 00003618: PUSH1 0x20 0000361a: DUP1 0000361b: DUP3 0000361c: MSTORE 0000361d: PUSH1 0x21 0000361f: SWAP1 00003620: DUP3 00003621: ADD 00003622: MSTORE 00003623: PUSH32 0x537061726b5661756c742f696e73756666696369656e742d616c6c6f77616e63 00003644: PUSH1 0x40 00003646: DUP3 00003647: ADD 00003648: MSTORE 00003649: PUSH1 0x65 0000364b: PUSH1 0xf8 0000364d: SHL 0000364e: PUSH1 0x60 00003650: DUP3 00003651: ADD 00003652: MSTORE 00003653: PUSH1 0x80 00003655: ADD 00003656: SWAP1 00003657: JUMP 00003658: JUMPDEST 00003659: DUP2 0000365a: DUP2 0000365b: SUB 0000365c: DUP2 0000365d: DUP2 0000365e: GT 0000365f: ISZERO 00003660: PUSH2 0x0c67 00003663: JUMPI 00003664: PUSH2 0x0c67 00003667: PUSH2 0x34f3 0000366a: JUMP 0000366b: JUMPDEST 0000366c: PUSH1 0x1f 0000366e: DUP3 0000366f: GT 00003670: ISZERO 00003671: PUSH2 0x10a4 00003674: JUMPI 00003675: DUP1 00003676: PUSH0 00003677: MSTORE 00003678: PUSH1 0x20 0000367a: PUSH0 0000367b: KECCAK256 0000367c: PUSH1 0x1f 0000367e: DUP5 0000367f: ADD 00003680: PUSH1 0x05 00003682: SHR 00003683: DUP2 00003684: ADD 00003685: PUSH1 0x20 00003687: DUP6 00003688: LT 00003689: ISZERO 0000368a: PUSH2 0x3690 0000368d: JUMPI 0000368e: POP 0000368f: DUP1 00003690: JUMPDEST 00003691: PUSH1 0x1f 00003693: DUP5 00003694: ADD 00003695: PUSH1 0x05 00003697: SHR 00003698: DUP3 00003699: ADD 0000369a: SWAP2 0000369b: POP 0000369c: JUMPDEST 0000369d: DUP2 0000369e: DUP2 0000369f: LT 000036a0: ISZERO 000036a1: PUSH2 0x36af 000036a4: JUMPI 000036a5: PUSH0 000036a6: DUP2 000036a7: SSTORE 000036a8: PUSH1 0x01 000036aa: ADD 000036ab: PUSH2 0x369c 000036ae: JUMP 000036af: JUMPDEST 000036b0: POP 000036b1: POP 000036b2: POP 000036b3: POP 000036b4: POP 000036b5: JUMP 000036b6: JUMPDEST 000036b7: DUP2 000036b8: MLOAD 000036b9: PUSH1 0x01 000036bb: PUSH1 0x01 000036bd: PUSH1 0x40 000036bf: SHL 000036c0: SUB 000036c1: DUP2 000036c2: GT 000036c3: ISZERO 000036c4: PUSH2 0x36cf 000036c7: JUMPI 000036c8: PUSH2 0x36cf 000036cb: PUSH2 0x319d 000036ce: JUMP 000036cf: JUMPDEST 000036d0: PUSH2 0x36e3 000036d3: DUP2 000036d4: PUSH2 0x36dd 000036d7: DUP5 000036d8: SLOAD 000036d9: PUSH2 0x34bb 000036dc: JUMP 000036dd: JUMPDEST 000036de: DUP5 000036df: PUSH2 0x366b 000036e2: JUMP 000036e3: JUMPDEST 000036e4: PUSH1 0x20 000036e6: PUSH1 0x1f 000036e8: DUP3 000036e9: GT 000036ea: PUSH1 0x01 000036ec: DUP2 000036ed: EQ 000036ee: PUSH2 0x3715 000036f1: JUMPI 000036f2: PUSH0 000036f3: DUP4 000036f4: ISZERO 000036f5: PUSH2 0x36fe 000036f8: JUMPI 000036f9: POP 000036fa: DUP5 000036fb: DUP3 000036fc: ADD 000036fd: MLOAD 000036fe: JUMPDEST 000036ff: PUSH0 00003700: NOT 00003701: PUSH1 0x03 00003703: DUP6 00003704: SWAP1 00003705: SHL 00003706: SHR 00003707: NOT 00003708: AND 00003709: PUSH1 0x01 0000370b: DUP5 0000370c: SWAP1 0000370d: SHL 0000370e: OR 0000370f: DUP5 00003710: SSTORE 00003711: PUSH2 0x36af 00003714: JUMP 00003715: JUMPDEST 00003716: PUSH0 00003717: DUP5 00003718: DUP2 00003719: MSTORE 0000371a: PUSH1 0x20 0000371c: DUP2 0000371d: KECCAK256 0000371e: PUSH1 0x1f 00003720: NOT 00003721: DUP6 00003722: AND 00003723: SWAP2 00003724: JUMPDEST 00003725: DUP3 00003726: DUP2 00003727: LT 00003728: ISZERO 00003729: PUSH2 0x3744 0000372c: JUMPI 0000372d: DUP8 0000372e: DUP6 0000372f: ADD 00003730: MLOAD 00003731: DUP3 00003732: SSTORE 00003733: PUSH1 0x20 00003735: SWAP5 00003736: DUP6 00003737: ADD 00003738: SWAP5 00003739: PUSH1 0x01 0000373b: SWAP1 0000373c: SWAP3 0000373d: ADD 0000373e: SWAP2 0000373f: ADD 00003740: PUSH2 0x3724 00003743: JUMP 00003744: JUMPDEST 00003745: POP 00003746: DUP5 00003747: DUP3 00003748: LT 00003749: ISZERO 0000374a: PUSH2 0x3761 0000374d: JUMPI 0000374e: DUP7 0000374f: DUP5 00003750: ADD 00003751: MLOAD 00003752: PUSH0 00003753: NOT 00003754: PUSH1 0x03 00003756: DUP8 00003757: SWAP1 00003758: SHL 00003759: PUSH1 0xf8 0000375b: AND 0000375c: SHR 0000375d: NOT 0000375e: AND 0000375f: DUP2 00003760: SSTORE 00003761: JUMPDEST 00003762: POP 00003763: POP 00003764: POP 00003765: POP 00003766: PUSH1 0x01 00003768: SWAP1 00003769: DUP2 0000376a: SHL 0000376b: ADD 0000376c: SWAP1 0000376d: SSTORE 0000376e: POP 0000376f: JUMP 00003770: JUMPDEST 00003771: PUSH0 00003772: PUSH1 0x20 00003774: DUP3 00003775: DUP5 00003776: SUB 00003777: SLT 00003778: ISZERO 00003779: PUSH2 0x3780 0000377c: JUMPI 0000377d: PUSH0 0000377e: PUSH0 0000377f: REVERT 00003780: JUMPDEST 00003781: DUP2 00003782: MLOAD 00003783: PUSH2 0x0ffd 00003786: DUP2 00003787: PUSH2 0x341d 0000378a: JUMP 0000378b: JUMPDEST 0000378c: PUSH0 0000378d: PUSH0 0000378e: DUP4 0000378f: SLOAD 00003790: PUSH2 0x3798 00003793: DUP2 00003794: PUSH2 0x34bb 00003797: JUMP 00003798: JUMPDEST 00003799: PUSH1 0x01 0000379b: DUP3 0000379c: AND 0000379d: DUP1 0000379e: ISZERO 0000379f: PUSH2 0x37af 000037a2: JUMPI 000037a3: PUSH1 0x01 000037a5: DUP2 000037a6: EQ 000037a7: PUSH2 0x37c4 000037aa: JUMPI 000037ab: PUSH2 0x37f1 000037ae: JUMP 000037af: JUMPDEST 000037b0: PUSH1 0xff 000037b2: NOT 000037b3: DUP4 000037b4: AND 000037b5: DUP7 000037b6: MSTORE 000037b7: DUP2 000037b8: ISZERO 000037b9: ISZERO 000037ba: DUP3 000037bb: MUL 000037bc: DUP7 000037bd: ADD 000037be: SWAP4 000037bf: POP 000037c0: PUSH2 0x37f1 000037c3: JUMP 000037c4: JUMPDEST 000037c5: DUP7 000037c6: PUSH0 000037c7: MSTORE 000037c8: PUSH1 0x20 000037ca: PUSH0 000037cb: KECCAK256 000037cc: PUSH0 000037cd: JUMPDEST 000037ce: DUP4 000037cf: DUP2 000037d0: LT 000037d1: ISZERO 000037d2: PUSH2 0x37e9 000037d5: JUMPI 000037d6: DUP2 000037d7: SLOAD 000037d8: DUP9 000037d9: DUP3 000037da: ADD 000037db: MSTORE 000037dc: PUSH1 0x01 000037de: SWAP1 000037df: SWAP2 000037e0: ADD 000037e1: SWAP1 000037e2: PUSH1 0x20 000037e4: ADD 000037e5: PUSH2 0x37cd 000037e8: JUMP 000037e9: JUMPDEST 000037ea: POP 000037eb: POP 000037ec: DUP2 000037ed: DUP7 000037ee: ADD 000037ef: SWAP4 000037f0: POP 000037f1: JUMPDEST 000037f2: POP 000037f3: SWAP2 000037f4: SWAP6 000037f5: SWAP5 000037f6: POP 000037f7: POP 000037f8: POP 000037f9: POP 000037fa: POP 000037fb: JUMP 000037fc: JUMPDEST 000037fd: DUP1 000037fe: DUP3 000037ff: ADD 00003800: DUP1 00003801: DUP3 00003802: GT 00003803: ISZERO 00003804: PUSH2 0x0c67 00003807: JUMPI 00003808: PUSH2 0x0c67 0000380b: PUSH2 0x34f3 0000380e: JUMP 0000380f: JUMPDEST 00003810: DUP3 00003811: DUP2 00003812: MSTORE 00003813: PUSH1 0x40 00003815: PUSH1 0x20 00003817: DUP3 00003818: ADD 00003819: MSTORE 0000381a: PUSH0 0000381b: PUSH2 0x10d2 0000381e: PUSH1 0x40 00003820: DUP4 00003821: ADD 00003822: DUP5 00003823: PUSH2 0x3048 00003826: JUMP 00003827: JUMPDEST 00003828: PUSH0 00003829: DUP3 0000382a: MLOAD 0000382b: DUP1 0000382c: PUSH1 0x20 0000382e: DUP6 0000382f: ADD 00003830: DUP5 00003831: MCOPY 00003832: PUSH0 00003833: SWAP3 00003834: ADD 00003835: SWAP2 00003836: DUP3 00003837: MSTORE 00003838: POP 00003839: SWAP2 0000383a: SWAP1 0000383b: POP 0000383c: JUMP 0000383d: JUMPDEST 0000383e: PUSH0 0000383f: PUSH1 0x20 00003841: DUP3 00003842: DUP5 00003843: SUB 00003844: SLT 00003845: ISZERO 00003846: PUSH2 0x384d 00003849: JUMPI 0000384a: PUSH0 0000384b: PUSH0 0000384c: REVERT 0000384d: JUMPDEST 0000384e: DUP2 0000384f: MLOAD 00003850: PUSH2 0x0ffd 00003853: DUP2 00003854: PUSH2 0x3018 00003857: JUMP 00003858: JUMPDEST 00003859: PUSH4 0x4e487b71 0000385e: PUSH1 0xe0 00003860: SHL 00003861: PUSH0 00003862: MSTORE 00003863: PUSH1 0x32 00003865: PUSH1 0x04 00003867: MSTORE 00003868: PUSH1 0x24 0000386a: PUSH0 0000386b: REVERT 0000386c: JUMPDEST 0000386d: PUSH4 0x4e487b71 00003872: PUSH1 0xe0 00003874: SHL 00003875: PUSH0 00003876: MSTORE 00003877: PUSH1 0x31 00003879: PUSH1 0x04 0000387b: MSTORE 0000387c: PUSH1 0x24 0000387e: PUSH0 0000387f: REVERT 00003880: INVALID 00003881: UNKNOWN(0xC1) 00003882: UNKNOWN(0xF6) 00003883: INVALID 00003884: UNKNOWN(0x24) 00003885: PUSH3 0x1ce81e 00003889: UNKNOWN(0xC5) 0000388a: DUP3 0000388b: PUSH29 0xaf0253cadb74709b061630e6b55e82371705932000360894a13ba1a321 000038a9: MOD 000038aa: PUSH8 0xc828492db98dca3e 000038b3: KECCAK256 000038b4: PUSH23 0xcc3735a920a3ca505d382bbcddf252ad1be2c89b69c2b0 000038cc: PUSH9 0xfc378daa952ba7f163 000038d6: UNKNOWN(0xC4) 000038d7: LOG1 000038d8: AND 000038d9: UNKNOWN(0x28) 000038da: CREATE2 000038db: GAS 000038dc: UNKNOWN(0x4D) 000038dd: CREATE2 000038de: UNKNOWN(0x23) 000038df: UNKNOWN(0xB3) 000038e0: UNKNOWN(0xEF) 000038e1: MUL 000038e2: UNKNOWN(0xDD) 000038e3: PUSH28 0xc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268 00003900: STOP 00003901: POP 00003902: DUP15 00003903: UNKNOWN(0xE8) 00003904: UNKNOWN(0x2D) 00003905: SIGNEXTEND 00003906: UNKNOWN(0xDF) 00003907: DIV 00003908: UNKNOWN(0xE0) 00003909: STOP 0000390a: ADDRESS 0000390b: GASPRICE 0000390c: UNKNOWN(0xB4) 0000390d: CREATE 0000390e: UNKNOWN(0x2B) 0000390f: OR 00003910: UNKNOWN(0x2E) 00003911: PUSH1 0xc5 00003913: CALLCODE 00003914: UNKNOWN(0xD3) 00003915: JUMPDEST 00003916: UNKNOWN(0x2E) 00003917: SSTORE 00003918: SWAP12 00003919: SDIV 0000391a: UNKNOWN(0xBE) 0000391b: UNKNOWN(0xD2) 0000391c: UNKNOWN(0xCF) 0000391d: BLOCKHASH 0000391e: EXTCODESIZE 0000391f: UNKNOWN(0xB5) 00003920: DUP12 00003921: LOG2 00003922: PUSH5 0x6970667358 00003928: UNKNOWN(0x22) 00003929: SLT 0000392a: KECCAK256 0000392b: ORIGIN 0000392c: SWAP1 0000392d: ADDRESS 0000392e: UNKNOWN(0xD6) 0000392f: UNKNOWN(0xD6) 00003930: SWAP15 00003931: UNKNOWN(0xB7) 00003932: UNKNOWN(0xB2) 00003933: STATICCALL 00003934: UNKNOWN(0x1F) 00003935: DUP8 00003936: PUSH7 0x70e9b93d587817 0000393e: CALLER 0000393f: SAR 00003940: UNKNOWN(0xD4) 00003941: UNKNOWN(0xBC) 00003942: UNKNOWN(0xBB) 00003943: PUSH10 0xee4149cbe18f3764736f 0000394e: PUSH13
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xd9d5f4cb",
"selector": "0xd9d5f4cb",
"calldata_variants": [
"0xd9d5f4cb",
"0xd9d5f4cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbd5edc7",
"selector": "0xdbd5edc7",
"calldata_variants": [
"0xdbd5edc7",
"0xdbd5edc70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf65de94a",
"selector": "0xf65de94a",
"calldata_variants": [
"0xf65de94a",
"0xf65de94a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xce96cb77",
"selector": "0xce96cb77",
"calldata_variants": [
"0xce96cb77",
"0xce96cb770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 14635,
"type": "tx_origin_used"
}
]
}
|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0xea640c94c92ac61c3aa53a17d67d376d895a586832de622021cd5606809638bf
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0xea640c94c92ac61c3aa53a17d67d376d895a586832de622021cd5606809638bf",
"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": "0xd9d5f4cb",
"selector": "0xd9d5f4cb",
"calldata_variants": [
"0xd9d5f4cb",
"0xd9d5f4cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbd5edc7",
"selector": "0xdbd5edc7",
"calldata_variants": [
"0xdbd5edc7",
"0xdbd5edc70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf65de94a",
"selector": "0xf65de94a",
"calldata_variants": [
"0xf65de94a",
"0xf65de94a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xce96cb77",
"selector": "0xce96cb77",
"calldata_variants": [
"0xce96cb77",
"0xce96cb770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 11909,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 14635,
"type": "tx_origin_used"
}
],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xb1aa4a5ec2b9dea5e894433c33f11b2887f1ef58a353b22d65a502546f58a8ee
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xb1aa4a5ec2b9dea5e894433c33f11b2887f1ef58a353b22d65a502546f58a8ee",
"confirmed": false,
"trace_mode": "structLogs",
"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": "0xd9d5f4cb",
"selector": "0xd9d5f4cb",
"calldata_variants": [
"0xd9d5f4cb",
"0xd9d5f4cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbd5edc7",
"selector": "0xdbd5edc7",
"calldata_variants": [
"0xdbd5edc7",
"0xdbd5edc70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf65de94a",
"selector": "0xf65de94a",
"calldata_variants": [
"0xf65de94a",
"0xf65de94a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xce96cb77",
"selector": "0xce96cb77",
"calldata_variants": [
"0xce96cb77",
"0xce96cb770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 2
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | reentrancy | codex | Deposit cap can be bypassed via reentrancy during asset transfer | 75 | no | — |
viewevidence_json{
"evidence": "`_mint` checks `totalAssets() + assets <= depositCap` and then calls `_pullAsset` (external) before updating `totalSupply`/`balanceOf`.",
"locations": [
"contracts/src/SparkVault.sol:442",
"contracts/src/SparkVault.sol:450",
"contracts/src/SparkVault.sol:452",
"contracts/src/SparkVault.sol:465"
],
"recommendation": "Apply checks-effects-interactions: update `totalSupply`/balances before external calls and revert on failure, or add `nonReentrant` to `deposit`/`mint`, or enforce the cap using a pre-updated local accumulator to prevent reentrancy bypasses.",
"exploit_scenario": "If the underlying asset invokes callbacks (e.g., ERC777 hooks or a malicious ERC20), a depositor can reenter `deposit`/`mint` during `_pullAsset`. Because `totalSupply` is only updated after the external transfer, each reentrant call sees the same pre-mint `totalAssets()` and passes the cap check, resulting in `totalAssets` exceeding `depositCap` after the stack unwinds."
}
|
| medium | other | codex | Fee-on-transfer or deflationary assets break share accounting | 75 | no | — |
viewevidence_json{
"evidence": "Shares are minted from the input `assets` while `_pullAsset` does not verify the actual amount received.",
"locations": [
"contracts/src/SparkVault.sol:442",
"contracts/src/SparkVault.sol:452",
"contracts/src/SparkVault.sol:465"
],
"recommendation": "Either explicitly restrict `asset` to non-deflationary ERC20s or compute `actualReceived` by checking balance before/after `_pullAsset` and mint shares based on that delta.",
"exploit_scenario": "For fee-on-transfer tokens, a user can deposit `assets` where the vault receives fewer tokens than `assets`, yet shares are minted for the full amount. If there is sufficient liquidity (from other users), the depositor can later redeem more assets than were actually received, diluting other holders or causing insolvency/withdrawal failures."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x21b0e1cd540ee58328fd1917148eaa288f607123729ba27c8b100e1e104bb34c
call_targets:
0x1b992302652a92611dcd5090d1cb388c6377f455
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x21b0e1cd540ee58328fd1917148eaa288f607123729ba27c8b100e1e104bb34c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1b992302652a92611dcd5090d1cb388c6377f455"
],
"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": "0xd9d5f4cb",
"selector": "0xd9d5f4cb",
"calldata_variants": [
"0xd9d5f4cb",
"0xd9d5f4cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbd5edc7",
"selector": "0xdbd5edc7",
"calldata_variants": [
"0xdbd5edc7",
"0xdbd5edc70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf65de94a",
"selector": "0xf65de94a",
"calldata_variants": [
"0xf65de94a",
"0xf65de94a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xce96cb77",
"selector": "0xce96cb77",
"calldata_variants": [
"0xce96cb77",
"0xce96cb770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 12030,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant_zero",
"target_expression_category": "computed"
},
{
"pc": 14611,
"opcode": "CALLCODE",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 14635,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 2
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x21b0e1cd540ee58328fd1917148eaa288f607123729ba27c8b100e1e104bb34c
call_targets:
0x1b992302652a92611dcd5090d1cb388c6377f455
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x21b0e1cd540ee58328fd1917148eaa288f607123729ba27c8b100e1e104bb34c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1b992302652a92611dcd5090d1cb388c6377f455"
],
"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": "0xd9d5f4cb",
"selector": "0xd9d5f4cb",
"calldata_variants": [
"0xd9d5f4cb",
"0xd9d5f4cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbd5edc7",
"selector": "0xdbd5edc7",
"calldata_variants": [
"0xdbd5edc7",
"0xdbd5edc70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf65de94a",
"selector": "0xf65de94a",
"calldata_variants": [
"0xf65de94a",
"0xf65de94a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xce96cb77",
"selector": "0xce96cb77",
"calldata_variants": [
"0xce96cb77",
"0xce96cb770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 14611,
"opcode": "CALLCODE",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 14635,
"type": "tx_origin_used"
}
]
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 2
}
|
| low | auth | codex | Permit accepts malleable ECDSA signatures | 65 | no | — |
viewevidence_json{
"evidence": "`_isValidSignature` calls `ecrecover` directly without `s`/`v` normalization checks.",
"locations": [
"contracts/src/SparkVault.sol:497",
"contracts/src/SparkVault.sol:511"
],
"recommendation": "Use OpenZeppelin\u2019s `ECDSA.recover` (or add explicit `s`/`v` checks) before accepting the signature.",
"exploit_scenario": "Because `ecrecover` is used without enforcing `s` in the lower half-order or validating `v`, the same permit digest can have multiple valid signatures. This can break integrations that assume signature uniqueness or allow alternate signatures to be replayed by relayers."
}
|
| 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": 6
}
|
| 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": 13
}
|