019c0ea9-076e-7168-9503-51be12255f63
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 41592 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 41593 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 41594 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 41595 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 41596 | capability.graph | complete | 1 / 3 | 2 months ago |
| 41597 | detector.run | complete | 1 / 3 | 2 months ago |
| 41598 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42216 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42217 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-djzjglu7)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-djzjglu7)
Contract locking ether found:
Contract UChildERC20 (contracts/Contract.sol#1420-1509) has payable functions:
- NativeMetaTransaction.executeMetaTransaction(address,bytes,bytes32,bytes32,uint8) (contracts/Contract.sol#1309-1348)
But does not have a function to withdraw the ether
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#contracts-that-lock-ether
ERC20.constructor(string,string).name (contracts/Contract.sol#462-464) shadows:
- ERC20.name() (contracts/Contract.sol#471-474) (function)
ERC20.constructor(string,string).symbol (contracts/Contract.sol#464) shadows:
- ERC20.symbol() (contracts/Contract.sol#479-481) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
Address.isContract(address) (contracts/Contract.sol#288-301) uses assembly
- INLINE ASM (contracts/Contract.sol#299)
Address._functionCallWithValue(address,bytes,uint256,string) (contracts/Contract.sol#381-400) uses assembly
- INLINE ASM (contracts/Contract.sol#394-398)
EIP712Base.getChainId() (contracts/Contract.sol#1255-1260) uses assembly
- INLINE ASM (contracts/Contract.sol#1258-1259)
ContextMixin.msgSender() (contracts/Contract.sol#1393-1418) uses assembly
- INLINE ASM (contracts/Contract.sol#1403-1415)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
3 different versions of Solidity are used:
- Version constraint ^0.6.0 is used by:
-^0.6.0 (contracts/Contract.sol#3-5)
-^0.6.0 (contracts/Contract.sol#30)
-^0.6.0 (contracts/Contract.sol#105-108)
-^0.6.0 (contracts/Contract.sol#402)
-^0.6.0 (contracts/Contract.sol#727)
-^0.6.0 (contracts/Contract.sol#961)
- Version constraint ^0.6.2 is used by:
-^0.6.2 (contracts/Contract.sol#263-264)
- Version constraint 0.6.6 is used by:
-0.6.6 (contracts/Contract.sol#1172-1173)
-0.6.6 (contracts/Contract.sol#1186)
-0.6.6 (contracts/Contract.sol#1191)
-0.6.6 (contracts/Contract.sol#1196-1197)
-0.6.6 (contracts/Contract.sol#1283)
-0.6.6 (contracts/Contract.sol#1381-1384)
-0.6.6 (contracts/Contract.sol#1392-1393)
-0.6.6 (contracts/Contract.sol#1420)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used
AccessControl._setRoleAdmin(bytes32,bytes32) (contracts/Contract.sol#1152-1159) is never used and should be removed
Context._msgData() (contracts/Contract.sol#19-24) is never used and should be removed
Context._msgSender() (contracts/Contract.sol#17-19) is never used and should be removed
ERC20._setupDecimals(uint8) (contracts/Contract.sol#705-707) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
Version constraint ^0.6.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- NestedCalldataArrayAbiReencodingSizeValidation
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup
- MissingEscapingInFormatting
- ArraySliceDynamicallyEncodedBaseType
- ImplicitConstructorCallvalueCheck
- TupleAssignmentMultiStackSlotComponents
- MemoryArrayCreationOverflow
- YulOptimizerRedundantAssignmentBreakContinue.
It is used by:
- ^0.6.0 (contracts/Contract.sol#3-5)
- ^0.6.0 (contracts/Contract.sol#30)
- ^0.6.0 (contracts/Contract.sol#105-108)
- ^0.6.0 (contracts/Contract.sol#402)
- ^0.6.0 (contracts/Contract.sol#727)
- ^0.6.0 (contracts/Contract.sol#961)
Version constraint ^0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- NestedCalldataArrayAbiReencodingSizeValidation
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup
- MissingEscapingInFormatting
- ArraySliceDynamicallyEncodedBaseType
- ImplicitConstructorCallvalueCheck
- TupleAssignmentMultiStackSlotComponents
- MemoryArrayCreationOverflow.
It is used by:
- ^0.6.2 (contracts/Contract.sol#263-264)
Version constraint 0.6.6 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup
- MissingEscapingInFormatting
- ArraySliceDynamicallyEncodedBaseType
- ImplicitConstructorCallvalueCheck.
It is used by:
- 0.6.6 (contracts/Contract.sol#1172-1173)
- 0.6.6 (contracts/Contract.sol#1186)
- 0.6.6 (contracts/Contract.sol#1191)
- 0.6.6 (contracts/Contract.sol#1196-1197)
- 0.6.6 (contracts/Contract.sol#1283)
- 0.6.6 (contracts/Contract.sol#1381-1384)
- 0.6.6 (contracts/Contract.sol#1392-1393)
- 0.6.6 (contracts/Contract.sol#1420)
solc-0.6.6 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in Address.sendValue(address,uint256) (contracts/Contract.sol#319-324):
- (success,None) = recipient.call{value: amount}() (contracts/Contract.sol#322)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (contracts/Contract.sol#381-400):
- (success,returndata) = target.call{value: weiValue}(data) (contracts/Contract.sol#386-387)
Low level call in NativeMetaTransaction.executeMetaTransaction(address,bytes,bytes32,bytes32,uint8) (contracts/Contract.sol#1309-1348):
- (success,returnData) = address(this).call(abi.encodePacked(functionSignature,userAddress)) (contracts/Contract.sol#1341-1347)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Redundant expression "this (contracts/Contract.sol#22)" inContext (contracts/Contract.sol#15-24)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements
executeMetaTransaction(address,bytes,bytes32,bytes32,uint8) should be declared external:
- NativeMetaTransaction.executeMetaTransaction(address,bytes,bytes32,bytes32,uint8) (contracts/Contract.sol#1309-1348)
Moreover, the following function parameters should change its data location:
functionSignature location should be calldata
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external
. analyzed (15 contracts with 100 detectors), 21 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.6.6",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.6.6",
"install_stderr": null,
"install_stdout": "Version '0.6.6' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-djzjglu7 --allow-paths /tmp/slither-djzjglu7,/tmp/slither-djzjglu7/lib,/tmp/slither-djzjglu7/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 21,
"workspace_hash": "1063ed94baf125561785197d1199bc1f3057581a7cb11b8a61f6ca090554976e",
"duration_seconds": 0.9021847248077393,
"solc_version_requested": "0.6.6"
}
{"no_findings":false,"summary":"Found 2 issues: the upgradeable initializer is unprotected and can be front-run to seize admin/minting control on an uninitialized proxy, and meta‑tx signature verification permits malleable signatures.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected initializer allows takeover of uninitialized proxy","exploit_scenario":"If the proxy is deployed without calling `initialize` atomically, any account can call `initialize` first, setting themselves as `DEFAULT_ADMIN_ROLE` and choosing a malicious `childChainManager` for `DEPOSITOR_ROLE`. The attacker can then mint arbitrary tokens via `deposit` or otherwise control roles.","recommendation":"Ensure the proxy is initialized in the deployment transaction (e.g., proxy constructor `data`), or gate `initialize` with an access control check. Also consider calling `_disableInitializers()` in the implementation contract to prevent misuse.","evidence":"`initialize` is `external` and lacks any access control while setting admin and depositor roles.","locations":["contracts/Contract.sol:1500","contracts/Contract.sol:1512","contracts/Contract.sol:1513","contracts/Contract.sol:1514"]},{"severity":"low","category":"auth","title":"Meta‑transaction signature verification allows malleable signatures","exploit_scenario":"Because `verify` uses raw `ecrecover` without enforcing `sigS` in the lower half order or validating `sigV`, the same meta‑tx can be represented by multiple valid signatures. This can enable replay in off‑chain systems that rely on signature uniqueness or cause duplicated relayer submissions.","recommendation":"Use OpenZeppelin `ECDSA.recover` or add EIP‑2 checks: require `sigV` in {27,28} and `sigS` <= secp256k1n/2.","evidence":"`verify` uses `ecrecover` directly without validating `sigV`/`sigS`.","locations":["contracts/Contract.sol:1413","contracts/Contract.sol:1420","contracts/Contract.sol:1423"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-h6g2ffrj
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0ed4-fe03-7c70-b100-beb24088599d
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-h6g2ffrj succeeded in 7ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-h6g2ffrj succeeded in 13ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
// File: @openzeppelin/contracts/GSN/Context.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with GSN meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
exec
/bin/bash -lc "rg -n \"delegatecall|call\\{ value|call\\(|sendValue|external\" AUDIT_BUNDLE.txt" in /tmp/codex-h6g2ffrj succeeded in 19ms:
47: function totalSupply() external view returns (uint256);
52: function balanceOf(address account) external view returns (uint256);
61: function transfer(address recipient, uint256 amount) external returns (bool);
70: function allowance(address owner, address spender) external view returns (uint256);
86: function approve(address spender, uint256 amount) external returns (bool);
97: function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
292: * false is an externally-owned account (EOA) and not a contract.
297: * - an externally-owned account
321: * `transfer`. {sendValue} removes this limitation.
330: function sendValue(address payable recipient, uint256 amount) internal {
334: (bool success, ) = recipient.call{ value: amount }("");
400: (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
1009: * in the external API and be unique. The best way to achieve this is by
1239: function deposit(address user, bytes calldata depositData) external;
1391: (bool success, bytes memory returnData) = address(this).call(
1512: external
1544: external
1557: function withdraw(uint256 amount) external {
exec
/bin/bash -lc 'rg -n "contract UChildERC20|function initialize|executeMetaTransaction|EIP712Base|NativeMetaTransaction" contracts -g"*.sol"' in /tmp/codex-h6g2ffrj succeeded in 15ms:
contracts/Contract.sol:1250:// File: contracts/common/EIP712Base.sol
contracts/Contract.sol:1255:contract EIP712Base is Initializable {
contracts/Contract.sol:1326:// File: contracts/common/NativeMetaTransaction.sol
contracts/Contract.sol:1332:contract NativeMetaTransaction is EIP712Base {
contracts/Contract.sol:1357: function executeMetaTransaction(
contracts/Contract.sol:1420: require(signer != address(0), "NativeMetaTransaction: INVALID_SIGNER");
contracts/Contract.sol:1484:contract UChildERC20 is
contracts/Contract.sol:1488: NativeMetaTransaction,
contracts/Contract.sol:1500: function initialize(
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1480,1565p'" in /tmp/codex-h6g2ffrj succeeded in 6ms:
1480
1481
1482
1483
1484 contract UChildERC20 is
1485 ERC20,
1486 IChildToken,
1487 AccessControlMixin,
1488 NativeMetaTransaction,
1489 ChainConstants,
1490 ContextMixin
1491 {
1492 bytes32 public constant DEPOSITOR_ROLE = keccak256("DEPOSITOR_ROLE");
1493
1494 constructor() public ERC20("", "") {}
1495
1496 /**
1497 * @notice Initialize the contract after it has been proxified
1498 * @dev meant to be called once immediately after deployment
1499 */
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1330,1415p'" in /tmp/codex-h6g2ffrj succeeded in 7ms:
1330
1331
1332 contract NativeMetaTransaction is EIP712Base {
1333 using SafeMath for uint256;
1334 bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256(
1335 bytes(
1336 "MetaTransaction(uint256 nonce,address from,bytes functionSignature)"
1337 )
1338 );
1339 event MetaTransactionExecuted(
1340 address userAddress,
1341 address payable relayerAddress,
1342 bytes functionSignature
1343 );
1344 mapping(address => uint256) nonces;
1345
1346 /*
1347 * Meta transaction structure.
1348 * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas
1349 * He should call the desired function directly in that case.
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1413,1445p'" in /tmp/codex-h6g2ffrj succeeded in 6ms:
1413 function verify(
1414 address signer,
1415 MetaTransaction memory metaTx,
1416 bytes32 sigR,
1417 bytes32 sigS,
1418 uint8 sigV
1419 ) internal view returns (bool) {
1420 require(signer != address(0), "NativeMetaTransaction: INVALID_SIGNER");
1421 return
1422 signer ==
1423 ecrecover(
1424 toTypedMessageHash(hashMetaTransaction(metaTx)),
1425 sigV,
1426 sigR,
1427 sigS
1428 );
1429 }
1430 }
1431
1432 // File: contracts/ChainConstants.sol
codex
{"no_findings":false,"summary":"Found 2 issues: the upgradeable initializer is unprotected and can be front-run to seize admin/minting control on an uninitialized proxy, and meta‑tx signature verification permits malleable signatures.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected initializer allows takeover of uninitialized proxy","exploit_scenario":"If the proxy is deployed without calling `initialize` atomically, any account can call `initialize` first, setting themselves as `DEFAULT_ADMIN_ROLE` and choosing a malicious `childChainManager` for `DEPOSITOR_ROLE`. The attacker can then mint arbitrary tokens via `deposit` or otherwise control roles.","recommendation":"Ensure the proxy is initialized in the deployment transaction (e.g., proxy constructor `data`), or gate `initialize` with an access control check. Also consider calling `_disableInitializers()` in the implementation contract to prevent misuse.","evidence":"`initialize` is `external` and lacks any access control while setting admin and depositor roles.","locations":["contracts/Contract.sol:1500","contracts/Contract.sol:1512","contracts/Contract.sol:1513","contracts/Contract.sol:1514"]},{"severity":"low","category":"auth","title":"Meta‑transaction signature verification allows malleable signatures","exploit_scenario":"Because `verify` uses raw `ecrecover` without enforcing `sigS` in the lower half order or validating `sigV`, the same meta‑tx can be represented by multiple valid signatures. This can enable replay in off‑chain systems that rely on signature uniqueness or cause duplicated relayer submissions.","recommendation":"Use OpenZeppelin `ECDSA.recover` or add EIP‑2 checks: require `sigV` in {27,28} and `sigS` <= secp256k1n/2.","evidence":"`verify` uses `ecrecover` directly without validating `sigV`/`sigS`.","locations":["contracts/Contract.sol:1413","contracts/Contract.sol:1420","contracts/Contract.sol:1423"]}]}
tokens used
30,861
{
"codex": {
"ran_at": "2026-01-30T12:18:44.531366+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Found 2 issues: the upgradeable initializer is unprotected and can be front-run to seize admin/minting control on an uninitialized proxy, and meta\u2011tx signature verification permits malleable signatures.",
"raw_final": {
"summary": "Found 2 issues: the upgradeable initializer is unprotected and can be front-run to seize admin/minting control on an uninitialized proxy, and meta\u2011tx signature verification permits malleable signatures.",
"findings": [
{
"title": "Unprotected initializer allows takeover of uninitialized proxy",
"category": "upgradeability",
"evidence": "`initialize` is `external` and lacks any access control while setting admin and depositor roles.",
"severity": "high",
"locations": [
"contracts/Contract.sol:1500",
"contracts/Contract.sol:1512",
"contracts/Contract.sol:1513",
"contracts/Contract.sol:1514"
],
"recommendation": "Ensure the proxy is initialized in the deployment transaction (e.g., proxy constructor `data`), or gate `initialize` with an access control check. Also consider calling `_disableInitializers()` in the implementation contract to prevent misuse.",
"exploit_scenario": "If the proxy is deployed without calling `initialize` atomically, any account can call `initialize` first, setting themselves as `DEFAULT_ADMIN_ROLE` and choosing a malicious `childChainManager` for `DEPOSITOR_ROLE`. The attacker can then mint arbitrary tokens via `deposit` or otherwise control roles."
},
{
"title": "Meta\u2011transaction signature verification allows malleable signatures",
"category": "auth",
"evidence": "`verify` uses `ecrecover` directly without validating `sigV`/`sigS`.",
"severity": "low",
"locations": [
"contracts/Contract.sol:1413",
"contracts/Contract.sol:1420",
"contracts/Contract.sol:1423"
],
"recommendation": "Use OpenZeppelin `ECDSA.recover` or add EIP\u20112 checks: require `sigV` in {27,28} and `sigS` <= secp256k1n/2.",
"exploit_scenario": "Because `verify` uses raw `ecrecover` without enforcing `sigS` in the lower half order or validating `sigV`, the same meta\u2011tx can be represented by multiple valid signatures. This can enable replay in off\u2011chain systems that rely on signature uniqueness or cause duplicated relayer submissions."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x01e3 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x39509351 00000019: GT 0000001a: PUSH2 0x0102 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xa3b0b5a3 00000024: GT 00000025: PUSH2 0x0095 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xcf2c52cb 0000002f: GT 00000030: PUSH2 0x0064 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xcf2c52cb 0000003a: EQ 0000003b: PUSH2 0x0d3b 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd547741f 00000045: EQ 00000046: PUSH2 0x0de1 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xdd62ed3e 00000050: EQ 00000051: PUSH2 0x0e3c 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xde7ea79d 0000005b: EQ 0000005c: PUSH2 0x0ec1 0000005f: JUMPI 00000060: PUSH2 0x01e3 00000063: JUMP 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xa3b0b5a3 0000006b: EQ 0000006c: PUSH2 0x0bdb 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xa457c2d7 00000076: EQ 00000077: PUSH2 0x0c06 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xa9059cbb 00000081: EQ 00000082: PUSH2 0x0c79 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xca15c873 0000008c: EQ 0000008d: PUSH2 0x0cec 00000090: JUMPI 00000091: PUSH2 0x01e3 00000094: JUMP 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0x9010d07c 0000009c: GT 0000009d: PUSH2 0x00d1 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x9010d07c 000000a7: EQ 000000a8: PUSH2 0x0a28 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x91d14854 000000b2: EQ 000000b3: PUSH2 0x0aad 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x95d89b41 000000bd: EQ 000000be: PUSH2 0x0b20 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xa217fddf 000000c8: EQ 000000c9: PUSH2 0x0bb0 000000cc: JUMPI 000000cd: PUSH2 0x01e3 000000d0: JUMP 000000d1: JUMPDEST 000000d2: DUP1 000000d3: PUSH4 0x39509351 000000d8: EQ 000000d9: PUSH2 0x08fa 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x626381a0 000000e3: EQ 000000e4: PUSH2 0x096d 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x70a08231 000000ee: EQ 000000ef: PUSH2 0x0998 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0x8acfcaf7 000000f9: EQ 000000fa: PUSH2 0x09fd 000000fd: JUMPI 000000fe: PUSH2 0x01e3 00000101: JUMP 00000102: JUMPDEST 00000103: DUP1 00000104: PUSH4 0x23b872dd 00000109: GT 0000010a: PUSH2 0x017a 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x2f2ff15d 00000114: GT 00000115: PUSH2 0x0149 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x2f2ff15d 0000011f: EQ 00000120: PUSH2 0x07e8 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x313ce567 0000012a: EQ 0000012b: PUSH2 0x0843 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x3408e470 00000135: EQ 00000136: PUSH2 0x0874 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x36568abe 00000140: EQ 00000141: PUSH2 0x089f 00000144: JUMPI 00000145: PUSH2 0x01e3 00000148: JUMP 00000149: JUMPDEST 0000014a: DUP1 0000014b: PUSH4 0x23b872dd 00000150: EQ 00000151: PUSH2 0x0666 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0x248a9ca3 0000015b: EQ 0000015c: PUSH2 0x06f9 0000015f: JUMPI 00000160: DUP1 00000161: PUSH4 0x2d0335ab 00000166: EQ 00000167: PUSH2 0x0748 0000016a: JUMPI 0000016b: DUP1 0000016c: PUSH4 0x2e1a7d4d 00000171: EQ 00000172: PUSH2 0x07ad 00000175: JUMPI 00000176: PUSH2 0x01e3 00000179: JUMP 0000017a: JUMPDEST 0000017b: DUP1 0000017c: PUSH4 0x0dd7531a 00000181: GT 00000182: PUSH2 0x01b6 00000185: JUMPI 00000186: DUP1 00000187: PUSH4 0x0dd7531a 0000018c: EQ 0000018d: PUSH2 0x04f0 00000190: JUMPI 00000191: DUP1 00000192: PUSH4 0x0f7e5970 00000197: EQ 00000198: PUSH2 0x0580 0000019b: JUMPI 0000019c: DUP1 0000019d: PUSH4 0x18160ddd 000001a2: EQ 000001a3: PUSH2 0x0610 000001a6: JUMPI 000001a7: DUP1 000001a8: PUSH4 0x20379ee5 000001ad: EQ 000001ae: PUSH2 0x063b 000001b1: JUMPI 000001b2: PUSH2 0x01e3 000001b5: JUMP 000001b6: JUMPDEST 000001b7: DUP1 000001b8: PUSH4 0x06fdde03 000001bd: EQ 000001be: PUSH2 0x01e8 000001c1: JUMPI 000001c2: DUP1 000001c3: PUSH4 0x095ea7b3 000001c8: EQ 000001c9: PUSH2 0x0278 000001cc: JUMPI 000001cd: DUP1 000001ce: PUSH4 0x0b54817c 000001d3: EQ 000001d4: PUSH2 0x02eb 000001d7: JUMPI 000001d8: DUP1 000001d9: PUSH4 0x0c53c51c 000001de: EQ 000001df: PUSH2 0x037b 000001e2: JUMPI 000001e3: JUMPDEST 000001e4: PUSH1 0x00 000001e6: DUP1 000001e7: REVERT 000001e8: JUMPDEST 000001e9: CALLVALUE 000001ea: DUP1 000001eb: ISZERO 000001ec: PUSH2 0x01f4 000001ef: JUMPI 000001f0: PUSH1 0x00 000001f2: DUP1 000001f3: REVERT 000001f4: JUMPDEST 000001f5: POP 000001f6: PUSH2 0x01fd 000001f9: PUSH2 0x0fc9 000001fc: JUMP 000001fd: JUMPDEST 000001fe: PUSH1 0x40 00000200: MLOAD 00000201: DUP1 00000202: DUP1 00000203: PUSH1 0x20 00000205: ADD 00000206: DUP3 00000207: DUP2 00000208: SUB 00000209: DUP3 0000020a: MSTORE 0000020b: DUP4 0000020c: DUP2 0000020d: DUP2 0000020e: MLOAD 0000020f: DUP2 00000210: MSTORE 00000211: PUSH1 0x20 00000213: ADD 00000214: SWAP2 00000215: POP 00000216: DUP1 00000217: MLOAD 00000218: SWAP1 00000219: PUSH1 0x20 0000021b: ADD 0000021c: SWAP1 0000021d: DUP1 0000021e: DUP4 0000021f: DUP4 00000220: PUSH1 0x00 00000222: JUMPDEST 00000223: DUP4 00000224: DUP2 00000225: LT 00000226: ISZERO 00000227: PUSH2 0x023d 0000022a: JUMPI 0000022b: DUP1 0000022c: DUP3 0000022d: ADD 0000022e: MLOAD 0000022f: DUP2 00000230: DUP5 00000231: ADD 00000232: MSTORE 00000233: PUSH1 0x20 00000235: DUP2 00000236: ADD 00000237: SWAP1 00000238: POP 00000239: PUSH2 0x0222 0000023c: JUMP 0000023d: JUMPDEST 0000023e: POP 0000023f: POP 00000240: POP 00000241: POP 00000242: SWAP1 00000243: POP 00000244: SWAP1 00000245: DUP2 00000246: ADD 00000247: SWAP1 00000248: PUSH1 0x1f 0000024a: AND 0000024b: DUP1 0000024c: ISZERO 0000024d: PUSH2 0x026a 00000250: JUMPI 00000251: DUP1 00000252: DUP3 00000253: SUB 00000254: DUP1 00000255: MLOAD 00000256: PUSH1 0x01 00000258: DUP4 00000259: PUSH1 0x20 0000025b: SUB 0000025c: PUSH2 0x0100 0000025f: EXP 00000260: SUB 00000261: NOT 00000262: AND 00000263: DUP2 00000264: MSTORE 00000265: PUSH1 0x20 00000267: ADD 00000268: SWAP2 00000269: POP 0000026a: JUMPDEST 0000026b: POP 0000026c: SWAP3 0000026d: POP 0000026e: POP 0000026f: POP 00000270: PUSH1 0x40 00000272: MLOAD 00000273: DUP1 00000274: SWAP2 00000275: SUB 00000276: SWAP1 00000277: RETURN 00000278: JUMPDEST 00000279: CALLVALUE 0000027a: DUP1 0000027b: ISZERO 0000027c: PUSH2 0x0284 0000027f: JUMPI 00000280: PUSH1 0x00 00000282: DUP1 00000283: REVERT 00000284: JUMPDEST 00000285: POP 00000286: PUSH2 0x02d1 00000289: PUSH1 0x04 0000028b: DUP1 0000028c: CALLDATASIZE 0000028d: SUB 0000028e: PUSH1 0x40 00000290: DUP2 00000291: LT 00000292: ISZERO 00000293: PUSH2 0x029b 00000296: JUMPI 00000297: PUSH1 0x00 00000299: DUP1 0000029a: REVERT 0000029b: JUMPDEST 0000029c: DUP2 0000029d: ADD 0000029e: SWAP1 0000029f: DUP1 000002a0: DUP1 000002a1: CALLDATALOAD 000002a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002b7: AND 000002b8: SWAP1 000002b9: PUSH1 0x20 000002bb: ADD 000002bc: SWAP1 000002bd: SWAP3 000002be: SWAP2 000002bf: SWAP1 000002c0: DUP1 000002c1: CALLDATALOAD 000002c2: SWAP1 000002c3: PUSH1 0x20 000002c5: ADD 000002c6: SWAP1 000002c7: SWAP3 000002c8: SWAP2 000002c9: SWAP1 000002ca: POP 000002cb: POP 000002cc: POP 000002cd: PUSH2 0x106b 000002d0: JUMP 000002d1: JUMPDEST 000002d2: PUSH1 0x40 000002d4: MLOAD 000002d5: DUP1 000002d6: DUP3 000002d7: ISZERO 000002d8: ISZERO 000002d9: ISZERO 000002da: ISZERO 000002db: DUP2 000002dc: MSTORE 000002dd: PUSH1 0x20 000002df: ADD 000002e0: SWAP2 000002e1: POP 000002e2: POP 000002e3: PUSH1 0x40 000002e5: MLOAD 000002e6: DUP1 000002e7: SWAP2 000002e8: SUB 000002e9: SWAP1 000002ea: RETURN 000002eb: JUMPDEST 000002ec: CALLVALUE 000002ed: DUP1 000002ee: ISZERO 000002ef: PUSH2 0x02f7 000002f2: JUMPI 000002f3: PUSH1 0x00 000002f5: DUP1 000002f6: REVERT 000002f7: JUMPDEST 000002f8: POP 000002f9: PUSH2 0x0300 000002fc: PUSH2 0x1089 000002ff: JUMP 00000300: JUMPDEST 00000301: PUSH1 0x40 00000303: MLOAD 00000304: DUP1 00000305: DUP1 00000306: PUSH1 0x20 00000308: ADD 00000309: DUP3 0000030a: DUP2 0000030b: SUB 0000030c: DUP3 0000030d: MSTORE 0000030e: DUP4 0000030f: DUP2 00000310: DUP2 00000311: MLOAD 00000312: DUP2 00000313: MSTORE 00000314: PUSH1 0x20 00000316: ADD 00000317: SWAP2 00000318: POP 00000319: DUP1 0000031a: MLOAD 0000031b: SWAP1 0000031c: PUSH1 0x20 0000031e: ADD 0000031f: SWAP1 00000320: DUP1 00000321: DUP4 00000322: DUP4 00000323: PUSH1 0x00 00000325: JUMPDEST 00000326: DUP4 00000327: DUP2 00000328: LT 00000329: ISZERO 0000032a: PUSH2 0x0340 0000032d: JUMPI 0000032e: DUP1 0000032f: DUP3 00000330: ADD 00000331: MLOAD 00000332: DUP2 00000333: DUP5 00000334: ADD 00000335: MSTORE 00000336: PUSH1 0x20 00000338: DUP2 00000339: ADD 0000033a: SWAP1 0000033b: POP 0000033c: PUSH2 0x0325 0000033f: JUMP 00000340: JUMPDEST 00000341: POP 00000342: POP 00000343: POP 00000344: POP 00000345: SWAP1 00000346: POP 00000347: SWAP1 00000348: DUP2 00000349: ADD 0000034a: SWAP1 0000034b: PUSH1 0x1f 0000034d: AND 0000034e: DUP1 0000034f: ISZERO 00000350: PUSH2 0x036d 00000353: JUMPI 00000354: DUP1 00000355: DUP3 00000356: SUB 00000357: DUP1 00000358: MLOAD 00000359: PUSH1 0x01 0000035b: DUP4 0000035c: PUSH1 0x20 0000035e: SUB 0000035f: PUSH2 0x0100 00000362: EXP 00000363: SUB 00000364: NOT 00000365: AND 00000366: DUP2 00000367: MSTORE 00000368: PUSH1 0x20 0000036a: ADD 0000036b: SWAP2 0000036c: POP 0000036d: JUMPDEST 0000036e: POP 0000036f: SWAP3 00000370: POP 00000371: POP 00000372: POP 00000373: PUSH1 0x40 00000375: MLOAD 00000376: DUP1 00000377: SWAP2 00000378: SUB 00000379: SWAP1 0000037a: RETURN 0000037b: JUMPDEST 0000037c: PUSH2 0x0475 0000037f: PUSH1 0x04 00000381: DUP1 00000382: CALLDATASIZE 00000383: SUB 00000384: PUSH1 0xa0 00000386: DUP2 00000387: LT 00000388: ISZERO 00000389: PUSH2 0x0391 0000038c: JUMPI 0000038d: PUSH1 0x00 0000038f: DUP1 00000390: REVERT 00000391: JUMPDEST 00000392: DUP2 00000393: ADD 00000394: SWAP1 00000395: DUP1 00000396: DUP1 00000397: CALLDATALOAD 00000398: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003ad: AND 000003ae: SWAP1 000003af: PUSH1 0x20 000003b1: ADD 000003b2: SWAP1 000003b3: SWAP3 000003b4: SWAP2 000003b5: SWAP1 000003b6: DUP1 000003b7: CALLDATALOAD 000003b8: SWAP1 000003b9: PUSH1 0x20 000003bb: ADD 000003bc: SWAP1 000003bd: PUSH5 0x0100000000 000003c3: DUP2 000003c4: GT 000003c5: ISZERO 000003c6: PUSH2 0x03ce 000003c9: JUMPI 000003ca: PUSH1 0x00 000003cc: DUP1 000003cd: REVERT 000003ce: JUMPDEST 000003cf: DUP3 000003d0: ADD 000003d1: DUP4 000003d2: PUSH1 0x20 000003d4: DUP3 000003d5: ADD 000003d6: GT 000003d7: ISZERO 000003d8: PUSH2 0x03e0 000003db: JUMPI 000003dc: PUSH1 0x00 000003de: DUP1 000003df: REVERT 000003e0: JUMPDEST 000003e1: DUP1 000003e2: CALLDATALOAD 000003e3: SWAP1 000003e4: PUSH1 0x20 000003e6: ADD 000003e7: SWAP2 000003e8: DUP5 000003e9: PUSH1 0x01 000003eb: DUP4 000003ec: MUL 000003ed: DUP5 000003ee: ADD 000003ef: GT 000003f0: PUSH5 0x0100000000 000003f6: DUP4 000003f7: GT 000003f8: OR 000003f9: ISZERO 000003fa: PUSH2 0x0402 000003fd: JUMPI 000003fe: PUSH1 0x00 00000400: DUP1 00000401: REVERT 00000402: JUMPDEST 00000403: SWAP2 00000404: SWAP1 00000405: DUP1 00000406: DUP1 00000407: PUSH1 0x1f 00000409: ADD 0000040a: PUSH1 0x20 0000040c: DUP1 0000040d: SWAP2 0000040e: DIV 0000040f: MUL 00000410: PUSH1 0x20 00000412: ADD 00000413: PUSH1 0x40 00000415: MLOAD 00000416: SWAP1 00000417: DUP2 00000418: ADD 00000419: PUSH1 0x40 0000041b: MSTORE 0000041c: DUP1 0000041d: SWAP4 0000041e: SWAP3 0000041f: SWAP2 00000420: SWAP1 00000421: DUP2 00000422: DUP2 00000423: MSTORE 00000424: PUSH1 0x20 00000426: ADD 00000427: DUP4 00000428: DUP4 00000429: DUP1 0000042a: DUP3 0000042b: DUP5 0000042c: CALLDATACOPY 0000042d: PUSH1 0x00 0000042f: DUP2 00000430: DUP5 00000431: ADD 00000432: MSTORE 00000433: PUSH1 0x1f 00000435: NOT 00000436: PUSH1 0x1f 00000438: DUP3 00000439: ADD 0000043a: AND 0000043b: SWAP1 0000043c: POP 0000043d: DUP1 0000043e: DUP4 0000043f: ADD 00000440: SWAP3 00000441: POP 00000442: POP 00000443: POP 00000444: POP 00000445: POP 00000446: POP 00000447: POP 00000448: SWAP2 00000449: SWAP3 0000044a: SWAP2 0000044b: SWAP3 0000044c: SWAP1 0000044d: DUP1 0000044e: CALLDATALOAD 0000044f: SWAP1 00000450: PUSH1 0x20 00000452: ADD 00000453: SWAP1 00000454: SWAP3 00000455: SWAP2 00000456: SWAP1 00000457: DUP1 00000458: CALLDATALOAD 00000459: SWAP1 0000045a: PUSH1 0x20 0000045c: ADD 0000045d: SWAP1 0000045e: SWAP3 0000045f: SWAP2 00000460: SWAP1 00000461: DUP1 00000462: CALLDATALOAD 00000463: PUSH1 0xff 00000465: AND 00000466: SWAP1 00000467: PUSH1 0x20 00000469: ADD 0000046a: SWAP1 0000046b: SWAP3 0000046c: SWAP2 0000046d: SWAP1 0000046e: POP 0000046f: POP 00000470: POP 00000471: PUSH2 0x10c2 00000474: JUMP 00000475: JUMPDEST 00000476: PUSH1 0x40 00000478: MLOAD 00000479: DUP1 0000047a: DUP1 0000047b: PUSH1 0x20 0000047d: ADD 0000047e: DUP3 0000047f: DUP2 00000480: SUB 00000481: DUP3 00000482: MSTORE 00000483: DUP4 00000484: DUP2 00000485: DUP2 00000486: MLOAD 00000487: DUP2 00000488: MSTORE 00000489: PUSH1 0x20 0000048b: ADD 0000048c: SWAP2 0000048d: POP 0000048e: DUP1 0000048f: MLOAD 00000490: SWAP1 00000491: PUSH1 0x20 00000493: ADD 00000494: SWAP1 00000495: DUP1 00000496: DUP4 00000497: DUP4 00000498: PUSH1 0x00 0000049a: JUMPDEST 0000049b: DUP4 0000049c: DUP2 0000049d: LT 0000049e: ISZERO 0000049f: PUSH2 0x04b5 000004a2: JUMPI 000004a3: DUP1 000004a4: DUP3 000004a5: ADD 000004a6: MLOAD 000004a7: DUP2 000004a8: DUP5 000004a9: ADD 000004aa: MSTORE 000004ab: PUSH1 0x20 000004ad: DUP2 000004ae: ADD 000004af: SWAP1 000004b0: POP 000004b1: PUSH2 0x049a 000004b4: JUMP 000004b5: JUMPDEST 000004b6: POP 000004b7: POP 000004b8: POP 000004b9: POP 000004ba: SWAP1 000004bb: POP 000004bc: SWAP1 000004bd: DUP2 000004be: ADD 000004bf: SWAP1 000004c0: PUSH1 0x1f 000004c2: AND 000004c3: DUP1 000004c4: ISZERO 000004c5: PUSH2 0x04e2 000004c8: JUMPI 000004c9: DUP1 000004ca: DUP3 000004cb: SUB 000004cc: DUP1 000004cd: MLOAD 000004ce: PUSH1 0x01 000004d0: DUP4 000004d1: PUSH1 0x20 000004d3: SUB 000004d4: PUSH2 0x0100 000004d7: EXP 000004d8: SUB 000004d9: NOT 000004da: AND 000004db: DUP2 000004dc: MSTORE 000004dd: PUSH1 0x20 000004df: ADD 000004e0: SWAP2 000004e1: POP 000004e2: JUMPDEST 000004e3: POP 000004e4: SWAP3 000004e5: POP 000004e6: POP 000004e7: POP 000004e8: PUSH1 0x40 000004ea: MLOAD 000004eb: DUP1 000004ec: SWAP2 000004ed: SUB 000004ee: SWAP1 000004ef: RETURN 000004f0: JUMPDEST 000004f1: CALLVALUE 000004f2: DUP1 000004f3: ISZERO 000004f4: PUSH2 0x04fc 000004f7: JUMPI 000004f8: PUSH1 0x00 000004fa: DUP1 000004fb: REVERT 000004fc: JUMPDEST 000004fd: POP 000004fe: PUSH2 0x0505 00000501: PUSH2 0x1518 00000504: JUMP 00000505: JUMPDEST 00000506: PUSH1 0x40 00000508: MLOAD 00000509: DUP1 0000050a: DUP1 0000050b: PUSH1 0x20 0000050d: ADD 0000050e: DUP3 0000050f: DUP2 00000510: SUB 00000511: DUP3 00000512: MSTORE 00000513: DUP4 00000514: DUP2 00000515: DUP2 00000516: MLOAD 00000517: DUP2 00000518: MSTORE 00000519: PUSH1 0x20 0000051b: ADD 0000051c: SWAP2 0000051d: POP 0000051e: DUP1 0000051f: MLOAD 00000520: SWAP1 00000521: PUSH1 0x20 00000523: ADD 00000524: SWAP1 00000525: DUP1 00000526: DUP4 00000527: DUP4 00000528: PUSH1 0x00 0000052a: JUMPDEST 0000052b: DUP4 0000052c: DUP2 0000052d: LT 0000052e: ISZERO 0000052f: PUSH2 0x0545 00000532: JUMPI 00000533: DUP1 00000534: DUP3 00000535: ADD 00000536: MLOAD 00000537: DUP2 00000538: DUP5 00000539: ADD 0000053a: MSTORE 0000053b: PUSH1 0x20 0000053d: DUP2 0000053e: ADD 0000053f: SWAP1 00000540: POP 00000541: PUSH2 0x052a 00000544: JUMP 00000545: JUMPDEST 00000546: POP 00000547: POP 00000548: POP 00000549: POP 0000054a: SWAP1 0000054b: POP 0000054c: SWAP1 0000054d: DUP2 0000054e: ADD 0000054f: SWAP1 00000550: PUSH1 0x1f 00000552: AND 00000553: DUP1 00000554: ISZERO 00000555: PUSH2 0x0572 00000558: JUMPI 00000559: DUP1 0000055a: DUP3 0000055b: SUB 0000055c: DUP1 0000055d: MLOAD 0000055e: PUSH1 0x01 00000560: DUP4 00000561: PUSH1 0x20 00000563: SUB 00000564: PUSH2 0x0100 00000567: EXP 00000568: SUB 00000569: NOT 0000056a: AND 0000056b: DUP2 0000056c: MSTORE 0000056d: PUSH1 0x20 0000056f: ADD 00000570: SWAP2 00000571: POP 00000572: JUMPDEST 00000573: POP 00000574: SWAP3 00000575: POP 00000576: POP 00000577: POP 00000578: PUSH1 0x40 0000057a: MLOAD 0000057b: DUP1 0000057c: SWAP2 0000057d: SUB 0000057e: SWAP1 0000057f: RETURN 00000580: JUMPDEST 00000581: CALLVALUE 00000582: DUP1 00000583: ISZERO 00000584: PUSH2 0x058c 00000587: JUMPI 00000588: PUSH1 0x00 0000058a: DUP1 0000058b: REVERT 0000058c: JUMPDEST 0000058d: POP 0000058e: PUSH2 0x0595 00000591: PUSH2 0x1551 00000594: JUMP 00000595: JUMPDEST 00000596: PUSH1 0x40 00000598: MLOAD 00000599: DUP1 0000059a: DUP1 0000059b: PUSH1 0x20 0000059d: ADD 0000059e: DUP3 0000059f: DUP2 000005a0: SUB 000005a1: DUP3 000005a2: MSTORE 000005a3: DUP4 000005a4: DUP2 000005a5: DUP2 000005a6: MLOAD 000005a7: DUP2 000005a8: MSTORE 000005a9: PUSH1 0x20 000005ab: ADD 000005ac: SWAP2 000005ad: POP 000005ae: DUP1 000005af: MLOAD 000005b0: SWAP1 000005b1: PUSH1 0x20 000005b3: ADD 000005b4: SWAP1 000005b5: DUP1 000005b6: DUP4 000005b7: DUP4 000005b8: PUSH1 0x00 000005ba: JUMPDEST 000005bb: DUP4 000005bc: DUP2 000005bd: LT 000005be: ISZERO 000005bf: PUSH2 0x05d5 000005c2: JUMPI 000005c3: DUP1 000005c4: DUP3 000005c5: ADD 000005c6: MLOAD 000005c7: DUP2 000005c8: DUP5 000005c9: ADD 000005ca: MSTORE 000005cb: PUSH1 0x20 000005cd: DUP2 000005ce: ADD 000005cf: SWAP1 000005d0: POP 000005d1: PUSH2 0x05ba 000005d4: JUMP 000005d5: JUMPDEST 000005d6: POP 000005d7: POP 000005d8: POP 000005d9: POP 000005da: SWAP1 000005db: POP 000005dc: SWAP1 000005dd: DUP2 000005de: ADD 000005df: SWAP1 000005e0: PUSH1 0x1f 000005e2: AND 000005e3: DUP1 000005e4: ISZERO 000005e5: PUSH2 0x0602 000005e8: JUMPI 000005e9: DUP1 000005ea: DUP3 000005eb: SUB 000005ec: DUP1 000005ed: MLOAD 000005ee: PUSH1 0x01 000005f0: DUP4 000005f1: PUSH1 0x20 000005f3: SUB 000005f4: PUSH2 0x0100 000005f7: EXP 000005f8: SUB 000005f9: NOT 000005fa: AND 000005fb: DUP2 000005fc: MSTORE 000005fd: PUSH1 0x20 000005ff: ADD 00000600: SWAP2 00000601: POP 00000602: JUMPDEST 00000603: POP 00000604: SWAP3 00000605: POP 00000606: POP 00000607: POP 00000608: PUSH1 0x40 0000060a: MLOAD 0000060b: DUP1 0000060c: SWAP2 0000060d: SUB 0000060e: SWAP1 0000060f: RETURN 00000610: JUMPDEST 00000611: CALLVALUE 00000612: DUP1 00000613: ISZERO 00000614: PUSH2 0x061c 00000617: JUMPI 00000618: PUSH1 0x00 0000061a: DUP1 0000061b: REVERT 0000061c: JUMPDEST 0000061d: POP 0000061e: PUSH2 0x0625 00000621: PUSH2 0x158a 00000624: JUMP 00000625: JUMPDEST 00000626: PUSH1 0x40 00000628: MLOAD 00000629: DUP1 0000062a: DUP3 0000062b: DUP2 0000062c: MSTORE 0000062d: PUSH1 0x20 0000062f: ADD 00000630: SWAP2 00000631: POP 00000632: POP 00000633: PUSH1 0x40 00000635: MLOAD 00000636: DUP1 00000637: SWAP2 00000638: SUB 00000639: SWAP1 0000063a: RETURN 0000063b: JUMPDEST 0000063c: CALLVALUE 0000063d: DUP1 0000063e: ISZERO 0000063f: PUSH2 0x0647 00000642: JUMPI 00000643: PUSH1 0x00 00000645: DUP1 00000646: REVERT 00000647: JUMPDEST 00000648: POP 00000649: PUSH2 0x0650 0000064c: PUSH2 0x1594 0000064f: JUMP 00000650: JUMPDEST 00000651: PUSH1 0x40 00000653: MLOAD 00000654: DUP1 00000655: DUP3 00000656: DUP2 00000657: MSTORE 00000658: PUSH1 0x20 0000065a: ADD 0000065b: SWAP2 0000065c: POP 0000065d: POP 0000065e: PUSH1 0x40 00000660: MLOAD 00000661: DUP1 00000662: SWAP2 00000663: SUB 00000664: SWAP1 00000665: RETURN 00000666: JUMPDEST 00000667: CALLVALUE 00000668: DUP1 00000669: ISZERO 0000066a: PUSH2 0x0672 0000066d: JUMPI 0000066e: PUSH1 0x00 00000670: DUP1 00000671: REVERT 00000672: JUMPDEST 00000673: POP 00000674: PUSH2 0x06df 00000677: PUSH1 0x04 00000679: DUP1 0000067a: CALLDATASIZE 0000067b: SUB 0000067c: PUSH1 0x60 0000067e: DUP2 0000067f: LT 00000680: ISZERO 00000681: PUSH2 0x0689 00000684: JUMPI 00000685: PUSH1 0x00 00000687: DUP1 00000688: REVERT 00000689: JUMPDEST 0000068a: DUP2 0000068b: ADD 0000068c: SWAP1 0000068d: DUP1 0000068e: DUP1 0000068f: CALLDATALOAD 00000690: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006a5: AND 000006a6: SWAP1 000006a7: PUSH1 0x20 000006a9: ADD 000006aa: SWAP1 000006ab: SWAP3 000006ac: SWAP2 000006ad: SWAP1 000006ae: DUP1 000006af: CALLDATALOAD 000006b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006c5: AND 000006c6: SWAP1 000006c7: PUSH1 0x20 000006c9: ADD 000006ca: SWAP1 000006cb: SWAP3 000006cc: SWAP2 000006cd: SWAP1 000006ce: DUP1 000006cf: CALLDATALOAD 000006d0: SWAP1 000006d1: PUSH1 0x20 000006d3: ADD 000006d4: SWAP1 000006d5: SWAP3 000006d6: SWAP2 000006d7: SWAP1 000006d8: POP 000006d9: POP 000006da: POP 000006db: PUSH2 0x159e 000006de: JUMP 000006df: JUMPDEST 000006e0: PUSH1 0x40 000006e2: MLOAD 000006e3: DUP1 000006e4: DUP3 000006e5: ISZERO 000006e6: ISZERO 000006e7: ISZERO 000006e8: ISZERO 000006e9: DUP2 000006ea: MSTORE 000006eb: PUSH1 0x20 000006ed: ADD 000006ee: SWAP2 000006ef: POP 000006f0: POP 000006f1: PUSH1 0x40 000006f3: MLOAD 000006f4: DUP1 000006f5: SWAP2 000006f6: SUB 000006f7: SWAP1 000006f8: RETURN 000006f9: JUMPDEST 000006fa: CALLVALUE 000006fb: DUP1 000006fc: ISZERO 000006fd: PUSH2 0x0705 00000700: JUMPI 00000701: PUSH1 0x00 00000703: DUP1 00000704: REVERT 00000705: JUMPDEST 00000706: POP 00000707: PUSH2 0x0732 0000070a: PUSH1 0x04 0000070c: DUP1 0000070d: CALLDATASIZE 0000070e: SUB 0000070f: PUSH1 0x20 00000711: DUP2 00000712: LT 00000713: ISZERO 00000714: PUSH2 0x071c 00000717: JUMPI 00000718: PUSH1 0x00 0000071a: DUP1 0000071b: REVERT 0000071c: JUMPDEST 0000071d: DUP2 0000071e: ADD 0000071f: SWAP1 00000720: DUP1 00000721: DUP1 00000722: CALLDATALOAD 00000723: SWAP1 00000724: PUSH1 0x20 00000726: ADD 00000727: SWAP1 00000728: SWAP3 00000729: SWAP2 0000072a: SWAP1 0000072b: POP 0000072c: POP 0000072d: POP 0000072e: PUSH2 0x1677 00000731: JUMP 00000732: JUMPDEST 00000733: PUSH1 0x40 00000735: MLOAD 00000736: DUP1 00000737: DUP3 00000738: DUP2 00000739: MSTORE 0000073a: PUSH1 0x20 0000073c: ADD 0000073d: SWAP2 0000073e: POP 0000073f: POP 00000740: PUSH1 0x40 00000742: MLOAD 00000743: DUP1 00000744: SWAP2 00000745: SUB 00000746: SWAP1 00000747: RETURN 00000748: JUMPDEST 00000749: CALLVALUE 0000074a: DUP1 0000074b: ISZERO 0000074c: PUSH2 0x0754 0000074f: JUMPI 00000750: PUSH1 0x00 00000752: DUP1 00000753: REVERT 00000754: JUMPDEST 00000755: POP 00000756: PUSH2 0x0797 00000759: PUSH1 0x04 0000075b: DUP1 0000075c: CALLDATASIZE 0000075d: SUB 0000075e: PUSH1 0x20 00000760: DUP2 00000761: LT 00000762: ISZERO 00000763: PUSH2 0x076b 00000766: JUMPI 00000767: PUSH1 0x00 00000769: DUP1 0000076a: REVERT 0000076b: JUMPDEST 0000076c: DUP2 0000076d: ADD 0000076e: SWAP1 0000076f: DUP1 00000770: DUP1 00000771: CALLDATALOAD 00000772: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000787: AND 00000788: SWAP1 00000789: PUSH1 0x20 0000078b: ADD 0000078c: SWAP1 0000078d: SWAP3 0000078e: SWAP2 0000078f: SWAP1 00000790: POP 00000791: POP 00000792: POP 00000793: PUSH2 0x1697 00000796: JUMP 00000797: JUMPDEST 00000798: PUSH1 0x40 0000079a: MLOAD 0000079b: DUP1 0000079c: DUP3 0000079d: DUP2 0000079e: MSTORE 0000079f: PUSH1 0x20 000007a1: ADD 000007a2: SWAP2 000007a3: POP 000007a4: POP 000007a5: PUSH1 0x40 000007a7: MLOAD 000007a8: DUP1 000007a9: SWAP2 000007aa: SUB 000007ab: SWAP1 000007ac: RETURN 000007ad: JUMPDEST 000007ae: CALLVALUE 000007af: DUP1 000007b0: ISZERO 000007b1: PUSH2 0x07b9 000007b4: JUMPI 000007b5: PUSH1 0x00 000007b7: DUP1 000007b8: REVERT 000007b9: JUMPDEST 000007ba: POP 000007bb: PUSH2 0x07e6 000007be: PUSH1 0x04 000007c0: DUP1 000007c1: CALLDATASIZE 000007c2: SUB 000007c3: PUSH1 0x20 000007c5: DUP2 000007c6: LT 000007c7: ISZERO 000007c8: PUSH2 0x07d0 000007cb: JUMPI 000007cc: PUSH1 0x00 000007ce: DUP1 000007cf: REVERT 000007d0: JUMPDEST 000007d1: DUP2 000007d2: ADD 000007d3: SWAP1 000007d4: DUP1 000007d5: DUP1 000007d6: CALLDATALOAD 000007d7: SWAP1 000007d8: PUSH1 0x20 000007da: ADD 000007db: SWAP1 000007dc: SWAP3 000007dd: SWAP2 000007de: SWAP1 000007df: POP 000007e0: POP 000007e1: POP 000007e2: PUSH2 0x16e0 000007e5: JUMP 000007e6: JUMPDEST 000007e7: STOP 000007e8: JUMPDEST 000007e9: CALLVALUE 000007ea: DUP1 000007eb: ISZERO 000007ec: PUSH2 0x07f4 000007ef: JUMPI 000007f0: PUSH1 0x00 000007f2: DUP1 000007f3: REVERT 000007f4: JUMPDEST 000007f5: POP 000007f6: PUSH2 0x0841 000007f9: PUSH1 0x04 000007fb: DUP1 000007fc: CALLDATASIZE 000007fd: SUB 000007fe: PUSH1 0x40 00000800: DUP2 00000801: LT 00000802: ISZERO 00000803: PUSH2 0x080b 00000806: JUMPI 00000807: PUSH1 0x00 00000809: DUP1 0000080a: REVERT 0000080b: JUMPDEST 0000080c: DUP2 0000080d: ADD 0000080e: SWAP1 0000080f: DUP1 00000810: DUP1 00000811: CALLDATALOAD 00000812: SWAP1 00000813: PUSH1 0x20 00000815: ADD 00000816: SWAP1 00000817: SWAP3 00000818: SWAP2 00000819: SWAP1 0000081a: DUP1 0000081b: CALLDATALOAD 0000081c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000831: AND 00000832: SWAP1 00000833: PUSH1 0x20 00000835: ADD 00000836: SWAP1 00000837: SWAP3 00000838: SWAP2 00000839: SWAP1 0000083a: POP 0000083b: POP 0000083c: POP 0000083d: PUSH2 0x16f4 00000840: JUMP 00000841: JUMPDEST 00000842: STOP 00000843: JUMPDEST 00000844: CALLVALUE 00000845: DUP1 00000846: ISZERO 00000847: PUSH2 0x084f 0000084a: JUMPI 0000084b: PUSH1 0x00 0000084d: DUP1 0000084e: REVERT 0000084f: JUMPDEST 00000850: POP 00000851: PUSH2 0x0858 00000854: PUSH2 0x177e 00000857: JUMP 00000858: JUMPDEST 00000859: PUSH1 0x40 0000085b: MLOAD 0000085c: DUP1 0000085d: DUP3 0000085e: PUSH1 0xff 00000860: AND 00000861: PUSH1 0xff 00000863: AND 00000864: DUP2 00000865: MSTORE 00000866: PUSH1 0x20 00000868: ADD 00000869: SWAP2 0000086a: POP 0000086b: POP 0000086c: PUSH1 0x40 0000086e: MLOAD 0000086f: DUP1 00000870: SWAP2 00000871: SUB 00000872: SWAP1 00000873: RETURN 00000874: JUMPDEST 00000875: CALLVALUE 00000876: DUP1 00000877: ISZERO 00000878: PUSH2 0x0880 0000087b: JUMPI 0000087c: PUSH1 0x00 0000087e: DUP1 0000087f: REVERT 00000880: JUMPDEST 00000881: POP 00000882: PUSH2 0x0889 00000885: PUSH2 0x1795 00000888: JUMP 00000889: JUMPDEST 0000088a: PUSH1 0x40 0000088c: MLOAD 0000088d: DUP1 0000088e: DUP3 0000088f: DUP2 00000890: MSTORE 00000891: PUSH1 0x20 00000893: ADD 00000894: SWAP2 00000895: POP 00000896: POP 00000897: PUSH1 0x40 00000899: MLOAD 0000089a: DUP1 0000089b: SWAP2 0000089c: SUB 0000089d: SWAP1 0000089e: RETURN 0000089f: JUMPDEST 000008a0: CALLVALUE 000008a1: DUP1 000008a2: ISZERO 000008a3: PUSH2 0x08ab 000008a6: JUMPI 000008a7: PUSH1 0x00 000008a9: DUP1 000008aa: REVERT 000008ab: JUMPDEST 000008ac: POP 000008ad: PUSH2 0x08f8 000008b0: PUSH1 0x04 000008b2: DUP1 000008b3: CALLDATASIZE 000008b4: SUB 000008b5: PUSH1 0x40 000008b7: DUP2 000008b8: LT 000008b9: ISZERO 000008ba: PUSH2 0x08c2 000008bd: JUMPI 000008be: PUSH1 0x00 000008c0: DUP1 000008c1: REVERT 000008c2: JUMPDEST 000008c3: DUP2 000008c4: ADD 000008c5: SWAP1 000008c6: DUP1 000008c7: DUP1 000008c8: CALLDATALOAD 000008c9: SWAP1 000008ca: PUSH1 0x20 000008cc: ADD 000008cd: SWAP1 000008ce: SWAP3 000008cf: SWAP2 000008d0: SWAP1 000008d1: DUP1 000008d2: CALLDATALOAD 000008d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008e8: AND 000008e9: SWAP1 000008ea: PUSH1 0x20 000008ec: ADD 000008ed: SWAP1 000008ee: SWAP3 000008ef: SWAP2 000008f0: SWAP1 000008f1: POP 000008f2: POP 000008f3: POP 000008f4: PUSH2 0x17a2 000008f7: JUMP 000008f8: JUMPDEST 000008f9: STOP 000008fa: JUMPDEST 000008fb: CALLVALUE 000008fc: DUP1 000008fd: ISZERO 000008fe: PUSH2 0x0906 00000901: JUMPI 00000902: PUSH1 0x00 00000904: DUP1 00000905: REVERT 00000906: JUMPDEST 00000907: POP 00000908: PUSH2 0x0953 0000090b: PUSH1 0x04 0000090d: DUP1 0000090e: CALLDATASIZE 0000090f: SUB 00000910: PUSH1 0x40 00000912: DUP2 00000913: LT 00000914: ISZERO 00000915: PUSH2 0x091d 00000918: JUMPI 00000919: PUSH1 0x00 0000091b: DUP1 0000091c: REVERT 0000091d: JUMPDEST 0000091e: DUP2 0000091f: ADD 00000920: SWAP1 00000921: DUP1 00000922: DUP1 00000923: CALLDATALOAD 00000924: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000939: AND 0000093a: SWAP1 0000093b: PUSH1 0x20 0000093d: ADD 0000093e: SWAP1 0000093f: SWAP3 00000940: SWAP2 00000941: SWAP1 00000942: DUP1 00000943: CALLDATALOAD 00000944: SWAP1 00000945: PUSH1 0x20 00000947: ADD 00000948: SWAP1 00000949: SWAP3 0000094a: SWAP2 0000094b: SWAP1 0000094c: POP 0000094d: POP 0000094e: POP 0000094f: PUSH2 0x183b 00000952: JUMP 00000953: JUMPDEST 00000954: PUSH1 0x40 00000956: MLOAD 00000957: DUP1 00000958: DUP3 00000959: ISZERO 0000095a: ISZERO 0000095b: ISZERO 0000095c: ISZERO 0000095d: DUP2 0000095e: MSTORE 0000095f: PUSH1 0x20 00000961: ADD 00000962: SWAP2 00000963: POP 00000964: POP 00000965: PUSH1 0x40 00000967: MLOAD 00000968: DUP1 00000969: SWAP2 0000096a: SUB 0000096b: SWAP1 0000096c: RETURN 0000096d: JUMPDEST 0000096e: CALLVALUE 0000096f: DUP1 00000970: ISZERO 00000971: PUSH2 0x0979 00000974: JUMPI 00000975: PUSH1 0x00 00000977: DUP1 00000978: REVERT 00000979: JUMPDEST 0000097a: POP 0000097b: PUSH2 0x0982 0000097e: PUSH2 0x18ee 00000981: JUMP 00000982: JUMPDEST 00000983: PUSH1 0x40 00000985: MLOAD 00000986: DUP1 00000987: DUP3 00000988: DUP2 00000989: MSTORE 0000098a: PUSH1 0x20 0000098c: ADD 0000098d: SWAP2 0000098e: POP 0000098f: POP 00000990: PUSH1 0x40 00000992: MLOAD 00000993: DUP1 00000994: SWAP2 00000995: SUB 00000996: SWAP1 00000997: RETURN 00000998: JUMPDEST 00000999: CALLVALUE 0000099a: DUP1 0000099b: ISZERO 0000099c: PUSH2 0x09a4 0000099f: JUMPI 000009a0: PUSH1 0x00 000009a2: DUP1 000009a3: REVERT 000009a4: JUMPDEST 000009a5: POP 000009a6: PUSH2 0x09e7 000009a9: PUSH1 0x04 000009ab: DUP1 000009ac: CALLDATASIZE 000009ad: SUB 000009ae: PUSH1 0x20 000009b0: DUP2 000009b1: LT 000009b2: ISZERO 000009b3: PUSH2 0x09bb 000009b6: JUMPI 000009b7: PUSH1 0x00 000009b9: DUP1 000009ba: REVERT 000009bb: JUMPDEST 000009bc: DUP2 000009bd: ADD 000009be: SWAP1 000009bf: DUP1 000009c0: DUP1 000009c1: CALLDATALOAD 000009c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009d7: AND 000009d8: SWAP1 000009d9: PUSH1 0x20 000009db: ADD 000009dc: SWAP1 000009dd: SWAP3 000009de: SWAP2 000009df: SWAP1 000009e0: POP 000009e1: POP 000009e2: POP 000009e3: PUSH2 0x18f3 000009e6: JUMP 000009e7: JUMPDEST 000009e8: PUSH1 0x40 000009ea: MLOAD 000009eb: DUP1 000009ec: DUP3 000009ed: DUP2 000009ee: MSTORE 000009ef: PUSH1 0x20 000009f1: ADD 000009f2: SWAP2 000009f3: POP 000009f4: POP 000009f5: PUSH1 0x40 000009f7: MLOAD 000009f8: DUP1 000009f9: SWAP2 000009fa: SUB 000009fb: SWAP1 000009fc: RETURN 000009fd: JUMPDEST 000009fe: CALLVALUE 000009ff: DUP1 00000a00: ISZERO 00000a01: PUSH2 0x0a09 00000a04: JUMPI 00000a05: PUSH1 0x00 00000a07: DUP1 00000a08: REVERT 00000a09: JUMPDEST 00000a0a: POP 00000a0b: PUSH2 0x0a12 00000a0e: PUSH2 0x193b 00000a11: JUMP 00000a12: JUMPDEST 00000a13: PUSH1 0x40 00000a15: MLOAD 00000a16: DUP1 00000a17: DUP3 00000a18: DUP2 00000a19: MSTORE 00000a1a: PUSH1 0x20 00000a1c: ADD 00000a1d: SWAP2 00000a1e: POP 00000a1f: POP 00000a20: PUSH1 0x40 00000a22: MLOAD 00000a23: DUP1 00000a24: SWAP2 00000a25: SUB 00000a26: SWAP1 00000a27: RETURN 00000a28: JUMPDEST 00000a29: CALLVALUE 00000a2a: DUP1 00000a2b: ISZERO 00000a2c: PUSH2 0x0a34 00000a2f: JUMPI 00000a30: PUSH1 0x00 00000a32: DUP1 00000a33: REVERT 00000a34: JUMPDEST 00000a35: POP 00000a36: PUSH2 0x0a6b 00000a39: PUSH1 0x04 00000a3b: DUP1 00000a3c: CALLDATASIZE 00000a3d: SUB 00000a3e: PUSH1 0x40 00000a40: DUP2 00000a41: LT 00000a42: ISZERO 00000a43: PUSH2 0x0a4b 00000a46: JUMPI 00000a47: PUSH1 0x00 00000a49: DUP1 00000a4a: REVERT 00000a4b: JUMPDEST 00000a4c: DUP2 00000a4d: ADD 00000a4e: SWAP1 00000a4f: DUP1 00000a50: DUP1 00000a51: CALLDATALOAD 00000a52: SWAP1 00000a53: PUSH1 0x20 00000a55: ADD 00000a56: SWAP1 00000a57: SWAP3 00000a58: SWAP2 00000a59: SWAP1 00000a5a: DUP1 00000a5b: CALLDATALOAD 00000a5c: SWAP1 00000a5d: PUSH1 0x20 00000a5f: ADD 00000a60: SWAP1 00000a61: SWAP3 00000a62: SWAP2 00000a63: SWAP1 00000a64: POP 00000a65: POP 00000a66: POP 00000a67: PUSH2 0x1940 00000a6a: JUMP 00000a6b: JUMPDEST 00000a6c: PUSH1 0x40 00000a6e: MLOAD 00000a6f: DUP1 00000a70: DUP3 00000a71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a86: AND 00000a87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a9c: AND 00000a9d: DUP2 00000a9e: MSTORE 00000a9f: PUSH1 0x20 00000aa1: ADD 00000aa2: SWAP2 00000aa3: POP 00000aa4: POP 00000aa5: PUSH1 0x40 00000aa7: MLOAD 00000aa8: DUP1 00000aa9: SWAP2 00000aaa: SUB 00000aab: SWAP1 00000aac: RETURN 00000aad: JUMPDEST 00000aae: CALLVALUE 00000aaf: DUP1 00000ab0: ISZERO 00000ab1: PUSH2 0x0ab9 00000ab4: JUMPI 00000ab5: PUSH1 0x00 00000ab7: DUP1 00000ab8: REVERT 00000ab9: JUMPDEST 00000aba: POP 00000abb: PUSH2 0x0b06 00000abe: PUSH1 0x04 00000ac0: DUP1 00000ac1: CALLDATASIZE 00000ac2: SUB 00000ac3: PUSH1 0x40 00000ac5: DUP2 00000ac6: LT 00000ac7: ISZERO 00000ac8: PUSH2 0x0ad0 00000acb: JUMPI 00000acc: PUSH1 0x00 00000ace: DUP1 00000acf: REVERT 00000ad0: JUMPDEST 00000ad1: DUP2 00000ad2: ADD 00000ad3: SWAP1 00000ad4: DUP1 00000ad5: DUP1 00000ad6: CALLDATALOAD 00000ad7: SWAP1 00000ad8: PUSH1 0x20 00000ada: ADD 00000adb: SWAP1 00000adc: SWAP3 00000add: SWAP2 00000ade: SWAP1 00000adf: DUP1 00000ae0: CALLDATALOAD 00000ae1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000af6: AND 00000af7: SWAP1 00000af8: PUSH1 0x20 00000afa: ADD 00000afb: SWAP1 00000afc: SWAP3 00000afd: SWAP2 00000afe: SWAP1 00000aff: POP 00000b00: POP 00000b01: POP 00000b02: PUSH2 0x1972 00000b05: JUMP 00000b06: JUMPDEST 00000b07: PUSH1 0x40 00000b09: MLOAD 00000b0a: DUP1 00000b0b: DUP3 00000b0c: ISZERO 00000b0d: ISZERO 00000b0e: ISZERO 00000b0f: ISZERO 00000b10: DUP2 00000b11: MSTORE 00000b12: PUSH1 0x20 00000b14: ADD 00000b15: SWAP2 00000b16: POP 00000b17: POP 00000b18: PUSH1 0x40 00000b1a: MLOAD 00000b1b: DUP1 00000b1c: SWAP2 00000b1d: SUB 00000b1e: SWAP1 00000b1f: RETURN 00000b20: JUMPDEST 00000b21: CALLVALUE 00000b22: DUP1 00000b23: ISZERO 00000b24: PUSH2 0x0b2c 00000b27: JUMPI 00000b28: PUSH1 0x00 00000b2a: DUP1 00000b2b: REVERT 00000b2c: JUMPDEST 00000b2d: POP 00000b2e: PUSH2 0x0b35 00000b31: PUSH2 0x19a4 00000b34: JUMP 00000b35: JUMPDEST 00000b36: PUSH1 0x40 00000b38: MLOAD 00000b39: DUP1 00000b3a: DUP1 00000b3b: PUSH1 0x20 00000b3d: ADD 00000b3e: DUP3 00000b3f: DUP2 00000b40: SUB 00000b41: DUP3 00000b42: MSTORE 00000b43: DUP4 00000b44: DUP2 00000b45: DUP2 00000b46: MLOAD 00000b47: DUP2 00000b48: MSTORE 00000b49: PUSH1 0x20 00000b4b: ADD 00000b4c: SWAP2 00000b4d: POP 00000b4e: DUP1 00000b4f: MLOAD 00000b50: SWAP1 00000b51: PUSH1 0x20 00000b53: ADD 00000b54: SWAP1 00000b55: DUP1 00000b56: DUP4 00000b57: DUP4 00000b58: PUSH1 0x00 00000b5a: JUMPDEST 00000b5b: DUP4 00000b5c: DUP2 00000b5d: LT 00000b5e: ISZERO 00000b5f: PUSH2 0x0b75 00000b62: JUMPI 00000b63: DUP1 00000b64: DUP3 00000b65: ADD 00000b66: MLOAD 00000b67: DUP2 00000b68: DUP5 00000b69: ADD 00000b6a: MSTORE 00000b6b: PUSH1 0x20 00000b6d: DUP2 00000b6e: ADD 00000b6f: SWAP1 00000b70: POP 00000b71: PUSH2 0x0b5a 00000b74: JUMP 00000b75: JUMPDEST 00000b76: POP 00000b77: POP 00000b78: POP 00000b79: POP 00000b7a: SWAP1 00000b7b: POP 00000b7c: SWAP1 00000b7d: DUP2 00000b7e: ADD 00000b7f: SWAP1 00000b80: PUSH1 0x1f 00000b82: AND 00000b83: DUP1 00000b84: ISZERO 00000b85: PUSH2 0x0ba2 00000b88: JUMPI 00000b89: DUP1 00000b8a: DUP3 00000b8b: SUB 00000b8c: DUP1 00000b8d: MLOAD 00000b8e: PUSH1 0x01 00000b90: DUP4 00000b91: PUSH1 0x20 00000b93: SUB 00000b94: PUSH2 0x0100 00000b97: EXP 00000b98: SUB 00000b99: NOT 00000b9a: AND 00000b9b: DUP2 00000b9c: MSTORE 00000b9d: PUSH1 0x20 00000b9f: ADD 00000ba0: SWAP2 00000ba1: POP 00000ba2: JUMPDEST 00000ba3: POP 00000ba4: SWAP3 00000ba5: POP 00000ba6: POP 00000ba7: POP 00000ba8: PUSH1 0x40 00000baa: MLOAD 00000bab: DUP1 00000bac: SWAP2 00000bad: SUB 00000bae: SWAP1 00000baf: RETURN 00000bb0: JUMPDEST 00000bb1: CALLVALUE 00000bb2: DUP1 00000bb3: ISZERO 00000bb4: PUSH2 0x0bbc 00000bb7: JUMPI 00000bb8: PUSH1 0x00 00000bba: DUP1 00000bbb: REVERT 00000bbc: JUMPDEST 00000bbd: POP 00000bbe: PUSH2 0x0bc5 00000bc1: PUSH2 0x1a46 00000bc4: JUMP 00000bc5: JUMPDEST 00000bc6: PUSH1 0x40 00000bc8: MLOAD 00000bc9: DUP1 00000bca: DUP3 00000bcb: DUP2 00000bcc: MSTORE 00000bcd: PUSH1 0x20 00000bcf: ADD 00000bd0: SWAP2 00000bd1: POP 00000bd2: POP 00000bd3: PUSH1 0x40 00000bd5: MLOAD 00000bd6: DUP1 00000bd7: SWAP2 00000bd8: SUB 00000bd9: SWAP1 00000bda: RETURN 00000bdb: JUMPDEST 00000bdc: CALLVALUE 00000bdd: DUP1 00000bde: ISZERO 00000bdf: PUSH2 0x0be7 00000be2: JUMPI 00000be3: PUSH1 0x00 00000be5: DUP1 00000be6: REVERT 00000be7: JUMPDEST 00000be8: POP 00000be9: PUSH2 0x0bf0 00000bec: PUSH2 0x1a4d 00000bef: JUMP 00000bf0: JUMPDEST 00000bf1: PUSH1 0x40 00000bf3: MLOAD 00000bf4: DUP1 00000bf5: DUP3 00000bf6: DUP2 00000bf7: MSTORE 00000bf8: PUSH1 0x20 00000bfa: ADD 00000bfb: SWAP2 00000bfc: POP 00000bfd: POP 00000bfe: PUSH1 0x40 00000c00: MLOAD 00000c01: DUP1 00000c02: SWAP2 00000c03: SUB 00000c04: SWAP1 00000c05: RETURN 00000c06: JUMPDEST 00000c07: CALLVALUE 00000c08: DUP1 00000c09: ISZERO 00000c0a: PUSH2 0x0c12 00000c0d: JUMPI 00000c0e: PUSH1 0x00 00000c10: DUP1 00000c11: REVERT 00000c12: JUMPDEST 00000c13: POP 00000c14: PUSH2 0x0c5f 00000c17: PUSH1 0x04 00000c19: DUP1 00000c1a: CALLDATASIZE 00000c1b: SUB 00000c1c: PUSH1 0x40 00000c1e: DUP2 00000c1f: LT 00000c20: ISZERO 00000c21: PUSH2 0x0c29 00000c24: JUMPI 00000c25: PUSH1 0x00 00000c27: DUP1 00000c28: REVERT 00000c29: JUMPDEST 00000c2a: DUP2 00000c2b: ADD 00000c2c: SWAP1 00000c2d: DUP1 00000c2e: DUP1 00000c2f: CALLDATALOAD 00000c30: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c45: AND 00000c46: SWAP1 00000c47: PUSH1 0x20 00000c49: ADD 00000c4a: SWAP1 00000c4b: SWAP3 00000c4c: SWAP2 00000c4d: SWAP1 00000c4e: DUP1 00000c4f: CALLDATALOAD 00000c50: SWAP1 00000c51: PUSH1 0x20 00000c53: ADD 00000c54: SWAP1 00000c55: SWAP3 00000c56: SWAP2 00000c57: SWAP1 00000c58: POP 00000c59: POP 00000c5a: POP 00000c5b: PUSH2 0x1a86 00000c5e: JUMP 00000c5f: JUMPDEST 00000c60: PUSH1 0x40 00000c62: MLOAD 00000c63: DUP1 00000c64: DUP3 00000c65: ISZERO 00000c66: ISZERO 00000c67: ISZERO 00000c68: ISZERO 00000c69: DUP2 00000c6a: MSTORE 00000c6b: PUSH1 0x20 00000c6d: ADD 00000c6e: SWAP2 00000c6f: POP 00000c70: POP 00000c71: PUSH1 0x40 00000c73: MLOAD 00000c74: DUP1 00000c75: SWAP2 00000c76: SUB 00000c77: SWAP1 00000c78: RETURN 00000c79: JUMPDEST 00000c7a: CALLVALUE 00000c7b: DUP1 00000c7c: ISZERO 00000c7d: PUSH2 0x0c85 00000c80: JUMPI 00000c81: PUSH1 0x00 00000c83: DUP1 00000c84: REVERT 00000c85: JUMPDEST 00000c86: POP 00000c87: PUSH2 0x0cd2 00000c8a: PUSH1 0x04 00000c8c: DUP1 00000c8d: CALLDATASIZE 00000c8e: SUB 00000c8f: PUSH1 0x40 00000c91: DUP2 00000c92: LT 00000c93: ISZERO 00000c94: PUSH2 0x0c9c 00000c97: JUMPI 00000c98: PUSH1 0x00 00000c9a: DUP1 00000c9b: REVERT 00000c9c: JUMPDEST 00000c9d: DUP2 00000c9e: ADD 00000c9f: SWAP1 00000ca0: DUP1 00000ca1: DUP1 00000ca2: CALLDATALOAD 00000ca3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cb8: AND 00000cb9: SWAP1 00000cba: PUSH1 0x20 00000cbc: ADD 00000cbd: SWAP1 00000cbe: SWAP3 00000cbf: SWAP2 00000cc0: SWAP1 00000cc1: DUP1 00000cc2: CALLDATALOAD 00000cc3: SWAP1 00000cc4: PUSH1 0x20 00000cc6: ADD 00000cc7: SWAP1 00000cc8: SWAP3 00000cc9: SWAP2 00000cca: SWAP1 00000ccb: POP 00000ccc: POP 00000ccd: POP 00000cce: PUSH2 0x1b53 00000cd1: JUMP 00000cd2: JUMPDEST 00000cd3: PUSH1 0x40 00000cd5: MLOAD 00000cd6: DUP1 00000cd7: DUP3 00000cd8: ISZERO 00000cd9: ISZERO 00000cda: ISZERO 00000cdb: ISZERO 00000cdc: DUP2 00000cdd: MSTORE 00000cde: PUSH1 0x20 00000ce0: ADD 00000ce1: SWAP2 00000ce2: POP 00000ce3: POP 00000ce4: PUSH1 0x40 00000ce6: MLOAD 00000ce7: DUP1 00000ce8: SWAP2 00000ce9: SUB 00000cea: SWAP1 00000ceb: RETURN 00000cec: JUMPDEST 00000ced: CALLVALUE 00000cee: DUP1 00000cef: ISZERO 00000cf0: PUSH2 0x0cf8 00000cf3: JUMPI 00000cf4: PUSH1 0x00 00000cf6: DUP1 00000cf7: REVERT 00000cf8: JUMPDEST 00000cf9: POP 00000cfa: PUSH2 0x0d25 00000cfd: PUSH1 0x04 00000cff: DUP1 00000d00: CALLDATASIZE 00000d01: SUB 00000d02: PUSH1 0x20 00000d04: DUP2 00000d05: LT 00000d06: ISZERO 00000d07: PUSH2 0x0d0f 00000d0a: JUMPI 00000d0b: PUSH1 0x00 00000d0d: DUP1 00000d0e: REVERT 00000d0f: JUMPDEST 00000d10: DUP2 00000d11: ADD 00000d12: SWAP1 00000d13: DUP1 00000d14: DUP1 00000d15: CALLDATALOAD 00000d16: SWAP1 00000d17: PUSH1 0x20 00000d19: ADD 00000d1a: SWAP1 00000d1b: SWAP3 00000d1c: SWAP2 00000d1d: SWAP1 00000d1e: POP 00000d1f: POP 00000d20: POP 00000d21: PUSH2 0x1b71 00000d24: JUMP 00000d25: JUMPDEST 00000d26: PUSH1 0x40 00000d28: MLOAD 00000d29: DUP1 00000d2a: DUP3 00000d2b: DUP2 00000d2c: MSTORE 00000d2d: PUSH1 0x20 00000d2f: ADD 00000d30: SWAP2 00000d31: POP 00000d32: POP 00000d33: PUSH1 0x40 00000d35: MLOAD 00000d36: DUP1 00000d37: SWAP2 00000d38: SUB 00000d39: SWAP1 00000d3a: RETURN 00000d3b: JUMPDEST 00000d3c: CALLVALUE 00000d3d: DUP1 00000d3e: ISZERO 00000d3f: PUSH2 0x0d47 00000d42: JUMPI 00000d43: PUSH1 0x00 00000d45: DUP1 00000d46: REVERT 00000d47: JUMPDEST 00000d48: POP 00000d49: PUSH2 0x0ddf 00000d4c: PUSH1 0x04 00000d4e: DUP1 00000d4f: CALLDATASIZE 00000d50: SUB 00000d51: PUSH1 0x40 00000d53: DUP2 00000d54: LT 00000d55: ISZERO 00000d56: PUSH2 0x0d5e 00000d59: JUMPI 00000d5a: PUSH1 0x00 00000d5c: DUP1 00000d5d: REVERT 00000d5e: JUMPDEST 00000d5f: DUP2 00000d60: ADD 00000d61: SWAP1 00000d62: DUP1 00000d63: DUP1 00000d64: CALLDATALOAD 00000d65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d7a: AND 00000d7b: SWAP1 00000d7c: PUSH1 0x20 00000d7e: ADD 00000d7f: SWAP1 00000d80: SWAP3 00000d81: SWAP2 00000d82: SWAP1 00000d83: DUP1 00000d84: CALLDATALOAD 00000d85: SWAP1 00000d86: PUSH1 0x20 00000d88: ADD 00000d89: SWAP1 00000d8a: PUSH5 0x0100000000 00000d90: DUP2 00000d91: GT 00000d92: ISZERO 00000d93: PUSH2 0x0d9b 00000d96: JUMPI 00000d97: PUSH1 0x00 00000d99: DUP1 00000d9a: REVERT 00000d9b: JUMPDEST 00000d9c: DUP3 00000d9d: ADD 00000d9e: DUP4 00000d9f: PUSH1 0x20 00000da1: DUP3 00000da2: ADD 00000da3: GT 00000da4: ISZERO 00000da5: PUSH2 0x0dad 00000da8: JUMPI 00000da9: PUSH1 0x00 00000dab: DUP1 00000dac: REVERT 00000dad: JUMPDEST 00000dae: DUP1 00000daf: CALLDATALOAD 00000db0: SWAP1 00000db1: PUSH1 0x20 00000db3: ADD 00000db4: SWAP2 00000db5: DUP5 00000db6: PUSH1 0x01 00000db8: DUP4 00000db9: MUL 00000dba: DUP5 00000dbb: ADD 00000dbc: GT 00000dbd: PUSH5 0x0100000000 00000dc3: DUP4 00000dc4: GT 00000dc5: OR 00000dc6: ISZERO 00000dc7: PUSH2 0x0dcf 00000dca: JUMPI 00000dcb: PUSH1 0x00 00000dcd: DUP1 00000dce: REVERT 00000dcf: JUMPDEST 00000dd0: SWAP1 00000dd1: SWAP2 00000dd2: SWAP3 00000dd3: SWAP4 00000dd4: SWAP2 00000dd5: SWAP3 00000dd6: SWAP4 00000dd7: SWAP1 00000dd8: POP 00000dd9: POP 00000dda: POP 00000ddb: PUSH2 0x1b98 00000dde: JUMP 00000ddf: JUMPDEST 00000de0: STOP 00000de1: JUMPDEST 00000de2: CALLVALUE 00000de3: DUP1 00000de4: ISZERO 00000de5: PUSH2 0x0ded 00000de8: JUMPI 00000de9: PUSH1 0x00 00000deb: DUP1 00000dec: REVERT 00000ded: JUMPDEST 00000dee: POP 00000def: PUSH2 0x0e3a 00000df2: PUSH1 0x04 00000df4: DUP1 00000df5: CALLDATASIZE 00000df6: SUB 00000df7: PUSH1 0x40 00000df9: DUP2 00000dfa: LT 00000dfb: ISZERO 00000dfc: PUSH2 0x0e04 00000dff: JUMPI 00000e00: PUSH1 0x00 00000e02: DUP1 00000e03: REVERT 00000e04: JUMPDEST 00000e05: DUP2 00000e06: ADD 00000e07: SWAP1 00000e08: DUP1 00000e09: DUP1 00000e0a: CALLDATALOAD 00000e0b: SWAP1 00000e0c: PUSH1 0x20 00000e0e: ADD 00000e0f: SWAP1 00000e10: SWAP3 00000e11: SWAP2 00000e12: SWAP1 00000e13: DUP1 00000e14: CALLDATALOAD 00000e15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e2a: AND 00000e2b: SWAP1 00000e2c: PUSH1 0x20 00000e2e: ADD 00000e2f: SWAP1 00000e30: SWAP3 00000e31: SWAP2 00000e32: SWAP1 00000e33: POP 00000e34: POP 00000e35: POP 00000e36: PUSH2 0x1cdb 00000e39: JUMP 00000e3a: JUMPDEST 00000e3b: STOP 00000e3c: JUMPDEST 00000e3d: CALLVALUE 00000e3e: DUP1 00000e3f: ISZERO 00000e40: PUSH2 0x0e48 00000e43: JUMPI 00000e44: PUSH1 0x00 00000e46: DUP1 00000e47: REVERT 00000e48: JUMPDEST 00000e49: POP 00000e4a: PUSH2 0x0eab 00000e4d: PUSH1 0x04 00000e4f: DUP1 00000e50: CALLDATASIZE 00000e51: SUB 00000e52: PUSH1 0x40 00000e54: DUP2 00000e55: LT 00000e56: ISZERO 00000e57: PUSH2 0x0e5f 00000e5a: JUMPI 00000e5b: PUSH1 0x00 00000e5d: DUP1 00000e5e: REVERT 00000e5f: JUMPDEST 00000e60: DUP2 00000e61: ADD 00000e62: SWAP1 00000e63: DUP1 00000e64: DUP1 00000e65: CALLDATALOAD 00000e66: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e7b: AND 00000e7c: SWAP1 00000e7d: PUSH1 0x20 00000e7f: ADD 00000e80: SWAP1 00000e81: SWAP3 00000e82: SWAP2 00000e83: SWAP1 00000e84: DUP1 00000e85: CALLDATALOAD 00000e86: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e9b: AND 00000e9c: SWAP1 00000e9d: PUSH1 0x20 00000e9f: ADD 00000ea0: SWAP1 00000ea1: SWAP3 00000ea2: SWAP2 00000ea3: SWAP1 00000ea4: POP 00000ea5: POP 00000ea6: POP 00000ea7: PUSH2 0x1d65 00000eaa: JUMP 00000eab: JUMPDEST 00000eac: PUSH1 0x40 00000eae: MLOAD 00000eaf: DUP1 00000eb0: DUP3 00000eb1: DUP2 00000eb2: MSTORE 00000eb3: PUSH1 0x20 00000eb5: ADD 00000eb6: SWAP2 00000eb7: POP 00000eb8: POP 00000eb9: PUSH1 0x40 00000ebb: MLOAD 00000ebc: DUP1 00000ebd: SWAP2 00000ebe: SUB 00000ebf: SWAP1 00000ec0: RETURN 00000ec1: JUMPDEST 00000ec2: CALLVALUE 00000ec3: DUP1 00000ec4: ISZERO 00000ec5: PUSH2 0x0ecd 00000ec8: JUMPI 00000ec9: PUSH1 0x00 00000ecb: DUP1 00000ecc: REVERT 00000ecd: JUMPDEST 00000ece: POP 00000ecf: PUSH2 0x0fc7 00000ed2: PUSH1 0x04 00000ed4: DUP1 00000ed5: CALLDATASIZE 00000ed6: SUB 00000ed7: PUSH1 0x80 00000ed9: DUP2 00000eda: LT 00000edb: ISZERO 00000edc: PUSH2 0x0ee4 00000edf: JUMPI 00000ee0: PUSH1 0x00 00000ee2: DUP1 00000ee3: REVERT 00000ee4: JUMPDEST 00000ee5: DUP2 00000ee6: ADD 00000ee7: SWAP1 00000ee8: DUP1 00000ee9: DUP1 00000eea: CALLDATALOAD 00000eeb: SWAP1 00000eec: PUSH1 0x20 00000eee: ADD 00000eef: SWAP1 00000ef0: PUSH5 0x0100000000 00000ef6: DUP2 00000ef7: GT 00000ef8: ISZERO 00000ef9: PUSH2 0x0f01 00000efc: JUMPI 00000efd: PUSH1 0x00 00000eff: DUP1 00000f00: REVERT 00000f01: JUMPDEST 00000f02: DUP3 00000f03: ADD 00000f04: DUP4 00000f05: PUSH1 0x20 00000f07: DUP3 00000f08: ADD 00000f09: GT 00000f0a: ISZERO 00000f0b: PUSH2 0x0f13 00000f0e: JUMPI 00000f0f: PUSH1 0x00 00000f11: DUP1 00000f12: REVERT 00000f13: JUMPDEST 00000f14: DUP1 00000f15: CALLDATALOAD 00000f16: SWAP1 00000f17: PUSH1 0x20 00000f19: ADD 00000f1a: SWAP2 00000f1b: DUP5 00000f1c: PUSH1 0x01 00000f1e: DUP4 00000f1f: MUL 00000f20: DUP5 00000f21: ADD 00000f22: GT 00000f23: PUSH5 0x0100000000 00000f29: DUP4 00000f2a: GT 00000f2b: OR 00000f2c: ISZERO 00000f2d: PUSH2 0x0f35 00000f30: JUMPI 00000f31: PUSH1 0x00 00000f33: DUP1 00000f34: REVERT 00000f35: JUMPDEST 00000f36: SWAP1 00000f37: SWAP2 00000f38: SWAP3 00000f39: SWAP4 00000f3a: SWAP2 00000f3b: SWAP3 00000f3c: SWAP4 00000f3d: SWAP1 00000f3e: DUP1 00000f3f: CALLDATALOAD 00000f40: SWAP1 00000f41: PUSH1 0x20 00000f43: ADD 00000f44: SWAP1 00000f45: PUSH5 0x0100000000 00000f4b: DUP2 00000f4c: GT 00000f4d: ISZERO 00000f4e: PUSH2 0x0f56 00000f51: JUMPI 00000f52: PUSH1 0x00 00000f54: DUP1 00000f55: REVERT 00000f56: JUMPDEST 00000f57: DUP3 00000f58: ADD 00000f59: DUP4 00000f5a: PUSH1 0x20 00000f5c: DUP3 00000f5d: ADD 00000f5e: GT 00000f5f: ISZERO 00000f60: PUSH2 0x0f68 00000f63: JUMPI 00000f64: PUSH1 0x00 00000f66: DUP1 00000f67: REVERT 00000f68: JUMPDEST 00000f69: DUP1 00000f6a: CALLDATALOAD 00000f6b: SWAP1 00000f6c: PUSH1 0x20 00000f6e: ADD 00000f6f: SWAP2 00000f70: DUP5 00000f71: PUSH1 0x01 00000f73: DUP4 00000f74: MUL 00000f75: DUP5 00000f76: ADD 00000f77: GT 00000f78: PUSH5 0x0100000000 00000f7e: DUP4 00000f7f: GT 00000f80: OR 00000f81: ISZERO 00000f82: PUSH2 0x0f8a 00000f85: JUMPI 00000f86: PUSH1 0x00 00000f88: DUP1 00000f89: REVERT 00000f8a: JUMPDEST 00000f8b: SWAP1 00000f8c: SWAP2 00000f8d: SWAP3 00000f8e: SWAP4 00000f8f: SWAP2 00000f90: SWAP3 00000f91: SWAP4 00000f92: SWAP1 00000f93: DUP1 00000f94: CALLDATALOAD 00000f95: PUSH1 0xff 00000f97: AND 00000f98: SWAP1 00000f99: PUSH1 0x20 00000f9b: ADD 00000f9c: SWAP1 00000f9d: SWAP3 00000f9e: SWAP2 00000f9f: SWAP1 00000fa0: DUP1 00000fa1: CALLDATALOAD 00000fa2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fb7: AND 00000fb8: SWAP1 00000fb9: PUSH1 0x20 00000fbb: ADD 00000fbc: SWAP1 00000fbd: SWAP3 00000fbe: SWAP2 00000fbf: SWAP1 00000fc0: POP 00000fc1: POP 00000fc2: POP 00000fc3: PUSH2 0x1dec 00000fc6: JUMP 00000fc7: JUMPDEST 00000fc8: STOP 00000fc9: JUMPDEST 00000fca: PUSH1 0x60 00000fcc: PUSH1 0x03 00000fce: DUP1 00000fcf: SLOAD 00000fd0: PUSH1 0x01 00000fd2: DUP2 00000fd3: PUSH1 0x01 00000fd5: AND 00000fd6: ISZERO 00000fd7: PUSH2 0x0100 00000fda: MUL 00000fdb: SUB 00000fdc: AND 00000fdd: PUSH1 0x02 00000fdf: SWAP1 00000fe0: DIV 00000fe1: DUP1 00000fe2: PUSH1 0x1f 00000fe4: ADD 00000fe5: PUSH1 0x20 00000fe7: DUP1 00000fe8: SWAP2 00000fe9: DIV 00000fea: MUL 00000feb: PUSH1 0x20 00000fed: ADD 00000fee: PUSH1 0x40 00000ff0: MLOAD 00000ff1: SWAP1 00000ff2: DUP2 00000ff3: ADD 00000ff4: PUSH1 0x40 00000ff6: MSTORE 00000ff7: DUP1 00000ff8: SWAP3 00000ff9: SWAP2 00000ffa: SWAP1 00000ffb: DUP2 00000ffc: DUP2 00000ffd: MSTORE 00000ffe: PUSH1 0x20 00001000: ADD 00001001: DUP3 00001002: DUP1 00001003: SLOAD 00001004: PUSH1 0x01 00001006: DUP2 00001007: PUSH1 0x01 00001009: AND 0000100a: ISZERO 0000100b: PUSH2 0x0100 0000100e: MUL 0000100f: SUB 00001010: AND 00001011: PUSH1 0x02 00001013: SWAP1 00001014: DIV 00001015: DUP1 00001016: ISZERO 00001017: PUSH2 0x1061 0000101a: JUMPI 0000101b: DUP1 0000101c: PUSH1 0x1f 0000101e: LT 0000101f: PUSH2 0x1036 00001022: JUMPI 00001023: PUSH2 0x0100 00001026: DUP1 00001027: DUP4 00001028: SLOAD 00001029: DIV 0000102a: MUL 0000102b: DUP4 0000102c: MSTORE 0000102d: SWAP2 0000102e: PUSH1 0x20 00001030: ADD 00001031: SWAP2 00001032: PUSH2 0x1061 00001035: JUMP 00001036: JUMPDEST 00001037: DUP3 00001038: ADD 00001039: SWAP2 0000103a: SWAP1 0000103b: PUSH1 0x00 0000103d: MSTORE 0000103e: PUSH1 0x20 00001040: PUSH1 0x00 00001042: KECCAK256 00001043: SWAP1 00001044: JUMPDEST 00001045: DUP2 00001046: SLOAD 00001047: DUP2 00001048: MSTORE 00001049: SWAP1 0000104a: PUSH1 0x01 0000104c: ADD 0000104d: SWAP1 0000104e: PUSH1 0x20 00001050: ADD 00001051: DUP1 00001052: DUP4 00001053: GT 00001054: PUSH2 0x1044 00001057: JUMPI 00001058: DUP3 00001059: SWAP1 0000105a: SUB 0000105b: PUSH1 0x1f 0000105d: AND 0000105e: DUP3 0000105f: ADD 00001060: SWAP2 00001061: JUMPDEST 00001062: POP 00001063: POP 00001064: POP 00001065: POP 00001066: POP 00001067: SWAP1 00001068: POP 00001069: SWAP1 0000106a: JUMP 0000106b: JUMPDEST 0000106c: PUSH1 0x00 0000106e: PUSH2 0x107f 00001071: PUSH2 0x1078 00001074: PUSH2 0x2064 00001077: JUMP 00001078: JUMPDEST 00001079: DUP5 0000107a: DUP5 0000107b: PUSH2 0x2073 0000107e: JUMP 0000107f: JUMPDEST 00001080: PUSH1 0x01 00001082: SWAP1 00001083: POP 00001084: SWAP3 00001085: SWAP2 00001086: POP 00001087: POP 00001088: JUMP 00001089: JUMPDEST 0000108a: PUSH1 0x40 0000108c: MLOAD 0000108d: DUP1 0000108e: PUSH1 0x40 00001090: ADD 00001091: PUSH1 0x40 00001093: MSTORE 00001094: DUP1 00001095: PUSH1 0x01 00001097: DUP2 00001098: MSTORE 00001099: PUSH1 0x20 0000109b: ADD 0000109c: PUSH32 0x8900000000000000000000000000000000000000000000000000000000000000 000010bd: DUP2 000010be: MSTORE 000010bf: POP 000010c0: DUP2 000010c1: JUMP 000010c2: JUMPDEST 000010c3: PUSH1 0x60 000010c5: PUSH2 0x10cc 000010c8: PUSH2 0x33a8 000010cb: JUMP 000010cc: JUMPDEST 000010cd: PUSH1 0x40 000010cf: MLOAD 000010d0: DUP1 000010d1: PUSH1 0x60 000010d3: ADD 000010d4: PUSH1 0x40 000010d6: MSTORE 000010d7: DUP1 000010d8: PUSH1 0x0a 000010da: PUSH1 0x00 000010dc: DUP11 000010dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010f2: AND 000010f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001108: AND 00001109: DUP2 0000110a: MSTORE 0000110b: PUSH1 0x20 0000110d: ADD 0000110e: SWAP1 0000110f: DUP2 00001110: MSTORE 00001111: PUSH1 0x20 00001113: ADD 00001114: PUSH1 0x00 00001116: KECCAK256 00001117: SLOAD 00001118: DUP2 00001119: MSTORE 0000111a: PUSH1 0x20 0000111c: ADD 0000111d: DUP9 0000111e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001133: AND 00001134: DUP2 00001135: MSTORE 00001136: PUSH1 0x20 00001138: ADD 00001139: DUP8 0000113a: DUP2 0000113b: MSTORE 0000113c: POP 0000113d: SWAP1 0000113e: POP 0000113f: PUSH2 0x114b 00001142: DUP8 00001143: DUP3 00001144: DUP8 00001145: DUP8 00001146: DUP8 00001147: PUSH2 0x226a 0000114a: JUMP 0000114b: JUMPDEST 0000114c: PUSH2 0x11a0 0000114f: JUMPI 00001150: PUSH1 0x40 00001152: MLOAD 00001153: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001174: DUP2 00001175: MSTORE 00001176: PUSH1 0x04 00001178: ADD 00001179: DUP1 0000117a: DUP1 0000117b: PUSH1 0x20 0000117d: ADD 0000117e: DUP3 0000117f: DUP2 00001180: SUB 00001181: DUP3 00001182: MSTORE 00001183: PUSH1 0x21 00001185: DUP2 00001186: MSTORE 00001187: PUSH1 0x20 00001189: ADD 0000118a: DUP1 0000118b: PUSH2 0x3672 0000118e: PUSH1 0x21 00001190: SWAP2 00001191: CODECOPY 00001192: PUSH1 0x40 00001194: ADD 00001195: SWAP2 00001196: POP 00001197: POP 00001198: PUSH1 0x40 0000119a: MLOAD 0000119b: DUP1 0000119c: SWAP2 0000119d: SUB 0000119e: SWAP1 0000119f: REVERT 000011a0: JUMPDEST 000011a1: PUSH2 0x11f3 000011a4: PUSH1 0x01 000011a6: PUSH1 0x0a 000011a8: PUSH1 0x00 000011aa: DUP11 000011ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011c0: AND 000011c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011d6: AND 000011d7: DUP2 000011d8: MSTORE 000011d9: PUSH1 0x20 000011db: ADD 000011dc: SWAP1 000011dd: DUP2 000011de: MSTORE 000011df: PUSH1 0x20 000011e1: ADD 000011e2: PUSH1 0x00 000011e4: KECCAK256 000011e5: SLOAD 000011e6: PUSH2 0x23a1 000011e9: SWAP1 000011ea: SWAP2 000011eb: SWAP1 000011ec: PUSH4 0xffffffff 000011f1: AND 000011f2: JUMP 000011f3: JUMPDEST 000011f4: PUSH1 0x0a 000011f6: PUSH1 0x00 000011f8: DUP10 000011f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000120e: AND 0000120f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001224: AND 00001225: DUP2 00001226: MSTORE 00001227: PUSH1 0x20 00001229: ADD 0000122a: SWAP1 0000122b: DUP2 0000122c: MSTORE 0000122d: PUSH1 0x20 0000122f: ADD 00001230: PUSH1 0x00 00001232: KECCAK256 00001233: DUP2 00001234: SWAP1 00001235: SSTORE 00001236: POP 00001237: PUSH32 0x5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b 00001258: DUP8 00001259: CALLER 0000125a: DUP9 0000125b: PUSH1 0x40 0000125d: MLOAD 0000125e: DUP1 0000125f: DUP5 00001260: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001275: AND 00001276: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000128b: AND 0000128c: DUP2 0000128d: MSTORE 0000128e: PUSH1 0x20 00001290: ADD 00001291: DUP4 00001292: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012a7: AND 000012a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012bd: AND 000012be: DUP2 000012bf: MSTORE 000012c0: PUSH1 0x20 000012c2: ADD 000012c3: DUP1 000012c4: PUSH1 0x20 000012c6: ADD 000012c7: DUP3 000012c8: DUP2 000012c9: SUB 000012ca: DUP3 000012cb: MSTORE 000012cc: DUP4 000012cd: DUP2 000012ce: DUP2 000012cf: MLOAD 000012d0: DUP2 000012d1: MSTORE 000012d2: PUSH1 0x20 000012d4: ADD 000012d5: SWAP2 000012d6: POP 000012d7: DUP1 000012d8: MLOAD 000012d9: SWAP1 000012da: PUSH1 0x20 000012dc: ADD 000012dd: SWAP1 000012de: DUP1 000012df: DUP4 000012e0: DUP4 000012e1: PUSH1 0x00 000012e3: JUMPDEST 000012e4: DUP4 000012e5: DUP2 000012e6: LT 000012e7: ISZERO 000012e8: PUSH2 0x12fe 000012eb: JUMPI 000012ec: DUP1 000012ed: DUP3 000012ee: ADD 000012ef: MLOAD 000012f0: DUP2 000012f1: DUP5 000012f2: ADD 000012f3: MSTORE 000012f4: PUSH1 0x20 000012f6: DUP2 000012f7: ADD 000012f8: SWAP1 000012f9: POP 000012fa: PUSH2 0x12e3 000012fd: JUMP 000012fe: JUMPDEST 000012ff: POP 00001300: POP 00001301: POP 00001302: POP 00001303: SWAP1 00001304: POP 00001305: SWAP1 00001306: DUP2 00001307: ADD 00001308: SWAP1 00001309: PUSH1 0x1f 0000130b: AND 0000130c: DUP1 0000130d: ISZERO 0000130e: PUSH2 0x132b 00001311: JUMPI 00001312: DUP1 00001313: DUP3 00001314: SUB 00001315: DUP1 00001316: MLOAD 00001317: PUSH1 0x01 00001319: DUP4 0000131a: PUSH1 0x20 0000131c: SUB 0000131d: PUSH2 0x0100 00001320: EXP 00001321: SUB 00001322: NOT 00001323: AND 00001324: DUP2 00001325: MSTORE 00001326: PUSH1 0x20 00001328: ADD 00001329: SWAP2 0000132a: POP 0000132b: JUMPDEST 0000132c: POP 0000132d: SWAP5 0000132e: POP 0000132f: POP 00001330: POP 00001331: POP 00001332: POP 00001333: PUSH1 0x40 00001335: MLOAD 00001336: DUP1 00001337: SWAP2 00001338: SUB 00001339: SWAP1 0000133a: LOG1 0000133b: PUSH1 0x00 0000133d: PUSH1 0x60 0000133f: ADDRESS 00001340: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001355: AND 00001356: DUP9 00001357: DUP11 00001358: PUSH1 0x40 0000135a: MLOAD 0000135b: PUSH1 0x20 0000135d: ADD 0000135e: DUP1 0000135f: DUP4 00001360: DUP1 00001361: MLOAD 00001362: SWAP1 00001363: PUSH1 0x20 00001365: ADD 00001366: SWAP1 00001367: DUP1 00001368: DUP4 00001369: DUP4 0000136a: JUMPDEST 0000136b: PUSH1 0x20 0000136d: DUP4 0000136e: LT 0000136f: PUSH2 0x138d 00001372: JUMPI 00001373: DUP1 00001374: MLOAD 00001375: DUP3 00001376: MSTORE 00001377: PUSH1 0x20 00001379: DUP3 0000137a: ADD 0000137b: SWAP2 0000137c: POP 0000137d: PUSH1 0x20 0000137f: DUP2 00001380: ADD 00001381: SWAP1 00001382: POP 00001383: PUSH1 0x20 00001385: DUP4 00001386: SUB 00001387: SWAP3 00001388: POP 00001389: PUSH2 0x136a 0000138c: JUMP 0000138d: JUMPDEST 0000138e: PUSH1 0x01 00001390: DUP4 00001391: PUSH1 0x20 00001393: SUB 00001394: PUSH2 0x0100 00001397: EXP 00001398: SUB 00001399: DUP1 0000139a: NOT 0000139b: DUP3 0000139c: MLOAD 0000139d: AND 0000139e: DUP2 0000139f: DUP5 000013a0: MLOAD 000013a1: AND 000013a2: DUP1 000013a3: DUP3 000013a4: OR 000013a5: DUP6 000013a6: MSTORE 000013a7: POP 000013a8: POP 000013a9: POP 000013aa: POP 000013ab: POP 000013ac: POP 000013ad: SWAP1 000013ae: POP 000013af: ADD 000013b0: DUP3 000013b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013c6: AND 000013c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013dc: AND 000013dd: PUSH1 0x60 000013df: SHL 000013e0: DUP2 000013e1: MSTORE 000013e2: PUSH1 0x14 000013e4: ADD 000013e5: SWAP3 000013e6: POP 000013e7: POP 000013e8: POP 000013e9: PUSH1 0x40 000013eb: MLOAD 000013ec: PUSH1 0x20 000013ee: DUP2 000013ef: DUP4 000013f0: SUB 000013f1: SUB 000013f2: DUP2 000013f3: MSTORE 000013f4: SWAP1 000013f5: PUSH1 0x40 000013f7: MSTORE 000013f8: PUSH1 0x40 000013fa: MLOAD 000013fb: DUP1 000013fc: DUP3 000013fd: DUP1 000013fe: MLOAD 000013ff: SWAP1 00001400: PUSH1 0x20 00001402: ADD 00001403: SWAP1 00001404: DUP1 00001405: DUP4 00001406: DUP4 00001407: JUMPDEST 00001408: PUSH1 0x20 0000140a: DUP4 0000140b: LT 0000140c: PUSH2 0x142a 0000140f: JUMPI 00001410: DUP1 00001411: MLOAD 00001412: DUP3 00001413: MSTORE 00001414: PUSH1 0x20 00001416: DUP3 00001417: ADD 00001418: SWAP2 00001419: POP 0000141a: PUSH1 0x20 0000141c: DUP2 0000141d: ADD 0000141e: SWAP1 0000141f: POP 00001420: PUSH1 0x20 00001422: DUP4 00001423: SUB 00001424: SWAP3 00001425: POP 00001426: PUSH2 0x1407 00001429: JUMP 0000142a: JUMPDEST 0000142b: PUSH1 0x01 0000142d: DUP4 0000142e: PUSH1 0x20 00001430: SUB 00001431: PUSH2 0x0100 00001434: EXP 00001435: SUB 00001436: DUP1 00001437: NOT 00001438: DUP3 00001439: MLOAD 0000143a: AND 0000143b: DUP2 0000143c: DUP5 0000143d: MLOAD 0000143e: AND 0000143f: DUP1 00001440: DUP3 00001441: OR 00001442: DUP6 00001443: MSTORE 00001444: POP 00001445: POP 00001446: POP 00001447: POP 00001448: POP 00001449: POP 0000144a: SWAP1 0000144b: POP 0000144c: ADD 0000144d: SWAP2 0000144e: POP 0000144f: POP 00001450: PUSH1 0x00 00001452: PUSH1 0x40 00001454: MLOAD 00001455: DUP1 00001456: DUP4 00001457: SUB 00001458: DUP2 00001459: PUSH1 0x00 0000145b: DUP7 0000145c: GAS 0000145d: CALL 0000145e: SWAP2 0000145f: POP 00001460: POP 00001461: RETURNDATASIZE 00001462: DUP1 00001463: PUSH1 0x00 00001465: DUP2 00001466: EQ 00001467: PUSH2 0x148c 0000146a: JUMPI 0000146b: PUSH1 0x40 0000146d: MLOAD 0000146e: SWAP2 0000146f: POP 00001470: PUSH1 0x1f 00001472: NOT 00001473: PUSH1 0x3f 00001475: RETURNDATASIZE 00001476: ADD 00001477: AND 00001478: DUP3 00001479: ADD 0000147a: PUSH1 0x40 0000147c: MSTORE 0000147d: RETURNDATASIZE 0000147e: DUP3 0000147f: MSTORE 00001480: RETURNDATASIZE 00001481: PUSH1 0x00 00001483: PUSH1 0x20 00001485: DUP5 00001486: ADD 00001487: RETURNDATACOPY 00001488: PUSH2 0x1491 0000148b: JUMP 0000148c: JUMPDEST 0000148d: PUSH1 0x60 0000148f: SWAP2 00001490: POP 00001491: JUMPDEST 00001492: POP 00001493: SWAP2 00001494: POP 00001495: SWAP2 00001496: POP 00001497: DUP2 00001498: PUSH2 0x1509 0000149b: JUMPI 0000149c: PUSH1 0x40 0000149e: MLOAD 0000149f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000014c0: DUP2 000014c1: MSTORE 000014c2: PUSH1 0x04 000014c4: ADD 000014c5: DUP1 000014c6: DUP1 000014c7: PUSH1 0x20 000014c9: ADD 000014ca: DUP3 000014cb: DUP2 000014cc: SUB 000014cd: DUP3 000014ce: MSTORE 000014cf: PUSH1 0x1c 000014d1: DUP2 000014d2: MSTORE 000014d3: PUSH1 0x20 000014d5: ADD 000014d6: DUP1 000014d7: PUSH32 0x46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000 000014f8: DUP2 000014f9: MSTORE 000014fa: POP 000014fb: PUSH1 0x20 000014fd: ADD 000014fe: SWAP2 000014ff: POP 00001500: POP 00001501: PUSH1 0x40 00001503: MLOAD 00001504: DUP1 00001505: SWAP2 00001506: SUB 00001507: SWAP1 00001508: REVERT 00001509: JUMPDEST 0000150a: DUP1 0000150b: SWAP4 0000150c: POP 0000150d: POP 0000150e: POP 0000150f: POP 00001510: SWAP6 00001511: SWAP5 00001512: POP 00001513: POP 00001514: POP 00001515: POP 00001516: POP 00001517: JUMP 00001518: JUMPDEST 00001519: PUSH1 0x40 0000151b: MLOAD 0000151c: DUP1 0000151d: PUSH1 0x40 0000151f: ADD 00001520: PUSH1 0x40 00001522: MSTORE 00001523: DUP1 00001524: PUSH1 0x01 00001526: DUP2 00001527: MSTORE 00001528: PUSH1 0x20 0000152a: ADD 0000152b: PUSH32 0x0100000000000000000000000000000000000000000000000000000000000000 0000154c: DUP2 0000154d: MSTORE 0000154e: POP 0000154f: DUP2 00001550: JUMP 00001551: JUMPDEST 00001552: PUSH1 0x40 00001554: MLOAD 00001555: DUP1 00001556: PUSH1 0x40 00001558: ADD 00001559: PUSH1 0x40 0000155b: MSTORE 0000155c: DUP1 0000155d: PUSH1 0x01 0000155f: DUP2 00001560: MSTORE 00001561: PUSH1 0x20 00001563: ADD 00001564: PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 00001585: DUP2 00001586: MSTORE 00001587: POP 00001588: DUP2 00001589: JUMP 0000158a: JUMPDEST 0000158b: PUSH1 0x00 0000158d: PUSH1 0x02 0000158f: SLOAD 00001590: SWAP1 00001591: POP 00001592: SWAP1 00001593: JUMP 00001594: JUMPDEST 00001595: PUSH1 0x00 00001597: PUSH1 0x09 00001599: SLOAD 0000159a: SWAP1 0000159b: POP 0000159c: SWAP1 0000159d: JUMP 0000159e: JUMPDEST 0000159f: PUSH1 0x00 000015a1: PUSH2 0x15ab 000015a4: DUP5 000015a5: DUP5 000015a6: DUP5 000015a7: PUSH2 0x2429 000015aa: JUMP 000015ab: JUMPDEST 000015ac: PUSH2 0x166c 000015af: DUP5 000015b0: PUSH2 0x15b7 000015b3: PUSH2 0x2064 000015b6: JUMP 000015b7: JUMPDEST 000015b8: PUSH2 0x1667 000015bb: DUP6 000015bc: PUSH1 0x40 000015be: MLOAD 000015bf: DUP1 000015c0: PUSH1 0x60 000015c2: ADD 000015c3: PUSH1 0x40 000015c5: MSTORE 000015c6: DUP1 000015c7: PUSH1 0x28 000015c9: DUP2 000015ca: MSTORE 000015cb: PUSH1 0x20 000015cd: ADD 000015ce: PUSH2 0x364a 000015d1: PUSH1 0x28 000015d3: SWAP2 000015d4: CODECOPY 000015d5: PUSH1 0x01 000015d7: PUSH1 0x00 000015d9: DUP12 000015da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015ef: AND 000015f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001605: AND 00001606: DUP2 00001607: MSTORE 00001608: PUSH1 0x20 0000160a: ADD 0000160b: SWAP1 0000160c: DUP2 0000160d: MSTORE 0000160e: PUSH1 0x20 00001610: ADD 00001611: PUSH1 0x00 00001613: KECCAK256 00001614: PUSH1 0x00 00001616: PUSH2 0x161d 00001619: PUSH2 0x2064 0000161c: JUMP 0000161d: JUMPDEST 0000161e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001633: AND 00001634: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001649: AND 0000164a: DUP2 0000164b: MSTORE 0000164c: PUSH1 0x20 0000164e: ADD 0000164f: SWAP1 00001650: DUP2 00001651: MSTORE 00001652: PUSH1 0x20 00001654: ADD 00001655: PUSH1 0x00 00001657: KECCAK256 00001658: SLOAD 00001659: PUSH2 0x26ea 0000165c: SWAP1 0000165d: SWAP3 0000165e: SWAP2 0000165f: SWAP1 00001660: PUSH4 0xffffffff 00001665: AND 00001666: JUMP 00001667: JUMPDEST 00001668: PUSH2 0x2073 0000166b: JUMP 0000166c: JUMPDEST 0000166d: PUSH1 0x01 0000166f: SWAP1 00001670: POP 00001671: SWAP4 00001672: SWAP3 00001673: POP 00001674: POP 00001675: POP 00001676: JUMP 00001677: JUMPDEST 00001678: PUSH1 0x00 0000167a: PUSH1 0x06 0000167c: PUSH1 0x00 0000167e: DUP4 0000167f: DUP2 00001680: MSTORE 00001681: PUSH1 0x20 00001683: ADD 00001684: SWAP1 00001685: DUP2 00001686: MSTORE 00001687: PUSH1 0x20 00001689: ADD 0000168a: PUSH1 0x00 0000168c: KECCAK256 0000168d: PUSH1 0x02 0000168f: ADD 00001690: SLOAD 00001691: SWAP1 00001692: POP 00001693: SWAP2 00001694: SWAP1 00001695: POP 00001696: JUMP 00001697: JUMPDEST 00001698: PUSH1 0x00 0000169a: PUSH1 0x0a 0000169c: PUSH1 0x00 0000169e: DUP4 0000169f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016b4: AND 000016b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016ca: AND 000016cb: DUP2 000016cc: MSTORE 000016cd: PUSH1 0x20 000016cf: ADD 000016d0: SWAP1 000016d1: DUP2 000016d2: MSTORE 000016d3: PUSH1 0x20 000016d5: ADD 000016d6: PUSH1 0x00 000016d8: KECCAK256 000016d9: SLOAD 000016da: SWAP1 000016db: POP 000016dc: SWAP2 000016dd: SWAP1 000016de: POP 000016df: JUMP 000016e0: JUMPDEST 000016e1: PUSH2 0x16f1 000016e4: PUSH2 0x16eb 000016e7: PUSH2 0x2064 000016ea: JUMP 000016eb: JUMPDEST 000016ec: DUP3 000016ed: PUSH2 0x27aa 000016f0: JUMP 000016f1: JUMPDEST 000016f2: POP 000016f3: JUMP 000016f4: JUMPDEST 000016f5: PUSH2 0x171b 000016f8: PUSH1 0x06 000016fa: PUSH1 0x00 000016fc: DUP5 000016fd: DUP2 000016fe: MSTORE 000016ff: PUSH1 0x20 00001701: ADD 00001702: SWAP1 00001703: DUP2 00001704: MSTORE 00001705: PUSH1 0x20 00001707: ADD 00001708: PUSH1 0x00 0000170a: KECCAK256 0000170b: PUSH1 0x02 0000170d: ADD 0000170e: SLOAD 0000170f: PUSH2 0x1716 00001712: PUSH2 0x2064 00001715: JUMP 00001716: JUMPDEST 00001717: PUSH2 0x1972 0000171a: JUMP 0000171b: JUMPDEST 0000171c: PUSH2 0x1770 0000171f: JUMPI 00001720: PUSH1 0x40 00001722: MLOAD 00001723: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001744: DUP2 00001745: MSTORE 00001746: PUSH1 0x04 00001748: ADD 00001749: DUP1 0000174a: DUP1 0000174b: PUSH1 0x20 0000174d: ADD 0000174e: DUP3 0000174f: DUP2 00001750: SUB 00001751: DUP3 00001752: MSTORE 00001753: PUSH1 0x2f 00001755: DUP2 00001756: MSTORE 00001757: PUSH1 0x20 00001759: ADD 0000175a: DUP1 0000175b: PUSH2 0x34ca 0000175e: PUSH1 0x2f 00001760: SWAP2 00001761: CODECOPY 00001762: PUSH1 0x40 00001764: ADD 00001765: SWAP2 00001766: POP 00001767: POP 00001768: PUSH1 0x40 0000176a: MLOAD 0000176b: DUP1 0000176c: SWAP2 0000176d: SUB 0000176e: SWAP1 0000176f: REVERT 00001770: JUMPDEST 00001771: PUSH2 0x177a 00001774: DUP3 00001775: DUP3 00001776: PUSH2 0x296e 00001779: JUMP 0000177a: JUMPDEST 0000177b: POP 0000177c: POP 0000177d: JUMP 0000177e: JUMPDEST 0000177f: PUSH1 0x00 00001781: PUSH1 0x05 00001783: PUSH1 0x00 00001785: SWAP1 00001786: SLOAD 00001787: SWAP1 00001788: PUSH2 0x0100 0000178b: EXP 0000178c: SWAP1 0000178d: DIV 0000178e: PUSH1 0xff 00001790: AND 00001791: SWAP1 00001792: POP 00001793: SWAP1 00001794: JUMP 00001795: JUMPDEST 00001796: PUSH1 0x00 00001798: DUP1 00001799: CHAINID 0000179a: SWAP1 0000179b: POP 0000179c: DUP1 0000179d: SWAP2 0000179e: POP 0000179f: POP 000017a0: SWAP1 000017a1: JUMP 000017a2: JUMPDEST 000017a3: PUSH2 0x17aa 000017a6: PUSH2 0x2064 000017a9: JUMP 000017aa: JUMPDEST 000017ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017c0: AND 000017c1: DUP2 000017c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017d7: AND 000017d8: EQ 000017d9: PUSH2 0x182d 000017dc: JUMPI 000017dd: PUSH1 0x40 000017df: MLOAD 000017e0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001801: DUP2 00001802: MSTORE 00001803: PUSH1 0x04 00001805: ADD 00001806: DUP1 00001807: DUP1 00001808: PUSH1 0x20 0000180a: ADD 0000180b: DUP3 0000180c: DUP2 0000180d: SUB 0000180e: DUP3 0000180f: MSTORE 00001810: PUSH1 0x2f 00001812: DUP2 00001813: MSTORE 00001814: PUSH1 0x20 00001816: ADD 00001817: DUP1 00001818: PUSH2 0x3722 0000181b: PUSH1 0x2f 0000181d: SWAP2 0000181e: CODECOPY 0000181f: PUSH1 0x40 00001821: ADD 00001822: SWAP2 00001823: POP 00001824: POP 00001825: PUSH1 0x40 00001827: MLOAD 00001828: DUP1 00001829: SWAP2 0000182a: SUB 0000182b: SWAP1 0000182c: REVERT 0000182d: JUMPDEST 0000182e: PUSH2 0x1837 00001831: DUP3 00001832: DUP3 00001833: PUSH2 0x2a02 00001836: JUMP 00001837: JUMPDEST 00001838: POP 00001839: POP 0000183a: JUMP 0000183b: JUMPDEST 0000183c: PUSH1 0x00 0000183e: PUSH2 0x18e4 00001841: PUSH2 0x1848 00001844: PUSH2 0x2064 00001847: JUMP 00001848: JUMPDEST 00001849: DUP5 0000184a: PUSH2 0x18df 0000184d: DUP6 0000184e: PUSH1 0x01 00001850: PUSH1 0x00 00001852: PUSH2 0x1859 00001855: PUSH2 0x2064 00001858: JUMP 00001859: JUMPDEST 0000185a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000186f: AND 00001870: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001885: AND 00001886: DUP2 00001887: MSTORE 00001888: PUSH1 0x20 0000188a: ADD 0000188b: SWAP1 0000188c: DUP2 0000188d: MSTORE 0000188e: PUSH1 0x20 00001890: ADD 00001891: PUSH1 0x00 00001893: KECCAK256 00001894: PUSH1 0x00 00001896: DUP10 00001897: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018ac: AND 000018ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018c2: AND 000018c3: DUP2 000018c4: MSTORE 000018c5: PUSH1 0x20 000018c7: ADD 000018c8: SWAP1 000018c9: DUP2 000018ca: MSTORE 000018cb: PUSH1 0x20 000018cd: ADD 000018ce: PUSH1 0x00 000018d0: KECCAK256 000018d1: SLOAD 000018d2: PUSH2 0x23a1 000018d5: SWAP1 000018d6: SWAP2 000018d7: SWAP1 000018d8: PUSH4 0xffffffff 000018dd: AND 000018de: JUMP 000018df: JUMPDEST 000018e0: PUSH2 0x2073 000018e3: JUMP 000018e4: JUMPDEST 000018e5: PUSH1 0x01 000018e7: SWAP1 000018e8: POP 000018e9: SWAP3 000018ea: SWAP2 000018eb: POP 000018ec: POP 000018ed: JUMP 000018ee: JUMPDEST 000018ef: PUSH1 0x89 000018f1: DUP2 000018f2: JUMP 000018f3: JUMPDEST 000018f4: PUSH1 0x00 000018f6: DUP1 000018f7: PUSH1 0x00 000018f9: DUP4 000018fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000190f: AND 00001910: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001925: AND 00001926: DUP2 00001927: MSTORE 00001928: PUSH1 0x20 0000192a: ADD 0000192b: SWAP1 0000192c: DUP2 0000192d: MSTORE 0000192e: PUSH1 0x20 00001930: ADD 00001931: PUSH1 0x00 00001933: KECCAK256 00001934: SLOAD 00001935: SWAP1 00001936: POP 00001937: SWAP2 00001938: SWAP1 00001939: POP 0000193a: JUMP 0000193b: JUMPDEST 0000193c: PUSH1 0x01 0000193e: DUP2 0000193f: JUMP 00001940: JUMPDEST 00001941: PUSH1 0x00 00001943: PUSH2 0x196a 00001946: DUP3 00001947: PUSH1 0x06 00001949: PUSH1 0x00 0000194b: DUP7 0000194c: DUP2 0000194d: MSTORE 0000194e: PUSH1 0x20 00001950: ADD 00001951: SWAP1 00001952: DUP2 00001953: MSTORE 00001954: PUSH1 0x20 00001956: ADD 00001957: PUSH1 0x00 00001959: KECCAK256 0000195a: PUSH1 0x00 0000195c: ADD 0000195d: PUSH2 0x2a96 00001960: SWAP1 00001961: SWAP2 00001962: SWAP1 00001963: PUSH4 0xffffffff 00001968: AND 00001969: JUMP 0000196a: JUMPDEST 0000196b: SWAP1 0000196c: POP 0000196d: SWAP3 0000196e: SWAP2 0000196f: POP 00001970: POP 00001971: JUMP 00001972: JUMPDEST 00001973: PUSH1 0x00 00001975: PUSH2 0x199c 00001978: DUP3 00001979: PUSH1 0x06 0000197b: PUSH1 0x00 0000197d: DUP7 0000197e: DUP2 0000197f: MSTORE 00001980: PUSH1 0x20 00001982: ADD 00001983: SWAP1 00001984: DUP2 00001985: MSTORE 00001986: PUSH1 0x20 00001988: ADD 00001989: PUSH1 0x00 0000198b: KECCAK256 0000198c: PUSH1 0x00 0000198e: ADD 0000198f: PUSH2 0x2ab0 00001992: SWAP1 00001993: SWAP2 00001994: SWAP1 00001995: PUSH4 0xffffffff 0000199a: AND 0000199b: JUMP 0000199c: JUMPDEST 0000199d: SWAP1 0000199e: POP 0000199f: SWAP3 000019a0: SWAP2 000019a1: POP 000019a2: POP 000019a3: JUMP 000019a4: JUMPDEST 000019a5: PUSH1 0x60 000019a7: PUSH1 0x04 000019a9: DUP1 000019aa: SLOAD 000019ab: PUSH1 0x01 000019ad: DUP2 000019ae: PUSH1 0x01 000019b0: AND 000019b1: ISZERO 000019b2: PUSH2 0x0100 000019b5: MUL 000019b6: SUB 000019b7: AND 000019b8: PUSH1 0x02 000019ba: SWAP1 000019bb: DIV 000019bc: DUP1 000019bd: PUSH1 0x1f 000019bf: ADD 000019c0: PUSH1 0x20 000019c2: DUP1 000019c3: SWAP2 000019c4: DIV 000019c5: MUL 000019c6: PUSH1 0x20 000019c8: ADD 000019c9: PUSH1 0x40 000019cb: MLOAD 000019cc: SWAP1 000019cd: DUP2 000019ce: ADD 000019cf: PUSH1 0x40 000019d1: MSTORE 000019d2: DUP1 000019d3: SWAP3 000019d4: SWAP2 000019d5: SWAP1 000019d6: DUP2 000019d7: DUP2 000019d8: MSTORE 000019d9: PUSH1 0x20 000019db: ADD 000019dc: DUP3 000019dd: DUP1 000019de: SLOAD 000019df: PUSH1 0x01 000019e1: DUP2 000019e2: PUSH1 0x01 000019e4: AND 000019e5: ISZERO 000019e6: PUSH2 0x0100 000019e9: MUL 000019ea: SUB 000019eb: AND 000019ec: PUSH1 0x02 000019ee: SWAP1 000019ef: DIV 000019f0: DUP1 000019f1: ISZERO 000019f2: PUSH2 0x1a3c 000019f5: JUMPI 000019f6: DUP1 000019f7: PUSH1 0x1f 000019f9: LT 000019fa: PUSH2 0x1a11 000019fd: JUMPI 000019fe: PUSH2 0x0100 00001a01: DUP1 00001a02: DUP4 00001a03: SLOAD 00001a04: DIV 00001a05: MUL 00001a06: DUP4 00001a07: MSTORE 00001a08: SWAP2 00001a09: PUSH1 0x20 00001a0b: ADD 00001a0c: SWAP2 00001a0d: PUSH2 0x1a3c 00001a10: JUMP 00001a11: JUMPDEST 00001a12: DUP3 00001a13: ADD 00001a14: SWAP2 00001a15: SWAP1 00001a16: PUSH1 0x00 00001a18: MSTORE 00001a19: PUSH1 0x20 00001a1b: PUSH1 0x00 00001a1d: KECCAK256 00001a1e: SWAP1 00001a1f: JUMPDEST 00001a20: DUP2 00001a21: SLOAD 00001a22: DUP2 00001a23: MSTORE 00001a24: SWAP1 00001a25: PUSH1 0x01 00001a27: ADD 00001a28: SWAP1 00001a29: PUSH1 0x20 00001a2b: ADD 00001a2c: DUP1 00001a2d: DUP4 00001a2e: GT 00001a2f: PUSH2 0x1a1f 00001a32: JUMPI 00001a33: DUP3 00001a34: SWAP1 00001a35: SUB 00001a36: PUSH1 0x1f 00001a38: AND 00001a39: DUP3 00001a3a: ADD 00001a3b: SWAP2 00001a3c: JUMPDEST 00001a3d: POP 00001a3e: POP 00001a3f: POP 00001a40: POP 00001a41: POP 00001a42: SWAP1 00001a43: POP 00001a44: SWAP1 00001a45: JUMP 00001a46: JUMPDEST 00001a47: PUSH1 0x00 00001a49: DUP1 00001a4a: SHL 00001a4b: DUP2 00001a4c: JUMP 00001a4d: JUMPDEST 00001a4e: PUSH1 0x40 00001a50: MLOAD 00001a51: DUP1 00001a52: DUP1 00001a53: PUSH32 0x4445504f5349544f525f524f4c45000000000000000000000000000000000000 00001a74: DUP2 00001a75: MSTORE 00001a76: POP 00001a77: PUSH1 0x0e 00001a79: ADD 00001a7a: SWAP1 00001a7b: POP 00001a7c: PUSH1 0x40 00001a7e: MLOAD 00001a7f: DUP1 00001a80: SWAP2 00001a81: SUB 00001a82: SWAP1 00001a83: KECCAK256 00001a84: DUP2 00001a85: JUMP 00001a86: JUMPDEST 00001a87: PUSH1 0x00 00001a89: PUSH2 0x1b49 00001a8c: PUSH2 0x1a93 00001a8f: PUSH2 0x2064 00001a92: JUMP 00001a93: JUMPDEST 00001a94: DUP5 00001a95: PUSH2 0x1b44 00001a98: DUP6 00001a99: PUSH1 0x40 00001a9b: MLOAD 00001a9c: DUP1 00001a9d: PUSH1 0x60 00001a9f: ADD 00001aa0: PUSH1 0x40 00001aa2: MSTORE 00001aa3: DUP1 00001aa4: PUSH1 0x25 00001aa6: DUP2 00001aa7: MSTORE 00001aa8: PUSH1 0x20 00001aaa: ADD 00001aab: PUSH2 0x36fd 00001aae: PUSH1 0x25 00001ab0: SWAP2 00001ab1: CODECOPY 00001ab2: PUSH1 0x01 00001ab4: PUSH1 0x00 00001ab6: PUSH2 0x1abd 00001ab9: PUSH2 0x2064 00001abc: JUMP 00001abd: JUMPDEST 00001abe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ad3: AND 00001ad4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ae9: AND 00001aea: DUP2 00001aeb: MSTORE 00001aec: PUSH1 0x20 00001aee: ADD 00001aef: SWAP1 00001af0: DUP2 00001af1: MSTORE 00001af2: PUSH1 0x20 00001af4: ADD 00001af5: PUSH1 0x00 00001af7: KECCAK256 00001af8: PUSH1 0x00 00001afa: DUP11 00001afb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b10: AND 00001b11: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b26: AND 00001b27: DUP2 00001b28: MSTORE 00001b29: PUSH1 0x20 00001b2b: ADD 00001b2c: SWAP1 00001b2d: DUP2 00001b2e: MSTORE 00001b2f: PUSH1 0x20 00001b31: ADD 00001b32: PUSH1 0x00 00001b34: KECCAK256 00001b35: SLOAD 00001b36: PUSH2 0x26ea 00001b39: SWAP1 00001b3a: SWAP3 00001b3b: SWAP2 00001b3c: SWAP1 00001b3d: PUSH4 0xffffffff 00001b42: AND 00001b43: JUMP 00001b44: JUMPDEST 00001b45: PUSH2 0x2073 00001b48: JUMP 00001b49: JUMPDEST 00001b4a: PUSH1 0x01 00001b4c: SWAP1 00001b4d: POP 00001b4e: SWAP3 00001b4f: SWAP2 00001b50: POP 00001b51: POP 00001b52: JUMP 00001b53: JUMPDEST 00001b54: PUSH1 0x00 00001b56: PUSH2 0x1b67 00001b59: PUSH2 0x1b60 00001b5c: PUSH2 0x2064 00001b5f: JUMP 00001b60: JUMPDEST 00001b61: DUP5 00001b62: DUP5 00001b63: PUSH2 0x2429 00001b66: JUMP 00001b67: JUMPDEST 00001b68: PUSH1 0x01 00001b6a: SWAP1 00001b6b: POP 00001b6c: SWAP3 00001b6d: SWAP2 00001b6e: POP 00001b6f: POP 00001b70: JUMP 00001b71: JUMPDEST 00001b72: PUSH1 0x00 00001b74: PUSH2 0x1b91 00001b77: PUSH1 0x06 00001b79: PUSH1 0x00 00001b7b: DUP5 00001b7c: DUP2 00001b7d: MSTORE 00001b7e: PUSH1 0x20 00001b80: ADD 00001b81: SWAP1 00001b82: DUP2 00001b83: MSTORE 00001b84: PUSH1 0x20 00001b86: ADD 00001b87: PUSH1 0x00 00001b89: KECCAK256 00001b8a: PUSH1 0x00 00001b8c: ADD 00001b8d: PUSH2 0x2ae0 00001b90: JUMP 00001b91: JUMPDEST 00001b92: SWAP1 00001b93: POP 00001b94: SWAP2 00001b95: SWAP1 00001b96: POP 00001b97: JUMP 00001b98: JUMPDEST 00001b99: PUSH1 0x40 00001b9b: MLOAD 00001b9c: DUP1 00001b9d: DUP1 00001b9e: PUSH32 0x4445504f5349544f525f524f4c45000000000000000000000000000000000000 00001bbf: DUP2 00001bc0: MSTORE 00001bc1: POP 00001bc2: PUSH1 0x0e 00001bc4: ADD 00001bc5: SWAP1 00001bc6: POP 00001bc7: PUSH1 0x40 00001bc9: MLOAD 00001bca: DUP1 00001bcb: SWAP2 00001bcc: SUB 00001bcd: SWAP1 00001bce: KECCAK256 00001bcf: PUSH2 0x1bdf 00001bd2: DUP2 00001bd3: PUSH2 0x1bda 00001bd6: PUSH2 0x2064 00001bd9: JUMP 00001bda: JUMPDEST 00001bdb: PUSH2 0x1972 00001bde: JUMP 00001bdf: JUMPDEST 00001be0: PUSH1 0x07 00001be2: SWAP1 00001be3: PUSH2 0x1ca4 00001be6: JUMPI 00001be7: PUSH1 0x40 00001be9: MLOAD 00001bea: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c0b: DUP2 00001c0c: MSTORE 00001c0d: PUSH1 0x04 00001c0f: ADD 00001c10: DUP1 00001c11: DUP1 00001c12: PUSH1 0x20 00001c14: ADD 00001c15: DUP3 00001c16: DUP2 00001c17: SUB 00001c18: DUP3 00001c19: MSTORE 00001c1a: DUP4 00001c1b: DUP2 00001c1c: DUP2 00001c1d: SLOAD 00001c1e: PUSH1 0x01 00001c20: DUP2 00001c21: PUSH1 0x01 00001c23: AND 00001c24: ISZERO 00001c25: PUSH2 0x0100 00001c28: MUL 00001c29: SUB 00001c2a: AND 00001c2b: PUSH1 0x02 00001c2d: SWAP1 00001c2e: DIV 00001c2f: DUP2 00001c30: MSTORE 00001c31: PUSH1 0x20 00001c33: ADD 00001c34: SWAP2 00001c35: POP 00001c36: DUP1 00001c37: SLOAD 00001c38: PUSH1 0x01 00001c3a: DUP2 00001c3b: PUSH1 0x01 00001c3d: AND 00001c3e: ISZERO 00001c3f: PUSH2 0x0100 00001c42: MUL 00001c43: SUB 00001c44: AND 00001c45: PUSH1 0x02 00001c47: SWAP1 00001c48: DIV 00001c49: DUP1 00001c4a: ISZERO 00001c4b: PUSH2 0x1c95 00001c4e: JUMPI 00001c4f: DUP1 00001c50: PUSH1 0x1f 00001c52: LT 00001c53: PUSH2 0x1c6a 00001c56: JUMPI 00001c57: PUSH2 0x0100 00001c5a: DUP1 00001c5b: DUP4 00001c5c: SLOAD 00001c5d: DIV 00001c5e: MUL 00001c5f: DUP4 00001c60: MSTORE 00001c61: SWAP2 00001c62: PUSH1 0x20 00001c64: ADD 00001c65: SWAP2 00001c66: PUSH2 0x1c95 00001c69: JUMP 00001c6a: JUMPDEST 00001c6b: DUP3 00001c6c: ADD 00001c6d: SWAP2 00001c6e: SWAP1 00001c6f: PUSH1 0x00 00001c71: MSTORE 00001c72: PUSH1 0x20 00001c74: PUSH1 0x00 00001c76: KECCAK256 00001c77: SWAP1 00001c78: JUMPDEST 00001c79: DUP2 00001c7a: SLOAD 00001c7b: DUP2 00001c7c: MSTORE 00001c7d: SWAP1 00001c7e: PUSH1 0x01 00001c80: ADD 00001c81: SWAP1 00001c82: PUSH1 0x20 00001c84: ADD 00001c85: DUP1 00001c86: DUP4 00001c87: GT 00001c88: PUSH2 0x1c78 00001c8b: JUMPI 00001c8c: DUP3 00001c8d: SWAP1 00001c8e: SUB 00001c8f: PUSH1 0x1f 00001c91: AND 00001c92: DUP3 00001c93: ADD 00001c94: SWAP2 00001c95: JUMPDEST 00001c96: POP 00001c97: POP 00001c98: SWAP3 00001c99: POP 00001c9a: POP 00001c9b: POP 00001c9c: PUSH1 0x40 00001c9e: MLOAD 00001c9f: DUP1 00001ca0: SWAP2 00001ca1: SUB 00001ca2: SWAP1 00001ca3: REVERT 00001ca4: JUMPDEST 00001ca5: POP 00001ca6: PUSH1 0x00 00001ca8: DUP4 00001ca9: DUP4 00001caa: PUSH1 0x20 00001cac: DUP2 00001cad: LT 00001cae: ISZERO 00001caf: PUSH2 0x1cb7 00001cb2: JUMPI 00001cb3: PUSH1 0x00 00001cb5: DUP1 00001cb6: REVERT 00001cb7: JUMPDEST 00001cb8: DUP2 00001cb9: ADD 00001cba: SWAP1 00001cbb: DUP1 00001cbc: DUP1 00001cbd: CALLDATALOAD 00001cbe: SWAP1 00001cbf: PUSH1 0x20 00001cc1: ADD 00001cc2: SWAP1 00001cc3: SWAP3 00001cc4: SWAP2 00001cc5: SWAP1 00001cc6: POP 00001cc7: POP 00001cc8: POP 00001cc9: SWAP1 00001cca: POP 00001ccb: PUSH2 0x1cd4 00001cce: DUP6 00001ccf: DUP3 00001cd0: PUSH2 0x2af5 00001cd3: JUMP 00001cd4: JUMPDEST 00001cd5: POP 00001cd6: POP 00001cd7: POP 00001cd8: POP 00001cd9: POP 00001cda: JUMP 00001cdb: JUMPDEST 00001cdc: PUSH2 0x1d02 00001cdf: PUSH1 0x06 00001ce1: PUSH1 0x00 00001ce3: DUP5 00001ce4: DUP2 00001ce5: MSTORE 00001ce6: PUSH1 0x20 00001ce8: ADD 00001ce9: SWAP1 00001cea: DUP2 00001ceb: MSTORE 00001cec: PUSH1 0x20 00001cee: ADD 00001cef: PUSH1 0x00 00001cf1: KECCAK256 00001cf2: PUSH1 0x02 00001cf4: ADD 00001cf5: SLOAD 00001cf6: PUSH2 0x1cfd 00001cf9: PUSH2 0x2064 00001cfc: JUMP 00001cfd: JUMPDEST 00001cfe: PUSH2 0x1972 00001d01: JUMP 00001d02: JUMPDEST 00001d03: PUSH2 0x1d57 00001d06: JUMPI 00001d07: PUSH1 0x40 00001d09: MLOAD 00001d0a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001d2b: DUP2 00001d2c: MSTORE 00001d2d: PUSH1 0x04 00001d2f: ADD 00001d30: DUP1 00001d31: DUP1 00001d32: PUSH1 0x20 00001d34: ADD 00001d35: DUP3 00001d36: DUP2 00001d37: SUB 00001d38: DUP3 00001d39: MSTORE 00001d3a: PUSH1 0x30 00001d3c: DUP2 00001d3d: MSTORE 00001d3e: PUSH1 0x20 00001d40: ADD 00001d41: DUP1 00001d42: PUSH2 0x35f5 00001d45: PUSH1 0x30 00001d47: SWAP2 00001d48: CODECOPY 00001d49: PUSH1 0x40 00001d4b: ADD 00001d4c: SWAP2 00001d4d: POP 00001d4e: POP 00001d4f: PUSH1 0x40 00001d51: MLOAD 00001d52: DUP1 00001d53: SWAP2 00001d54: SUB 00001d55: SWAP1 00001d56: REVERT 00001d57: JUMPDEST 00001d58: PUSH2 0x1d61 00001d5b: DUP3 00001d5c: DUP3 00001d5d: PUSH2 0x2a02 00001d60: JUMP 00001d61: JUMPDEST 00001d62: POP 00001d63: POP 00001d64: JUMP 00001d65: JUMPDEST 00001d66: PUSH1 0x00 00001d68: PUSH1 0x01 00001d6a: PUSH1 0x00 00001d6c: DUP5 00001d6d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d82: AND 00001d83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d98: AND 00001d99: DUP2 00001d9a: MSTORE 00001d9b: PUSH1 0x20 00001d9d: ADD 00001d9e: SWAP1 00001d9f: DUP2 00001da0: MSTORE 00001da1: PUSH1 0x20 00001da3: ADD 00001da4: PUSH1 0x00 00001da6: KECCAK256 00001da7: PUSH1 0x00 00001da9: DUP4 00001daa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dbf: AND 00001dc0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dd5: AND 00001dd6: DUP2 00001dd7: MSTORE 00001dd8: PUSH1 0x20 00001dda: ADD 00001ddb: SWAP1 00001ddc: DUP2 00001ddd: MSTORE 00001dde: PUSH1 0x20 00001de0: ADD 00001de1: PUSH1 0x00 00001de3: KECCAK256 00001de4: SLOAD 00001de5: SWAP1 00001de6: POP 00001de7: SWAP3 00001de8: SWAP2 00001de9: POP 00001dea: POP 00001deb: JUMP 00001dec: JUMPDEST 00001ded: PUSH1 0x08 00001def: PUSH1 0x00 00001df1: SWAP1 00001df2: SLOAD 00001df3: SWAP1 00001df4: PUSH2 0x0100 00001df7: EXP 00001df8: SWAP1 00001df9: DIV 00001dfa: PUSH1 0xff 00001dfc: AND 00001dfd: ISZERO 00001dfe: PUSH2 0x1e6f 00001e01: JUMPI 00001e02: PUSH1 0x40 00001e04: MLOAD 00001e05: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001e26: DUP2 00001e27: MSTORE 00001e28: PUSH1 0x04 00001e2a: ADD 00001e2b: DUP1 00001e2c: DUP1 00001e2d: PUSH1 0x20 00001e2f: ADD 00001e30: DUP3 00001e31: DUP2 00001e32: SUB 00001e33: DUP3 00001e34: MSTORE 00001e35: PUSH1 0x0e 00001e37: DUP2 00001e38: MSTORE 00001e39: PUSH1 0x20 00001e3b: ADD 00001e3c: DUP1 00001e3d: PUSH32 0x616c726561647920696e69746564000000000000000000000000000000000000 00001e5e: DUP2 00001e5f: MSTORE 00001e60: POP 00001e61: PUSH1 0x20 00001e63: ADD 00001e64: SWAP2 00001e65: POP 00001e66: POP 00001e67: PUSH1 0x40 00001e69: MLOAD 00001e6a: DUP1 00001e6b: SWAP2 00001e6c: SUB 00001e6d: SWAP1 00001e6e: REVERT 00001e6f: JUMPDEST 00001e70: PUSH2 0x1ebc 00001e73: DUP7 00001e74: DUP7 00001e75: DUP1 00001e76: DUP1 00001e77: PUSH1 0x1f 00001e79: ADD 00001e7a: PUSH1 0x20 00001e7c: DUP1 00001e7d: SWAP2 00001e7e: DIV 00001e7f: MUL 00001e80: PUSH1 0x20 00001e82: ADD 00001e83: PUSH1 0x40 00001e85: MLOAD 00001e86: SWAP1 00001e87: DUP2 00001e88: ADD 00001e89: PUSH1 0x40 00001e8b: MSTORE 00001e8c: DUP1 00001e8d: SWAP4 00001e8e: SWAP3 00001e8f: SWAP2 00001e90: SWAP1 00001e91: DUP2 00001e92: DUP2 00001e93: MSTORE 00001e94: PUSH1 0x20 00001e96: ADD 00001e97: DUP4 00001e98: DUP4 00001e99: DUP1 00001e9a: DUP3 00001e9b: DUP5 00001e9c: CALLDATACOPY 00001e9d: PUSH1 0x00 00001e9f: DUP2 00001ea0: DUP5 00001ea1: ADD 00001ea2: MSTORE 00001ea3: PUSH1 0x1f 00001ea5: NOT 00001ea6: PUSH1 0x1f 00001ea8: DUP3 00001ea9: ADD 00001eaa: AND 00001eab: SWAP1 00001eac: POP 00001ead: DUP1 00001eae: DUP4 00001eaf: ADD 00001eb0: SWAP3 00001eb1: POP 00001eb2: POP 00001eb3: POP 00001eb4: POP 00001eb5: POP 00001eb6: POP 00001eb7: POP 00001eb8: PUSH2 0x2cbc 00001ebb: JUMP 00001ebc: JUMPDEST 00001ebd: PUSH2 0x1f09 00001ec0: DUP5 00001ec1: DUP5 00001ec2: DUP1 00001ec3: DUP1 00001ec4: PUSH1 0x1f 00001ec6: ADD 00001ec7: PUSH1 0x20 00001ec9: DUP1 00001eca: SWAP2 00001ecb: DIV 00001ecc: MUL 00001ecd: PUSH1 0x20 00001ecf: ADD 00001ed0: PUSH1 0x40 00001ed2: MLOAD 00001ed3: SWAP1 00001ed4: DUP2 00001ed5: ADD 00001ed6: PUSH1 0x40 00001ed8: MSTORE 00001ed9: DUP1 00001eda: SWAP4 00001edb: SWAP3 00001edc: SWAP2 00001edd: SWAP1 00001ede: DUP2 00001edf: DUP2 00001ee0: MSTORE 00001ee1: PUSH1 0x20 00001ee3: ADD 00001ee4: DUP4 00001ee5: DUP4 00001ee6: DUP1 00001ee7: DUP3 00001ee8: DUP5 00001ee9: CALLDATACOPY 00001eea: PUSH1 0x00 00001eec: DUP2 00001eed: DUP5 00001eee: ADD 00001eef: MSTORE 00001ef0: PUSH1 0x1f 00001ef2: NOT 00001ef3: PUSH1 0x1f 00001ef5: DUP3 00001ef6: ADD 00001ef7: AND 00001ef8: SWAP1 00001ef9: POP 00001efa: DUP1 00001efb: DUP4 00001efc: ADD 00001efd: SWAP3 00001efe: POP 00001eff: POP 00001f00: POP 00001f01: POP 00001f02: POP 00001f03: POP 00001f04: POP 00001f05: PUSH2 0x2cd6 00001f08: JUMP 00001f09: JUMPDEST 00001f0a: PUSH2 0x1f12 00001f0d: DUP3 00001f0e: PUSH2 0x2cf0 00001f11: JUMP 00001f12: JUMPDEST 00001f13: PUSH2 0x1f6b 00001f16: DUP5 00001f17: DUP5 00001f18: PUSH1 0x40 00001f1a: MLOAD 00001f1b: PUSH1 0x20 00001f1d: ADD 00001f1e: DUP1 00001f1f: DUP1 00001f20: PUSH32 0x4368696c64000000000000000000000000000000000000000000000000000000 00001f41: DUP2 00001f42: MSTORE 00001f43: POP 00001f44: PUSH1 0x05 00001f46: ADD 00001f47: DUP4 00001f48: DUP4 00001f49: DUP1 00001f4a: DUP3 00001f4b: DUP5 00001f4c: CALLDATACOPY 00001f4d: DUP1 00001f4e: DUP4 00001f4f: ADD 00001f50: SWAP3 00001f51: POP 00001f52: POP 00001f53: POP 00001f54: SWAP3 00001f55: POP 00001f56: POP 00001f57: POP 00001f58: PUSH1 0x40 00001f5a: MLOAD 00001f5b: PUSH1 0x20 00001f5d: DUP2 00001f5e: DUP4 00001f5f: SUB 00001f60: SUB 00001f61: DUP2 00001f62: MSTORE 00001f63: SWAP1 00001f64: PUSH1 0x40 00001f66: MSTORE 00001f67: PUSH2 0x2d0e 00001f6a: JUMP 00001f6b: JUMPDEST 00001f6c: PUSH2 0x1f7f 00001f6f: PUSH1 0x00 00001f71: DUP1 00001f72: SHL 00001f73: PUSH2 0x1f7a 00001f76: PUSH2 0x2064 00001f79: JUMP 00001f7a: JUMPDEST 00001f7b: PUSH2 0x2dba 00001f7e: JUMP 00001f7f: JUMPDEST 00001f80: PUSH2 0x1fbe 00001f83: PUSH1 0x40 00001f85: MLOAD 00001f86: DUP1 00001f87: DUP1 00001f88: PUSH32 0x4445504f5349544f525f524f4c45000000000000000000000000000000000000 00001fa9: DUP2 00001faa: MSTORE 00001fab: POP 00001fac: PUSH1 0x0e 00001fae: ADD 00001faf: SWAP1 00001fb0: POP 00001fb1: PUSH1 0x40 00001fb3: MLOAD 00001fb4: DUP1 00001fb5: SWAP2 00001fb6: SUB 00001fb7: SWAP1 00001fb8: KECCAK256 00001fb9: DUP3 00001fba: PUSH2 0x2dba 00001fbd: JUMP 00001fbe: JUMPDEST 00001fbf: PUSH2 0x2041 00001fc2: DUP7 00001fc3: DUP7 00001fc4: DUP1 00001fc5: DUP1 00001fc6: PUSH1 0x1f 00001fc8: ADD 00001fc9: PUSH1 0x20 00001fcb: DUP1 00001fcc: SWAP2 00001fcd: DIV 00001fce: MUL 00001fcf: PUSH1 0x20 00001fd1: ADD 00001fd2: PUSH1 0x40 00001fd4: MLOAD 00001fd5: SWAP1 00001fd6: DUP2 00001fd7: ADD 00001fd8: PUSH1 0x40 00001fda: MSTORE 00001fdb: DUP1 00001fdc: SWAP4 00001fdd: SWAP3 00001fde: SWAP2 00001fdf: SWAP1 00001fe0: DUP2 00001fe1: DUP2 00001fe2: MSTORE 00001fe3: PUSH1 0x20 00001fe5: ADD 00001fe6: DUP4 00001fe7: DUP4 00001fe8: DUP1 00001fe9: DUP3 00001fea: DUP5 00001feb: CALLDATACOPY 00001fec: PUSH1 0x00 00001fee: DUP2 00001fef: DUP5 00001ff0: ADD 00001ff1: MSTORE 00001ff2: PUSH1 0x1f 00001ff4: NOT 00001ff5: PUSH1 0x1f 00001ff7: DUP3 00001ff8: ADD 00001ff9: AND 00001ffa: SWAP1 00001ffb: POP 00001ffc: DUP1 00001ffd: DUP4 00001ffe: ADD 00001fff: SWAP3 00002000: POP 00002001: POP 00002002: POP 00002003: POP 00002004: POP 00002005: POP 00002006: POP 00002007: PUSH1 0x40 00002009: MLOAD 0000200a: DUP1 0000200b: PUSH1 0x40 0000200d: ADD 0000200e: PUSH1 0x40 00002010: MSTORE 00002011: DUP1 00002012: PUSH1 0x01 00002014: DUP2 00002015: MSTORE 00002016: PUSH1 0x20 00002018: ADD 00002019: PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 0000203a: DUP2 0000203b: MSTORE 0000203c: POP 0000203d: PUSH2 0x2dc8 00002040: JUMP 00002041: JUMPDEST 00002042: PUSH1 0x01 00002044: PUSH1 0x08 00002046: PUSH1 0x00 00002048: PUSH2 0x0100 0000204b: EXP 0000204c: DUP2 0000204d: SLOAD 0000204e: DUP2 0000204f: PUSH1 0xff 00002051: MUL 00002052: NOT 00002053: AND 00002054: SWAP1 00002055: DUP4 00002056: ISZERO 00002057: ISZERO 00002058: MUL 00002059: OR 0000205a: SWAP1 0000205b: SSTORE 0000205c: POP 0000205d: POP 0000205e: POP 0000205f: POP 00002060: POP 00002061: POP 00002062: POP 00002063: JUMP 00002064: JUMPDEST 00002065: PUSH1 0x00 00002067: PUSH2 0x206e 0000206a: PUSH2 0x2e74 0000206d: JUMP 0000206e: JUMPDEST 0000206f: SWAP1 00002070: POP 00002071: SWAP1 00002072: JUMP 00002073: JUMPDEST 00002074: PUSH1 0x00 00002076: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000208b: AND 0000208c: DUP4 0000208d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020a2: AND 000020a3: EQ 000020a4: ISZERO 000020a5: PUSH2 0x20f9 000020a8: JUMPI 000020a9: PUSH1 0x40 000020ab: MLOAD 000020ac: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000020cd: DUP2 000020ce: MSTORE 000020cf: PUSH1 0x04 000020d1: ADD 000020d2: DUP1 000020d3: DUP1 000020d4: PUSH1 0x20 000020d6: ADD 000020d7: DUP3 000020d8: DUP2 000020d9: SUB 000020da: DUP3 000020db: MSTORE 000020dc: PUSH1 0x24 000020de: DUP2 000020df: MSTORE 000020e0: PUSH1 0x20 000020e2: ADD 000020e3: DUP1 000020e4: PUSH2 0x36d9 000020e7: PUSH1 0x24 000020e9: SWAP2 000020ea: CODECOPY 000020eb: PUSH1 0x40 000020ed: ADD 000020ee: SWAP2 000020ef: POP 000020f0: POP 000020f1: PUSH1 0x40 000020f3: MLOAD 000020f4: DUP1 000020f5: SWAP2 000020f6: SUB 000020f7: SWAP1 000020f8: REVERT 000020f9: JUMPDEST 000020fa: PUSH1 0x00 000020fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002111: AND 00002112: DUP3 00002113: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002128: AND 00002129: EQ 0000212a: ISZERO 0000212b: PUSH2 0x217f 0000212e: JUMPI 0000212f: PUSH1 0x40 00002131: MLOAD 00002132: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002153: DUP2 00002154: MSTORE 00002155: PUSH1 0x04 00002157: ADD 00002158: DUP1 00002159: DUP1 0000215a: PUSH1 0x20 0000215c: ADD 0000215d: DUP3 0000215e: DUP2 0000215f: SUB 00002160: DUP3 00002161: MSTORE 00002162: PUSH1 0x22 00002164: DUP2 00002165: MSTORE 00002166: PUSH1 0x20 00002168: ADD 00002169: DUP1 0000216a: PUSH2 0x355e 0000216d: PUSH1 0x22 0000216f: SWAP2 00002170: CODECOPY 00002171: PUSH1 0x40 00002173: ADD 00002174: SWAP2 00002175: POP 00002176: POP 00002177: PUSH1 0x40 00002179: MLOAD 0000217a: DUP1 0000217b: SWAP2 0000217c: SUB 0000217d: SWAP1 0000217e: REVERT 0000217f: JUMPDEST 00002180: DUP1 00002181: PUSH1 0x01 00002183: PUSH1 0x00 00002185: DUP6 00002186: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000219b: AND 0000219c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021b1: AND 000021b2: DUP2 000021b3: MSTORE 000021b4: PUSH1 0x20 000021b6: ADD 000021b7: SWAP1 000021b8: DUP2 000021b9: MSTORE 000021ba: PUSH1 0x20 000021bc: ADD 000021bd: PUSH1 0x00 000021bf: KECCAK256 000021c0: PUSH1 0x00 000021c2: DUP5 000021c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021d8: AND 000021d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021ee: AND 000021ef: DUP2 000021f0: MSTORE 000021f1: PUSH1 0x20 000021f3: ADD 000021f4: SWAP1 000021f5: DUP2 000021f6: MSTORE 000021f7: PUSH1 0x20 000021f9: ADD 000021fa: PUSH1 0x00 000021fc: KECCAK256 000021fd: DUP2 000021fe: SWAP1 000021ff: SSTORE 00002200: POP 00002201: DUP2 00002202: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002217: AND 00002218: DUP4 00002219: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000222e: AND 0000222f: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00002250: DUP4 00002251: PUSH1 0x40 00002253: MLOAD 00002254: DUP1 00002255: DUP3 00002256: DUP2 00002257: MSTORE 00002258: PUSH1 0x20 0000225a: ADD 0000225b: SWAP2 0000225c: POP 0000225d: POP 0000225e: PUSH1 0x40 00002260: MLOAD 00002261: DUP1 00002262: SWAP2 00002263: SUB 00002264: SWAP1 00002265: LOG3 00002266: POP 00002267: POP 00002268: POP 00002269: JUMP 0000226a: JUMPDEST 0000226b: PUSH1 0x00 0000226d: DUP1 0000226e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002283: AND 00002284: DUP7 00002285: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000229a: AND 0000229b: EQ 0000229c: ISZERO 0000229d: PUSH2 0x22f1 000022a0: JUMPI 000022a1: PUSH1 0x40 000022a3: MLOAD 000022a4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000022c5: DUP2 000022c6: MSTORE 000022c7: PUSH1 0x04 000022c9: ADD 000022ca: DUP1 000022cb: DUP1 000022cc: PUSH1 0x20 000022ce: ADD 000022cf: DUP3 000022d0: DUP2 000022d1: SUB 000022d2: DUP3 000022d3: MSTORE 000022d4: PUSH1 0x25 000022d6: DUP2 000022d7: MSTORE 000022d8: PUSH1 0x20 000022da: ADD 000022db: DUP1 000022dc: PUSH2 0x3625 000022df: PUSH1 0x25 000022e1: SWAP2 000022e2: CODECOPY 000022e3: PUSH1 0x40 000022e5: ADD 000022e6: SWAP2 000022e7: POP 000022e8: POP 000022e9: PUSH1 0x40 000022eb: MLOAD 000022ec: DUP1 000022ed: SWAP2 000022ee: SUB 000022ef: SWAP1 000022f0: REVERT 000022f1: JUMPDEST 000022f2: PUSH1 0x01 000022f4: PUSH2 0x2304 000022f7: PUSH2 0x22ff 000022fa: DUP8 000022fb: PUSH2 0x2f29 000022fe: JUMP 000022ff: JUMPDEST 00002300: PUSH2 0x2fcf 00002303: JUMP 00002304: JUMPDEST 00002305: DUP4 00002306: DUP7 00002307: DUP7 00002308: PUSH1 0x40 0000230a: MLOAD 0000230b: PUSH1 0x00 0000230d: DUP2 0000230e: MSTORE 0000230f: PUSH1 0x20 00002311: ADD 00002312: PUSH1 0x40 00002314: MSTORE 00002315: PUSH1 0x40 00002317: MLOAD 00002318: DUP1 00002319: DUP6 0000231a: DUP2 0000231b: MSTORE 0000231c: PUSH1 0x20 0000231e: ADD 0000231f: DUP5 00002320: PUSH1 0xff 00002322: AND 00002323: PUSH1 0xff 00002325: AND 00002326: DUP2 00002327: MSTORE 00002328: PUSH1 0x20 0000232a: ADD 0000232b: DUP4 0000232c: DUP2 0000232d: MSTORE 0000232e: PUSH1 0x20 00002330: ADD 00002331: DUP3 00002332: DUP2 00002333: MSTORE 00002334: PUSH1 0x20 00002336: ADD 00002337: SWAP5 00002338: POP 00002339: POP 0000233a: POP 0000233b: POP 0000233c: POP 0000233d: PUSH1 0x20 0000233f: PUSH1 0x40 00002341: MLOAD 00002342: PUSH1 0x20 00002344: DUP2 00002345: SUB 00002346: SWAP1 00002347: DUP1 00002348: DUP5 00002349: SUB 0000234a: SWAP1 0000234b: DUP6 0000234c: GAS 0000234d: STATICCALL 0000234e: ISZERO 0000234f: DUP1 00002350: ISZERO 00002351: PUSH2 0x235e 00002354: JUMPI 00002355: RETURNDATASIZE 00002356: PUSH1 0x00 00002358: DUP1 00002359: RETURNDATACOPY 0000235a: RETURNDATASIZE 0000235b: PUSH1 0x00 0000235d: REVERT 0000235e: JUMPDEST 0000235f: POP 00002360: POP 00002361: POP 00002362: PUSH1 0x20 00002364: PUSH1 0x40 00002366: MLOAD 00002367: SUB 00002368: MLOAD 00002369: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000237e: AND 0000237f: DUP7 00002380: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002395: AND 00002396: EQ 00002397: SWAP1 00002398: POP 00002399: SWAP6 0000239a: SWAP5 0000239b: POP 0000239c: POP 0000239d: POP 0000239e: POP 0000239f: POP 000023a0: JUMP 000023a1: JUMPDEST 000023a2: PUSH1 0x00 000023a4: DUP1 000023a5: DUP3 000023a6: DUP5 000023a7: ADD 000023a8: SWAP1 000023a9: POP 000023aa: DUP4 000023ab: DUP2 000023ac: LT 000023ad: ISZERO 000023ae: PUSH2 0x241f 000023b1: JUMPI 000023b2: PUSH1 0x40 000023b4: MLOAD 000023b5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000023d6: DUP2 000023d7: MSTORE 000023d8: PUSH1 0x04 000023da: ADD 000023db: DUP1 000023dc: DUP1 000023dd: PUSH1 0x20 000023df: ADD 000023e0: DUP3 000023e1: DUP2 000023e2: SUB 000023e3: DUP3 000023e4: MSTORE 000023e5: PUSH1 0x1b 000023e7: DUP2 000023e8: MSTORE 000023e9: PUSH1 0x20 000023eb: ADD 000023ec: DUP1 000023ed: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 0000240e: DUP2 0000240f: MSTORE 00002410: POP 00002411: PUSH1 0x20 00002413: ADD 00002414: SWAP2 00002415: POP 00002416: POP 00002417: PUSH1 0x40 00002419: MLOAD 0000241a: DUP1 0000241b: SWAP2 0000241c: SUB 0000241d: SWAP1 0000241e: REVERT 0000241f: JUMPDEST 00002420: DUP1 00002421: SWAP2 00002422: POP 00002423: POP 00002424: SWAP3 00002425: SWAP2 00002426: POP 00002427: POP 00002428: JUMP 00002429: JUMPDEST 0000242a: PUSH1 0x00 0000242c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002441: AND 00002442: DUP4 00002443: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002458: AND 00002459: EQ 0000245a: ISZERO 0000245b: PUSH2 0x24af 0000245e: JUMPI 0000245f: PUSH1 0x40 00002461: MLOAD 00002462: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002483: DUP2 00002484: MSTORE 00002485: PUSH1 0x04 00002487: ADD 00002488: DUP1 00002489: DUP1 0000248a: PUSH1 0x20 0000248c: ADD 0000248d: DUP3 0000248e: DUP2 0000248f: SUB 00002490: DUP3 00002491: MSTORE 00002492: PUSH1 0x25 00002494: DUP2 00002495: MSTORE 00002496: PUSH1 0x20 00002498: ADD 00002499: DUP1 0000249a: PUSH2 0x36b4 0000249d: PUSH1 0x25 0000249f: SWAP2 000024a0: CODECOPY 000024a1: PUSH1 0x40 000024a3: ADD 000024a4: SWAP2 000024a5: POP 000024a6: POP 000024a7: PUSH1 0x40 000024a9: MLOAD 000024aa: DUP1 000024ab: SWAP2 000024ac: SUB 000024ad: SWAP1 000024ae: REVERT 000024af: JUMPDEST 000024b0: PUSH1 0x00 000024b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024c7: AND 000024c8: DUP3 000024c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024de: AND 000024df: EQ 000024e0: ISZERO 000024e1: PUSH2 0x2535 000024e4: JUMPI 000024e5: PUSH1 0x40 000024e7: MLOAD 000024e8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002509: DUP2 0000250a: MSTORE 0000250b: PUSH1 0x04 0000250d: ADD 0000250e: DUP1 0000250f: DUP1 00002510: PUSH1 0x20 00002512: ADD 00002513: DUP3 00002514: DUP2 00002515: SUB 00002516: DUP3 00002517: MSTORE 00002518: PUSH1 0x23 0000251a: DUP2 0000251b: MSTORE 0000251c: PUSH1 0x20 0000251e: ADD 0000251f: DUP1 00002520: PUSH2 0x34a7 00002523: PUSH1 0x23 00002525: SWAP2 00002526: CODECOPY 00002527: PUSH1 0x40 00002529: ADD 0000252a: SWAP2 0000252b: POP 0000252c: POP 0000252d: PUSH1 0x40 0000252f: MLOAD 00002530: DUP1 00002531: SWAP2 00002532: SUB 00002533: SWAP1 00002534: REVERT 00002535: JUMPDEST 00002536: PUSH2 0x2540 00002539: DUP4 0000253a: DUP4 0000253b: DUP4 0000253c: PUSH2 0x3036 0000253f: JUMP 00002540: JUMPDEST 00002541: PUSH2 0x25ab 00002544: DUP2 00002545: PUSH1 0x40 00002547: MLOAD 00002548: DUP1 00002549: PUSH1 0x60 0000254b: ADD 0000254c: PUSH1 0x40 0000254e: MSTORE 0000254f: DUP1 00002550: PUSH1 0x26 00002552: DUP2 00002553: MSTORE 00002554: PUSH1 0x20 00002556: ADD 00002557: PUSH2 0x35cf 0000255a: PUSH1 0x26 0000255c: SWAP2 0000255d: CODECOPY 0000255e: PUSH1 0x00 00002560: DUP1 00002561: DUP8 00002562: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002577: AND 00002578: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000258d: AND 0000258e: DUP2 0000258f: MSTORE 00002590: PUSH1 0x20 00002592: ADD 00002593: SWAP1 00002594: DUP2 00002595: MSTORE 00002596: PUSH1 0x20 00002598: ADD 00002599: PUSH1 0x00 0000259b: KECCAK256 0000259c: SLOAD 0000259d: PUSH2 0x26ea 000025a0: SWAP1 000025a1: SWAP3 000025a2: SWAP2 000025a3: SWAP1 000025a4: PUSH4 0xffffffff 000025a9: AND 000025aa: JUMP 000025ab: JUMPDEST 000025ac: PUSH1 0x00 000025ae: DUP1 000025af: DUP6 000025b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025c5: AND 000025c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025db: AND 000025dc: DUP2 000025dd: MSTORE 000025de: PUSH1 0x20 000025e0: ADD 000025e1: SWAP1 000025e2: DUP2 000025e3: MSTORE 000025e4: PUSH1 0x20 000025e6: ADD 000025e7: PUSH1 0x00 000025e9: KECCAK256 000025ea: DUP2 000025eb: SWAP1 000025ec: SSTORE 000025ed: POP 000025ee: PUSH2 0x263e 000025f1: DUP2 000025f2: PUSH1 0x00 000025f4: DUP1 000025f5: DUP6 000025f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000260b: AND 0000260c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002621: AND 00002622: DUP2 00002623: MSTORE 00002624: PUSH1 0x20 00002626: ADD 00002627: SWAP1 00002628: DUP2 00002629: MSTORE 0000262a: PUSH1 0x20 0000262c: ADD 0000262d: PUSH1 0x00 0000262f: KECCAK256 00002630: SLOAD 00002631: PUSH2 0x23a1 00002634: SWAP1 00002635: SWAP2 00002636: SWAP1 00002637: PUSH4 0xffffffff 0000263c: AND 0000263d: JUMP 0000263e: JUMPDEST 0000263f: PUSH1 0x00 00002641: DUP1 00002642: DUP5 00002643: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002658: AND 00002659: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000266e: AND 0000266f: DUP2 00002670: MSTORE 00002671: PUSH1 0x20 00002673: ADD 00002674: SWAP1 00002675: DUP2 00002676: MSTORE 00002677: PUSH1 0x20 00002679: ADD 0000267a: PUSH1 0x00 0000267c: KECCAK256 0000267d: DUP2 0000267e: SWAP1 0000267f: SSTORE 00002680: POP 00002681: DUP2 00002682: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002697: AND 00002698: DUP4 00002699: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026ae: AND 000026af: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000026d0: DUP4 000026d1: PUSH1 0x40 000026d3: MLOAD 000026d4: DUP1 000026d5: DUP3 000026d6: DUP2 000026d7: MSTORE 000026d8: PUSH1 0x20 000026da: ADD 000026db: SWAP2 000026dc: POP 000026dd: POP 000026de: PUSH1 0x40 000026e0: MLOAD 000026e1: DUP1 000026e2: SWAP2 000026e3: SUB 000026e4: SWAP1 000026e5: LOG3 000026e6: POP 000026e7: POP 000026e8: POP 000026e9: JUMP 000026ea: JUMPDEST 000026eb: PUSH1 0x00 000026ed: DUP4 000026ee: DUP4 000026ef: GT 000026f0: ISZERO 000026f1: DUP3 000026f2: SWAP1 000026f3: PUSH2 0x2797 000026f6: JUMPI 000026f7: PUSH1 0x40 000026f9: MLOAD 000026fa: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000271b: DUP2 0000271c: MSTORE 0000271d: PUSH1 0x04 0000271f: ADD 00002720: DUP1 00002721: DUP1 00002722: PUSH1 0x20 00002724: ADD 00002725: DUP3 00002726: DUP2 00002727: SUB 00002728: DUP3 00002729: MSTORE 0000272a: DUP4 0000272b: DUP2 0000272c: DUP2 0000272d: MLOAD 0000272e: DUP2 0000272f: MSTORE 00002730: PUSH1 0x20 00002732: ADD 00002733: SWAP2 00002734: POP 00002735: DUP1 00002736: MLOAD 00002737: SWAP1 00002738: PUSH1 0x20 0000273a: ADD 0000273b: SWAP1 0000273c: DUP1 0000273d: DUP4 0000273e: DUP4 0000273f: PUSH1 0x00 00002741: JUMPDEST 00002742: DUP4 00002743: DUP2 00002744: LT 00002745: ISZERO 00002746: PUSH2 0x275c 00002749: JUMPI 0000274a: DUP1 0000274b: DUP3 0000274c: ADD 0000274d: MLOAD 0000274e: DUP2 0000274f: DUP5 00002750: ADD 00002751: MSTORE 00002752: PUSH1 0x20 00002754: DUP2 00002755: ADD 00002756: SWAP1 00002757: POP 00002758: PUSH2 0x2741 0000275b: JUMP 0000275c: JUMPDEST 0000275d: POP 0000275e: POP 0000275f: POP 00002760: POP 00002761: SWAP1 00002762: POP 00002763: SWAP1 00002764: DUP2 00002765: ADD 00002766: SWAP1 00002767: PUSH1 0x1f 00002769: AND 0000276a: DUP1 0000276b: ISZERO 0000276c: PUSH2 0x2789 0000276f: JUMPI 00002770: DUP1 00002771: DUP3 00002772: SUB 00002773: DUP1 00002774: MLOAD 00002775: PUSH1 0x01 00002777: DUP4 00002778: PUSH1 0x20 0000277a: SUB 0000277b: PUSH2 0x0100 0000277e: EXP 0000277f: SUB 00002780: NOT 00002781: AND 00002782: DUP2 00002783: MSTORE 00002784: PUSH1 0x20 00002786: ADD 00002787: SWAP2 00002788: POP 00002789: JUMPDEST 0000278a: POP 0000278b: SWAP3 0000278c: POP 0000278d: POP 0000278e: POP 0000278f: PUSH1 0x40 00002791: MLOAD 00002792: DUP1 00002793: SWAP2 00002794: SUB 00002795: SWAP1 00002796: REVERT 00002797: JUMPDEST 00002798: POP 00002799: PUSH1 0x00 0000279b: DUP4 0000279c: DUP6 0000279d: SUB 0000279e: SWAP1 0000279f: POP 000027a0: DUP1 000027a1: SWAP2 000027a2: POP 000027a3: POP 000027a4: SWAP4 000027a5: SWAP3 000027a6: POP 000027a7: POP 000027a8: POP 000027a9: JUMP 000027aa: JUMPDEST 000027ab: PUSH1 0x00 000027ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027c2: AND 000027c3: DUP3 000027c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027d9: AND 000027da: EQ 000027db: ISZERO 000027dc: PUSH2 0x2830 000027df: JUMPI 000027e0: PUSH1 0x40 000027e2: MLOAD 000027e3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002804: DUP2 00002805: MSTORE 00002806: PUSH1 0x04 00002808: ADD 00002809: DUP1 0000280a: DUP1 0000280b: PUSH1 0x20 0000280d: ADD 0000280e: DUP3 0000280f: DUP2 00002810: SUB 00002811: DUP3 00002812: MSTORE 00002813: PUSH1 0x21 00002815: DUP2 00002816: MSTORE 00002817: PUSH1 0x20 00002819: ADD 0000281a: DUP1 0000281b: PUSH2 0x3693 0000281e: PUSH1 0x21 00002820: SWAP2 00002821: CODECOPY 00002822: PUSH1 0x40 00002824: ADD 00002825: SWAP2 00002826: POP 00002827: POP 00002828: PUSH1 0x40 0000282a: MLOAD 0000282b: DUP1 0000282c: SWAP2 0000282d: SUB 0000282e: SWAP1 0000282f: REVERT 00002830: JUMPDEST 00002831: PUSH2 0x283c 00002834: DUP3 00002835: PUSH1 0x00 00002837: DUP4 00002838: PUSH2 0x3036 0000283b: JUMP 0000283c: JUMPDEST 0000283d: PUSH2 0x28a7 00002840: DUP2 00002841: PUSH1 0x40 00002843: MLOAD 00002844: DUP1 00002845: PUSH1 0x60 00002847: ADD 00002848: PUSH1 0x40 0000284a: MSTORE 0000284b: DUP1 0000284c: PUSH1 0x22 0000284e: DUP2 0000284f: MSTORE 00002850: PUSH1 0x20 00002852: ADD 00002853: PUSH2 0x34f9 00002856: PUSH1 0x22 00002858: SWAP2 00002859: CODECOPY 0000285a: PUSH1 0x00 0000285c: DUP1 0000285d: DUP7 0000285e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002873: AND 00002874: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002889: AND 0000288a: DUP2 0000288b: MSTORE 0000288c: PUSH1 0x20 0000288e: ADD 0000288f: SWAP1 00002890: DUP2 00002891: MSTORE 00002892: PUSH1 0x20 00002894: ADD 00002895: PUSH1 0x00 00002897: KECCAK256 00002898: SLOAD 00002899: PUSH2 0x26ea 0000289c: SWAP1 0000289d: SWAP3 0000289e: SWAP2 0000289f: SWAP1 000028a0: PUSH4 0xffffffff 000028a5: AND 000028a6: JUMP 000028a7: JUMPDEST 000028a8: PUSH1 0x00 000028aa: DUP1 000028ab: DUP5 000028ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028c1: AND 000028c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028d7: AND 000028d8: DUP2 000028d9: MSTORE 000028da: PUSH1 0x20 000028dc: ADD 000028dd: SWAP1 000028de: DUP2 000028df: MSTORE 000028e0: PUSH1 0x20 000028e2: ADD 000028e3: PUSH1 0x00 000028e5: KECCAK256 000028e6: DUP2 000028e7: SWAP1 000028e8: SSTORE 000028e9: POP 000028ea: PUSH2 0x28fe 000028ed: DUP2 000028ee: PUSH1 0x02 000028f0: SLOAD 000028f1: PUSH2 0x303b 000028f4: SWAP1 000028f5: SWAP2 000028f6: SWAP1 000028f7: PUSH4 0xffffffff 000028fc: AND 000028fd: JUMP 000028fe: JUMPDEST 000028ff: PUSH1 0x02 00002901: DUP2 00002902: SWAP1 00002903: SSTORE 00002904: POP 00002905: PUSH1 0x00 00002907: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000291c: AND 0000291d: DUP3 0000291e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002933: AND 00002934: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00002955: DUP4 00002956: PUSH1 0x40 00002958: MLOAD 00002959: DUP1 0000295a: DUP3 0000295b: DUP2 0000295c: MSTORE 0000295d: PUSH1 0x20 0000295f: ADD 00002960: SWAP2 00002961: POP 00002962: POP 00002963: PUSH1 0x40 00002965: MLOAD 00002966: DUP1 00002967: SWAP2 00002968: SUB 00002969: SWAP1 0000296a: LOG3 0000296b: POP 0000296c: POP 0000296d: JUMP 0000296e: JUMPDEST 0000296f: PUSH2 0x2996 00002972: DUP2 00002973: PUSH1 0x06 00002975: PUSH1 0x00 00002977: DUP6 00002978: DUP2 00002979: MSTORE 0000297a: PUSH1 0x20 0000297c: ADD 0000297d: SWAP1 0000297e: DUP2 0000297f: MSTORE 00002980: PUSH1 0x20 00002982: ADD 00002983: PUSH1 0x00 00002985: KECCAK256 00002986: PUSH1 0x00 00002988: ADD 00002989: PUSH2 0x3085 0000298c: SWAP1 0000298d: SWAP2 0000298e: SWAP1 0000298f: PUSH4 0xffffffff 00002994: AND 00002995: JUMP 00002996: JUMPDEST 00002997: ISZERO 00002998: PUSH2 0x29fe 0000299b: JUMPI 0000299c: PUSH2 0x29a3 0000299f: PUSH2 0x2064 000029a2: JUMP 000029a3: JUMPDEST 000029a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029b9: AND 000029ba: DUP2 000029bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029d0: AND 000029d1: DUP4 000029d2: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 000029f3: PUSH1 0x40 000029f5: MLOAD 000029f6: PUSH1 0x40 000029f8: MLOAD 000029f9: DUP1 000029fa: SWAP2 000029fb: SUB 000029fc: SWAP1 000029fd: LOG4 000029fe: JUMPDEST 000029ff: POP 00002a00: POP 00002a01: JUMP 00002a02: JUMPDEST 00002a03: PUSH2 0x2a2a 00002a06: DUP2 00002a07: PUSH1 0x06 00002a09: PUSH1 0x00 00002a0b: DUP6 00002a0c: DUP2 00002a0d: MSTORE 00002a0e: PUSH1 0x20 00002a10: ADD 00002a11: SWAP1 00002a12: DUP2 00002a13: MSTORE 00002a14: PUSH1 0x20 00002a16: ADD 00002a17: PUSH1 0x00 00002a19: KECCAK256 00002a1a: PUSH1 0x00 00002a1c: ADD 00002a1d: PUSH2 0x30b5 00002a20: SWAP1 00002a21: SWAP2 00002a22: SWAP1 00002a23: PUSH4 0xffffffff 00002a28: AND 00002a29: JUMP 00002a2a: JUMPDEST 00002a2b: ISZERO 00002a2c: PUSH2 0x2a92 00002a2f: JUMPI 00002a30: PUSH2 0x2a37 00002a33: PUSH2 0x2064 00002a36: JUMP 00002a37: JUMPDEST 00002a38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a4d: AND 00002a4e: DUP2 00002a4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a64: AND 00002a65: DUP4 00002a66: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 00002a87: PUSH1 0x40 00002a89: MLOAD 00002a8a: PUSH1 0x40 00002a8c: MLOAD 00002a8d: DUP1 00002a8e: SWAP2 00002a8f: SUB 00002a90: SWAP1 00002a91: LOG4 00002a92: JUMPDEST 00002a93: POP 00002a94: POP 00002a95: JUMP 00002a96: JUMPDEST 00002a97: PUSH1 0x00 00002a99: PUSH2 0x2aa5 00002a9c: DUP4 00002a9d: PUSH1 0x00 00002a9f: ADD 00002aa0: DUP4 00002aa1: PUSH2 0x30e5 00002aa4: JUMP 00002aa5: JUMPDEST 00002aa6: PUSH1 0x00 00002aa8: SHR 00002aa9: SWAP1 00002aaa: POP 00002aab: SWAP3 00002aac: SWAP2 00002aad: POP 00002aae: POP 00002aaf: JUMP 00002ab0: JUMPDEST 00002ab1: PUSH1 0x00 00002ab3: PUSH2 0x2ad8 00002ab6: DUP4 00002ab7: PUSH1 0x00 00002ab9: ADD 00002aba: DUP4 00002abb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ad0: AND 00002ad1: PUSH1 0x00 00002ad3: SHL 00002ad4: PUSH2 0x3168 00002ad7: JUMP 00002ad8: JUMPDEST 00002ad9: SWAP1 00002ada: POP 00002adb: SWAP3 00002adc: SWAP2 00002add: POP 00002ade: POP 00002adf: JUMP 00002ae0: JUMPDEST 00002ae1: PUSH1 0x00 00002ae3: PUSH2 0x2aee 00002ae6: DUP3 00002ae7: PUSH1 0x00 00002ae9: ADD 00002aea: PUSH2 0x318b 00002aed: JUMP 00002aee: JUMPDEST 00002aef: SWAP1 00002af0: POP 00002af1: SWAP2 00002af2: SWAP1 00002af3: POP 00002af4: JUMP 00002af5: JUMPDEST 00002af6: PUSH1 0x00 00002af8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b0d: AND 00002b0e: DUP3 00002b0f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b24: AND 00002b25: EQ 00002b26: ISZERO 00002b27: PUSH2 0x2b98 00002b2a: JUMPI 00002b2b: PUSH1 0x40 00002b2d: MLOAD 00002b2e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002b4f: DUP2 00002b50: MSTORE 00002b51: PUSH1 0x04 00002b53: ADD 00002b54: DUP1 00002b55: DUP1 00002b56: PUSH1 0x20 00002b58: ADD 00002b59: DUP3 00002b5a: DUP2 00002b5b: SUB 00002b5c: DUP3 00002b5d: MSTORE 00002b5e: PUSH1 0x1f 00002b60: DUP2 00002b61: MSTORE 00002b62: PUSH1 0x20 00002b64: ADD 00002b65: DUP1 00002b66: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300 00002b87: DUP2 00002b88: MSTORE 00002b89: POP 00002b8a: PUSH1 0x20 00002b8c: ADD 00002b8d: SWAP2 00002b8e: POP 00002b8f: POP 00002b90: PUSH1 0x40 00002b92: MLOAD 00002b93: DUP1 00002b94: SWAP2 00002b95: SUB 00002b96: SWAP1 00002b97: REVERT 00002b98: JUMPDEST 00002b99: PUSH2 0x2ba4 00002b9c: PUSH1 0x00 00002b9e: DUP4 00002b9f: DUP4 00002ba0: PUSH2 0x3036 00002ba3: JUMP 00002ba4: JUMPDEST 00002ba5: PUSH2 0x2bb9 00002ba8: DUP2 00002ba9: PUSH1 0x02 00002bab: SLOAD 00002bac: PUSH2 0x23a1 00002baf: SWAP1 00002bb0: SWAP2 00002bb1: SWAP1 00002bb2: PUSH4 0xffffffff 00002bb7: AND 00002bb8: JUMP 00002bb9: JUMPDEST 00002bba: PUSH1 0x02 00002bbc: DUP2 00002bbd: SWAP1 00002bbe: SSTORE 00002bbf: POP 00002bc0: PUSH2 0x2c10 00002bc3: DUP2 00002bc4: PUSH1 0x00 00002bc6: DUP1 00002bc7: DUP6 00002bc8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bdd: AND 00002bde: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bf3: AND 00002bf4: DUP2 00002bf5: MSTORE 00002bf6: PUSH1 0x20 00002bf8: ADD 00002bf9: SWAP1 00002bfa: DUP2 00002bfb: MSTORE 00002bfc: PUSH1 0x20 00002bfe: ADD 00002bff: PUSH1 0x00 00002c01: KECCAK256 00002c02: SLOAD 00002c03: PUSH2 0x23a1 00002c06: SWAP1 00002c07: SWAP2 00002c08: SWAP1 00002c09: PUSH4 0xffffffff 00002c0e: AND 00002c0f: JUMP 00002c10: JUMPDEST 00002c11: PUSH1 0x00 00002c13: DUP1 00002c14: DUP5 00002c15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c2a: AND 00002c2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c40: AND 00002c41: DUP2 00002c42: MSTORE 00002c43: PUSH1 0x20 00002c45: ADD 00002c46: SWAP1 00002c47: DUP2 00002c48: MSTORE 00002c49: PUSH1 0x20 00002c4b: ADD 00002c4c: PUSH1 0x00 00002c4e: KECCAK256 00002c4f: DUP2 00002c50: SWAP1 00002c51: SSTORE 00002c52: POP 00002c53: DUP2 00002c54: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c69: AND 00002c6a: PUSH1 0x00 00002c6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c81: AND 00002c82: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00002ca3: DUP4 00002ca4: PUSH1 0x40 00002ca6: MLOAD 00002ca7: DUP1 00002ca8: DUP3 00002ca9: DUP2 00002caa: MSTORE 00002cab: PUSH1 0x20 00002cad: ADD 00002cae: SWAP2 00002caf: POP 00002cb0: POP 00002cb1: PUSH1 0x40 00002cb3: MLOAD 00002cb4: DUP1 00002cb5: SWAP2 00002cb6: SUB 00002cb7: SWAP1 00002cb8: LOG3 00002cb9: POP 00002cba: POP 00002cbb: JUMP 00002cbc: JUMPDEST 00002cbd: DUP1 00002cbe: PUSH1 0x03 00002cc0: SWAP1 00002cc1: DUP1 00002cc2: MLOAD 00002cc3: SWAP1 00002cc4: PUSH1 0x20 00002cc6: ADD 00002cc7: SWAP1 00002cc8: PUSH2 0x2cd2 00002ccb: SWAP3 00002ccc: SWAP2 00002ccd: SWAP1 00002cce: PUSH2 0x33df 00002cd1: JUMP 00002cd2: JUMPDEST 00002cd3: POP 00002cd4: POP 00002cd5: JUMP 00002cd6: JUMPDEST 00002cd7: DUP1 00002cd8: PUSH1 0x04 00002cda: SWAP1 00002cdb: DUP1 00002cdc: MLOAD 00002cdd: SWAP1 00002cde: PUSH1 0x20 00002ce0: ADD 00002ce1: SWAP1 00002ce2: PUSH2 0x2cec 00002ce5: SWAP3 00002ce6: SWAP2 00002ce7: SWAP1 00002ce8: PUSH2 0x33df 00002ceb: JUMP 00002cec: JUMPDEST 00002ced: POP 00002cee: POP 00002cef: JUMP 00002cf0: JUMPDEST 00002cf1: DUP1 00002cf2: PUSH1 0x05 00002cf4: PUSH1 0x00 00002cf6: PUSH2 0x0100 00002cf9: EXP 00002cfa: DUP2 00002cfb: SLOAD 00002cfc: DUP2 00002cfd: PUSH1 0xff 00002cff: MUL 00002d00: NOT 00002d01: AND 00002d02: SWAP1 00002d03: DUP4 00002d04: PUSH1 0xff 00002d06: AND 00002d07: MUL 00002d08: OR 00002d09: SWAP1 00002d0a: SSTORE 00002d0b: POP 00002d0c: POP 00002d0d: JUMP 00002d0e: JUMPDEST 00002d0f: DUP1 00002d10: PUSH1 0x40 00002d12: MLOAD 00002d13: PUSH1 0x20 00002d15: ADD 00002d16: DUP1 00002d17: DUP3 00002d18: DUP1 00002d19: MLOAD 00002d1a: SWAP1 00002d1b: PUSH1 0x20 00002d1d: ADD 00002d1e: SWAP1 00002d1f: DUP1 00002d20: DUP4 00002d21: DUP4 00002d22: JUMPDEST 00002d23: PUSH1 0x20 00002d25: DUP4 00002d26: LT 00002d27: PUSH2 0x2d45 00002d2a: JUMPI 00002d2b: DUP1 00002d2c: MLOAD 00002d2d: DUP3 00002d2e: MSTORE 00002d2f: PUSH1 0x20 00002d31: DUP3 00002d32: ADD 00002d33: SWAP2 00002d34: POP 00002d35: PUSH1 0x20 00002d37: DUP2 00002d38: ADD 00002d39: SWAP1 00002d3a: POP 00002d3b: PUSH1 0x20 00002d3d: DUP4 00002d3e: SUB 00002d3f: SWAP3 00002d40: POP 00002d41: PUSH2 0x2d22 00002d44: JUMP 00002d45: JUMPDEST 00002d46: PUSH1 0x01 00002d48: DUP4 00002d49: PUSH1 0x20 00002d4b: SUB 00002d4c: PUSH2 0x0100 00002d4f: EXP 00002d50: SUB 00002d51: DUP1 00002d52: NOT 00002d53: DUP3 00002d54: MLOAD 00002d55: AND 00002d56: DUP2 00002d57: DUP5 00002d58: MLOAD 00002d59: AND 00002d5a: DUP1 00002d5b: DUP3 00002d5c: OR 00002d5d: DUP6 00002d5e: MSTORE 00002d5f: POP 00002d60: POP 00002d61: POP 00002d62: POP 00002d63: POP 00002d64: POP 00002d65: SWAP1 00002d66: POP 00002d67: ADD 00002d68: DUP1 00002d69: PUSH32 0x3a20494e53554646494349454e545f5045524d495353494f4e53000000000000 00002d8a: DUP2 00002d8b: MSTORE 00002d8c: POP 00002d8d: PUSH1 0x1a 00002d8f: ADD 00002d90: SWAP2 00002d91: POP 00002d92: POP 00002d93: PUSH1 0x40 00002d95: MLOAD 00002d96: PUSH1 0x20 00002d98: DUP2 00002d99: DUP4 00002d9a: SUB 00002d9b: SUB 00002d9c: DUP2 00002d9d: MSTORE 00002d9e: SWAP1 00002d9f: PUSH1 0x40 00002da1: MSTORE 00002da2: PUSH1 0x07 00002da4: SWAP1 00002da5: DUP1 00002da6: MLOAD 00002da7: SWAP1 00002da8: PUSH1 0x20 00002daa: ADD 00002dab: SWAP1 00002dac: PUSH2 0x2db6 00002daf: SWAP3 00002db0: SWAP2 00002db1: SWAP1 00002db2: PUSH2 0x33df 00002db5: JUMP 00002db6: JUMPDEST 00002db7: POP 00002db8: POP 00002db9: JUMP 00002dba: JUMPDEST 00002dbb: PUSH2 0x2dc4 00002dbe: DUP3 00002dbf: DUP3 00002dc0: PUSH2 0x296e 00002dc3: JUMP 00002dc4: JUMPDEST 00002dc5: POP 00002dc6: POP 00002dc7: JUMP 00002dc8: JUMPDEST 00002dc9: PUSH1 0x08 00002dcb: PUSH1 0x00 00002dcd: SWAP1 00002dce: SLOAD 00002dcf: SWAP1 00002dd0: PUSH2 0x0100 00002dd3: EXP 00002dd4: SWAP1 00002dd5: DIV 00002dd6: PUSH1 0xff 00002dd8: AND 00002dd9: ISZERO 00002dda: PUSH2 0x2e4b 00002ddd: JUMPI 00002dde: PUSH1 0x40 00002de0: MLOAD 00002de1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002e02: DUP2 00002e03: MSTORE 00002e04: PUSH1 0x04 00002e06: ADD 00002e07: DUP1 00002e08: DUP1 00002e09: PUSH1 0x20 00002e0b: ADD 00002e0c: DUP3 00002e0d: DUP2 00002e0e: SUB 00002e0f: DUP3 00002e10: MSTORE 00002e11: PUSH1 0x0e 00002e13: DUP2 00002e14: MSTORE 00002e15: PUSH1 0x20 00002e17: ADD 00002e18: DUP1 00002e19: PUSH32 0x616c726561647920696e69746564000000000000000000000000000000000000 00002e3a: DUP2 00002e3b: MSTORE 00002e3c: POP 00002e3d: PUSH1 0x20 00002e3f: ADD 00002e40: SWAP2 00002e41: POP 00002e42: POP 00002e43: PUSH1 0x40 00002e45: MLOAD 00002e46: DUP1 00002e47: SWAP2 00002e48: SUB 00002e49: SWAP1 00002e4a: REVERT 00002e4b: JUMPDEST 00002e4c: PUSH2 0x2e55 00002e4f: DUP3 00002e50: DUP3 00002e51: PUSH2 0x319c 00002e54: JUMP 00002e55: JUMPDEST 00002e56: PUSH1 0x01 00002e58: PUSH1 0x08 00002e5a: PUSH1 0x00 00002e5c: PUSH2 0x0100 00002e5f: EXP 00002e60: DUP2 00002e61: SLOAD 00002e62: DUP2 00002e63: PUSH1 0xff 00002e65: MUL 00002e66: NOT 00002e67: AND 00002e68: SWAP1 00002e69: DUP4 00002e6a: ISZERO 00002e6b: ISZERO 00002e6c: MUL 00002e6d: OR 00002e6e: SWAP1 00002e6f: SSTORE 00002e70: POP 00002e71: POP 00002e72: POP 00002e73: JUMP 00002e74: JUMPDEST 00002e75: PUSH1 0x00 00002e77: ADDRESS 00002e78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e8d: AND 00002e8e: CALLER 00002e8f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ea4: AND 00002ea5: EQ 00002ea6: ISZERO 00002ea7: PUSH2 0x2f1f 00002eaa: JUMPI 00002eab: PUSH1 0x60 00002ead: PUSH1 0x00 00002eaf: CALLDATASIZE 00002eb0: DUP1 00002eb1: DUP1 00002eb2: PUSH1 0x1f 00002eb4: ADD 00002eb5: PUSH1 0x20 00002eb7: DUP1 00002eb8: SWAP2 00002eb9: DIV 00002eba: MUL 00002ebb: PUSH1 0x20 00002ebd: ADD 00002ebe: PUSH1 0x40 00002ec0: MLOAD 00002ec1: SWAP1 00002ec2: DUP2 00002ec3: ADD 00002ec4: PUSH1 0x40 00002ec6: MSTORE 00002ec7: DUP1 00002ec8: SWAP4 00002ec9: SWAP3 00002eca: SWAP2 00002ecb: SWAP1 00002ecc: DUP2 00002ecd: DUP2 00002ece: MSTORE 00002ecf: PUSH1 0x20 00002ed1: ADD 00002ed2: DUP4 00002ed3: DUP4 00002ed4: DUP1 00002ed5: DUP3 00002ed6: DUP5 00002ed7: CALLDATACOPY 00002ed8: PUSH1 0x00 00002eda: DUP2 00002edb: DUP5 00002edc: ADD 00002edd: MSTORE 00002ede: PUSH1 0x1f 00002ee0: NOT 00002ee1: PUSH1 0x1f 00002ee3: DUP3 00002ee4: ADD 00002ee5: AND 00002ee6: SWAP1 00002ee7: POP 00002ee8: DUP1 00002ee9: DUP4 00002eea: ADD 00002eeb: SWAP3 00002eec: POP 00002eed: POP 00002eee: POP 00002eef: POP 00002ef0: POP 00002ef1: POP 00002ef2: POP 00002ef3: SWAP1 00002ef4: POP 00002ef5: PUSH1 0x00 00002ef7: DUP1 00002ef8: CALLDATASIZE 00002ef9: SWAP1 00002efa: POP 00002efb: SWAP1 00002efc: POP 00002efd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f12: DUP2 00002f13: DUP4 00002f14: ADD 00002f15: MLOAD 00002f16: AND 00002f17: SWAP3 00002f18: POP 00002f19: POP 00002f1a: POP 00002f1b: PUSH2 0x2f23 00002f1e: JUMP 00002f1f: JUMPDEST 00002f20: CALLER 00002f21: SWAP1 00002f22: POP 00002f23: JUMPDEST 00002f24: DUP1 00002f25: SWAP1 00002f26: POP 00002f27: SWAP1 00002f28: JUMP 00002f29: JUMPDEST 00002f2a: PUSH1 0x00 00002f2c: PUSH1 0x40 00002f2e: MLOAD 00002f2f: DUP1 00002f30: PUSH1 0x80 00002f32: ADD 00002f33: PUSH1 0x40 00002f35: MSTORE 00002f36: DUP1 00002f37: PUSH1 0x43 00002f39: DUP2 00002f3a: MSTORE 00002f3b: PUSH1 0x20 00002f3d: ADD 00002f3e: PUSH2 0x351b 00002f41: PUSH1 0x43 00002f43: SWAP2 00002f44: CODECOPY 00002f45: DUP1 00002f46: MLOAD 00002f47: SWAP1 00002f48: PUSH1 0x20 00002f4a: ADD 00002f4b: KECCAK256 00002f4c: DUP3 00002f4d: PUSH1 0x00 00002f4f: ADD 00002f50: MLOAD 00002f51: DUP4 00002f52: PUSH1 0x20 00002f54: ADD 00002f55: MLOAD 00002f56: DUP5 00002f57: PUSH1 0x40 00002f59: ADD 00002f5a: MLOAD 00002f5b: DUP1 00002f5c: MLOAD 00002f5d: SWAP1 00002f5e: PUSH1 0x20 00002f60: ADD 00002f61: KECCAK256 00002f62: PUSH1 0x40 00002f64: MLOAD 00002f65: PUSH1 0x20 00002f67: ADD 00002f68: DUP1 00002f69: DUP6 00002f6a: DUP2 00002f6b: MSTORE 00002f6c: PUSH1 0x20 00002f6e: ADD 00002f6f: DUP5 00002f70: DUP2 00002f71: MSTORE 00002f72: PUSH1 0x20 00002f74: ADD 00002f75: DUP4 00002f76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f8b: AND 00002f8c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002fa1: AND 00002fa2: DUP2 00002fa3: MSTORE 00002fa4: PUSH1 0x20 00002fa6: ADD 00002fa7: DUP3 00002fa8: DUP2 00002fa9: MSTORE 00002faa: PUSH1 0x20 00002fac: ADD 00002fad: SWAP5 00002fae: POP 00002faf: POP 00002fb0: POP 00002fb1: POP 00002fb2: POP 00002fb3: PUSH1 0x40 00002fb5: MLOAD 00002fb6: PUSH1 0x20 00002fb8: DUP2 00002fb9: DUP4 00002fba: SUB 00002fbb: SUB 00002fbc: DUP2 00002fbd: MSTORE 00002fbe: SWAP1 00002fbf: PUSH1 0x40 00002fc1: MSTORE 00002fc2: DUP1 00002fc3: MLOAD 00002fc4: SWAP1 00002fc5: PUSH1 0x20 00002fc7: ADD 00002fc8: KECCAK256 00002fc9: SWAP1 00002fca: POP 00002fcb: SWAP2 00002fcc: SWAP1 00002fcd: POP 00002fce: JUMP 00002fcf: JUMPDEST 00002fd0: PUSH1 0x00 00002fd2: PUSH2 0x2fd9 00002fd5: PUSH2 0x1594 00002fd8: JUMP 00002fd9: JUMPDEST 00002fda: DUP3 00002fdb: PUSH1 0x40 00002fdd: MLOAD 00002fde: PUSH1 0x20 00002fe0: ADD 00002fe1: DUP1 00002fe2: DUP1 00002fe3: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 00003004: DUP2 00003005: MSTORE 00003006: POP 00003007: PUSH1 0x02 00003009: ADD 0000300a: DUP4 0000300b: DUP2 0000300c: MSTORE 0000300d: PUSH1 0x20 0000300f: ADD 00003010: DUP3 00003011: DUP2 00003012: MSTORE 00003013: PUSH1 0x20 00003015: ADD 00003016: SWAP3 00003017: POP 00003018: POP 00003019: POP 0000301a: PUSH1 0x40 0000301c: MLOAD 0000301d: PUSH1 0x20 0000301f: DUP2 00003020: DUP4 00003021: SUB 00003022: SUB 00003023: DUP2 00003024: MSTORE 00003025: SWAP1 00003026: PUSH1 0x40 00003028: MSTORE 00003029: DUP1 0000302a: MLOAD 0000302b: SWAP1 0000302c: PUSH1 0x20 0000302e: ADD 0000302f: KECCAK256 00003030: SWAP1 00003031: POP 00003032: SWAP2 00003033: SWAP1 00003034: POP 00003035: JUMP 00003036: JUMPDEST 00003037: POP 00003038: POP 00003039: POP 0000303a: JUMP 0000303b: JUMPDEST 0000303c: PUSH1 0x00 0000303e: PUSH2 0x307d 00003041: DUP4 00003042: DUP4 00003043: PUSH1 0x40 00003045: MLOAD 00003046: DUP1 00003047: PUSH1 0x40 00003049: ADD 0000304a: PUSH1 0x40 0000304c: MSTORE 0000304d: DUP1 0000304e: PUSH1 0x1e 00003050: DUP2 00003051: MSTORE 00003052: PUSH1 0x20 00003054: ADD 00003055: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 00003076: DUP2 00003077: MSTORE 00003078: POP 00003079: PUSH2 0x26ea 0000307c: JUMP 0000307d: JUMPDEST 0000307e: SWAP1 0000307f: POP 00003080: SWAP3 00003081: SWAP2 00003082: POP 00003083: POP 00003084: JUMP 00003085: JUMPDEST 00003086: PUSH1 0x00 00003088: PUSH2 0x30ad 0000308b: DUP4 0000308c: PUSH1 0x00 0000308e: ADD 0000308f: DUP4 00003090: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030a5: AND 000030a6: PUSH1 0x00 000030a8: SHL 000030a9: PUSH2 0x3250 000030ac: JUMP 000030ad: JUMPDEST 000030ae: SWAP1 000030af: POP 000030b0: SWAP3 000030b1: SWAP2 000030b2: POP 000030b3: POP 000030b4: JUMP 000030b5: JUMPDEST 000030b6: PUSH1 0x00 000030b8: PUSH2 0x30dd 000030bb: DUP4 000030bc: PUSH1 0x00 000030be: ADD 000030bf: DUP4 000030c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030d5: AND 000030d6: PUSH1 0x00 000030d8: SHL 000030d9: PUSH2 0x32c0 000030dc: JUMP 000030dd: JUMPDEST 000030de: SWAP1 000030df: POP 000030e0: SWAP3 000030e1: SWAP2 000030e2: POP 000030e3: POP 000030e4: JUMP 000030e5: JUMPDEST 000030e6: PUSH1 0x00 000030e8: DUP2 000030e9: DUP4 000030ea: PUSH1 0x00 000030ec: ADD 000030ed: DUP1 000030ee: SLOAD 000030ef: SWAP1 000030f0: POP 000030f1: GT 000030f2: PUSH2 0x3146 000030f5: JUMPI 000030f6: PUSH1 0x40 000030f8: MLOAD 000030f9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000311a: DUP2 0000311b: MSTORE 0000311c: PUSH1 0x04 0000311e: ADD 0000311f: DUP1 00003120: DUP1 00003121: PUSH1 0x20 00003123: ADD 00003124: DUP3 00003125: DUP2 00003126: SUB 00003127: DUP3 00003128: MSTORE 00003129: PUSH1 0x22 0000312b: DUP2 0000312c: MSTORE 0000312d: PUSH1 0x20 0000312f: ADD 00003130: DUP1 00003131: PUSH2 0x3485 00003134: PUSH1 0x22 00003136: SWAP2 00003137: CODECOPY 00003138: PUSH1 0x40 0000313a: ADD 0000313b: SWAP2 0000313c: POP 0000313d: POP 0000313e: PUSH1 0x40 00003140: MLOAD 00003141: DUP1 00003142: SWAP2 00003143: SUB 00003144: SWAP1 00003145: REVERT 00003146: JUMPDEST 00003147: DUP3 00003148: PUSH1 0x00 0000314a: ADD 0000314b: DUP3 0000314c: DUP2 0000314d: SLOAD 0000314e: DUP2 0000314f: LT 00003150: PUSH2 0x3155 00003153: JUMPI 00003154: INVALID 00003155: JUMPDEST 00003156: SWAP1 00003157: PUSH1 0x00 00003159: MSTORE 0000315a: PUSH1 0x20 0000315c: PUSH1 0x00 0000315e: KECCAK256 0000315f: ADD 00003160: SLOAD 00003161: SWAP1 00003162: POP 00003163: SWAP3 00003164: SWAP2 00003165: POP 00003166: POP 00003167: JUMP 00003168: JUMPDEST 00003169: PUSH1 0x00 0000316b: DUP1 0000316c: DUP4 0000316d: PUSH1 0x01 0000316f: ADD 00003170: PUSH1 0x00 00003172: DUP5 00003173: DUP2 00003174: MSTORE 00003175: PUSH1 0x20 00003177: ADD 00003178: SWAP1 00003179: DUP2 0000317a: MSTORE 0000317b: PUSH1 0x20 0000317d: ADD 0000317e: PUSH1 0x00 00003180: KECCAK256 00003181: SLOAD 00003182: EQ 00003183: ISZERO 00003184: SWAP1 00003185: POP 00003186: SWAP3 00003187: SWAP2 00003188: POP 00003189: POP 0000318a: JUMP 0000318b: JUMPDEST 0000318c: PUSH1 0x00 0000318e: DUP2 0000318f: PUSH1 0x00 00003191: ADD 00003192: DUP1 00003193: SLOAD 00003194: SWAP1 00003195: POP 00003196: SWAP1 00003197: POP 00003198: SWAP2 00003199: SWAP1 0000319a: POP 0000319b: JUMP 0000319c: JUMPDEST 0000319d: PUSH1 0x40 0000319f: MLOAD 000031a0: DUP1 000031a1: PUSH1 0x80 000031a3: ADD 000031a4: PUSH1 0x40 000031a6: MSTORE 000031a7: DUP1 000031a8: PUSH1 0x4f 000031aa: DUP2 000031ab: MSTORE 000031ac: PUSH1 0x20 000031ae: ADD 000031af: PUSH2 0x3580 000031b2: PUSH1 0x4f 000031b4: SWAP2 000031b5: CODECOPY 000031b6: DUP1 000031b7: MLOAD 000031b8: SWAP1 000031b9: PUSH1 0x20 000031bb: ADD 000031bc: KECCAK256 000031bd: DUP3 000031be: DUP1 000031bf: MLOAD 000031c0: SWAP1 000031c1: PUSH1 0x20 000031c3: ADD 000031c4: KECCAK256 000031c5: DUP3 000031c6: DUP1 000031c7: MLOAD 000031c8: SWAP1 000031c9: PUSH1 0x20 000031cb: ADD 000031cc: KECCAK256 000031cd: ADDRESS 000031ce: PUSH2 0x31d5 000031d1: PUSH2 0x1795 000031d4: JUMP 000031d5: JUMPDEST 000031d6: PUSH1 0x00 000031d8: SHL 000031d9: PUSH1 0x40 000031db: MLOAD 000031dc: PUSH1 0x20 000031de: ADD 000031df: DUP1 000031e0: DUP7 000031e1: DUP2 000031e2: MSTORE 000031e3: PUSH1 0x20 000031e5: ADD 000031e6: DUP6 000031e7: DUP2 000031e8: MSTORE 000031e9: PUSH1 0x20 000031eb: ADD 000031ec: DUP5 000031ed: DUP2 000031ee: MSTORE 000031ef: PUSH1 0x20 000031f1: ADD 000031f2: DUP4 000031f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003208: AND 00003209: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000321e: AND 0000321f: DUP2 00003220: MSTORE 00003221: PUSH1 0x20 00003223: ADD 00003224: DUP3 00003225: DUP2 00003226: MSTORE 00003227: PUSH1 0x20 00003229: ADD 0000322a: SWAP6 0000322b: POP 0000322c: POP 0000322d: POP 0000322e: POP 0000322f: POP 00003230: POP 00003231: PUSH1 0x40 00003233: MLOAD 00003234: PUSH1 0x20 00003236: DUP2 00003237: DUP4 00003238: SUB 00003239: SUB 0000323a: DUP2 0000323b: MSTORE 0000323c: SWAP1 0000323d: PUSH1 0x40 0000323f: MSTORE 00003240: DUP1 00003241: MLOAD 00003242: SWAP1 00003243: PUSH1 0x20 00003245: ADD 00003246: KECCAK256 00003247: PUSH1 0x09 00003249: DUP2 0000324a: SWAP1 0000324b: SSTORE 0000324c: POP 0000324d: POP 0000324e: POP 0000324f: JUMP 00003250: JUMPDEST 00003251: PUSH1 0x00 00003253: PUSH2 0x325c 00003256: DUP4 00003257: DUP4 00003258: PUSH2 0x3168 0000325b: JUMP 0000325c: JUMPDEST 0000325d: PUSH2 0x32b5 00003260: JUMPI 00003261: DUP3 00003262: PUSH1 0x00 00003264: ADD 00003265: DUP3 00003266: SWAP1 00003267: DUP1 00003268: PUSH1 0x01 0000326a: DUP2 0000326b: SLOAD 0000326c: ADD 0000326d: DUP1 0000326e: DUP3 0000326f: SSTORE 00003270: DUP1 00003271: SWAP2 00003272: POP 00003273: POP 00003274: PUSH1 0x01 00003276: SWAP1 00003277: SUB 00003278: SWAP1 00003279: PUSH1 0x00 0000327b: MSTORE 0000327c: PUSH1 0x20 0000327e: PUSH1 0x00 00003280: KECCAK256 00003281: ADD 00003282: PUSH1 0x00 00003284: SWAP1 00003285: SWAP2 00003286: SWAP1 00003287: SWAP2 00003288: SWAP1 00003289: SWAP2 0000328a: POP 0000328b: SSTORE 0000328c: DUP3 0000328d: PUSH1 0x00 0000328f: ADD 00003290: DUP1 00003291: SLOAD 00003292: SWAP1 00003293: POP 00003294: DUP4 00003295: PUSH1 0x01 00003297: ADD 00003298: PUSH1 0x00 0000329a: DUP5 0000329b: DUP2 0000329c: MSTORE 0000329d: PUSH1 0x20 0000329f: ADD 000032a0: SWAP1 000032a1: DUP2 000032a2: MSTORE 000032a3: PUSH1 0x20 000032a5: ADD 000032a6: PUSH1 0x00 000032a8: KECCAK256 000032a9: DUP2 000032aa: SWAP1 000032ab: SSTORE 000032ac: POP 000032ad: PUSH1 0x01 000032af: SWAP1 000032b0: POP 000032b1: PUSH2 0x32ba 000032b4: JUMP 000032b5: JUMPDEST 000032b6: PUSH1 0x00 000032b8: SWAP1 000032b9: POP 000032ba: JUMPDEST 000032bb: SWAP3 000032bc: SWAP2 000032bd: POP 000032be: POP 000032bf: JUMP 000032c0: JUMPDEST 000032c1: PUSH1 0x00 000032c3: DUP1 000032c4: DUP4 000032c5: PUSH1 0x01 000032c7: ADD 000032c8: PUSH1 0x00 000032ca: DUP5 000032cb: DUP2 000032cc: MSTORE 000032cd: PUSH1 0x20 000032cf: ADD 000032d0: SWAP1 000032d1: DUP2 000032d2: MSTORE 000032d3: PUSH1 0x20 000032d5: ADD 000032d6: PUSH1 0x00 000032d8: KECCAK256 000032d9: SLOAD 000032da: SWAP1 000032db: POP 000032dc: PUSH1 0x00 000032de: DUP2 000032df: EQ 000032e0: PUSH2 0x339c 000032e3: JUMPI 000032e4: PUSH1 0x00 000032e6: PUSH1 0x01 000032e8: DUP3 000032e9: SUB 000032ea: SWAP1 000032eb: POP 000032ec: PUSH1 0x00 000032ee: PUSH1 0x01 000032f0: DUP7 000032f1: PUSH1 0x00 000032f3: ADD 000032f4: DUP1 000032f5: SLOAD 000032f6: SWAP1 000032f7: POP 000032f8: SUB 000032f9: SWAP1 000032fa: POP 000032fb: PUSH1 0x00 000032fd: DUP7 000032fe: PUSH1 0x00 00003300: ADD 00003301: DUP3 00003302: DUP2 00003303: SLOAD 00003304: DUP2 00003305: LT 00003306: PUSH2 0x330b 00003309: JUMPI 0000330a: INVALID 0000330b: JUMPDEST 0000330c: SWAP1 0000330d: PUSH1 0x00 0000330f: MSTORE 00003310: PUSH1 0x20 00003312: PUSH1 0x00 00003314: KECCAK256 00003315: ADD 00003316: SLOAD 00003317: SWAP1 00003318: POP 00003319: DUP1 0000331a: DUP8 0000331b: PUSH1 0x00 0000331d: ADD 0000331e: DUP5 0000331f: DUP2 00003320: SLOAD 00003321: DUP2 00003322: LT 00003323: PUSH2 0x3328 00003326: JUMPI 00003327: INVALID 00003328: JUMPDEST 00003329: SWAP1 0000332a: PUSH1 0x00 0000332c: MSTORE 0000332d: PUSH1 0x20 0000332f: PUSH1 0x00 00003331: KECCAK256 00003332: ADD 00003333: DUP2 00003334: SWAP1 00003335: SSTORE 00003336: POP 00003337: PUSH1 0x01 00003339: DUP4 0000333a: ADD 0000333b: DUP8 0000333c: PUSH1 0x01 0000333e: ADD 0000333f: PUSH1 0x00 00003341: DUP4 00003342: DUP2 00003343: MSTORE 00003344: PUSH1 0x20 00003346: ADD 00003347: SWAP1 00003348: DUP2 00003349: MSTORE 0000334a: PUSH1 0x20 0000334c: ADD 0000334d: PUSH1 0x00 0000334f: KECCAK256 00003350: DUP2 00003351: SWAP1 00003352: SSTORE 00003353: POP 00003354: DUP7 00003355: PUSH1 0x00 00003357: ADD 00003358: DUP1 00003359: SLOAD 0000335a: DUP1 0000335b: PUSH2 0x3360 0000335e: JUMPI 0000335f: INVALID 00003360: JUMPDEST 00003361: PUSH1 0x01 00003363: SWAP1 00003364: SUB 00003365: DUP2 00003366: DUP2 00003367: SWAP1 00003368: PUSH1 0x00 0000336a: MSTORE 0000336b: PUSH1 0x20 0000336d: PUSH1 0x00 0000336f: KECCAK256 00003370: ADD 00003371: PUSH1 0x00 00003373: SWAP1 00003374: SSTORE 00003375: SWAP1 00003376: SSTORE 00003377: DUP7 00003378: PUSH1 0x01 0000337a: ADD 0000337b: PUSH1 0x00 0000337d: DUP8 0000337e: DUP2 0000337f: MSTORE 00003380: PUSH1 0x20 00003382: ADD 00003383: SWAP1 00003384: DUP2 00003385: MSTORE 00003386: PUSH1 0x20 00003388: ADD 00003389: PUSH1 0x00 0000338b: KECCAK256 0000338c: PUSH1 0x00 0000338e: SWAP1 0000338f: SSTORE 00003390: PUSH1 0x01 00003392: SWAP5 00003393: POP 00003394: POP 00003395: POP 00003396: POP 00003397: POP 00003398: PUSH2 0x33a2 0000339b: JUMP 0000339c: JUMPDEST 0000339d: PUSH1 0x00 0000339f: SWAP2 000033a0: POP 000033a1: POP 000033a2: JUMPDEST 000033a3: SWAP3 000033a4: SWAP2 000033a5: POP 000033a6: POP 000033a7: JUMP 000033a8: JUMPDEST 000033a9: PUSH1 0x40 000033ab: MLOAD 000033ac: DUP1 000033ad: PUSH1 0x60 000033af: ADD 000033b0: PUSH1 0x40 000033b2: MSTORE 000033b3: DUP1 000033b4: PUSH1 0x00 000033b6: DUP2 000033b7: MSTORE 000033b8: PUSH1 0x20 000033ba: ADD 000033bb: PUSH1 0x00 000033bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000033d2: AND 000033d3: DUP2 000033d4: MSTORE 000033d5: PUSH1 0x20 000033d7: ADD 000033d8: PUSH1 0x60 000033da: DUP2 000033db: MSTORE 000033dc: POP 000033dd: SWAP1 000033de: JUMP 000033df: JUMPDEST 000033e0: DUP3 000033e1: DUP1 000033e2: SLOAD 000033e3: PUSH1 0x01 000033e5: DUP2 000033e6: PUSH1 0x01 000033e8: AND 000033e9: ISZERO 000033ea: PUSH2 0x0100 000033ed: MUL 000033ee: SUB 000033ef: AND 000033f0: PUSH1 0x02 000033f2: SWAP1 000033f3: DIV 000033f4: SWAP1 000033f5: PUSH1 0x00 000033f7: MSTORE 000033f8: PUSH1 0x20 000033fa: PUSH1 0x00 000033fc: KECCAK256 000033fd: SWAP1 000033fe: PUSH1 0x1f 00003400: ADD 00003401: PUSH1 0x20 00003403: SWAP1 00003404: DIV 00003405: DUP2 00003406: ADD 00003407: SWAP3 00003408: DUP3 00003409: PUSH1 0x1f 0000340b: LT 0000340c: PUSH2 0x3420 0000340f: JUMPI 00003410: DUP1 00003411: MLOAD 00003412: PUSH1 0xff 00003414: NOT 00003415: AND 00003416: DUP4 00003417: DUP1 00003418: ADD 00003419: OR 0000341a: DUP6 0000341b: SSTORE 0000341c: PUSH2 0x344e 0000341f: JUMP 00003420: JUMPDEST 00003421: DUP3 00003422: DUP1 00003423: ADD 00003424: PUSH1 0x01 00003426: ADD 00003427: DUP6 00003428: SSTORE 00003429: DUP3 0000342a: ISZERO 0000342b: PUSH2 0x344e 0000342e: JUMPI 0000342f: SWAP2 00003430: DUP3 00003431: ADD 00003432: JUMPDEST 00003433: DUP3 00003434: DUP2 00003435: GT 00003436: ISZERO 00003437: PUSH2 0x344d 0000343a: JUMPI 0000343b: DUP3 0000343c: MLOAD 0000343d: DUP3 0000343e: SSTORE 0000343f: SWAP2 00003440: PUSH1 0x20 00003442: ADD 00003443: SWAP2 00003444: SWAP1 00003445: PUSH1 0x01 00003447: ADD 00003448: SWAP1 00003449: PUSH2 0x3432 0000344c: JUMP 0000344d: JUMPDEST 0000344e: JUMPDEST 0000344f: POP 00003450: SWAP1 00003451: POP 00003452: PUSH2 0x345b 00003455: SWAP2 00003456: SWAP1 00003457: PUSH2 0x345f 0000345a: JUMP 0000345b: JUMPDEST 0000345c: POP 0000345d: SWAP1 0000345e: JUMP 0000345f: JUMPDEST 00003460: PUSH2 0x3481 00003463: SWAP2 00003464: SWAP1 00003465: JUMPDEST 00003466: DUP1 00003467: DUP3 00003468: GT 00003469: ISZERO 0000346a: PUSH2 0x347d 0000346d: JUMPI 0000346e: PUSH1 0x00 00003470: DUP2 00003471: PUSH1 0x00 00003473: SWAP1 00003474: SSTORE 00003475: POP 00003476: PUSH1 0x01 00003478: ADD 00003479: PUSH2 0x3465 0000347c: JUMP 0000347d: JUMPDEST 0000347e: POP 0000347f: SWAP1 00003480: JUMP 00003481: JUMPDEST 00003482: SWAP1 00003483: JUMP 00003484: INVALID 00003485: GASLIMIT 00003486: PUSH15 0x756d657261626c655365743a20696e 00003496: PUSH5 0x6578206f75 0000349c: PUSH21 0x206f6620626f756e647345524332303a207472616e 000034b2: PUSH20 0x66657220746f20746865207a65726f2061646472 000034c7: PUSH6 0x737341636365 000034ce: PUSH20 0x73436f6e74726f6c3a2073656e646572206d7573 000034e3: PUSH21 0x20626520616e2061646d696e20746f206772616e74 000034f9: GASLIMIT 000034fa: MSTORE 000034fb: NUMBER 000034fc: ORIGIN 000034fd: ADDRESS 000034fe: GASPRICE 000034ff: KECCAK256 00003500: PUSH3 0x75726e 00003504: KECCAK256 00003505: PUSH2 0x6d6f 00003508: PUSH22 0x6e7420657863656564732062616c616e63654d657461 0000351f: SLOAD 00003520: PUSH19 0x616e73616374696f6e2875696e74323536206e 00003534: PUSH16 0x6e63652c616464726573732066726f6d 00003545: UNKNOWN(0x2C) 00003546: PUSH3 0x797465 0000354a: PUSH20 0x2066756e6374696f6e5369676e61747572652945 0000355f: MSTORE 00003560: NUMBER 00003561: ORIGIN 00003562: ADDRESS 00003563: GASPRICE 00003564: KECCAK256 00003565: PUSH2 0x7070 00003568: PUSH19 0x6f766520746f20746865207a65726f20616464 0000357c: PUSH19 0x657373454950373132446f6d61696e28737472 00003590: PUSH10 0x6e67206e616d652c7374 0000359b: PUSH19 0x696e672076657273696f6e2c61646472657373 000035af: KECCAK256 000035b0: PUSH23 0x6572696679696e67436f6e74726163742c627974657333 000035c8: ORIGIN 000035c9: KECCAK256 000035ca: PUSH20 0x616c742945524332303a207472616e7366657220 000035df: PUSH2 0x6d6f 000035e2: PUSH22 0x6e7420657863656564732062616c616e636541636365 000035f9: PUSH20 0x73436f6e74726f6c3a2073656e646572206d7573 0000360e: PUSH21 0x20626520616e2061646d696e20746f207265766f6b 00003624: PUSH6 0x4e6174697665 0000362b: UNKNOWN(0x4D) 0000362c: PUSH6 0x74615472616e 00003633: PUSH20 0x616374696f6e3a20494e56414c49445f5349474e 00003648: GASLIMIT 00003649: MSTORE 0000364a: GASLIMIT 0000364b: MSTORE 0000364c: NUMBER 0000364d: ORIGIN 0000364e: ADDRESS 0000364f: GASPRICE 00003650: KECCAK256 00003651: PUSH21 0x72616e7366657220616d6f756e7420657863656564 00003667: PUSH20 0x20616c6c6f77616e63655369676e657220616e64 0000367c: KECCAK256 0000367d: PUSH20 0x69676e617475726520646f206e6f74206d617463 00003692: PUSH9 0x45524332303a206275 0000369c: PUSH19 0x6e2066726f6d20746865207a65726f20616464 000036b0: PUSH19 0x65737345524332303a207472616e7366657220 000036c4: PUSH7 0x726f6d20746865 000036cc: KECCAK256 000036cd: PUSH27 0x65726f206164647265737345524332303a20617070726f76652066 000036e9: PUSH19 0x6f6d20746865207a65726f2061646472657373 000036fd: GASLIMIT 000036fe: MSTORE 000036ff: NUMBER 00003700: ORIGIN 00003701: ADDRESS 00003702: GASPRICE 00003703: KECCAK256 00003704: PUSH5 0x6563726561 0000370a: PUSH20 0x656420616c6c6f77616e63652062656c6f77207a 0000371f: PUSH6 0x726f41636365 00003726: PUSH20 0x73436f6e74726f6c3a2063616e206f6e6c792072 0000373b: PUSH6 0x6e6f756e6365 00003742: KECCAK256 00003743: PUSH19 0x6f6c657320666f722073656c66a26469706673 00003757: PC 00003758: UNKNOWN(0x22) 00003759: SLT 0000375a: KECCAK256 0000375b: LOG4 0000375c: EQ 0000375d: UNKNOWN(0xBB) 0000375e: UNKNOWN(0xC5) 0000375f: CALLDATALOAD 00003760: UNKNOWN(0xBF) 00003761: LOG3 00003762: CALLVALUE 00003763: UNKNOWN(0xF9) 00003764: UNKNOWN(0xB0) 00003765: UNKNOWN(0x26) 00003766: BLOCKHASH 00003767: UNKNOWN(0xC3) 00003768: MSIZE 00003769: UNKNOWN(0x2E) 0000376a: UNKNOWN(0xD9) 0000376b: CHAINID 0000376c: PUSH27
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xcf2c52cb",
"selector": "0xcf2c52cb",
"calldata_variants": [
"0xcf2c52cb",
"0xcf2c52cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde7ea79d",
"selector": "0xde7ea79d",
"calldata_variants": [
"0xde7ea79d",
"0xde7ea79d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3b0b5a3",
"selector": "0xa3b0b5a3",
"calldata_variants": [
"0xa3b0b5a3",
"0xa3b0b5a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa457c2d7",
"selector": "0xa457c2d7",
"calldata_variants": [
"0xa457c2d7",
"0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca15c873",
"selector": "0xca15c873",
"calldata_variants": [
"0xca15c873",
"0xca15c8730000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 11918,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 13564,
"type": "tx_origin_used"
},
{
"pc": 13665,
"type": "tx_origin_used"
},
{
"pc": 13768,
"type": "tx_origin_used"
},
{
"pc": 13901,
"type": "tx_origin_used"
},
{
"pc": 14080,
"type": "tx_origin_used"
}
]
}
|
| high | upgradeability | codex | Unprotected initializer allows takeover of uninitialized proxy | 85 | no | — |
viewevidence_json{
"evidence": "`initialize` is `external` and lacks any access control while setting admin and depositor roles.",
"locations": [
"contracts/Contract.sol:1500",
"contracts/Contract.sol:1512",
"contracts/Contract.sol:1513",
"contracts/Contract.sol:1514"
],
"recommendation": "Ensure the proxy is initialized in the deployment transaction (e.g., proxy constructor `data`), or gate `initialize` with an access control check. Also consider calling `_disableInitializers()` in the implementation contract to prevent misuse.",
"exploit_scenario": "If the proxy is deployed without calling `initialize` atomically, any account can call `initialize` first, setting themselves as `DEFAULT_ADMIN_ROLE` and choosing a malicious `childChainManager` for `DEPOSITOR_ROLE`. The attacker can then mint arbitrary tokens via `deposit` or otherwise control roles."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x12097fc51be17769460851514e2a6bc5842f9efbd5ee12e7573ff5944027ab3d
call_targets:
0x2791bca1f2de4661ed88a30c99a7a9449aa84174
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x12097fc51be17769460851514e2a6bc5842f9efbd5ee12e7573ff5944027ab3d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2791bca1f2de4661ed88a30c99a7a9449aa84174"
],
"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": "0xcf2c52cb",
"selector": "0xcf2c52cb",
"calldata_variants": [
"0xcf2c52cb",
"0xcf2c52cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde7ea79d",
"selector": "0xde7ea79d",
"calldata_variants": [
"0xde7ea79d",
"0xde7ea79d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3b0b5a3",
"selector": "0xa3b0b5a3",
"calldata_variants": [
"0xa3b0b5a3",
"0xa3b0b5a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa457c2d7",
"selector": "0xa457c2d7",
"calldata_variants": [
"0xa457c2d7",
"0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca15c873",
"selector": "0xca15c873",
"calldata_variants": [
"0xca15c873",
"0xca15c8730000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5213,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 11918,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 13564,
"type": "tx_origin_used"
},
{
"pc": 13665,
"type": "tx_origin_used"
},
{
"pc": 13768,
"type": "tx_origin_used"
},
{
"pc": 13901,
"type": "tx_origin_used"
},
{
"pc": 14080,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x12097fc51be17769460851514e2a6bc5842f9efbd5ee12e7573ff5944027ab3d
call_targets:
0x2791bca1f2de4661ed88a30c99a7a9449aa84174
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x12097fc51be17769460851514e2a6bc5842f9efbd5ee12e7573ff5944027ab3d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2791bca1f2de4661ed88a30c99a7a9449aa84174"
],
"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": "0xcf2c52cb",
"selector": "0xcf2c52cb",
"calldata_variants": [
"0xcf2c52cb",
"0xcf2c52cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde7ea79d",
"selector": "0xde7ea79d",
"calldata_variants": [
"0xde7ea79d",
"0xde7ea79d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3b0b5a3",
"selector": "0xa3b0b5a3",
"calldata_variants": [
"0xa3b0b5a3",
"0xa3b0b5a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa457c2d7",
"selector": "0xa457c2d7",
"calldata_variants": [
"0xa457c2d7",
"0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca15c873",
"selector": "0xca15c873",
"calldata_variants": [
"0xca15c873",
"0xca15c8730000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5213,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 11918,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 13564,
"type": "tx_origin_used"
},
{
"pc": 13665,
"type": "tx_origin_used"
},
{
"pc": 13768,
"type": "tx_origin_used"
},
{
"pc": 13901,
"type": "tx_origin_used"
},
{
"pc": 14080,
"type": "tx_origin_used"
}
]
}
|
| medium | other | slither | Contract locking ether found: | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "locked-ether",
"elements": [
{
"name": "UChildERC20",
"type": "contract",
"source_mapping": {
"lines": [
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509
],
"start": 48784,
"length": 2122,
"ending_column": 10,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 68,
"filename_absolute": "/tmp/slither-djzjglu7/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
{
"name": "executeMetaTransaction",
"type": "function",
"source_mapping": {
"lines": [
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348
],
"start": 45491,
"length": 1108,
"ending_column": 72,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 94,
"filename_absolute": "/tmp/slither-djzjglu7/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "NativeMetaTransaction",
"type": "contract",
"source_mapping": {
"lines": [
1283,
1284,
1285,
1286,
1287,
1288,
1289,
1290,
1291,
1292,
1293,
1294,
1295,
1296,
1297,
1298,
1299,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348,
1349,
1350,
1351,
1352,
1353,
1354,
1355,
1356,
1357,
1358,
1359,
1360,
1361,
1362,
1363,
1364,
1365,
1366,
1367,
1368,
1369,
1370,
1371,
1372,
1373,
1374,
1375,
1376,
1377,
1378,
1379,
1380
],
"start": 44694,
"length": 2896,
"ending_column": 8,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 47,
"filename_absolute": "/tmp/slither-djzjglu7/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)"
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "UChildERC20",
"type": "contract",
"lines": [
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509
]
},
{
"file": "contracts/Contract.sol",
"name": "executeMetaTransaction",
"type": "function",
"lines": [
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348
]
}
],
"description": "Contract locking ether found:\n\tContract UChildERC20 (contracts/Contract.sol#1420-1509) has payable functions:\n\t - NativeMetaTransaction.executeMetaTransaction(address,bytes,bytes32,bytes32,uint8) (contracts/Contract.sol#1309-1348)\n\tBut does not have a function to withdraw the ether"
}
|
| low | auth | codex | Meta‑transaction signature verification allows malleable signatures | 65 | no | — |
viewevidence_json{
"evidence": "`verify` uses `ecrecover` directly without validating `sigV`/`sigS`.",
"locations": [
"contracts/Contract.sol:1413",
"contracts/Contract.sol:1420",
"contracts/Contract.sol:1423"
],
"recommendation": "Use OpenZeppelin `ECDSA.recover` or add EIP\u20112 checks: require `sigV` in {27,28} and `sigS` <= secp256k1n/2.",
"exploit_scenario": "Because `verify` uses raw `ecrecover` without enforcing `sigS` in the lower half order or validating `sigV`, the same meta\u2011tx can be represented by multiple valid signatures. This can enable replay in off\u2011chain systems that rely on signature uniqueness or cause duplicated relayer submissions."
}
|