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

Analysis Run

0594de5c-02e2-4e9e-aa9a-5ac4784ca5ff

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

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
ETH value transfer possible
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30508 report.consolidate complete 1 / 1 3 months ago
103907 artifact.fetch complete 1 / 3 1 week ago
103908 tool.cast_disasm complete 1 / 3 1 week ago
103909 analysis.bundle complete 1 / 3 1 week ago
103910 capability.graph complete 1 / 3 1 week ago
103911 detector.run complete 1 / 3 1 week ago
103912 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Found a low-severity signature-validation gap and a malformed-hook-data edge case that can lead to unintended behavior under malformed inputs.
View stderr
[codex:1369693] OpenAI Codex v0.77.0 (research preview)
[codex:1369693] --------
[codex:1369693] workdir: /tmp/codex-multi-4ojmwrzc
[codex:1369693] model: gpt-5.2-codex
[codex:1369693] provider: openai
[codex:1369693] approval: never
[codex:1369693] sandbox: read-only
[codex:1369693] reasoning effort: xhigh
[codex:1369693] reasoning summaries: auto
[codex:1369693] session id: 019b6a8e-07b7-74f2-a0e1-6d1d22081f59
[codex:1369693] --------
[codex:1369693] user
[codex:1369693] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1369693] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1369693] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1369693] 
[codex:1369693] Scope rules:
[codex:1369693] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1369693] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1369693] 
[codex:1369693] Output MUST be valid JSON matching the provided schema.
[codex:1369693] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1369693] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1369693] 
[codex:1369693] Output constraints (IMPORTANT):
[codex:1369693] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1369693] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1369693] mcp startup: no servers
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Checking for audit skills**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc ls in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] AUDIT_BUNDLE.txt
[codex:1369693] codex-output-schema.json
[codex:1369693] contracts
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Checking AUDIT_BUNDLE file**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1369693] 
[codex:1369693] ================================================================================
[codex:1369693] FILE: contracts/lib/forge-std/src/interfaces/IERC20.sol
[codex:1369693] ================================================================================
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity >=0.6.2;
[codex:1369693] 
[codex:1369693] /// @dev Interface of the ERC20 standard as defined in the EIP.
[codex:1369693] /// @dev This includes the optional name, symbol, and decimals metadata.
[codex:1369693] interface IERC20 {
[codex:1369693]     /// @dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`).
[codex:1369693]     event Transfer(address indexed from, address indexed to, uint256 value);
[codex:1369693] 
[codex:1369693]     /// @dev Emitted when the allowance of a `spender` for an `owner` is set, where `value`
[codex:1369693]     /// is the new allowance.
[codex:1369693]     event Approval(address indexed owner, address indexed spender, uint256 value);
[codex:1369693] 
[codex:1369693]     /// @notice Returns the amount of tokens in existence.
[codex:1369693]     function totalSupply() external view returns (uint256);
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Searching for contract source files**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'rg --files contracts/src' in /tmp/codex-multi-4ojmwrzc succeeded in 8ms:
[codex:1369693] contracts/src/Angstrom.sol
[codex:1369693] contracts/src/interfaces/IHooks.sol
[codex:1369693] contracts/src/interfaces/IDaiPermit.sol
[codex:1369693] contracts/src/interfaces/IUniV4.sol
[codex:1369693] contracts/src/interfaces/IERC2612.sol
[codex:1369693] contracts/src/interfaces/IAngstromComposable.sol
[codex:1369693] contracts/src/interfaces/IAngstromAuth.sol
[codex:1369693] contracts/src/libraries/TickLib.sol
[codex:1369693] contracts/src/libraries/SignatureLib.sol
[codex:1369693] contracts/src/libraries/X128MathLib.sol
[codex:1369693] contracts/src/libraries/RayMathLib.sol
[codex:1369693] contracts/src/libraries/MixedSignLib.sol
[codex:1369693] contracts/src/libraries/PoolConfigStore.sol
[codex:1369693] contracts/src/types/DeltaTracker.sol
[codex:1369693] contracts/src/types/StoreKey.sol
[codex:1369693] contracts/src/types/SwapCall.sol
[codex:1369693] contracts/src/types/Asset.sol
[codex:1369693] contracts/src/types/CalldataReader.sol
[codex:1369693] contracts/src/types/ConfigBuffer.sol
[codex:1369693] contracts/src/types/PoolRewards.sol
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Preparing to fully inspect AUDIT_BUNDLE.txt**
[codex:1369693] 
[codex:1369693] I need to make sure to load and fully read the large AUDIT_BUNDLE.txt file into memory using Python to properly comply with the instructions. Since direct command output truncates, I'll rely on a script approach to handle the file content programmatically and then explore relevant sections or disclaimers.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "python - <<'PY'
[codex:1369693] from pathlib import Path
[codex:1369693] p=Path('AUDIT_BUNDLE.txt')
[codex:1369693] text=p.read_text()
[codex:1369693] print(len(text))
[codex:1369693] print(text[:200])
[codex:1369693] print(text[-200:])
[codex:1369693] PY" in /tmp/codex-multi-4ojmwrzc succeeded in 42ms:
[codex:1369693] 399703
[codex:1369693] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1369693] 
[codex:1369693] ================================================================================
[codex:1369693] FILE: contracts/lib/forge-std/s
[codex:1369693] riant) & IS_EXACT_IN_BIT != 0;
[codex:1369693]     }
[codex:1369693] 
[codex:1369693]     function isEcdsa(UserOrderVariantMap variant) internal pure returns (bool) {
[codex:1369693]         return UserOrderVariantMap.unwrap(variant) & IS_ECDSA_BIT != 0;
[codex:1369693]     }
[codex:1369693] }
[codex:1369693] 
[codex:1369693] 
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Opening main contract file**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/Angstrom.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity =0.8.26;
[codex:1369693] 
[codex:1369693] import {EIP712} from "solady/src/utils/EIP712.sol";
[codex:1369693] import {TopLevelAuth} from "./modules/TopLevelAuth.sol";
[codex:1369693] import {Settlement} from "./modules/Settlement.sol";
[codex:1369693] import {PoolUpdates} from "./modules/PoolUpdates.sol";
[codex:1369693] import {UnlockHook} from "./modules/UnlockHook.sol";
[codex:1369693] import {OrderInvalidation} from "./modules/OrderInvalidation.sol";
[codex:1369693] import {IPoolManager} from "v4-core/src/interfaces/IPoolManager.sol";
[codex:1369693] import {UniConsumer} from "./modules/UniConsumer.sol";
[codex:1369693] import {PermitSubmitterHook} from "./modules/PermitSubmitterHook.sol";
[codex:1369693] import {IUnlockCallback} from "v4-core/src/interfaces/callback/IUnlockCallback.sol";
[codex:1369693] 
[codex:1369693] import {CalldataReader, CalldataReaderLib} from "./types/CalldataReader.sol";
[codex:1369693] import {AssetArray, AssetLib} from "./types/Asset.sol";
[codex:1369693] import {PairArray, PairLib} from "./types/Pair.sol";
[codex:1369693] import {TypedDataHasher, TypedDataHasherLib} from "./types/TypedDataHasher.sol";
[codex:1369693] import {HookBuffer, HookBufferLib} from "./types/HookBuffer.sol";
[codex:1369693] import {SignatureLib} from "./libraries/SignatureLib.sol";
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '240,520p' contracts/src/Angstrom.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693]         // Push before hook as a potential loan.
[codex:1369693]         address to = buffer.recipient;
[codex:1369693]         assembly ("memory-safe") {
[codex:1369693]             to := or(mul(iszero(to), from), to)
[codex:1369693]         }
[codex:1369693]         _settleOrderOut(to, buffer.assetOut, amountOut, buffer.useInternal);
[codex:1369693] 
[codex:1369693]         hook.tryTrigger(from);
[codex:1369693] 
[codex:1369693]         _settleOrderIn(from, buffer.assetIn, amountIn, buffer.useInternal);
[codex:1369693] 
[codex:1369693]         return reader;
[codex:1369693]     }
[codex:1369693] 
[codex:1369693]     function _domainNameAndVersion()
[codex:1369693]         internal
[codex:1369693]         pure
[codex:1369693]         override
[codex:1369693]         returns (string memory, string memory)
[codex:1369693]     {
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Inspecting key modules**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/TopLevelAuth.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.26;
[codex:1369693] 
[codex:1369693] import {IAngstromAuth, ConfigEntryUpdate} from "../interfaces/IAngstromAuth.sol";
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693] import {EIP712} from "solady/src/utils/EIP712.sol";
[codex:1369693] 
[codex:1369693] import {PoolConfigStore, PoolConfigStoreLib} from "../libraries/PoolConfigStore.sol";
[codex:1369693] import {StoreKey, StoreKeyLib} from "../types/StoreKey.sol";
[codex:1369693] import {ConfigEntry, ConfigEntryLib} from "../types/ConfigEntry.sol";
[codex:1369693] import {ConfigBuffer} from "../types/ConfigBuffer.sol";
[codex:1369693] import {IHooks} from "v4-core/src/interfaces/IHooks.sol";
[codex:1369693] import {PoolKey} from "v4-core/src/types/PoolKey.sol";
[codex:1369693] import {SafeCastLib} from "solady/src/utils/SafeCastLib.sol";
[codex:1369693] import {LPFeeLibrary} from "v4-core/src/libraries/LPFeeLibrary.sol";
[codex:1369693] import {SafeTransferLib} from "solady/src/utils/SafeTransferLib.sol";
[codex:1369693] import {SignatureCheckerLib} from "solady/src/utils/SignatureCheckerLib.sol";
[codex:1369693] import {UnlockSwapFeeCollector} from "./UnlockSwapFeeCollector.sol";
[codex:1369693] 
[codex:1369693] /// @dev Maximum fee that the `bundleFee` for any given pool should be settable to.
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Examining TopLevelAuth module details**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/Settlement.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693] import {IERC20} from "forge-std/interfaces/IERC20.sol";
[codex:1369693] 
[codex:1369693] import {DeltaTracker} from "../types/DeltaTracker.sol";
[codex:1369693] import {AssetArray, Asset, FEE_SUMMARY_ENTRY_SIZE} from "../types/Asset.sol";
[codex:1369693] import {AmountA as AmountOut, AmountB as AmountIn} from "../types/Price.sol";
[codex:1369693] import {SafeTransferLib} from "solady/src/utils/SafeTransferLib.sol";
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Handles settlement as well as maintaining Angstrom's solvency invariant.
[codex:1369693] abstract contract Settlement is UniConsumer {
[codex:1369693]     using SafeTransferLib for address;
[codex:1369693] 
[codex:1369693]     error BundlDeltaUnresolved(address asset);
[codex:1369693] 
[codex:1369693]     DeltaTracker internal bundleDeltas;
[codex:1369693] 
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential reentrancy risks**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/OrderInvalidation.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] abstract contract OrderInvalidation {
[codex:1369693]     error NonceReuse();
[codex:1369693]     error OrderAlreadyExecuted();
[codex:1369693]     error Expired();
[codex:1369693] 
[codex:1369693]     /// @dev `keccak256("angstrom-v1_0.unordered-nonces.slot")[0:4]`
[codex:1369693]     uint256 private constant UNORDERED_NONCES_SLOT = 0xdaa050e9;
[codex:1369693] 
[codex:1369693]     function invalidateNonce(uint64 nonce) external {
[codex:1369693]         _invalidateNonce(msg.sender, nonce);
[codex:1369693]     }
[codex:1369693] 
[codex:1369693]     function _checkDeadline(uint256 deadline) internal view {
[codex:1369693]         if (block.timestamp > deadline) revert Expired();
[codex:1369693]     }
[codex:1369693] 
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing order hash invalidation logic**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/UnlockHook.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] import {IBeforeSwapHook, IAfterSwapHook} from "../interfaces/IHooks.sol";
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693] import {TopLevelAuth} from "./TopLevelAuth.sol";
[codex:1369693] import {PoolConfigStoreLib} from "../libraries/PoolConfigStore.sol";
[codex:1369693] import {StoreKey, StoreKeyLib} from "../types/StoreKey.sol";
[codex:1369693] import {tint256} from "transient-goodies/TransientPrimitives.sol";
[codex:1369693] 
[codex:1369693] import {IUniV4, IPoolManager} from "../interfaces/IUniV4.sol";
[codex:1369693] import {BeforeSwapDelta} from "v4-core/src/types/BeforeSwapDelta.sol";
[codex:1369693] import {BalanceDelta} from "v4-core/src/types/BalanceDelta.sol";
[codex:1369693] import {PoolKey} from "v4-core/src/types/PoolKey.sol";
[codex:1369693] import {LPFeeLibrary} from "v4-core/src/libraries/LPFeeLibrary.sol";
[codex:1369693] import {PoolId} from "v4-core/src/types/PoolId.sol";
[codex:1369693] 
[codex:1369693] import {PoolUpdates} from "./PoolUpdates.sol";
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing unlock logic and hook consistency**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/PoolUpdates.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] import {GrowthOutsideUpdater} from "./GrowthOutsideUpdater.sol";
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693] import {Settlement} from "./Settlement.sol";
[codex:1369693] import {TopLevelAuth} from "./TopLevelAuth.sol";
[codex:1369693] import {IBeforeAddLiquidityHook, IBeforeRemoveLiquidityHook} from "../interfaces/IHooks.sol";
[codex:1369693] 
[codex:1369693] import {PairArray} from "../types/Pair.sol";
[codex:1369693] import {CalldataReader} from "../types/CalldataReader.sol";
[codex:1369693] import {PoolRewards} from "../types/PoolRewards.sol";
[codex:1369693] import {Positions, Position} from "../types/Positions.sol";
[codex:1369693] import {SwapCall, SwapCallLib} from "../types/SwapCall.sol";
[codex:1369693] import {PoolUpdateVariantMap} from "../types/PoolUpdateVariantMap.sol";
[codex:1369693] 
[codex:1369693] import {SignedUnsignedLib} from "super-sol/libraries/SignedUnsignedLib.sol";
[codex:1369693] import {SafeTransferLib} from "solady/src/utils/SafeTransferLib.sol";
[codex:1369693] import {IUniV4} from "../interfaces/IUniV4.sol";
[codex:1369693] import {IPoolManager} from "../interfaces/IUniV4.sol";
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Checking UnlockSwapFeeCollector**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/UnlockSwapFeeCollector.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] import {IPoolManager} from "../interfaces/IUniV4.sol";
[codex:1369693] import {IUnlockCallback} from "v4-core/src/interfaces/callback/IUnlockCallback.sol";
[codex:1369693] import {Currency} from "v4-core/src/types/Currency.sol";
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] contract UnlockSwapFeeCollector is IUnlockCallback {
[codex:1369693]     error NotUniswap();
[codex:1369693]     error NotOwner();
[codex:1369693] 
[codex:1369693]     address internal immutable _owner;
[codex:1369693]     IPoolManager internal immutable UNI_V4;
[codex:1369693] 
[codex:1369693]     constructor(IPoolManager uniV4) {
[codex:1369693]         _owner = msg.sender;
[codex:1369693]         UNI_V4 = uniV4;
[codex:1369693]     }
[codex:1369693] 
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Checking PermitSubmitterHook for behavior**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/PermitSubmitterHook.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] import {
[codex:1369693]     IAngstromComposable, EXPECTED_HOOK_RETURN_MAGIC
[codex:1369693] } from "../interfaces/IAngstromComposable.sol";
[codex:1369693] import {IERC2612} from "../interfaces/IERC2612.sol";
[codex:1369693] import {IDaiPermit} from "../interfaces/IDaiPermit.sol";
[codex:1369693] import {CalldataReader, CalldataReaderLib} from "../types/CalldataReader.sol";
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] abstract contract PermitSubmitterHook is IAngstromComposable {
[codex:1369693]     uint256 internal constant ERC2612_INFINITE = 0x00;
[codex:1369693]     uint256 internal constant ERC2612_SPECIFIC = 0x01;
[codex:1369693]     uint256 internal constant DAI_INFINITE = 0x02;
[codex:1369693] 
[codex:1369693]     error InvalidPermitType(uint8);
[codex:1369693] 
[codex:1369693]     function compose(address from, bytes calldata payload) external override returns (uint32) {
[codex:1369693]         CalldataReader reader = CalldataReaderLib.from(payload);
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Evaluating security of compose and permit usage**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/UniConsumer.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] import {IPoolManager} from "../interfaces/IUniV4.sol";
[codex:1369693] import {Hooks, IHooks} from "v4-core/src/libraries/Hooks.sol";
[codex:1369693] import {Currency} from "v4-core/src/types/Currency.sol";
[codex:1369693] import {LPFeeLibrary} from "v4-core/src/libraries/LPFeeLibrary.sol";
[codex:1369693] 
[codex:1369693] uint24 constant ANGSTROM_INIT_HOOK_FEE = LPFeeLibrary.DYNAMIC_FEE_FLAG;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] abstract contract UniConsumer {
[codex:1369693]     using Hooks for IHooks;
[codex:1369693] 
[codex:1369693]     error NotUniswap();
[codex:1369693] 
[codex:1369693]     IPoolManager internal immutable UNI_V4;
[codex:1369693] 
[codex:1369693]     uint24 internal constant INIT_HOOK_FEE = ANGSTROM_INIT_HOOK_FEE;
[codex:1369693] 
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Checking GrowthOutsideUpdater**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/GrowthOutsideUpdater.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.24;
[codex:1369693] 
[codex:1369693] import {PoolId} from "v4-core/src/types/PoolId.sol";
[codex:1369693] import {PoolRewards, REWARD_GROWTH_SIZE} from "../types/PoolRewards.sol";
[codex:1369693] import {CalldataReader} from "../types/CalldataReader.sol";
[codex:1369693] import {IPoolManager, IUniV4} from "../interfaces/IUniV4.sol";
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693] 
[codex:1369693] import {TickLib} from "../libraries/TickLib.sol";
[codex:1369693] import {MixedSignLib} from "../libraries/MixedSignLib.sol";
[codex:1369693] import {X128MathLib} from "../libraries/X128MathLib.sol";
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Core logic responsible for updating reward accumulators to distribute rewards.
[codex:1369693] abstract contract GrowthOutsideUpdater is UniConsumer {
[codex:1369693]     using IUniV4 for IPoolManager;
[codex:1369693]     using TickLib for uint256;
[codex:1369693] 
[codex:1369693]     error WrongEndLiquidity(uint128 endLiquidity, uint128 actualCurrentLiquidity);
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Checking relevant libraries**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/libraries/SignatureLib.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] import {CalldataReader} from "../types/CalldataReader.sol";
[codex:1369693] import {SignatureCheckerLib} from "solady/src/utils/SignatureCheckerLib.sol";
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library SignatureLib {
[codex:1369693]     error InvalidSignature();
[codex:1369693] 
[codex:1369693]     uint256 internal constant ECRECOVER_ADDR = 1;
[codex:1369693] 
[codex:1369693]     function readAndCheckEcdsa(CalldataReader reader, bytes32 hash)
[codex:1369693]         internal
[codex:1369693]         view
[codex:1369693]         returns (CalldataReader, address from)
[codex:1369693]     {
[codex:1369693]         assembly ("memory-safe") {
[codex:1369693]             let free := mload(0x40)
[codex:1369693]             mstore(free, hash)
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing Signature Verification Risks**
[codex:1369693] 
[codex:1369693] I'm examining how SignatureLib uses ecrecover, noting it doesn't enforce signature malleability checks or verify non-zero recovered addresses. This may let invalid signatures produce a zero address, which could cause interactions with token transfers or internal balances that either revert or behave unexpectedly depending on token implementation. I'm also considering risk of malleable signatures and implications for order invalidation and domain separation in upgradeable contexts. I'll look deeper into related contracts next.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/Asset.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {CalldataReader} from "./CalldataReader.sol";
[codex:1369693] 
[codex:1369693] uint256 constant FEE_SUMMARY_ENTRY_SIZE = 36;
[codex:1369693] 
[codex:1369693] type Asset is uint256;
[codex:1369693] 
[codex:1369693] type AssetArray is uint256;
[codex:1369693] 
[codex:1369693] using AssetLib for Asset global;
[codex:1369693] using AssetLib for AssetArray global;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library AssetLib {
[codex:1369693]     error AssetsOutOfOrderOrNotUnique();
[codex:1369693]     error AssetAccessOutOfBounds(uint256 index, uint256 length);
[codex:1369693] 
[codex:1369693]     /// @dev Size of a single encoded asset (b20:addr ++ b16:save ++ b16:borrow ++ b16:settle)
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Reviewing core contract files**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/Pair.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {CalldataReader} from "./CalldataReader.sol";
[codex:1369693] import {AssetArray} from "./Asset.sol";
[codex:1369693] import {RayMathLib} from "../libraries/RayMathLib.sol";
[codex:1369693] import {PoolConfigStore, StoreKey} from "../libraries/PoolConfigStore.sol";
[codex:1369693] import {ONE_E6} from "./ConfigEntry.sol";
[codex:1369693] import {StoreKey, HASH_TO_STORE_KEY_SHIFT} from "../types/StoreKey.sol";
[codex:1369693] 
[codex:1369693] type Pair is uint256;
[codex:1369693] 
[codex:1369693] type PairArray is uint256;
[codex:1369693] 
[codex:1369693] using PairLib for Pair global;
[codex:1369693] using PairLib for PairArray global;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Keeps track of pairs used in a given transaction, ensuring they've been initialized and are
[codex:1369693] /// unique.
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Examining price input trustworthiness**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/libraries/PoolConfigStore.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {
[codex:1369693]     ConfigEntry,
[codex:1369693]     ConfigEntryLib,
[codex:1369693]     ENTRY_SIZE,
[codex:1369693]     KEY_MASK,
[codex:1369693]     TICK_SPACING_OFFSET,
[codex:1369693]     TICK_SPACING_MASK,
[codex:1369693]     FEE_OFFSET,
[codex:1369693]     FEE_MASK
[codex:1369693] } from "../types/ConfigEntry.sol";
[codex:1369693] import {StoreKey} from "../types/StoreKey.sol";
[codex:1369693] import {ConfigBuffer} from "../types/ConfigBuffer.sol";
[codex:1369693] 
[codex:1369693] type PoolConfigStore is address;
[codex:1369693] 
[codex:1369693] uint256 constant MEMORY_OFFSET_OFFSET = 192;
[codex:1369693] uint256 constant STORE_ADDR_OFFSET = 32;
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Checking other config types**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/ConfigEntry.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {StoreKey} from "./StoreKey.sol";
[codex:1369693] import {TickMath} from "v4-core/src/libraries/TickMath.sol";
[codex:1369693] 
[codex:1369693] /// @dev Packed `storeKey:u216 ++ tickSpacing:u16 ++ feeInE6:u24`
[codex:1369693] type ConfigEntry is uint256;
[codex:1369693] 
[codex:1369693] uint256 constant ENTRY_SIZE = 32;
[codex:1369693] uint256 constant KEY_MASK = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000;
[codex:1369693] uint256 constant TICK_SPACING_MASK = 0xffff;
[codex:1369693] uint256 constant TICK_SPACING_OFFSET = 24;
[codex:1369693] uint256 constant FEE_MASK = 0xffffff;
[codex:1369693] uint256 constant FEE_OFFSET = 0;
[codex:1369693] 
[codex:1369693] /// @dev Max bundle fee.
[codex:1369693] uint24 constant MAX_FEE = 0.2e6;
[codex:1369693] /// @dev 100% fee in `bundleFee` units (pips).
[codex:1369693] uint24 constant ONE_E6 = 1.0e6;
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential reentrancy and signature flaws**
[codex:1369693] 
[codex:1369693] I'm exploring the settlement order calls and how output before input might enable reentrancy or hooks exploiting funds, especially with internal balances. I’m also digging into signature validation gaps like missing checks on ecrecover results possibly allowing invalid signatures to pass, which could lead to unexpected behaviors with certain tokens. Access control on pool initialization and public functions is another focus, considering whether intended permissionless designs could be abused or lead to manipulation. There is a lot here about transactional atomicity and the subtleties in signature and execution logic that might cause vulnerabilities.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/DeltaTracker.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {MixedSignLib} from "../libraries/MixedSignLib.sol";
[codex:1369693] import {tint256} from "transient-goodies/TransientPrimitives.sol";
[codex:1369693] 
[codex:1369693] struct DeltaTracker {
[codex:1369693]     mapping(address asset => tint256 netBalances) deltas;
[codex:1369693] }
[codex:1369693] 
[codex:1369693] using DeltaTrackerLib for DeltaTracker global;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Tracks intermediate value changes in the contract that need to be resolved. A _negative_
[codex:1369693] /// delta means the contract is temporarily insolvent, a _positive_ delta means that contract has
[codex:1369693] /// funds to use for payouts of different kinds.
[codex:1369693] library DeltaTrackerLib {
[codex:1369693]     function add(DeltaTracker storage self, address asset, uint256 amount) internal {
[codex:1369693]         tint256 storage delta = self.deltas[asset];
[codex:1369693]         delta.set(MixedSignLib.add(delta.get(), amount));
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing contract security and vulnerabilities**
[codex:1369693] 
[codex:1369693] I'm reviewing how EIP712 domains are verified, upgradeability risks, unchecked calls, and signature handling, especially in the `Angstrom` contract and related modules. I'm also evaluating potential DoS from signature reuse, reentrancy possibilities during Uniswap V4 hooks, and access control on key functions like fee withdrawal and node toggling. This deep dive helps me understand the security posture and spot any weak spots.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/interfaces/IAngstromAuth.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.4;
[codex:1369693] 
[codex:1369693] import {StoreKey} from "../types/StoreKey.sol";
[codex:1369693] import {PoolConfigStore} from "../libraries/PoolConfigStore.sol";
[codex:1369693] 
[codex:1369693] struct ConfigEntryUpdate {
[codex:1369693]     uint256 index;
[codex:1369693]     StoreKey key;
[codex:1369693]     uint24 bundleFee;
[codex:1369693]     uint24 unlockedFee;
[codex:1369693]     uint24 protocolUnlockedFee;
[codex:1369693] }
[codex:1369693] 
[codex:1369693] interface IAngstromAuth {
[codex:1369693]     function setController(address newController) external;
[codex:1369693] 
[codex:1369693]     function collect_unlock_swap_fees(address to, bytes calldata packed_assets) external;
[codex:1369693] 
[codex:1369693]     function configurePool(
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Inspecting IAngstromComposable component**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/interfaces/IAngstromComposable.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] /// @dev Expected return magic (`keccak256("Angstrom.hook.return-magic")[-4:]`).
[codex:1369693] uint32 constant EXPECTED_HOOK_RETURN_MAGIC = 0x24a2e44b;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] interface IAngstromComposable {
[codex:1369693]     function compose(address from, bytes calldata payload) external returns (uint32);
[codex:1369693] }
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Inspecting libraries for vulnerabilities**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/CalldataReader.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] /// @dev Represents a raw calldata offset.
[codex:1369693] type CalldataReader is uint256;
[codex:1369693] 
[codex:1369693] using CalldataReaderLib for CalldataReader global;
[codex:1369693] using {neq as !=, eq as ==, gt as >, lt as <, ge as >=, le as <=} for CalldataReader global;
[codex:1369693] 
[codex:1369693] function neq(CalldataReader a, CalldataReader b) pure returns (bool) {
[codex:1369693]     return CalldataReader.unwrap(a) != CalldataReader.unwrap(b);
[codex:1369693] }
[codex:1369693] 
[codex:1369693] function eq(CalldataReader a, CalldataReader b) pure returns (bool) {
[codex:1369693]     return CalldataReader.unwrap(a) == CalldataReader.unwrap(b);
[codex:1369693] }
[codex:1369693] 
[codex:1369693] function gt(CalldataReader a, CalldataReader b) pure returns (bool) {
[codex:1369693]     return CalldataReader.unwrap(a) > CalldataReader.unwrap(b);
[codex:1369693] }
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities and contract logic**
[codex:1369693] 
[codex:1369693] I'm carefully examining possible edge cases like out-of-bounds reads with `readU24End`, fee underflows, and permit misuse in the contract. I'm exploring how data lengths, loop conditions, and signature restrictions interplay, aiming to spot real security concerns versus acceptable failure modes. There's a lot to untangle around permit calls and fee validations—I'm following the flow to see if anything could be exploited or just leads to reverts.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "rg -n \"validate\\(\\)\" contracts/src -g\"*.sol\"" in /tmp/codex-multi-4ojmwrzc succeeded in 9ms:
[codex:1369693] contracts/src/modules/TopLevelAuth.sol:116:        protocolUnlockedFee.validate();
[codex:1369693] contracts/src/modules/TopLevelAuth.sol:117:        unlockedFee.validate();
[codex:1369693] contracts/src/modules/TopLevelAuth.sol:167:            update.unlockedFee.validate();
[codex:1369693] contracts/src/modules/TopLevelAuth.sol:168:            update.protocolUnlockedFee.validate();
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Examining unlock and callback security**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'rg -n "delegatecall" -S contracts/src' in /tmp/codex-multi-4ojmwrzc exited 1 in 9ms:
[codex:1369693] 
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities in contract functions**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/HookBuffer.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {EXPECTED_HOOK_RETURN_MAGIC} from "../interfaces/IAngstromComposable.sol";
[codex:1369693] import {CalldataReader} from "./CalldataReader.sol";
[codex:1369693] 
[codex:1369693] /// @dev 0 or packed (u64 memory pointer ++ u160 hook address ++ u32 calldata length)
[codex:1369693] type HookBuffer is uint256;
[codex:1369693] 
[codex:1369693] using HookBufferLib for HookBuffer global;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Custom bytes allocation that stores a partially encoded hook call such that hashing of
[codex:1369693] /// hook data for validation & actual hook triggering can be done in different parts of the order
[codex:1369693] /// processing lifecycle.
[codex:1369693] library HookBufferLib {
[codex:1369693]     error InvalidHookReturn();
[codex:1369693] 
[codex:1369693]     /// @dev Hash of empty sequence of bytes `keccak256("")`
[codex:1369693]     /// @custom:test test/types/OrderIterator.t.sol:test_emptyBytesHash
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential underflow and reentrancy risks**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/PoolRewards.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {IPoolManager} from "v4-core/src/interfaces/IPoolManager.sol";
[codex:1369693] import {PoolId} from "v4-core/src/types/PoolId.sol";
[codex:1369693] import {IUniV4} from "../interfaces/IUniV4.sol";
[codex:1369693] import {TickLib} from "../libraries/TickLib.sol";
[codex:1369693] 
[codex:1369693] /// @dev Should accommodate all possible tick values.
[codex:1369693] uint256 constant REWARD_GROWTH_SIZE = 16777216;
[codex:1369693] 
[codex:1369693] struct PoolRewards {
[codex:1369693]     uint256[REWARD_GROWTH_SIZE] rewardGrowthOutside;
[codex:1369693]     uint256 globalGrowth;
[codex:1369693] }
[codex:1369693] 
[codex:1369693] using PoolRewardsLib for PoolRewards global;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Computes and maintains global LP rewards.
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing large storage array and overflow risks**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/Price.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {RayMathLib} from "../libraries/RayMathLib.sol";
[codex:1369693] 
[codex:1369693] type PriceAB is uint256;
[codex:1369693] 
[codex:1369693] type AmountA is uint256;
[codex:1369693] 
[codex:1369693] type AmountB is uint256;
[codex:1369693] 
[codex:1369693] using PriceLib for PriceAB global;
[codex:1369693] using PriceLib for AmountA global;
[codex:1369693] using {addA as +, subA as -, gtA as >, ltA as <} for AmountA global;
[codex:1369693] using PriceLib for AmountB global;
[codex:1369693] using {addB as +, subB as -, gtB as >, ltB as <} for AmountB global;
[codex:1369693] 
[codex:1369693] function addA(AmountA x, AmountA y) pure returns (AmountA) {
[codex:1369693]     return AmountA.wrap(x.into() + y.into());
[codex:1369693] }
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities and edge cases**
[codex:1369693] 
[codex:1369693] I'm examining various contract methods for risks like reentrancy, signature validation flaws, and improper hooks usage. I'm particularly curious about certain conditions that may allow denial-of-service or state inconsistencies, and I’m weighing if user-supplied data or node actions could exploit these. There’s a lot to parse in signature handling, transient storage, and order execution logic. I want to carefully verify if these findings represent true security issues or expected trade-offs.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/PoolUpdateVariantMap.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] type PoolUpdateVariantMap is uint8;
[codex:1369693] 
[codex:1369693] using PoolUpdateVariantMapLib for PoolUpdateVariantMap global;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library PoolUpdateVariantMapLib {
[codex:1369693]     uint256 internal constant ZERO_FOR_ONE_FLAG = 0x01;
[codex:1369693]     uint256 internal constant CURRENT_ONLY_FLAG = 0x02;
[codex:1369693] 
[codex:1369693]     function zeroForOne(PoolUpdateVariantMap self) internal pure returns (bool) {
[codex:1369693]         return PoolUpdateVariantMap.unwrap(self) & ZERO_FOR_ONE_FLAG != 0;
[codex:1369693]     }
[codex:1369693] 
[codex:1369693]     function currentOnly(PoolUpdateVariantMap self) internal pure returns (bool) {
[codex:1369693]         return PoolUpdateVariantMap.unwrap(self) & CURRENT_ONLY_FLAG != 0;
[codex:1369693]     }
[codex:1369693] }
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Considering ConfigBuffer**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/ConfigBuffer.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {ConfigEntry, ENTRY_SIZE} from "./ConfigEntry.sol";
[codex:1369693] import {StoreKey} from "./StoreKey.sol";
[codex:1369693] 
[codex:1369693] struct ConfigBuffer {
[codex:1369693]     ConfigEntry[] entries;
[codex:1369693]     uint256 capacity;
[codex:1369693] }
[codex:1369693] 
[codex:1369693] using ConfigBufferLib for ConfigBuffer global;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library ConfigBufferLib {
[codex:1369693]     error InsufficientCapacity();
[codex:1369693]     error EntryKeyMismatch();
[codex:1369693] 
[codex:1369693]     function get(ConfigBuffer memory self, StoreKey key, uint256 index)
[codex:1369693]         internal
[codex:1369693] 
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities and nonce invalidation logic**
[codex:1369693] 
[codex:1369693] I'm carefully examining various contract functions for vulnerabilities, focusing on signature hashing, fee validations, and memory handling. I'm especially scrutinizing the nonce invalidation assembly code, where overlapping memory writes and a keccak256 hash on an unusual memory slice might cause different owners to share the same nonce bitmap, which could be a critical bug. Let's explore this suspicious memory layout and hashing approach further.
[codex:1369693] thinking
[codex:1369693] **Examining nonce invalidation memory hash and collision risk**
[codex:1369693] 
[codex:1369693] I'm continuing to inspect the nonce invalidation logic, confirming that the keccak256 hash only includes the nonce bytes without owner or slot, making the nonce bitmap global rather than per user. This approach could cause nonces to collide across users, potentially blocking others unintentionally if nonces aren’t globally unique, so I’m considering whether this design is intentional or problematic.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'rg -n "nonce" contracts/src -g"*.sol"' in /tmp/codex-multi-4ojmwrzc succeeded in 10ms:
[codex:1369693] contracts/src/Angstrom.sol:235:            _invalidateNonce(from, buffer.nonce_or_validForBlock);
[codex:1369693] contracts/src/interfaces/IDaiPermit.sol:9:        uint256 nonce,
[codex:1369693] contracts/src/types/UserOrderBuffer.sol:20:    uint64 nonce_or_validForBlock;
[codex:1369693] contracts/src/types/UserOrderBuffer.sol:58:            "uint64 nonce,"
[codex:1369693] contracts/src/types/UserOrderBuffer.sol:77:            "uint64 nonce,"
[codex:1369693] contracts/src/types/UserOrderBuffer.sol:238:            self.nonce_or_validForBlock = uint64(block.number);
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:10:    /// @dev `keccak256("angstrom-v1_0.unordered-nonces.slot")[0:4]`
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:13:    function invalidateNonce(uint64 nonce) external {
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:14:        _invalidateNonce(msg.sender, nonce);
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:21:    function _invalidateNonce(address owner, uint64 nonce) internal {
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:23:            mstore(12, nonce)
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:26:            // Memory slice implicitly chops off last byte of `nonce` so that it's the nonce word
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:27:            // index (nonce >> 8).
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:29:            let flag := shl(and(nonce, 0xff), 1)
[codex:1369693] contracts/src/modules/PermitSubmitterHook.sol:55:            uint32 nonce;
[codex:1369693] contracts/src/modules/PermitSubmitterHook.sol:56:            (reader, nonce) = reader.readU32();
[codex:1369693] contracts/src/modules/PermitSubmitterHook.sol:66:                from, msg.sender, nonce, deadline, true, v, bytes32(r), bytes32(s)
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing complex memory packing and potential vulnerabilities**
[codex:1369693] 
[codex:1369693] I'm carefully dissecting a Yul memory packing pattern where owner, slot, and nonce values are stored with attention to right-alignment in memory, concluding the intended keccak256 hash computation is correct and not buggy. Then I’m scrutinizing various contract components for security concerns like signature validation quirks, subtle reentrancy risks, order execution logic, and potential misuse of node privileges, verifying which findings are meaningful versus false positives and wrapping up with a detailed risk assessment.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/Positions.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693] 
[codex:1369693] import {PoolId} from "v4-core/src/types/PoolId.sol";
[codex:1369693] 
[codex:1369693] struct Positions {
[codex:1369693]     mapping(PoolId id => mapping(bytes32 uniPositionKey => Position)) positions;
[codex:1369693] }
[codex:1369693] 
[codex:1369693] struct Position {
[codex:1369693]     uint256 lastGrowthInside;
[codex:1369693] }
[codex:1369693] 
[codex:1369693] using PositionsLib for Positions global;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library PositionsLib {
[codex:1369693]     function get(
[codex:1369693]         Positions storage self,
[codex:1369693]         PoolId id,
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing constructor call order and signature validation risks**
[codex:1369693] 
[codex:1369693] I'm mapping out the Solidity inheritance and constructor call order to ensure that UNI_V4 is initialized before TopLevelAuth uses it, confirming constructor linearization makes this safe. Then I’m scrutinizing signature validation logic, discovering a subtle weakness: invalid ECDSA signatures yield signer address zero without rejection, potentially allowing nodes to misuse address(0) balances or trigger hooks. While nodes are trusted parties, this could be a low-severity vulnerability worth noting.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/libraries/MixedSignLib.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 7ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693] 
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Adds helper methods to enable safe, checked arithmetic between signed & unsigned types. Not
[codex:1369693] /// generalized as only these 4 particular instantiations were required.
[codex:1369693] library MixedSignLib {
[codex:1369693]     error ArithmeticOverflowUnderflow();
[codex:1369693] 
[codex:1369693]     function add(int256 x, uint256 y) internal pure returns (int256 z) {
[codex:1369693]         assembly ("memory-safe") {
[codex:1369693]             z := add(x, y)
[codex:1369693] 
[codex:1369693]             if slt(z, x) {
[codex:1369693]                 mstore(0x00, 0xc9654ed4 /* ArithmeticOverflowUnderflow() */ )
[codex:1369693]                 revert(0x1c, 0x04)
[codex:1369693]             }
[codex:1369693]         }
[codex:1369693]     }
[codex:1369693] 
[codex:1369693] 
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential reentrancy and signature validation issues**
[codex:1369693] thinking
[codex:1369693] **Verifying third-party dependency assumptions**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'rg -n "TODO|FIXME|HACK|WARN" contracts/src -g"*.sol"' in /tmp/codex-multi-4ojmwrzc succeeded in 11ms:
[codex:1369693] contracts/src/interfaces/IUniV4.sol:65:     * @dev WARNING: use of this method with a dirty `int16` for `wordPos` may be vulnerable as the
[codex:1369693] contracts/src/interfaces/IUniV4.sol:91:     * @dev WARNING: use of this method with a dirty `int16` for `wordPos` may be vulnerable as the
[codex:1369693] contracts/src/interfaces/IUniV4.sol:104:     * @dev WARNING: Calling this method without first sanitizing `tick` (to ensure it's sign
[codex:1369693] contracts/src/interfaces/IUniV4.sol:116:            // Compute relative map slot (WARNING: assumes `tick` is sanitized i.e. sign extended).
[codex:1369693] contracts/src/interfaces/IUniV4.sol:163:    /// @dev WARNING: Expects `owner` & `asset` to not have dirty bytes.
[codex:1369693] contracts/src/libraries/TickLib.sol:47:    /// @dev Normalize tick to its tick boundary (rounding towards negative infinity). WARN: Can underflow
[codex:1369693] contracts/src/types/Pair.sol:59:                // WARN: Memory is allocated, but **not cleaned**.
[codex:1369693] contracts/src/types/StoreKey.sol:22:    /// @dev Computes the `StoreKey` from the inputs. WARN: Does not check that the assets are
[codex:1369693] contracts/src/types/Positions.sol:32:            // WARN: Free memory pointer temporarily invalid from here on.
[codex:1369693] contracts/src/modules/Settlement.sol:24:    /// @dev WARN: Assumes `asset` charges 0 fees upon transfers and is not rebasing.
[codex:1369693] contracts/src/modules/Settlement.sol:31:    /// @dev WARN: Assumes `asset` charges 0 fees upon transfers and is not rebasing.
[codex:1369693] contracts/src/types/ConfigBuffer.sol:54:    /// @dev Add a new entry to the store. WARNING: Responsibility of caller to ensure that `entry`
[codex:1369693] contracts/src/types/ConfigBuffer.sol:64:    /// @dev Sets the length of the buffer to an arbitrary length `new_length`. WARNING:
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities and signature issues**
[codex:1369693] 
[codex:1369693] I’m inspecting multiple components like asset handling, native ETH representation, SafeTransferLib behavior, and signature validation. The main concern is that SignatureLib's ECDSA check doesn't revert invalid signatures, potentially accepting zero-address signers, which is a low-severity authorization flaw. Other nuances like access control on initializePool and subtle call patterns in SafeTransferLib also raise questions, but the signature validation stands out as a solid finding to highlight.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "nl -ba contracts/src/libraries/SignatureLib.sol | sed -n '1,120p'" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693]      1	// SPDX-License-Identifier: MIT
[codex:1369693]      2	pragma solidity ^0.8.0;
[codex:1369693]      3	
[codex:1369693]      4	import {CalldataReader} from "../types/CalldataReader.sol";
[codex:1369693]      5	import {SignatureCheckerLib} from "solady/src/utils/SignatureCheckerLib.sol";
[codex:1369693]      6	
[codex:1369693]      7	/// @author philogy <https://github.com/philogy>
[codex:1369693]      8	library SignatureLib {
[codex:1369693]      9	    error InvalidSignature();
[codex:1369693]     10	
[codex:1369693]     11	    uint256 internal constant ECRECOVER_ADDR = 1;
[codex:1369693]     12	
[codex:1369693]     13	    function readAndCheckEcdsa(CalldataReader reader, bytes32 hash)
[codex:1369693]     14	        internal
[codex:1369693]     15	        view
[codex:1369693]     16	        returns (CalldataReader, address from)
[codex:1369693]     17	    {
[codex:1369693]     18	        assembly ("memory-safe") {
[codex:1369693]     19	            let free := mload(0x40)
[codex:1369693]     20	            mstore(free, hash)
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Analyzing potential HookBufferLib vulnerability**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "nl -ba contracts/src/types/HookBuffer.sol | sed -n '1,220p'" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693]      1	// SPDX-License-Identifier: BUSL-1.1
[codex:1369693]      2	pragma solidity ^0.8.13;
[codex:1369693]      3	
[codex:1369693]      4	import {EXPECTED_HOOK_RETURN_MAGIC} from "../interfaces/IAngstromComposable.sol";
[codex:1369693]      5	import {CalldataReader} from "./CalldataReader.sol";
[codex:1369693]      6	
[codex:1369693]      7	/// @dev 0 or packed (u64 memory pointer ++ u160 hook address ++ u32 calldata length)
[codex:1369693]      8	type HookBuffer is uint256;
[codex:1369693]      9	
[codex:1369693]     10	using HookBufferLib for HookBuffer global;
[codex:1369693]     11	
[codex:1369693]     12	/// @author philogy <https://github.com/philogy>
[codex:1369693]     13	/// @dev Custom bytes allocation that stores a partially encoded hook call such that hashing of
[codex:1369693]     14	/// hook data for validation & actual hook triggering can be done in different parts of the order
[codex:1369693]     15	/// processing lifecycle.
[codex:1369693]     16	library HookBufferLib {
[codex:1369693]     17	    error InvalidHookReturn();
[codex:1369693]     18	
[codex:1369693]     19	    /// @dev Hash of empty sequence of bytes `keccak256("")`
[codex:1369693]     20	    /// @custom:test test/types/OrderIterator.t.sol:test_emptyBytesHash
[codex:1369693] 
[codex:1369693] 
[codex:1369693] thinking
[codex:1369693] **Summarizing low-severity vulnerabilities and input validation issues**
[codex:1369693] 
[codex:1369693] I'm reviewing potential low-severity issues including invalid ECDSA signature acceptance that leads to signer address zero without rejection, and unchecked hook data length permitting uninitialized hook address use and calldata length underflows. I'll prepare a detailed JSON report with categories, severity, exploit scenarios, and recommendations based on code references.
[codex:1369693] thinking
[codex:1369693] **Detailing hook data length vulnerability**
[codex:1369693] codex
[codex:1369693] {"no_findings":false,"summary":"Found a low-severity signature-validation gap and a malformed-hook-data edge case that can lead to unintended behavior under malformed inputs.","findings":[{"severity":"low","category":"auth","title":"ECDSA invalid signatures are not rejected (signer can become address(0))","exploit_scenario":"An invalid ECDSA signature still returns 32 bytes from the ecrecover precompile, so `readAndCheckEcdsa` accepts it and returns `from = address(0)`. If any funds are ever credited to `address(0)` (e.g., a mistaken internal deposit) or a non‑standard token allows `transferFrom(address(0), ...)`, a malicious node could execute orders without a valid signature for that signer.","recommendation":"Explicitly reject `from == address(0)` and enforce strict ECDSA checks (valid `v`, low‑`s`) before accepting the signature.","evidence":"`readAndCheckEcdsa` only checks `returndatasize()` and never verifies `from != address(0)`; invalid signatures still return data and are accepted.","locations":["contracts/src/libraries/SignatureLib.sol:18"]},{"severity":"info","category":"other","title":"Hook data length < 20 bytes can yield an uninitialized hook address and payload length underflow","exploit_scenario":"If a signer (or buggy UI) produces an order with `hookDataLength < 20`, the hook address is partially taken from uninitialized memory and the payload length underflows. A malicious node could influence the resulting hook address or trigger a revert/OOG due to the huge calldata length, even though the signed hash does not commit to a full hook address.","recommendation":"Enforce `hookDataLength >= 20` when a hook is present and revert otherwise; consider zeroing the hook memory region before reading to avoid dirty bytes.","evidence":"`hookDataLength` is not validated; a short length leaves dirty bytes in the hook address and causes `payloadLength := sub(hookDataLength, 20)` underflow.","locations":["contracts/src/types/HookBuffer.sol:40"]}]}
[codex:1369693] tokens used
[codex:1369693] 90,105
[codex:1369693] {"no_findings":false,"summary":"Found a low-severity signature-validation gap and a malformed-hook-data edge case that can lead to unintended behavior under malformed inputs.","findings":[{"severity":"low","category":"auth","title":"ECDSA invalid signatures are not rejected (signer can become address(0))","exploit_scenario":"An invalid ECDSA signature still returns 32 bytes from the ecrecover precompile, so `readAndCheckEcdsa` accepts it and returns `from = address(0)`. If any funds are ever credited to `address(0)` (e.g., a mistaken internal deposit) or a non‑standard token allows `transferFrom(address(0), ...)`, a malicious node could execute orders without a valid signature for that signer.","recommendation":"Explicitly reject `from == address(0)` and enforce strict ECDSA checks (valid `v`, low‑`s`) before accepting the signature.","evidence":"`readAndCheckEcdsa` only checks `returndatasize()` and never verifies `from != address(0)`; invalid signatures still return data and are accepted.","locations":["contracts/src/libraries/SignatureLib.sol:18"]},{"severity":"info","category":"other","title":"Hook data length < 20 bytes can yield an uninitialized hook address and payload length underflow","exploit_scenario":"If a signer (or buggy UI) produces an order with `hookDataLength < 20`, the hook address is partially taken from uninitialized memory and the payload length underflows. A malicious node could influence the resulting hook address or trigger a revert/OOG due to the huge calldata length, even though the signed hash does not commit to a full hook address.","recommendation":"Enforce `hookDataLength >= 20` when a hook is present and revert otherwise; consider zeroing the hook memory region before reading to avoid dirty bytes.","evidence":"`hookDataLength` is not validated; a short length leaves dirty bytes in the hook address and causes `payloadLength := sub(hookDataLength, 20)` underflow.","locations":["contracts/src/types/HookBuffer.sol:40"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T14:55:37.162255+00:00",
        "returncode": 0
    },
    "summary": "Found a low-severity signature-validation gap and a malformed-hook-data edge case that can lead to unintended behavior under malformed inputs.",
    "raw_final": {
        "summary": "Found a low-severity signature-validation gap and a malformed-hook-data edge case that can lead to unintended behavior under malformed inputs.",
        "findings": [
            {
                "title": "ECDSA invalid signatures are not rejected (signer can become address(0))",
                "category": "auth",
                "evidence": "`readAndCheckEcdsa` only checks `returndatasize()` and never verifies `from != address(0)`; invalid signatures still return data and are accepted.",
                "severity": "low",
                "locations": [
                    "contracts/src/libraries/SignatureLib.sol:18"
                ],
                "recommendation": "Explicitly reject `from == address(0)` and enforce strict ECDSA checks (valid `v`, low\u2011`s`) before accepting the signature.",
                "exploit_scenario": "An invalid ECDSA signature still returns 32 bytes from the ecrecover precompile, so `readAndCheckEcdsa` accepts it and returns `from = address(0)`. If any funds are ever credited to `address(0)` (e.g., a mistaken internal deposit) or a non\u2011standard token allows `transferFrom(address(0), ...)`, a malicious node could execute orders without a valid signature for that signer."
            },
            {
                "title": "Hook data length < 20 bytes can yield an uninitialized hook address and payload length underflow",
                "category": "other",
                "evidence": "`hookDataLength` is not validated; a short length leaves dirty bytes in the hook address and causes `payloadLength := sub(hookDataLength, 20)` underflow.",
                "severity": "info",
                "locations": [
                    "contracts/src/types/HookBuffer.sol:40"
                ],
                "recommendation": "Enforce `hookDataLength >= 20` when a hook is present and revert otherwise; consider zeroing the hook memory region before reading to avoid dirty bytes.",
                "exploit_scenario": "If a signer (or buggy UI) produces an order with `hookDataLength < 20`, the hook address is partially taken from uninitialized memory and the payload length underflows. A malicious node could influence the resulting hook address or trigger a revert/OOG due to the huge calldata length, even though the signed hash does not commit to a full hook address."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
22
EXT*/BALANCE
13
Total opcodes
13022
Flags
create_opcodes_present heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x000f
0000000b: JUMPI
0000000c: PUSH0
0000000d: DUP1
0000000e: REVERT
0000000f: JUMPDEST
00000010: POP
00000011: PUSH1 0x04
00000013: CALLDATASIZE
00000014: LT
00000015: PUSH2 0x0184
00000018: JUMPI
00000019: PUSH0
0000001a: CALLDATALOAD
0000001b: PUSH1 0xe0
0000001d: SHR
0000001e: DUP1
0000001f: PUSH4 0x7cf98081
00000024: GT
00000025: PUSH2 0x00dd
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xb47b2fb1
0000002f: GT
00000030: PUSH2 0x0088
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xd9e17f98
0000003a: GT
0000003b: PUSH2 0x0063
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd9e17f98
00000045: EQ
00000046: PUSH2 0x03f2
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xdd4d4cf6
00000050: EQ
00000051: PUSH2 0x0405
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf3fef3a3
0000005b: EQ
0000005c: PUSH2 0x0418
0000005f: JUMPI
00000060: PUSH0
00000061: DUP1
00000062: REVERT
00000063: JUMPDEST
00000064: DUP1
00000065: PUSH4 0xb47b2fb1
0000006a: EQ
0000006b: PUSH2 0x037e
0000006e: JUMPI
0000006f: DUP1
00000070: PUSH4 0xd6cffd1e
00000075: EQ
00000076: PUSH2 0x03cc
00000079: JUMPI
0000007a: DUP1
0000007b: PUSH4 0xd9caed12
00000080: EQ
00000081: PUSH2 0x03df
00000084: JUMPI
00000085: PUSH0
00000086: DUP1
00000087: REVERT
00000088: JUMPDEST
00000089: DUP1
0000008a: PUSH4 0x8587f450
0000008f: GT
00000090: PUSH2 0x00b8
00000093: JUMPI
00000094: DUP1
00000095: PUSH4 0x8587f450
0000009a: EQ
0000009b: PUSH2 0x0338
0000009e: JUMPI
0000009f: DUP1
000000a0: PUSH4 0x91dd7346
000000a5: EQ
000000a6: PUSH2 0x034b
000000a9: JUMPI
000000aa: DUP1
000000ab: PUSH4 0x92eefe9b
000000b0: EQ
000000b1: PUSH2 0x036b
000000b4: JUMPI
000000b5: PUSH0
000000b6: DUP1
000000b7: REVERT
000000b8: JUMPDEST
000000b9: DUP1
000000ba: PUSH4 0x7cf98081
000000bf: EQ
000000c0: PUSH2 0x02e9
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0x8340f549
000000ca: EQ
000000cb: PUSH2 0x030a
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0x84b0196e
000000d5: EQ
000000d6: PUSH2 0x031d
000000d9: JUMPI
000000da: PUSH0
000000db: DUP1
000000dc: REVERT
000000dd: JUMPDEST
000000de: DUP1
000000df: PUSH4 0x259982e5
000000e4: GT
000000e5: PUSH2 0x013d
000000e8: JUMPI
000000e9: DUP1
000000ea: PUSH4 0x53b41c55
000000ef: GT
000000f0: PUSH2 0x0118
000000f3: JUMPI
000000f4: DUP1
000000f5: PUSH4 0x53b41c55
000000fa: EQ
000000fb: PUSH2 0x0258
000000fe: JUMPI
000000ff: DUP1
00000100: PUSH4 0x575e24b4
00000105: EQ
00000106: PUSH2 0x026b
00000109: JUMPI
0000010a: DUP1
0000010b: PUSH4 0x7407905c
00000110: EQ
00000111: PUSH2 0x02c1
00000114: JUMPI
00000115: PUSH0
00000116: DUP1
00000117: REVERT
00000118: JUMPDEST
00000119: DUP1
0000011a: PUSH4 0x259982e5
0000011f: EQ
00000120: PUSH2 0x021f
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x33830e48
0000012a: EQ
0000012b: PUSH2 0x0232
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x47e7ef24
00000135: EQ
00000136: PUSH2 0x0245
00000139: JUMPI
0000013a: PUSH0
0000013b: DUP1
0000013c: REVERT
0000013d: JUMPDEST
0000013e: DUP1
0000013f: PUSH4 0x13871465
00000144: GT
00000145: PUSH2 0x016d
00000148: JUMPI
00000149: DUP1
0000014a: PUSH4 0x13871465
0000014f: EQ
00000150: PUSH2 0x01b0
00000153: JUMPI
00000154: DUP1
00000155: PUSH4 0x1828e0e7
0000015a: EQ
0000015b: PUSH2 0x01c3
0000015e: JUMPI
0000015f: DUP1
00000160: PUSH4 0x21d0ee70
00000165: EQ
00000166: PUSH2 0x01d6
00000169: JUMPI
0000016a: PUSH0
0000016b: DUP1
0000016c: REVERT
0000016d: JUMPDEST
0000016e: DUP1
0000016f: PUSH4 0x09c5eabe
00000174: EQ
00000175: PUSH2 0x0188
00000178: JUMPI
00000179: DUP1
0000017a: PUSH4 0x116a5550
0000017f: EQ
00000180: PUSH2 0x019d
00000183: JUMPI
00000184: JUMPDEST
00000185: PUSH0
00000186: DUP1
00000187: REVERT
00000188: JUMPDEST
00000189: PUSH2 0x019b
0000018c: PUSH2 0x0196
0000018f: CALLDATASIZE
00000190: PUSH1 0x04
00000192: PUSH2 0x4fe4
00000195: JUMP
00000196: JUMPDEST
00000197: PUSH2 0x042b
0000019a: JUMP
0000019b: JUMPDEST
0000019c: STOP
0000019d: JUMPDEST
0000019e: PUSH2 0x019b
000001a1: PUSH2 0x01ab
000001a4: CALLDATASIZE
000001a5: PUSH1 0x04
000001a7: PUSH2 0x5023
000001aa: JUMP
000001ab: JUMPDEST
000001ac: PUSH2 0x050b
000001af: JUMP
000001b0: JUMPDEST
000001b1: PUSH2 0x019b
000001b4: PUSH2 0x01be
000001b7: CALLDATASIZE
000001b8: PUSH1 0x04
000001ba: PUSH2 0x5075
000001bd: JUMP
000001be: JUMPDEST
000001bf: PUSH2 0x0518
000001c2: JUMP
000001c3: JUMPDEST
000001c4: PUSH2 0x019b
000001c7: PUSH2 0x01d1
000001ca: CALLDATASIZE
000001cb: PUSH1 0x04
000001cd: PUSH2 0x50f1
000001d0: JUMP
000001d1: JUMPDEST
000001d2: PUSH2 0x076b
000001d5: JUMP
000001d6: JUMPDEST
000001d7: PUSH2 0x01e9
000001da: PUSH2 0x01e4
000001dd: CALLDATASIZE
000001de: PUSH1 0x04
000001e0: PUSH2 0x5158
000001e3: JUMP
000001e4: JUMPDEST
000001e5: PUSH2 0x08cc
000001e8: JUMP
000001e9: JUMPDEST
000001ea: PUSH1 0x40
000001ec: MLOAD
000001ed: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000020e: SWAP1
0000020f: SWAP2
00000210: AND
00000211: DUP2
00000212: MSTORE
00000213: PUSH1 0x20
00000215: ADD
00000216: JUMPDEST
00000217: PUSH1 0x40
00000219: MLOAD
0000021a: DUP1
0000021b: SWAP2
0000021c: SUB
0000021d: SWAP1
0000021e: RETURN
0000021f: JUMPDEST
00000220: PUSH2 0x01e9
00000223: PUSH2 0x022d
00000226: CALLDATASIZE
00000227: PUSH1 0x04
00000229: PUSH2 0x5158
0000022c: JUMP
0000022d: JUMPDEST
0000022e: PUSH2 0x0be8
00000231: JUMP
00000232: JUMPDEST
00000233: PUSH2 0x019b
00000236: PUSH2 0x0240
00000239: CALLDATASIZE
0000023a: PUSH1 0x04
0000023c: PUSH2 0x50f1
0000023f: JUMP
00000240: JUMPDEST
00000241: PUSH2 0x0f5c
00000244: JUMP
00000245: JUMPDEST
00000246: PUSH2 0x019b
00000249: PUSH2 0x0253
0000024c: CALLDATASIZE
0000024d: PUSH1 0x04
0000024f: PUSH2 0x51f7
00000252: JUMP
00000253: JUMPDEST
00000254: PUSH2 0x0fff
00000257: JUMP
00000258: JUMPDEST
00000259: PUSH2 0x019b
0000025c: PUSH2 0x0266
0000025f: CALLDATASIZE
00000260: PUSH1 0x04
00000262: PUSH2 0x5221
00000265: JUMP
00000266: JUMPDEST
00000267: PUSH2 0x104f
0000026a: JUMP
0000026b: JUMPDEST
0000026c: PUSH2 0x027e
0000026f: PUSH2 0x0279
00000272: CALLDATASIZE
00000273: PUSH1 0x04
00000275: PUSH2 0x52b4
00000278: JUMP
00000279: JUMPDEST
0000027a: PUSH2 0x1280
0000027d: JUMP
0000027e: JUMPDEST
0000027f: PUSH1 0x40
00000281: DUP1
00000282: MLOAD
00000283: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000002a4: SWAP1
000002a5: SWAP5
000002a6: AND
000002a7: DUP5
000002a8: MSTORE
000002a9: PUSH1 0x20
000002ab: DUP5
000002ac: ADD
000002ad: SWAP3
000002ae: SWAP1
000002af: SWAP3
000002b0: MSTORE
000002b1: PUSH3 0xffffff
000002b5: AND
000002b6: SWAP1
000002b7: DUP3
000002b8: ADD
000002b9: MSTORE
000002ba: PUSH1 0x60
000002bc: ADD
000002bd: PUSH2 0x0216
000002c0: JUMP
000002c1: JUMPDEST
000002c2: PUSH2 0x02d4
000002c5: PUSH2 0x02cf
000002c8: CALLDATASIZE
000002c9: PUSH1 0x04
000002cb: PUSH2 0x50f1
000002ce: JUMP
000002cf: JUMPDEST
000002d0: PUSH2 0x1454
000002d3: JUMP
000002d4: JUMPDEST
000002d5: PUSH1 0x40
000002d7: MLOAD
000002d8: PUSH4 0xffffffff
000002dd: SWAP1
000002de: SWAP2
000002df: AND
000002e0: DUP2
000002e1: MSTORE
000002e2: PUSH1 0x20
000002e4: ADD
000002e5: PUSH2 0x0216
000002e8: JUMP
000002e9: JUMPDEST
000002ea: PUSH2 0x02fc
000002ed: PUSH2 0x02f7
000002f0: CALLDATASIZE
000002f1: PUSH1 0x04
000002f3: PUSH2 0x530e
000002f6: JUMP
000002f7: JUMPDEST
000002f8: PUSH2 0x1730
000002fb: JUMP
000002fc: JUMPDEST
000002fd: PUSH1 0x40
000002ff: MLOAD
00000300: SWAP1
00000301: DUP2
00000302: MSTORE
00000303: PUSH1 0x20
00000305: ADD
00000306: PUSH2 0x0216
00000309: JUMP
0000030a: JUMPDEST
0000030b: PUSH2 0x019b
0000030e: PUSH2 0x0318
00000311: CALLDATASIZE
00000312: PUSH1 0x04
00000314: PUSH2 0x5325
00000317: JUMP
00000318: JUMPDEST
00000319: PUSH2 0x173a
0000031c: JUMP
0000031d: JUMPDEST
0000031e: PUSH2 0x0325
00000321: PUSH2 0x178f
00000324: JUMP
00000325: JUMPDEST
00000326: PUSH1 0x40
00000328: MLOAD
00000329: PUSH2 0x0216
0000032c: SWAP8
0000032d: SWAP7
0000032e: SWAP6
0000032f: SWAP5
00000330: SWAP4
00000331: SWAP3
00000332: SWAP2
00000333: SWAP1
00000334: PUSH2 0x53af
00000337: JUMP
00000338: JUMPDEST
00000339: PUSH2 0x019b
0000033c: PUSH2 0x0346
0000033f: CALLDATASIZE
00000340: PUSH1 0x04
00000342: PUSH2 0x5461
00000345: JUMP
00000346: JUMPDEST
00000347: PUSH2 0x1837
0000034a: JUMP
0000034b: JUMPDEST
0000034c: PUSH2 0x035e
0000034f: PUSH2 0x0359
00000352: CALLDATASIZE
00000353: PUSH1 0x04
00000355: PUSH2 0x4fe4
00000358: JUMP
00000359: JUMPDEST
0000035a: PUSH2 0x19bf
0000035d: JUMP
0000035e: JUMPDEST
0000035f: PUSH1 0x40
00000361: MLOAD
00000362: PUSH2 0x0216
00000365: SWAP2
00000366: SWAP1
00000367: PUSH2 0x54b1
0000036a: JUMP
0000036b: JUMPDEST
0000036c: PUSH2 0x019b
0000036f: PUSH2 0x0379
00000372: CALLDATASIZE
00000373: PUSH1 0x04
00000375: PUSH2 0x54c3
00000378: JUMP
00000379: JUMPDEST
0000037a: PUSH2 0x1a53
0000037d: JUMP
0000037e: JUMPDEST
0000037f: PUSH2 0x0391
00000382: PUSH2 0x038c
00000385: CALLDATASIZE
00000386: PUSH1 0x04
00000388: PUSH2 0x54de
0000038b: JUMP
0000038c: JUMPDEST
0000038d: PUSH2 0x1a94
00000390: JUMP
00000391: JUMPDEST
00000392: PUSH1 0x40
00000394: DUP1
00000395: MLOAD
00000396: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000003b7: SWAP1
000003b8: SWAP4
000003b9: AND
000003ba: DUP4
000003bb: MSTORE
000003bc: PUSH1 0x0f
000003be: SWAP2
000003bf: SWAP1
000003c0: SWAP2
000003c1: SIGNEXTEND
000003c2: PUSH1 0x20
000003c4: DUP4
000003c5: ADD
000003c6: MSTORE
000003c7: ADD
000003c8: PUSH2 0x0216
000003cb: JUMP
000003cc: JUMPDEST
000003cd: PUSH2 0x019b
000003d0: PUSH2 0x03da
000003d3: CALLDATASIZE
000003d4: PUSH1 0x04
000003d6: PUSH2 0x555f
000003d9: JUMP
000003da: JUMPDEST
000003db: PUSH2 0x1db2
000003de: JUMP
000003df: JUMPDEST
000003e0: PUSH2 0x019b
000003e3: PUSH2 0x03ed
000003e6: CALLDATASIZE
000003e7: PUSH1 0x04
000003e9: PUSH2 0x5325
000003ec: JUMP
000003ed: JUMPDEST
000003ee: PUSH2 0x1e3e
000003f1: JUMP
000003f2: JUMPDEST
000003f3: PUSH2 0x019b
000003f6: PUSH2 0x0400
000003f9: CALLDATASIZE
000003fa: PUSH1 0x04
000003fc: PUSH2 0x51f7
000003ff: JUMP
00000400: JUMPDEST
00000401: PUSH2 0x1e8a
00000404: JUMP
00000405: JUMPDEST
00000406: PUSH2 0x019b
00000409: PUSH2 0x0413
0000040c: CALLDATASIZE
0000040d: PUSH1 0x04
0000040f: PUSH2 0x55ff
00000412: JUMP
00000413: JUMPDEST
00000414: PUSH2 0x1eaa
00000417: JUMP
00000418: JUMPDEST
00000419: PUSH2 0x019b
0000041c: PUSH2 0x0426
0000041f: CALLDATASIZE
00000420: PUSH1 0x04
00000422: PUSH2 0x51f7
00000425: JUMP
00000426: JUMPDEST
00000427: PUSH2 0x1fe0
0000042a: JUMP
0000042b: JUMPDEST
0000042c: PUSH2 0x0433
0000042f: PUSH2 0x202c
00000432: JUMP
00000433: JUMPDEST
00000434: PUSH0
00000435: DUP2
00000436: SWAP1
00000437: SUB
00000438: PUSH2 0x043f
0000043b: JUMPI
0000043c: POP
0000043d: POP
0000043e: JUMP
0000043f: JUMPDEST
00000440: PUSH1 0x40
00000442: MLOAD
00000443: PUSH32 0x48c8949100000000000000000000000000000000000000000000000000000000
00000464: DUP2
00000465: MSTORE
00000466: PUSH1 0x01
00000468: PUSH1 0x01
0000046a: PUSH1 0xa0
0000046c: SHL
0000046d: SUB
0000046e: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
0000048f: AND
00000490: SWAP1
00000491: PUSH4 0x48c89491
00000496: SWAP1
00000497: PUSH2 0x04a6
0000049a: SWAP1
0000049b: DUP6
0000049c: SWAP1
0000049d: DUP6
0000049e: SWAP1
0000049f: PUSH1 0x04
000004a1: ADD
000004a2: PUSH2 0x5661
000004a5: JUMP
000004a6: JUMPDEST
000004a7: PUSH0
000004a8: PUSH1 0x40
000004aa: MLOAD
000004ab: DUP1
000004ac: DUP4
000004ad: SUB
000004ae: DUP2
000004af: PUSH0
000004b0: DUP8
000004b1: GAS
000004b2: CALL
000004b3: ISZERO
000004b4: DUP1
000004b5: ISZERO
000004b6: PUSH2 0x04c1
000004b9: JUMPI
000004ba: RETURNDATASIZE
000004bb: PUSH0
000004bc: DUP1
000004bd: RETURNDATACOPY
000004be: RETURNDATASIZE
000004bf: PUSH0
000004c0: REVERT
000004c1: JUMPDEST
000004c2: POP
000004c3: POP
000004c4: POP
000004c5: POP
000004c6: PUSH1 0x40
000004c8: MLOAD
000004c9: RETURNDATASIZE
000004ca: PUSH0
000004cb: DUP3
000004cc: RETURNDATACOPY
000004cd: PUSH1 0x1f
000004cf: RETURNDATASIZE
000004d0: SWAP1
000004d1: DUP2
000004d2: ADD
000004d3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000004f4: AND
000004f5: DUP3
000004f6: ADD
000004f7: PUSH1 0x40
000004f9: MSTORE
000004fa: PUSH2 0x0506
000004fd: SWAP2
000004fe: SWAP1
000004ff: DUP2
00000500: ADD
00000501: SWAP1
00000502: PUSH2 0x56a1
00000505: JUMP
00000506: JUMPDEST
00000507: POP
00000508: POP
00000509: POP
0000050a: JUMP
0000050b: JUMPDEST
0000050c: PUSH2 0x0515
0000050f: CALLER
00000510: DUP3
00000511: PUSH2 0x20ff
00000514: JUMP
00000515: JUMPDEST
00000516: POP
00000517: JUMP
00000518: JUMPDEST
00000519: PUSH2 0x0520
0000051c: PUSH2 0x213a
0000051f: JUMP
00000520: JUMPDEST
00000521: DUP5
00000522: PUSH1 0x01
00000524: PUSH1 0x01
00000526: PUSH1 0xa0
00000528: SHL
00000529: SUB
0000052a: AND
0000052b: DUP7
0000052c: PUSH1 0x01
0000052e: PUSH1 0x01
00000530: PUSH1 0xa0
00000532: SHL
00000533: SUB
00000534: AND
00000535: LT
00000536: PUSH2 0x056b
00000539: JUMPI
0000053a: PUSH1 0x40
0000053c: MLOAD
0000053d: PUSH32 0x32b4bc9300000000000000000000000000000000000000000000000000000000
0000055e: DUP2
0000055f: MSTORE
00000560: PUSH1 0x04
00000562: ADD
00000563: PUSH1 0x40
00000565: MLOAD
00000566: DUP1
00000567: SWAP2
00000568: SUB
00000569: SWAP1
0000056a: REVERT
0000056b: JUMPDEST
0000056c: PUSH0
0000056d: DUP7
0000056e: DUP2
0000056f: MSTORE
00000570: PUSH1 0x20
00000572: DUP7
00000573: SWAP1
00000574: MSTORE
00000575: PUSH1 0x40
00000577: DUP2
00000578: KECCAK256
00000579: PUSH1 0x28
0000057b: SHL
0000057c: PUSH1 0x03
0000057e: SLOAD
0000057f: SWAP1
00000580: SWAP2
00000581: POP
00000582: PUSH0
00000583: SWAP1
00000584: PUSH2 0x05a3
00000587: SWAP1
00000588: PUSH9 0x010000000000000000
00000592: SWAP1
00000593: DIV
00000594: PUSH1 0x01
00000596: PUSH1 0x01
00000598: PUSH1 0xa0
0000059a: SHL
0000059b: SUB
0000059c: AND
0000059d: PUSH1 0x01
0000059f: PUSH2 0x217f
000005a2: JUMP
000005a3: JUMPDEST
000005a4: DUP1
000005a5: MLOAD
000005a6: MLOAD
000005a7: SWAP1
000005a8: SWAP2
000005a9: POP
000005aa: PUSH0
000005ab: SWAP1
000005ac: JUMPDEST
000005ad: DUP1
000005ae: DUP3
000005af: LT
000005b0: ISZERO
000005b1: PUSH2 0x0654
000005b4: JUMPI
000005b5: PUSH0
000005b6: DUP4
000005b7: PUSH0
000005b8: ADD
000005b9: MLOAD
000005ba: DUP4
000005bb: DUP2
000005bc: MLOAD
000005bd: DUP2
000005be: LT
000005bf: PUSH2 0x05ca
000005c2: JUMPI
000005c3: PUSH2 0x05ca
000005c6: PUSH2 0x5791
000005c9: JUMP
000005ca: JUMPDEST
000005cb: PUSH1 0x20
000005cd: MUL
000005ce: PUSH1 0x20
000005d0: ADD
000005d1: ADD
000005d2: MLOAD
000005d3: SWAP1
000005d4: POP
000005d5: PUSH2 0x05e4
000005d8: PUSH2 0x05de
000005db: DUP3
000005dc: SWAP1
000005dd: JUMP
000005de: JUMPDEST
000005df: DUP7
000005e0: PUSH2 0x21f3
000005e3: JUMP
000005e4: JUMPDEST
000005e5: ISZERO
000005e6: PUSH2 0x0648
000005e9: JUMPI
000005ea: PUSH2 0x0622
000005ed: DUP9
000005ee: PUSH2 0x061c
000005f1: DUP12
000005f2: DUP8
000005f3: PUSH0
000005f4: ADD
000005f5: MLOAD
000005f6: DUP8
000005f7: DUP2
000005f8: MLOAD
000005f9: DUP2
000005fa: LT
000005fb: PUSH2 0x0606
000005fe: JUMPI
000005ff: PUSH2 0x0606
00000602: PUSH2 0x5791
00000605: JUMP
00000606: JUMPDEST
00000607: PUSH1 0x20
00000609: MUL
0000060a: PUSH1 0x20
0000060c: ADD
0000060d: ADD
0000060e: MLOAD
0000060f: PUSH2 0x2222
00000612: SWAP1
00000613: SWAP2
00000614: SWAP1
00000615: PUSH4 0xffffffff
0000061a: AND
0000061b: JUMP
0000061c: JUMPDEST
0000061d: SWAP1
0000061e: PUSH2 0x224c
00000621: JUMP
00000622: JUMPDEST
00000623: DUP5
00000624: MLOAD
00000625: DUP1
00000626: MLOAD
00000627: DUP6
00000628: SWAP1
00000629: DUP2
0000062a: LT
0000062b: PUSH2 0x0636
0000062e: JUMPI
0000062f: PUSH2 0x0636
00000632: PUSH2 0x5791
00000635: JUMP
00000636: JUMPDEST
00000637: PUSH1 0x20
00000639: MUL
0000063a: PUSH1 0x20
0000063c: ADD
0000063d: ADD
0000063e: DUP2
0000063f: DUP2
00000640: MSTORE
00000641: POP
00000642: POP
00000643: POP
00000644: PUSH2 0x0654
00000647: JUMP
00000648: JUMPDEST
00000649: POP
0000064a: PUSH1 0x01
0000064c: SWAP1
0000064d: SWAP2
0000064e: ADD
0000064f: SWAP1
00000650: PUSH2 0x05ac
00000653: JUMP
00000654: JUMPDEST
00000655: DUP1
00000656: DUP3
00000657: SUB
00000658: PUSH2 0x0670
0000065b: JUMPI
0000065c: PUSH2 0x0670
0000065f: PUSH2 0x0669
00000662: DUP6
00000663: DUP11
00000664: DUP11
00000665: PUSH2 0x2267
00000668: JUMP
00000669: JUMPDEST
0000066a: DUP5
0000066b: SWAP1
0000066c: PUSH2 0x22b2
0000066f: JUMP
00000670: JUMPDEST
00000671: PUSH2 0x0679
00000674: DUP4
00000675: PUSH2 0x232d
00000678: JUMP
00000679: JUMPDEST
0000067a: PUSH1 0x03
0000067c: DUP1
0000067d: SLOAD
0000067e: PUSH1 0x01
00000680: PUSH1 0x01
00000682: PUSH1 0xa0
00000684: SHL
00000685: SUB
00000686: SWAP3
00000687: SWAP1
00000688: SWAP3
00000689: AND
0000068a: PUSH9 0x010000000000000000
00000694: MUL
00000695: PUSH32 0xffffffff0000000000000000000000000000000000000000ffffffffffffffff
000006b6: SWAP1
000006b7: SWAP3
000006b8: AND
000006b9: SWAP2
000006ba: SWAP1
000006bb: SWAP2
000006bc: OR
000006bd: SWAP1
000006be: SSTORE
000006bf: PUSH1 0x40
000006c1: DUP1
000006c2: MLOAD
000006c3: DUP1
000006c4: DUP3
000006c5: ADD
000006c6: DUP3
000006c7: MSTORE
000006c8: PUSH3 0xffffff
000006cc: DUP1
000006cd: DUP10
000006ce: AND
000006cf: DUP3
000006d0: MSTORE
000006d1: DUP8
000006d2: DUP2
000006d3: AND
000006d4: PUSH1 0x20
000006d6: DUP1
000006d7: DUP5
000006d8: ADD
000006d9: DUP3
000006da: DUP2
000006db: MSTORE
000006dc: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
000006fd: DUP11
000006fe: AND
000006ff: PUSH0
00000700: SWAP1
00000701: DUP2
00000702: MSTORE
00000703: PUSH1 0x02
00000705: SWAP1
00000706: SWAP3
00000707: MSTORE
00000708: SWAP5
00000709: SWAP1
0000070a: KECCAK256
0000070b: SWAP3
0000070c: MLOAD
0000070d: DUP4
0000070e: SLOAD
0000070f: SWAP5
00000710: MLOAD
00000711: DUP4
00000712: AND
00000713: PUSH4 0x01000000
00000718: MUL
00000719: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
0000073a: SWAP1
0000073b: SWAP6
0000073c: AND
0000073d: SWAP3
0000073e: AND
0000073f: SWAP2
00000740: SWAP1
00000741: SWAP2
00000742: OR
00000743: SWAP3
00000744: SWAP1
00000745: SWAP3
00000746: OR
00000747: SWAP1
00000748: SSTORE
00000749: PUSH2 0x0751
0000074c: SWAP1
0000074d: PUSH2 0x239c
00000750: JUMP
00000751: JUMPDEST
00000752: PUSH2 0x075f
00000755: DUP7
00000756: PUSH3 0xffffff
0000075a: AND
0000075b: PUSH2 0x239c
0000075e: JUMP
0000075f: JUMPDEST
00000760: POP
00000761: POP
00000762: POP
00000763: POP
00000764: POP
00000765: POP
00000766: POP
00000767: POP
00000768: POP
00000769: POP
0000076a: JUMP
0000076b: JUMPDEST
0000076c: PUSH2 0x0780
0000076f: PUSH1 0x03
00000771: SLOAD
00000772: PUSH8 0xffffffffffffffff
0000077b: AND
0000077c: NUMBER
0000077d: EQ
0000077e: SWAP1
0000077f: JUMP
00000780: JUMPDEST
00000781: ISZERO
00000782: PUSH2 0x07b7
00000785: JUMPI
00000786: PUSH1 0x40
00000788: MLOAD
00000789: PUSH32 0xd8a6b89b00000000000000000000000000000000000000000000000000000000
000007aa: DUP2
000007ab: MSTORE
000007ac: PUSH1 0x04
000007ae: ADD
000007af: PUSH1 0x40
000007b1: MLOAD
000007b2: DUP1
000007b3: SWAP2
000007b4: SUB
000007b5: SWAP1
000007b6: REVERT
000007b7: JUMPDEST
000007b8: PUSH1 0x01
000007ba: PUSH1 0x01
000007bc: PUSH1 0xa0
000007be: SHL
000007bf: SUB
000007c0: DUP4
000007c1: AND
000007c2: PUSH0
000007c3: SWAP1
000007c4: DUP2
000007c5: MSTORE
000007c6: PUSH1 0x01
000007c8: PUSH1 0x20
000007ca: MSTORE
000007cb: PUSH1 0x40
000007cd: SWAP1
000007ce: KECCAK256
000007cf: SLOAD
000007d0: PUSH1 0xff
000007d2: AND
000007d3: PUSH2 0x0808
000007d6: JUMPI
000007d7: PUSH1 0x40
000007d9: MLOAD
000007da: PUSH32 0x5cd26b6800000000000000000000000000000000000000000000000000000000
000007fb: DUP2
000007fc: MSTORE
000007fd: PUSH1 0x04
000007ff: ADD
00000800: PUSH1 0x40
00000802: MLOAD
00000803: DUP1
00000804: SWAP2
00000805: SUB
00000806: SWAP1
00000807: REVERT
00000808: JUMPDEST
00000809: PUSH32 0x3f25e551746414ff93f076a7dd83828ff53735b39366c74015637e004fcb0223
0000082a: PUSH0
0000082b: SWAP1
0000082c: DUP2
0000082d: MSTORE
0000082e: NUMBER
0000082f: PUSH1 0x20
00000831: MSTORE
00000832: PUSH1 0x40
00000834: DUP2
00000835: KECCAK256
00000836: SWAP1
00000837: PUSH2 0x083f
0000083a: DUP3
0000083b: PUSH2 0x23db
0000083e: JUMP
0000083f: JUMPDEST
00000840: SWAP1
00000841: POP
00000842: PUSH2 0x084d
00000845: DUP6
00000846: DUP3
00000847: DUP7
00000848: DUP7
00000849: PUSH2 0x24f1
0000084c: JUMP
0000084d: JUMPDEST
0000084e: PUSH2 0x0883
00000851: JUMPI
00000852: PUSH1 0x40
00000854: MLOAD
00000855: PUSH32 0x8baa579f00000000000000000000000000000000000000000000000000000000
00000876: DUP2
00000877: MSTORE
00000878: PUSH1 0x04
0000087a: ADD
0000087b: PUSH1 0x40
0000087d: MLOAD
0000087e: DUP1
0000087f: SWAP2
00000880: SUB
00000881: SWAP1
00000882: REVERT
00000883: JUMPDEST
00000884: PUSH2 0x088c
00000887: NUMBER
00000888: PUSH2 0x25dd
0000088b: JUMP
0000088c: JUMPDEST
0000088d: PUSH1 0x03
0000088f: DUP1
00000890: SLOAD
00000891: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000
000008b2: AND
000008b3: PUSH8 0xffffffffffffffff
000008bc: SWAP3
000008bd: SWAP1
000008be: SWAP3
000008bf: AND
000008c0: SWAP2
000008c1: SWAP1
000008c2: SWAP2
000008c3: OR
000008c4: SWAP1
000008c5: SSTORE
000008c6: POP
000008c7: POP
000008c8: POP
000008c9: POP
000008ca: POP
000008cb: JUMP
000008cc: JUMPDEST
000008cd: PUSH0
000008ce: PUSH2 0x08d5
000008d1: PUSH2 0x25fa
000008d4: JUMP
000008d5: JUMPDEST
000008d6: PUSH0
000008d7: PUSH2 0x08df
000008da: DUP7
000008db: PUSH2 0x265c
000008de: JUMP
000008df: JUMPDEST
000008e0: SWAP1
000008e1: POP
000008e2: PUSH0
000008e3: DUP1
000008e4: PUSH2 0x093f
000008e7: DUP4
000008e8: DUP11
000008e9: PUSH2 0x08f5
000008ec: PUSH1 0x20
000008ee: DUP12
000008ef: ADD
000008f0: DUP12
000008f1: PUSH2 0x57cc
000008f4: JUMP
000008f5: JUMPDEST
000008f6: PUSH2 0x0905
000008f9: PUSH1 0x40
000008fb: DUP13
000008fc: ADD
000008fd: PUSH1 0x20
000008ff: DUP14
00000900: ADD
00000901: PUSH2 0x57cc
00000904: JUMP
00000905: JUMPDEST
00000906: PUSH1 0x06
00000908: SWAP1
00000909: DUP2
0000090a: MSTORE
0000090b: PUSH1 0x03
0000090d: SWAP2
0000090e: SWAP1
0000090f: SWAP2
00000910: MSTORE
00000911: PUSH0
00000912: SWAP2
00000913: DUP3
00000914: MSTORE
00000915: PUSH1 0x60
00000917: DUP12
00000918: ADD
00000919: CALLDATALOAD
0000091a: PUSH1 0x26
0000091c: SWAP1
0000091d: DUP2
0000091e: MSTORE
0000091f: PUSH1 0x3a
00000921: PUSH1 0x0c
00000923: KECCAK256
00000924: SWAP1
00000925: DUP4
00000926: SWAP1
00000927: MSTORE
00000928: SWAP3
00000929: DUP3
0000092a: MSTORE
0000092b: PUSH1 0x20
0000092d: SWAP1
0000092e: DUP2
0000092f: MSTORE
00000930: PUSH1 0x40
00000932: DUP1
00000933: DUP4
00000934: KECCAK256
00000935: DUP5
00000936: DUP5
00000937: MSTORE
00000938: SWAP1
00000939: SWAP2
0000093a: MSTORE
0000093b: SWAP1
0000093c: KECCAK256
0000093d: SWAP2
0000093e: JUMP
0000093f: JUMPDEST
00000940: SWAP1
00000941: SWAP3
00000942: POP
00000943: SWAP1
00000944: POP
00000945: PUSH0
00000946: PUSH2 0x0984
00000949: PUSH2 0x097b
0000094c: PUSH1 0x01
0000094e: PUSH1 0x01
00000950: PUSH1 0xa0
00000952: SHL
00000953: SUB
00000954: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00000975: AND
00000976: DUP7
00000977: PUSH2 0x2670
0000097a: JUMP
0000097b: JUMPDEST
0000097c: PUSH1 0xa0
0000097e: SHR
0000097f: PUSH1 0x02
00000981: SIGNEXTEND
00000982: SWAP1
00000983: JUMP
00000984: JUMPDEST
00000985: SWAP1
00000986: POP
00000987: PUSH0
00000988: PUSH2 0x09bd
0000098b: DUP3
0000098c: PUSH2 0x0998
0000098f: PUSH1 0x20
00000991: DUP13
00000992: ADD
00000993: DUP13
00000994: PUSH2 0x57cc
00000997: JUMP
00000998: JUMPDEST
00000999: PUSH2 0x09a8
0000099c: PUSH1 0x40
0000099e: DUP14
0000099f: ADD
000009a0: PUSH1 0x20
000009a2: DUP15
000009a3: ADD
000009a4: PUSH2 0x57cc
000009a7: JUMP
000009a8: JUMPDEST
000009a9: PUSH0
000009aa: DUP10
000009ab: DUP2
000009ac: MSTORE
000009ad: PUSH1 0x07
000009af: PUSH1 0x20
000009b1: MSTORE
000009b2: PUSH1 0x40
000009b4: SWAP1
000009b5: KECCAK256
000009b6: SWAP3
000009b7: SWAP2
000009b8: SWAP1
000009b9: PUSH2 0x2690
000009bc: JUMP
000009bd: JUMPDEST
000009be: SWAP1
000009bf: POP
000009c0: PUSH0
000009c1: PUSH2 0x09f4
000009c4: PUSH1 0x01
000009c6: PUSH1 0x01
000009c8: PUSH1 0xa0
000009ca: SHL
000009cb: SUB
000009cc: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
000009ed: AND
000009ee: DUP8
000009ef: DUP7
000009f0: PUSH2 0x2712
000009f3: JUMP
000009f4: JUMPDEST
000009f5: SWAP1
000009f6: POP
000009f7: PUSH0
000009f8: PUSH2 0x0a18
000009fb: DUP7
000009fc: PUSH0
000009fd: ADD
000009fe: SLOAD
000009ff: DUP5
00000a00: SUB
00000a01: DUP4
00000a02: PUSH16 0xffffffffffffffffffffffffffffffff
00000a13: AND
00000a14: PUSH2 0x276d
00000a17: JUMP
00000a18: JUMPDEST
00000a19: SWAP1
00000a1a: POP
00000a1b: DUP1
00000a1c: ISZERO
00000a1d: PUSH2 0x0bb6
00000a20: JUMPI
00000a21: PUSH1 0x01
00000a23: PUSH1 0x01
00000a25: PUSH1 0xa0
00000a27: SHL
00000a28: SUB
00000a29: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00000a4a: AND
00000a4b: PUSH4 0xa5841194
00000a50: PUSH2 0x0a5c
00000a53: PUSH1 0x20
00000a55: DUP16
00000a56: ADD
00000a57: DUP16
00000a58: PUSH2 0x54c3
00000a5b: JUMP
00000a5c: JUMPDEST
00000a5d: PUSH1 0x40
00000a5f: MLOAD
00000a60: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000a81: PUSH1 0xe0
00000a83: DUP5
00000a84: SWAP1
00000a85: SHL
00000a86: AND
00000a87: DUP2
00000a88: MSTORE
00000a89: PUSH1 0x01
00000a8b: PUSH1 0x01
00000a8d: PUSH1 0xa0
00000a8f: SHL
00000a90: SUB
00000a91: SWAP1
00000a92: SWAP2
00000a93: AND
00000a94: PUSH1 0x04
00000a96: DUP3
00000a97: ADD
00000a98: MSTORE
00000a99: PUSH1 0x24
00000a9b: ADD
00000a9c: PUSH0
00000a9d: PUSH1 0x40
00000a9f: MLOAD
00000aa0: DUP1
00000aa1: DUP4
00000aa2: SUB
00000aa3: DUP2
00000aa4: PUSH0
00000aa5: DUP8
00000aa6: DUP1
00000aa7: EXTCODESIZE
00000aa8: ISZERO
00000aa9: DUP1
00000aaa: ISZERO
00000aab: PUSH2 0x0ab2
00000aae: JUMPI
00000aaf: PUSH0
00000ab0: DUP1
00000ab1: REVERT
00000ab2: JUMPDEST
00000ab3: POP
00000ab4: GAS
00000ab5: CALL
00000ab6: ISZERO
00000ab7: DUP1
00000ab8: ISZERO
00000ab9: PUSH2 0x0ac4
00000abc: JUMPI
00000abd: RETURNDATASIZE
00000abe: PUSH0
00000abf: DUP1
00000ac0: RETURNDATACOPY
00000ac1: RETURNDATASIZE
00000ac2: PUSH0
00000ac3: REVERT
00000ac4: JUMPDEST
00000ac5: POP
00000ac6: POP
00000ac7: POP
00000ac8: POP
00000ac9: PUSH2 0x0b0f
00000acc: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00000aed: DUP3
00000aee: DUP15
00000aef: PUSH0
00000af0: ADD
00000af1: PUSH1 0x20
00000af3: DUP2
00000af4: ADD
00000af5: SWAP1
00000af6: PUSH2 0x0aff
00000af9: SWAP2
00000afa: SWAP1
00000afb: PUSH2 0x54c3
00000afe: JUMP
00000aff: JUMPDEST
00000b00: PUSH1 0x01
00000b02: PUSH1 0x01
00000b04: PUSH1 0xa0
00000b06: SHL
00000b07: SUB
00000b08: AND
00000b09: SWAP2
00000b0a: SWAP1
00000b0b: PUSH2 0x27e2
00000b0e: JUMP
00000b0f: JUMPDEST
00000b10: PUSH1 0x40
00000b12: MLOAD
00000b13: PUSH32 0x3dd45adb00000000000000000000000000000000000000000000000000000000
00000b34: DUP2
00000b35: MSTORE
00000b36: PUSH1 0x01
00000b38: PUSH1 0x01
00000b3a: PUSH1 0xa0
00000b3c: SHL
00000b3d: SUB
00000b3e: DUP15
00000b3f: DUP2
00000b40: AND
00000b41: PUSH1 0x04
00000b43: DUP4
00000b44: ADD
00000b45: MSTORE
00000b46: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00000b67: AND
00000b68: SWAP1
00000b69: PUSH4 0x3dd45adb
00000b6e: SWAP1
00000b6f: PUSH1 0x24
00000b71: ADD
00000b72: PUSH1 0x20
00000b74: PUSH1 0x40
00000b76: MLOAD
00000b77: DUP1
00000b78: DUP4
00000b79: SUB
00000b7a: DUP2
00000b7b: PUSH0
00000b7c: DUP8
00000b7d: GAS
00000b7e: CALL
00000b7f: ISZERO
00000b80: DUP1
00000b81: ISZERO
00000b82: PUSH2 0x0b8d
00000b85: JUMPI
00000b86: RETURNDATASIZE
00000b87: PUSH0
00000b88: DUP1
00000b89: RETURNDATACOPY
00000b8a: RETURNDATASIZE
00000b8b: PUSH0
00000b8c: REVERT
00000b8d: JUMPDEST
00000b8e: POP
00000b8f: POP
00000b90: POP
00000b91: POP
00000b92: PUSH1 0x40
00000b94: MLOAD
00000b95: RETURNDATASIZE
00000b96: PUSH1 0x1f
00000b98: NOT
00000b99: PUSH1 0x1f
00000b9b: DUP3
00000b9c: ADD
00000b9d: AND
00000b9e: DUP3
00000b9f: ADD
00000ba0: DUP1
00000ba1: PUSH1 0x40
00000ba3: MSTORE
00000ba4: POP
00000ba5: DUP2
00000ba6: ADD
00000ba7: SWAP1
00000ba8: PUSH2 0x0bb1
00000bab: SWAP2
00000bac: SWAP1
00000bad: PUSH2 0x57e7
00000bb0: JUMP
00000bb1: JUMPDEST
00000bb2: POP
00000bb3: DUP3
00000bb4: DUP7
00000bb5: SSTORE
00000bb6: JUMPDEST
00000bb7: POP
00000bb8: PUSH32 0x21d0ee7000000000000000000000000000000000000000000000000000000000
00000bd9: SWAP13
00000bda: SWAP12
00000bdb: POP
00000bdc: POP
00000bdd: POP
00000bde: POP
00000bdf: POP
00000be0: POP
00000be1: POP
00000be2: POP
00000be3: POP
00000be4: POP
00000be5: POP
00000be6: POP
00000be7: JUMP
00000be8: JUMPDEST
00000be9: PUSH0
00000bea: PUSH2 0x0bf1
00000bed: PUSH2 0x25fa
00000bf0: JUMP
00000bf1: JUMPDEST
00000bf2: PUSH0
00000bf3: PUSH2 0x0bfb
00000bf6: DUP7
00000bf7: PUSH2 0x265c
00000bfa: JUMP
00000bfb: JUMPDEST
00000bfc: PUSH0
00000bfd: DUP2
00000bfe: DUP2
00000bff: MSTORE
00000c00: PUSH1 0x07
00000c02: PUSH1 0x20
00000c04: MSTORE
00000c05: PUSH1 0x40
00000c07: DUP2
00000c08: KECCAK256
00000c09: SWAP2
00000c0a: SWAP3
00000c0b: POP
00000c0c: DUP1
00000c0d: PUSH2 0x0c42
00000c10: PUSH2 0x097b
00000c13: PUSH1 0x01
00000c15: PUSH1 0x01
00000c17: PUSH1 0xa0
00000c19: SHL
00000c1a: SUB
00000c1b: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00000c3c: AND
00000c3d: DUP7
00000c3e: PUSH2 0x2670
00000c41: JUMP
00000c42: JUMPDEST
00000c43: SWAP1
00000c44: POP
00000c45: PUSH0
00000c46: DUP4
00000c47: PUSH2 0x0c53
00000c4a: PUSH1 0x20
00000c4c: DUP12
00000c4d: ADD
00000c4e: DUP12
00000c4f: PUSH2 0x57cc
00000c52: JUMP
00000c53: JUMPDEST
00000c54: PUSH3 0xffffff
00000c58: AND
00000c59: PUSH4 0x01000000
00000c5e: DUP2
00000c5f: LT
00000c60: PUSH2 0x0c6b
00000c63: JUMPI
00000c64: PUSH2 0x0c6b
00000c67: PUSH2 0x5791
00000c6a: JUMP
00000c6b: JUMPDEST
00000c6c: ADD
00000c6d: SLOAD
00000c6e: SWAP1
00000c6f: POP
00000c70: PUSH0
00000c71: DUP5
00000c72: PUSH2 0x0c81
00000c75: PUSH1 0x40
00000c77: DUP13
00000c78: ADD
00000c79: PUSH1 0x20
00000c7b: DUP14
00000c7c: ADD
00000c7d: PUSH2 0x57cc
00000c80: JUMP
00000c81: JUMPDEST
00000c82: PUSH3 0xffffff
00000c86: AND
00000c87: PUSH4 0x01000000
00000c8c: DUP2
00000c8d: LT
00000c8e: PUSH2 0x0c99
00000c91: JUMPI
00000c92: PUSH2 0x0c99
00000c95: PUSH2 0x5791
00000c98: JUMP
00000c99: JUMPDEST
00000c9a: ADD
00000c9b: SLOAD
00000c9c: SWAP1
00000c9d: POP
00000c9e: PUSH2 0x0caa
00000ca1: PUSH1 0x20
00000ca3: DUP12
00000ca4: ADD
00000ca5: DUP12
00000ca6: PUSH2 0x57cc
00000ca9: JUMP
00000caa: JUMPDEST
00000cab: PUSH1 0x02
00000cad: SIGNEXTEND
00000cae: DUP4
00000caf: PUSH1 0x02
00000cb1: SIGNEXTEND
00000cb2: SLT
00000cb3: ISZERO
00000cb4: PUSH2 0x0cc1
00000cb7: JUMPI
00000cb8: DUP1
00000cb9: DUP3
00000cba: SUB
00000cbb: SWAP4
00000cbc: POP
00000cbd: PUSH2 0x0e1c
00000cc0: JUMP
00000cc1: JUMPDEST
00000cc2: PUSH1 0x02
00000cc4: DUP4
00000cc5: SWAP1
00000cc6: SIGNEXTEND
00000cc7: PUSH2 0x0cd6
00000cca: PUSH1 0x40
00000ccc: DUP13
00000ccd: ADD
00000cce: PUSH1 0x20
00000cd0: DUP14
00000cd1: ADD
00000cd2: PUSH2 0x57cc
00000cd5: JUMP
00000cd6: JUMPDEST
00000cd7: PUSH1 0x02
00000cd9: SIGNEXTEND
00000cda: SGT
00000cdb: PUSH2 0x0dc4
00000cde: JUMPI
00000cdf: PUSH2 0x0d34
00000ce2: DUP7
00000ce3: PUSH2 0x0cef
00000ce6: PUSH1 0x20
00000ce8: DUP14
00000ce9: ADD
00000cea: DUP14
00000ceb: PUSH2 0x57cc
00000cee: JUMP
00000cef: JUMPDEST
00000cf0: DUP14
00000cf1: PUSH1 0x60
00000cf3: ADD
00000cf4: PUSH1 0x20
00000cf6: DUP2
00000cf7: ADD
00000cf8: SWAP1
00000cf9: PUSH2 0x0d02
00000cfc: SWAP2
00000cfd: SWAP1
00000cfe: PUSH2 0x57cc
00000d01: JUMP
00000d02: JUMPDEST
00000d03: PUSH1 0x01
00000d05: PUSH1 0x01
00000d07: PUSH1 0xa0
00000d09: SHL
00000d0a: SUB
00000d0b: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00000d2c: AND
00000d2d: SWAP3
00000d2e: SWAP2
00000d2f: SWAP1
00000d30: PUSH2 0x2835
00000d33: JUMP
00000d34: JUMPDEST
00000d35: PUSH2 0x0d6c
00000d38: JUMPI
00000d39: PUSH4 0x01000000
00000d3e: DUP6
00000d3f: ADD
00000d40: SLOAD
00000d41: SWAP2
00000d42: POP
00000d43: DUP2
00000d44: DUP6
00000d45: PUSH2 0x0d51
00000d48: PUSH1 0x20
00000d4a: DUP14
00000d4b: ADD
00000d4c: DUP14
00000d4d: PUSH2 0x57cc
00000d50: JUMP
00000d51: JUMPDEST
00000d52: PUSH3 0xffffff
00000d56: AND
00000d57: PUSH4 0x01000000
00000d5c: DUP2
00000d5d: LT
00000d5e: PUSH2 0x0d69
00000d61: JUMPI
00000d62: PUSH2 0x0d69
00000d65: PUSH2 0x5791
00000d68: JUMP
00000d69: JUMPDEST
00000d6a: ADD
00000d6b: SSTORE
00000d6c: JUMPDEST
00000d6d: PUSH2 0x0d80
00000d70: DUP7
00000d71: PUSH2 0x0cef
00000d74: PUSH1 0x40
00000d76: DUP14
00000d77: ADD
00000d78: PUSH1 0x20
00000d7a: DUP15
00000d7b: ADD
00000d7c: PUSH2 0x57cc
00000d7f: JUMP
00000d80: JUMPDEST
00000d81: PUSH2 0x0dba
00000d84: JUMPI
00000d85: POP
00000d86: PUSH4 0x01000000
00000d8b: DUP5
00000d8c: ADD
00000d8d: SLOAD
00000d8e: DUP1
00000d8f: DUP6
00000d90: PUSH2 0x0d9f
00000d93: PUSH1 0x40
00000d95: DUP14
00000d96: ADD
00000d97: PUSH1 0x20
00000d99: DUP15
00000d9a: ADD
00000d9b: PUSH2 0x57cc
00000d9e: JUMP
00000d9f: JUMPDEST
00000da0: PUSH3 0xffffff
00000da4: AND
00000da5: PUSH4 0x01000000
00000daa: DUP2
00000dab: LT
00000dac: PUSH2 0x0db7
00000daf: JUMPI
00000db0: PUSH2 0x0db7
00000db3: PUSH2 0x5791
00000db6: JUMP
00000db7: JUMPDEST
00000db8: ADD
00000db9: SSTORE
00000dba: JUMPDEST
00000dbb: DUP2
00000dbc: DUP2
00000dbd: SUB
00000dbe: SWAP4
00000dbf: POP
00000dc0: PUSH2 0x0e1c
00000dc3: JUMP
00000dc4: JUMPDEST
00000dc5: PUSH2 0x0dd5
00000dc8: DUP7
00000dc9: PUSH2 0x0cef
00000dcc: PUSH1 0x20
00000dce: DUP14
00000dcf: ADD
00000dd0: DUP14
00000dd1: PUSH2 0x57cc
00000dd4: JUMP
00000dd5: JUMPDEST
00000dd6: PUSH2 0x0e0d
00000dd9: JUMPI
00000dda: PUSH4 0x01000000
00000ddf: DUP6
00000de0: ADD
00000de1: SLOAD
00000de2: SWAP2
00000de3: POP
00000de4: DUP2
00000de5: DUP6
00000de6: PUSH2 0x0df2
00000de9: PUSH1 0x20
00000deb: DUP14
00000dec: ADD
00000ded: DUP14
00000dee: PUSH2 0x57cc
00000df1: JUMP
00000df2: JUMPDEST
00000df3: PUSH3 0xffffff
00000df7: AND
00000df8: PUSH4 0x01000000
00000dfd: DUP2
00000dfe: LT
00000dff: PUSH2 0x0e0a
00000e02: JUMPI
00000e03: PUSH2 0x0e0a
00000e06: PUSH2 0x5791
00000e09: JUMP
00000e0a: JUMPDEST
00000e0b: ADD
00000e0c: SSTORE
00000e0d: JUMPDEST
00000e0e: DUP1
00000e0f: DUP3
00000e10: DUP7
00000e11: PUSH4 0x01000000
00000e16: ADD
00000e17: SLOAD
00000e18: SUB
00000e19: SUB
00000e1a: SWAP4
00000e1b: POP
00000e1c: JUMPDEST
00000e1d: POP
00000e1e: PUSH0
00000e1f: SWAP2
00000e20: POP
00000e21: DUP2
00000e22: SWAP1
00000e23: POP
00000e24: PUSH2 0x0e7f
00000e27: DUP6
00000e28: DUP13
00000e29: PUSH2 0x0e35
00000e2c: PUSH1 0x20
00000e2e: DUP14
00000e2f: ADD
00000e30: DUP14
00000e31: PUSH2 0x57cc
00000e34: JUMP
00000e35: JUMPDEST
00000e36: PUSH2 0x0e45
00000e39: PUSH1 0x40
00000e3b: DUP15
00000e3c: ADD
00000e3d: PUSH1 0x20
00000e3f: DUP16
00000e40: ADD
00000e41: PUSH2 0x57cc
00000e44: JUMP
00000e45: JUMPDEST
00000e46: PUSH1 0x06
00000e48: SWAP1
00000e49: DUP2
00000e4a: MSTORE
00000e4b: PUSH1 0x03
00000e4d: SWAP2
00000e4e: SWAP1
00000e4f: SWAP2
00000e50: MSTORE
00000e51: PUSH0
00000e52: SWAP2
00000e53: DUP3
00000e54: MSTORE
00000e55: PUSH1 0x60
00000e57: DUP14
00000e58: ADD
00000e59: CALLDATALOAD
00000e5a: PUSH1 0x26
00000e5c: SWAP1
00000e5d: DUP2
00000e5e: MSTORE
00000e5f: PUSH1 0x3a
00000e61: PUSH1 0x0c
00000e63: KECCAK256
00000e64: SWAP1
00000e65: DUP4
00000e66: SWAP1
00000e67: MSTORE
00000e68: SWAP3
00000e69: DUP3
00000e6a: MSTORE
00000e6b: PUSH1 0x20
00000e6d: SWAP1
00000e6e: DUP2
00000e6f: MSTORE
00000e70: PUSH1 0x40
00000e72: DUP1
00000e73: DUP4
00000e74: KECCAK256
00000e75: DUP5
00000e76: DUP5
00000e77: MSTORE
00000e78: SWAP1
00000e79: SWAP2
00000e7a: MSTORE
00000e7b: SWAP1
00000e7c: KECCAK256
00000e7d: SWAP2
00000e7e: JUMP
00000e7f: JUMPDEST
00000e80: SWAP1
00000e81: SWAP3
00000e82: POP
00000e83: SWAP1
00000e84: POP
00000e85: PUSH0
00000e86: PUSH2 0x0eb9
00000e89: PUSH1 0x01
00000e8b: PUSH1 0x01
00000e8d: PUSH1 0xa0
00000e8f: SHL
00000e90: SUB
00000e91: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00000eb2: AND
00000eb3: DUP8
00000eb4: DUP5
00000eb5: PUSH2 0x2712
00000eb8: JUMP
00000eb9: JUMPDEST
00000eba: SWAP1
00000ebb: POP
00000ebc: PUSH1 0x40
00000ebe: DUP11
00000ebf: ADD
00000ec0: CALLDATALOAD
00000ec1: PUSH0
00000ec2: PUSH2 0x0ecb
00000ec5: DUP3
00000ec6: DUP5
00000ec7: PUSH2 0x582b
00000eca: JUMP
00000ecb: JUMPDEST
00000ecc: SWAP1
00000ecd: POP
00000ece: DUP3
00000ecf: PUSH16 0xffffffffffffffffffffffffffffffff
00000ee0: AND
00000ee1: PUSH0
00000ee2: SUB
00000ee3: PUSH2 0x0eee
00000ee6: JUMPI
00000ee7: DUP6
00000ee8: DUP6
00000ee9: SSTORE
00000eea: PUSH2 0x0f29
00000eed: JUMP
00000eee: JUMPDEST
00000eef: PUSH0
00000ef0: PUSH2 0x0f23
00000ef3: DUP7
00000ef4: PUSH0
00000ef5: ADD
00000ef6: SLOAD
00000ef7: DUP9
00000ef8: SUB
00000ef9: DUP6
00000efa: PUSH16 0xffffffffffffffffffffffffffffffff
00000f0b: AND
00000f0c: DUP5
00000f0d: PUSH16 0xffffffffffffffffffffffffffffffff
00000f1e: AND
00000f1f: PUSH2 0x288b
00000f22: JUMP
00000f23: JUMPDEST
00000f24: DUP8
00000f25: SUB
00000f26: DUP7
00000f27: SSTORE
00000f28: POP
00000f29: JUMPDEST
00000f2a: POP
00000f2b: PUSH32 0x259982e500000000000000000000000000000000000000000000000000000000
00000f4c: SWAP14
00000f4d: SWAP13
00000f4e: POP
00000f4f: POP
00000f50: POP
00000f51: POP
00000f52: POP
00000f53: POP
00000f54: POP
00000f55: POP
00000f56: POP
00000f57: POP
00000f58: POP
00000f59: POP
00000f5a: POP
00000f5b: JUMP
00000f5c: JUMPDEST
00000f5d: PUSH2 0x0f64
00000f60: PUSH2 0x213a
00000f63: JUMP
00000f64: JUMPDEST
00000f65: PUSH1 0x40
00000f67: MLOAD
00000f68: PUSH32 0x877415d200000000000000000000000000000000000000000000000000000000
00000f89: DUP2
00000f8a: MSTORE
00000f8b: PUSH1 0x01
00000f8d: PUSH1 0x01
00000f8f: PUSH1 0xa0
00000f91: SHL
00000f92: SUB
00000f93: PUSH32 0x00000000000000000000000059a82241ce490fb77370e3f614de04aa188e13d2
00000fb4: AND
00000fb5: SWAP1
00000fb6: PUSH4 0x877415d2
00000fbb: SWAP1
00000fbc: PUSH2 0x0fcd
00000fbf: SWAP1
00000fc0: DUP7
00000fc1: SWAP1
00000fc2: DUP7
00000fc3: SWAP1
00000fc4: DUP7
00000fc5: SWAP1
00000fc6: PUSH1 0x04
00000fc8: ADD
00000fc9: PUSH2 0x5853
00000fcc: JUMP
00000fcd: JUMPDEST
00000fce: PUSH0
00000fcf: PUSH1 0x40
00000fd1: MLOAD
00000fd2: DUP1
00000fd3: DUP4
00000fd4: SUB
00000fd5: DUP2
00000fd6: PUSH0
00000fd7: DUP8
00000fd8: DUP1
00000fd9: EXTCODESIZE
00000fda: ISZERO
00000fdb: DUP1
00000fdc: ISZERO
00000fdd: PUSH2 0x0fe4
00000fe0: JUMPI
00000fe1: PUSH0
00000fe2: DUP1
00000fe3: REVERT
00000fe4: JUMPDEST
00000fe5: POP
00000fe6: GAS
00000fe7: CALL
00000fe8: ISZERO
00000fe9: DUP1
00000fea: ISZERO
00000feb: PUSH2 0x0ff6
00000fee: JUMPI
00000fef: RETURNDATASIZE
00000ff0: PUSH0
00000ff1: DUP1
00000ff2: RETURNDATACOPY
00000ff3: RETURNDATASIZE
00000ff4: PUSH0
00000ff5: REVERT
00000ff6: JUMPDEST
00000ff7: POP
00000ff8: POP
00000ff9: POP
00000ffa: POP
00000ffb: POP
00000ffc: POP
00000ffd: POP
00000ffe: JUMP
00000fff: JUMPDEST
00001000: PUSH2 0x1014
00001003: PUSH1 0x01
00001005: PUSH1 0x01
00001007: PUSH1 0xa0
00001009: SHL
0000100a: SUB
0000100b: DUP4
0000100c: AND
0000100d: CALLER
0000100e: ADDRESS
0000100f: DUP5
00001010: PUSH2 0x2938
00001013: JUMP
00001014: JUMPDEST
00001015: PUSH1 0x01
00001017: PUSH1 0x01
00001019: PUSH1 0xa0
0000101b: SHL
0000101c: SUB
0000101d: DUP3
0000101e: AND
0000101f: PUSH0
00001020: SWAP1
00001021: DUP2
00001022: MSTORE
00001023: PUSH1 0x05
00001025: PUSH1 0x20
00001027: SWAP1
00001028: DUP2
00001029: MSTORE
0000102a: PUSH1 0x40
0000102c: DUP1
0000102d: DUP4
0000102e: KECCAK256
0000102f: CALLER
00001030: DUP5
00001031: MSTORE
00001032: SWAP1
00001033: SWAP2
00001034: MSTORE
00001035: DUP2
00001036: KECCAK256
00001037: DUP1
00001038: SLOAD
00001039: DUP4
0000103a: SWAP3
0000103b: SWAP1
0000103c: PUSH2 0x1046
0000103f: SWAP1
00001040: DUP5
00001041: SWAP1
00001042: PUSH2 0x5875
00001045: JUMP
00001046: JUMPDEST
00001047: SWAP1
00001048: SWAP2
00001049: SSTORE
0000104a: POP
0000104b: POP
0000104c: POP
0000104d: POP
0000104e: JUMP
0000104f: JUMPDEST
00001050: PUSH2 0x1057
00001053: PUSH2 0x213a
00001056: JUMP
00001057: JUMPDEST
00001058: PUSH1 0x03
0000105a: SLOAD
0000105b: PUSH1 0x01
0000105d: PUSH1 0x01
0000105f: PUSH1 0xa0
00001061: SHL
00001062: SUB
00001063: PUSH9 0x010000000000000000
0000106d: SWAP1
0000106e: SWAP2
0000106f: DIV
00001070: DUP2
00001071: AND
00001072: SWAP1
00001073: DUP5
00001074: AND
00001075: DUP2
00001076: EQ
00001077: PUSH2 0x10ac
0000107a: JUMPI
0000107b: PUSH1 0x40
0000107d: MLOAD
0000107e: PUSH32 0xf21fd99f00000000000000000000000000000000000000000000000000000000
0000109f: DUP2
000010a0: MSTORE
000010a1: PUSH1 0x04
000010a3: ADD
000010a4: PUSH1 0x40
000010a6: MLOAD
000010a7: DUP1
000010a8: SWAP2
000010a9: SUB
000010aa: SWAP1
000010ab: REVERT
000010ac: JUMPDEST
000010ad: PUSH1 0x03
000010af: SLOAD
000010b0: PUSH0
000010b1: SWAP1
000010b2: PUSH2 0x10d0
000010b5: SWAP1
000010b6: PUSH9 0x010000000000000000
000010c0: SWAP1
000010c1: DIV
000010c2: PUSH1 0x01
000010c4: PUSH1 0x01
000010c6: PUSH1 0xa0
000010c8: SHL
000010c9: SUB
000010ca: AND
000010cb: DUP3
000010cc: PUSH2 0x217f
000010cf: JUMP
000010d0: JUMPDEST
000010d1: SWAP1
000010d2: POP
000010d3: PUSH0
000010d4: JUMPDEST
000010d5: DUP4
000010d6: DUP2
000010d7: LT
000010d8: ISZERO
000010d9: PUSH2 0x1249
000010dc: JUMPI
000010dd: CALLDATASIZE
000010de: DUP6
000010df: DUP6
000010e0: DUP4
000010e1: DUP2
000010e2: DUP2
000010e3: LT
000010e4: PUSH2 0x10ef
000010e7: JUMPI
000010e8: PUSH2 0x10ef
000010eb: PUSH2 0x5791
000010ee: JUMP
000010ef: JUMPDEST
000010f0: SWAP1
000010f1: POP
000010f2: PUSH1 0xa0
000010f4: MUL
000010f5: ADD
000010f6: SWAP1
000010f7: POP
000010f8: PUSH2 0x1129
000010fb: DUP2
000010fc: PUSH1 0x40
000010fe: ADD
000010ff: PUSH1 0x20
00001101: DUP2
00001102: ADD
00001103: SWAP1
00001104: PUSH2 0x110d
00001107: SWAP2
00001108: SWAP1
00001109: PUSH2 0x5888
0000110c: JUMP
0000110d: JUMPDEST
0000110e: PUSH2 0x061c
00001111: PUSH2 0x1120
00001114: PUSH1 0x40
00001116: DUP6
00001117: ADD
00001118: PUSH1 0x20
0000111a: DUP7
0000111b: ADD
0000111c: PUSH2 0x58a1
0000111f: JUMP
00001120: JUMPDEST
00001121: DUP7
00001122: SWAP1
00001123: DUP6
00001124: CALLDATALOAD
00001125: PUSH2 0x299a
00001128: JUMP
00001129: JUMPDEST
0000112a: DUP4
0000112b: MLOAD
0000112c: DUP1
0000112d: MLOAD
0000112e: DUP4
0000112f: CALLDATALOAD
00001130: SWAP1
00001131: DUP2
00001132: LT
00001133: PUSH2 0x113e
00001136: JUMPI
00001137: PUSH2 0x113e
0000113a: PUSH2 0x5791
0000113d: JUMP
0000113e: JUMPDEST
0000113f: PUSH1 0x20
00001141: SWAP1
00001142: DUP2
00001143: MUL
00001144: SWAP2
00001145: SWAP1
00001146: SWAP2
00001147: ADD
00001148: ADD
00001149: MSTORE
0000114a: PUSH2 0x1166
0000114d: PUSH2 0x115c
00001150: PUSH1 0x80
00001152: DUP4
00001153: ADD
00001154: PUSH1 0x60
00001156: DUP5
00001157: ADD
00001158: PUSH2 0x5888
0000115b: JUMP
0000115c: JUMPDEST
0000115d: PUSH3 0xffffff
00001161: AND
00001162: PUSH2 0x239c
00001165: JUMP
00001166: JUMPDEST
00001167: PUSH2 0x1179
0000116a: PUSH2 0x115c
0000116d: PUSH1 0xa0
0000116f: DUP4
00001170: ADD
00001171: PUSH1 0x80
00001173: DUP5
00001174: ADD
00001175: PUSH2 0x5888
00001178: JUMP
00001179: JUMPDEST
0000117a: PUSH1 0x40
0000117c: DUP1
0000117d: MLOAD
0000117e: DUP1
0000117f: DUP3
00001180: ADD
00001181: SWAP1
00001182: SWAP2
00001183: MSTORE
00001184: DUP1
00001185: PUSH2 0x1194
00001188: PUSH1 0x80
0000118a: DUP5
0000118b: ADD
0000118c: PUSH1 0x60
0000118e: DUP6
0000118f: ADD
00001190: PUSH2 0x5888
00001193: JUMP
00001194: JUMPDEST
00001195: PUSH3 0xffffff
00001199: AND
0000119a: DUP2
0000119b: MSTORE
0000119c: PUSH1 0x20
0000119e: ADD
0000119f: PUSH2 0x11ae
000011a2: PUSH1 0xa0
000011a4: DUP5
000011a5: ADD
000011a6: PUSH1 0x80
000011a8: DUP6
000011a9: ADD
000011aa: PUSH2 0x5888
000011ad: JUMP
000011ae: JUMPDEST
000011af: PUSH3 0xffffff
000011b3: AND
000011b4: SWAP1
000011b5: MSTORE
000011b6: PUSH1 0x02
000011b8: PUSH0
000011b9: PUSH2 0x11c8
000011bc: PUSH1 0x40
000011be: DUP6
000011bf: ADD
000011c0: PUSH1 0x20
000011c2: DUP7
000011c3: ADD
000011c4: PUSH2 0x58a1
000011c7: JUMP
000011c8: JUMPDEST
000011c9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
000011ea: AND
000011eb: DUP2
000011ec: MSTORE
000011ed: PUSH1 0x20
000011ef: DUP1
000011f0: DUP3
000011f1: ADD
000011f2: SWAP3
000011f3: SWAP1
000011f4: SWAP3
000011f5: MSTORE
000011f6: PUSH1 0x40
000011f8: ADD
000011f9: PUSH0
000011fa: KECCAK256
000011fb: DUP3
000011fc: MLOAD
000011fd: DUP2
000011fe: SLOAD
000011ff: SWAP4
00001200: SWAP1
00001201: SWAP3
00001202: ADD
00001203: MLOAD
00001204: PUSH3 0xffffff
00001208: SWAP1
00001209: DUP2
0000120a: AND
0000120b: PUSH4 0x01000000
00001210: MUL
00001211: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
00001232: SWAP1
00001233: SWAP5
00001234: AND
00001235: SWAP3
00001236: AND
00001237: SWAP2
00001238: SWAP1
00001239: SWAP2
0000123a: OR
0000123b: SWAP2
0000123c: SWAP1
0000123d: SWAP2
0000123e: OR
0000123f: SWAP1
00001240: SSTORE
00001241: POP
00001242: PUSH1 0x01
00001244: ADD
00001245: PUSH2 0x10d4
00001248: JUMP
00001249: JUMPDEST
0000124a: POP
0000124b: PUSH2 0x1253
0000124e: DUP2
0000124f: PUSH2 0x232d
00001252: JUMP
00001253: JUMPDEST
00001254: PUSH1 0x03
00001256: PUSH1 0x08
00001258: PUSH2 0x0100
0000125b: EXP
0000125c: DUP2
0000125d: SLOAD
0000125e: DUP2
0000125f: PUSH1 0x01
00001261: PUSH1 0x01
00001263: PUSH1 0xa0
00001265: SHL
00001266: SUB
00001267: MUL
00001268: NOT
00001269: AND
0000126a: SWAP1
0000126b: DUP4
0000126c: PUSH1 0x01
0000126e: PUSH1 0x01
00001270: PUSH1 0xa0
00001272: SHL
00001273: SUB
00001274: AND
00001275: MUL
00001276: OR
00001277: SWAP1
00001278: SSTORE
00001279: POP
0000127a: POP
0000127b: POP
0000127c: POP
0000127d: POP
0000127e: POP
0000127f: JUMP
00001280: JUMPDEST
00001281: PUSH0
00001282: DUP1
00001283: PUSH0
00001284: PUSH2 0x128b
00001287: PUSH2 0x25fa
0000128a: JUMP
0000128b: JUMPDEST
0000128c: PUSH2 0x12a0
0000128f: PUSH1 0x03
00001291: SLOAD
00001292: PUSH8 0xffffffffffffffff
0000129b: AND
0000129c: NUMBER
0000129d: EQ
0000129e: SWAP1
0000129f: JUMP
000012a0: JUMPDEST
000012a1: PUSH2 0x1357
000012a4: JUMPI
000012a5: PUSH1 0x14
000012a7: DUP5
000012a8: LT
000012a9: ISZERO
000012aa: PUSH2 0x1319
000012ad: JUMPI
000012ae: PUSH0
000012af: DUP5
000012b0: SWAP1
000012b1: SUB
000012b2: PUSH2 0x12e7
000012b5: JUMPI
000012b6: PUSH1 0x40
000012b8: MLOAD
000012b9: PUSH32 0x1e8107a000000000000000000000000000000000000000000000000000000000
000012da: DUP2
000012db: MSTORE
000012dc: PUSH1 0x04
000012de: ADD
000012df: PUSH1 0x40
000012e1: MLOAD
000012e2: DUP1
000012e3: SWAP2
000012e4: SUB
000012e5: SWAP1
000012e6: REVERT
000012e7: JUMPDEST
000012e8: PUSH1 0x40
000012ea: MLOAD
000012eb: PUSH32 0x4926898b00000000000000000000000000000000000000000000000000000000
0000130c: DUP2
0000130d: MSTORE
0000130e: PUSH1 0x04
00001310: ADD
00001311: PUSH1 0x40
00001313: MLOAD
00001314: DUP1
00001315: SWAP2
00001316: SUB
00001317: SWAP1
00001318: REVERT
00001319: JUMPDEST
0000131a: PUSH0
0000131b: PUSH2 0x1327
0000131e: PUSH1 0x14
00001320: DUP3
00001321: DUP8
00001322: DUP10
00001323: PUSH2 0x58ba
00001326: JUMP
00001327: JUMPDEST
00001328: PUSH2 0x1330
0000132b: SWAP2
0000132c: PUSH2 0x58e1
0000132f: JUMP
00001330: JUMPDEST
00001331: PUSH1 0x60
00001333: SHR
00001334: SWAP1
00001335: POP
00001336: CALLDATASIZE
00001337: PUSH0
00001338: PUSH2 0x1344
0000133b: DUP8
0000133c: PUSH1 0x14
0000133e: DUP2
0000133f: DUP12
00001340: PUSH2 0x58ba
00001343: JUMP
00001344: JUMPDEST
00001345: SWAP2
00001346: POP
00001347: SWAP2
00001348: POP
00001349: PUSH2 0x1353
0000134c: DUP4
0000134d: DUP4
0000134e: DUP4
0000134f: PUSH2 0x076b
00001352: JUMP
00001353: JUMPDEST
00001354: POP
00001355: POP
00001356: POP
00001357: JUMPDEST
00001358: PUSH0
00001359: PUSH2 0x1392
0000135c: PUSH2 0x136e
0000135f: PUSH2 0x136b
00001362: PUSH1 0x20
00001364: DUP12
00001365: ADD
00001366: DUP12
00001367: PUSH2 0x54c3
0000136a: JUMP
0000136b: JUMPDEST
0000136c: SWAP1
0000136d: JUMP
0000136e: JUMPDEST
0000136f: PUSH2 0x1381
00001372: PUSH2 0x136b
00001375: PUSH1 0x40
00001377: DUP13
00001378: ADD
00001379: PUSH1 0x20
0000137b: DUP14
0000137c: ADD
0000137d: PUSH2 0x54c3
00001380: JUMP
00001381: JUMPDEST
00001382: PUSH0
00001383: SWAP2
00001384: DUP3
00001385: MSTORE
00001386: PUSH1 0x20
00001388: MSTORE
00001389: PUSH1 0x40
0000138b: SWAP1
0000138c: KECCAK256
0000138d: PUSH1 0x28
0000138f: SHL
00001390: SWAP1
00001391: JUMP
00001392: JUMPDEST
00001393: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
000013b4: DUP2
000013b5: AND
000013b6: PUSH0
000013b7: SWAP1
000013b8: DUP2
000013b9: MSTORE
000013ba: PUSH1 0x02
000013bc: PUSH1 0x20
000013be: MSTORE
000013bf: PUSH1 0x40
000013c1: DUP2
000013c2: KECCAK256
000013c3: SLOAD
000013c4: PUSH3 0xffffff
000013c8: AND
000013c9: PUSH3 0x400000
000013cd: OR
000013ce: SWAP4
000013cf: POP
000013d0: SWAP1
000013d1: SWAP2
000013d2: POP
000013d3: PUSH2 0x13db
000013d6: DUP10
000013d7: PUSH2 0x265c
000013da: JUMP
000013db: JUMPDEST
000013dc: SWAP1
000013dd: POP
000013de: PUSH2 0x1421
000013e1: PUSH2 0x1416
000013e4: PUSH2 0x097b
000013e7: PUSH1 0x01
000013e9: PUSH1 0x01
000013eb: PUSH1 0xa0
000013ed: SHL
000013ee: SUB
000013ef: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00001410: AND
00001411: DUP5
00001412: PUSH2 0x2670
00001415: JUMP
00001416: JUMPDEST
00001417: PUSH1 0x08
00001419: SWAP1
0000141a: PUSH1 0x02
0000141c: SIGNEXTEND
0000141d: PUSH2 0x2a27
00001420: JUMP
00001421: JUMPDEST
00001422: POP
00001423: PUSH32 0x575e24b400000000000000000000000000000000000000000000000000000000
00001444: SWAP4
00001445: POP
00001446: PUSH0
00001447: SWAP3
00001448: POP
00001449: POP
0000144a: SWAP6
0000144b: POP
0000144c: SWAP6
0000144d: POP
0000144e: SWAP6
0000144f: SWAP3
00001450: POP
00001451: POP
00001452: POP
00001453: JUMP
00001454: JUMPDEST
00001455: PUSH0
00001456: PUSH1 0x01
00001458: DUP4
00001459: ADD
0000145a: DUP4
0000145b: CALLDATALOAD
0000145c: DUP3
0000145d: BYTE
0000145e: DUP1
0000145f: PUSH2 0x1551
00001462: JUMPI
00001463: PUSH1 0x40
00001465: DUP1
00001466: MLOAD
00001467: PUSH32 0xd505accf00000000000000000000000000000000000000000000000000000000
00001488: DUP2
00001489: MSTORE
0000148a: PUSH1 0x01
0000148c: PUSH1 0x01
0000148e: PUSH1 0xa0
00001490: SHL
00001491: SUB
00001492: DUP9
00001493: AND
00001494: PUSH1 0x04
00001496: DUP3
00001497: ADD
00001498: MSTORE
00001499: CALLER
0000149a: PUSH1 0x24
0000149c: DUP3
0000149d: ADD
0000149e: MSTORE
0000149f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000014c0: PUSH1 0x44
000014c2: DUP3
000014c3: ADD
000014c4: MSTORE
000014c5: PUSH1 0x14
000014c7: DUP5
000014c8: ADD
000014c9: CALLDATALOAD
000014ca: PUSH1 0xd8
000014cc: SHR
000014cd: PUSH1 0x64
000014cf: DUP3
000014d0: ADD
000014d1: DUP2
000014d2: SWAP1
000014d3: MSTORE
000014d4: PUSH1 0x19
000014d6: DUP6
000014d7: ADD
000014d8: CALLDATALOAD
000014d9: PUSH0
000014da: SWAP1
000014db: DUP2
000014dc: BYTE
000014dd: PUSH1 0x84
000014df: DUP5
000014e0: ADD
000014e1: DUP2
000014e2: SWAP1
000014e3: MSTORE
000014e4: PUSH1 0x1a
000014e6: DUP8
000014e7: ADD
000014e8: CALLDATALOAD
000014e9: PUSH1 0xa4
000014eb: DUP6
000014ec: ADD
000014ed: DUP2
000014ee: SWAP1
000014ef: MSTORE
000014f0: PUSH1 0x3a
000014f2: DUP9
000014f3: ADD
000014f4: CALLDATALOAD
000014f5: PUSH1 0xc4
000014f7: DUP7
000014f8: ADD
000014f9: DUP2
000014fa: SWAP1
000014fb: MSTORE
000014fc: SWAP6
000014fd: MLOAD
000014fe: PUSH1 0x5a
00001500: DUP10
00001501: ADD
00001502: SWAP9
00001503: CALLDATALOAD
00001504: PUSH1 0x60
00001506: SHR
00001507: SWAP7
00001508: SWAP5
00001509: SWAP6
0000150a: SWAP3
0000150b: SWAP5
0000150c: SWAP2
0000150d: SWAP4
0000150e: SWAP2
0000150f: SWAP3
00001510: DUP8
00001511: SWAP3
00001512: PUSH4 0xd505accf
00001517: SWAP3
00001518: PUSH1 0xe4
0000151a: DUP1
0000151b: DUP5
0000151c: ADD
0000151d: SWAP4
0000151e: DUP3
0000151f: SWAP1
00001520: SUB
00001521: ADD
00001522: DUP2
00001523: DUP4
00001524: DUP8
00001525: DUP1
00001526: EXTCODESIZE
00001527: ISZERO
00001528: DUP1
00001529: ISZERO
0000152a: PUSH2 0x1531
0000152d: JUMPI
0000152e: PUSH0
0000152f: DUP1
00001530: REVERT
00001531: JUMPDEST
00001532: POP
00001533: GAS
00001534: CALL
00001535: ISZERO
00001536: DUP1
00001537: ISZERO
00001538: PUSH2 0x1543
0000153b: JUMPI
0000153c: RETURNDATASIZE
0000153d: PUSH0
0000153e: DUP1
0000153f: RETURNDATACOPY
00001540: RETURNDATASIZE
00001541: PUSH0
00001542: REVERT
00001543: JUMPDEST
00001544: POP
00001545: POP
00001546: POP
00001547: POP
00001548: POP
00001549: POP
0000154a: POP
0000154b: POP
0000154c: POP
0000154d: PUSH2 0x1714
00001550: JUMP
00001551: JUMPDEST
00001552: PUSH1 0x01
00001554: DUP2
00001555: PUSH1 0xff
00001557: AND
00001558: SUB
00001559: PUSH2 0x162c
0000155c: JUMPI
0000155d: PUSH1 0x40
0000155f: MLOAD
00001560: PUSH32 0xd505accf00000000000000000000000000000000000000000000000000000000
00001581: DUP2
00001582: MSTORE
00001583: PUSH1 0x01
00001585: PUSH1 0x01
00001587: PUSH1 0xa0
00001589: SHL
0000158a: SUB
0000158b: DUP8
0000158c: AND
0000158d: PUSH1 0x04
0000158f: DUP3
00001590: ADD
00001591: MSTORE
00001592: CALLER
00001593: PUSH1 0x24
00001595: DUP3
00001596: DUP2
00001597: ADD
00001598: SWAP2
00001599: SWAP1
0000159a: SWAP2
0000159b: MSTORE
0000159c: PUSH1 0x14
0000159e: DUP5
0000159f: ADD
000015a0: CALLDATALOAD
000015a1: PUSH1 0x80
000015a3: SHR
000015a4: PUSH1 0x44
000015a6: DUP4
000015a7: ADD
000015a8: DUP2
000015a9: SWAP1
000015aa: MSTORE
000015ab: SWAP1
000015ac: DUP5
000015ad: ADD
000015ae: CALLDATALOAD
000015af: PUSH1 0xd8
000015b1: SHR
000015b2: PUSH1 0x64
000015b4: DUP4
000015b5: ADD
000015b6: DUP2
000015b7: SWAP1
000015b8: MSTORE
000015b9: PUSH1 0x29
000015bb: DUP6
000015bc: ADD
000015bd: CALLDATALOAD
000015be: PUSH0
000015bf: BYTE
000015c0: PUSH1 0x84
000015c2: DUP5
000015c3: ADD
000015c4: DUP2
000015c5: SWAP1
000015c6: MSTORE
000015c7: PUSH1 0x2a
000015c9: DUP7
000015ca: ADD
000015cb: CALLDATALOAD
000015cc: PUSH1 0xa4
000015ce: DUP6
000015cf: ADD
000015d0: DUP2
000015d1: SWAP1
000015d2: MSTORE
000015d3: PUSH1 0x4a
000015d5: DUP8
000015d6: ADD
000015d7: CALLDATALOAD
000015d8: PUSH1 0xc4
000015da: DUP7
000015db: ADD
000015dc: DUP2
000015dd: SWAP1
000015de: MSTORE
000015df: PUSH1 0x6a
000015e1: DUP9
000015e2: ADD
000015e3: SWAP8
000015e4: CALLDATALOAD
000015e5: PUSH1 0x60
000015e7: SHR
000015e8: SWAP6
000015e9: DUP7
000015ea: SWAP1
000015eb: PUSH4 0xd505accf
000015f0: SWAP1
000015f1: PUSH1 0xe4
000015f3: ADD
000015f4: JUMPDEST
000015f5: PUSH0
000015f6: PUSH1 0x40
000015f8: MLOAD
000015f9: DUP1
000015fa: DUP4
000015fb: SUB
000015fc: DUP2
000015fd: PUSH0
000015fe: DUP8
000015ff: DUP1
00001600: EXTCODESIZE
00001601: ISZERO
00001602: DUP1
00001603: ISZERO
00001604: PUSH2 0x160b
00001607: JUMPI
00001608: PUSH0
00001609: DUP1
0000160a: REVERT
0000160b: JUMPDEST
0000160c: POP
0000160d: GAS
0000160e: CALL
0000160f: ISZERO
00001610: DUP1
00001611: ISZERO
00001612: PUSH2 0x161d
00001615: JUMPI
00001616: RETURNDATASIZE
00001617: PUSH0
00001618: DUP1
00001619: RETURNDATACOPY
0000161a: RETURNDATASIZE
0000161b: PUSH0
0000161c: REVERT
0000161d: JUMPDEST
0000161e: POP
0000161f: POP
00001620: POP
00001621: POP
00001622: POP
00001623: POP
00001624: POP
00001625: POP
00001626: POP
00001627: POP
00001628: PUSH2 0x1714
0000162b: JUMP
0000162c: JUMPDEST
0000162d: PUSH1 0x02
0000162f: DUP2
00001630: PUSH1 0xff
00001632: AND
00001633: SUB
00001634: PUSH2 0x16d8
00001637: JUMPI
00001638: PUSH1 0x40
0000163a: MLOAD
0000163b: PUSH32 0x8fcbaf0c00000000000000000000000000000000000000000000000000000000
0000165c: DUP2
0000165d: MSTORE
0000165e: PUSH1 0x01
00001660: PUSH1 0x01
00001662: PUSH1 0xa0
00001664: SHL
00001665: SUB
00001666: DUP8
00001667: AND
00001668: PUSH1 0x04
0000166a: DUP3
0000166b: ADD
0000166c: MSTORE
0000166d: CALLER
0000166e: PUSH1 0x24
00001670: DUP3
00001671: ADD
00001672: MSTORE
00001673: PUSH1 0x14
00001675: DUP4
00001676: ADD
00001677: CALLDATALOAD
00001678: PUSH1 0xe0
0000167a: SHR
0000167b: PUSH1 0x44
0000167d: DUP3
0000167e: ADD
0000167f: DUP2
00001680: SWAP1
00001681: MSTORE
00001682: PUSH1 0x18
00001684: DUP5
00001685: ADD
00001686: CALLDATALOAD
00001687: PUSH1 0xd8
00001689: SHR
0000168a: PUSH1 0x64
0000168c: DUP4
0000168d: ADD
0000168e: DUP2
0000168f: SWAP1
00001690: MSTORE
00001691: PUSH1 0x01
00001693: PUSH1 0x84
00001695: DUP5
00001696: ADD
00001697: MSTORE
00001698: PUSH1 0x1d
0000169a: DUP6
0000169b: ADD
0000169c: CALLDATALOAD
0000169d: PUSH0
0000169e: BYTE
0000169f: PUSH1 0xa4
000016a1: DUP5
000016a2: ADD
000016a3: DUP2
000016a4: SWAP1
000016a5: MSTORE
000016a6: PUSH1 0x1e
000016a8: DUP7
000016a9: ADD
000016aa: CALLDATALOAD
000016ab: PUSH1 0xc4
000016ad: DUP6
000016ae: ADD
000016af: DUP2
000016b0: SWAP1
000016b1: MSTORE
000016b2: PUSH1 0x3e
000016b4: DUP8
000016b5: ADD
000016b6: CALLDATALOAD
000016b7: PUSH1 0xe4
000016b9: DUP7
000016ba: ADD
000016bb: DUP2
000016bc: SWAP1
000016bd: MSTORE
000016be: PUSH1 0x5e
000016c0: DUP9
000016c1: ADD
000016c2: SWAP8
000016c3: CALLDATALOAD
000016c4: PUSH1 0x60
000016c6: SHR
000016c7: SWAP6
000016c8: DUP7
000016c9: SWAP1
000016ca: PUSH4 0x8fcbaf0c
000016cf: SWAP1
000016d0: PUSH2 0x0104
000016d3: ADD
000016d4: PUSH2 0x15f4
000016d7: JUMP
000016d8: JUMPDEST
000016d9: PUSH1 0x40
000016db: MLOAD
000016dc: PUSH32 0x6f1d150900000000000000000000000000000000000000000000000000000000
000016fd: DUP2
000016fe: MSTORE
000016ff: PUSH1 0xff
00001701: DUP3
00001702: AND
00001703: PUSH1 0x04
00001705: DUP3
00001706: ADD
00001707: MSTORE
00001708: PUSH1 0x24
0000170a: ADD
0000170b: JUMPDEST
0000170c: PUSH1 0x40
0000170e: MLOAD
0000170f: DUP1
00001710: SWAP2
00001711: SUB
00001712: SWAP1
00001713: REVERT
00001714: JUMPDEST
00001715: PUSH2 0x171f
00001718: DUP3
00001719: DUP7
0000171a: DUP7
0000171b: PUSH2 0x2a2e
0000171e: JUMP
0000171f: JUMPDEST
00001720: PUSH4 0x24a2e44b
00001725: SWAP3
00001726: POP
00001727: POP
00001728: POP
00001729: JUMPDEST
0000172a: SWAP4
0000172b: SWAP3
0000172c: POP
0000172d: POP
0000172e: POP
0000172f: JUMP
00001730: JUMPDEST
00001731: PUSH0
00001732: DUP2
00001733: SLOAD
00001734: PUSH0
00001735: MSTORE
00001736: PUSH1 0x20
00001738: PUSH0
00001739: RETURN
0000173a: JUMPDEST
0000173b: PUSH2 0x174f
0000173e: PUSH1 0x01
00001740: PUSH1 0x01
00001742: PUSH1 0xa0
00001744: SHL
00001745: SUB
00001746: DUP5
00001747: AND
00001748: CALLER
00001749: ADDRESS
0000174a: DUP5
0000174b: PUSH2 0x2938
0000174e: JUMP
0000174f: JUMPDEST
00001750: PUSH1 0x01
00001752: PUSH1 0x01
00001754: PUSH1 0xa0
00001756: SHL
00001757: SUB
00001758: DUP1
00001759: DUP5
0000175a: AND
0000175b: PUSH0
0000175c: SWAP1
0000175d: DUP2
0000175e: MSTORE
0000175f: PUSH1 0x05
00001761: PUSH1 0x20
00001763: SWAP1
00001764: DUP2
00001765: MSTORE
00001766: PUSH1 0x40
00001768: DUP1
00001769: DUP4
0000176a: KECCAK256
0000176b: SWAP4
0000176c: DUP7
0000176d: AND
0000176e: DUP4
0000176f: MSTORE
00001770: SWAP3
00001771: SWAP1
00001772: MSTORE
00001773: SWAP1
00001774: DUP2
00001775: KECCAK256
00001776: DUP1
00001777: SLOAD
00001778: DUP4
00001779: SWAP3
0000177a: SWAP1
0000177b: PUSH2 0x1785
0000177e: SWAP1
0000177f: DUP5
00001780: SWAP1
00001781: PUSH2 0x5875
00001784: JUMP
00001785: JUMPDEST
00001786: SWAP1
00001787: SWAP2
00001788: SSTORE
00001789: POP
0000178a: POP
0000178b: POP
0000178c: POP
0000178d: POP
0000178e: JUMP
0000178f: JUMPDEST
00001790: PUSH32 0x0f00000000000000000000000000000000000000000000000000000000000000
000017b1: PUSH1 0x60
000017b3: DUP1
000017b4: PUSH0
000017b5: DUP1
000017b6: DUP1
000017b7: DUP4
000017b8: PUSH2 0x1825
000017bb: PUSH1 0x40
000017bd: DUP1
000017be: MLOAD
000017bf: DUP1
000017c0: DUP3
000017c1: ADD
000017c2: DUP3
000017c3: MSTORE
000017c4: PUSH1 0x08
000017c6: DUP2
000017c7: MSTORE
000017c8: PUSH32 0x416e677374726f6d000000000000000000000000000000000000000000000000
000017e9: PUSH1 0x20
000017eb: DUP1
000017ec: DUP4
000017ed: ADD
000017ee: SWAP2
000017ef: SWAP1
000017f0: SWAP2
000017f1: MSTORE
000017f2: DUP3
000017f3: MLOAD
000017f4: DUP1
000017f5: DUP5
000017f6: ADD
000017f7: SWAP1
000017f8: SWAP4
000017f9: MSTORE
000017fa: PUSH1 0x02
000017fc: DUP4
000017fd: MSTORE
000017fe: PUSH32 0x7631000000000000000000000000000000000000000000000000000000000000
0000181f: SWAP1
00001820: DUP4
00001821: ADD
00001822: MSTORE
00001823: SWAP2
00001824: JUMP
00001825: JUMPDEST
00001826: SWAP8
00001827: SWAP9
00001828: SWAP1
00001829: SWAP8
0000182a: SWAP7
0000182b: POP
0000182c: CHAINID
0000182d: SWAP6
0000182e: POP
0000182f: ADDRESS
00001830: SWAP5
00001831: POP
00001832: SWAP2
00001833: SWAP3
00001834: POP
00001835: SWAP1
00001836: JUMP
00001837: JUMPDEST
00001838: DUP3
00001839: PUSH1 0x01
0000183b: PUSH1 0x01
0000183d: PUSH1 0xa0
0000183f: SHL
00001840: SUB
00001841: AND
00001842: DUP5
00001843: PUSH1 0x01
00001845: PUSH1 0x01
00001847: PUSH1 0xa0
00001849: SHL
0000184a: SUB
0000184b: AND
0000184c: GT
0000184d: ISZERO
0000184e: PUSH2 0x1855
00001851: JUMPI
00001852: SWAP2
00001853: SWAP3
00001854: SWAP2
00001855: JUMPDEST
00001856: PUSH0
00001857: DUP5
00001858: DUP2
00001859: MSTORE
0000185a: PUSH1 0x20
0000185c: DUP5
0000185d: SWAP1
0000185e: MSTORE
0000185f: PUSH1 0x40
00001861: DUP2
00001862: KECCAK256
00001863: PUSH1 0x28
00001865: SHL
00001866: PUSH1 0x03
00001868: SLOAD
00001869: SWAP1
0000186a: SWAP2
0000186b: POP
0000186c: PUSH0
0000186d: SWAP1
0000186e: PUSH2 0x188d
00001871: SWAP1
00001872: PUSH9 0x010000000000000000
0000187c: SWAP1
0000187d: DIV
0000187e: PUSH1 0x01
00001880: PUSH1 0x01
00001882: PUSH1 0xa0
00001884: SHL
00001885: SUB
00001886: AND
00001887: DUP4
00001888: DUP7
00001889: PUSH2 0x2a4b
0000188c: JUMP
0000188d: JUMPDEST
0000188e: POP
0000188f: SWAP1
00001890: POP
00001891: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
000018b2: PUSH1 0x01
000018b4: PUSH1 0x01
000018b6: PUSH1 0xa0
000018b8: SHL
000018b9: SUB
000018ba: AND
000018bb: PUSH4 0x6276cbbe
000018c0: PUSH1 0x40
000018c2: MLOAD
000018c3: DUP1
000018c4: PUSH1 0xa0
000018c6: ADD
000018c7: PUSH1 0x40
000018c9: MSTORE
000018ca: DUP1
000018cb: PUSH2 0x18d1
000018ce: DUP11
000018cf: SWAP1
000018d0: JUMP
000018d1: JUMPDEST
000018d2: PUSH1 0x01
000018d4: PUSH1 0x01
000018d6: PUSH1 0xa0
000018d8: SHL
000018d9: SUB
000018da: AND
000018db: DUP2
000018dc: MSTORE
000018dd: PUSH1 0x20
000018df: ADD
000018e0: DUP9
000018e1: PUSH1 0x01
000018e3: PUSH1 0x01
000018e5: PUSH1 0xa0
000018e7: SHL
000018e8: SUB
000018e9: SWAP1
000018ea: DUP2
000018eb: AND
000018ec: DUP3
000018ed: MSTORE
000018ee: PUSH3 0x800000
000018f2: PUSH1 0x20
000018f4: DUP1
000018f5: DUP5
000018f6: ADD
000018f7: SWAP2
000018f8: SWAP1
000018f9: SWAP2
000018fa: MSTORE
000018fb: PUSH1 0x02
000018fd: DUP8
000018fe: DUP2
000018ff: SIGNEXTEND
00001900: PUSH1 0x40
00001902: DUP1
00001903: DUP7
00001904: ADD
00001905: SWAP2
00001906: SWAP1
00001907: SWAP2
00001908: MSTORE
00001909: ADDRESS
0000190a: PUSH1 0x60
0000190c: SWAP6
0000190d: DUP7
0000190e: ADD
0000190f: MSTORE
00001910: DUP1
00001911: MLOAD
00001912: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001933: PUSH1 0xe0
00001935: DUP10
00001936: SWAP1
00001937: SHL
00001938: AND
00001939: DUP2
0000193a: MSTORE
0000193b: DUP7
0000193c: MLOAD
0000193d: DUP6
0000193e: AND
0000193f: PUSH1 0x04
00001941: DUP3
00001942: ADD
00001943: MSTORE
00001944: SWAP3
00001945: DUP7
00001946: ADD
00001947: MLOAD
00001948: DUP5
00001949: AND
0000194a: PUSH1 0x24
0000194c: DUP5
0000194d: ADD
0000194e: MSTORE
0000194f: DUP6
00001950: ADD
00001951: MLOAD
00001952: PUSH3 0xffffff
00001956: AND
00001957: PUSH1 0x44
00001959: DUP4
0000195a: ADD
0000195b: MSTORE
0000195c: SWAP3
0000195d: DUP5
0000195e: ADD
0000195f: MLOAD
00001960: SWAP1
00001961: SWAP3
00001962: SIGNEXTEND
00001963: PUSH1 0x64
00001965: DUP4
00001966: ADD
00001967: MSTORE
00001968: PUSH1 0x80
0000196a: SWAP1
0000196b: SWAP3
0000196c: ADD
0000196d: MLOAD
0000196e: DUP3
0000196f: AND
00001970: PUSH1 0x84
00001972: DUP3
00001973: ADD
00001974: MSTORE
00001975: SWAP1
00001976: DUP7
00001977: AND
00001978: PUSH1 0xa4
0000197a: DUP3
0000197b: ADD
0000197c: MSTORE
0000197d: PUSH1 0xc4
0000197f: ADD
00001980: PUSH1 0x20
00001982: PUSH1 0x40
00001984: MLOAD
00001985: DUP1
00001986: DUP4
00001987: SUB
00001988: DUP2
00001989: PUSH0
0000198a: DUP8
0000198b: GAS
0000198c: CALL
0000198d: ISZERO
0000198e: DUP1
0000198f: ISZERO
00001990: PUSH2 0x199b
00001993: JUMPI
00001994: RETURNDATASIZE
00001995: PUSH0
00001996: DUP1
00001997: RETURNDATACOPY
00001998: RETURNDATASIZE
00001999: PUSH0
0000199a: REVERT
0000199b: JUMPDEST
0000199c: POP
0000199d: POP
0000199e: POP
0000199f: POP
000019a0: PUSH1 0x40
000019a2: MLOAD
000019a3: RETURNDATASIZE
000019a4: PUSH1 0x1f
000019a6: NOT
000019a7: PUSH1 0x1f
000019a9: DUP3
000019aa: ADD
000019ab: AND
000019ac: DUP3
000019ad: ADD
000019ae: DUP1
000019af: PUSH1 0x40
000019b1: MSTORE
000019b2: POP
000019b3: DUP2
000019b4: ADD
000019b5: SWAP1
000019b6: PUSH2 0x0ff6
000019b9: SWAP2
000019ba: SWAP1
000019bb: PUSH2 0x5947
000019be: JUMP
000019bf: JUMPDEST
000019c0: PUSH1 0x60
000019c2: PUSH2 0x19c9
000019c5: PUSH2 0x25fa
000019c8: JUMP
000019c9: JUMPDEST
000019ca: DUP3
000019cb: PUSH0
000019cc: PUSH2 0x19d4
000019cf: DUP3
000019d0: PUSH2 0x2ab5
000019d3: JUMP
000019d4: JUMPDEST
000019d5: PUSH1 0x03
000019d7: SLOAD
000019d8: SWAP2
000019d9: SWAP4
000019da: POP
000019db: SWAP2
000019dc: POP
000019dd: PUSH0
000019de: SWAP1
000019df: PUSH2 0x1a00
000019e2: SWAP1
000019e3: DUP5
000019e4: SWAP1
000019e5: DUP5
000019e6: SWAP1
000019e7: PUSH9 0x010000000000000000
000019f1: SWAP1
000019f2: DIV
000019f3: PUSH1 0x01
000019f5: PUSH1 0x01
000019f7: PUSH1 0xa0
000019f9: SHL
000019fa: SUB
000019fb: AND
000019fc: PUSH2 0x2b6c
000019ff: JUMP
00001a00: JUMPDEST
00001a01: SWAP1
00001a02: SWAP4
00001a03: POP
00001a04: SWAP1
00001a05: POP
00001a06: PUSH2 0x1a0e
00001a09: DUP3
00001a0a: PUSH2 0x2ce1
00001a0d: JUMP
00001a0e: JUMPDEST
00001a0f: PUSH2 0x1a18
00001a12: DUP4
00001a13: DUP3
00001a14: PUSH2 0x2d0c
00001a17: JUMP
00001a18: JUMPDEST
00001a19: SWAP3
00001a1a: POP
00001a1b: PUSH2 0x1a24
00001a1e: DUP4
00001a1f: DUP3
00001a20: PUSH2 0x2d98
00001a23: JUMP
00001a24: JUMPDEST
00001a25: SWAP3
00001a26: POP
00001a27: PUSH2 0x1a30
00001a2a: DUP4
00001a2b: DUP3
00001a2c: PUSH2 0x2e4b
00001a2f: JUMP
00001a30: JUMPDEST
00001a31: SWAP3
00001a32: POP
00001a33: PUSH2 0x1a3d
00001a36: DUP4
00001a37: DUP8
00001a38: DUP8
00001a39: PUSH2 0x2a2e
00001a3c: JUMP
00001a3d: JUMPDEST
00001a3e: PUSH2 0x1a46
00001a41: DUP3
00001a42: PUSH2 0x2eea
00001a45: JUMP
00001a46: JUMPDEST
00001a47: PUSH1 0x20
00001a49: PUSH0
00001a4a: MSTORE
00001a4b: PUSH0
00001a4c: PUSH1 0x20
00001a4e: MSTORE
00001a4f: PUSH1 0x40
00001a51: PUSH0
00001a52: RETURN
00001a53: JUMPDEST
00001a54: PUSH2 0x1a5b
00001a57: PUSH2 0x213a
00001a5a: JUMP
00001a5b: JUMPDEST
00001a5c: PUSH0
00001a5d: DUP1
00001a5e: SLOAD
00001a5f: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001a80: AND
00001a81: PUSH1 0x01
00001a83: PUSH1 0x01
00001a85: PUSH1 0xa0
00001a87: SHL
00001a88: SUB
00001a89: SWAP3
00001a8a: SWAP1
00001a8b: SWAP3
00001a8c: AND
00001a8d: SWAP2
00001a8e: SWAP1
00001a8f: SWAP2
00001a90: OR
00001a91: SWAP1
00001a92: SSTORE
00001a93: JUMP
00001a94: JUMPDEST
00001a95: PUSH0
00001a96: DUP1
00001a97: PUSH2 0x1a9e
00001a9a: PUSH2 0x25fa
00001a9d: JUMP
00001a9e: JUMPDEST
00001a9f: PUSH0
00001aa0: DUP1
00001aa1: PUSH2 0x1ac6
00001aa4: PUSH2 0x1ab3
00001aa7: PUSH2 0x136b
00001aaa: PUSH1 0x20
00001aac: DUP13
00001aad: ADD
00001aae: DUP13
00001aaf: PUSH2 0x54c3
00001ab2: JUMP
00001ab3: JUMPDEST
00001ab4: PUSH2 0x1381
00001ab7: PUSH2 0x136b
00001aba: PUSH1 0x40
00001abc: DUP14
00001abd: ADD
00001abe: PUSH1 0x20
00001ac0: DUP15
00001ac1: ADD
00001ac2: PUSH2 0x54c3
00001ac5: JUMP
00001ac6: JUMPDEST
00001ac7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
00001ae8: DUP2
00001ae9: AND
00001aea: PUSH0
00001aeb: SWAP1
00001aec: DUP2
00001aed: MSTORE
00001aee: PUSH1 0x02
00001af0: PUSH1 0x20
00001af2: SWAP1
00001af3: DUP2
00001af4: MSTORE
00001af5: PUSH1 0x40
00001af7: DUP3
00001af8: KECCAK256
00001af9: SLOAD
00001afa: SWAP3
00001afb: SWAP4
00001afc: POP
00001afd: PUSH4 0x01000000
00001b02: SWAP1
00001b03: SWAP3
00001b04: DIV
00001b05: PUSH3 0xffffff
00001b09: AND
00001b0a: SWAP2
00001b0b: DUP11
00001b0c: ADD
00001b0d: DUP1
00001b0e: CALLDATALOAD
00001b0f: DUP3
00001b10: SGT
00001b11: SWAP2
00001b12: SWAP1
00001b13: PUSH2 0x1b1c
00001b16: SWAP1
00001b17: DUP13
00001b18: PUSH2 0x5962
00001b1b: JUMP
00001b1c: JUMPDEST
00001b1d: ISZERO
00001b1e: ISZERO
00001b1f: DUP3
00001b20: ISZERO
00001b21: ISZERO
00001b22: SUB
00001b23: PUSH2 0x1b35
00001b26: JUMPI
00001b27: PUSH2 0x1b30
00001b2a: DUP11
00001b2b: PUSH1 0x0f
00001b2d: SIGNEXTEND
00001b2e: SWAP1
00001b2f: JUMP
00001b30: JUMPDEST
00001b31: PUSH2 0x1b3f
00001b34: JUMP
00001b35: JUMPDEST
00001b36: PUSH2 0x1b3f
00001b39: DUP11
00001b3a: PUSH1 0x80
00001b3c: SAR
00001b3d: SWAP1
00001b3e: JUMP
00001b3f: JUMPDEST
00001b40: SWAP1
00001b41: POP
00001b42: PUSH0
00001b43: DUP1
00001b44: DUP3
00001b45: PUSH1 0x0f
00001b47: SIGNEXTEND
00001b48: SLT
00001b49: PUSH2 0x1b52
00001b4c: JUMPI
00001b4d: DUP2
00001b4e: PUSH2 0x1b5b
00001b51: JUMP
00001b52: JUMPDEST
00001b53: PUSH2 0x1b5b
00001b56: DUP3
00001b57: PUSH2 0x5981
00001b5a: JUMP
00001b5b: JUMPDEST
00001b5c: SWAP1
00001b5d: POP
00001b5e: DUP3
00001b5f: PUSH2 0x1b99
00001b62: JUMPI
00001b63: DUP1
00001b64: PUSH2 0x1b70
00001b67: DUP6
00001b68: PUSH3 0x0f4240
00001b6c: PUSH2 0x59bd
00001b6f: JUMP
00001b70: JUMPDEST
00001b71: PUSH1 0x02
00001b73: SIGNEXTEND
00001b74: PUSH2 0x1b80
00001b77: PUSH3 0x0f4240
00001b7b: DUP5
00001b7c: PUSH2 0x59fe
00001b7f: JUMP
00001b80: JUMPDEST
00001b81: PUSH2 0x1b8a
00001b84: SWAP2
00001b85: SWAP1
00001b86: PUSH2 0x5a4a
00001b89: JUMP
00001b8a: JUMPDEST
00001b8b: PUSH2 0x1b94
00001b8e: SWAP2
00001b8f: SWAP1
00001b90: PUSH2 0x5abd
00001b93: JUMP
00001b94: JUMPDEST
00001b95: PUSH2 0x1bb5
00001b98: JUMP
00001b99: JUMPDEST
00001b9a: PUSH3 0x0f4240
00001b9e: PUSH2 0x1bab
00001ba1: PUSH1 0x02
00001ba3: DUP7
00001ba4: SWAP1
00001ba5: SIGNEXTEND
00001ba6: DUP4
00001ba7: PUSH2 0x59fe
00001baa: JUMP
00001bab: JUMPDEST
00001bac: PUSH2 0x1bb5
00001baf: SWAP2
00001bb0: SWAP1
00001bb1: PUSH2 0x5a4a
00001bb4: JUMP
00001bb5: JUMPDEST
00001bb6: SWAP6
00001bb7: POP
00001bb8: POP
00001bb9: PUSH1 0x01
00001bbb: PUSH1 0x01
00001bbd: PUSH1 0xa0
00001bbf: SHL
00001bc0: SUB
00001bc1: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00001be2: AND
00001be3: SWAP1
00001be4: POP
00001be5: PUSH4 0x156e29f6
00001bea: PUSH32 0x00000000000000000000000059a82241ce490fb77370e3f614de04aa188e13d2
00001c0b: PUSH2 0x1c5a
00001c0e: PUSH2 0x1c1a
00001c11: PUSH1 0x20
00001c13: DUP16
00001c14: ADD
00001c15: DUP16
00001c16: PUSH2 0x5962
00001c19: JUMP
00001c1a: JUMPDEST
00001c1b: ISZERO
00001c1c: ISZERO
00001c1d: DUP6
00001c1e: ISZERO
00001c1f: ISZERO
00001c20: SUB
00001c21: PUSH2 0x1c3c
00001c24: JUMPI
00001c25: DUP15
00001c26: PUSH1 0x20
00001c28: ADD
00001c29: PUSH1 0x20
00001c2b: DUP2
00001c2c: ADD
00001c2d: SWAP1
00001c2e: PUSH2 0x1c37
00001c31: SWAP2
00001c32: SWAP1
00001c33: PUSH2 0x54c3
00001c36: JUMP
00001c37: JUMPDEST
00001c38: PUSH2 0x1c4e
00001c3b: JUMP
00001c3c: JUMPDEST
00001c3d: DUP15
00001c3e: PUSH0
00001c3f: ADD
00001c40: PUSH1 0x20
00001c42: DUP2
00001c43: ADD
00001c44: SWAP1
00001c45: PUSH2 0x1c4e
00001c48: SWAP2
00001c49: SWAP1
00001c4a: PUSH2 0x54c3
00001c4d: JUMP
00001c4e: JUMPDEST
00001c4f: PUSH1 0x01
00001c51: PUSH1 0x01
00001c53: PUSH1 0xa0
00001c55: SHL
00001c56: SUB
00001c57: AND
00001c58: SWAP1
00001c59: JUMP
00001c5a: JUMPDEST
00001c5b: PUSH1 0x40
00001c5d: MLOAD
00001c5e: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001c7f: PUSH1 0xe0
00001c81: DUP6
00001c82: SWAP1
00001c83: SHL
00001c84: AND
00001c85: DUP2
00001c86: MSTORE
00001c87: PUSH1 0x01
00001c89: PUSH1 0x01
00001c8b: PUSH1 0xa0
00001c8d: SHL
00001c8e: SUB
00001c8f: SWAP1
00001c90: SWAP3
00001c91: AND
00001c92: PUSH1 0x04
00001c94: DUP4
00001c95: ADD
00001c96: MSTORE
00001c97: PUSH1 0x24
00001c99: DUP3
00001c9a: ADD
00001c9b: MSTORE
00001c9c: PUSH16 0xffffffffffffffffffffffffffffffff
00001cad: DUP8
00001cae: AND
00001caf: PUSH1 0x44
00001cb1: DUP3
00001cb2: ADD
00001cb3: MSTORE
00001cb4: PUSH1 0x64
00001cb6: ADD
00001cb7: PUSH0
00001cb8: PUSH1 0x40
00001cba: MLOAD
00001cbb: DUP1
00001cbc: DUP4
00001cbd: SUB
00001cbe: DUP2
00001cbf: PUSH0
00001cc0: DUP8
00001cc1: DUP1
00001cc2: EXTCODESIZE
00001cc3: ISZERO
00001cc4: DUP1
00001cc5: ISZERO
00001cc6: PUSH2 0x1ccd
00001cc9: JUMPI
00001cca: PUSH0
00001ccb: DUP1
00001ccc: REVERT
00001ccd: JUMPDEST
00001cce: POP
00001ccf: GAS
00001cd0: CALL
00001cd1: ISZERO
00001cd2: DUP1
00001cd3: ISZERO
00001cd4: PUSH2 0x1cdf
00001cd7: JUMPI
00001cd8: RETURNDATASIZE
00001cd9: PUSH0
00001cda: DUP1
00001cdb: RETURNDATACOPY
00001cdc: RETURNDATASIZE
00001cdd: PUSH0
00001cde: REVERT
00001cdf: JUMPDEST
00001ce0: POP
00001ce1: POP
00001ce2: POP
00001ce3: POP
00001ce4: POP
00001ce5: POP
00001ce6: POP
00001ce7: PUSH0
00001ce8: PUSH2 0x1cf0
00001ceb: DUP10
00001cec: PUSH2 0x265c
00001cef: JUMP
00001cf0: JUMPDEST
00001cf1: SWAP1
00001cf2: POP
00001cf3: PUSH0
00001cf4: PUSH2 0x1d29
00001cf7: PUSH2 0x097b
00001cfa: PUSH1 0x01
00001cfc: PUSH1 0x01
00001cfe: PUSH1 0xa0
00001d00: SHL
00001d01: SUB
00001d02: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00001d23: AND
00001d24: DUP5
00001d25: PUSH2 0x2670
00001d28: JUMP
00001d29: JUMPDEST
00001d2a: SWAP1
00001d2b: POP
00001d2c: PUSH2 0x1d7e
00001d2f: DUP3
00001d30: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00001d51: PUSH1 0x08
00001d53: TLOAD
00001d54: DUP5
00001d55: DUP15
00001d56: PUSH1 0x60
00001d58: ADD
00001d59: PUSH1 0x20
00001d5b: DUP2
00001d5c: ADD
00001d5d: SWAP1
00001d5e: PUSH2 0x1d67
00001d61: SWAP2
00001d62: SWAP1
00001d63: PUSH2 0x57cc
00001d66: JUMP
00001d67: JUMPDEST
00001d68: PUSH0
00001d69: DUP9
00001d6a: DUP2
00001d6b: MSTORE
00001d6c: PUSH1 0x07
00001d6e: PUSH1 0x20
00001d70: MSTORE
00001d71: PUSH1 0x40
00001d73: SWAP1
00001d74: KECCAK256
00001d75: SWAP5
00001d76: SWAP4
00001d77: SWAP3
00001d78: SWAP2
00001d79: SWAP1
00001d7a: PUSH2 0x3112
00001d7d: JUMP
00001d7e: JUMPDEST
00001d7f: POP
00001d80: PUSH32 0xb47b2fb100000000000000000000000000000000000000000000000000000000
00001da1: SWAP4
00001da2: POP
00001da3: SWAP1
00001da4: SWAP2
00001da5: POP
00001da6: POP
00001da7: JUMPDEST
00001da8: SWAP7
00001da9: POP
00001daa: SWAP7
00001dab: SWAP5
00001dac: POP
00001dad: POP
00001dae: POP
00001daf: POP
00001db0: POP
00001db1: JUMP
00001db2: JUMPDEST
00001db3: PUSH2 0x1dba
00001db6: PUSH2 0x213a
00001db9: JUMP
00001dba: JUMPDEST
00001dbb: PUSH0
00001dbc: JUMPDEST
00001dbd: DUP2
00001dbe: DUP2
00001dbf: LT
00001dc0: ISZERO
00001dc1: PUSH2 0x0506
00001dc4: JUMPI
00001dc5: PUSH0
00001dc6: DUP4
00001dc7: DUP4
00001dc8: DUP4
00001dc9: DUP2
00001dca: DUP2
00001dcb: LT
00001dcc: PUSH2 0x1dd7
00001dcf: JUMPI
00001dd0: PUSH2 0x1dd7
00001dd3: PUSH2 0x5791
00001dd6: JUMP
00001dd7: JUMPDEST
00001dd8: SWAP1
00001dd9: POP
00001dda: PUSH1 0x20
00001ddc: MUL
00001ddd: ADD
00001dde: PUSH1 0x20
00001de0: DUP2
00001de1: ADD
00001de2: SWAP1
00001de3: PUSH2 0x1dec
00001de6: SWAP2
00001de7: SWAP1
00001de8: PUSH2 0x54c3
00001deb: JUMP
00001dec: JUMPDEST
00001ded: PUSH1 0x01
00001def: PUSH1 0x01
00001df1: PUSH1 0xa0
00001df3: SHL
00001df4: SUB
00001df5: AND
00001df6: PUSH0
00001df7: SWAP1
00001df8: DUP2
00001df9: MSTORE
00001dfa: PUSH1 0x01
00001dfc: PUSH1 0x20
00001dfe: DUP2
00001dff: SWAP1
00001e00: MSTORE
00001e01: PUSH1 0x40
00001e03: SWAP1
00001e04: SWAP2
00001e05: KECCAK256
00001e06: DUP1
00001e07: SLOAD
00001e08: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00001e29: DUP2
00001e2a: AND
00001e2b: PUSH1 0xff
00001e2d: SWAP1
00001e2e: SWAP2
00001e2f: AND
00001e30: ISZERO
00001e31: OR
00001e32: SWAP1
00001e33: SSTORE
00001e34: SWAP2
00001e35: SWAP1
00001e36: SWAP2
00001e37: ADD
00001e38: SWAP1
00001e39: POP
00001e3a: PUSH2 0x1dbc
00001e3d: JUMP
00001e3e: JUMPDEST
00001e3f: PUSH1 0x01
00001e41: PUSH1 0x01
00001e43: PUSH1 0xa0
00001e45: SHL
00001e46: SUB
00001e47: DUP4
00001e48: AND
00001e49: PUSH0
00001e4a: SWAP1
00001e4b: DUP2
00001e4c: MSTORE
00001e4d: PUSH1 0x05
00001e4f: PUSH1 0x20
00001e51: SWAP1
00001e52: DUP2
00001e53: MSTORE
00001e54: PUSH1 0x40
00001e56: DUP1
00001e57: DUP4
00001e58: KECCAK256
00001e59: CALLER
00001e5a: DUP5
00001e5b: MSTORE
00001e5c: SWAP1
00001e5d: SWAP2
00001e5e: MSTORE
00001e5f: DUP2
00001e60: KECCAK256
00001e61: DUP1
00001e62: SLOAD
00001e63: DUP4
00001e64: SWAP3
00001e65: SWAP1
00001e66: PUSH2 0x1e70
00001e69: SWAP1
00001e6a: DUP5
00001e6b: SWAP1
00001e6c: PUSH2 0x5b0b
00001e6f: JUMP
00001e70: JUMPDEST
00001e71: SWAP1
00001e72: SWAP2
00001e73: SSTORE
00001e74: POP
00001e75: PUSH2 0x0506
00001e78: SWAP1
00001e79: POP
00001e7a: PUSH1 0x01
00001e7c: PUSH1 0x01
00001e7e: PUSH1 0xa0
00001e80: SHL
00001e81: SUB
00001e82: DUP5
00001e83: AND
00001e84: DUP4
00001e85: DUP4
00001e86: PUSH2 0x27e2
00001e89: JUMP
00001e8a: JUMPDEST
00001e8b: PUSH2 0x1e92
00001e8e: PUSH2 0x213a
00001e91: JUMP
00001e92: JUMPDEST
00001e93: PUSH2 0x1ea6
00001e96: PUSH1 0x01
00001e98: PUSH1 0x01
00001e9a: PUSH1 0xa0
00001e9c: SHL
00001e9d: SUB
00001e9e: DUP4
00001e9f: AND
00001ea0: CALLER
00001ea1: DUP4
00001ea2: PUSH2 0x27e2
00001ea5: JUMP
00001ea6: JUMPDEST
00001ea7: POP
00001ea8: POP
00001ea9: JUMP
00001eaa: JUMPDEST
00001eab: PUSH2 0x1eb2
00001eae: PUSH2 0x213a
00001eb1: JUMP
00001eb2: JUMPDEST
00001eb3: PUSH1 0x03
00001eb5: SLOAD
00001eb6: PUSH1 0x01
00001eb8: PUSH1 0x01
00001eba: PUSH1 0xa0
00001ebc: SHL
00001ebd: SUB
00001ebe: PUSH9 0x010000000000000000
00001ec8: SWAP1
00001ec9: SWAP2
00001eca: DIV
00001ecb: DUP2
00001ecc: AND
00001ecd: SWAP1
00001ece: DUP4
00001ecf: AND
00001ed0: DUP2
00001ed1: EQ
00001ed2: PUSH2 0x1f07
00001ed5: JUMPI
00001ed6: PUSH1 0x40
00001ed8: MLOAD
00001ed9: PUSH32 0xf21fd99f00000000000000000000000000000000000000000000000000000000
00001efa: DUP2
00001efb: MSTORE
00001efc: PUSH1 0x04
00001efe: ADD
00001eff: PUSH1 0x40
00001f01: MLOAD
00001f02: DUP1
00001f03: SWAP2
00001f04: SUB
00001f05: SWAP1
00001f06: REVERT
00001f07: JUMPDEST
00001f08: PUSH1 0x03
00001f0a: SLOAD
00001f0b: PUSH0
00001f0c: SWAP1
00001f0d: PUSH2 0x1f2a
00001f10: SWAP1
00001f11: PUSH9 0x010000000000000000
00001f1b: SWAP1
00001f1c: DIV
00001f1d: PUSH1 0x01
00001f1f: PUSH1 0x01
00001f21: PUSH1 0xa0
00001f23: SHL
00001f24: SUB
00001f25: AND
00001f26: PUSH2 0x319b
00001f29: JUMP
00001f2a: JUMPDEST
00001f2b: SWAP1
00001f2c: POP
00001f2d: PUSH2 0x1f37
00001f30: DUP2
00001f31: DUP7
00001f32: DUP6
00001f33: PUSH2 0x31c2
00001f36: JUMP
00001f37: JUMPDEST
00001f38: PUSH2 0x1f40
00001f3b: DUP2
00001f3c: PUSH2 0x232d
00001f3f: JUMP
00001f40: JUMPDEST
00001f41: PUSH1 0x03
00001f43: DUP1
00001f44: SLOAD
00001f45: PUSH1 0x01
00001f47: PUSH1 0x01
00001f49: PUSH1 0xa0
00001f4b: SHL
00001f4c: SUB
00001f4d: SWAP3
00001f4e: SWAP1
00001f4f: SWAP3
00001f50: AND
00001f51: PUSH9 0x010000000000000000
00001f5b: MUL
00001f5c: PUSH32 0xffffffff0000000000000000000000000000000000000000ffffffffffffffff
00001f7d: SWAP1
00001f7e: SWAP3
00001f7f: AND
00001f80: SWAP2
00001f81: SWAP1
00001f82: SWAP2
00001f83: OR
00001f84: SWAP1
00001f85: SSTORE
00001f86: POP
00001f87: POP
00001f88: POP
00001f89: POP
00001f8a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
00001fab: AND
00001fac: PUSH0
00001fad: SWAP1
00001fae: DUP2
00001faf: MSTORE
00001fb0: PUSH1 0x02
00001fb2: PUSH1 0x20
00001fb4: MSTORE
00001fb5: PUSH1 0x40
00001fb7: SWAP1
00001fb8: KECCAK256
00001fb9: DUP1
00001fba: SLOAD
00001fbb: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
00001fdc: AND
00001fdd: SWAP1
00001fde: SSTORE
00001fdf: JUMP
00001fe0: JUMPDEST
00001fe1: PUSH1 0x01
00001fe3: PUSH1 0x01
00001fe5: PUSH1 0xa0
00001fe7: SHL
00001fe8: SUB
00001fe9: DUP3
00001fea: AND
00001feb: PUSH0
00001fec: SWAP1
00001fed: DUP2
00001fee: MSTORE
00001fef: PUSH1 0x05
00001ff1: PUSH1 0x20
00001ff3: SWAP1
00001ff4: DUP2
00001ff5: MSTORE
00001ff6: PUSH1 0x40
00001ff8: DUP1
00001ff9: DUP4
00001ffa: KECCAK256
00001ffb: CALLER
00001ffc: DUP5
00001ffd: MSTORE
00001ffe: SWAP1
00001fff: SWAP2
00002000: MSTORE
00002001: DUP2
00002002: KECCAK256
00002003: DUP1
00002004: SLOAD
00002005: DUP4
00002006: SWAP3
00002007: SWAP1
00002008: PUSH2 0x2012
0000200b: SWAP1
0000200c: DUP5
0000200d: SWAP1
0000200e: PUSH2 0x5b0b
00002011: JUMP
00002012: JUMPDEST
00002013: SWAP1
00002014: SWAP2
00002015: SSTORE
00002016: POP
00002017: PUSH2 0x1ea6
0000201a: SWAP1
0000201b: POP
0000201c: PUSH1 0x01
0000201e: PUSH1 0x01
00002020: PUSH1 0xa0
00002022: SHL
00002023: SUB
00002024: DUP4
00002025: AND
00002026: CALLER
00002027: DUP4
00002028: PUSH2 0x27e2
0000202b: JUMP
0000202c: JUMPDEST
0000202d: PUSH1 0x03
0000202f: SLOAD
00002030: NUMBER
00002031: PUSH8 0xffffffffffffffff
0000203a: SWAP1
0000203b: SWAP2
0000203c: AND
0000203d: SUB
0000203e: PUSH2 0x2073
00002041: JUMPI
00002042: PUSH1 0x40
00002044: MLOAD
00002045: PUSH32 0xd8a6b89b00000000000000000000000000000000000000000000000000000000
00002066: DUP2
00002067: MSTORE
00002068: PUSH1 0x04
0000206a: ADD
0000206b: PUSH1 0x40
0000206d: MLOAD
0000206e: DUP1
0000206f: SWAP2
00002070: SUB
00002071: SWAP1
00002072: REVERT
00002073: JUMPDEST
00002074: CALLER
00002075: PUSH0
00002076: SWAP1
00002077: DUP2
00002078: MSTORE
00002079: PUSH1 0x01
0000207b: PUSH1 0x20
0000207d: MSTORE
0000207e: PUSH1 0x40
00002080: SWAP1
00002081: KECCAK256
00002082: SLOAD
00002083: PUSH1 0xff
00002085: AND
00002086: PUSH2 0x20bb
00002089: JUMPI
0000208a: PUSH1 0x40
0000208c: MLOAD
0000208d: PUSH32 0x5cd26b6800000000000000000000000000000000000000000000000000000000
000020ae: DUP2
000020af: MSTORE
000020b0: PUSH1 0x04
000020b2: ADD
000020b3: PUSH1 0x40
000020b5: MLOAD
000020b6: DUP1
000020b7: SWAP2
000020b8: SUB
000020b9: SWAP1
000020ba: REVERT
000020bb: JUMPDEST
000020bc: PUSH2 0x20c4
000020bf: NUMBER
000020c0: PUSH2 0x25dd
000020c3: JUMP
000020c4: JUMPDEST
000020c5: PUSH1 0x03
000020c7: DUP1
000020c8: SLOAD
000020c9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000
000020ea: AND
000020eb: PUSH8 0xffffffffffffffff
000020f4: SWAP3
000020f5: SWAP1
000020f6: SWAP3
000020f7: AND
000020f8: SWAP2
000020f9: SWAP1
000020fa: SWAP2
000020fb: OR
000020fc: SWAP1
000020fd: SSTORE
000020fe: JUMP
000020ff: JUMPDEST
00002100: DUP1
00002101: PUSH1 0x0c
00002103: MSTORE
00002104: PUSH4 0xdaa050e9
00002109: PUSH1 0x04
0000210b: MSTORE
0000210c: DUP2
0000210d: PUSH0
0000210e: MSTORE
0000210f: PUSH1 0x1f
00002111: PUSH1 0x0c
00002113: KECCAK256
00002114: PUSH1 0x01
00002116: PUSH1 0xff
00002118: DUP4
00002119: AND
0000211a: SHL
0000211b: DUP1
0000211c: DUP3
0000211d: SLOAD
0000211e: XOR
0000211f: DUP2
00002120: DUP2
00002121: AND
00002122: PUSH2 0x2132
00002125: JUMPI
00002126: PUSH4 0x8cb88872
0000212b: PUSH0
0000212c: MSTORE
0000212d: PUSH1 0x04
0000212f: PUSH1 0x1c
00002131: REVERT
00002132: JUMPDEST
00002133: SWAP1
00002134: SWAP2
00002135: SSTORE
00002136: POP
00002137: POP
00002138: POP
00002139: JUMP
0000213a: JUMPDEST
0000213b: PUSH0
0000213c: SLOAD
0000213d: PUSH1 0x01
0000213f: PUSH1 0x01
00002141: PUSH1 0xa0
00002143: SHL
00002144: SUB
00002145: AND
00002146: CALLER
00002147: EQ
00002148: PUSH2 0x217d
0000214b: JUMPI
0000214c: PUSH1 0x40
0000214e: MLOAD
0000214f: PUSH32 0x23019e6700000000000000000000000000000000000000000000000000000000
00002170: DUP2
00002171: MSTORE
00002172: PUSH1 0x04
00002174: ADD
00002175: PUSH1 0x40
00002177: MLOAD
00002178: DUP1
00002179: SWAP2
0000217a: SUB
0000217b: SWAP1
0000217c: REVERT
0000217d: JUMPDEST
0000217e: JUMP
0000217f: JUMPDEST
00002180: PUSH1 0x40
00002182: DUP1
00002183: MLOAD
00002184: DUP1
00002185: DUP3
00002186: ADD
00002187: SWAP1
00002188: SWAP2
00002189: MSTORE
0000218a: PUSH1 0x60
0000218c: DUP2
0000218d: MSTORE
0000218e: PUSH0
0000218f: PUSH1 0x20
00002191: DUP3
00002192: ADD
00002193: MSTORE
00002194: PUSH0
00002195: PUSH2 0x21a6
00002198: DUP5
00002199: PUSH1 0x01
0000219b: PUSH1 0x01
0000219d: PUSH1 0xa0
0000219f: SHL
000021a0: SUB
000021a1: AND
000021a2: PUSH2 0x32ae
000021a5: JUMP
000021a6: JUMPDEST
000021a7: SWAP1
000021a8: POP
000021a9: PUSH0
000021aa: PUSH2 0x21b3
000021ad: DUP5
000021ae: DUP4
000021af: PUSH2 0x5875
000021b2: JUMP
000021b3: JUMPDEST
000021b4: PUSH1 0x20
000021b6: DUP5
000021b7: DUP2
000021b8: ADD
000021b9: DUP3
000021ba: SWAP1
000021bb: MSTORE
000021bc: PUSH1 0x40
000021be: DUP1
000021bf: MLOAD
000021c0: DUP4
000021c1: DUP4
000021c2: MUL
000021c3: DUP2
000021c4: ADD
000021c5: DUP4
000021c6: ADD
000021c7: SWAP1
000021c8: SWAP2
000021c9: MSTORE
000021ca: PUSH0
000021cb: DUP2
000021cc: MSTORE
000021cd: DUP1
000021ce: DUP7
000021cf: MSTORE
000021d0: SWAP2
000021d1: SWAP3
000021d2: POP
000021d3: DUP4
000021d4: DUP2
000021d5: MUL
000021d6: SWAP1
000021d7: DUP2
000021d8: SWAP1
000021d9: PUSH1 0x01
000021db: SWAP1
000021dc: DUP5
000021dd: ADD
000021de: DUP10
000021df: EXTCODECOPY
000021e0: POP
000021e1: PUSH2 0x21ea
000021e4: DUP5
000021e5: DUP5
000021e6: PUSH2 0x2301
000021e9: JUMP
000021ea: JUMPDEST
000021eb: POP
000021ec: POP
000021ed: POP
000021ee: SWAP3
000021ef: SWAP2
000021f0: POP
000021f1: POP
000021f2: JUMP
000021f3: JUMPDEST
000021f4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
00002215: DUP3
00002216: DUP2
00002217: AND
00002218: SWAP1
00002219: DUP3
0000221a: AND
0000221b: EQ
0000221c: JUMPDEST
0000221d: SWAP3
0000221e: SWAP2
0000221f: POP
00002220: POP
00002221: JUMP
00002222: JUMPDEST
00002223: PUSH0
00002224: PUSH2 0x222c
00002227: DUP3
00002228: PUSH2 0x32c4
0000222b: JUMP
0000222c: JUMPDEST
0000222d: POP
0000222e: PUSH6 0xffffff000000
00002235: PUSH2 0xffff
00002238: SWAP2
00002239: DUP3
0000223a: AND
0000223b: PUSH1 0x18
0000223d: DUP5
0000223e: DUP2
0000223f: SHR
00002240: SWAP4
00002241: SWAP1
00002242: SWAP4
00002243: AND
00002244: XOR
00002245: SWAP1
00002246: SWAP2
00002247: SHL
00002248: AND
00002249: XOR
0000224a: SWAP1
0000224b: JUMP
0000224c: JUMPDEST
0000224d: PUSH0
0000224e: PUSH2 0x2256
00002251: DUP3
00002252: PUSH2 0x3313
00002255: JUMP
00002256: JUMPDEST
00002257: POP
00002258: PUSH3 0xffffff
0000225c: DUP1
0000225d: DUP4
0000225e: AND
0000225f: SWAP2
00002260: SWAP1
00002261: SWAP2
00002262: XOR
00002263: AND
00002264: XOR
00002265: SWAP1
00002266: JUMP
00002267: JUMPDEST
00002268: PUSH0
00002269: PUSH2 0x2271
0000226c: DUP4
0000226d: PUSH2 0x32c4
00002270: JUMP
00002271: JUMPDEST
00002272: PUSH2 0x227a
00002275: DUP3
00002276: PUSH2 0x3313
00002279: JUMP
0000227a: JUMPDEST
0000227b: PUSH2 0x22aa
0000227e: DUP3
0000227f: PUSH2 0x061c
00002282: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
000022a3: DUP8
000022a4: AND
000022a5: DUP7
000022a6: PUSH2 0x2222
000022a9: JUMP
000022aa: JUMPDEST
000022ab: SWAP5
000022ac: SWAP4
000022ad: POP
000022ae: POP
000022af: POP
000022b0: POP
000022b1: JUMP
000022b2: JUMPDEST
000022b3: DUP2
000022b4: MLOAD
000022b5: MLOAD
000022b6: PUSH1 0x20
000022b8: DUP4
000022b9: ADD
000022ba: MLOAD
000022bb: DUP2
000022bc: SUB
000022bd: PUSH2 0x22f2
000022c0: JUMPI
000022c1: PUSH1 0x40
000022c3: MLOAD
000022c4: PUSH32 0x5cef583a00000000000000000000000000000000000000000000000000000000
000022e5: DUP2
000022e6: MSTORE
000022e7: PUSH1 0x04
000022e9: ADD
000022ea: PUSH1 0x40
000022ec: MLOAD
000022ed: DUP1
000022ee: SWAP2
000022ef: SUB
000022f0: SWAP1
000022f1: REVERT
000022f2: JUMPDEST
000022f3: PUSH2 0x2306
000022f6: DUP4
000022f7: PUSH2 0x2301
000022fa: DUP4
000022fb: PUSH1 0x01
000022fd: PUSH2 0x5875
00002300: JUMP
00002301: JUMPDEST
00002302: SWAP1
00002303: MLOAD
00002304: MSTORE
00002305: JUMP
00002306: JUMPDEST
00002307: DUP2
00002308: DUP4
00002309: PUSH0
0000230a: ADD
0000230b: MLOAD
0000230c: DUP3
0000230d: DUP2
0000230e: MLOAD
0000230f: DUP2
00002310: LT
00002311: PUSH2 0x231c
00002314: JUMPI
00002315: PUSH2 0x231c
00002318: PUSH2 0x5791
0000231b: JUMP
0000231c: JUMPDEST
0000231d: PUSH1 0x20
0000231f: MUL
00002320: PUSH1 0x20
00002322: ADD
00002323: ADD
00002324: DUP2
00002325: DUP2
00002326: MSTORE
00002327: POP
00002328: POP
00002329: POP
0000232a: POP
0000232b: POP
0000232c: JUMP
0000232d: JUMPDEST
0000232e: DUP1
0000232f: MLOAD
00002330: DUP1
00002331: MLOAD
00002332: PUSH12 0x600b380380600b5f395ff300
0000233f: DUP3
00002340: MSTORE
00002341: PUSH0
00002342: SWAP2
00002343: SWAP1
00002344: PUSH1 0x0c
00002346: PUSH1 0x20
00002348: DUP3
00002349: MUL
0000234a: ADD
0000234b: PUSH1 0x14
0000234d: DUP4
0000234e: ADD
0000234f: DUP5
00002350: CREATE
00002351: DUP2
00002352: DUP4
00002353: MSTORE
00002354: SWAP3
00002355: POP
00002356: PUSH1 0x01
00002358: PUSH1 0x01
0000235a: PUSH1 0xa0
0000235c: SHL
0000235d: SUB
0000235e: DUP4
0000235f: AND
00002360: PUSH2 0x2395
00002363: JUMPI
00002364: PUSH1 0x40
00002366: MLOAD
00002367: PUSH32 0x5670258700000000000000000000000000000000000000000000000000000000
00002388: DUP2
00002389: MSTORE
0000238a: PUSH1 0x04
0000238c: ADD
0000238d: PUSH1 0x40
0000238f: MLOAD
00002390: DUP1
00002391: SWAP2
00002392: SUB
00002393: SWAP1
00002394: REVERT
00002395: JUMPDEST
00002396: POP
00002397: POP
00002398: SWAP2
00002399: SWAP1
0000239a: POP
0000239b: JUMP
0000239c: JUMPDEST
0000239d: PUSH3 0x0f4240
000023a1: PUSH3 0xffffff
000023a5: DUP3
000023a6: AND
000023a7: GT
000023a8: ISZERO
000023a9: PUSH2 0x0515
000023ac: JUMPI
000023ad: PUSH2 0x0515
000023b0: PUSH32 0x1400211300000000000000000000000000000000000000000000000000000000
000023d1: PUSH3 0xffffff
000023d5: DUP4
000023d6: AND
000023d7: PUSH2 0x3355
000023da: JUMP
000023db: JUMPDEST
000023dc: PUSH32 0x134332412bcbe715e351e7e7112dfbae2988a371dbae6631e3f502199008e7a0
000023fd: PUSH32 0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4
0000241e: ADDRESS
0000241f: EQ
00002420: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
00002441: CHAINID
00002442: EQ
00002443: AND
00002444: PUSH2 0x24ce
00002447: JUMPI
00002448: POP
00002449: PUSH1 0x40
0000244b: DUP1
0000244c: MLOAD
0000244d: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
0000246e: DUP2
0000246f: MSTORE
00002470: PUSH32 0x5f0b52ce51fafd4028ebd56c0745e7be9457e917ae58eaec28e73e983bdd6e25
00002491: PUSH1 0x20
00002493: DUP3
00002494: ADD
00002495: MSTORE
00002496: PUSH32 0x0984d5efd47d99151ae1be065a709e56c602102f24c1abc4008eb3f815a8d217
000024b7: SWAP2
000024b8: DUP2
000024b9: ADD
000024ba: SWAP2
000024bb: SWAP1
000024bc: SWAP2
000024bd: MSTORE
000024be: CHAINID
000024bf: PUSH1 0x60
000024c1: DUP3
000024c2: ADD
000024c3: MSTORE
000024c4: ADDRESS
000024c5: PUSH1 0x80
000024c7: DUP3
000024c8: ADD
000024c9: MSTORE
000024ca: PUSH1 0xa0
000024cc: SWAP1
000024cd: KECCAK256
000024ce: JUMPDEST
000024cf: PUSH8 0x1901000000000000
000024d8: PUSH0
000024d9: MSTORE
000024da: DUP1
000024db: PUSH1 0x1a
000024dd: MSTORE
000024de: DUP2
000024df: PUSH1 0x3a
000024e1: MSTORE
000024e2: PUSH1 0x42
000024e4: PUSH1 0x18
000024e6: KECCAK256
000024e7: SWAP1
000024e8: POP
000024e9: PUSH0
000024ea: PUSH1 0x3a
000024ec: MSTORE
000024ed: SWAP2
000024ee: SWAP1
000024ef: POP
000024f0: JUMP
000024f1: JUMPDEST
000024f2: PUSH0
000024f3: PUSH1 0x01
000024f5: PUSH1 0x01
000024f7: PUSH1 0xa0
000024f9: SHL
000024fa: SUB
000024fb: DUP6
000024fc: AND
000024fd: ISZERO
000024fe: PUSH2 0x22aa
00002501: JUMPI
00002502: PUSH1 0x40
00002504: MLOAD
00002505: DUP6
00002506: EXTCODESIZE
00002507: PUSH2 0x259a
0000250a: JUMPI
0000250b: DUP3
0000250c: PUSH1 0x40
0000250e: DUP2
0000250f: EQ
00002510: PUSH2 0x2521
00002513: JUMPI
00002514: PUSH1 0x41
00002516: DUP2
00002517: EQ
00002518: PUSH2 0x2561
0000251b: JUMPI
0000251c: POP
0000251d: PUSH2 0x25d4
00002520: JUMP
00002521: JUMPDEST
00002522: PUSH1 0x20
00002524: DUP6
00002525: DUP2
00002526: ADD
00002527: CALLDATALOAD
00002528: PUSH1 0xff
0000252a: DUP2
0000252b: SWAP1
0000252c: SHR
0000252d: PUSH1 0x1b
0000252f: ADD
00002530: SWAP1
00002531: SWAP2
00002532: MSTORE
00002533: DUP6
00002534: CALLDATALOAD
00002535: PUSH1 0x40
00002537: MSTORE
00002538: PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002559: AND
0000255a: PUSH1 0x60
0000255c: MSTORE
0000255d: PUSH2 0x2572
00002560: JUMP
00002561: JUMPDEST
00002562: PUSH1 0x40
00002564: DUP6
00002565: ADD
00002566: CALLDATALOAD
00002567: PUSH0
00002568: BYTE
00002569: PUSH1 0x20
0000256b: MSTORE
0000256c: PUSH1 0x40
0000256e: DUP6
0000256f: PUSH1 0x40
00002571: CALLDATACOPY
00002572: JUMPDEST
00002573: POP
00002574: DUP5
00002575: PUSH0
00002576: MSTORE
00002577: PUSH1 0x20
00002579: PUSH1 0x01
0000257b: PUSH1 0x80
0000257d: PUSH0
0000257e: PUSH1 0x01
00002580: GAS
00002581: STATICCALL
00002582: MLOAD
00002583: DUP1
00002584: DUP8
00002585: XOR
00002586: PUSH1 0x60
00002588: SHL
00002589: RETURNDATASIZE
0000258a: GT
0000258b: SWAP3
0000258c: POP
0000258d: POP
0000258e: PUSH0
0000258f: PUSH1 0x60
00002591: MSTORE
00002592: DUP1
00002593: PUSH1 0x40
00002595: MSTORE
00002596: PUSH2 0x25d4
00002599: JUMP
0000259a: JUMPDEST
0000259b: PUSH4 0x1626ba7e
000025a0: PUSH1 0xe0
000025a2: SHL
000025a3: DUP1
000025a4: DUP3
000025a5: MSTORE
000025a6: DUP6
000025a7: PUSH1 0x04
000025a9: DUP4
000025aa: ADD
000025ab: MSTORE
000025ac: PUSH1 0x24
000025ae: DUP3
000025af: ADD
000025b0: PUSH1 0x40
000025b2: DUP2
000025b3: MSTORE
000025b4: DUP5
000025b5: PUSH1 0x44
000025b7: DUP5
000025b8: ADD
000025b9: MSTORE
000025ba: DUP5
000025bb: DUP7
000025bc: PUSH1 0x64
000025be: DUP6
000025bf: ADD
000025c0: CALLDATACOPY
000025c1: PUSH1 0x20
000025c3: DUP2
000025c4: PUSH1 0x64
000025c6: DUP8
000025c7: ADD
000025c8: DUP6
000025c9: DUP12
000025ca: GAS
000025cb: STATICCALL
000025cc: SWAP1
000025cd: MLOAD
000025ce: SWAP1
000025cf: SWAP2
000025d0: EQ
000025d1: AND
000025d2: SWAP2
000025d3: POP
000025d4: JUMPDEST
000025d5: POP
000025d6: SWAP5
000025d7: SWAP4
000025d8: POP
000025d9: POP
000025da: POP
000025db: POP
000025dc: JUMP
000025dd: JUMPDEST
000025de: PUSH0
000025df: PUSH9 0x010000000000000000
000025e9: DUP3
000025ea: LT
000025eb: PUSH2 0x25f6
000025ee: JUMPI
000025ef: PUSH2 0x25f6
000025f2: PUSH2 0x336a
000025f5: JUMP
000025f6: JUMPDEST
000025f7: POP
000025f8: SWAP1
000025f9: JUMP
000025fa: JUMPDEST
000025fb: CALLER
000025fc: PUSH1 0x01
000025fe: PUSH1 0x01
00002600: PUSH1 0xa0
00002602: SHL
00002603: SUB
00002604: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00002625: AND
00002626: EQ
00002627: PUSH2 0x217d
0000262a: JUMPI
0000262b: PUSH1 0x40
0000262d: MLOAD
0000262e: PUSH32 0xf832861400000000000000000000000000000000000000000000000000000000
0000264f: DUP2
00002650: MSTORE
00002651: PUSH1 0x04
00002653: ADD
00002654: PUSH1 0x40
00002656: MLOAD
00002657: DUP1
00002658: SWAP2
00002659: SUB
0000265a: SWAP1
0000265b: REVERT
0000265c: JUMPDEST
0000265d: PUSH1 0x40
0000265f: MLOAD
00002660: PUSH0
00002661: SWAP1
00002662: PUSH1 0xa0
00002664: DUP4
00002665: DUP3
00002666: CALLDATACOPY
00002667: PUSH1 0xa0
00002669: SWAP1
0000266a: KECCAK256
0000266b: SWAP3
0000266c: SWAP2
0000266d: POP
0000266e: POP
0000266f: JUMP
00002670: JUMPDEST
00002671: PUSH0
00002672: DUP2
00002673: DUP2
00002674: MSTORE
00002675: PUSH1 0x06
00002677: PUSH1 0x20
00002679: MSTORE
0000267a: PUSH1 0x40
0000267c: DUP2
0000267d: KECCAK256
0000267e: PUSH2 0x22aa
00002681: PUSH1 0x01
00002683: PUSH1 0x01
00002685: PUSH1 0xa0
00002687: SHL
00002688: SUB
00002689: DUP6
0000268a: AND
0000268b: DUP3
0000268c: PUSH2 0x3377
0000268f: JUMP
00002690: JUMPDEST
00002691: PUSH0
00002692: DUP1
00002693: DUP6
00002694: PUSH3 0xffffff
00002698: DUP6
00002699: AND
0000269a: PUSH4 0x01000000
0000269f: DUP2
000026a0: LT
000026a1: PUSH2 0x26ac
000026a4: JUMPI
000026a5: PUSH2 0x26ac
000026a8: PUSH2 0x5791
000026ab: JUMP
000026ac: JUMPDEST
000026ad: ADD
000026ae: SLOAD
000026af: SWAP1
000026b0: POP
000026b1: PUSH0
000026b2: DUP7
000026b3: PUSH3 0xffffff
000026b7: DUP6
000026b8: AND
000026b9: PUSH4 0x01000000
000026be: DUP2
000026bf: LT
000026c0: PUSH2 0x26cb
000026c3: JUMPI
000026c4: PUSH2 0x26cb
000026c7: PUSH2 0x5791
000026ca: JUMP
000026cb: JUMPDEST
000026cc: ADD
000026cd: SLOAD
000026ce: SWAP1
000026cf: POP
000026d0: DUP5
000026d1: PUSH1 0x02
000026d3: SIGNEXTEND
000026d4: DUP7
000026d5: PUSH1 0x02
000026d7: SIGNEXTEND
000026d8: SLT
000026d9: ISZERO
000026da: PUSH2 0x26e6
000026dd: JUMPI
000026de: SWAP1
000026df: SUB
000026e0: SWAP1
000026e1: POP
000026e2: PUSH2 0x22aa
000026e5: JUMP
000026e6: JUMPDEST
000026e7: DUP6
000026e8: PUSH1 0x02
000026ea: SIGNEXTEND
000026eb: DUP5
000026ec: PUSH1 0x02
000026ee: SIGNEXTEND
000026ef: SGT
000026f0: PUSH2 0x26fb
000026f3: JUMPI
000026f4: SUB
000026f5: SWAP1
000026f6: POP
000026f7: PUSH2 0x22aa
000026fa: JUMP
000026fb: JUMPDEST
000026fc: PUSH4 0x01000000
00002701: DUP8
00002702: ADD
00002703: SLOAD
00002704: SWAP2
00002705: SWAP1
00002706: SWAP2
00002707: SUB
00002708: SUB
00002709: SWAP1
0000270a: POP
0000270b: SWAP5
0000270c: SWAP4
0000270d: POP
0000270e: POP
0000270f: POP
00002710: POP
00002711: JUMP
00002712: JUMPDEST
00002713: PUSH0
00002714: PUSH1 0x06
00002716: PUSH1 0x20
00002718: MSTORE
00002719: DUP3
0000271a: PUSH0
0000271b: MSTORE
0000271c: PUSH1 0x06
0000271e: PUSH1 0x40
00002720: PUSH0
00002721: KECCAK256
00002722: ADD
00002723: PUSH1 0x20
00002725: MSTORE
00002726: DUP2
00002727: PUSH0
00002728: MSTORE
00002729: PUSH1 0x40
0000272b: PUSH0
0000272c: KECCAK256
0000272d: PUSH1 0x20
0000272f: MSTORE
00002730: PUSH4 0x1e2eaeaf
00002735: PUSH0
00002736: MSTORE
00002737: PUSH1 0x20
00002739: PUSH0
0000273a: PUSH1 0x24
0000273c: PUSH1 0x1c
0000273e: DUP8
0000273f: GAS
00002740: STATICCALL
00002741: PUSH2 0x2751
00002744: JUMPI
00002745: PUSH4 0x535cf94b
0000274a: PUSH0
0000274b: MSTORE
0000274c: PUSH1 0x04
0000274e: PUSH1 0x1c
00002750: REVERT
00002751: JUMPDEST
00002752: POP
00002753: POP
00002754: PUSH0
00002755: MLOAD
00002756: PUSH16 0xffffffffffffffffffffffffffffffff
00002767: AND
00002768: SWAP3
00002769: SWAP2
0000276a: POP
0000276b: POP
0000276c: JUMP
0000276d: JUMPDEST
0000276e: DUP2
0000276f: DUP2
00002770: MUL
00002771: DUP2
00002772: DUP4
00002773: DUP3
00002774: DIV
00002775: EQ
00002776: DUP4
00002777: ISZERO
00002778: OR
00002779: PUSH2 0x27d9
0000277c: JUMPI
0000277d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000279e: DUP3
0000279f: DUP5
000027a0: MULMOD
000027a1: DUP2
000027a2: DUP2
000027a3: LT
000027a4: DUP3
000027a5: ADD
000027a6: SWAP1
000027a7: SUB
000027a8: PUSH17 0x0100000000000000000000000000000000
000027ba: DUP2
000027bb: LT
000027bc: PUSH2 0x27cc
000027bf: JUMPI
000027c0: PUSH4 0xc56a0159
000027c5: PUSH0
000027c6: MSTORE
000027c7: PUSH1 0x04
000027c9: PUSH1 0x1c
000027cb: REVERT
000027cc: JUMPDEST
000027cd: PUSH1 0x80
000027cf: SWAP2
000027d0: DUP3
000027d1: SHR
000027d2: SWAP2
000027d3: SHL
000027d4: ADD
000027d5: PUSH2 0x221c
000027d8: JUMP
000027d9: JUMPDEST
000027da: PUSH1 0x80
000027dc: SHR
000027dd: SWAP3
000027de: SWAP2
000027df: POP
000027e0: POP
000027e1: JUMP
000027e2: JUMPDEST
000027e3: DUP2
000027e4: PUSH1 0x14
000027e6: MSTORE
000027e7: DUP1
000027e8: PUSH1 0x34
000027ea: MSTORE
000027eb: PUSH16 0xa9059cbb000000000000000000000000
000027fc: PUSH0
000027fd: MSTORE
000027fe: PUSH1 0x20
00002800: PUSH0
00002801: PUSH1 0x44
00002803: PUSH1 0x10
00002805: PUSH0
00002806: DUP8
00002807: GAS
00002808: CALL
00002809: DUP1
0000280a: PUSH1 0x01
0000280c: PUSH0
0000280d: MLOAD
0000280e: EQ
0000280f: AND
00002810: PUSH2 0x282b
00002813: JUMPI
00002814: DUP1
00002815: RETURNDATASIZE
00002816: DUP6
00002817: EXTCODESIZE
00002818: ISZERO
00002819: OR
0000281a: LT
0000281b: PUSH2 0x282b
0000281e: JUMPI
0000281f: PUSH4 0x90b8ec18
00002824: PUSH0
00002825: MSTORE
00002826: PUSH1 0x04
00002828: PUSH1 0x1c
0000282a: REVERT
0000282b: JUMPDEST
0000282c: POP
0000282d: PUSH0
0000282e: PUSH1 0x34
00002830: MSTORE
00002831: POP
00002832: POP
00002833: POP
00002834: JUMP
00002835: JUMPDEST
00002836: PUSH0
00002837: DUP1
00002838: DUP1
00002839: PUSH2 0x2853
0000283c: DUP5
0000283d: DUP7
0000283e: SMOD
0000283f: DUP3
00002840: SGT
00002841: DUP6
00002842: DUP8
00002843: SDIV
00002844: SUB
00002845: JUMPDEST
00002846: PUSH1 0x08
00002848: DUP2
00002849: SWAP1
0000284a: SAR
0000284b: SWAP2
0000284c: PUSH1 0xff
0000284e: SWAP1
0000284f: SWAP2
00002850: AND
00002851: SWAP1
00002852: JUMP
00002853: JUMPDEST
00002854: SWAP1
00002855: SWAP3
00002856: POP
00002857: SWAP1
00002858: POP
00002859: PUSH2 0x2880
0000285c: DUP2
0000285d: PUSH2 0x2870
00002860: PUSH1 0x01
00002862: PUSH1 0x01
00002864: PUSH1 0xa0
00002866: SHL
00002867: SUB
00002868: DUP11
00002869: AND
0000286a: DUP10
0000286b: DUP7
0000286c: PUSH2 0x33a7
0000286f: JUMP
00002870: JUMPDEST
00002871: SWAP1
00002872: PUSH1 0x01
00002874: PUSH1 0xff
00002876: SWAP2
00002877: SWAP1
00002878: SWAP2
00002879: AND
0000287a: SHL
0000287b: AND
0000287c: ISZERO
0000287d: ISZERO
0000287e: SWAP1
0000287f: JUMP
00002880: JUMPDEST
00002881: SWAP8
00002882: SWAP7
00002883: POP
00002884: POP
00002885: POP
00002886: POP
00002887: POP
00002888: POP
00002889: POP
0000288a: JUMP
0000288b: JUMPDEST
0000288c: DUP3
0000288d: DUP3
0000288e: MUL
0000288f: DUP2
00002890: DUP4
00002891: DUP6
00002892: DUP4
00002893: DIV
00002894: EQ
00002895: DUP6
00002896: ISZERO
00002897: OR
00002898: MUL
00002899: PUSH2 0x2931
0000289c: JUMPI
0000289d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000028be: DUP4
000028bf: DUP6
000028c0: MULMOD
000028c1: DUP2
000028c2: DUP2
000028c3: LT
000028c4: DUP3
000028c5: ADD
000028c6: SWAP1
000028c7: SUB
000028c8: DUP3
000028c9: DUP5
000028ca: DUP7
000028cb: MULMOD
000028cc: DUP4
000028cd: PUSH0
000028ce: SUB
000028cf: DUP5
000028d0: AND
000028d1: DUP3
000028d2: DUP6
000028d3: GT
000028d4: PUSH2 0x28e4
000028d7: JUMPI
000028d8: PUSH4 0xae47f702
000028dd: PUSH0
000028de: MSTORE
000028df: PUSH1 0x04
000028e1: PUSH1 0x1c
000028e3: REVERT
000028e4: JUMPDEST
000028e5: SWAP4
000028e6: DUP5
000028e7: SWAP1
000028e8: DIV
000028e9: SWAP4
000028ea: DUP4
000028eb: DUP3
000028ec: GT
000028ed: SWAP1
000028ee: SWAP3
000028ef: SUB
000028f0: PUSH0
000028f1: DUP4
000028f2: SWAP1
000028f3: SUB
000028f4: DUP4
000028f5: SWAP1
000028f6: DIV
000028f7: PUSH1 0x01
000028f9: ADD
000028fa: MUL
000028fb: SWAP3
000028fc: SUB
000028fd: DIV
000028fe: OR
000028ff: PUSH1 0x02
00002901: PUSH1 0x03
00002903: DUP4
00002904: MUL
00002905: DUP2
00002906: XOR
00002907: DUP1
00002908: DUP5
00002909: MUL
0000290a: DUP3
0000290b: SUB
0000290c: MUL
0000290d: DUP1
0000290e: DUP5
0000290f: MUL
00002910: DUP3
00002911: SUB
00002912: MUL
00002913: DUP1
00002914: DUP5
00002915: MUL
00002916: DUP3
00002917: SUB
00002918: MUL
00002919: DUP1
0000291a: DUP5
0000291b: MUL
0000291c: DUP3
0000291d: SUB
0000291e: MUL
0000291f: DUP1
00002920: DUP5
00002921: MUL
00002922: DUP3
00002923: SUB
00002924: MUL
00002925: DUP1
00002926: DUP5
00002927: MUL
00002928: SWAP1
00002929: SWAP2
0000292a: SUB
0000292b: MUL
0000292c: MUL
0000292d: PUSH2 0x1729
00002930: JUMP
00002931: JUMPDEST
00002932: DIV
00002933: SWAP3
00002934: SWAP2
00002935: POP
00002936: POP
00002937: JUMP
00002938: JUMPDEST
00002939: PUSH1 0x40
0000293b: MLOAD
0000293c: DUP2
0000293d: PUSH1 0x60
0000293f: MSTORE
00002940: DUP3
00002941: PUSH1 0x40
00002943: MSTORE
00002944: DUP4
00002945: PUSH1 0x60
00002947: SHL
00002948: PUSH1 0x2c
0000294a: MSTORE
0000294b: PUSH16 0x23b872dd000000000000000000000000
0000295c: PUSH1 0x0c
0000295e: MSTORE
0000295f: PUSH1 0x20
00002961: PUSH0
00002962: PUSH1 0x64
00002964: PUSH1 0x1c
00002966: PUSH0
00002967: DUP10
00002968: GAS
00002969: CALL
0000296a: DUP1
0000296b: PUSH1 0x01
0000296d: PUSH0
0000296e: MLOAD
0000296f: EQ
00002970: AND
00002971: PUSH2 0x298c
00002974: JUMPI
00002975: DUP1
00002976: RETURNDATASIZE
00002977: DUP8
00002978: EXTCODESIZE
00002979: ISZERO
0000297a: OR
0000297b: LT
0000297c: PUSH2 0x298c
0000297f: JUMPI
00002980: PUSH4 0x7939f424
00002985: PUSH0
00002986: MSTORE
00002987: PUSH1 0x04
00002989: PUSH1 0x1c
0000298b: REVERT
0000298c: JUMPDEST
0000298d: POP
0000298e: PUSH0
0000298f: PUSH1 0x60
00002991: MSTORE
00002992: PUSH1 0x40
00002994: MSTORE
00002995: POP
00002996: POP
00002997: POP
00002998: POP
00002999: JUMP
0000299a: JUMPDEST
0000299b: PUSH0
0000299c: DUP4
0000299d: PUSH0
0000299e: ADD
0000299f: MLOAD
000029a0: DUP3
000029a1: DUP2
000029a2: MLOAD
000029a3: DUP2
000029a4: LT
000029a5: PUSH2 0x29b0
000029a8: JUMPI
000029a9: PUSH2 0x29b0
000029ac: PUSH2 0x5791
000029af: JUMP
000029b0: JUMPDEST
000029b1: PUSH1 0x20
000029b3: MUL
000029b4: PUSH1 0x20
000029b6: ADD
000029b7: ADD
000029b8: MLOAD
000029b9: SWAP1
000029ba: POP
000029bb: PUSH2 0x29f0
000029be: PUSH2 0x29c4
000029c1: DUP3
000029c2: SWAP1
000029c3: JUMP
000029c4: JUMPDEST
000029c5: DUP5
000029c6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
000029e7: SWAP1
000029e8: DUP2
000029e9: AND
000029ea: SWAP2
000029eb: AND
000029ec: EQ
000029ed: ISZERO
000029ee: SWAP1
000029ef: JUMP
000029f0: JUMPDEST
000029f1: ISZERO
000029f2: PUSH2 0x1729
000029f5: JUMPI
000029f6: PUSH1 0x40
000029f8: MLOAD
000029f9: PUSH32 0x23f69dc200000000000000000000000000000000000000000000000000000000
00002a1a: DUP2
00002a1b: MSTORE
00002a1c: PUSH1 0x04
00002a1e: ADD
00002a1f: PUSH1 0x40
00002a21: MLOAD
00002a22: DUP1
00002a23: SWAP2
00002a24: SUB
00002a25: SWAP1
00002a26: REVERT
00002a27: JUMPDEST
00002a28: DUP1
00002a29: DUP3
00002a2a: TSTORE
00002a2b: POP
00002a2c: POP
00002a2d: JUMP
00002a2e: JUMPDEST
00002a2f: DUP1
00002a30: DUP3
00002a31: ADD
00002a32: DUP1
00002a33: DUP5
00002a34: EQ
00002a35: PUSH2 0x2a45
00002a38: JUMPI
00002a39: PUSH4 0x01842f8c
00002a3e: PUSH0
00002a3f: MSTORE
00002a40: PUSH1 0x04
00002a42: PUSH1 0x1c
00002a44: REVERT
00002a45: JUMPDEST
00002a46: POP
00002a47: POP
00002a48: POP
00002a49: POP
00002a4a: JUMP
00002a4b: JUMPDEST
00002a4c: PUSH0
00002a4d: DUP1
00002a4e: DUP1
00002a4f: PUSH2 0x2a62
00002a52: PUSH1 0x01
00002a54: PUSH1 0x01
00002a56: PUSH1 0xa0
00002a58: SHL
00002a59: SUB
00002a5a: DUP8
00002a5b: AND
00002a5c: DUP7
00002a5d: DUP7
00002a5e: PUSH2 0x33de
00002a61: JUMP
00002a62: JUMPDEST
00002a63: SWAP1
00002a64: POP
00002a65: DUP1
00002a66: PUSH2 0x2a9b
00002a69: JUMPI
00002a6a: PUSH1 0x40
00002a6c: MLOAD
00002a6d: PUSH32 0x2f659e4400000000000000000000000000000000000000000000000000000000
00002a8e: DUP2
00002a8f: MSTORE
00002a90: PUSH1 0x04
00002a92: ADD
00002a93: PUSH1 0x40
00002a95: MLOAD
00002a96: DUP1
00002a97: SWAP2
00002a98: SUB
00002a99: SWAP1
00002a9a: REVERT
00002a9b: JUMPDEST
00002a9c: PUSH2 0xffff
00002a9f: PUSH1 0x18
00002aa1: DUP3
00002aa2: SWAP1
00002aa3: SHR
00002aa4: AND
00002aa5: SWAP7
00002aa6: PUSH3 0xffffff
00002aaa: SWAP1
00002aab: SWAP2
00002aac: AND
00002aad: SWAP6
00002aae: POP
00002aaf: SWAP4
00002ab0: POP
00002ab1: POP
00002ab2: POP
00002ab3: POP
00002ab4: JUMP
00002ab5: JUMPDEST
00002ab6: PUSH1 0x03
00002ab8: DUP2
00002ab9: DUP2
00002aba: ADD
00002abb: SWAP2
00002abc: PUSH0
00002abd: SWAP2
00002abe: DUP3
00002abf: SWAP2
00002ac0: DUP1
00002ac1: CALLDATALOAD
00002ac2: PUSH1 0xe8
00002ac4: SHR
00002ac5: ADD
00002ac6: ADD
00002ac7: DUP2
00002ac8: PUSH1 0x44
00002aca: PUSH2 0x2ad3
00002acd: DUP7
00002ace: DUP5
00002acf: PUSH2 0x5b0b
00002ad2: JUMP
00002ad3: JUMPDEST
00002ad4: PUSH2 0x2add
00002ad7: SWAP2
00002ad8: SWAP1
00002ad9: PUSH2 0x5b1e
00002adc: JUMP
00002add: JUMPDEST
00002ade: SWAP1
00002adf: POP
00002ae0: DUP1
00002ae1: PUSH1 0x20
00002ae3: DUP7
00002ae4: SWAP1
00002ae5: SHL
00002ae6: OR
00002ae7: SWAP3
00002ae8: POP
00002ae9: PUSH0
00002aea: DUP1
00002aeb: JUMPDEST
00002aec: DUP3
00002aed: DUP2
00002aee: LT
00002aef: ISZERO
00002af0: PUSH2 0x2b60
00002af3: JUMPI
00002af4: PUSH0
00002af5: PUSH2 0x2b09
00002af8: PUSH1 0x20
00002afa: DUP8
00002afb: SWAP1
00002afc: SHR
00002afd: PUSH1 0x44
00002aff: DUP5
00002b00: MUL
00002b01: ADD
00002b02: JUMPDEST
00002b03: CALLDATALOAD
00002b04: PUSH1 0x60
00002b06: SHR
00002b07: SWAP1
00002b08: JUMP
00002b09: JUMPDEST
00002b0a: SWAP1
00002b0b: POP
00002b0c: DUP3
00002b0d: PUSH1 0x01
00002b0f: PUSH1 0x01
00002b11: PUSH1 0xa0
00002b13: SHL
00002b14: SUB
00002b15: AND
00002b16: DUP2
00002b17: PUSH1 0x01
00002b19: PUSH1 0x01
00002b1b: PUSH1 0xa0
00002b1d: SHL
00002b1e: SUB
00002b1f: AND
00002b20: GT
00002b21: PUSH2 0x2b56
00002b24: JUMPI
00002b25: PUSH1 0x40
00002b27: MLOAD
00002b28: PUSH32 0x80f11acf00000000000000000000000000000000000000000000000000000000
00002b49: DUP2
00002b4a: MSTORE
00002b4b: PUSH1 0x04
00002b4d: ADD
00002b4e: PUSH1 0x40
00002b50: MLOAD
00002b51: DUP1
00002b52: SWAP2
00002b53: SUB
00002b54: SWAP1
00002b55: REVERT
00002b56: JUMPDEST
00002b57: SWAP2
00002b58: POP
00002b59: PUSH1 0x01
00002b5b: ADD
00002b5c: PUSH2 0x2aeb
00002b5f: JUMP
00002b60: JUMPDEST
00002b61: POP
00002b62: DUP3
00002b63: SWAP5
00002b64: POP
00002b65: POP
00002b66: POP
00002b67: POP
00002b68: SWAP2
00002b69: POP
00002b6a: SWAP2
00002b6b: JUMP
00002b6c: JUMPDEST
00002b6d: PUSH1 0x03
00002b6f: DUP4
00002b70: DUP2
00002b71: ADD
00002b72: SWAP4
00002b73: PUSH0
00002b74: SWAP2
00002b75: DUP3
00002b76: SWAP2
00002b77: DUP3
00002b78: SWAP2
00002b79: DUP3
00002b7a: SWAP2
00002b7b: DUP1
00002b7c: CALLDATALOAD
00002b7d: PUSH1 0xe8
00002b7f: SHR
00002b80: ADD
00002b81: ADD
00002b82: DUP2
00002b83: PUSH1 0x26
00002b85: PUSH2 0x2b8e
00002b88: DUP11
00002b89: DUP5
00002b8a: PUSH2 0x5b0b
00002b8d: JUMP
00002b8e: JUMPDEST
00002b8f: PUSH2 0x2b98
00002b92: SWAP2
00002b93: SWAP1
00002b94: PUSH2 0x5b1e
00002b97: JUMP
00002b98: JUMPDEST
00002b99: SWAP1
00002b9a: POP
00002b9b: PUSH1 0x40
00002b9d: MLOAD
00002b9e: SWAP4
00002b9f: POP
00002ba0: DUP1
00002ba1: PUSH1 0xc0
00002ba3: MUL
00002ba4: DUP5
00002ba5: ADD
00002ba6: SWAP3
00002ba7: POP
00002ba8: DUP3
00002ba9: PUSH1 0x40
00002bab: MSTORE
00002bac: DUP1
00002bad: DUP5
00002bae: PUSH1 0x20
00002bb0: SHL
00002bb1: OR
00002bb2: SWAP5
00002bb3: POP
00002bb4: POP
00002bb5: PUSH0
00002bb6: JUMPDEST
00002bb7: DUP3
00002bb8: DUP5
00002bb9: LT
00002bba: ISZERO
00002bbb: PUSH2 0x2cd4
00002bbe: JUMPI
00002bbf: PUSH1 0x04
00002bc1: DUP10
00002bc2: ADD
00002bc3: SWAP9
00002bc4: CALLDATALOAD
00002bc5: PUSH1 0xe0
00002bc7: DUP2
00002bc8: SWAP1
00002bc9: SHR
00002bca: SWAP1
00002bcb: PUSH0
00002bcc: SWAP1
00002bcd: PUSH2 0x2bde
00002bd0: SWAP1
00002bd1: PUSH2 0x2b02
00002bd4: SWAP1
00002bd5: DUP13
00002bd6: SWAP1
00002bd7: PUSH1 0xf0
00002bd9: SHR
00002bda: PUSH2 0x341c
00002bdd: JUMP
00002bde: JUMPDEST
00002bdf: SWAP1
00002be0: POP
00002be1: PUSH0
00002be2: PUSH2 0x2bf2
00002be5: PUSH2 0x2b02
00002be8: DUP13
00002be9: PUSH2 0xffff
00002bec: DUP7
00002bed: AND
00002bee: PUSH2 0x341c
00002bf1: JUMP
00002bf2: JUMPDEST
00002bf3: SWAP1
00002bf4: POP
00002bf5: DUP4
00002bf6: PUSH4 0xffffffff
00002bfb: AND
00002bfc: DUP4
00002bfd: PUSH4 0xffffffff
00002c02: AND
00002c03: GT
00002c04: ISZERO
00002c05: DUP1
00002c06: PUSH2 0x2c21
00002c09: JUMPI
00002c0a: POP
00002c0b: DUP1
00002c0c: PUSH1 0x01
00002c0e: PUSH1 0x01
00002c10: PUSH1 0xa0
00002c12: SHL
00002c13: SUB
00002c14: AND
00002c15: DUP3
00002c16: PUSH1 0x01
00002c18: PUSH1 0x01
00002c1a: PUSH1 0xa0
00002c1c: SHL
00002c1d: SUB
00002c1e: AND
00002c1f: LT
00002c20: ISZERO
00002c21: JUMPDEST
00002c22: ISZERO
00002c23: PUSH2 0x2c58
00002c26: JUMPI
00002c27: PUSH1 0x40
00002c29: MLOAD
00002c2a: PUSH32 0xf35f939900000000000000000000000000000000000000000000000000000000
00002c4b: DUP2
00002c4c: MSTORE
00002c4d: PUSH1 0x04
00002c4f: ADD
00002c50: PUSH1 0x40
00002c52: MLOAD
00002c53: DUP1
00002c54: SWAP2
00002c55: SUB
00002c56: SWAP1
00002c57: REVERT
00002c58: JUMPDEST
00002c59: SWAP1
00002c5a: DUP7
00002c5b: MSTORE
00002c5c: PUSH1 0x20
00002c5e: DUP7
00002c5f: ADD
00002c60: MSTORE
00002c61: PUSH1 0x40
00002c63: DUP6
00002c64: KECCAK256
00002c65: PUSH1 0x02
00002c67: DUP12
00002c68: ADD
00002c69: SWAP11
00002c6a: SWAP2
00002c6b: SWAP3
00002c6c: POP
00002c6d: PUSH1 0x28
00002c6f: SHL
00002c70: SWAP1
00002c71: CALLDATALOAD
00002c72: PUSH1 0xf0
00002c74: SHR
00002c75: PUSH0
00002c76: DUP1
00002c77: PUSH2 0x2c8a
00002c7a: PUSH1 0x01
00002c7c: PUSH1 0x01
00002c7e: PUSH1 0xa0
00002c80: SHL
00002c81: SUB
00002c82: DUP13
00002c83: AND
00002c84: DUP6
00002c85: DUP6
00002c86: PUSH2 0x2a4b
00002c89: JUMP
00002c8a: JUMPDEST
00002c8b: PUSH1 0x40
00002c8d: DUP11
00002c8e: ADD
00002c8f: SWAP2
00002c90: SWAP1
00002c91: SWAP2
00002c92: MSTORE
00002c93: PUSH1 0x60
00002c95: DUP10
00002c96: ADD
00002c97: MSTORE
00002c98: POP
00002c99: POP
00002c9a: POP
00002c9b: PUSH1 0x20
00002c9d: DUP11
00002c9e: ADD
00002c9f: SWAP10
00002ca0: CALLDATALOAD
00002ca1: SWAP1
00002ca2: POP
00002ca3: PUSH0
00002ca4: PUSH23 0x0a70c3c40a64e6c51999090b65f67d9240000000000000
00002cbc: DUP3
00002cbd: SWAP1
00002cbe: DIV
00002cbf: PUSH1 0x80
00002cc1: DUP8
00002cc2: ADD
00002cc3: MSTORE
00002cc4: POP
00002cc5: PUSH1 0xa0
00002cc7: DUP6
00002cc8: ADD
00002cc9: MSTORE
00002cca: PUSH1 0xc0
00002ccc: SWAP1
00002ccd: SWAP4
00002cce: ADD
00002ccf: SWAP3
00002cd0: PUSH2 0x2bb6
00002cd3: JUMP
00002cd4: JUMPDEST
00002cd5: POP
00002cd6: SWAP4
00002cd7: POP
00002cd8: POP
00002cd9: POP
00002cda: SWAP4
00002cdb: POP
00002cdc: SWAP4
00002cdd: SWAP2
00002cde: POP
00002cdf: POP
00002ce0: JUMP
00002ce1: JUMPDEST
00002ce2: PUSH4 0xffffffff
00002ce7: DUP2
00002ce8: AND
00002ce9: PUSH0
00002cea: JUMPDEST
00002ceb: DUP2
00002cec: DUP2
00002ced: LT
00002cee: ISZERO
00002cef: PUSH2 0x0506
00002cf2: JUMPI
00002cf3: PUSH2 0x2d04
00002cf6: PUSH1 0x20
00002cf8: DUP5
00002cf9: SWAP1
00002cfa: SHR
00002cfb: PUSH1 0x44
00002cfd: DUP4
00002cfe: MUL
00002cff: ADD
00002d00: PUSH2 0x347a
00002d03: JUMP
00002d04: JUMPDEST
00002d05: PUSH1 0x01
00002d07: ADD
00002d08: PUSH2 0x2cea
00002d0b: JUMP
00002d0c: JUMPDEST
00002d0d: PUSH1 0x40
00002d0f: DUP1
00002d10: MLOAD
00002d11: PUSH2 0x0160
00002d14: DUP2
00002d15: ADD
00002d16: DUP3
00002d17: MSTORE
00002d18: PUSH0
00002d19: PUSH1 0x20
00002d1b: DUP3
00002d1c: ADD
00002d1d: DUP2
00002d1e: SWAP1
00002d1f: MSTORE
00002d20: SWAP2
00002d21: DUP2
00002d22: ADD
00002d23: DUP3
00002d24: SWAP1
00002d25: MSTORE
00002d26: PUSH1 0x80
00002d28: DUP2
00002d29: ADD
00002d2a: DUP3
00002d2b: SWAP1
00002d2c: MSTORE
00002d2d: PUSH1 0xc0
00002d2f: DUP2
00002d30: ADD
00002d31: DUP3
00002d32: SWAP1
00002d33: MSTORE
00002d34: PUSH1 0xe0
00002d36: DUP2
00002d37: ADD
00002d38: DUP3
00002d39: SWAP1
00002d3a: MSTORE
00002d3b: PUSH2 0x0100
00002d3e: DUP2
00002d3f: ADD
00002d40: DUP3
00002d41: SWAP1
00002d42: MSTORE
00002d43: PUSH2 0x0140
00002d46: DUP2
00002d47: ADD
00002d48: DUP3
00002d49: SWAP1
00002d4a: MSTORE
00002d4b: PUSH4 0xf3cd914c
00002d50: DUP2
00002d51: MSTORE
00002d52: PUSH3 0x800000
00002d56: PUSH1 0x60
00002d58: DUP3
00002d59: ADD
00002d5a: MSTORE
00002d5b: ADDRESS
00002d5c: PUSH1 0xa0
00002d5e: DUP3
00002d5f: ADD
00002d60: MSTORE
00002d61: PUSH2 0x0120
00002d64: DUP1
00002d65: DUP3
00002d66: ADD
00002d67: MSTORE
00002d68: PUSH1 0x03
00002d6a: DUP5
00002d6b: DUP2
00002d6c: ADD
00002d6d: SWAP5
00002d6e: DUP1
00002d6f: CALLDATALOAD
00002d70: PUSH1 0xe8
00002d72: SHR
00002d73: ADD
00002d74: ADD
00002d75: SWAP1
00002d76: JUMPDEST
00002d77: DUP2
00002d78: DUP6
00002d79: EQ
00002d7a: PUSH2 0x2d8f
00002d7d: JUMPI
00002d7e: PUSH2 0x2d88
00002d81: DUP6
00002d82: DUP3
00002d83: DUP7
00002d84: PUSH2 0x353e
00002d87: JUMP
00002d88: JUMPDEST
00002d89: SWAP5
00002d8a: POP
00002d8b: PUSH2 0x2d76
00002d8e: JUMP
00002d8f: JUMPDEST
00002d90: POP
00002d91: SWAP3
00002d92: SWAP4
00002d93: SWAP3
00002d94: POP
00002d95: POP
00002d96: POP
00002d97: JUMP
00002d98: JUMPDEST
00002d99: PUSH1 0x03
00002d9b: DUP3
00002d9c: DUP2
00002d9d: ADD
00002d9e: SWAP3
00002d9f: PUSH0
00002da0: SWAP2
00002da1: DUP2
00002da2: CALLDATALOAD
00002da3: PUSH1 0xe8
00002da5: SHR
00002da6: SWAP1
00002da7: SWAP2
00002da8: ADD
00002da9: ADD
00002daa: DUP2
00002dab: PUSH2 0x2db2
00002dae: PUSH2 0x3747
00002db1: JUMP
00002db2: JUMPDEST
00002db3: PUSH1 0x40
00002db5: DUP1
00002db6: MLOAD
00002db7: PUSH2 0x0120
00002dba: DUP2
00002dbb: ADD
00002dbc: DUP3
00002dbd: MSTORE
00002dbe: PUSH0
00002dbf: PUSH1 0x20
00002dc1: DUP3
00002dc2: ADD
00002dc3: DUP2
00002dc4: SWAP1
00002dc5: MSTORE
00002dc6: SWAP2
00002dc7: DUP2
00002dc8: ADD
00002dc9: DUP3
00002dca: SWAP1
00002dcb: MSTORE
00002dcc: PUSH1 0x60
00002dce: DUP2
00002dcf: ADD
00002dd0: DUP3
00002dd1: SWAP1
00002dd2: MSTORE
00002dd3: PUSH1 0x80
00002dd5: DUP2
00002dd6: ADD
00002dd7: DUP3
00002dd8: SWAP1
00002dd9: MSTORE
00002dda: PUSH1 0xa0
00002ddc: DUP2
00002ddd: ADD
00002dde: DUP3
00002ddf: SWAP1
00002de0: MSTORE
00002de1: PUSH1 0xc0
00002de3: DUP2
00002de4: ADD
00002de5: DUP3
00002de6: SWAP1
00002de7: MSTORE
00002de8: PUSH1 0xe0
00002dea: DUP2
00002deb: ADD
00002dec: SWAP2
00002ded: SWAP1
00002dee: SWAP2
00002def: MSTORE
00002df0: PUSH32 0x0af19d5479e90f25845cea6db89a524bb4e8da3a698213efb1b85e10a5e8be9c
00002e11: DUP2
00002e12: MSTORE
00002e13: PUSH8 0xffffffffffffffff
00002e1c: NUMBER
00002e1d: AND
00002e1e: PUSH2 0x0100
00002e21: DUP3
00002e22: ADD
00002e23: MSTORE
00002e24: SWAP1
00002e25: SWAP2
00002e26: POP
00002e27: JUMPDEST
00002e28: DUP3
00002e29: DUP7
00002e2a: EQ
00002e2b: PUSH2 0x2e41
00002e2e: JUMPI
00002e2f: PUSH2 0x2e3a
00002e32: DUP7
00002e33: DUP3
00002e34: DUP5
00002e35: DUP9
00002e36: PUSH2 0x3791
00002e39: JUMP
00002e3a: JUMPDEST
00002e3b: SWAP6
00002e3c: POP
00002e3d: PUSH2 0x2e27
00002e40: JUMP
00002e41: JUMPDEST
00002e42: POP
00002e43: SWAP4
00002e44: SWAP5
00002e45: SWAP4
00002e46: POP
00002e47: POP
00002e48: POP
00002e49: POP
00002e4a: JUMP
00002e4b: JUMPDEST
00002e4c: PUSH0
00002e4d: DUP1
00002e4e: PUSH2 0x2e55
00002e51: PUSH2 0x3747
00002e54: JUMP
00002e55: JUMPDEST
00002e56: PUSH1 0x40
00002e58: DUP1
00002e59: MLOAD
00002e5a: PUSH2 0x01a0
00002e5d: DUP2
00002e5e: ADD
00002e5f: DUP3
00002e60: MSTORE
00002e61: PUSH0
00002e62: DUP1
00002e63: DUP3
00002e64: MSTORE
00002e65: PUSH1 0x20
00002e67: DUP3
00002e68: ADD
00002e69: DUP2
00002e6a: SWAP1
00002e6b: MSTORE
00002e6c: SWAP2
00002e6d: DUP2
00002e6e: ADD
00002e6f: DUP3
00002e70: SWAP1
00002e71: MSTORE
00002e72: PUSH1 0x60
00002e74: DUP2
00002e75: ADD
00002e76: DUP3
00002e77: SWAP1
00002e78: MSTORE
00002e79: PUSH1 0x80
00002e7b: DUP2
00002e7c: ADD
00002e7d: DUP3
00002e7e: SWAP1
00002e7f: MSTORE
00002e80: PUSH1 0xa0
00002e82: DUP2
00002e83: ADD
00002e84: DUP3
00002e85: SWAP1
00002e86: MSTORE
00002e87: PUSH1 0xc0
00002e89: DUP2
00002e8a: ADD
00002e8b: DUP3
00002e8c: SWAP1
00002e8d: MSTORE
00002e8e: PUSH1 0xe0
00002e90: DUP2
00002e91: ADD
00002e92: DUP3
00002e93: SWAP1
00002e94: MSTORE
00002e95: PUSH2 0x0100
00002e98: DUP2
00002e99: ADD
00002e9a: DUP3
00002e9b: SWAP1
00002e9c: MSTORE
00002e9d: PUSH2 0x0120
00002ea0: DUP2
00002ea1: ADD
00002ea2: DUP3
00002ea3: SWAP1
00002ea4: MSTORE
00002ea5: PUSH2 0x0140
00002ea8: DUP2
00002ea9: ADD
00002eaa: DUP3
00002eab: SWAP1
00002eac: MSTORE
00002ead: PUSH2 0x0160
00002eb0: DUP2
00002eb1: ADD
00002eb2: DUP3
00002eb3: SWAP1
00002eb4: MSTORE
00002eb5: PUSH2 0x0180
00002eb8: DUP2
00002eb9: ADD
00002eba: SWAP2
00002ebb: SWAP1
00002ebc: SWAP2
00002ebd: MSTORE
00002ebe: PUSH1 0x03
00002ec0: DUP7
00002ec1: DUP2
00002ec2: ADD
00002ec3: SWAP7
00002ec4: SWAP3
00002ec5: SWAP4
00002ec6: POP
00002ec7: SWAP1
00002ec8: SWAP2
00002ec9: DUP1
00002eca: CALLDATALOAD
00002ecb: PUSH1 0xe8
00002ecd: SHR
00002ece: ADD
00002ecf: ADD
00002ed0: JUMPDEST
00002ed1: DUP1
00002ed2: DUP7
00002ed3: EQ
00002ed4: PUSH2 0x2e41
00002ed7: JUMPI
00002ed8: PUSH2 0x2ee3
00002edb: DUP7
00002edc: DUP4
00002edd: DUP6
00002ede: DUP9
00002edf: PUSH2 0x3975
00002ee2: JUMP
00002ee3: JUMPDEST
00002ee4: SWAP6
00002ee5: POP
00002ee6: PUSH2 0x2ed0
00002ee9: JUMP
00002eea: JUMPDEST
00002eeb: PUSH1 0x40
00002eed: DUP1
00002eee: MLOAD
00002eef: PUSH4 0xffffffff
00002ef4: DUP4
00002ef5: AND
00002ef6: PUSH1 0x24
00002ef8: DUP2
00002ef9: MUL
00002efa: DUP3
00002efb: ADD
00002efc: SWAP1
00002efd: SWAP3
00002efe: MSTORE
00002eff: DUP1
00002f00: PUSH0
00002f01: JUMPDEST
00002f02: DUP4
00002f03: DUP2
00002f04: LT
00002f05: ISZERO
00002f06: PUSH2 0x30ff
00002f09: JUMPI
00002f0a: PUSH1 0x44
00002f0c: DUP2
00002f0d: MUL
00002f0e: PUSH1 0x20
00002f10: DUP7
00002f11: SWAP1
00002f12: SHR
00002f13: ADD
00002f14: DUP1
00002f15: CALLDATALOAD
00002f16: PUSH1 0x60
00002f18: SHR
00002f19: PUSH1 0x14
00002f1b: DUP3
00002f1c: ADD
00002f1d: CALLDATALOAD
00002f1e: PUSH1 0x80
00002f20: SWAP1
00002f21: DUP2
00002f22: SHR
00002f23: SWAP1
00002f24: PUSH1 0x34
00002f26: DUP5
00002f27: ADD
00002f28: CALLDATALOAD
00002f29: SWAP1
00002f2a: SHR
00002f2b: PUSH0
00002f2c: PUSH2 0x2f42
00002f2f: DUP5
00002f30: PUSH2 0x2f39
00002f33: DUP5
00002f34: DUP7
00002f35: PUSH2 0x5875
00002f38: JUMP
00002f39: JUMPDEST
00002f3a: PUSH1 0x04
00002f3c: SWAP2
00002f3d: SWAP1
00002f3e: PUSH2 0x3b49
00002f41: JUMP
00002f42: JUMPDEST
00002f43: SWAP1
00002f44: POP
00002f45: DUP1
00002f46: ISZERO
00002f47: PUSH2 0x2f87
00002f4a: JUMPI
00002f4b: PUSH1 0x40
00002f4d: MLOAD
00002f4e: PUSH32 0xcc67af5300000000000000000000000000000000000000000000000000000000
00002f6f: DUP2
00002f70: MSTORE
00002f71: PUSH1 0x01
00002f73: PUSH1 0x01
00002f75: PUSH1 0xa0
00002f77: SHL
00002f78: SUB
00002f79: DUP6
00002f7a: AND
00002f7b: PUSH1 0x04
00002f7d: DUP3
00002f7e: ADD
00002f7f: MSTORE
00002f80: PUSH1 0x24
00002f82: ADD
00002f83: PUSH2 0x170b
00002f86: JUMP
00002f87: JUMPDEST
00002f88: DUP2
00002f89: ISZERO
00002f8a: PUSH2 0x30e1
00002f8d: JUMPI
00002f8e: PUSH1 0x01
00002f90: PUSH1 0x01
00002f92: PUSH1 0xa0
00002f94: SHL
00002f95: SUB
00002f96: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00002fb7: AND
00002fb8: PUSH4 0xa5841194
00002fbd: DUP6
00002fbe: PUSH1 0x40
00002fc0: MLOAD
00002fc1: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00002fe2: PUSH1 0xe0
00002fe4: DUP5
00002fe5: SWAP1
00002fe6: SHL
00002fe7: AND
00002fe8: DUP2
00002fe9: MSTORE
00002fea: PUSH1 0x01
00002fec: PUSH1 0x01
00002fee: PUSH1 0xa0
00002ff0: SHL
00002ff1: SUB
00002ff2: SWAP1
00002ff3: SWAP2
00002ff4: AND
00002ff5: PUSH1 0x04
00002ff7: DUP3
00002ff8: ADD
00002ff9: MSTORE
00002ffa: PUSH1 0x24
00002ffc: ADD
00002ffd: PUSH0
00002ffe: PUSH1 0x40
00003000: MLOAD
00003001: DUP1
00003002: DUP4
00003003: SUB
00003004: DUP2
00003005: PUSH0
00003006: DUP8
00003007: DUP1
00003008: EXTCODESIZE
00003009: ISZERO
0000300a: DUP1
0000300b: ISZERO
0000300c: PUSH2 0x3013
0000300f: JUMPI
00003010: PUSH0
00003011: DUP1
00003012: REVERT
00003013: JUMPDEST
00003014: POP
00003015: GAS
00003016: CALL
00003017: ISZERO
00003018: DUP1
00003019: ISZERO
0000301a: PUSH2 0x3025
0000301d: JUMPI
0000301e: RETURNDATASIZE
0000301f: PUSH0
00003020: DUP1
00003021: RETURNDATACOPY
00003022: RETURNDATASIZE
00003023: PUSH0
00003024: REVERT
00003025: JUMPDEST
00003026: POP
00003027: PUSH2 0x305e
0000302a: SWAP3
0000302b: POP
0000302c: POP
0000302d: POP
0000302e: PUSH1 0x01
00003030: PUSH1 0x01
00003032: PUSH1 0xa0
00003034: SHL
00003035: SUB
00003036: DUP6
00003037: AND
00003038: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00003059: DUP5
0000305a: PUSH2 0x27e2
0000305d: JUMP
0000305e: JUMPDEST
0000305f: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00003080: PUSH1 0x01
00003082: PUSH1 0x01
00003084: PUSH1 0xa0
00003086: SHL
00003087: SUB
00003088: AND
00003089: PUSH4 0x11da60b4
0000308e: PUSH1 0x40
00003090: MLOAD
00003091: DUP2
00003092: PUSH4 0xffffffff
00003097: AND
00003098: PUSH1 0xe0
0000309a: SHL
0000309b: DUP2
0000309c: MSTORE
0000309d: PUSH1 0x04
0000309f: ADD
000030a0: PUSH1 0x20
000030a2: PUSH1 0x40
000030a4: MLOAD
000030a5: DUP1
000030a6: DUP4
000030a7: SUB
000030a8: DUP2
000030a9: PUSH0
000030aa: DUP8
000030ab: GAS
000030ac: CALL
000030ad: ISZERO
000030ae: DUP1
000030af: ISZERO
000030b0: PUSH2 0x30bb
000030b3: JUMPI
000030b4: RETURNDATASIZE
000030b5: PUSH0
000030b6: DUP1
000030b7: RETURNDATACOPY
000030b8: RETURNDATASIZE
000030b9: PUSH0
000030ba: REVERT
000030bb: JUMPDEST
000030bc: POP
000030bd: POP
000030be: POP
000030bf: POP
000030c0: PUSH1 0x40
000030c2: MLOAD
000030c3: RETURNDATASIZE
000030c4: PUSH1 0x1f
000030c6: NOT
000030c7: PUSH1 0x1f
000030c9: DUP3
000030ca: ADD
000030cb: AND
000030cc: DUP3
000030cd: ADD
000030ce: DUP1
000030cf: PUSH1 0x40
000030d1: MSTORE
000030d2: POP
000030d3: DUP2
000030d4: ADD
000030d5: SWAP1
000030d6: PUSH2 0x30df
000030d9: SWAP2
000030da: SWAP1
000030db: PUSH2 0x57e7
000030de: JUMP
000030df: JUMPDEST
000030e0: POP
000030e1: JUMPDEST
000030e2: PUSH2 0x30eb
000030e5: DUP6
000030e6: DUP9
000030e7: PUSH2 0x3b7f
000030ea: JUMP
000030eb: JUMPDEST
000030ec: POP
000030ed: POP
000030ee: POP
000030ef: PUSH1 0x24
000030f1: SWAP4
000030f2: SWAP1
000030f3: SWAP4
000030f4: ADD
000030f5: SWAP3
000030f6: POP
000030f7: POP
000030f8: PUSH1 0x01
000030fa: ADD
000030fb: PUSH2 0x2f01
000030fe: JUMP
000030ff: JUMPDEST
00003100: POP
00003101: PUSH1 0x24
00003103: DUP4
00003104: MUL
00003105: DUP3
00003106: KECCAK256
00003107: PUSH0
00003108: MSTORE
00003109: PUSH1 0x20
0000310b: PUSH0
0000310c: LOG0
0000310d: POP
0000310e: POP
0000310f: POP
00003110: POP
00003111: JUMP
00003112: JUMPDEST
00003113: DUP3
00003114: PUSH1 0x02
00003116: SIGNEXTEND
00003117: DUP3
00003118: PUSH1 0x02
0000311a: SIGNEXTEND
0000311b: SGT
0000311c: ISZERO
0000311d: PUSH2 0x3156
00003120: JUMPI
00003121: DUP3
00003122: PUSH1 0x02
00003124: SIGNEXTEND
00003125: PUSH2 0x313a
00003128: DUP3
00003129: DUP5
0000312a: PUSH1 0x02
0000312c: SIGNEXTEND
0000312d: PUSH2 0x3b88
00003130: SWAP1
00003131: SWAP2
00003132: SWAP1
00003133: PUSH4 0xffffffff
00003138: AND
00003139: JUMP
0000313a: JUMPDEST
0000313b: PUSH1 0x02
0000313d: SIGNEXTEND
0000313e: SGT
0000313f: ISZERO
00003140: PUSH2 0x3151
00003143: JUMPI
00003144: PUSH2 0x3151
00003147: DUP7
00003148: DUP6
00003149: DUP8
0000314a: DUP7
0000314b: DUP7
0000314c: DUP7
0000314d: PUSH2 0x3b99
00003150: JUMP
00003151: JUMPDEST
00003152: PUSH2 0x3193
00003155: JUMP
00003156: JUMPDEST
00003157: DUP3
00003158: PUSH1 0x02
0000315a: SIGNEXTEND
0000315b: DUP3
0000315c: PUSH1 0x02
0000315e: SIGNEXTEND
0000315f: SLT
00003160: ISZERO
00003161: PUSH2 0x3193
00003164: JUMPI
00003165: PUSH0
00003166: PUSH1 0x02
00003168: DUP5
00003169: SWAP1
0000316a: SIGNEXTEND
0000316b: DUP3
0000316c: DUP2
0000316d: SMOD
0000316e: SWAP2
0000316f: SWAP1
00003170: SWAP2
00003171: SLT
00003172: SWAP1
00003173: DUP3
00003174: SWAP1
00003175: SDIV
00003176: SUB
00003177: DUP2
00003178: MUL
00003179: PUSH1 0x02
0000317b: SIGNEXTEND
0000317c: DUP3
0000317d: PUSH1 0x02
0000317f: SIGNEXTEND
00003180: SLT
00003181: ISZERO
00003182: PUSH2 0x3193
00003185: JUMPI
00003186: PUSH2 0x3193
00003189: DUP7
0000318a: DUP6
0000318b: DUP8
0000318c: DUP7
0000318d: DUP7
0000318e: DUP7
0000318f: PUSH2 0x3c18
00003192: JUMP
00003193: JUMPDEST
00003194: POP
00003195: POP
00003196: POP
00003197: POP
00003198: POP
00003199: POP
0000319a: JUMP
0000319b: JUMPDEST
0000319c: PUSH1 0x40
0000319e: DUP1
0000319f: MLOAD
000031a0: DUP1
000031a1: DUP3
000031a2: ADD
000031a3: SWAP1
000031a4: SWAP2
000031a5: MSTORE
000031a6: PUSH1 0x60
000031a8: DUP2
000031a9: MSTORE
000031aa: PUSH0
000031ab: PUSH1 0x20
000031ad: DUP3
000031ae: ADD
000031af: MSTORE
000031b0: PUSH2 0x221c
000031b3: PUSH1 0x01
000031b5: PUSH1 0x01
000031b7: PUSH1 0xa0
000031b9: SHL
000031ba: SUB
000031bb: DUP4
000031bc: AND
000031bd: PUSH0
000031be: PUSH2 0x217f
000031c1: JUMP
000031c2: JUMPDEST
000031c3: PUSH2 0x3214
000031c6: PUSH2 0x31e8
000031c9: DUP5
000031ca: PUSH0
000031cb: ADD
000031cc: MLOAD
000031cd: DUP4
000031ce: DUP2
000031cf: MLOAD
000031d0: DUP2
000031d1: LT
000031d2: PUSH2 0x31dd
000031d5: JUMPI
000031d6: PUSH2 0x31dd
000031d9: PUSH2 0x5791
000031dc: JUMP
000031dd: JUMPDEST
000031de: PUSH1 0x20
000031e0: MUL
000031e1: PUSH1 0x20
000031e3: ADD
000031e4: ADD
000031e5: MLOAD
000031e6: SWAP1
000031e7: JUMP
000031e8: JUMPDEST
000031e9: DUP4
000031ea: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
0000320b: SWAP1
0000320c: DUP2
0000320d: AND
0000320e: SWAP2
0000320f: AND
00003210: EQ
00003211: ISZERO
00003212: SWAP1
00003213: JUMP
00003214: JUMPDEST
00003215: ISZERO
00003216: PUSH2 0x324b
00003219: JUMPI
0000321a: PUSH1 0x40
0000321c: MLOAD
0000321d: PUSH32 0x23f69dc200000000000000000000000000000000000000000000000000000000
0000323e: DUP2
0000323f: MSTORE
00003240: PUSH1 0x04
00003242: ADD
00003243: PUSH1 0x40
00003245: MLOAD
00003246: DUP1
00003247: SWAP2
00003248: SUB
00003249: SWAP1
0000324a: REVERT
0000324b: JUMPDEST
0000324c: DUP3
0000324d: MLOAD
0000324e: MLOAD
0000324f: PUSH0
00003250: SWAP1
00003251: PUSH2 0x325c
00003254: SWAP1
00003255: PUSH1 0x01
00003257: SWAP1
00003258: PUSH2 0x5b0b
0000325b: JUMP
0000325c: JUMPDEST
0000325d: SWAP1
0000325e: POP
0000325f: DUP1
00003260: DUP3
00003261: LT
00003262: ISZERO
00003263: PUSH2 0x32a4
00003266: JUMPI
00003267: DUP4
00003268: MLOAD
00003269: DUP1
0000326a: MLOAD
0000326b: DUP3
0000326c: SWAP1
0000326d: DUP2
0000326e: LT
0000326f: PUSH2 0x327a
00003272: JUMPI
00003273: PUSH2 0x327a
00003276: PUSH2 0x5791
00003279: JUMP
0000327a: JUMPDEST
0000327b: PUSH1 0x20
0000327d: MUL
0000327e: PUSH1 0x20
00003280: ADD
00003281: ADD
00003282: MLOAD
00003283: DUP5
00003284: PUSH0
00003285: ADD
00003286: MLOAD
00003287: DUP4
00003288: DUP2
00003289: MLOAD
0000328a: DUP2
0000328b: LT
0000328c: PUSH2 0x3297
0000328f: JUMPI
00003290: PUSH2 0x3297
00003293: PUSH2 0x5791
00003296: JUMP
00003297: JUMPDEST
00003298: PUSH1 0x20
0000329a: MUL
0000329b: PUSH1 0x20
0000329d: ADD
0000329e: ADD
0000329f: DUP2
000032a0: DUP2
000032a1: MSTORE
000032a2: POP
000032a3: POP
000032a4: JUMPDEST
000032a5: PUSH2 0x2a45
000032a8: DUP5
000032a9: DUP3
000032aa: SWAP1
000032ab: MLOAD
000032ac: MSTORE
000032ad: JUMP
000032ae: JUMPDEST
000032af: PUSH0
000032b0: PUSH2 0x221c
000032b3: PUSH1 0x20
000032b5: PUSH1 0x01
000032b7: PUSH1 0x01
000032b9: PUSH1 0xa0
000032bb: SHL
000032bc: SUB
000032bd: DUP5
000032be: AND
000032bf: EXTCODESIZE
000032c0: PUSH2 0x5b1e
000032c3: JUMP
000032c4: JUMPDEST
000032c5: PUSH1 0x01
000032c7: PUSH2 0xffff
000032ca: DUP3
000032cb: AND
000032cc: LT
000032cd: DUP1
000032ce: PUSH2 0x32dc
000032d1: JUMPI
000032d2: POP
000032d3: PUSH2 0x7fff
000032d6: PUSH2 0xffff
000032d9: DUP3
000032da: AND
000032db: GT
000032dc: JUMPDEST
000032dd: ISZERO
000032de: PUSH2 0x0515
000032e1: JUMPI
000032e2: PUSH1 0x40
000032e4: MLOAD
000032e5: PUSH32 0x270815a000000000000000000000000000000000000000000000000000000000
00003306: DUP2
00003307: MSTORE
00003308: PUSH1 0x04
0000330a: ADD
0000330b: PUSH1 0x40
0000330d: MLOAD
0000330e: DUP1
0000330f: SWAP2
00003310: SUB
00003311: SWAP1
00003312: REVERT
00003313: JUMPDEST
00003314: PUSH3 0x030d40
00003318: PUSH3 0xffffff
0000331c: DUP3
0000331d: AND
0000331e: GT
0000331f: ISZERO
00003320: PUSH2 0x0515
00003323: JUMPI
00003324: PUSH1 0x40
00003326: MLOAD
00003327: PUSH32 0x76a3f95d00000000000000000000000000000000000000000000000000000000
00003348: DUP2
00003349: MSTORE
0000334a: PUSH1 0x04
0000334c: ADD
0000334d: PUSH1 0x40
0000334f: MLOAD
00003350: DUP1
00003351: SWAP2
00003352: SUB
00003353: SWAP1
00003354: REVERT
00003355: JUMPDEST
00003356: DUP2
00003357: PUSH0
00003358: MSTORE
00003359: PUSH1 0x01
0000335b: PUSH1 0x01
0000335d: PUSH1 0xa0
0000335f: SHL
00003360: SUB
00003361: DUP2
00003362: AND
00003363: PUSH1 0x04
00003365: MSTORE
00003366: PUSH1 0x24
00003368: PUSH0
00003369: REVERT
0000336a: JUMPDEST
0000336b: PUSH4 0x35278d12
00003370: PUSH0
00003371: MSTORE
00003372: PUSH1 0x04
00003374: PUSH1 0x1c
00003376: REVERT
00003377: JUMPDEST
00003378: PUSH0
00003379: DUP2
0000337a: PUSH1 0x20
0000337c: MSTORE
0000337d: PUSH4 0x1e2eaeaf
00003382: PUSH0
00003383: MSTORE
00003384: PUSH1 0x20
00003386: PUSH0
00003387: PUSH1 0x24
00003389: PUSH1 0x1c
0000338b: DUP7
0000338c: GAS
0000338d: STATICCALL
0000338e: PUSH2 0x339e
00003391: JUMPI
00003392: PUSH4 0x535cf94b
00003397: PUSH0
00003398: MSTORE
00003399: PUSH1 0x04
0000339b: PUSH1 0x1c
0000339d: REVERT
0000339e: JUMPDEST
0000339f: POP
000033a0: POP
000033a1: PUSH0
000033a2: MLOAD
000033a3: SWAP2
000033a4: SWAP1
000033a5: POP
000033a6: JUMP
000033a7: JUMPDEST
000033a8: PUSH0
000033a9: DUP3
000033aa: DUP2
000033ab: MSTORE
000033ac: PUSH1 0x06
000033ae: PUSH1 0x20
000033b0: SWAP1
000033b1: DUP2
000033b2: MSTORE
000033b3: PUSH1 0x40
000033b5: DUP1
000033b6: DUP4
000033b7: KECCAK256
000033b8: DUP5
000033b9: DUP5
000033ba: MSTORE
000033bb: PUSH1 0x05
000033bd: ADD
000033be: SWAP1
000033bf: SWAP2
000033c0: MSTORE
000033c1: DUP2
000033c2: KECCAK256
000033c3: PUSH2 0x33d5
000033c6: PUSH1 0x01
000033c8: PUSH1 0x01
000033ca: PUSH1 0xa0
000033cc: SHL
000033cd: SUB
000033ce: DUP7
000033cf: AND
000033d0: DUP3
000033d1: PUSH2 0x3377
000033d4: JUMP
000033d5: JUMPDEST
000033d6: SWAP6
000033d7: SWAP5
000033d8: POP
000033d9: POP
000033da: POP
000033db: POP
000033dc: POP
000033dd: JUMP
000033de: JUMPDEST
000033df: PUSH0
000033e0: PUSH1 0x20
000033e2: DUP3
000033e3: PUSH1 0x20
000033e5: MUL
000033e6: PUSH1 0x01
000033e8: ADD
000033e9: PUSH0
000033ea: DUP7
000033eb: EXTCODECOPY
000033ec: POP
000033ed: POP
000033ee: PUSH0
000033ef: MLOAD
000033f0: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
00003411: DUP2
00003412: AND
00003413: SWAP2
00003414: SWAP1
00003415: SWAP2
00003416: EQ
00003417: MUL
00003418: SWAP2
00003419: SWAP1
0000341a: POP
0000341b: JUMP
0000341c: JUMPDEST
0000341d: PUSH0
0000341e: DUP2
0000341f: PUSH4 0xffffffff
00003424: DUP5
00003425: AND
00003426: GT
00003427: PUSH2 0x346b
0000342a: JUMPI
0000342b: PUSH1 0x40
0000342d: MLOAD
0000342e: PUSH32 0xffc31e7100000000000000000000000000000000000000000000000000000000
0000344f: DUP2
00003450: MSTORE
00003451: PUSH1 0x04
00003453: DUP2
00003454: ADD
00003455: DUP4
00003456: SWAP1
00003457: MSTORE
00003458: PUSH4 0xffffffff
0000345d: DUP5
0000345e: AND
0000345f: PUSH1 0x24
00003461: DUP3
00003462: ADD
00003463: MSTORE
00003464: PUSH1 0x44
00003466: ADD
00003467: PUSH2 0x170b
0000346a: JUMP
0000346b: JUMPDEST
0000346c: PUSH1 0x20
0000346e: DUP4
0000346f: SWAP1
00003470: SHR
00003471: PUSH1 0x44
00003473: DUP4
00003474: MUL
00003475: ADD
00003476: PUSH2 0x1729
00003479: JUMP
0000347a: JUMPDEST
0000347b: PUSH1 0x24
0000347d: DUP2
0000347e: ADD
0000347f: CALLDATALOAD
00003480: PUSH1 0x80
00003482: SHR
00003483: DUP1
00003484: ISZERO
00003485: PUSH2 0x1ea6
00003488: JUMPI
00003489: PUSH1 0x40
0000348b: DUP1
0000348c: MLOAD
0000348d: PUSH32 0x0b0d9c0900000000000000000000000000000000000000000000000000000000
000034ae: DUP2
000034af: MSTORE
000034b0: DUP4
000034b1: CALLDATALOAD
000034b2: PUSH1 0x60
000034b4: SHR
000034b5: PUSH1 0x04
000034b7: DUP3
000034b8: ADD
000034b9: DUP2
000034ba: SWAP1
000034bb: MSTORE
000034bc: ADDRESS
000034bd: PUSH1 0x24
000034bf: DUP4
000034c0: ADD
000034c1: MSTORE
000034c2: PUSH1 0x44
000034c4: DUP3
000034c5: ADD
000034c6: DUP5
000034c7: SWAP1
000034c8: MSTORE
000034c9: SWAP2
000034ca: MLOAD
000034cb: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
000034ec: PUSH1 0x01
000034ee: PUSH1 0x01
000034f0: PUSH1 0xa0
000034f2: SHL
000034f3: SUB
000034f4: AND
000034f5: SWAP2
000034f6: PUSH4 0x0b0d9c09
000034fb: SWAP2
000034fc: PUSH1 0x64
000034fe: DUP1
000034ff: DUP4
00003500: ADD
00003501: SWAP3
00003502: PUSH0
00003503: SWAP3
00003504: SWAP2
00003505: SWAP1
00003506: DUP3
00003507: SWAP1
00003508: SUB
00003509: ADD
0000350a: DUP2
0000350b: DUP4
0000350c: DUP8
0000350d: DUP1
0000350e: EXTCODESIZE
0000350f: ISZERO
00003510: DUP1
00003511: ISZERO
00003512: PUSH2 0x3519
00003515: JUMPI
00003516: PUSH0
00003517: DUP1
00003518: REVERT
00003519: JUMPDEST
0000351a: POP
0000351b: GAS
0000351c: CALL
0000351d: ISZERO
0000351e: DUP1
0000351f: ISZERO
00003520: PUSH2 0x352b
00003523: JUMPI
00003524: RETURNDATASIZE
00003525: PUSH0
00003526: DUP1
00003527: RETURNDATACOPY
00003528: RETURNDATASIZE
00003529: PUSH0
0000352a: REVERT
0000352b: JUMPDEST
0000352c: POP
0000352d: PUSH2 0x0506
00003530: SWAP3
00003531: POP
00003532: PUSH1 0x04
00003534: SWAP2
00003535: POP
00003536: DUP4
00003537: SWAP1
00003538: POP
00003539: DUP5
0000353a: PUSH2 0x3ca3
0000353d: JUMP
0000353e: JUMPDEST
0000353f: PUSH1 0x01
00003541: DUP4
00003542: DUP2
00003543: ADD
00003544: SWAP4
00003545: PUSH0
00003546: SWAP2
00003547: SWAP1
00003548: CALLDATALOAD
00003549: DUP3
0000354a: BYTE
0000354b: SWAP1
0000354c: PUSH2 0x355a
0000354f: SWAP1
00003550: DUP6
00003551: SWAP1
00003552: DUP4
00003553: AND
00003554: ISZERO
00003555: ISZERO
00003556: PUSH2 0x3ccf
00003559: JUMP
0000355a: JUMPDEST
0000355b: PUSH1 0x02
0000355d: DUP6
0000355e: ADD
0000355f: SWAP5
00003560: CALLDATALOAD
00003561: PUSH1 0xf0
00003563: SHR
00003564: PUSH2 0x3581
00003567: PUSH2 0x3570
0000356a: DUP6
0000356b: DUP4
0000356c: PUSH2 0x3d13
0000356f: JUMP
00003570: JUMPDEST
00003571: DUP1
00003572: MLOAD
00003573: PUSH1 0x20
00003575: DUP3
00003576: ADD
00003577: MLOAD
00003578: PUSH1 0x40
0000357a: SWAP1
0000357b: SWAP3
0000357c: ADD
0000357d: MLOAD
0000357e: SWAP1
0000357f: SWAP3
00003580: JUMP
00003581: JUMPDEST
00003582: PUSH1 0x02
00003584: SIGNEXTEND
00003585: PUSH1 0x80
00003587: DUP9
00003588: ADD
00003589: MSTORE
0000358a: PUSH1 0x01
0000358c: PUSH1 0x01
0000358e: PUSH1 0xa0
00003590: SHL
00003591: SUB
00003592: SWAP1
00003593: DUP2
00003594: AND
00003595: PUSH1 0x40
00003597: DUP9
00003598: ADD
00003599: MSTORE
0000359a: AND
0000359b: PUSH1 0x20
0000359d: DUP7
0000359e: ADD
0000359f: SWAP1
000035a0: DUP2
000035a1: MSTORE
000035a2: PUSH1 0xa0
000035a4: SWAP1
000035a5: KECCAK256
000035a6: PUSH0
000035a7: PUSH1 0x10
000035a9: DUP9
000035aa: ADD
000035ab: DUP9
000035ac: CALLDATALOAD
000035ad: PUSH1 0x80
000035af: SHR
000035b0: SWAP1
000035b1: SWAP9
000035b2: POP
000035b3: PUSH16 0xffffffffffffffffffffffffffffffff
000035c4: AND
000035c5: SWAP1
000035c6: POP
000035c7: PUSH0
000035c8: DUP2
000035c9: ISZERO
000035ca: PUSH2 0x36c1
000035cd: JUMPI
000035ce: PUSH0
000035cf: PUSH2 0x3604
000035d2: PUSH2 0x097b
000035d5: PUSH1 0x01
000035d7: PUSH1 0x01
000035d9: PUSH1 0xa0
000035db: SHL
000035dc: SUB
000035dd: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
000035fe: AND
000035ff: DUP7
00003600: PUSH2 0x2670
00003603: JUMP
00003604: JUMPDEST
00003605: SWAP1
00003606: POP
00003607: PUSH2 0x360f
0000360a: DUP4
0000360b: PUSH2 0x3d73
0000360e: JUMP
0000360f: JUMPDEST
00003610: PUSH1 0xe0
00003612: DUP11
00003613: ADD
00003614: MSTORE
00003615: PUSH2 0x363e
00003618: DUP10
00003619: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
0000363a: PUSH2 0x3dd4
0000363d: JUMP
0000363e: JUMPDEST
0000363f: PUSH2 0x3674
00003642: PUSH2 0x097b
00003645: PUSH1 0x01
00003647: PUSH1 0x01
00003649: PUSH1 0xa0
0000364b: SHL
0000364c: SUB
0000364d: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
0000366e: AND
0000366f: DUP7
00003670: PUSH2 0x2670
00003673: JUMP
00003674: JUMPDEST
00003675: PUSH1 0x80
00003677: DUP11
00003678: ADD
00003679: MLOAD
0000367a: PUSH0
0000367b: DUP7
0000367c: DUP2
0000367d: MSTORE
0000367e: PUSH1 0x07
00003680: PUSH1 0x20
00003682: MSTORE
00003683: PUSH1 0x40
00003685: SWAP1
00003686: KECCAK256
00003687: SWAP2
00003688: SWAP4
00003689: POP
0000368a: PUSH2 0x36bb
0000368d: SWAP2
0000368e: SWAP1
0000368f: DUP7
00003690: SWAP1
00003691: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
000036b2: SWAP1
000036b3: DUP6
000036b4: SWAP1
000036b5: DUP8
000036b6: SWAP1
000036b7: PUSH2 0x3112
000036ba: JUMP
000036bb: JUMPDEST
000036bc: POP
000036bd: PUSH2 0x36fa
000036c0: JUMP
000036c1: JUMPDEST
000036c2: PUSH2 0x36f7
000036c5: PUSH2 0x097b
000036c8: PUSH1 0x01
000036ca: PUSH1 0x01
000036cc: PUSH1 0xa0
000036ce: SHL
000036cf: SUB
000036d0: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
000036f1: AND
000036f2: DUP6
000036f3: PUSH2 0x2670
000036f6: JUMP
000036f7: JUMPDEST
000036f8: SWAP1
000036f9: POP
000036fa: JUMPDEST
000036fb: PUSH0
000036fc: PUSH2 0x3721
000036ff: PUSH1 0x02
00003701: DUP8
00003702: AND
00003703: ISZERO
00003704: ISZERO
00003705: PUSH0
00003706: DUP7
00003707: DUP2
00003708: MSTORE
00003709: PUSH1 0x07
0000370b: PUSH1 0x20
0000370d: MSTORE
0000370e: PUSH1 0x40
00003710: SWAP1
00003711: KECCAK256
00003712: PUSH1 0x80
00003714: DUP13
00003715: ADD
00003716: MLOAD
00003717: DUP14
00003718: SWAP2
00003719: SWAP1
0000371a: DUP9
0000371b: SWAP1
0000371c: DUP8
0000371d: PUSH2 0x3df1
00003720: JUMP
00003721: JUMPDEST
00003722: PUSH1 0x20
00003724: DUP12
00003725: ADD
00003726: MLOAD
00003727: SWAP2
00003728: SWAP12
00003729: POP
0000372a: SWAP2
0000372b: POP
0000372c: PUSH2 0x3738
0000372f: SWAP1
00003730: PUSH1 0x04
00003732: SWAP1
00003733: DUP4
00003734: PUSH2 0x3b49
00003737: JUMP
00003738: JUMPDEST
00003739: POP
0000373a: SWAP9
0000373b: SWAP10
0000373c: SWAP9
0000373d: POP
0000373e: POP
0000373f: POP
00003740: POP
00003741: POP
00003742: POP
00003743: POP
00003744: POP
00003745: POP
00003746: JUMP
00003747: JUMPDEST
00003748: PUSH0
00003749: PUSH2 0x378c
0000374c: PUSH2 0x3753
0000374f: PUSH2 0x4139
00003752: JUMP
00003753: JUMPDEST
00003754: PUSH1 0x40
00003756: DUP1
00003757: MLOAD
00003758: PUSH1 0x42
0000375a: DUP2
0000375b: ADD
0000375c: SWAP1
0000375d: SWAP2
0000375e: MSTORE
0000375f: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000
00003780: DUP2
00003781: MSTORE
00003782: PUSH1 0x02
00003784: DUP2
00003785: ADD
00003786: SWAP2
00003787: SWAP1
00003788: SWAP2
00003789: MSTORE
0000378a: SWAP1
0000378b: JUMP
0000378c: JUMPDEST
0000378d: SWAP1
0000378e: POP
0000378f: SWAP1
00003790: JUMP
00003791: JUMPDEST
00003792: DUP4
00003793: CALLDATALOAD
00003794: PUSH0
00003795: SWAP1
00003796: DUP2
00003797: BYTE
00003798: PUSH1 0x01
0000379a: DUP2
0000379b: DUP2
0000379c: AND
0000379d: ISZERO
0000379e: ISZERO
0000379f: PUSH1 0x80
000037a1: DUP8
000037a2: DUP2
000037a3: ADD
000037a4: SWAP2
000037a5: SWAP1
000037a6: SWAP2
000037a7: MSTORE
000037a8: SWAP1
000037a9: DUP8
000037aa: ADD
000037ab: CALLDATALOAD
000037ac: DUP2
000037ad: SHR
000037ae: PUSH1 0x20
000037b0: DUP8
000037b1: ADD
000037b2: MSTORE
000037b3: PUSH1 0x11
000037b5: DUP8
000037b6: ADD
000037b7: CALLDATALOAD
000037b8: DUP2
000037b9: SHR
000037ba: PUSH1 0x40
000037bc: DUP8
000037bd: ADD
000037be: MSTORE
000037bf: PUSH1 0x21
000037c1: DUP8
000037c2: ADD
000037c3: CALLDATALOAD
000037c4: DUP2
000037c5: SHR
000037c6: PUSH1 0x60
000037c8: DUP8
000037c9: ADD
000037ca: DUP2
000037cb: SWAP1
000037cc: MSTORE
000037cd: PUSH1 0x41
000037cf: DUP9
000037d0: ADD
000037d1: SWAP8
000037d2: PUSH1 0x31
000037d4: ADD
000037d5: CALLDATALOAD
000037d6: SWAP1
000037d7: SWAP2
000037d8: SHR
000037d9: SWAP1
000037da: DUP2
000037db: GT
000037dc: ISZERO
000037dd: PUSH2 0x3812
000037e0: JUMPI
000037e1: PUSH1 0x40
000037e3: MLOAD
000037e4: PUSH32 0x2bae6c5200000000000000000000000000000000000000000000000000000000
00003805: DUP2
00003806: MSTORE
00003807: PUSH1 0x04
00003809: ADD
0000380a: PUSH1 0x40
0000380c: MLOAD
0000380d: DUP1
0000380e: SWAP2
0000380f: SUB
00003810: SWAP1
00003811: REVERT
00003812: JUMPDEST
00003813: PUSH1 0x02
00003815: DUP8
00003816: DUP2
00003817: ADD
00003818: SWAP8
00003819: CALLDATALOAD
0000381a: PUSH1 0xf0
0000381c: SHR
0000381d: SWAP1
0000381e: PUSH2 0x3841
00003821: SWAP1
00003822: DUP5
00003823: AND
00003824: ISZERO
00003825: ISZERO
00003826: PUSH2 0x382f
00003829: DUP8
0000382a: DUP5
0000382b: PUSH2 0x3d13
0000382e: JUMP
0000382f: JUMPDEST
00003830: SWAP1
00003831: PUSH1 0x05
00003833: SHL
00003834: PUSH1 0x20
00003836: DUP2
00003837: XOR
00003838: DUP3
00003839: ADD
0000383a: MLOAD
0000383b: SWAP2
0000383c: ADD
0000383d: MLOAD
0000383e: SWAP1
0000383f: SWAP2
00003840: JUMP
00003841: JUMPDEST
00003842: PUSH1 0x01
00003844: PUSH1 0x01
00003846: PUSH1 0xa0
00003848: SHL
00003849: SUB
0000384a: SWAP1
0000384b: DUP2
0000384c: AND
0000384d: PUSH1 0xc0
0000384f: DUP11
00003850: ADD
00003851: MSTORE
00003852: AND
00003853: PUSH1 0xa0
00003855: DUP9
00003856: ADD
00003857: MSTORE
00003858: POP
00003859: PUSH1 0x04
0000385b: DUP3
0000385c: AND
0000385d: PUSH2 0x3867
00003860: JUMPI
00003861: DUP7
00003862: PUSH0
00003863: PUSH2 0x3871
00003866: JUMP
00003867: JUMPDEST
00003868: PUSH1 0x14
0000386a: DUP8
0000386b: ADD
0000386c: DUP8
0000386d: CALLDATALOAD
0000386e: PUSH1 0x60
00003870: SHR
00003871: JUMPDEST
00003872: PUSH1 0x01
00003874: PUSH1 0x01
00003876: PUSH1 0xa0
00003878: SHL
00003879: SUB
0000387a: AND
0000387b: PUSH1 0xe0
0000387d: DUP9
0000387e: ADD
0000387f: MSTORE
00003880: SWAP7
00003881: POP
00003882: PUSH0
00003883: PUSH2 0x389d
00003886: PUSH2 0x3891
00003889: DUP9
0000388a: PUSH2 0x0120
0000388d: SWAP1
0000388e: KECCAK256
0000388f: SWAP1
00003890: JUMP
00003891: JUMPDEST
00003892: PUSH1 0x22
00003894: DUP9
00003895: ADD
00003896: MSTORE
00003897: PUSH1 0x42
00003899: DUP8
0000389a: KECCAK256
0000389b: SWAP1
0000389c: JUMP
0000389d: JUMPDEST
0000389e: SWAP1
0000389f: POP
000038a0: PUSH0
000038a1: PUSH1 0x08
000038a3: DUP5
000038a4: AND
000038a5: PUSH2 0x38b7
000038a8: JUMPI
000038a9: PUSH2 0x38b2
000038ac: DUP10
000038ad: DUP4
000038ae: PUSH2 0x422e
000038b1: JUMP
000038b2: JUMPDEST
000038b3: PUSH2 0x38c1
000038b6: JUMP
000038b7: JUMPDEST
000038b8: PUSH2 0x38c1
000038bb: DUP10
000038bc: DUP4
000038bd: PUSH2 0x4298
000038c0: JUMP
000038c1: JUMPDEST
000038c2: SWAP1
000038c3: SWAP10
000038c4: POP
000038c5: SWAP1
000038c6: POP
000038c7: PUSH2 0x38d0
000038ca: DUP3
000038cb: DUP3
000038cc: PUSH2 0x42dc
000038cf: JUMP
000038d0: JUMPDEST
000038d1: PUSH1 0xe0
000038d3: DUP9
000038d4: ADD
000038d5: MLOAD
000038d6: DUP1
000038d7: ISZERO
000038d8: DUP3
000038d9: MUL
000038da: OR
000038db: PUSH1 0x02
000038dd: DUP6
000038de: AND
000038df: ISZERO
000038e0: PUSH2 0x390f
000038e3: JUMPI
000038e4: DUP4
000038e5: PUSH16 0xffffffffffffffffffffffffffffffff
000038f6: AND
000038f7: DUP10
000038f8: PUSH1 0x20
000038fa: ADD
000038fb: DUP2
000038fc: DUP2
000038fd: MLOAD
000038fe: PUSH2 0x3907
00003901: SWAP2
00003902: SWAP1
00003903: PUSH2 0x5875
00003906: JUMP
00003907: JUMPDEST
00003908: SWAP1
00003909: MSTORE
0000390a: POP
0000390b: PUSH2 0x3937
0000390e: JUMP
0000390f: JUMPDEST
00003910: DUP4
00003911: PUSH16 0xffffffffffffffffffffffffffffffff
00003922: AND
00003923: DUP10
00003924: PUSH1 0x40
00003926: ADD
00003927: DUP2
00003928: DUP2
00003929: MLOAD
0000392a: PUSH2 0x3933
0000392d: SWAP2
0000392e: SWAP1
0000392f: PUSH2 0x5b0b
00003932: JUMP
00003933: JUMPDEST
00003934: SWAP1
00003935: MSTORE
00003936: POP
00003937: JUMPDEST
00003938: PUSH2 0x394f
0000393b: DUP3
0000393c: DUP11
0000393d: PUSH1 0xa0
0000393f: ADD
00003940: MLOAD
00003941: DUP12
00003942: PUSH1 0x20
00003944: ADD
00003945: MLOAD
00003946: DUP13
00003947: PUSH1 0x80
00003949: ADD
0000394a: MLOAD
0000394b: PUSH2 0x4304
0000394e: JUMP
0000394f: JUMPDEST
00003950: PUSH2 0x3967
00003953: DUP2
00003954: DUP11
00003955: PUSH1 0xc0
00003957: ADD
00003958: MLOAD
00003959: DUP12
0000395a: PUSH1 0x40
0000395c: ADD
0000395d: MLOAD
0000395e: DUP13
0000395f: PUSH1 0x80
00003961: ADD
00003962: MLOAD
00003963: PUSH2 0x4374
00003966: JUMP
00003967: JUMPDEST
00003968: POP
00003969: SWAP8
0000396a: SWAP9
0000396b: SWAP8
0000396c: POP
0000396d: POP
0000396e: POP
0000396f: POP
00003970: POP
00003971: POP
00003972: POP
00003973: POP
00003974: JUMP
00003975: JUMPDEST
00003976: PUSH0
00003977: DUP1
00003978: PUSH2 0x3981
0000397b: DUP6
0000397c: DUP8
0000397d: PUSH2 0x43d2
00003980: JUMP
00003981: JUMPDEST
00003982: PUSH1 0x02
00003984: DUP3
00003985: ADD
00003986: SWAP8
00003987: POP
00003988: SWAP2
00003989: POP
0000398a: PUSH0
0000398b: SWAP1
0000398c: DUP2
0000398d: SWAP1
0000398e: CALLDATALOAD
0000398f: PUSH1 0xf0
00003991: SHR
00003992: PUSH2 0x39aa
00003995: PUSH1 0x08
00003997: DUP6
00003998: AND
00003999: ISZERO
0000399a: ISZERO
0000399b: PUSH2 0x39a4
0000399e: DUP9
0000399f: DUP5
000039a0: PUSH2 0x3d13
000039a3: JUMP
000039a4: JUMPDEST
000039a5: SWAP1
000039a6: PUSH2 0x44b2
000039a9: JUMP
000039aa: JUMPDEST
000039ab: PUSH1 0x01
000039ad: PUSH1 0x01
000039af: PUSH1 0xa0
000039b1: SHL
000039b2: SUB
000039b3: SWAP2
000039b4: DUP3
000039b5: AND
000039b6: PUSH2 0x0100
000039b9: DUP13
000039ba: ADD
000039bb: MSTORE
000039bc: SWAP2
000039bd: AND
000039be: PUSH1 0xe0
000039c0: DUP11
000039c1: ADD
000039c2: MSTORE
000039c3: SWAP3
000039c4: POP
000039c5: POP
000039c6: POP
000039c7: PUSH1 0x20
000039c9: DUP8
000039ca: ADD
000039cb: DUP8
000039cc: CALLDATALOAD
000039cd: PUSH1 0xa0
000039cf: DUP9
000039d0: ADD
000039d1: DUP2
000039d2: SWAP1
000039d3: MSTORE
000039d4: SWAP1
000039d5: SWAP8
000039d6: POP
000039d7: DUP2
000039d8: LT
000039d9: ISZERO
000039da: PUSH2 0x3a0f
000039dd: JUMPI
000039de: PUSH1 0x40
000039e0: MLOAD
000039e1: PUSH32 0x8e1edfa400000000000000000000000000000000000000000000000000000000
00003a02: DUP2
00003a03: MSTORE
00003a04: PUSH1 0x04
00003a06: ADD
00003a07: PUSH1 0x40
00003a09: MLOAD
00003a0a: DUP1
00003a0b: SWAP2
00003a0c: SUB
00003a0d: SWAP1
00003a0e: REVERT
00003a0f: JUMPDEST
00003a10: PUSH1 0x02
00003a12: DUP3
00003a13: AND
00003a14: PUSH2 0x3a1e
00003a17: JUMPI
00003a18: DUP7
00003a19: PUSH0
00003a1a: PUSH2 0x3a28
00003a1d: JUMP
00003a1e: JUMPDEST
00003a1f: PUSH1 0x14
00003a21: DUP8
00003a22: ADD
00003a23: DUP8
00003a24: CALLDATALOAD
00003a25: PUSH1 0x60
00003a27: SHR
00003a28: JUMPDEST
00003a29: PUSH1 0x01
00003a2b: PUSH1 0x01
00003a2d: PUSH1 0xa0
00003a2f: SHL
00003a30: SUB
00003a31: AND
00003a32: PUSH2 0x0120
00003a35: DUP9
00003a36: ADD
00003a37: MSTORE
00003a38: SWAP7
00003a39: POP
00003a3a: PUSH0
00003a3b: PUSH2 0x3a48
00003a3e: DUP9
00003a3f: PUSH1 0x04
00003a41: DUP6
00003a42: AND
00003a43: ISZERO
00003a44: PUSH2 0x44f4
00003a47: JUMP
00003a48: JUMPDEST
00003a49: PUSH2 0x0140
00003a4c: DUP11
00003a4d: ADD
00003a4e: MSTORE
00003a4f: SWAP1
00003a50: SWAP9
00003a51: POP
00003a52: SWAP1
00003a53: POP
00003a54: PUSH2 0x3a5e
00003a57: DUP8
00003a58: DUP10
00003a59: DUP6
00003a5a: PUSH2 0x45d6
00003a5d: JUMP
00003a5e: JUMPDEST
00003a5f: SWAP8
00003a60: POP
00003a61: PUSH0
00003a62: DUP1
00003a63: PUSH2 0x3a6e
00003a66: DUP10
00003a67: DUP12
00003a68: DUP8
00003a69: DUP8
00003a6a: PUSH2 0x461e
00003a6d: JUMP
00003a6e: JUMPDEST
00003a6f: SWAP2
00003a70: SWAP12
00003a71: POP
00003a72: SWAP3
00003a73: POP
00003a74: SWAP1
00003a75: POP
00003a76: PUSH0
00003a77: PUSH2 0x3a8f
00003a7a: PUSH2 0x3a83
00003a7d: DUP12
00003a7e: DUP9
00003a7f: PUSH2 0x4828
00003a82: JUMP
00003a83: JUMPDEST
00003a84: PUSH1 0x22
00003a86: DUP12
00003a87: ADD
00003a88: MSTORE
00003a89: PUSH1 0x42
00003a8b: DUP11
00003a8c: KECCAK256
00003a8d: SWAP1
00003a8e: JUMP
00003a8f: JUMPDEST
00003a90: SWAP1
00003a91: POP
00003a92: PUSH0
00003a93: PUSH1 0x80
00003a95: DUP8
00003a96: AND
00003a97: PUSH2 0x3aa9
00003a9a: JUMPI
00003a9b: PUSH2 0x3aa4
00003a9e: DUP13
00003a9f: DUP4
00003aa0: PUSH2 0x422e
00003aa3: JUMP
00003aa4: JUMPDEST
00003aa5: PUSH2 0x3ab3
00003aa8: JUMP
00003aa9: JUMPDEST
00003aaa: PUSH2 0x3ab3
00003aad: DUP13
00003aae: DUP4
00003aaf: PUSH2 0x4298
00003ab2: JUMP
00003ab3: JUMPDEST
00003ab4: SWAP1
00003ab5: SWAP13
00003ab6: POP
00003ab7: SWAP1
00003ab8: POP
00003ab9: PUSH1 0x10
00003abb: DUP8
00003abc: AND
00003abd: ISZERO
00003abe: PUSH2 0x3aea
00003ac1: JUMPI
00003ac2: PUSH2 0x3ad6
00003ac5: DUP12
00003ac6: PUSH2 0x0180
00003ac9: ADD
00003aca: MLOAD
00003acb: PUSH5 0xffffffffff
00003ad1: AND
00003ad2: PUSH2 0x4848
00003ad5: JUMP
00003ad6: JUMPDEST
00003ad7: PUSH2 0x3ae5
00003ada: DUP2
00003adb: DUP13
00003adc: PUSH2 0x0160
00003adf: ADD
00003ae0: MLOAD
00003ae1: PUSH2 0x20ff
00003ae4: JUMP
00003ae5: JUMPDEST
00003ae6: PUSH2 0x3af4
00003ae9: JUMP
00003aea: JUMPDEST
00003aeb: PUSH2 0x3af4
00003aee: DUP3
00003aef: DUP3
00003af0: PUSH2 0x42dc
00003af3: JUMP
00003af4: JUMPDEST
00003af5: PUSH0
00003af6: DUP12
00003af7: PUSH2 0x0120
00003afa: ADD
00003afb: MLOAD
00003afc: SWAP1
00003afd: POP
00003afe: DUP1
00003aff: DUP3
00003b00: DUP3
00003b01: ISZERO
00003b02: MUL
00003b03: OR
00003b04: SWAP1
00003b05: POP
00003b06: PUSH2 0x3b1a
00003b09: DUP2
00003b0a: DUP14
00003b0b: PUSH2 0x0100
00003b0e: ADD
00003b0f: MLOAD
00003b10: DUP7
00003b11: DUP16
00003b12: PUSH1 0xc0
00003b14: ADD
00003b15: MLOAD
00003b16: PUSH2 0x4374
00003b19: JUMP
00003b1a: JUMPDEST
00003b1b: PUSH2 0x3b24
00003b1e: DUP7
00003b1f: DUP4
00003b20: PUSH2 0x4882
00003b23: JUMP
00003b24: JUMPDEST
00003b25: PUSH2 0x3b38
00003b28: DUP3
00003b29: DUP14
00003b2a: PUSH1 0xe0
00003b2c: ADD
00003b2d: MLOAD
00003b2e: DUP8
00003b2f: DUP16
00003b30: PUSH1 0xc0
00003b32: ADD
00003b33: MLOAD
00003b34: PUSH2 0x4304
00003b37: JUMP
00003b38: JUMPDEST
00003b39: POP
00003b3a: SWAP11
00003b3b: SWAP12
00003b3c: SWAP11
00003b3d: POP
00003b3e: POP
00003b3f: POP
00003b40: POP
00003b41: POP
00003b42: POP
00003b43: POP
00003b44: POP
00003b45: POP
00003b46: POP
00003b47: POP
00003b48: JUMP
00003b49: JUMPDEST
00003b4a: PUSH1 0x01
00003b4c: PUSH1 0x01
00003b4e: PUSH1 0xa0
00003b50: SHL
00003b51: SUB
00003b52: DUP3
00003b53: AND
00003b54: PUSH0
00003b55: SWAP1
00003b56: DUP2
00003b57: MSTORE
00003b58: PUSH1 0x20
00003b5a: DUP5
00003b5b: SWAP1
00003b5c: MSTORE
00003b5d: PUSH1 0x40
00003b5f: DUP2
00003b60: KECCAK256
00003b61: PUSH2 0x3b77
00003b64: PUSH2 0x3b6e
00003b67: DUP3
00003b68: TLOAD
00003b69: DUP6
00003b6a: PUSH2 0x48ca
00003b6d: JUMP
00003b6e: JUMPDEST
00003b6f: SWAP3
00003b70: POP
00003b71: DUP2
00003b72: DUP4
00003b73: PUSH2 0x2a27
00003b76: JUMP
00003b77: JUMPDEST
00003b78: POP
00003b79: SWAP4
00003b7a: SWAP3
00003b7b: POP
00003b7c: POP
00003b7d: POP
00003b7e: JUMP
00003b7f: JUMPDEST
00003b80: PUSH1 0x24
00003b82: DUP3
00003b83: DUP3
00003b84: CALLDATACOPY
00003b85: POP
00003b86: POP
00003b87: JUMP
00003b88: JUMPDEST
00003b89: PUSH0
00003b8a: DUP2
00003b8b: DUP4
00003b8c: SMOD
00003b8d: SLT
00003b8e: SWAP2
00003b8f: DUP2
00003b90: SWAP1
00003b91: SDIV
00003b92: SWAP2
00003b93: SWAP1
00003b94: SWAP2
00003b95: SUB
00003b96: MUL
00003b97: SWAP1
00003b98: JUMP
00003b99: JUMPDEST
00003b9a: PUSH4 0x01000000
00003b9f: DUP7
00003ba0: ADD
00003ba1: SLOAD
00003ba2: JUMPDEST
00003ba3: PUSH0
00003ba4: PUSH2 0x3bb8
00003ba7: PUSH1 0x01
00003ba9: PUSH1 0x01
00003bab: PUSH1 0xa0
00003bad: SHL
00003bae: SUB
00003baf: DUP9
00003bb0: AND
00003bb1: DUP8
00003bb2: DUP8
00003bb3: DUP7
00003bb4: PUSH2 0x48e2
00003bb7: JUMP
00003bb8: JUMPDEST
00003bb9: SWAP6
00003bba: POP
00003bbb: SWAP1
00003bbc: POP
00003bbd: PUSH1 0x02
00003bbf: DUP6
00003bc0: DUP2
00003bc1: SIGNEXTEND
00003bc2: SWAP1
00003bc3: DUP6
00003bc4: SWAP1
00003bc5: SIGNEXTEND
00003bc6: SLT
00003bc7: ISZERO
00003bc8: PUSH2 0x3bd1
00003bcb: JUMPI
00003bcc: POP
00003bcd: PUSH2 0x0ff6
00003bd0: JUMP
00003bd1: JUMPDEST
00003bd2: DUP1
00003bd3: ISZERO
00003bd4: PUSH2 0x3c12
00003bd7: JUMPI
00003bd8: DUP8
00003bd9: PUSH3 0xffffff
00003bdd: DUP7
00003bde: AND
00003bdf: PUSH4 0x01000000
00003be4: DUP2
00003be5: LT
00003be6: PUSH2 0x3bf1
00003be9: JUMPI
00003bea: PUSH2 0x3bf1
00003bed: PUSH2 0x5791
00003bf0: JUMP
00003bf1: JUMPDEST
00003bf2: ADD
00003bf3: SLOAD
00003bf4: DUP3
00003bf5: SUB
00003bf6: DUP9
00003bf7: PUSH3 0xffffff
00003bfb: DUP8
00003bfc: AND
00003bfd: PUSH4 0x01000000
00003c02: DUP2
00003c03: LT
00003c04: PUSH2 0x3c0f
00003c07: JUMPI
00003c08: PUSH2 0x3c0f
00003c0b: PUSH2 0x5791
00003c0e: JUMP
00003c0f: JUMPDEST
00003c10: ADD
00003c11: SSTORE
00003c12: JUMPDEST
00003c13: POP
00003c14: PUSH2 0x3ba2
00003c17: JUMP
00003c18: JUMPDEST
00003c19: PUSH0
00003c1a: PUSH2 0x3c2e
00003c1d: PUSH1 0x01
00003c1f: PUSH1 0x01
00003c21: PUSH1 0xa0
00003c23: SHL
00003c24: SUB
00003c25: DUP8
00003c26: AND
00003c27: DUP7
00003c28: DUP7
00003c29: DUP6
00003c2a: PUSH2 0x493c
00003c2d: JUMP
00003c2e: JUMPDEST
00003c2f: SWAP5
00003c30: POP
00003c31: SWAP1
00003c32: POP
00003c33: PUSH1 0x02
00003c35: DUP4
00003c36: DUP2
00003c37: SIGNEXTEND
00003c38: SWAP1
00003c39: DUP6
00003c3a: SWAP1
00003c3b: SIGNEXTEND
00003c3c: SGT
00003c3d: PUSH2 0x3c46
00003c40: JUMPI
00003c41: POP
00003c42: PUSH2 0x3193
00003c45: JUMP
00003c46: JUMPDEST
00003c47: DUP1
00003c48: ISZERO
00003c49: PUSH2 0x3c90
00003c4c: JUMPI
00003c4d: DUP7
00003c4e: PUSH3 0xffffff
00003c52: DUP6
00003c53: AND
00003c54: PUSH4 0x01000000
00003c59: DUP2
00003c5a: LT
00003c5b: PUSH2 0x3c66
00003c5e: JUMPI
00003c5f: PUSH2 0x3c66
00003c62: PUSH2 0x5791
00003c65: JUMP
00003c66: JUMPDEST
00003c67: ADD
00003c68: SLOAD
00003c69: DUP8
00003c6a: PUSH4 0x01000000
00003c6f: ADD
00003c70: SLOAD
00003c71: SUB
00003c72: DUP8
00003c73: PUSH0
00003c74: ADD
00003c75: DUP6
00003c76: PUSH3 0xffffff
00003c7a: AND
00003c7b: PUSH4 0x01000000
00003c80: DUP2
00003c81: LT
00003c82: PUSH2 0x3c8d
00003c85: JUMPI
00003c86: PUSH2 0x3c8d
00003c89: PUSH2 0x5791
00003c8c: JUMP
00003c8d: JUMPDEST
00003c8e: ADD
00003c8f: SSTORE
00003c90: JUMPDEST
00003c91: DUP4
00003c92: PUSH2 0x3c9a
00003c95: DUP2
00003c96: PUSH2 0x5b31
00003c99: JUMP
00003c9a: JUMPDEST
00003c9b: SWAP5
00003c9c: POP
00003c9d: POP
00003c9e: POP
00003c9f: PUSH2 0x3c18
00003ca2: JUMP
00003ca3: JUMPDEST
00003ca4: PUSH1 0x01
00003ca6: PUSH1 0x01
00003ca8: PUSH1 0xa0
00003caa: SHL
00003cab: SUB
00003cac: DUP3
00003cad: AND
00003cae: PUSH0
00003caf: SWAP1
00003cb0: DUP2
00003cb1: MSTORE
00003cb2: PUSH1 0x20
00003cb4: DUP5
00003cb5: SWAP1
00003cb6: MSTORE
00003cb7: PUSH1 0x40
00003cb9: SWAP1
00003cba: KECCAK256
00003cbb: PUSH2 0x2a45
00003cbe: PUSH2 0x3cc8
00003cc1: DUP3
00003cc2: TLOAD
00003cc3: DUP5
00003cc4: PUSH2 0x4974
00003cc7: JUMP
00003cc8: JUMPDEST
00003cc9: DUP3
00003cca: SWAP1
00003ccb: PUSH2 0x2a27
00003cce: JUMP
00003ccf: JUMPDEST
00003cd0: DUP1
00003cd1: ISZERO
00003cd2: ISZERO
00003cd3: PUSH1 0xc0
00003cd5: DUP4
00003cd6: ADD
00003cd7: MSTORE
00003cd8: DUP1
00003cd9: PUSH2 0x3cf6
00003cdc: JUMPI
00003cdd: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25
00003cf2: PUSH2 0x3cfd
00003cf5: JUMP
00003cf6: JUMPDEST
00003cf7: PUSH5 0x01000276a4
00003cfd: JUMPDEST
00003cfe: PUSH1 0x01
00003d00: PUSH1 0x01
00003d02: PUSH1 0xa0
00003d04: SHL
00003d05: SUB
00003d06: AND
00003d07: PUSH2 0x0100
00003d0a: SWAP1
00003d0b: SWAP3
00003d0c: ADD
00003d0d: SWAP2
00003d0e: SWAP1
00003d0f: SWAP2
00003d10: MSTORE
00003d11: POP
00003d12: JUMP
00003d13: JUMPDEST
00003d14: PUSH0
00003d15: DUP2
00003d16: PUSH4 0xffffffff
00003d1b: DUP5
00003d1c: AND
00003d1d: GT
00003d1e: PUSH2 0x3d62
00003d21: JUMPI
00003d22: PUSH1 0x40
00003d24: MLOAD
00003d25: PUSH32 0xf6601b5000000000000000000000000000000000000000000000000000000000
00003d46: DUP2
00003d47: MSTORE
00003d48: PUSH1 0x04
00003d4a: DUP2
00003d4b: ADD
00003d4c: DUP4
00003d4d: SWAP1
00003d4e: MSTORE
00003d4f: PUSH4 0xffffffff
00003d54: DUP5
00003d55: AND
00003d56: PUSH1 0x24
00003d58: DUP3
00003d59: ADD
00003d5a: MSTORE
00003d5b: PUSH1 0x44
00003d5d: ADD
00003d5e: PUSH2 0x170b
00003d61: JUMP
00003d62: JUMPDEST
00003d63: POP
00003d64: PUSH1 0xc0
00003d66: DUP2
00003d67: MUL
00003d68: PUSH1 0x20
00003d6a: DUP4
00003d6b: SWAP1
00003d6c: SHR
00003d6d: ADD
00003d6e: SWAP3
00003d6f: SWAP2
00003d70: POP
00003d71: POP
00003d72: JUMP
00003d73: JUMPDEST
00003d74: PUSH0
00003d75: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000
00003d96: DUP3
00003d97: GT
00003d98: ISZERO
00003d99: PUSH2 0x3dce
00003d9c: JUMPI
00003d9d: PUSH1 0x40
00003d9f: MLOAD
00003da0: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000
00003dc1: DUP2
00003dc2: MSTORE
00003dc3: PUSH1 0x04
00003dc5: ADD
00003dc6: PUSH1 0x40
00003dc8: MLOAD
00003dc9: DUP1
00003dca: SWAP2
00003dcb: SUB
00003dcc: SWAP1
00003dcd: REVERT
00003dce: JUMPDEST
00003dcf: POP
00003dd0: PUSH0
00003dd1: SUB
00003dd2: SWAP1
00003dd3: JUMP
00003dd4: JUMPDEST
00003dd5: PUSH0
00003dd6: DUP1
00003dd7: PUSH2 0x0144
00003dda: PUSH1 0x1c
00003ddc: DUP6
00003ddd: ADD
00003dde: PUSH0
00003ddf: DUP6
00003de0: GAS
00003de1: CALL
00003de2: DUP1
00003de3: PUSH2 0x0506
00003de6: JUMPI
00003de7: PUSH1 0x40
00003de9: MLOAD
00003dea: RETURNDATASIZE
00003deb: PUSH0
00003dec: DUP3
00003ded: RETURNDATACOPY
00003dee: RETURNDATASIZE
00003def: DUP2
00003df0: REVERT
00003df1: JUMPDEST
00003df2: PUSH0
00003df3: DUP1
00003df4: DUP8
00003df5: ISZERO
00003df6: PUSH2 0x3f23
00003df9: JUMPI
00003dfa: PUSH1 0x20
00003dfc: DUP8
00003dfd: ADD
00003dfe: SWAP7
00003dff: DUP1
00003e00: CALLDATALOAD
00003e01: PUSH1 0x80
00003e03: SWAP1
00003e04: DUP2
00003e05: SHR
00003e06: SWAP2
00003e07: PUSH1 0x10
00003e09: ADD
00003e0a: CALLDATALOAD
00003e0b: SWAP1
00003e0c: SHR
00003e0d: DUP2
00003e0e: ISZERO
00003e0f: DUP1
00003e10: PUSH2 0x3e29
00003e13: JUMPI
00003e14: POP
00003e15: PUSH16 0xffffffffffffffffffffffffffffffff
00003e26: DUP2
00003e27: AND
00003e28: ISZERO
00003e29: JUMPDEST
00003e2a: ISZERO
00003e2b: PUSH2 0x3e4b
00003e2e: JUMPI
00003e2f: POP
00003e30: DUP8
00003e31: SWAP3
00003e32: POP
00003e33: PUSH16 0xffffffffffffffffffffffffffffffff
00003e44: AND
00003e45: SWAP1
00003e46: POP
00003e47: PUSH2 0x1da7
00003e4a: JUMP
00003e4b: JUMPDEST
00003e4c: PUSH0
00003e4d: PUSH2 0x3e7f
00003e50: PUSH1 0x01
00003e52: PUSH1 0x01
00003e54: PUSH1 0xa0
00003e56: SHL
00003e57: SUB
00003e58: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00003e79: AND
00003e7a: DUP10
00003e7b: PUSH2 0x498c
00003e7e: JUMP
00003e7f: JUMPDEST
00003e80: SWAP1
00003e81: POP
00003e82: DUP1
00003e83: PUSH16 0xffffffffffffffffffffffffffffffff
00003e94: AND
00003e95: DUP3
00003e96: PUSH16 0xffffffffffffffffffffffffffffffff
00003ea7: AND
00003ea8: EQ
00003ea9: PUSH2 0x3ede
00003eac: JUMPI
00003ead: PUSH1 0x40
00003eaf: MLOAD
00003eb0: PUSH32 0xbecb195c00000000000000000000000000000000000000000000000000000000
00003ed1: DUP2
00003ed2: MSTORE
00003ed3: PUSH1 0x04
00003ed5: ADD
00003ed6: PUSH1 0x40
00003ed8: MLOAD
00003ed9: DUP1
00003eda: SWAP2
00003edb: SUB
00003edc: SWAP1
00003edd: REVERT
00003ede: JUMPDEST
00003edf: PUSH16 0xffffffffffffffffffffffffffffffff
00003ef0: DUP2
00003ef1: AND
00003ef2: PUSH1 0x80
00003ef4: DUP5
00003ef5: SWAP1
00003ef6: SHL
00003ef7: DIV
00003ef8: PUSH4 0x01000000
00003efd: DUP11
00003efe: ADD
00003eff: DUP1
00003f00: SLOAD
00003f01: SWAP1
00003f02: SWAP2
00003f03: ADD
00003f04: SWAP1
00003f05: SSTORE
00003f06: POP
00003f07: DUP9
00003f08: SWAP4
00003f09: POP
00003f0a: POP
00003f0b: PUSH16 0xffffffffffffffffffffffffffffffff
00003f1c: AND
00003f1d: SWAP1
00003f1e: POP
00003f1f: PUSH2 0x1da7
00003f22: JUMP
00003f23: JUMPDEST
00003f24: PUSH0
00003f25: DUP1
00003f26: DUP1
00003f27: PUSH1 0x03
00003f29: DUP11
00003f2a: ADD
00003f2b: DUP11
00003f2c: CALLDATALOAD
00003f2d: PUSH1 0xe8
00003f2f: SAR
00003f30: SWAP1
00003f31: SWAP11
00003f32: POP
00003f33: SWAP1
00003f34: POP
00003f35: PUSH0
00003f36: PUSH1 0x10
00003f38: DUP12
00003f39: ADD
00003f3a: DUP12
00003f3b: CALLDATALOAD
00003f3c: PUSH1 0x80
00003f3e: SHR
00003f3f: SWAP1
00003f40: SWAP12
00003f41: POP
00003f42: SWAP1
00003f43: POP
00003f44: PUSH0
00003f45: DUP1
00003f46: PUSH1 0x03
00003f48: DUP1
00003f49: DUP15
00003f4a: ADD
00003f4b: SWAP1
00003f4c: DUP15
00003f4d: CALLDATALOAD
00003f4e: PUSH1 0xe8
00003f50: SHR
00003f51: DUP16
00003f52: ADD
00003f53: ADD
00003f54: PUSH1 0x40
00003f56: DUP1
00003f57: MLOAD
00003f58: PUSH1 0x80
00003f5a: DUP2
00003f5b: ADD
00003f5c: DUP3
00003f5d: MSTORE
00003f5e: DUP15
00003f5f: DUP2
00003f60: MSTORE
00003f61: PUSH1 0x02
00003f63: DUP15
00003f64: DUP2
00003f65: SIGNEXTEND
00003f66: PUSH1 0x20
00003f68: DUP4
00003f69: ADD
00003f6a: MSTORE
00003f6b: DUP14
00003f6c: DUP2
00003f6d: SIGNEXTEND
00003f6e: SWAP3
00003f6f: DUP3
00003f70: ADD
00003f71: DUP4
00003f72: SWAP1
00003f73: MSTORE
00003f74: PUSH0
00003f75: PUSH1 0x60
00003f77: DUP4
00003f78: ADD
00003f79: DUP2
00003f7a: SWAP1
00003f7b: MSTORE
00003f7c: SWAP5
00003f7d: SWAP7
00003f7e: POP
00003f7f: SWAP3
00003f80: SWAP5
00003f81: POP
00003f82: DUP16
00003f83: SWAP4
00003f84: SWAP3
00003f85: SWAP1
00003f86: SWAP2
00003f87: SWAP1
00003f88: DUP9
00003f89: SWAP1
00003f8a: SIGNEXTEND
00003f8b: SGT
00003f8c: ISZERO
00003f8d: PUSH2 0x3fa2
00003f90: JUMPI
00003f91: PUSH2 0x3f9d
00003f94: DUP4
00003f95: DUP9
00003f96: DUP8
00003f97: DUP10
00003f98: DUP6
00003f99: PUSH2 0x49b0
00003f9c: JUMP
00003f9d: JUMPDEST
00003f9e: PUSH2 0x3faf
00003fa1: JUMP
00003fa2: JUMPDEST
00003fa3: PUSH2 0x3faf
00003fa6: DUP4
00003fa7: DUP9
00003fa8: DUP8
00003fa9: DUP10
00003faa: DUP6
00003fab: PUSH2 0x4af1
00003fae: JUMP
00003faf: JUMPDEST
00003fb0: PUSH16 0xffffffffffffffffffffffffffffffff
00003fc1: DUP2
00003fc2: AND
00003fc3: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000
00003fe4: DUP6
00003fe5: CALLDATALOAD
00003fe6: SWAP1
00003fe7: DUP2
00003fe8: AND
00003fe9: SWAP2
00003fea: SWAP1
00003feb: SWAP2
00003fec: DIV
00003fed: SWAP1
00003fee: SWAP3
00003fef: ADD
00003ff0: SWAP13
00003ff1: POP
00003ff2: SWAP11
00003ff3: POP
00003ff4: PUSH1 0x10
00003ff6: SWAP1
00003ff7: SWAP3
00003ff8: ADD
00003ff9: SWAP7
00003ffa: POP
00003ffb: SWAP3
00003ffc: POP
00003ffd: PUSH1 0x80
00003fff: SHR
00004000: PUSH2 0x4009
00004003: DUP2
00004004: DUP5
00004005: PUSH2 0x5875
00004008: JUMP
00004009: JUMPDEST
0000400a: SWAP3
0000400b: POP
0000400c: PUSH2 0x4015
0000400f: DUP7
00004010: DUP7
00004011: PUSH2 0x4c33
00004014: JUMP
00004015: JUMPDEST
00004016: DUP2
00004017: MLOAD
00004018: PUSH0
00004019: SWAP1
0000401a: PUSH2 0x404d
0000401d: SWAP1
0000401e: PUSH1 0x01
00004020: PUSH1 0x01
00004022: PUSH1 0xa0
00004024: SHL
00004025: SUB
00004026: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00004047: AND
00004048: SWAP1
00004049: PUSH2 0x498c
0000404c: JUMP
0000404d: JUMPDEST
0000404e: SWAP1
0000404f: POP
00004050: DUP1
00004051: PUSH16 0xffffffffffffffffffffffffffffffff
00004062: AND
00004063: DUP11
00004064: PUSH16 0xffffffffffffffffffffffffffffffff
00004075: AND
00004076: EQ
00004077: PUSH2 0x40c8
0000407a: JUMPI
0000407b: PUSH1 0x40
0000407d: MLOAD
0000407e: PUSH32 0x6429cfd200000000000000000000000000000000000000000000000000000000
0000409f: DUP2
000040a0: MSTORE
000040a1: PUSH16 0xffffffffffffffffffffffffffffffff
000040b2: DUP1
000040b3: DUP13
000040b4: AND
000040b5: PUSH1 0x04
000040b7: DUP4
000040b8: ADD
000040b9: MSTORE
000040ba: DUP3
000040bb: AND
000040bc: PUSH1 0x24
000040be: DUP3
000040bf: ADD
000040c0: MSTORE
000040c1: PUSH1 0x44
000040c3: ADD
000040c4: PUSH2 0x170b
000040c7: JUMP
000040c8: JUMPDEST
000040c9: PUSH1 0x60
000040cb: DUP4
000040cc: DUP2
000040cd: ADD
000040ce: MLOAD
000040cf: PUSH1 0x14
000040d1: DUP10
000040d2: ADD
000040d3: SWAP9
000040d4: CALLDATALOAD
000040d5: DUP3
000040d6: SHR
000040d7: SWAP2
000040d8: SHR
000040d9: DUP2
000040da: EQ
000040db: PUSH2 0x4110
000040de: JUMPI
000040df: PUSH1 0x40
000040e1: MLOAD
000040e2: PUSH32 0xbecb195c00000000000000000000000000000000000000000000000000000000
00004103: DUP2
00004104: MSTORE
00004105: PUSH1 0x04
00004107: ADD
00004108: PUSH1 0x40
0000410a: MLOAD
0000410b: DUP1
0000410c: SWAP2
0000410d: SUB
0000410e: SWAP1
0000410f: REVERT
00004110: JUMPDEST
00004111: POP
00004112: POP
00004113: POP
00004114: PUSH4 0x01000000
00004119: SWAP1
0000411a: SWAP3
0000411b: ADD
0000411c: DUP1
0000411d: SLOAD
0000411e: SWAP1
0000411f: SWAP9
00004120: ADD
00004121: SWAP1
00004122: SWAP8
00004123: SSTORE
00004124: POP
00004125: SWAP1
00004126: SWAP7
00004127: POP
00004128: SWAP4
00004129: SWAP5
0000412a: POP
0000412b: POP
0000412c: POP
0000412d: POP
0000412e: POP
0000412f: SWAP7
00004130: POP
00004131: SWAP7
00004132: SWAP5
00004133: POP
00004134: POP
00004135: POP
00004136: POP
00004137: POP
00004138: JUMP
00004139: JUMPDEST
0000413a: PUSH32 0x134332412bcbe715e351e7e7112dfbae2988a371dbae6631e3f502199008e7a0
0000415b: PUSH32 0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4
0000417c: ADDRESS
0000417d: EQ
0000417e: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
0000419f: CHAINID
000041a0: EQ
000041a1: AND
000041a2: PUSH2 0x136b
000041a5: JUMPI
000041a6: POP
000041a7: PUSH1 0x40
000041a9: DUP1
000041aa: MLOAD
000041ab: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
000041cc: DUP2
000041cd: MSTORE
000041ce: PUSH32 0x5f0b52ce51fafd4028ebd56c0745e7be9457e917ae58eaec28e73e983bdd6e25
000041ef: PUSH1 0x20
000041f1: DUP3
000041f2: ADD
000041f3: MSTORE
000041f4: PUSH32 0x0984d5efd47d99151ae1be065a709e56c602102f24c1abc4008eb3f815a8d217
00004215: SWAP2
00004216: DUP2
00004217: ADD
00004218: SWAP2
00004219: SWAP1
0000421a: SWAP2
0000421b: MSTORE
0000421c: CHAINID
0000421d: PUSH1 0x60
0000421f: DUP3
00004220: ADD
00004221: MSTORE
00004222: ADDRESS
00004223: PUSH1 0x80
00004225: DUP3
00004226: ADD
00004227: MSTORE
00004228: PUSH1 0xa0
0000422a: SWAP1
0000422b: KECCAK256
0000422c: SWAP1
0000422d: JUMP
0000422e: JUMPDEST
0000422f: PUSH1 0x17
00004231: PUSH1 0x14
00004233: DUP4
00004234: ADD
00004235: CALLDATALOAD
00004236: PUSH1 0xe8
00004238: SHR
00004239: DUP1
0000423a: DUP5
0000423b: ADD
0000423c: DUP3
0000423d: ADD
0000423e: SWAP4
0000423f: PUSH0
00004240: SWAP3
00004241: DUP2
00004242: CALLDATALOAD
00004243: PUSH1 0x60
00004245: SHR
00004246: SWAP3
00004247: SWAP2
00004248: ADD
00004249: SWAP1
0000424a: PUSH2 0x4255
0000424d: DUP4
0000424e: DUP7
0000424f: DUP5
00004250: DUP5
00004251: PUSH2 0x4c6c
00004254: JUMP
00004255: JUMPDEST
00004256: PUSH2 0x428b
00004259: JUMPI
0000425a: PUSH1 0x40
0000425c: MLOAD
0000425d: PUSH32 0x8baa579f00000000000000000000000000000000000000000000000000000000
0000427e: DUP2
0000427f: MSTORE
00004280: PUSH1 0x04
00004282: ADD
00004283: PUSH1 0x40
00004285: MLOAD
00004286: DUP1
00004287: SWAP2
00004288: SUB
00004289: SWAP1
0000428a: REVERT
0000428b: JUMPDEST
0000428c: DUP6
0000428d: SWAP4
0000428e: POP
0000428f: POP
00004290: POP
00004291: JUMPDEST
00004292: SWAP3
00004293: POP
00004294: SWAP3
00004295: SWAP1
00004296: POP
00004297: JUMP
00004298: JUMPDEST
00004299: PUSH0
0000429a: DUP1
0000429b: PUSH1 0x40
0000429d: MLOAD
0000429e: DUP4
0000429f: DUP2
000042a0: MSTORE
000042a1: PUSH0
000042a2: PUSH1 0x20
000042a4: DUP3
000042a5: ADD
000042a6: MSTORE
000042a7: PUSH1 0x41
000042a9: DUP6
000042aa: PUSH1 0x3f
000042ac: DUP4
000042ad: ADD
000042ae: CALLDATACOPY
000042af: PUSH1 0x41
000042b1: DUP6
000042b2: ADD
000042b3: SWAP5
000042b4: POP
000042b5: PUSH1 0x20
000042b7: PUSH1 0x01
000042b9: PUSH1 0x80
000042bb: DUP4
000042bc: PUSH1 0x01
000042be: GAS
000042bf: STATICCALL
000042c0: MLOAD
000042c1: SWAP2
000042c2: POP
000042c3: POP
000042c4: RETURNDATASIZE
000042c5: PUSH2 0x42d5
000042c8: JUMPI
000042c9: PUSH4 0x8baa579f
000042ce: PUSH0
000042cf: MSTORE
000042d0: PUSH1 0x04
000042d2: PUSH1 0x1c
000042d4: REVERT
000042d5: JUMPDEST
000042d6: SWAP3
000042d7: SWAP4
000042d8: SWAP2
000042d9: POP
000042da: POP
000042db: JUMP
000042dc: JUMPDEST
000042dd: DUP1
000042de: PUSH1 0x14
000042e0: MSTORE
000042e1: DUP2
000042e2: PUSH0
000042e3: MSTORE
000042e4: PUSH1 0x34
000042e6: PUSH0
000042e7: KECCAK256
000042e8: DUP1
000042e9: TLOAD
000042ea: ISZERO
000042eb: PUSH2 0x42fb
000042ee: JUMPI
000042ef: PUSH4 0x8a2ef116
000042f4: PUSH0
000042f5: MSTORE
000042f6: PUSH1 0x04
000042f8: PUSH1 0x1c
000042fa: REVERT
000042fb: JUMPDEST
000042fc: PUSH1 0x01
000042fe: DUP2
000042ff: TSTORE
00004300: POP
00004301: POP
00004302: POP
00004303: JUMP
00004304: JUMPDEST
00004305: DUP2
00004306: PUSH2 0x4311
00004309: PUSH1 0x04
0000430b: DUP6
0000430c: DUP4
0000430d: PUSH2 0x3ca3
00004310: JUMP
00004311: JUMPDEST
00004312: DUP2
00004313: ISZERO
00004314: PUSH2 0x4358
00004317: JUMPI
00004318: PUSH1 0x01
0000431a: PUSH1 0x01
0000431c: PUSH1 0xa0
0000431e: SHL
0000431f: SUB
00004320: DUP1
00004321: DUP6
00004322: AND
00004323: PUSH0
00004324: SWAP1
00004325: DUP2
00004326: MSTORE
00004327: PUSH1 0x05
00004329: PUSH1 0x20
0000432b: SWAP1
0000432c: DUP2
0000432d: MSTORE
0000432e: PUSH1 0x40
00004330: DUP1
00004331: DUP4
00004332: KECCAK256
00004333: SWAP4
00004334: DUP10
00004335: AND
00004336: DUP4
00004337: MSTORE
00004338: SWAP3
00004339: SWAP1
0000433a: MSTORE
0000433b: SWAP1
0000433c: DUP2
0000433d: KECCAK256
0000433e: DUP1
0000433f: SLOAD
00004340: DUP4
00004341: SWAP3
00004342: SWAP1
00004343: PUSH2 0x434d
00004346: SWAP1
00004347: DUP5
00004348: SWAP1
00004349: PUSH2 0x5b0b
0000434c: JUMP
0000434d: JUMPDEST
0000434e: SWAP1
0000434f: SWAP2
00004350: SSTORE
00004351: POP
00004352: PUSH2 0x436d
00004355: SWAP1
00004356: POP
00004357: JUMP
00004358: JUMPDEST
00004359: PUSH2 0x436d
0000435c: PUSH1 0x01
0000435e: PUSH1 0x01
00004360: PUSH1 0xa0
00004362: SHL
00004363: SUB
00004364: DUP6
00004365: AND
00004366: DUP7
00004367: ADDRESS
00004368: DUP5
00004369: PUSH2 0x2938
0000436c: JUMP
0000436d: JUMPDEST
0000436e: POP
0000436f: POP
00004370: POP
00004371: POP
00004372: POP
00004373: JUMP
00004374: JUMPDEST
00004375: DUP2
00004376: PUSH2 0x4381
00004379: PUSH1 0x04
0000437b: DUP6
0000437c: DUP4
0000437d: PUSH2 0x3b49
00004380: JUMP
00004381: JUMPDEST
00004382: POP
00004383: DUP2
00004384: ISZERO
00004385: PUSH2 0x43be
00004388: JUMPI
00004389: PUSH1 0x01
0000438b: PUSH1 0x01
0000438d: PUSH1 0xa0
0000438f: SHL
00004390: SUB
00004391: DUP1
00004392: DUP6
00004393: AND
00004394: PUSH0
00004395: SWAP1
00004396: DUP2
00004397: MSTORE
00004398: PUSH1 0x05
0000439a: PUSH1 0x20
0000439c: SWAP1
0000439d: DUP2
0000439e: MSTORE
0000439f: PUSH1 0x40
000043a1: DUP1
000043a2: DUP4
000043a3: KECCAK256
000043a4: SWAP4
000043a5: DUP10
000043a6: AND
000043a7: DUP4
000043a8: MSTORE
000043a9: SWAP3
000043aa: SWAP1
000043ab: MSTORE
000043ac: SWAP1
000043ad: DUP2
000043ae: KECCAK256
000043af: DUP1
000043b0: SLOAD
000043b1: DUP4
000043b2: SWAP3
000043b3: SWAP1
000043b4: PUSH2 0x434d
000043b7: SWAP1
000043b8: DUP5
000043b9: SWAP1
000043ba: PUSH2 0x5875
000043bd: JUMP
000043be: JUMPDEST
000043bf: PUSH2 0x436d
000043c2: PUSH1 0x01
000043c4: PUSH1 0x01
000043c6: PUSH1 0xa0
000043c8: SHL
000043c9: SUB
000043ca: DUP6
000043cb: AND
000043cc: DUP7
000043cd: DUP4
000043ce: PUSH2 0x27e2
000043d1: JUMP
000043d2: JUMPDEST
000043d3: PUSH1 0x01
000043d5: DUP2
000043d6: ADD
000043d7: SWAP1
000043d8: PUSH0
000043d9: SWAP1
000043da: CALLDATALOAD
000043db: DUP2
000043dc: BYTE
000043dd: PUSH1 0x04
000043df: DUP4
000043e0: PUSH1 0x3c
000043e2: DUP7
000043e3: ADD
000043e4: CALLDATACOPY
000043e5: PUSH1 0x04
000043e7: SWAP3
000043e8: SWAP1
000043e9: SWAP3
000043ea: ADD
000043eb: SWAP2
000043ec: PUSH1 0x20
000043ee: DUP2
000043ef: AND
000043f0: ISZERO
000043f1: PUSH2 0x444b
000043f4: JUMPI
000043f5: PUSH1 0x10
000043f7: DUP2
000043f8: AND
000043f9: PUSH2 0x4422
000043fc: JUMPI
000043fd: PUSH32 0x6ee89dee573705c024a086e19a128ee0a5ee0547e3283adfa72fbe336a4c4b6c
0000441e: PUSH2 0x4444
00004421: JUMP
00004422: JUMPDEST
00004423: PUSH32 0x6be5f22bdcd037f6f35250c32e478fad62195ac2bbab1e2932f8c97af926b491
00004444: JUMPDEST
00004445: DUP5
00004446: MSTORE
00004447: PUSH2 0x449e
0000444a: JUMP
0000444b: JUMPDEST
0000444c: PUSH1 0x10
0000444e: DUP2
0000444f: AND
00004450: PUSH2 0x4479
00004453: JUMPI
00004454: PUSH32 0x022e170cdf338f45bc718f58d29bfafbf3956c2f9ea8d19ccc9b72e42dbbb7b0
00004475: PUSH2 0x449b
00004478: JUMP
00004479: JUMPDEST
0000447a: PUSH32 0xb0617b84f694c245e54fb8032ebdc9f56eb26ea2c1b65a46c58f50dbd516e286
0000449b: JUMPDEST
0000449c: DUP5
0000449d: MSTORE
0000449e: JUMPDEST
0000449f: PUSH1 0x01
000044a1: DUP2
000044a2: AND
000044a3: ISZERO
000044a4: ISZERO
000044a5: PUSH1 0xc0
000044a7: SWAP5
000044a8: SWAP1
000044a9: SWAP5
000044aa: ADD
000044ab: SWAP4
000044ac: SWAP1
000044ad: SWAP4
000044ae: MSTORE
000044af: POP
000044b0: SWAP2
000044b1: JUMP
000044b2: JUMPDEST
000044b3: PUSH1 0x05
000044b5: DUP2
000044b6: SWAP1
000044b7: SHL
000044b8: PUSH1 0x20
000044ba: DUP2
000044bb: XOR
000044bc: DUP4
000044bd: ADD
000044be: MLOAD
000044bf: SWAP1
000044c0: DUP4
000044c1: ADD
000044c2: DUP1
000044c3: MLOAD
000044c4: PUSH1 0x80
000044c6: SWAP1
000044c7: SWAP2
000044c8: ADD
000044c9: MLOAD
000044ca: PUSH1 0x60
000044cc: DUP6
000044cd: ADD
000044ce: MLOAD
000044cf: PUSH3 0x0f4240
000044d3: SWAP1
000044d4: DUP2
000044d5: SUB
000044d6: SWAP1
000044d7: PUSH2 0x44e0
000044da: DUP3
000044db: DUP5
000044dc: PUSH2 0x5b8d
000044df: JUMP
000044e0: JUMPDEST
000044e1: PUSH2 0x44ea
000044e4: SWAP2
000044e5: SWAP1
000044e6: PUSH2 0x5b1e
000044e9: JUMP
000044ea: JUMPDEST
000044eb: SWAP2
000044ec: POP
000044ed: POP
000044ee: SWAP3
000044ef: POP
000044f0: SWAP3
000044f1: POP
000044f2: SWAP3
000044f3: JUMP
000044f4: JUMPDEST
000044f5: PUSH0
000044f6: DUP1
000044f7: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
00004518: DUP4
00004519: PUSH2 0x45cc
0000451c: JUMPI
0000451d: DUP5
0000451e: CALLDATALOAD
0000451f: PUSH1 0xe8
00004521: SHR
00004522: PUSH1 0x03
00004524: DUP7
00004525: ADD
00004526: SWAP6
00004527: POP
00004528: PUSH1 0x40
0000452a: MLOAD
0000452b: PUSH1 0x14
0000452d: PUSH1 0x64
0000452f: SUB
00004530: DUP2
00004531: ADD
00004532: DUP3
00004533: DUP2
00004534: ADD
00004535: PUSH1 0x40
00004537: MSTORE
00004538: DUP3
00004539: DUP9
0000453a: DUP3
0000453b: CALLDATACOPY
0000453c: DUP3
0000453d: SWAP1
0000453e: KECCAK256
0000453f: PUSH1 0x50
00004541: DUP3
00004542: DUP2
00004543: ADD
00004544: MLOAD
00004545: PUSH32 0x7407905c00000000000000000000000000000000000000000000000000000000
00004566: DUP5
00004567: MSTORE
00004568: PUSH1 0x40
0000456a: PUSH1 0x24
0000456c: DUP6
0000456d: ADD
0000456e: DUP2
0000456f: SWAP1
00004570: MSTORE
00004571: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec
00004592: DUP7
00004593: ADD
00004594: PUSH1 0x44
00004596: DUP7
00004597: ADD
00004598: MSTORE
00004599: SWAP10
0000459a: DUP6
0000459b: ADD
0000459c: SWAP10
0000459d: PUSH1 0xc0
0000459f: SWAP5
000045a0: SWAP1
000045a1: SWAP5
000045a2: SHL
000045a3: PUSH24 0xffffffffffffffffffffffffffffffffffffffff00000000
000045bc: SWAP2
000045bd: SWAP1
000045be: SWAP5
000045bf: SHR
000045c0: AND
000045c1: SWAP4
000045c2: ADD
000045c3: SWAP3
000045c4: SWAP1
000045c5: SWAP3
000045c6: OR
000045c7: OR
000045c8: SWAP3
000045c9: POP
000045ca: SWAP1
000045cb: POP
000045cc: JUMPDEST
000045cd: DUP5
000045ce: SWAP3
000045cf: POP
000045d0: SWAP3
000045d1: POP
000045d2: SWAP3
000045d3: POP
000045d4: SWAP3
000045d5: JUMP
000045d6: JUMPDEST
000045d7: PUSH0
000045d8: PUSH1 0x10
000045da: DUP3
000045db: AND
000045dc: ISZERO
000045dd: PUSH2 0x4604
000045e0: JUMPI
000045e1: PUSH1 0x08
000045e3: DUP4
000045e4: PUSH2 0x0178
000045e7: DUP7
000045e8: ADD
000045e9: CALLDATACOPY
000045ea: PUSH1 0x08
000045ec: SWAP3
000045ed: SWAP1
000045ee: SWAP3
000045ef: ADD
000045f0: SWAP2
000045f1: PUSH1 0x05
000045f3: DUP4
000045f4: PUSH2 0x019b
000045f7: DUP7
000045f8: ADD
000045f9: CALLDATACOPY
000045fa: PUSH1 0x05
000045fc: DUP4
000045fd: ADD
000045fe: SWAP3
000045ff: POP
00004600: PUSH2 0x4616
00004603: JUMP
00004604: JUMPDEST
00004605: PUSH8 0xffffffffffffffff
0000460e: NUMBER
0000460f: AND
00004610: PUSH2 0x0160
00004613: DUP6
00004614: ADD
00004615: MSTORE
00004616: JUMPDEST
00004617: POP
00004618: SWAP1
00004619: SWAP3
0000461a: SWAP2
0000461b: POP
0000461c: POP
0000461d: JUMP
0000461e: JUMPDEST
0000461f: PUSH0
00004620: DUP1
00004621: DUP1
00004622: DUP1
00004623: PUSH1 0x20
00004625: DUP7
00004626: AND
00004627: ISZERO
00004628: PUSH2 0x46d0
0000462b: JUMPI
0000462c: POP
0000462d: DUP6
0000462e: CALLDATALOAD
0000462f: PUSH1 0x80
00004631: SWAP1
00004632: DUP2
00004633: SHR
00004634: PUSH1 0x40
00004636: DUP10
00004637: ADD
00004638: DUP2
00004639: SWAP1
0000463a: MSTORE
0000463b: PUSH1 0x10
0000463d: DUP9
0000463e: ADD
0000463f: CALLDATALOAD
00004640: DUP3
00004641: SHR
00004642: PUSH1 0x60
00004644: DUP11
00004645: ADD
00004646: DUP2
00004647: SWAP1
00004648: MSTORE
00004649: PUSH1 0x30
0000464b: DUP10
0000464c: ADD
0000464d: SWAP9
0000464e: PUSH1 0x20
00004650: ADD
00004651: CALLDATALOAD
00004652: SWAP1
00004653: SWAP3
00004654: SHR
00004655: SWAP2
00004656: DUP2
00004657: DUP4
00004658: LT
00004659: ISZERO
0000465a: PUSH2 0x468f
0000465d: JUMPI
0000465e: PUSH1 0x40
00004660: MLOAD
00004661: PUSH32 0xc4daf00300000000000000000000000000000000000000000000000000000000
00004682: DUP2
00004683: MSTORE
00004684: PUSH1 0x04
00004686: ADD
00004687: PUSH1 0x40
00004689: MLOAD
0000468a: DUP1
0000468b: SWAP2
0000468c: SUB
0000468d: SWAP1
0000468e: REVERT
0000468f: JUMPDEST
00004690: DUP1
00004691: DUP4
00004692: GT
00004693: ISZERO
00004694: PUSH2 0x46c9
00004697: JUMPI
00004698: PUSH1 0x40
0000469a: MLOAD
0000469b: PUSH32 0x4418233100000000000000000000000000000000000000000000000000000000
000046bc: DUP2
000046bd: MSTORE
000046be: PUSH1 0x04
000046c0: ADD
000046c1: PUSH1 0x40
000046c3: MLOAD
000046c4: DUP1
000046c5: SWAP2
000046c6: SUB
000046c7: SWAP1
000046c8: REVERT
000046c9: JUMPDEST
000046ca: POP
000046cb: POP
000046cc: PUSH2 0x46fb
000046cf: JUMP
000046d0: JUMPDEST
000046d1: POP
000046d2: PUSH1 0x10
000046d4: DUP7
000046d5: ADD
000046d6: SWAP6
000046d7: CALLDATALOAD
000046d8: PUSH1 0x80
000046da: SHR
000046db: PUSH1 0x40
000046dd: DUP7
000046de: AND
000046df: PUSH2 0x46e8
000046e2: JUMPI
000046e3: PUSH0
000046e4: PUSH2 0x46eb
000046e7: JUMP
000046e8: JUMPDEST
000046e9: PUSH1 0x01
000046eb: JUMPDEST
000046ec: PUSH1 0xff
000046ee: AND
000046ef: PUSH1 0x40
000046f1: DUP10
000046f2: ADD
000046f3: MSTORE
000046f4: PUSH1 0x60
000046f6: DUP9
000046f7: ADD
000046f8: DUP2
000046f9: SWAP1
000046fa: MSTORE
000046fb: JUMPDEST
000046fc: PUSH1 0x20
000046fe: DUP8
000046ff: ADD
00004700: SWAP7
00004701: PUSH1 0x10
00004703: DUP2
00004704: ADD
00004705: CALLDATALOAD
00004706: PUSH1 0x80
00004708: SWAP1
00004709: DUP2
0000470a: SHR
0000470b: SWAP2
0000470c: CALLDATALOAD
0000470d: SWAP1
0000470e: SHR
0000470f: DUP1
00004710: DUP3
00004711: GT
00004712: ISZERO
00004713: PUSH2 0x4748
00004716: JUMPI
00004717: PUSH1 0x40
00004719: MLOAD
0000471a: PUSH32 0x668fef1b00000000000000000000000000000000000000000000000000000000
0000473b: DUP2
0000473c: MSTORE
0000473d: PUSH1 0x04
0000473f: ADD
00004740: PUSH1 0x40
00004742: MLOAD
00004743: DUP1
00004744: SWAP2
00004745: SUB
00004746: SWAP1
00004747: REVERT
00004748: JUMPDEST
00004749: PUSH16 0xffffffffffffffffffffffffffffffff
0000475a: AND
0000475b: PUSH1 0x80
0000475d: DUP11
0000475e: ADD
0000475f: MSTORE
00004760: PUSH1 0x08
00004762: DUP8
00004763: AND
00004764: ISZERO
00004765: PUSH2 0x47c3
00004768: JUMPI
00004769: PUSH16 0xffffffffffffffffffffffffffffffff
0000477a: DUP2
0000477b: AND
0000477c: PUSH1 0x60
0000477e: DUP9
0000477f: AND
00004780: ISZERO
00004781: PUSH2 0x47a2
00004784: JUMPI
00004785: DUP3
00004786: SWAP5
00004787: POP
00004788: PUSH2 0x479b
0000478b: PUSH2 0x4794
0000478e: DUP7
0000478f: DUP4
00004790: PUSH2 0x4cb1
00004793: JUMP
00004794: JUMPDEST
00004795: DUP9
00004796: SWAP1
00004797: PUSH2 0x4cbc
0000479a: JUMP
0000479b: JUMPDEST
0000479c: SWAP4
0000479d: POP
0000479e: PUSH2 0x47bd
000047a1: JUMP
000047a2: JUMPDEST
000047a3: SWAP2
000047a4: SWAP3
000047a5: POP
000047a6: DUP3
000047a7: SWAP2
000047a8: PUSH2 0x47ba
000047ab: PUSH2 0x47b4
000047ae: DUP9
000047af: DUP6
000047b0: PUSH2 0x4cc7
000047b3: JUMP
000047b4: JUMPDEST
000047b5: DUP3
000047b6: PUSH2 0x4cd2
000047b9: JUMP
000047ba: JUMPDEST
000047bb: SWAP5
000047bc: POP
000047bd: JUMPDEST
000047be: POP
000047bf: PUSH2 0x481a
000047c2: JUMP
000047c3: JUMPDEST
000047c4: PUSH16 0xffffffffffffffffffffffffffffffff
000047d5: DUP2
000047d6: AND
000047d7: PUSH1 0x60
000047d9: DUP9
000047da: AND
000047db: ISZERO
000047dc: PUSH2 0x47fe
000047df: JUMPI
000047e0: SWAP2
000047e1: SWAP4
000047e2: POP
000047e3: DUP4
000047e4: SWAP2
000047e5: PUSH2 0x47f7
000047e8: PUSH2 0x47f1
000047eb: DUP9
000047ec: DUP6
000047ed: PUSH2 0x4cbc
000047f0: JUMP
000047f1: JUMPDEST
000047f2: DUP3
000047f3: PUSH2 0x4cb1
000047f6: JUMP
000047f7: JUMPDEST
000047f8: SWAP4
000047f9: POP
000047fa: PUSH2 0x4818
000047fd: JUMP
000047fe: JUMPDEST
000047ff: DUP3
00004800: SWAP4
00004801: POP
00004802: PUSH2 0x4815
00004805: PUSH2 0x480e
00004808: DUP6
00004809: DUP4
0000480a: PUSH2 0x4cd2
0000480d: JUMP
0000480e: JUMPDEST
0000480f: DUP9
00004810: SWAP1
00004811: PUSH2 0x4cc7
00004814: JUMP
00004815: JUMPDEST
00004816: SWAP5
00004817: POP
00004818: JUMPDEST
00004819: POP
0000481a: JUMPDEST
0000481b: POP
0000481c: SWAP6
0000481d: SWAP8
0000481e: SWAP2
0000481f: SWAP7
00004820: POP
00004821: SWAP5
00004822: POP
00004823: SWAP3
00004824: POP
00004825: POP
00004826: POP
00004827: JUMP
00004828: JUMPDEST
00004829: PUSH0
0000482a: DUP1
0000482b: PUSH1 0x10
0000482d: DUP4
0000482e: AND
0000482f: PUSH2 0x483a
00004832: JUMPI
00004833: PUSH2 0x0180
00004836: PUSH2 0x483e
00004839: JUMP
0000483a: JUMPDEST
0000483b: PUSH2 0x01a0
0000483e: JUMPDEST
0000483f: SWAP1
00004840: SWAP4
00004841: KECCAK256
00004842: SWAP4
00004843: SWAP3
00004844: POP
00004845: POP
00004846: POP
00004847: JUMP
00004848: JUMPDEST
00004849: DUP1
0000484a: TIMESTAMP
0000484b: GT
0000484c: ISZERO
0000484d: PUSH2 0x0515
00004850: JUMPI
00004851: PUSH1 0x40
00004853: MLOAD
00004854: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
00004875: DUP2
00004876: MSTORE
00004877: PUSH1 0x04
00004879: ADD
0000487a: PUSH1 0x40
0000487c: MLOAD
0000487d: DUP1
0000487e: SWAP2
0000487f: SUB
00004880: SWAP1
00004881: REVERT
00004882: JUMPDEST
00004883: DUP2
00004884: ISZERO
00004885: PUSH2 0x1ea6
00004888: JUMPI
00004889: PUSH4 0xffffffff
0000488e: DUP3
0000488f: AND
00004890: DUP3
00004891: PUSH1 0xc0
00004893: SHR
00004894: DUP3
00004895: PUSH1 0x04
00004897: DUP3
00004898: ADD
00004899: MSTORE
0000489a: DUP4
0000489b: PUSH1 0x20
0000489d: SHR
0000489e: PUSH1 0x20
000048a0: PUSH0
000048a1: DUP5
000048a2: DUP5
000048a3: PUSH0
000048a4: DUP6
000048a5: GAS
000048a6: CALL
000048a7: SWAP3
000048a8: POP
000048a9: POP
000048aa: POP
000048ab: PUSH4 0x24a2e44b
000048b0: PUSH0
000048b1: MLOAD
000048b2: EQ
000048b3: PUSH1 0x1f
000048b5: RETURNDATASIZE
000048b6: GT
000048b7: AND
000048b8: DUP2
000048b9: AND
000048ba: PUSH2 0x0506
000048bd: JUMPI
000048be: PUSH4 0xf959fdae
000048c3: PUSH0
000048c4: MSTORE
000048c5: PUSH1 0x04
000048c7: PUSH1 0x1c
000048c9: REVERT
000048ca: JUMPDEST
000048cb: DUP1
000048cc: DUP3
000048cd: SUB
000048ce: DUP3
000048cf: DUP2
000048d0: SGT
000048d1: ISZERO
000048d2: PUSH2 0x221c
000048d5: JUMPI
000048d6: PUSH4 0xc9654ed4
000048db: PUSH0
000048dc: MSTORE
000048dd: PUSH1 0x04
000048df: PUSH1 0x1c
000048e1: REVERT
000048e2: JUMPDEST
000048e3: PUSH0
000048e4: DUP1
000048e5: DUP1
000048e6: DUP1
000048e7: PUSH2 0x48fc
000048ea: PUSH2 0x2845
000048ed: DUP7
000048ee: DUP9
000048ef: SMOD
000048f0: DUP4
000048f1: SGT
000048f2: DUP8
000048f3: DUP10
000048f4: SDIV
000048f5: SUB
000048f6: PUSH1 0x01
000048f8: PUSH2 0x5ba4
000048fb: JUMP
000048fc: JUMPDEST
000048fd: SWAP1
000048fe: SWAP3
000048ff: POP
00004900: SWAP1
00004901: POP
00004902: PUSH2 0x491f
00004905: DUP2
00004906: PUSH2 0x4919
00004909: PUSH1 0x01
0000490b: PUSH1 0x01
0000490d: PUSH1 0xa0
0000490f: SHL
00004910: SUB
00004911: DUP12
00004912: AND
00004913: DUP11
00004914: DUP7
00004915: PUSH2 0x33a7
00004918: JUMP
00004919: JUMPDEST
0000491a: SWAP1
0000491b: PUSH2 0x4cdd
0000491e: JUMP
0000491f: JUMPDEST
00004920: SWAP1
00004921: SWAP5
00004922: POP
00004923: SWAP1
00004924: POP
00004925: PUSH2 0x492f
00004928: DUP3
00004929: DUP3
0000492a: DUP8
0000492b: PUSH2 0x4d9f
0000492e: JUMP
0000492f: JUMPDEST
00004930: SWAP3
00004931: POP
00004932: POP
00004933: POP
00004934: SWAP5
00004935: POP
00004936: SWAP5
00004937: SWAP3
00004938: POP
00004939: POP
0000493a: POP
0000493b: JUMP
0000493c: JUMPDEST
0000493d: PUSH0
0000493e: DUP1
0000493f: DUP1
00004940: DUP1
00004941: PUSH2 0x4951
00004944: DUP6
00004945: DUP8
00004946: SMOD
00004947: DUP3
00004948: SGT
00004949: DUP7
0000494a: DUP9
0000494b: SDIV
0000494c: SUB
0000494d: PUSH2 0x2845
00004950: JUMP
00004951: JUMPDEST
00004952: SWAP1
00004953: SWAP3
00004954: POP
00004955: SWAP1
00004956: POP
00004957: PUSH2 0x491f
0000495a: DUP2
0000495b: PUSH2 0x496e
0000495e: PUSH1 0x01
00004960: PUSH1 0x01
00004962: PUSH1 0xa0
00004964: SHL
00004965: SUB
00004966: DUP12
00004967: AND
00004968: DUP11
00004969: DUP7
0000496a: PUSH2 0x33a7
0000496d: JUMP
0000496e: JUMPDEST
0000496f: SWAP1
00004970: PUSH2 0x4dc9
00004973: JUMP
00004974: JUMPDEST
00004975: DUP2
00004976: DUP2
00004977: ADD
00004978: DUP3
00004979: DUP2
0000497a: SLT
0000497b: ISZERO
0000497c: PUSH2 0x221c
0000497f: JUMPI
00004980: PUSH4 0xc9654ed4
00004985: PUSH0
00004986: MSTORE
00004987: PUSH1 0x04
00004989: PUSH1 0x1c
0000498b: REVERT
0000498c: JUMPDEST
0000498d: PUSH0
0000498e: DUP2
0000498f: DUP2
00004990: MSTORE
00004991: PUSH1 0x06
00004993: PUSH1 0x20
00004995: MSTORE
00004996: PUSH1 0x40
00004998: DUP2
00004999: KECCAK256
0000499a: PUSH0
0000499b: PUSH2 0x33d5
0000499e: PUSH1 0x01
000049a0: PUSH1 0x01
000049a2: PUSH1 0xa0
000049a4: SHL
000049a5: SUB
000049a6: DUP7
000049a7: AND
000049a8: PUSH1 0x03
000049aa: DUP5
000049ab: ADD
000049ac: PUSH2 0x3377
000049af: JUMP
000049b0: JUMPDEST
000049b1: PUSH0
000049b2: DUP1
000049b3: DUP1
000049b4: DUP1
000049b5: PUSH1 0x01
000049b7: DUP2
000049b8: DUP1
000049b9: DUP1
000049ba: JUMPDEST
000049bb: DUP4
000049bc: ISZERO
000049bd: PUSH2 0x4a7f
000049c0: JUMPI
000049c1: PUSH1 0x10
000049c3: DUP12
000049c4: ADD
000049c5: SWAP11
000049c6: CALLDATALOAD
000049c7: PUSH1 0x80
000049c9: SHR
000049ca: PUSH2 0x49d3
000049cd: DUP2
000049ce: DUP6
000049cf: PUSH2 0x5875
000049d2: JUMP
000049d3: JUMPDEST
000049d4: SWAP4
000049d5: POP
000049d6: PUSH16 0xffffffffffffffffffffffffffffffff
000049e7: DUP12
000049e8: AND
000049e9: PUSH1 0x80
000049eb: DUP3
000049ec: SWAP1
000049ed: SHL
000049ee: DIV
000049ef: DUP4
000049f0: ADD
000049f1: SWAP3
000049f2: POP
000049f3: DUP3
000049f4: DUP15
000049f5: DUP15
000049f6: PUSH3 0xffffff
000049fa: AND
000049fb: PUSH4 0x01000000
00004a00: DUP2
00004a01: LT
00004a02: PUSH2 0x4a0d
00004a05: JUMPI
00004a06: PUSH2 0x4a0d
00004a09: PUSH2 0x5791
00004a0c: JUMP
00004a0d: JUMPDEST
00004a0e: ADD
00004a0f: PUSH0
00004a10: DUP3
00004a11: DUP3
00004a12: SLOAD
00004a13: ADD
00004a14: SWAP3
00004a15: POP
00004a16: POP
00004a17: DUP2
00004a18: SWAP1
00004a19: SSTORE
00004a1a: POP
00004a1b: PUSH0
00004a1c: PUSH2 0x4a5c
00004a1f: DUP12
00004a20: PUSH0
00004a21: ADD
00004a22: MLOAD
00004a23: DUP16
00004a24: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00004a45: PUSH1 0x01
00004a47: PUSH1 0x01
00004a49: PUSH1 0xa0
00004a4b: SHL
00004a4c: SUB
00004a4d: AND
00004a4e: PUSH2 0x4e91
00004a51: SWAP1
00004a52: SWAP3
00004a53: SWAP2
00004a54: SWAP1
00004a55: PUSH4 0xffffffff
00004a5a: AND
00004a5b: JUMP
00004a5c: JUMPDEST
00004a5d: SWAP2
00004a5e: POP
00004a5f: POP
00004a60: PUSH2 0x4a69
00004a63: DUP13
00004a64: DUP3
00004a65: PUSH2 0x4ef6
00004a68: JUMP
00004a69: JUMPDEST
00004a6a: SWAP12
00004a6b: POP
00004a6c: DUP14
00004a6d: PUSH1 0x13
00004a6f: MSTORE
00004a70: DUP12
00004a71: PUSH1 0x10
00004a73: MSTORE
00004a74: DUP3
00004a75: PUSH0
00004a76: MSTORE
00004a77: PUSH1 0x33
00004a79: PUSH0
00004a7a: KECCAK256
00004a7b: SWAP3
00004a7c: POP
00004a7d: POP
00004a7e: POP
00004a7f: JUMPDEST
00004a80: DUP9
00004a81: MLOAD
00004a82: PUSH1 0x20
00004a84: DUP11
00004a85: ADD
00004a86: MLOAD
00004a87: PUSH2 0x4abc
00004a8a: SWAP2
00004a8b: PUSH1 0x01
00004a8d: PUSH1 0x01
00004a8f: PUSH1 0xa0
00004a91: SHL
00004a92: SUB
00004a93: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00004ab4: AND
00004ab5: SWAP2
00004ab6: DUP16
00004ab7: SWAP1
00004ab8: PUSH2 0x4f10
00004abb: JUMP
00004abc: JUMPDEST
00004abd: DUP1
00004abe: SWAP14
00004abf: POP
00004ac0: DUP2
00004ac1: SWAP6
00004ac2: POP
00004ac3: POP
00004ac4: POP
00004ac5: DUP9
00004ac6: PUSH1 0x40
00004ac8: ADD
00004ac9: MLOAD
00004aca: PUSH1 0x02
00004acc: SIGNEXTEND
00004acd: DUP13
00004ace: PUSH1 0x02
00004ad0: SIGNEXTEND
00004ad1: SGT
00004ad2: PUSH2 0x49ba
00004ad5: JUMPI
00004ad6: PUSH1 0x60
00004ad8: SWAP9
00004ad9: SWAP1
00004ada: SWAP9
00004adb: ADD
00004adc: SWAP8
00004add: SWAP1
00004ade: SWAP8
00004adf: MSTORE
00004ae0: SWAP8
00004ae1: SWAP11
00004ae2: SWAP8
00004ae3: SWAP10
00004ae4: POP
00004ae5: SWAP5
00004ae6: SWAP8
00004ae7: POP
00004ae8: SWAP5
00004ae9: SWAP6
00004aea: SWAP5
00004aeb: POP
00004aec: POP
00004aed: POP
00004aee: POP
00004aef: POP
00004af0: JUMP
00004af1: JUMPDEST
00004af2: PUSH0
00004af3: DUP1
00004af4: DUP1
00004af5: DUP1
00004af6: PUSH1 0x01
00004af8: DUP2
00004af9: DUP1
00004afa: DUP1
00004afb: JUMPDEST
00004afc: DUP4
00004afd: ISZERO
00004afe: PUSH2 0x4bc0
00004b01: JUMPI
00004b02: PUSH1 0x10
00004b04: DUP12
00004b05: ADD
00004b06: SWAP11
00004b07: CALLDATALOAD
00004b08: PUSH1 0x80
00004b0a: SHR
00004b0b: PUSH2 0x4b14
00004b0e: DUP2
00004b0f: DUP6
00004b10: PUSH2 0x5875
00004b13: JUMP
00004b14: JUMPDEST
00004b15: SWAP4
00004b16: POP
00004b17: PUSH16 0xffffffffffffffffffffffffffffffff
00004b28: DUP12
00004b29: AND
00004b2a: PUSH1 0x80
00004b2c: DUP3
00004b2d: SWAP1
00004b2e: SHL
00004b2f: DIV
00004b30: DUP4
00004b31: ADD
00004b32: SWAP3
00004b33: POP
00004b34: DUP3
00004b35: DUP15
00004b36: DUP15
00004b37: PUSH3 0xffffff
00004b3b: AND
00004b3c: PUSH4 0x01000000
00004b41: DUP2
00004b42: LT
00004b43: PUSH2 0x4b4e
00004b46: JUMPI
00004b47: PUSH2 0x4b4e
00004b4a: PUSH2 0x5791
00004b4d: JUMP
00004b4e: JUMPDEST
00004b4f: ADD
00004b50: PUSH0
00004b51: DUP3
00004b52: DUP3
00004b53: SLOAD
00004b54: ADD
00004b55: SWAP3
00004b56: POP
00004b57: POP
00004b58: DUP2
00004b59: SWAP1
00004b5a: SSTORE
00004b5b: POP
00004b5c: PUSH0
00004b5d: PUSH2 0x4b9d
00004b60: DUP12
00004b61: PUSH0
00004b62: ADD
00004b63: MLOAD
00004b64: DUP16
00004b65: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00004b86: PUSH1 0x01
00004b88: PUSH1 0x01
00004b8a: PUSH1 0xa0
00004b8c: SHL
00004b8d: SUB
00004b8e: AND
00004b8f: PUSH2 0x4e91
00004b92: SWAP1
00004b93: SWAP3
00004b94: SWAP2
00004b95: SWAP1
00004b96: PUSH4 0xffffffff
00004b9b: AND
00004b9c: JUMP
00004b9d: JUMPDEST
00004b9e: SWAP2
00004b9f: POP
00004ba0: POP
00004ba1: PUSH2 0x4baa
00004ba4: DUP13
00004ba5: DUP3
00004ba6: PUSH2 0x4f2a
00004ba9: JUMP
00004baa: JUMPDEST
00004bab: SWAP12
00004bac: POP
00004bad: DUP14
00004bae: PUSH1 0x13
00004bb0: MSTORE
00004bb1: DUP12
00004bb2: PUSH1 0x10
00004bb4: MSTORE
00004bb5: DUP3
00004bb6: PUSH0
00004bb7: MSTORE
00004bb8: PUSH1 0x33
00004bba: PUSH0
00004bbb: KECCAK256
00004bbc: SWAP3
00004bbd: POP
00004bbe: POP
00004bbf: POP
00004bc0: JUMPDEST
00004bc1: DUP9
00004bc2: MLOAD
00004bc3: PUSH1 0x20
00004bc5: DUP11
00004bc6: ADD
00004bc7: MLOAD
00004bc8: PUSH2 0x4bfd
00004bcb: SWAP2
00004bcc: PUSH1 0x01
00004bce: PUSH1 0x01
00004bd0: PUSH1 0xa0
00004bd2: SHL
00004bd3: SUB
00004bd4: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
00004bf5: AND
00004bf6: SWAP2
00004bf7: DUP16
00004bf8: SWAP1
00004bf9: PUSH2 0x48e2
00004bfc: JUMP
00004bfd: JUMPDEST
00004bfe: DUP1
00004bff: SWAP14
00004c00: POP
00004c01: DUP2
00004c02: SWAP6
00004c03: POP
00004c04: POP
00004c05: POP
00004c06: DUP9
00004c07: PUSH1 0x40
00004c09: ADD
00004c0a: MLOAD
00004c0b: PUSH1 0x02
00004c0d: SIGNEXTEND
00004c0e: DUP13
00004c0f: PUSH1 0x02
00004c11: SIGNEXTEND
00004c12: SGT
00004c13: ISZERO
00004c14: PUSH2 0x4afb
00004c17: JUMPI
00004c18: PUSH1 0x60
00004c1a: SWAP9
00004c1b: SWAP1
00004c1c: SWAP9
00004c1d: ADD
00004c1e: SWAP8
00004c1f: SWAP1
00004c20: SWAP8
00004c21: MSTORE
00004c22: SWAP8
00004c23: SWAP11
00004c24: SWAP8
00004c25: SWAP10
00004c26: POP
00004c27: SWAP5
00004c28: SWAP8
00004c29: POP
00004c2a: SWAP5
00004c2b: SWAP6
00004c2c: SWAP5
00004c2d: POP
00004c2e: POP
00004c2f: POP
00004c30: POP
00004c31: POP
00004c32: JUMP
00004c33: JUMPDEST
00004c34: DUP1
00004c35: DUP3
00004c36: EQ
00004c37: PUSH2 0x1ea6
00004c3a: JUMPI
00004c3b: PUSH1 0x40
00004c3d: MLOAD
00004c3e: PUSH32 0x01842f8c00000000000000000000000000000000000000000000000000000000
00004c5f: DUP2
00004c60: MSTORE
00004c61: PUSH1 0x04
00004c63: ADD
00004c64: PUSH1 0x40
00004c66: MLOAD
00004c67: DUP1
00004c68: SWAP2
00004c69: SUB
00004c6a: SWAP1
00004c6b: REVERT
00004c6c: JUMPDEST
00004c6d: PUSH0
00004c6e: PUSH1 0x40
00004c70: MLOAD
00004c71: PUSH4 0x1626ba7e
00004c76: PUSH1 0xe0
00004c78: SHL
00004c79: DUP1
00004c7a: DUP3
00004c7b: MSTORE
00004c7c: DUP6
00004c7d: PUSH1 0x04
00004c7f: DUP4
00004c80: ADD
00004c81: MSTORE
00004c82: PUSH1 0x24
00004c84: DUP3
00004c85: ADD
00004c86: PUSH1 0x40
00004c88: DUP2
00004c89: MSTORE
00004c8a: DUP5
00004c8b: PUSH1 0x44
00004c8d: DUP5
00004c8e: ADD
00004c8f: MSTORE
00004c90: DUP5
00004c91: DUP7
00004c92: PUSH1 0x64
00004c94: DUP6
00004c95: ADD
00004c96: CALLDATACOPY
00004c97: PUSH1 0x20
00004c99: DUP2
00004c9a: PUSH1 0x64
00004c9c: DUP8
00004c9d: ADD
00004c9e: DUP6
00004c9f: DUP12
00004ca0: GAS
00004ca1: STATICCALL
00004ca2: SWAP1
00004ca3: MLOAD
00004ca4: SWAP1
00004ca5: SWAP2
00004ca6: EQ
00004ca7: AND
00004ca8: SWAP7
00004ca9: SWAP6
00004caa: POP
00004cab: POP
00004cac: POP
00004cad: POP
00004cae: POP
00004caf: POP
00004cb0: JUMP
00004cb1: JUMPDEST
00004cb2: PUSH0
00004cb3: PUSH2 0x1729
00004cb6: DUP3
00004cb7: DUP5
00004cb8: PUSH2 0x5b0b
00004cbb: JUMP
00004cbc: JUMPDEST
00004cbd: PUSH0
00004cbe: PUSH2 0x1729
00004cc1: DUP3
00004cc2: DUP5
00004cc3: PUSH2 0x4f44
00004cc6: JUMP
00004cc7: JUMPDEST
00004cc8: PUSH0
00004cc9: PUSH2 0x1729
00004ccc: DUP3
00004ccd: DUP5
00004cce: PUSH2 0x4f66
00004cd1: JUMP
00004cd2: JUMPDEST
00004cd3: PUSH0
00004cd4: PUSH2 0x1729
00004cd7: DUP3
00004cd8: DUP5
00004cd9: PUSH2 0x5875
00004cdc: JUMP
00004cdd: JUMPDEST
00004cde: PUSH0
00004cdf: DUP1
00004ce0: PUSH0
00004ce1: PUSH2 0x4d78
00004ce4: DUP5
00004ce5: PUSH1 0xff
00004ce7: AND
00004ce8: DUP7
00004ce9: SWAP1
00004cea: SHR
00004ceb: PUSH31 0x1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405
00004d0b: DUP2
00004d0c: NOT
00004d0d: PUSH1 0x01
00004d0f: ADD
00004d10: SWAP1
00004d11: SWAP2
00004d12: AND
00004d13: PUSH2 0x01e0
00004d16: PUSH32 0x8040405543005266443200005020610674053026020000107506200176117077
00004d37: PUSH1 0xfc
00004d39: PUSH32 0xb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff
00004d5a: DUP5
00004d5b: MUL
00004d5c: PUSH1 0xf8
00004d5e: SHR
00004d5f: AND
00004d60: SHL
00004d61: PUSH1 0xf7
00004d63: SHR
00004d64: AND
00004d65: SWAP1
00004d66: DUP2
00004d67: SHR
00004d68: PUSH4 0xd76453e0
00004d6d: DIV
00004d6e: PUSH1 0x1f
00004d70: AND
00004d71: SWAP2
00004d72: SWAP1
00004d73: SWAP2
00004d74: BYTE
00004d75: OR
00004d76: SWAP1
00004d77: JUMP
00004d78: JUMPDEST
00004d79: SWAP1
00004d7a: POP
00004d7b: DUP1
00004d7c: PUSH2 0x0100
00004d7f: EQ
00004d80: ISZERO
00004d81: SWAP3
00004d82: POP
00004d83: DUP3
00004d84: PUSH2 0x4d8e
00004d87: JUMPI
00004d88: PUSH1 0xff
00004d8a: PUSH2 0x4d95
00004d8d: JUMP
00004d8e: JUMPDEST
00004d8f: DUP4
00004d90: PUSH1 0xff
00004d92: AND
00004d93: DUP2
00004d94: ADD
00004d95: JUMPDEST
00004d96: SWAP2
00004d97: POP
00004d98: POP
00004d99: SWAP3
00004d9a: POP
00004d9b: SWAP3
00004d9c: SWAP1
00004d9d: POP
00004d9e: JUMP
00004d9f: JUMPDEST
00004da0: PUSH0
00004da1: DUP2
00004da2: PUSH1 0xff
00004da4: DUP5
00004da5: AND
00004da6: PUSH2 0x4db5
00004da9: PUSH1 0x01
00004dab: DUP8
00004dac: SWAP1
00004dad: SIGNEXTEND
00004dae: PUSH2 0x0100
00004db1: PUSH2 0x5be5
00004db4: JUMP
00004db5: JUMPDEST
00004db6: PUSH2 0x4dbf
00004db9: SWAP2
00004dba: SWAP1
00004dbb: PUSH2 0x5ba4
00004dbe: JUMP
00004dbf: JUMPDEST
00004dc0: PUSH2 0x22aa
00004dc3: SWAP2
00004dc4: SWAP1
00004dc5: PUSH2 0x5be5
00004dc8: JUMP
00004dc9: JUMPDEST
00004dca: PUSH0
00004dcb: DUP1
00004dcc: PUSH0
00004dcd: DUP4
00004dce: PUSH1 0xff
00004dd0: SUB
00004dd1: SWAP1
00004dd2: POP
00004dd3: PUSH0
00004dd4: PUSH2 0x4e6a
00004dd7: DUP3
00004dd8: PUSH1 0xff
00004dda: AND
00004ddb: DUP8
00004ddc: SWAP1
00004ddd: SHL
00004dde: PUSH32 0x0706060506020504060203020504030106050205030304010505030400000000
00004dff: PUSH1 0x1f
00004e01: PUSH16 0x8421084210842108cc6318c6db6d54be
00004e12: DUP4
00004e13: ISZERO
00004e14: PUSH1 0x08
00004e16: SHL
00004e17: PUSH16 0xffffffffffffffffffffffffffffffff
00004e28: DUP6
00004e29: GT
00004e2a: PUSH1 0x07
00004e2c: SHL
00004e2d: OR
00004e2e: DUP5
00004e2f: DUP2
00004e30: SHR
00004e31: PUSH8 0xffffffffffffffff
00004e3a: LT
00004e3b: PUSH1 0x06
00004e3d: SHL
00004e3e: OR
00004e3f: DUP5
00004e40: DUP2
00004e41: SHR
00004e42: PUSH4 0xffffffff
00004e47: LT
00004e48: PUSH1 0x05
00004e4a: SHL
00004e4b: OR
00004e4c: DUP5
00004e4d: DUP2
00004e4e: SHR
00004e4f: PUSH2 0xffff
00004e52: LT
00004e53: PUSH1 0x04
00004e55: SHL
00004e56: OR
00004e57: DUP5
00004e58: DUP2
00004e59: SHR
00004e5a: PUSH1 0xff
00004e5c: LT
00004e5d: PUSH1 0x03
00004e5f: SHL
00004e60: OR
00004e61: SWAP4
00004e62: DUP5
00004e63: SHR
00004e64: SHR
00004e65: AND
00004e66: BYTE
00004e67: OR
00004e68: SWAP1
00004e69: JUMP
00004e6a: JUMPDEST
00004e6b: SWAP1
00004e6c: POP
00004e6d: DUP1
00004e6e: PUSH2 0x0100
00004e71: EQ
00004e72: ISZERO
00004e73: SWAP4
00004e74: POP
00004e75: DUP4
00004e76: PUSH2 0x4e7f
00004e79: JUMPI
00004e7a: PUSH0
00004e7b: PUSH2 0x4e86
00004e7e: JUMP
00004e7f: JUMPDEST
00004e80: DUP2
00004e81: PUSH1 0xff
00004e83: AND
00004e84: DUP2
00004e85: SUB
00004e86: JUMPDEST
00004e87: SWAP3
00004e88: POP
00004e89: POP
00004e8a: POP
00004e8b: SWAP3
00004e8c: POP
00004e8d: SWAP3
00004e8e: SWAP1
00004e8f: POP
00004e90: JUMP
00004e91: JUMPDEST
00004e92: PUSH0
00004e93: DUP1
00004e94: PUSH1 0x06
00004e96: PUSH1 0x20
00004e98: MSTORE
00004e99: DUP4
00004e9a: PUSH0
00004e9b: MSTORE
00004e9c: PUSH1 0x04
00004e9e: PUSH1 0x40
00004ea0: PUSH0
00004ea1: KECCAK256
00004ea2: ADD
00004ea3: PUSH1 0x20
00004ea5: MSTORE
00004ea6: DUP3
00004ea7: PUSH0
00004ea8: MSTORE
00004ea9: PUSH1 0x40
00004eab: PUSH0
00004eac: KECCAK256
00004ead: PUSH1 0x20
00004eaf: MSTORE
00004eb0: PUSH4 0x1e2eaeaf
00004eb5: PUSH0
00004eb6: MSTORE
00004eb7: PUSH1 0x20
00004eb9: PUSH0
00004eba: PUSH1 0x24
00004ebc: PUSH1 0x1c
00004ebe: DUP9
00004ebf: GAS
00004ec0: STATICCALL
00004ec1: PUSH2 0x4ed1
00004ec4: JUMPI
00004ec5: PUSH4 0x535cf94b
00004eca: PUSH0
00004ecb: MSTORE
00004ecc: PUSH1 0x04
00004ece: PUSH1 0x1c
00004ed0: REVERT
00004ed1: JUMPDEST
00004ed2: POP
00004ed3: POP
00004ed4: PUSH0
00004ed5: MLOAD
00004ed6: PUSH16 0xffffffffffffffffffffffffffffffff
00004ee7: DUP2
00004ee8: AND
00004ee9: SWAP5
00004eea: PUSH1 0x80
00004eec: SWAP2
00004eed: SWAP1
00004eee: SWAP2
00004eef: SAR
00004ef0: SWAP4
00004ef1: POP
00004ef2: SWAP2
00004ef3: POP
00004ef4: POP
00004ef5: JUMP
00004ef6: JUMPDEST
00004ef7: DUP1
00004ef8: DUP3
00004ef9: SUB
00004efa: PUSH1 0x80
00004efc: DUP2
00004efd: SWAP1
00004efe: SHR
00004eff: ISZERO
00004f00: PUSH2 0x221c
00004f03: JUMPI
00004f04: PUSH4 0xc9654ed4
00004f09: PUSH0
00004f0a: MSTORE
00004f0b: PUSH1 0x04
00004f0d: PUSH1 0x1c
00004f0f: REVERT
00004f10: JUMPDEST
00004f11: PUSH0
00004f12: DUP1
00004f13: DUP1
00004f14: DUP1
00004f15: PUSH2 0x4951
00004f18: PUSH2 0x2845
00004f1b: PUSH1 0x01
00004f1d: DUP8
00004f1e: DUP10
00004f1f: SMOD
00004f20: DUP5
00004f21: SGT
00004f22: DUP9
00004f23: DUP11
00004f24: SDIV
00004f25: SUB
00004f26: PUSH2 0x59bd
00004f29: JUMP
00004f2a: JUMPDEST
00004f2b: DUP2
00004f2c: DUP2
00004f2d: ADD
00004f2e: PUSH1 0x80
00004f30: DUP2
00004f31: SWAP1
00004f32: SHR
00004f33: ISZERO
00004f34: PUSH2 0x221c
00004f37: JUMPI
00004f38: PUSH4 0xc9654ed4
00004f3d: PUSH0
00004f3e: MSTORE
00004f3f: PUSH1 0x04
00004f41: PUSH1 0x1c
00004f43: REVERT
00004f44: JUMPDEST
00004f45: PUSH0
00004f46: PUSH12 0x033b2e3c9fd0803ce8000000
00004f53: PUSH2 0x4f5c
00004f56: DUP4
00004f57: DUP6
00004f58: PUSH2 0x5b8d
00004f5b: JUMP
00004f5c: JUMPDEST
00004f5d: PUSH2 0x1729
00004f60: SWAP2
00004f61: SWAP1
00004f62: PUSH2 0x5b1e
00004f65: JUMP
00004f66: JUMPDEST
00004f67: PUSH0
00004f68: PUSH2 0x1729
00004f6b: DUP4
00004f6c: PUSH12 0x033b2e3c9fd0803ce8000000
00004f79: DUP5
00004f7a: DUP3
00004f7b: DUP3
00004f7c: MUL
00004f7d: DUP4
00004f7e: ISZERO
00004f7f: DUP5
00004f80: DUP3
00004f81: DIV
00004f82: DUP5
00004f83: EQ
00004f84: OR
00004f85: DUP3
00004f86: MUL
00004f87: PUSH2 0x4f97
00004f8a: JUMPI
00004f8b: PUSH4 0xad251c27
00004f90: PUSH0
00004f91: MSTORE
00004f92: PUSH1 0x04
00004f94: PUSH1 0x1c
00004f96: REVERT
00004f97: JUMPDEST
00004f98: DUP2
00004f99: DUP2
00004f9a: MOD
00004f9b: ISZERO
00004f9c: ISZERO
00004f9d: SWAP2
00004f9e: SWAP1
00004f9f: DIV
00004fa0: ADD
00004fa1: SWAP3
00004fa2: SWAP2
00004fa3: POP
00004fa4: POP
00004fa5: JUMP
00004fa6: JUMPDEST
00004fa7: PUSH0
00004fa8: DUP1
00004fa9: DUP4
00004faa: PUSH1 0x1f
00004fac: DUP5
00004fad: ADD
00004fae: SLT
00004faf: PUSH2 0x4fb6
00004fb2: JUMPI
00004fb3: PUSH0
00004fb4: DUP1
00004fb5: REVERT
00004fb6: JUMPDEST
00004fb7: POP
00004fb8: DUP2
00004fb9: CALLDATALOAD
00004fba: PUSH8 0xffffffffffffffff
00004fc3: DUP2
00004fc4: GT
00004fc5: ISZERO
00004fc6: PUSH2 0x4fcd
00004fc9: JUMPI
00004fca: PUSH0
00004fcb: DUP1
00004fcc: REVERT
00004fcd: JUMPDEST
00004fce: PUSH1 0x20
00004fd0: DUP4
00004fd1: ADD
00004fd2: SWAP2
00004fd3: POP
00004fd4: DUP4
00004fd5: PUSH1 0x20
00004fd7: DUP3
00004fd8: DUP6
00004fd9: ADD
00004fda: ADD
00004fdb: GT
00004fdc: ISZERO
00004fdd: PUSH2 0x4291
00004fe0: JUMPI
00004fe1: PUSH0
00004fe2: DUP1
00004fe3: REVERT
00004fe4: JUMPDEST
00004fe5: PUSH0
00004fe6: DUP1
00004fe7: PUSH1 0x20
00004fe9: DUP4
00004fea: DUP6
00004feb: SUB
00004fec: SLT
00004fed: ISZERO
00004fee: PUSH2 0x4ff5
00004ff1: JUMPI
00004ff2: PUSH0
00004ff3: DUP1
00004ff4: REVERT
00004ff5: JUMPDEST
00004ff6: DUP3
00004ff7: CALLDATALOAD
00004ff8: PUSH8 0xffffffffffffffff
00005001: DUP2
00005002: GT
00005003: ISZERO
00005004: PUSH2 0x500b
00005007: JUMPI
00005008: PUSH0
00005009: DUP1
0000500a: REVERT
0000500b: JUMPDEST
0000500c: PUSH2 0x5017
0000500f: DUP6
00005010: DUP3
00005011: DUP7
00005012: ADD
00005013: PUSH2 0x4fa6
00005016: JUMP
00005017: JUMPDEST
00005018: SWAP1
00005019: SWAP7
0000501a: SWAP1
0000501b: SWAP6
0000501c: POP
0000501d: SWAP4
0000501e: POP
0000501f: POP
00005020: POP
00005021: POP
00005022: JUMP
00005023: JUMPDEST
00005024: PUSH0
00005025: PUSH1 0x20
00005027: DUP3
00005028: DUP5
00005029: SUB
0000502a: SLT
0000502b: ISZERO
0000502c: PUSH2 0x5033
0000502f: JUMPI
00005030: PUSH0
00005031: DUP1
00005032: REVERT
00005033: JUMPDEST
00005034: DUP2
00005035: CALLDATALOAD
00005036: PUSH8 0xffffffffffffffff
0000503f: DUP2
00005040: AND
00005041: DUP2
00005042: EQ
00005043: PUSH2 0x1729
00005046: JUMPI
00005047: PUSH0
00005048: DUP1
00005049: REVERT
0000504a: JUMPDEST
0000504b: PUSH1 0x01
0000504d: PUSH1 0x01
0000504f: PUSH1 0xa0
00005051: SHL
00005052: SUB
00005053: DUP2
00005054: AND
00005055: DUP2
00005056: EQ
00005057: PUSH2 0x0515
0000505a: JUMPI
0000505b: PUSH0
0000505c: DUP1
0000505d: REVERT
0000505e: JUMPDEST
0000505f: DUP1
00005060: CALLDATALOAD
00005061: PUSH3 0xffffff
00005065: DUP2
00005066: AND
00005067: DUP2
00005068: EQ
00005069: PUSH2 0x5070
0000506c: JUMPI
0000506d: PUSH0
0000506e: DUP1
0000506f: REVERT
00005070: JUMPDEST
00005071: SWAP2
00005072: SWAP1
00005073: POP
00005074: JUMP
00005075: JUMPDEST
00005076: PUSH0
00005077: DUP1
00005078: PUSH0
00005079: DUP1
0000507a: PUSH0
0000507b: DUP1
0000507c: PUSH1 0xc0
0000507e: DUP8
0000507f: DUP10
00005080: SUB
00005081: SLT
00005082: ISZERO
00005083: PUSH2 0x508a
00005086: JUMPI
00005087: PUSH0
00005088: DUP1
00005089: REVERT
0000508a: JUMPDEST
0000508b: DUP7
0000508c: CALLDATALOAD
0000508d: PUSH2 0x5095
00005090: DUP2
00005091: PUSH2 0x504a
00005094: JUMP
00005095: JUMPDEST
00005096: SWAP6
00005097: POP
00005098: PUSH1 0x20
0000509a: DUP8
0000509b: ADD
0000509c: CALLDATALOAD
0000509d: PUSH2 0x50a5
000050a0: DUP2
000050a1: PUSH2 0x504a
000050a4: JUMP
000050a5: JUMPDEST
000050a6: SWAP5
000050a7: POP
000050a8: PUSH1 0x40
000050aa: DUP8
000050ab: ADD
000050ac: CALLDATALOAD
000050ad: PUSH2 0xffff
000050b0: DUP2
000050b1: AND
000050b2: DUP2
000050b3: EQ
000050b4: PUSH2 0x50bb
000050b7: JUMPI
000050b8: PUSH0
000050b9: DUP1
000050ba: REVERT
000050bb: JUMPDEST
000050bc: SWAP4
000050bd: POP
000050be: PUSH2 0x50c9
000050c1: PUSH1 0x60
000050c3: DUP9
000050c4: ADD
000050c5: PUSH2 0x505e
000050c8: JUMP
000050c9: JUMPDEST
000050ca: SWAP3
000050cb: POP
000050cc: PUSH2 0x50d7
000050cf: PUSH1 0x80
000050d1: DUP9
000050d2: ADD
000050d3: PUSH2 0x505e
000050d6: JUMP
000050d7: JUMPDEST
000050d8: SWAP2
000050d9: POP
000050da: PUSH2 0x50e5
000050dd: PUSH1 0xa0
000050df: DUP9
000050e0: ADD
000050e1: PUSH2 0x505e
000050e4: JUMP
000050e5: JUMPDEST
000050e6: SWAP1
000050e7: POP
000050e8: SWAP3
000050e9: SWAP6
000050ea: POP
000050eb: SWAP3
000050ec: SWAP6
000050ed: POP
000050ee: SWAP3
000050ef: SWAP6
000050f0: JUMP
000050f1: JUMPDEST
000050f2: PUSH0
000050f3: DUP1
000050f4: PUSH0
000050f5: PUSH1 0x40
000050f7: DUP5
000050f8: DUP7
000050f9: SUB
000050fa: SLT
000050fb: ISZERO
000050fc: PUSH2 0x5103
000050ff: JUMPI
00005100: PUSH0
00005101: DUP1
00005102: REVERT
00005103: JUMPDEST
00005104: DUP4
00005105: CALLDATALOAD
00005106: PUSH2 0x510e
00005109: DUP2
0000510a: PUSH2 0x504a
0000510d: JUMP
0000510e: JUMPDEST
0000510f: SWAP3
00005110: POP
00005111: PUSH1 0x20
00005113: DUP5
00005114: ADD
00005115: CALLDATALOAD
00005116: PUSH8 0xffffffffffffffff
0000511f: DUP2
00005120: GT
00005121: ISZERO
00005122: PUSH2 0x5129
00005125: JUMPI
00005126: PUSH0
00005127: DUP1
00005128: REVERT
00005129: JUMPDEST
0000512a: PUSH2 0x5135
0000512d: DUP7
0000512e: DUP3
0000512f: DUP8
00005130: ADD
00005131: PUSH2 0x4fa6
00005134: JUMP
00005135: JUMPDEST
00005136: SWAP5
00005137: SWAP8
00005138: SWAP1
00005139: SWAP7
0000513a: POP
0000513b: SWAP4
0000513c: SWAP5
0000513d: POP
0000513e: POP
0000513f: POP
00005140: POP
00005141: JUMP
00005142: JUMPDEST
00005143: PUSH0
00005144: PUSH1 0xa0
00005146: DUP3
00005147: DUP5
00005148: SUB
00005149: SLT
0000514a: ISZERO
0000514b: PUSH2 0x5152
0000514e: JUMPI
0000514f: PUSH0
00005150: DUP1
00005151: REVERT
00005152: JUMPDEST
00005153: POP
00005154: SWAP2
00005155: SWAP1
00005156: POP
00005157: JUMP
00005158: JUMPDEST
00005159: PUSH0
0000515a: DUP1
0000515b: PUSH0
0000515c: DUP1
0000515d: PUSH0
0000515e: DUP6
0000515f: DUP8
00005160: SUB
00005161: PUSH2 0x0160
00005164: DUP2
00005165: SLT
00005166: ISZERO
00005167: PUSH2 0x516e
0000516a: JUMPI
0000516b: PUSH0
0000516c: DUP1
0000516d: REVERT
0000516e: JUMPDEST
0000516f: DUP7
00005170: CALLDATALOAD
00005171: PUSH2 0x5179
00005174: DUP2
00005175: PUSH2 0x504a
00005178: JUMP
00005179: JUMPDEST
0000517a: SWAP6
0000517b: POP
0000517c: PUSH2 0x5188
0000517f: DUP9
00005180: PUSH1 0x20
00005182: DUP10
00005183: ADD
00005184: PUSH2 0x5142
00005187: JUMP
00005188: JUMPDEST
00005189: SWAP5
0000518a: POP
0000518b: PUSH1 0x80
0000518d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40
000051ae: DUP3
000051af: ADD
000051b0: SLT
000051b1: ISZERO
000051b2: PUSH2 0x51b9
000051b5: JUMPI
000051b6: PUSH0
000051b7: DUP1
000051b8: REVERT
000051b9: JUMPDEST
000051ba: POP
000051bb: PUSH1 0xc0
000051bd: DUP7
000051be: ADD
000051bf: SWAP3
000051c0: POP
000051c1: PUSH2 0x0140
000051c4: DUP7
000051c5: ADD
000051c6: CALLDATALOAD
000051c7: PUSH8 0xffffffffffffffff
000051d0: DUP2
000051d1: GT
000051d2: ISZERO
000051d3: PUSH2 0x51da
000051d6: JUMPI
000051d7: PUSH0
000051d8: DUP1
000051d9: REVERT
000051da: JUMPDEST
000051db: PUSH2 0x51e6
000051de: DUP9
000051df: DUP3
000051e0: DUP10
000051e1: ADD
000051e2: PUSH2 0x4fa6
000051e5: JUMP
000051e6: JUMPDEST
000051e7: SWAP7
000051e8: SWAP10
000051e9: SWAP6
000051ea: SWAP9
000051eb: POP
000051ec: SWAP4
000051ed: SWAP7
000051ee: POP
000051ef: SWAP3
000051f0: SWAP5
000051f1: SWAP4
000051f2: SWAP3
000051f3: POP
000051f4: POP
000051f5: POP
000051f6: JUMP
000051f7: JUMPDEST
000051f8: PUSH0
000051f9: DUP1
000051fa: PUSH1 0x40
000051fc: DUP4
000051fd: DUP6
000051fe: SUB
000051ff: SLT
00005200: ISZERO
00005201: PUSH2 0x5208
00005204: JUMPI
00005205: PUSH0
00005206: DUP1
00005207: REVERT
00005208: JUMPDEST
00005209: DUP3
0000520a: CALLDATALOAD
0000520b: PUSH2 0x5213
0000520e: DUP2
0000520f: PUSH2 0x504a
00005212: JUMP
00005213: JUMPDEST
00005214: SWAP5
00005215: PUSH1 0x20
00005217: SWAP4
00005218: SWAP1
00005219: SWAP4
0000521a: ADD
0000521b: CALLDATALOAD
0000521c: SWAP4
0000521d: POP
0000521e: POP
0000521f: POP
00005220: JUMP
00005221: JUMPDEST
00005222: PUSH0
00005223: DUP1
00005224: PUSH0
00005225: PUSH1 0x40
00005227: DUP5
00005228: DUP7
00005229: SUB
0000522a: SLT
0000522b: ISZERO
0000522c: PUSH2 0x5233
0000522f: JUMPI
00005230: PUSH0
00005231: DUP1
00005232: REVERT
00005233: JUMPDEST
00005234: DUP4
00005235: CALLDATALOAD
00005236: PUSH2 0x523e
00005239: DUP2
0000523a: PUSH2 0x504a
0000523d: JUMP
0000523e: JUMPDEST
0000523f: SWAP3
00005240: POP
00005241: PUSH1 0x20
00005243: DUP5
00005244: ADD
00005245: CALLDATALOAD
00005246: PUSH8 0xffffffffffffffff
0000524f: DUP2
00005250: GT
00005251: ISZERO
00005252: PUSH2 0x5259
00005255: JUMPI
00005256: PUSH0
00005257: DUP1
00005258: REVERT
00005259: JUMPDEST
0000525a: DUP5
0000525b: ADD
0000525c: PUSH1 0x1f
0000525e: DUP2
0000525f: ADD
00005260: DUP7
00005261: SGT
00005262: PUSH2 0x5269
00005265: JUMPI
00005266: PUSH0
00005267: DUP1
00005268: REVERT
00005269: JUMPDEST
0000526a: DUP1
0000526b: CALLDATALOAD
0000526c: PUSH8 0xffffffffffffffff
00005275: DUP2
00005276: GT
00005277: ISZERO
00005278: PUSH2 0x527f
0000527b: JUMPI
0000527c: PUSH0
0000527d: DUP1
0000527e: REVERT
0000527f: JUMPDEST
00005280: DUP7
00005281: PUSH1 0x20
00005283: PUSH1 0xa0
00005285: DUP4
00005286: MUL
00005287: DUP5
00005288: ADD
00005289: ADD
0000528a: GT
0000528b: ISZERO
0000528c: PUSH2 0x5293
0000528f: JUMPI
00005290: PUSH0
00005291: DUP1
00005292: REVERT
00005293: JUMPDEST
00005294: SWAP4
00005295: SWAP7
00005296: PUSH1 0x20
00005298: SWAP2
00005299: SWAP1
0000529a: SWAP2
0000529b: ADD
0000529c: SWAP6
0000529d: POP
0000529e: SWAP3
0000529f: SWAP4
000052a0: POP
000052a1: POP
000052a2: POP
000052a3: JUMP
000052a4: JUMPDEST
000052a5: PUSH0
000052a6: PUSH1 0x60
000052a8: DUP3
000052a9: DUP5
000052aa: SUB
000052ab: SLT
000052ac: ISZERO
000052ad: PUSH2 0x5152
000052b0: JUMPI
000052b1: PUSH0
000052b2: DUP1
000052b3: REVERT
000052b4: JUMPDEST
000052b5: PUSH0
000052b6: DUP1
000052b7: PUSH0
000052b8: DUP1
000052b9: PUSH0
000052ba: PUSH2 0x0140
000052bd: DUP7
000052be: DUP9
000052bf: SUB
000052c0: SLT
000052c1: ISZERO
000052c2: PUSH2 0x52c9
000052c5: JUMPI
000052c6: PUSH0
000052c7: DUP1
000052c8: REVERT
000052c9: JUMPDEST
000052ca: DUP6
000052cb: CALLDATALOAD
000052cc: PUSH2 0x52d4
000052cf: DUP2
000052d0: PUSH2 0x504a
000052d3: JUMP
000052d4: JUMPDEST
000052d5: SWAP5
000052d6: POP
000052d7: PUSH2 0x52e3
000052da: DUP8
000052db: PUSH1 0x20
000052dd: DUP9
000052de: ADD
000052df: PUSH2 0x5142
000052e2: JUMP
000052e3: JUMPDEST
000052e4: SWAP4
000052e5: POP
000052e6: PUSH2 0x52f2
000052e9: DUP8
000052ea: PUSH1 0xc0
000052ec: DUP9
000052ed: ADD
000052ee: PUSH2 0x52a4
000052f1: JUMP
000052f2: JUMPDEST
000052f3: SWAP3
000052f4: POP
000052f5: PUSH2 0x0120
000052f8: DUP7
000052f9: ADD
000052fa: CALLDATALOAD
000052fb: PUSH8 0xffffffffffffffff
00005304: DUP2
00005305: GT
00005306: ISZERO
00005307: PUSH2 0x51da
0000530a: JUMPI
0000530b: PUSH0
0000530c: DUP1
0000530d: REVERT
0000530e: JUMPDEST
0000530f: PUSH0
00005310: PUSH1 0x20
00005312: DUP3
00005313: DUP5
00005314: SUB
00005315: SLT
00005316: ISZERO
00005317: PUSH2 0x531e
0000531a: JUMPI
0000531b: PUSH0
0000531c: DUP1
0000531d: REVERT
0000531e: JUMPDEST
0000531f: POP
00005320: CALLDATALOAD
00005321: SWAP2
00005322: SWAP1
00005323: POP
00005324: JUMP
00005325: JUMPDEST
00005326: PUSH0
00005327: DUP1
00005328: PUSH0
00005329: PUSH1 0x60
0000532b: DUP5
0000532c: DUP7
0000532d: SUB
0000532e: SLT
0000532f: ISZERO
00005330: PUSH2 0x5337
00005333: JUMPI
00005334: PUSH0
00005335: DUP1
00005336: REVERT
00005337: JUMPDEST
00005338: DUP4
00005339: CALLDATALOAD
0000533a: PUSH2 0x5342
0000533d: DUP2
0000533e: PUSH2 0x504a
00005341: JUMP
00005342: JUMPDEST
00005343: SWAP3
00005344: POP
00005345: PUSH1 0x20
00005347: DUP5
00005348: ADD
00005349: CALLDATALOAD
0000534a: PUSH2 0x5352
0000534d: DUP2
0000534e: PUSH2 0x504a
00005351: JUMP
00005352: JUMPDEST
00005353: SWAP3
00005354: SWAP6
00005355: SWAP3
00005356: SWAP5
00005357: POP
00005358: POP
00005359: POP
0000535a: PUSH1 0x40
0000535c: SWAP2
0000535d: SWAP1
0000535e: SWAP2
0000535f: ADD
00005360: CALLDATALOAD
00005361: SWAP1
00005362: JUMP
00005363: JUMPDEST
00005364: PUSH0
00005365: DUP2
00005366: MLOAD
00005367: DUP1
00005368: DUP5
00005369: MSTORE
0000536a: DUP1
0000536b: PUSH1 0x20
0000536d: DUP5
0000536e: ADD
0000536f: PUSH1 0x20
00005371: DUP7
00005372: ADD
00005373: MCOPY
00005374: PUSH0
00005375: PUSH1 0x20
00005377: DUP3
00005378: DUP7
00005379: ADD
0000537a: ADD
0000537b: MSTORE
0000537c: PUSH1 0x20
0000537e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000539f: PUSH1 0x1f
000053a1: DUP4
000053a2: ADD
000053a3: AND
000053a4: DUP6
000053a5: ADD
000053a6: ADD
000053a7: SWAP2
000053a8: POP
000053a9: POP
000053aa: SWAP3
000053ab: SWAP2
000053ac: POP
000053ad: POP
000053ae: JUMP
000053af: JUMPDEST
000053b0: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000
000053d1: DUP9
000053d2: AND
000053d3: DUP2
000053d4: MSTORE
000053d5: PUSH1 0xe0
000053d7: PUSH1 0x20
000053d9: DUP3
000053da: ADD
000053db: MSTORE
000053dc: PUSH0
000053dd: PUSH2 0x53e9
000053e0: PUSH1 0xe0
000053e2: DUP4
000053e3: ADD
000053e4: DUP10
000053e5: PUSH2 0x5363
000053e8: JUMP
000053e9: JUMPDEST
000053ea: DUP3
000053eb: DUP2
000053ec: SUB
000053ed: PUSH1 0x40
000053ef: DUP5
000053f0: ADD
000053f1: MSTORE
000053f2: PUSH2 0x53fb
000053f5: DUP2
000053f6: DUP10
000053f7: PUSH2 0x5363
000053fa: JUMP
000053fb: JUMPDEST
000053fc: PUSH1 0x60
000053fe: DUP5
000053ff: ADD
00005400: DUP9
00005401: SWAP1
00005402: MSTORE
00005403: PUSH1 0x01
00005405: PUSH1 0x01
00005407: PUSH1 0xa0
00005409: SHL
0000540a: SUB
0000540b: DUP8
0000540c: AND
0000540d: PUSH1 0x80
0000540f: DUP6
00005410: ADD
00005411: MSTORE
00005412: PUSH1 0xa0
00005414: DUP5
00005415: ADD
00005416: DUP7
00005417: SWAP1
00005418: MSTORE
00005419: DUP4
0000541a: DUP2
0000541b: SUB
0000541c: PUSH1 0xc0
0000541e: DUP6
0000541f: ADD
00005420: MSTORE
00005421: DUP5
00005422: MLOAD
00005423: DUP1
00005424: DUP3
00005425: MSTORE
00005426: PUSH1 0x20
00005428: DUP1
00005429: DUP8
0000542a: ADD
0000542b: SWAP4
0000542c: POP
0000542d: SWAP1
0000542e: SWAP2
0000542f: ADD
00005430: SWAP1
00005431: PUSH0
00005432: JUMPDEST
00005433: DUP2
00005434: DUP2
00005435: LT
00005436: ISZERO
00005437: PUSH2 0x5450
0000543a: JUMPI
0000543b: DUP4
0000543c: MLOAD
0000543d: DUP4
0000543e: MSTORE
0000543f: PUSH1 0x20
00005441: SWAP4
00005442: DUP5
00005443: ADD
00005444: SWAP4
00005445: SWAP1
00005446: SWAP3
00005447: ADD
00005448: SWAP2
00005449: PUSH1 0x01
0000544b: ADD
0000544c: PUSH2 0x5432
0000544f: JUMP
00005450: JUMPDEST
00005451: POP
00005452: SWAP1
00005453: SWAP12
00005454: SWAP11
00005455: POP
00005456: POP
00005457: POP
00005458: POP
00005459: POP
0000545a: POP
0000545b: POP
0000545c: POP
0000545d: POP
0000545e: POP
0000545f: POP
00005460: JUMP
00005461: JUMPDEST
00005462: PUSH0
00005463: DUP1
00005464: PUSH0
00005465: DUP1
00005466: PUSH1 0x80
00005468: DUP6
00005469: DUP8
0000546a: SUB
0000546b: SLT
0000546c: ISZERO
0000546d: PUSH2 0x5474
00005470: JUMPI
00005471: PUSH0
00005472: DUP1
00005473: REVERT
00005474: JUMPDEST
00005475: DUP5
00005476: CALLDATALOAD
00005477: PUSH2 0x547f
0000547a: DUP2
0000547b: PUSH2 0x504a
0000547e: JUMP
0000547f: JUMPDEST
00005480: SWAP4
00005481: POP
00005482: PUSH1 0x20
00005484: DUP6
00005485: ADD
00005486: CALLDATALOAD
00005487: PUSH2 0x548f
0000548a: DUP2
0000548b: PUSH2 0x504a
0000548e: JUMP
0000548f: JUMPDEST
00005490: SWAP3
00005491: POP
00005492: PUSH1 0x40
00005494: DUP6
00005495: ADD
00005496: CALLDATALOAD
00005497: SWAP2
00005498: POP
00005499: PUSH1 0x60
0000549b: DUP6
0000549c: ADD
0000549d: CALLDATALOAD
0000549e: PUSH2 0x54a6
000054a1: DUP2
000054a2: PUSH2 0x504a
000054a5: JUMP
000054a6: JUMPDEST
000054a7: SWAP4
000054a8: SWAP7
000054a9: SWAP3
000054aa: SWAP6
000054ab: POP
000054ac: SWAP1
000054ad: SWAP4
000054ae: POP
000054af: POP
000054b0: JUMP
000054b1: JUMPDEST
000054b2: PUSH1 0x20
000054b4: DUP2
000054b5: MSTORE
000054b6: PUSH0
000054b7: PUSH2 0x1729
000054ba: PUSH1 0x20
000054bc: DUP4
000054bd: ADD
000054be: DUP5
000054bf: PUSH2 0x5363
000054c2: JUMP
000054c3: JUMPDEST
000054c4: PUSH0
000054c5: PUSH1 0x20
000054c7: DUP3
000054c8: DUP5
000054c9: SUB
000054ca: SLT
000054cb: ISZERO
000054cc: PUSH2 0x54d3
000054cf: JUMPI
000054d0: PUSH0
000054d1: DUP1
000054d2: REVERT
000054d3: JUMPDEST
000054d4: DUP2
000054d5: CALLDATALOAD
000054d6: PUSH2 0x1729
000054d9: DUP2
000054da: PUSH2 0x504a
000054dd: JUMP
000054de: JUMPDEST
000054df: PUSH0
000054e0: DUP1
000054e1: PUSH0
000054e2: DUP1
000054e3: PUSH0
000054e4: DUP1
000054e5: PUSH2 0x0160
000054e8: DUP8
000054e9: DUP10
000054ea: SUB
000054eb: SLT
000054ec: ISZERO
000054ed: PUSH2 0x54f4
000054f0: JUMPI
000054f1: PUSH0
000054f2: DUP1
000054f3: REVERT
000054f4: JUMPDEST
000054f5: DUP7
000054f6: CALLDATALOAD
000054f7: PUSH2 0x54ff
000054fa: DUP2
000054fb: PUSH2 0x504a
000054fe: JUMP
000054ff: JUMPDEST
00005500: SWAP6
00005501: POP
00005502: PUSH2 0x550e
00005505: DUP9
00005506: PUSH1 0x20
00005508: DUP10
00005509: ADD
0000550a: PUSH2 0x5142
0000550d: JUMP
0000550e: JUMPDEST
0000550f: SWAP5
00005510: POP
00005511: PUSH2 0x551d
00005514: DUP9
00005515: PUSH1 0xc0
00005517: DUP10
00005518: ADD
00005519: PUSH2 0x52a4
0000551c: JUMP
0000551d: JUMPDEST
0000551e: SWAP4
0000551f: POP
00005520: PUSH2 0x0120
00005523: DUP8
00005524: ADD
00005525: CALLDATALOAD
00005526: SWAP3
00005527: POP
00005528: PUSH2 0x0140
0000552b: DUP8
0000552c: ADD
0000552d: CALLDATALOAD
0000552e: PUSH8 0xffffffffffffffff
00005537: DUP2
00005538: GT
00005539: ISZERO
0000553a: PUSH2 0x5541
0000553d: JUMPI
0000553e: PUSH0
0000553f: DUP1
00005540: REVERT
00005541: JUMPDEST
00005542: PUSH2 0x554d
00005545: DUP10
00005546: DUP3
00005547: DUP11
00005548: ADD
00005549: PUSH2 0x4fa6
0000554c: JUMP
0000554d: JUMPDEST
0000554e: SWAP8
0000554f: SWAP11
00005550: SWAP7
00005551: SWAP10
00005552: POP
00005553: SWAP5
00005554: SWAP8
00005555: POP
00005556: SWAP3
00005557: SWAP6
00005558: SWAP4
00005559: SWAP5
0000555a: SWAP3
0000555b: POP
0000555c: POP
0000555d: POP
0000555e: JUMP
0000555f: JUMPDEST
00005560: PUSH0
00005561: DUP1
00005562: PUSH1 0x20
00005564: DUP4
00005565: DUP6
00005566: SUB
00005567: SLT
00005568: ISZERO
00005569: PUSH2 0x5570
0000556c: JUMPI
0000556d: PUSH0
0000556e: DUP1
0000556f: REVERT
00005570: JUMPDEST
00005571: DUP3
00005572: CALLDATALOAD
00005573: PUSH8 0xffffffffffffffff
0000557c: DUP2
0000557d: GT
0000557e: ISZERO
0000557f: PUSH2 0x5586
00005582: JUMPI
00005583: PUSH0
00005584: DUP1
00005585: REVERT
00005586: JUMPDEST
00005587: DUP4
00005588: ADD
00005589: PUSH1 0x1f
0000558b: DUP2
0000558c: ADD
0000558d: DUP6
0000558e: SGT
0000558f: PUSH2 0x5596
00005592: JUMPI
00005593: PUSH0
00005594: DUP1
00005595: REVERT
00005596: JUMPDEST
00005597: DUP1
00005598: CALLDATALOAD
00005599: PUSH8 0xffffffffffffffff
000055a2: DUP2
000055a3: GT
000055a4: ISZERO
000055a5: PUSH2 0x55ac
000055a8: JUMPI
000055a9: PUSH0
000055aa: DUP1
000055ab: REVERT
000055ac: JUMPDEST
000055ad: DUP6
000055ae: PUSH1 0x20
000055b0: DUP3
000055b1: PUSH1 0x05
000055b3: SHL
000055b4: DUP5
000055b5: ADD
000055b6: ADD
000055b7: GT
000055b8: ISZERO
000055b9: PUSH2 0x55c0
000055bc: JUMPI
000055bd: PUSH0
000055be: DUP1
000055bf: REVERT
000055c0: JUMPDEST
000055c1: PUSH1 0x20
000055c3: SWAP2
000055c4: SWAP1
000055c5: SWAP2
000055c6: ADD
000055c7: SWAP6
000055c8: SWAP1
000055c9: SWAP5
000055ca: POP
000055cb: SWAP3
000055cc: POP
000055cd: POP
000055ce: POP
000055cf: JUMP
000055d0: JUMPDEST
000055d1: DUP1
000055d2: CALLDATALOAD
000055d3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
000055f4: DUP2
000055f5: AND
000055f6: DUP2
000055f7: EQ
000055f8: PUSH2 0x5070
000055fb: JUMPI
000055fc: PUSH0
000055fd: DUP1
000055fe: REVERT
000055ff: JUMPDEST
00005600: PUSH0
00005601: DUP1
00005602: PUSH0
00005603: PUSH1 0x60
00005605: DUP5
00005606: DUP7
00005607: SUB
00005608: SLT
00005609: ISZERO
0000560a: PUSH2 0x5611
0000560d: JUMPI
0000560e: PUSH0
0000560f: DUP1
00005610: REVERT
00005611: JUMPDEST
00005612: PUSH2 0x5342
00005615: DUP5
00005616: PUSH2 0x55d0
00005619: JUMP
0000561a: JUMPDEST
0000561b: DUP2
0000561c: DUP4
0000561d: MSTORE
0000561e: DUP2
0000561f: DUP2
00005620: PUSH1 0x20
00005622: DUP6
00005623: ADD
00005624: CALLDATACOPY
00005625: POP
00005626: PUSH0
00005627: PUSH1 0x20
00005629: DUP3
0000562a: DUP5
0000562b: ADD
0000562c: ADD
0000562d: MSTORE
0000562e: PUSH0
0000562f: PUSH1 0x20
00005631: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00005652: PUSH1 0x1f
00005654: DUP5
00005655: ADD
00005656: AND
00005657: DUP5
00005658: ADD
00005659: ADD
0000565a: SWAP1
0000565b: POP
0000565c: SWAP3
0000565d: SWAP2
0000565e: POP
0000565f: POP
00005660: JUMP
00005661: JUMPDEST
00005662: PUSH1 0x20
00005664: DUP2
00005665: MSTORE
00005666: PUSH0
00005667: PUSH2 0x22aa
0000566a: PUSH1 0x20
0000566c: DUP4
0000566d: ADD
0000566e: DUP5
0000566f: DUP7
00005670: PUSH2 0x561a
00005673: JUMP
00005674: JUMPDEST
00005675: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00005696: PUSH0
00005697: MSTORE
00005698: PUSH1 0x41
0000569a: PUSH1 0x04
0000569c: MSTORE
0000569d: PUSH1 0x24
0000569f: PUSH0
000056a0: REVERT
000056a1: JUMPDEST
000056a2: PUSH0
000056a3: PUSH1 0x20
000056a5: DUP3
000056a6: DUP5
000056a7: SUB
000056a8: SLT
000056a9: ISZERO
000056aa: PUSH2 0x56b1
000056ad: JUMPI
000056ae: PUSH0
000056af: DUP1
000056b0: REVERT
000056b1: JUMPDEST
000056b2: DUP2
000056b3: MLOAD
000056b4: PUSH8 0xffffffffffffffff
000056bd: DUP2
000056be: GT
000056bf: ISZERO
000056c0: PUSH2 0x56c7
000056c3: JUMPI
000056c4: PUSH0
000056c5: DUP1
000056c6: REVERT
000056c7: JUMPDEST
000056c8: DUP3
000056c9: ADD
000056ca: PUSH1 0x1f
000056cc: DUP2
000056cd: ADD
000056ce: DUP5
000056cf: SGT
000056d0: PUSH2 0x56d7
000056d3: JUMPI
000056d4: PUSH0
000056d5: DUP1
000056d6: REVERT
000056d7: JUMPDEST
000056d8: DUP1
000056d9: MLOAD
000056da: PUSH8 0xffffffffffffffff
000056e3: DUP2
000056e4: GT
000056e5: ISZERO
000056e6: PUSH2 0x56f1
000056e9: JUMPI
000056ea: PUSH2 0x56f1
000056ed: PUSH2 0x5674
000056f0: JUMP
000056f1: JUMPDEST
000056f2: PUSH1 0x40
000056f4: MLOAD
000056f5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00005716: PUSH1 0x3f
00005718: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00005739: PUSH1 0x1f
0000573b: DUP6
0000573c: ADD
0000573d: AND
0000573e: ADD
0000573f: AND
00005740: DUP2
00005741: ADD
00005742: DUP2
00005743: DUP2
00005744: LT
00005745: PUSH8 0xffffffffffffffff
0000574e: DUP3
0000574f: GT
00005750: OR
00005751: ISZERO
00005752: PUSH2 0x575d
00005755: JUMPI
00005756: PUSH2 0x575d
00005759: PUSH2 0x5674
0000575c: JUMP
0000575d: JUMPDEST
0000575e: PUSH1 0x40
00005760: MSTORE
00005761: DUP2
00005762: DUP2
00005763: MSTORE
00005764: DUP3
00005765: DUP3
00005766: ADD
00005767: PUSH1 0x20
00005769: ADD
0000576a: DUP7
0000576b: LT
0000576c: ISZERO
0000576d: PUSH2 0x5774
00005770: JUMPI
00005771: PUSH0
00005772: DUP1
00005773: REVERT
00005774: JUMPDEST
00005775: DUP2
00005776: PUSH1 0x20
00005778: DUP5
00005779: ADD
0000577a: PUSH1 0x20
0000577c: DUP4
0000577d: ADD
0000577e: MCOPY
0000577f: PUSH0
00005780: SWAP2
00005781: DUP2
00005782: ADD
00005783: PUSH1 0x20
00005785: ADD
00005786: SWAP2
00005787: SWAP1
00005788: SWAP2
00005789: MSTORE
0000578a: SWAP5
0000578b: SWAP4
0000578c: POP
0000578d: POP
0000578e: POP
0000578f: POP
00005790: JUMP
00005791: JUMPDEST
00005792: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000057b3: PUSH0
000057b4: MSTORE
000057b5: PUSH1 0x32
000057b7: PUSH1 0x04
000057b9: MSTORE
000057ba: PUSH1 0x24
000057bc: PUSH0
000057bd: REVERT
000057be: JUMPDEST
000057bf: DUP1
000057c0: PUSH1 0x02
000057c2: SIGNEXTEND
000057c3: DUP2
000057c4: EQ
000057c5: PUSH2 0x0515
000057c8: JUMPI
000057c9: PUSH0
000057ca: DUP1
000057cb: REVERT
000057cc: JUMPDEST
000057cd: PUSH0
000057ce: PUSH1 0x20
000057d0: DUP3
000057d1: DUP5
000057d2: SUB
000057d3: SLT
000057d4: ISZERO
000057d5: PUSH2 0x57dc
000057d8: JUMPI
000057d9: PUSH0
000057da: DUP1
000057db: REVERT
000057dc: JUMPDEST
000057dd: DUP2
000057de: CALLDATALOAD
000057df: PUSH2 0x1729
000057e2: DUP2
000057e3: PUSH2 0x57be
000057e6: JUMP
000057e7: JUMPDEST
000057e8: PUSH0
000057e9: PUSH1 0x20
000057eb: DUP3
000057ec: DUP5
000057ed: SUB
000057ee: SLT
000057ef: ISZERO
000057f0: PUSH2 0x57f7
000057f3: JUMPI
000057f4: PUSH0
000057f5: DUP1
000057f6: REVERT
000057f7: JUMPDEST
000057f8: POP
000057f9: MLOAD
000057fa: SWAP2
000057fb: SWAP1
000057fc: POP
000057fd: JUMP
000057fe: JUMPDEST
000057ff: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00005820: PUSH0
00005821: MSTORE
00005822: PUSH1 0x11
00005824: PUSH1 0x04
00005826: MSTORE
00005827: PUSH1 0x24
00005829: PUSH0
0000582a: REVERT
0000582b: JUMPDEST
0000582c: PUSH16 0xffffffffffffffffffffffffffffffff
0000583d: DUP2
0000583e: DUP2
0000583f: AND
00005840: DUP4
00005841: DUP3
00005842: AND
00005843: ADD
00005844: SWAP1
00005845: DUP2
00005846: GT
00005847: ISZERO
00005848: PUSH2 0x221c
0000584b: JUMPI
0000584c: PUSH2 0x221c
0000584f: PUSH2 0x57fe
00005852: JUMP
00005853: JUMPDEST
00005854: PUSH1 0x01
00005856: PUSH1 0x01
00005858: PUSH1 0xa0
0000585a: SHL
0000585b: SUB
0000585c: DUP5
0000585d: AND
0000585e: DUP2
0000585f: MSTORE
00005860: PUSH1 0x40
00005862: PUSH1 0x20
00005864: DUP3
00005865: ADD
00005866: MSTORE
00005867: PUSH0
00005868: PUSH2 0x33d5
0000586b: PUSH1 0x40
0000586d: DUP4
0000586e: ADD
0000586f: DUP5
00005870: DUP7
00005871: PUSH2 0x561a
00005874: JUMP
00005875: JUMPDEST
00005876: DUP1
00005877: DUP3
00005878: ADD
00005879: DUP1
0000587a: DUP3
0000587b: GT
0000587c: ISZERO
0000587d: PUSH2 0x221c
00005880: JUMPI
00005881: PUSH2 0x221c
00005884: PUSH2 0x57fe
00005887: JUMP
00005888: JUMPDEST
00005889: PUSH0
0000588a: PUSH1 0x20
0000588c: DUP3
0000588d: DUP5
0000588e: SUB
0000588f: SLT
00005890: ISZERO
00005891: PUSH2 0x5898
00005894: JUMPI
00005895: PUSH0
00005896: DUP1
00005897: REVERT
00005898: JUMPDEST
00005899: PUSH2 0x1729
0000589c: DUP3
0000589d: PUSH2 0x505e
000058a0: JUMP
000058a1: JUMPDEST
000058a2: PUSH0
000058a3: PUSH1 0x20
000058a5: DUP3
000058a6: DUP5
000058a7: SUB
000058a8: SLT
000058a9: ISZERO
000058aa: PUSH2 0x58b1
000058ad: JUMPI
000058ae: PUSH0
000058af: DUP1
000058b0: REVERT
000058b1: JUMPDEST
000058b2: PUSH2 0x1729
000058b5: DUP3
000058b6: PUSH2 0x55d0
000058b9: JUMP
000058ba: JUMPDEST
000058bb: PUSH0
000058bc: DUP1
000058bd: DUP6
000058be: DUP6
000058bf: GT
000058c0: ISZERO
000058c1: PUSH2 0x58c8
000058c4: JUMPI
000058c5: PUSH0
000058c6: DUP1
000058c7: REVERT
000058c8: JUMPDEST
000058c9: DUP4
000058ca: DUP7
000058cb: GT
000058cc: ISZERO
000058cd: PUSH2 0x58d4
000058d0: JUMPI
000058d1: PUSH0
000058d2: DUP1
000058d3: REVERT
000058d4: JUMPDEST
000058d5: POP
000058d6: POP
000058d7: DUP3
000058d8: ADD
000058d9: SWAP4
000058da: SWAP2
000058db: SWAP1
000058dc: SWAP3
000058dd: SUB
000058de: SWAP2
000058df: POP
000058e0: JUMP
000058e1: JUMPDEST
000058e2: DUP1
000058e3: CALLDATALOAD
000058e4: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00005905: DUP2
00005906: AND
00005907: SWAP1
00005908: PUSH1 0x14
0000590a: DUP5
0000590b: LT
0000590c: ISZERO
0000590d: PUSH2 0x5940
00005910: JUMPI
00005911: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00005932: DUP1
00005933: DUP6
00005934: PUSH1 0x14
00005936: SUB
00005937: PUSH1 0x03
00005939: SHL
0000593a: SHL
0000593b: DUP3
0000593c: AND
0000593d: AND
0000593e: SWAP2
0000593f: POP
00005940: JUMPDEST
00005941: POP
00005942: SWAP3
00005943: SWAP2
00005944: POP
00005945: POP
00005946: JUMP
00005947: JUMPDEST
00005948: PUSH0
00005949: PUSH1 0x20
0000594b: DUP3
0000594c: DUP5
0000594d: SUB
0000594e: SLT
0000594f: ISZERO
00005950: PUSH2 0x5957
00005953: JUMPI
00005954: PUSH0
00005955: DUP1
00005956: REVERT
00005957: JUMPDEST
00005958: DUP2
00005959: MLOAD
0000595a: PUSH2 0x1729
0000595d: DUP2
0000595e: PUSH2 0x57be
00005961: JUMP
00005962: JUMPDEST
00005963: PUSH0
00005964: PUSH1 0x20
00005966: DUP3
00005967: DUP5
00005968: SUB
00005969: SLT
0000596a: ISZERO
0000596b: PUSH2 0x5972
0000596e: JUMPI
0000596f: PUSH0
00005970: DUP1
00005971: REVERT
00005972: JUMPDEST
00005973: DUP2
00005974: CALLDATALOAD
00005975: DUP1
00005976: ISZERO
00005977: ISZERO
00005978: DUP2
00005979: EQ
0000597a: PUSH2 0x1729
0000597d: JUMPI
0000597e: PUSH0
0000597f: DUP1
00005980: REVERT
00005981: JUMPDEST
00005982: PUSH0
00005983: DUP2
00005984: PUSH1 0x0f
00005986: SIGNEXTEND
00005987: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000
000059a8: DUP2
000059a9: SUB
000059aa: PUSH2 0x59b5
000059ad: JUMPI
000059ae: PUSH2 0x59b5
000059b1: PUSH2 0x57fe
000059b4: JUMP
000059b5: JUMPDEST
000059b6: PUSH0
000059b7: SUB
000059b8: SWAP3
000059b9: SWAP2
000059ba: POP
000059bb: POP
000059bc: JUMP
000059bd: JUMPDEST
000059be: PUSH1 0x02
000059c0: DUP3
000059c1: DUP2
000059c2: SIGNEXTEND
000059c3: SWAP1
000059c4: DUP3
000059c5: SWAP1
000059c6: SIGNEXTEND
000059c7: SUB
000059c8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
000059e9: DUP2
000059ea: SLT
000059eb: PUSH3 0x7fffff
000059ef: DUP3
000059f0: SGT
000059f1: OR
000059f2: ISZERO
000059f3: PUSH2 0x221c
000059f6: JUMPI
000059f7: PUSH2 0x221c
000059fa: PUSH2 0x57fe
000059fd: JUMP
000059fe: JUMPDEST
000059ff: PUSH0
00005a00: DUP3
00005a01: PUSH1 0x0f
00005a03: SIGNEXTEND
00005a04: DUP3
00005a05: PUSH1 0x0f
00005a07: SIGNEXTEND
00005a08: MUL
00005a09: DUP1
00005a0a: PUSH1 0x0f
00005a0c: SIGNEXTEND
00005a0d: SWAP2
00005a0e: POP
00005a0f: DUP1
00005a10: DUP3
00005a11: EQ
00005a12: PUSH2 0x5940
00005a15: JUMPI
00005a16: PUSH2 0x5940
00005a19: PUSH2 0x57fe
00005a1c: JUMP
00005a1d: JUMPDEST
00005a1e: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00005a3f: PUSH0
00005a40: MSTORE
00005a41: PUSH1 0x12
00005a43: PUSH1 0x04
00005a45: MSTORE
00005a46: PUSH1 0x24
00005a48: PUSH0
00005a49: REVERT
00005a4a: JUMPDEST
00005a4b: PUSH0
00005a4c: DUP2
00005a4d: PUSH1 0x0f
00005a4f: SIGNEXTEND
00005a50: DUP4
00005a51: PUSH1 0x0f
00005a53: SIGNEXTEND
00005a54: DUP1
00005a55: PUSH2 0x5a60
00005a58: JUMPI
00005a59: PUSH2 0x5a60
00005a5c: PUSH2 0x5a1d
00005a5f: JUMP
00005a60: JUMPDEST
00005a61: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00005a82: DUP2
00005a83: EQ
00005a84: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000
00005aa5: DUP4
00005aa6: EQ
00005aa7: AND
00005aa8: ISZERO
00005aa9: PUSH2 0x5ab4
00005aac: JUMPI
00005aad: PUSH2 0x5ab4
00005ab0: PUSH2 0x57fe
00005ab3: JUMP
00005ab4: JUMPDEST
00005ab5: SWAP1
00005ab6: SDIV
00005ab7: SWAP4
00005ab8: SWAP3
00005ab9: POP
00005aba: POP
00005abb: POP
00005abc: JUMP
00005abd: JUMPDEST
00005abe: PUSH1 0x0f
00005ac0: DUP3
00005ac1: DUP2
00005ac2: SIGNEXTEND
00005ac3: SWAP1
00005ac4: DUP3
00005ac5: SWAP1
00005ac6: SIGNEXTEND
00005ac7: SUB
00005ac8: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000
00005ae9: DUP2
00005aea: SLT
00005aeb: PUSH16 0x7fffffffffffffffffffffffffffffff
00005afc: DUP3
00005afd: SGT
00005afe: OR
00005aff: ISZERO
00005b00: PUSH2 0x221c
00005b03: JUMPI
00005b04: PUSH2 0x221c
00005b07: PUSH2 0x57fe
00005b0a: JUMP
00005b0b: JUMPDEST
00005b0c: DUP2
00005b0d: DUP2
00005b0e: SUB
00005b0f: DUP2
00005b10: DUP2
00005b11: GT
00005b12: ISZERO
00005b13: PUSH2 0x221c
00005b16: JUMPI
00005b17: PUSH2 0x221c
00005b1a: PUSH2 0x57fe
00005b1d: JUMP
00005b1e: JUMPDEST
00005b1f: PUSH0
00005b20: DUP3
00005b21: PUSH2 0x5b2c
00005b24: JUMPI
00005b25: PUSH2 0x5b2c
00005b28: PUSH2 0x5a1d
00005b2b: JUMP
00005b2c: JUMPDEST
00005b2d: POP
00005b2e: DIV
00005b2f: SWAP1
00005b30: JUMP
00005b31: JUMPDEST
00005b32: PUSH0
00005b33: DUP2
00005b34: PUSH1 0x02
00005b36: SIGNEXTEND
00005b37: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
00005b58: DUP2
00005b59: SUB
00005b5a: PUSH2 0x5b65
00005b5d: JUMPI
00005b5e: PUSH2 0x5b65
00005b61: PUSH2 0x57fe
00005b64: JUMP
00005b65: JUMPDEST
00005b66: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00005b87: ADD
00005b88: SWAP3
00005b89: SWAP2
00005b8a: POP
00005b8b: POP
00005b8c: JUMP
00005b8d: JUMPDEST
00005b8e: DUP1
00005b8f: DUP3
00005b90: MUL
00005b91: DUP2
00005b92: ISZERO
00005b93: DUP3
00005b94: DUP3
00005b95: DIV
00005b96: DUP5
00005b97: EQ
00005b98: OR
00005b99: PUSH2 0x221c
00005b9c: JUMPI
00005b9d: PUSH2 0x221c
00005ba0: PUSH2 0x57fe
00005ba3: JUMP
00005ba4: JUMPDEST
00005ba5: PUSH1 0x02
00005ba7: DUP2
00005ba8: DUP2
00005ba9: SIGNEXTEND
00005baa: SWAP1
00005bab: DUP4
00005bac: SWAP1
00005bad: SIGNEXTEND
00005bae: ADD
00005baf: PUSH3 0x7fffff
00005bb3: DUP2
00005bb4: SGT
00005bb5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
00005bd6: DUP3
00005bd7: SLT
00005bd8: OR
00005bd9: ISZERO
00005bda: PUSH2 0x221c
00005bdd: JUMPI
00005bde: PUSH2 0x221c
00005be1: PUSH2 0x57fe
00005be4: JUMP
00005be5: JUMPDEST
00005be6: PUSH0
00005be7: DUP3
00005be8: PUSH1 0x02
00005bea: SIGNEXTEND
00005beb: DUP3
00005bec: PUSH1 0x02
00005bee: SIGNEXTEND
00005bef: MUL
00005bf0: DUP1
00005bf1: PUSH1 0x02
00005bf3: SIGNEXTEND
00005bf4: SWAP2
00005bf5: POP
00005bf6: DUP1
00005bf7: DUP3
00005bf8: EQ
00005bf9: PUSH2 0x5940
00005bfc: JUMPI
00005bfd: PUSH2 0x5940
00005c00: PUSH2 0x57fe
00005c03: JUMP
00005c04: INVALID
00005c05: LOG1
00005c06: PUSH5 0x736f6c6343
00005c0c: STOP
00005c0d: ADDMOD
00005c0e: BYTE
00005c0f: STOP
00005c10: EXP

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xbb3131cbe3eec7233e718c8ec7cb40faeb5ce9e824efe01a34e7e13afdeecea1
call_targets: 0x0000000aa232009084bd71a5797d089aa4edfad4
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xbb3131cbe3eec7233e718c8ec7cb40faeb5ce9e824efe01a34e7e13afdeecea1",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000aa232009084bd71a5797d089aa4edfad4"
    ],
    "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": "0xd9e17f98",
            "selector": "0xd9e17f98",
            "calldata_variants": [
                "0xd9e17f98",
                "0xd9e17f980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd4d4cf6",
            "selector": "0xdd4d4cf6",
            "calldata_variants": [
                "0xdd4d4cf6",
                "0xdd4d4cf60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fef3a3",
            "selector": "0xf3fef3a3",
            "calldata_variants": [
                "0xf3fef3a3",
                "0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb47b2fb1",
            "selector": "0xb47b2fb1",
            "calldata_variants": [
                "0xb47b2fb1",
                "0xb47b2fb10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd6cffd1e",
            "selector": "0xd6cffd1e",
            "calldata_variants": [
                "0xd6cffd1e",
                "0xd6cffd1e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd9caed12",
            "selector": "0xd9caed12",
            "calldata_variants": [
                "0xd9caed12",
                "0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8587f450",
            "selector": "0x8587f450",
            "calldata_variants": [
                "0x8587f450",
                "0x8587f4500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x91dd7346",
            "selector": "0x91dd7346",
            "calldata_variants": [
                "0x91dd7346",
                "0x91dd73460000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1202,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2741,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2942,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 15,
    "guards_detected": []
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xbb3131cbe3eec7233e718c8ec7cb40faeb5ce9e824efe01a34e7e13afdeecea1
call_targets: 0x0000000aa232009084bd71a5797d089aa4edfad4
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xbb3131cbe3eec7233e718c8ec7cb40faeb5ce9e824efe01a34e7e13afdeecea1",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000aa232009084bd71a5797d089aa4edfad4"
    ],
    "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": "0xd9e17f98",
            "selector": "0xd9e17f98",
            "calldata_variants": [
                "0xd9e17f98",
                "0xd9e17f980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd4d4cf6",
            "selector": "0xdd4d4cf6",
            "calldata_variants": [
                "0xdd4d4cf6",
                "0xdd4d4cf60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fef3a3",
            "selector": "0xf3fef3a3",
            "calldata_variants": [
                "0xf3fef3a3",
                "0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb47b2fb1",
            "selector": "0xb47b2fb1",
            "calldata_variants": [
                "0xb47b2fb1",
                "0xb47b2fb10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd6cffd1e",
            "selector": "0xd6cffd1e",
            "calldata_variants": [
                "0xd6cffd1e",
                "0xd6cffd1e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd9caed12",
            "selector": "0xd9caed12",
            "calldata_variants": [
                "0xd9caed12",
                "0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8587f450",
            "selector": "0x8587f450",
            "calldata_variants": [
                "0x8587f450",
                "0x8587f4500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x91dd7346",
            "selector": "0x91dd7346",
            "calldata_variants": [
                "0x91dd7346",
                "0x91dd73460000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1202,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2741,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2942,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 15,
    "guards_detected": [],
    "untrusted_call_count": 13
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0xf8158f2adc50eb1689667ab7527d4be8f65a6e7fd8be64ce216f5a80a1fb427a
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xf8158f2adc50eb1689667ab7527d4be8f65a6e7fd8be64ce216f5a80a1fb427a",
    "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": "0xd9e17f98",
            "selector": "0xd9e17f98",
            "calldata_variants": [
                "0xd9e17f98",
                "0xd9e17f980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd4d4cf6",
            "selector": "0xdd4d4cf6",
            "calldata_variants": [
                "0xdd4d4cf6",
                "0xdd4d4cf60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fef3a3",
            "selector": "0xf3fef3a3",
            "calldata_variants": [
                "0xf3fef3a3",
                "0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb47b2fb1",
            "selector": "0xb47b2fb1",
            "calldata_variants": [
                "0xb47b2fb1",
                "0xb47b2fb10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd6cffd1e",
            "selector": "0xd6cffd1e",
            "calldata_variants": [
                "0xd6cffd1e",
                "0xd6cffd1e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd9caed12",
            "selector": "0xd9caed12",
            "calldata_variants": [
                "0xd9caed12",
                "0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8587f450",
            "selector": "0x8587f450",
            "calldata_variants": [
                "0x8587f450",
                "0x8587f4500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x91dd7346",
            "selector": "0x91dd7346",
            "calldata_variants": [
                "0x91dd7346",
                "0x91dd73460000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
low auth codex ECDSA invalid signatures are not rejected (signer can become address(0)) 65 no
view
evidence_json
{
    "evidence": "`readAndCheckEcdsa` only checks `returndatasize()` and never verifies `from != address(0)`; invalid signatures still return data and are accepted.",
    "locations": [
        "contracts/src/libraries/SignatureLib.sol:18"
    ],
    "recommendation": "Explicitly reject `from == address(0)` and enforce strict ECDSA checks (valid `v`, low\u2011`s`) before accepting the signature.",
    "exploit_scenario": "An invalid ECDSA signature still returns 32 bytes from the ecrecover precompile, so `readAndCheckEcdsa` accepts it and returns `from = address(0)`. If any funds are ever credited to `address(0)` (e.g., a mistaken internal deposit) or a non\u2011standard token allows `transferFrom(address(0), ...)`, a malicious node could execute orders without a valid signature for that signer."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 22
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 13
}
info other codex Hook data length < 20 bytes can yield an uninitialized hook address and payload length underflow 60 no
view
evidence_json
{
    "evidence": "`hookDataLength` is not validated; a short length leaves dirty bytes in the hook address and causes `payloadLength := sub(hookDataLength, 20)` underflow.",
    "locations": [
        "contracts/src/types/HookBuffer.sol:40"
    ],
    "recommendation": "Enforce `hookDataLength >= 20` when a hook is present and revert otherwise; consider zeroing the hook memory region before reading to avoid dirty bytes.",
    "exploit_scenario": "If a signer (or buggy UI) produces an order with `hookDataLength < 20`, the hook address is partially taken from uninitialized memory and the payload length underflows. A malicious node could influence the resulting hook address or trigger a revert/OOG due to the huge calldata length, even though the signed hash does not commit to a full hook address."
}