019bb491-169f-736c-a71d-6f79af8f0433
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 |
|---|---|---|---|---|
| 40176 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 40177 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 40178 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 40179 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 40180 | capability.graph | complete | 1 / 3 | 3 months ago |
| 40181 | detector.run | complete | 1 / 3 | 3 months ago |
| 40182 | validation.fork | complete | 1 / 3 | 3 months ago |
| 40264 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 40265 | tool.slither | complete | 1 / 2 | 3 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-iuywm5je)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-iuywm5je)
Multicall.multicall(bytes[],bool) (contracts/utils/Multicall.sol#9-35) has external calls inside a loop: (success,result) = address(this).delegatecall(data[i]) (contracts/utils/Multicall.sol#13)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
Reentrancy in Multicall.multicall(bytes[],bool) (contracts/utils/Multicall.sol#9-35):
External calls:
- (success,result) = address(this).delegatecall(data[i]) (contracts/utils/Multicall.sol#13)
Event emitted after the call(s):
- MulticallFailure(i,revertReason) (contracts/utils/Multicall.sol#32)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
UserProxy.toAMM(bytes) (contracts/UserProxy.sol#191-204) uses assembly
- INLINE ASM (contracts/UserProxy.sol#197-202)
UserProxy.toPMM(bytes) (contracts/UserProxy.sol#209-223) uses assembly
- INLINE ASM (contracts/UserProxy.sol#216-221)
UserProxy.toRFQ(bytes) (contracts/UserProxy.sol#228-242) uses assembly
- INLINE ASM (contracts/UserProxy.sol#235-240)
UserProxy.toRFQv2(bytes) (contracts/UserProxy.sol#247-261) uses assembly
- INLINE ASM (contracts/UserProxy.sol#254-259)
UserProxy.toLimitOrder(bytes) (contracts/UserProxy.sol#266-280) uses assembly
- INLINE ASM (contracts/UserProxy.sol#273-278)
Multicall.multicall(bytes[],bool) (contracts/utils/Multicall.sol#9-35) uses assembly
- INLINE ASM (contracts/utils/Multicall.sol#23-25)
AMMWrapperStorage.getStorage() (contracts/utils/UserProxyStorage.sol#16-26) uses assembly
- INLINE ASM (contracts/utils/UserProxyStorage.sol#23-25)
PMMStorage.getStorage() (contracts/utils/UserProxyStorage.sol#41-51) uses assembly
- INLINE ASM (contracts/utils/UserProxyStorage.sol#48-50)
RFQStorage.getStorage() (contracts/utils/UserProxyStorage.sol#66-76) uses assembly
- INLINE ASM (contracts/utils/UserProxyStorage.sol#73-75)
RFQv2Storage.getStorage() (contracts/utils/UserProxyStorage.sol#91-101) uses assembly
- INLINE ASM (contracts/utils/UserProxyStorage.sol#98-100)
LimitOrderStorage.getStorage() (contracts/utils/UserProxyStorage.sol#116-126) uses assembly
- INLINE ASM (contracts/utils/UserProxyStorage.sol#123-125)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
3 different versions of Solidity are used:
- Version constraint 0.7.6 is used by:
-0.7.6 (contracts/UserProxy.sol#2)
-0.7.6 (contracts/utils/Multicall.sol#2)
- Version constraint >=0.7.0 is used by:
->=0.7.0 (contracts/interfaces/IMulticall.sol#2)
- Version constraint ^0.7.6 is used by:
-^0.7.6 (contracts/utils/UserProxyStorage.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used
Version constraint 0.7.6 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching.
It is used by:
- 0.7.6 (contracts/UserProxy.sol#2)
- 0.7.6 (contracts/utils/Multicall.sol#2)
Version constraint >=0.7.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup.
It is used by:
- >=0.7.0 (contracts/interfaces/IMulticall.sol#2)
Version constraint ^0.7.6 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching.
It is used by:
- ^0.7.6 (contracts/utils/UserProxyStorage.sol#2)
solc-0.7.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 UserProxy.toAMM(bytes) (contracts/UserProxy.sol#191-204):
- (callSucceed,None) = ammWrapperAddr().call{value: msg.value}(_payload) (contracts/UserProxy.sol#194)
Low level call in UserProxy.toPMM(bytes) (contracts/UserProxy.sol#209-223):
- (callSucceed,None) = pmmAddr().call{value: msg.value}(_payload) (contracts/UserProxy.sol#213)
Low level call in UserProxy.toRFQ(bytes) (contracts/UserProxy.sol#228-242):
- (callSucceed,None) = rfqAddr().call{value: msg.value}(_payload) (contracts/UserProxy.sol#232)
Low level call in UserProxy.toRFQv2(bytes) (contracts/UserProxy.sol#247-261):
- (callSucceed,None) = rfqv2Addr().call{value: msg.value}(_payload) (contracts/UserProxy.sol#251)
Low level call in UserProxy.toLimitOrder(bytes) (contracts/UserProxy.sol#266-280):
- (callSucceed,None) = limitOrderAddr().call(_payload) (contracts/UserProxy.sol#270)
Low level call in Multicall.multicall(bytes[],bool) (contracts/utils/Multicall.sol#9-35):
- (success,result) = address(this).delegatecall(data[i]) (contracts/utils/Multicall.sol#13)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Parameter UserProxy.nominateNewOperator(address)._newOperator (contracts/UserProxy.sol#41) is not in mixedCase
Parameter UserProxy.initialize(address)._operator (contracts/UserProxy.sol#60) is not in mixedCase
Parameter UserProxy.setAMMStatus(bool)._enable (contracts/UserProxy.sol#115) is not in mixedCase
Parameter UserProxy.upgradeAMMWrapper(address,bool)._newAMMWrapperAddr (contracts/UserProxy.sol#121) is not in mixedCase
Parameter UserProxy.upgradeAMMWrapper(address,bool)._enable (contracts/UserProxy.sol#121) is not in mixedCase
Parameter UserProxy.setPMMStatus(bool)._enable (contracts/UserProxy.sol#129) is not in mixedCase
Parameter UserProxy.upgradePMM(address,bool)._newPMMAddr (contracts/UserProxy.sol#135) is not in mixedCase
Parameter UserProxy.upgradePMM(address,bool)._enable (contracts/UserProxy.sol#135) is not in mixedCase
Parameter UserProxy.setRFQStatus(bool)._enable (contracts/UserProxy.sol#143) is not in mixedCase
Parameter UserProxy.upgradeRFQ(address,bool)._newRFQAddr (contracts/UserProxy.sol#149) is not in mixedCase
Parameter UserProxy.upgradeRFQ(address,bool)._enable (contracts/UserProxy.sol#149) is not in mixedCase
Parameter UserProxy.setRFQv2Status(bool)._enable (contracts/UserProxy.sol#157) is not in mixedCase
Parameter UserProxy.upgradeRFQv2(address,bool)._newRFQv2Addr (contracts/UserProxy.sol#163) is not in mixedCase
Parameter UserProxy.upgradeRFQv2(address,bool)._enable (contracts/UserProxy.sol#163) is not in mixedCase
Parameter UserProxy.setLimitOrderStatus(bool)._enable (contracts/UserProxy.sol#171) is not in mixedCase
Parameter UserProxy.upgradeLimitOrder(address,bool)._newLimitOrderAddr (contracts/UserProxy.sol#177) is not in mixedCase
Parameter UserProxy.upgradeLimitOrder(address,bool)._enable (contracts/UserProxy.sol#177) is not in mixedCase
Parameter UserProxy.toAMM(bytes)._payload (contracts/UserProxy.sol#191) is not in mixedCase
Parameter UserProxy.toPMM(bytes)._payload (contracts/UserProxy.sol#209) is not in mixedCase
Parameter UserProxy.toRFQ(bytes)._payload (contracts/UserProxy.sol#228) is not in mixedCase
Parameter UserProxy.toRFQv2(bytes)._payload (contracts/UserProxy.sol#247) is not in mixedCase
Parameter UserProxy.toLimitOrder(bytes)._payload (contracts/UserProxy.sol#266) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
. analyzed (8 contracts with 100 detectors), 46 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.7.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.7.6",
"install_stderr": null,
"install_stdout": "Version '0.7.6' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-iuywm5je --allow-paths /tmp/slither-iuywm5je,/tmp/slither-iuywm5je/lib,/tmp/slither-iuywm5je/src",
"remappings": [
"@openzeppelin/=lib/openzeppelin-contracts/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/"
],
"source_files": [
"contracts/UserProxy.sol",
"contracts/utils/UserProxyStorage.sol",
"contracts/utils/Multicall.sol",
"contracts/interfaces/IMulticall.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 46,
"workspace_hash": "1e13b0ed3684860de1abb09c39a7ee185cf0e9a2ababdfc3bbe5d474909caa98",
"duration_seconds": 0.6302456855773926,
"solc_version_requested": "0.7.6"
}
{"no_findings":false,"summary":"One high-severity access control issue: the initializer is publicly callable and can be seized if deployment is not atomically initialized.","findings":[{"severity":"high","category":"access_control","title":"Unprotected initializer allows operator takeover","exploit_scenario":"If the contract is deployed without immediately calling `initialize`, any account can call it first and set themselves as `operator`. The attacker can then upgrade AMM/PMM/RFQ/LimitOrder addresses to malicious contracts or disable routes, potentially redirecting user calls and funds.","recommendation":"Protect `initialize` with an access control mechanism (e.g., only deployer or a trusted factory), or use a constructor-based initialization in non-proxy deployments. For proxies, adopt OpenZeppelin Initializable and restrict initialization to the admin, ensuring it is called in the same transaction as deployment.","evidence":"`initialize` is `external` with only a version-empty check and no access control.","locations":["contracts/UserProxy.sol:60"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-_bqayh9j
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb4c5-4a09-7453-87d3-8d6f4ca1d6b4
--------
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
thinking
**Reading AUDIT_BUNDLE.txt with shell**
exec
/bin/bash -lc ls in /tmp/codex-_bqayh9j succeeded in 9ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-_bqayh9j succeeded in 6ms:
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/UserProxy.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
pragma abicoder v2;
import "./utils/UserProxyStorage.sol";
import "./utils/Multicall.sol";
/**
* @dev UserProxy contract
*/
contract UserProxy is Multicall {
// Below are the variables which consume storage slots.
address public operator;
string public version; // Current version of the contract
thinking
**Analyzing contract for unprotected initialization vulnerability**
I'm auditing the UserProxy contract for security issues and found a high-severity risk: the initialize function lacks access control and can be called by anyone if the version string is empty, allowing operator takeover. The contract seems to behave like a proxy but without proper protection in initialize, exposing it to hijack if not initialized immediately after deployment. Other areas like multicall’s delegatecall and reentrancy appear safe, and tx.origin use is a restriction rather than a vulnerability. Overall, unprotected initialization is the main concern, matching access control risk, and I'll identify code locations with best-guess line numbers if possible.
exec
/bin/bash -lc "nl -ba contracts/UserProxy.sol | sed -n '1,200p'" in /tmp/codex-_bqayh9j succeeded in 6ms:
1 // SPDX-License-Identifier: MIT
2 pragma solidity 0.7.6;
3 pragma abicoder v2;
4
5 import "./utils/UserProxyStorage.sol";
6 import "./utils/Multicall.sol";
7
8 /**
9 * @dev UserProxy contract
10 */
11 contract UserProxy is Multicall {
12 // Below are the variables which consume storage slots.
13 address public operator;
14 string public version; // Current version of the contract
15 address private nominatedOperator;
16
17 // Operator events
18 event OperatorNominated(address indexed newOperator);
19 event OperatorChanged(address indexed oldOperator, address indexed newOperator);
20 event SetAMMStatus(bool enable);
exec
/bin/bash -lc "nl -ba contracts/UserProxy.sol | sed -n '200,400p'" in /tmp/codex-_bqayh9j succeeded in 7ms:
200 returndatacopy(ptr, 0, size)
201 revert(ptr, size)
202 }
203 }
204 }
205
206 /**
207 * @dev proxy the call to PMM
208 */
209 function toPMM(bytes calldata _payload) external payable {
210 require(isPMMEnabled(), "UserProxy: PMM is disabled");
211 require(msg.sender == tx.origin, "UserProxy: only EOA");
212
213 (bool callSucceed, ) = pmmAddr().call{ value: msg.value }(_payload);
214 if (!callSucceed) {
215 // revert with data from last call
216 assembly {
217 let ptr := mload(0x40)
218 let size := returndatasize()
219 returndatacopy(ptr, 0, size)
thinking
**Composing detailed JSON schema output**
I’m putting together a JSON schema for the codex output including a high-severity finding about an initialization vulnerability in `contracts/UserProxy.sol` at line 60. I’ll include a concise summary, exploit scenario, recommendation, and evidence with exact locations, making sure the JSON is valid and covers no findings if applicable.
codex
{"no_findings":false,"summary":"One high-severity access control issue: the initializer is publicly callable and can be seized if deployment is not atomically initialized.","findings":[{"severity":"high","category":"access_control","title":"Unprotected initializer allows operator takeover","exploit_scenario":"If the contract is deployed without immediately calling `initialize`, any account can call it first and set themselves as `operator`. The attacker can then upgrade AMM/PMM/RFQ/LimitOrder addresses to malicious contracts or disable routes, potentially redirecting user calls and funds.","recommendation":"Protect `initialize` with an access control mechanism (e.g., only deployer or a trusted factory), or use a constructor-based initialization in non-proxy deployments. For proxies, adopt OpenZeppelin Initializable and restrict initialization to the admin, ensuring it is called in the same transaction as deployment.","evidence":"`initialize` is `external` with only a version-empty check and no access control.","locations":["contracts/UserProxy.sol:60"]}]}
tokens used
10,554
{
"codex": {
"ran_at": "2026-01-13T00:33:48.505052+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 4,
"import_count": 3,
"first_party_contracts_count": 4
},
"summary": "One high-severity access control issue: the initializer is publicly callable and can be seized if deployment is not atomically initialized.",
"raw_final": {
"summary": "One high-severity access control issue: the initializer is publicly callable and can be seized if deployment is not atomically initialized.",
"findings": [
{
"title": "Unprotected initializer allows operator takeover",
"category": "access_control",
"evidence": "`initialize` is `external` with only a version-empty check and no access control.",
"severity": "high",
"locations": [
"contracts/UserProxy.sol:60"
],
"recommendation": "Protect `initialize` with an access control mechanism (e.g., only deployer or a trusted factory), or use a constructor-based initialization in non-proxy deployments. For proxies, adopt OpenZeppelin Initializable and restrict initialization to the admin, ensuring it is called in the same transaction as deployment.",
"exploit_scenario": "If the contract is deployed without immediately calling `initialize`, any account can call it first and set themselves as `operator`. The attacker can then upgrade AMM/PMM/RFQ/LimitOrder addresses to malicious contracts or disable routes, potentially redirecting user calls and funds."
}
],
"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 0x01dc 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8014bd97 00000019: GT 0000001a: PUSH2 0x0102 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xbbd3f638 00000024: GT 00000025: PUSH2 0x0095 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xde83cd54 0000002f: GT 00000030: PUSH2 0x0064 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xde83cd54 0000003a: EQ 0000003b: PUSH2 0x04dd 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe47d166c 00000045: EQ 00000046: PUSH2 0x04fd 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xe5f23b16 00000050: EQ 00000051: PUSH2 0x0510 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xec559084 0000005b: EQ 0000005c: PUSH2 0x0530 0000005f: JUMPI 00000060: PUSH2 0x01e3 00000063: JUMP 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xbbd3f638 0000006b: EQ 0000006c: PUSH2 0x0468 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xc37197d3 00000076: EQ 00000077: PUSH2 0x047d 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xc3e92075 00000081: EQ 00000082: PUSH2 0x049d 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xc4d66de8 0000008c: EQ 0000008d: PUSH2 0x04bd 00000090: JUMPI 00000091: PUSH2 0x01e3 00000094: JUMP 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0xa32fe0a1 0000009c: GT 0000009d: PUSH2 0x00d1 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xa32fe0a1 000000a7: EQ 000000a8: PUSH2 0x040b 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xa9204ecf 000000b2: EQ 000000b3: PUSH2 0x041e 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xa9dc9f69 000000bd: EQ 000000be: PUSH2 0x043e 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xb6f732ae 000000c8: EQ 000000c9: PUSH2 0x0453 000000cc: JUMPI 000000cd: PUSH2 0x01e3 000000d0: JUMP 000000d1: JUMPDEST 000000d2: DUP1 000000d3: PUSH4 0x8014bd97 000000d8: EQ 000000d9: PUSH2 0x03b9 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x93811c8a 000000e3: EQ 000000e4: PUSH2 0x03ce 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x994dd72e 000000ee: EQ 000000ef: PUSH2 0x03e3 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0xa1728b0d 000000f9: EQ 000000fa: PUSH2 0x03f8 000000fd: JUMPI 000000fe: PUSH2 0x01e3 00000101: JUMP 00000102: JUMPDEST 00000103: DUP1 00000104: PUSH4 0x4ff62bf5 00000109: GT 0000010a: PUSH2 0x017a 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x706b4eb8 00000114: GT 00000115: PUSH2 0x0149 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x706b4eb8 0000011f: EQ 00000120: PUSH2 0x034f 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x79ba5097 0000012a: EQ 0000012b: PUSH2 0x036f 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x7c305b1d 00000135: EQ 00000136: PUSH2 0x0384 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x7f54479a 00000140: EQ 00000141: PUSH2 0x03a4 00000144: JUMPI 00000145: PUSH2 0x01e3 00000148: JUMP 00000149: JUMPDEST 0000014a: DUP1 0000014b: PUSH4 0x4ff62bf5 00000150: EQ 00000151: PUSH2 0x02e3 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0x54fd4d50 0000015b: EQ 0000015c: PUSH2 0x0305 0000015f: JUMPI 00000160: DUP1 00000161: PUSH4 0x570ca735 00000166: EQ 00000167: PUSH2 0x0327 0000016a: JUMPI 0000016b: DUP1 0000016c: PUSH4 0x628930b9 00000171: EQ 00000172: PUSH2 0x033c 00000175: JUMPI 00000176: PUSH2 0x01e3 00000179: JUMP 0000017a: JUMPDEST 0000017b: DUP1 0000017c: PUSH4 0x298a91fd 00000181: GT 00000182: PUSH2 0x01b6 00000185: JUMPI 00000186: DUP1 00000187: PUSH4 0x298a91fd 0000018c: EQ 0000018d: PUSH2 0x0261 00000190: JUMPI 00000191: DUP1 00000192: PUSH4 0x41fc048d 00000197: EQ 00000198: PUSH2 0x0283 0000019b: JUMPI 0000019c: DUP1 0000019d: PUSH4 0x46f04170 000001a2: EQ 000001a3: PUSH2 0x02a3 000001a6: JUMPI 000001a7: DUP1 000001a8: PUSH4 0x4daadf12 000001ad: EQ 000001ae: PUSH2 0x02c3 000001b1: JUMPI 000001b2: PUSH2 0x01e3 000001b5: JUMP 000001b6: JUMPDEST 000001b7: DUP1 000001b8: PUSH4 0x0d6274ac 000001bd: EQ 000001be: PUSH2 0x01e8 000001c1: JUMPI 000001c2: DUP1 000001c3: PUSH4 0x1e9701d4 000001c8: EQ 000001c9: PUSH2 0x020a 000001cc: JUMPI 000001cd: DUP1 000001ce: PUSH4 0x223196b3 000001d3: EQ 000001d4: PUSH2 0x0241 000001d7: JUMPI 000001d8: PUSH2 0x01e3 000001db: JUMP 000001dc: JUMPDEST 000001dd: CALLDATASIZE 000001de: PUSH2 0x01e3 000001e1: JUMPI 000001e2: STOP 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 0x0208 000001f9: PUSH2 0x0203 000001fc: CALLDATASIZE 000001fd: PUSH1 0x04 000001ff: PUSH2 0x1546 00000202: JUMP 00000203: JUMPDEST 00000204: PUSH2 0x0545 00000207: JUMP 00000208: JUMPDEST 00000209: STOP 0000020a: JUMPDEST 0000020b: CALLVALUE 0000020c: DUP1 0000020d: ISZERO 0000020e: PUSH2 0x0216 00000211: JUMPI 00000212: PUSH1 0x00 00000214: DUP1 00000215: REVERT 00000216: JUMPDEST 00000217: POP 00000218: PUSH2 0x022a 0000021b: PUSH2 0x0225 0000021e: CALLDATASIZE 0000021f: PUSH1 0x04 00000221: PUSH2 0x1578 00000224: JUMP 00000225: JUMPDEST 00000226: PUSH2 0x0635 00000229: JUMP 0000022a: JUMPDEST 0000022b: PUSH1 0x40 0000022d: MLOAD 0000022e: PUSH2 0x0238 00000231: SWAP3 00000232: SWAP2 00000233: SWAP1 00000234: PUSH2 0x17d7 00000237: JUMP 00000238: JUMPDEST 00000239: PUSH1 0x40 0000023b: MLOAD 0000023c: DUP1 0000023d: SWAP2 0000023e: SUB 0000023f: SWAP1 00000240: RETURN 00000241: JUMPDEST 00000242: CALLVALUE 00000243: DUP1 00000244: ISZERO 00000245: PUSH2 0x024d 00000248: JUMPI 00000249: PUSH1 0x00 0000024b: DUP1 0000024c: REVERT 0000024d: JUMPDEST 0000024e: POP 0000024f: PUSH2 0x0208 00000252: PUSH2 0x025c 00000255: CALLDATASIZE 00000256: PUSH1 0x04 00000258: PUSH2 0x1525 0000025b: JUMP 0000025c: JUMPDEST 0000025d: PUSH2 0x0857 00000260: JUMP 00000261: JUMPDEST 00000262: CALLVALUE 00000263: DUP1 00000264: ISZERO 00000265: PUSH2 0x026d 00000268: JUMPI 00000269: PUSH1 0x00 0000026b: DUP1 0000026c: REVERT 0000026d: JUMPDEST 0000026e: POP 0000026f: PUSH2 0x0276 00000272: PUSH2 0x08f1 00000275: JUMP 00000276: JUMPDEST 00000277: PUSH1 0x40 00000279: MLOAD 0000027a: PUSH2 0x0238 0000027d: SWAP2 0000027e: SWAP1 0000027f: PUSH2 0x17c3 00000282: JUMP 00000283: JUMPDEST 00000284: CALLVALUE 00000285: DUP1 00000286: ISZERO 00000287: PUSH2 0x028f 0000028a: JUMPI 0000028b: PUSH1 0x00 0000028d: DUP1 0000028e: REVERT 0000028f: JUMPDEST 00000290: POP 00000291: PUSH2 0x0208 00000294: PUSH2 0x029e 00000297: CALLDATASIZE 00000298: PUSH1 0x04 0000029a: PUSH2 0x15f6 0000029d: JUMP 0000029e: JUMPDEST 0000029f: PUSH2 0x090a 000002a2: JUMP 000002a3: JUMPDEST 000002a4: CALLVALUE 000002a5: DUP1 000002a6: ISZERO 000002a7: PUSH2 0x02af 000002aa: JUMPI 000002ab: PUSH1 0x00 000002ad: DUP1 000002ae: REVERT 000002af: JUMPDEST 000002b0: POP 000002b1: PUSH2 0x0208 000002b4: PUSH2 0x02be 000002b7: CALLDATASIZE 000002b8: PUSH1 0x04 000002ba: PUSH2 0x1546 000002bd: JUMP 000002be: JUMPDEST 000002bf: PUSH2 0x0992 000002c2: JUMP 000002c3: JUMPDEST 000002c4: CALLVALUE 000002c5: DUP1 000002c6: ISZERO 000002c7: PUSH2 0x02cf 000002ca: JUMPI 000002cb: PUSH1 0x00 000002cd: DUP1 000002ce: REVERT 000002cf: JUMPDEST 000002d0: POP 000002d1: PUSH2 0x0208 000002d4: PUSH2 0x02de 000002d7: CALLDATASIZE 000002d8: PUSH1 0x04 000002da: PUSH2 0x15f6 000002dd: JUMP 000002de: JUMPDEST 000002df: PUSH2 0x0a6d 000002e2: JUMP 000002e3: JUMPDEST 000002e4: CALLVALUE 000002e5: DUP1 000002e6: ISZERO 000002e7: PUSH2 0x02ef 000002ea: JUMPI 000002eb: PUSH1 0x00 000002ed: DUP1 000002ee: REVERT 000002ef: JUMPDEST 000002f0: POP 000002f1: PUSH2 0x02f8 000002f4: PUSH2 0x0aea 000002f7: JUMP 000002f8: JUMPDEST 000002f9: PUSH1 0x40 000002fb: MLOAD 000002fc: PUSH2 0x0238 000002ff: SWAP2 00000300: SWAP1 00000301: PUSH2 0x186e 00000304: JUMP 00000305: JUMPDEST 00000306: CALLVALUE 00000307: DUP1 00000308: ISZERO 00000309: PUSH2 0x0311 0000030c: JUMPI 0000030d: PUSH1 0x00 0000030f: DUP1 00000310: REVERT 00000311: JUMPDEST 00000312: POP 00000313: PUSH2 0x031a 00000316: PUSH2 0x0b04 00000319: JUMP 0000031a: JUMPDEST 0000031b: PUSH1 0x40 0000031d: MLOAD 0000031e: PUSH2 0x0238 00000321: SWAP2 00000322: SWAP1 00000323: PUSH2 0x1879 00000326: JUMP 00000327: JUMPDEST 00000328: CALLVALUE 00000329: DUP1 0000032a: ISZERO 0000032b: PUSH2 0x0333 0000032e: JUMPI 0000032f: PUSH1 0x00 00000331: DUP1 00000332: REVERT 00000333: JUMPDEST 00000334: POP 00000335: PUSH2 0x0276 00000338: PUSH2 0x0b91 0000033b: JUMP 0000033c: JUMPDEST 0000033d: PUSH2 0x0208 00000340: PUSH2 0x034a 00000343: CALLDATASIZE 00000344: PUSH1 0x04 00000346: PUSH2 0x1610 00000349: JUMP 0000034a: JUMPDEST 0000034b: PUSH2 0x0ba0 0000034e: JUMP 0000034f: JUMPDEST 00000350: CALLVALUE 00000351: DUP1 00000352: ISZERO 00000353: PUSH2 0x035b 00000356: JUMPI 00000357: PUSH1 0x00 00000359: DUP1 0000035a: REVERT 0000035b: JUMPDEST 0000035c: POP 0000035d: PUSH2 0x0208 00000360: PUSH2 0x036a 00000363: CALLDATASIZE 00000364: PUSH1 0x04 00000366: PUSH2 0x1610 00000369: JUMP 0000036a: JUMPDEST 0000036b: PUSH2 0x0c64 0000036e: JUMP 0000036f: JUMPDEST 00000370: CALLVALUE 00000371: DUP1 00000372: ISZERO 00000373: PUSH2 0x037b 00000376: JUMPI 00000377: PUSH1 0x00 00000379: DUP1 0000037a: REVERT 0000037b: JUMPDEST 0000037c: POP 0000037d: PUSH2 0x0208 00000380: PUSH2 0x0d07 00000383: JUMP 00000384: JUMPDEST 00000385: CALLVALUE 00000386: DUP1 00000387: ISZERO 00000388: PUSH2 0x0390 0000038b: JUMPI 0000038c: PUSH1 0x00 0000038e: DUP1 0000038f: REVERT 00000390: JUMPDEST 00000391: POP 00000392: PUSH2 0x0208 00000395: PUSH2 0x039f 00000398: CALLDATASIZE 00000399: PUSH1 0x04 0000039b: PUSH2 0x1546 0000039e: JUMP 0000039f: JUMPDEST 000003a0: PUSH2 0x0d95 000003a3: JUMP 000003a4: JUMPDEST 000003a5: CALLVALUE 000003a6: DUP1 000003a7: ISZERO 000003a8: PUSH2 0x03b0 000003ab: JUMPI 000003ac: PUSH1 0x00 000003ae: DUP1 000003af: REVERT 000003b0: JUMPDEST 000003b1: POP 000003b2: PUSH2 0x02f8 000003b5: PUSH2 0x0e70 000003b8: JUMP 000003b9: JUMPDEST 000003ba: CALLVALUE 000003bb: DUP1 000003bc: ISZERO 000003bd: PUSH2 0x03c5 000003c0: JUMPI 000003c1: PUSH1 0x00 000003c3: DUP1 000003c4: REVERT 000003c5: JUMPDEST 000003c6: POP 000003c7: PUSH2 0x0276 000003ca: PUSH2 0x0e7a 000003cd: JUMP 000003ce: JUMPDEST 000003cf: CALLVALUE 000003d0: DUP1 000003d1: ISZERO 000003d2: PUSH2 0x03da 000003d5: JUMPI 000003d6: PUSH1 0x00 000003d8: DUP1 000003d9: REVERT 000003da: JUMPDEST 000003db: POP 000003dc: PUSH2 0x0276 000003df: PUSH2 0x0e84 000003e2: JUMP 000003e3: JUMPDEST 000003e4: CALLVALUE 000003e5: DUP1 000003e6: ISZERO 000003e7: PUSH2 0x03ef 000003ea: JUMPI 000003eb: PUSH1 0x00 000003ed: DUP1 000003ee: REVERT 000003ef: JUMPDEST 000003f0: POP 000003f1: PUSH2 0x0276 000003f4: PUSH2 0x0e8e 000003f7: JUMP 000003f8: JUMPDEST 000003f9: PUSH2 0x0208 000003fc: PUSH2 0x0406 000003ff: CALLDATASIZE 00000400: PUSH1 0x04 00000402: PUSH2 0x1610 00000405: JUMP 00000406: JUMPDEST 00000407: PUSH2 0x0e98 0000040a: JUMP 0000040b: JUMPDEST 0000040c: PUSH2 0x0208 0000040f: PUSH2 0x0419 00000412: CALLDATASIZE 00000413: PUSH1 0x04 00000415: PUSH2 0x1610 00000418: JUMP 00000419: JUMPDEST 0000041a: PUSH2 0x0ee5 0000041d: JUMP 0000041e: JUMPDEST 0000041f: CALLVALUE 00000420: DUP1 00000421: ISZERO 00000422: PUSH2 0x042a 00000425: JUMPI 00000426: PUSH1 0x00 00000428: DUP1 00000429: REVERT 0000042a: JUMPDEST 0000042b: POP 0000042c: PUSH2 0x0208 0000042f: PUSH2 0x0439 00000432: CALLDATASIZE 00000433: PUSH1 0x04 00000435: PUSH2 0x15f6 00000438: JUMP 00000439: JUMPDEST 0000043a: PUSH2 0x0f32 0000043d: JUMP 0000043e: JUMPDEST 0000043f: CALLVALUE 00000440: DUP1 00000441: ISZERO 00000442: PUSH2 0x044a 00000445: JUMPI 00000446: PUSH1 0x00 00000448: DUP1 00000449: REVERT 0000044a: JUMPDEST 0000044b: POP 0000044c: PUSH2 0x02f8 0000044f: PUSH2 0x0faf 00000452: JUMP 00000453: JUMPDEST 00000454: CALLVALUE 00000455: DUP1 00000456: ISZERO 00000457: PUSH2 0x045f 0000045a: JUMPI 0000045b: PUSH1 0x00 0000045d: DUP1 0000045e: REVERT 0000045f: JUMPDEST 00000460: POP 00000461: PUSH2 0x0276 00000464: PUSH2 0x0fb9 00000467: JUMP 00000468: JUMPDEST 00000469: CALLVALUE 0000046a: DUP1 0000046b: ISZERO 0000046c: PUSH2 0x0474 0000046f: JUMPI 00000470: PUSH1 0x00 00000472: DUP1 00000473: REVERT 00000474: JUMPDEST 00000475: POP 00000476: PUSH2 0x02f8 00000479: PUSH2 0x0fc3 0000047c: JUMP 0000047d: JUMPDEST 0000047e: CALLVALUE 0000047f: DUP1 00000480: ISZERO 00000481: PUSH2 0x0489 00000484: JUMPI 00000485: PUSH1 0x00 00000487: DUP1 00000488: REVERT 00000489: JUMPDEST 0000048a: POP 0000048b: PUSH2 0x0208 0000048e: PUSH2 0x0498 00000491: CALLDATASIZE 00000492: PUSH1 0x04 00000494: PUSH2 0x1546 00000497: JUMP 00000498: JUMPDEST 00000499: PUSH2 0x0fcd 0000049c: JUMP 0000049d: JUMPDEST 0000049e: CALLVALUE 0000049f: DUP1 000004a0: ISZERO 000004a1: PUSH2 0x04a9 000004a4: JUMPI 000004a5: PUSH1 0x00 000004a7: DUP1 000004a8: REVERT 000004a9: JUMPDEST 000004aa: POP 000004ab: PUSH2 0x0208 000004ae: PUSH2 0x04b8 000004b1: CALLDATASIZE 000004b2: PUSH1 0x04 000004b4: PUSH2 0x1546 000004b7: JUMP 000004b8: JUMPDEST 000004b9: PUSH2 0x10a8 000004bc: JUMP 000004bd: JUMPDEST 000004be: CALLVALUE 000004bf: DUP1 000004c0: ISZERO 000004c1: PUSH2 0x04c9 000004c4: JUMPI 000004c5: PUSH1 0x00 000004c7: DUP1 000004c8: REVERT 000004c9: JUMPDEST 000004ca: POP 000004cb: PUSH2 0x0208 000004ce: PUSH2 0x04d8 000004d1: CALLDATASIZE 000004d2: PUSH1 0x04 000004d4: PUSH2 0x1525 000004d7: JUMP 000004d8: JUMPDEST 000004d9: PUSH2 0x1183 000004dc: JUMP 000004dd: JUMPDEST 000004de: CALLVALUE 000004df: DUP1 000004e0: ISZERO 000004e1: PUSH2 0x04e9 000004e4: JUMPI 000004e5: PUSH1 0x00 000004e7: DUP1 000004e8: REVERT 000004e9: JUMPDEST 000004ea: POP 000004eb: PUSH2 0x0208 000004ee: PUSH2 0x04f8 000004f1: CALLDATASIZE 000004f2: PUSH1 0x04 000004f4: PUSH2 0x15f6 000004f7: JUMP 000004f8: JUMPDEST 000004f9: PUSH2 0x1276 000004fc: JUMP 000004fd: JUMPDEST 000004fe: PUSH2 0x0208 00000501: PUSH2 0x050b 00000504: CALLDATASIZE 00000505: PUSH1 0x04 00000507: PUSH2 0x1610 0000050a: JUMP 0000050b: JUMPDEST 0000050c: PUSH2 0x12f3 0000050f: JUMP 00000510: JUMPDEST 00000511: CALLVALUE 00000512: DUP1 00000513: ISZERO 00000514: PUSH2 0x051c 00000517: JUMPI 00000518: PUSH1 0x00 0000051a: DUP1 0000051b: REVERT 0000051c: JUMPDEST 0000051d: POP 0000051e: PUSH2 0x0208 00000521: PUSH2 0x052b 00000524: CALLDATASIZE 00000525: PUSH1 0x04 00000527: PUSH2 0x15f6 0000052a: JUMP 0000052b: JUMPDEST 0000052c: PUSH2 0x1321 0000052f: JUMP 00000530: JUMPDEST 00000531: CALLVALUE 00000532: DUP1 00000533: ISZERO 00000534: PUSH2 0x053c 00000537: JUMPI 00000538: PUSH1 0x00 0000053a: DUP1 0000053b: REVERT 0000053c: JUMPDEST 0000053d: POP 0000053e: PUSH2 0x02f8 00000541: PUSH2 0x139e 00000544: JUMP 00000545: JUMPDEST 00000546: PUSH1 0x00 00000548: SLOAD 00000549: PUSH1 0x01 0000054b: PUSH1 0x01 0000054d: PUSH1 0xa0 0000054f: SHL 00000550: SUB 00000551: AND 00000552: CALLER 00000553: EQ 00000554: PUSH2 0x0578 00000557: JUMPI 00000558: PUSH1 0x40 0000055a: MLOAD 0000055b: PUSH3 0x461bcd 0000055f: PUSH1 0xe5 00000561: SHL 00000562: DUP2 00000563: MSTORE 00000564: PUSH1 0x04 00000566: ADD 00000567: PUSH2 0x056f 0000056a: SWAP1 0000056b: PUSH2 0x1a59 0000056e: JUMP 0000056f: JUMPDEST 00000570: PUSH1 0x40 00000572: MLOAD 00000573: DUP1 00000574: SWAP2 00000575: SUB 00000576: SWAP1 00000577: REVERT 00000578: JUMPDEST 00000579: DUP2 0000057a: PUSH2 0x0581 0000057d: PUSH2 0x13a4 00000580: JUMP 00000581: JUMPDEST 00000582: DUP1 00000583: SLOAD 00000584: PUSH1 0x01 00000586: PUSH1 0x01 00000588: PUSH1 0xa0 0000058a: SHL 0000058b: SUB 0000058c: NOT 0000058d: AND 0000058e: PUSH1 0x01 00000590: PUSH1 0x01 00000592: PUSH1 0xa0 00000594: SHL 00000595: SUB 00000596: SWAP3 00000597: SWAP1 00000598: SWAP3 00000599: AND 0000059a: SWAP2 0000059b: SWAP1 0000059c: SWAP2 0000059d: OR 0000059e: SWAP1 0000059f: SSTORE 000005a0: DUP1 000005a1: PUSH2 0x05a8 000005a4: PUSH2 0x13a4 000005a7: JUMP 000005a8: JUMPDEST 000005a9: DUP1 000005aa: SLOAD 000005ab: SWAP2 000005ac: ISZERO 000005ad: ISZERO 000005ae: PUSH1 0x01 000005b0: PUSH1 0xa0 000005b2: SHL 000005b3: MUL 000005b4: PUSH1 0xff 000005b6: PUSH1 0xa0 000005b8: SHL 000005b9: NOT 000005ba: SWAP1 000005bb: SWAP3 000005bc: AND 000005bd: SWAP2 000005be: SWAP1 000005bf: SWAP2 000005c0: OR 000005c1: SWAP1 000005c2: SSTORE 000005c3: PUSH1 0x40 000005c5: MLOAD 000005c6: PUSH32 0x28e34087108910d7a3d1de15bdebe33e9b7ce4be78c6987103983875f4fbb903 000005e7: SWAP1 000005e8: PUSH2 0x05f2 000005eb: SWAP1 000005ec: DUP5 000005ed: SWAP1 000005ee: PUSH2 0x17c3 000005f1: JUMP 000005f2: JUMPDEST 000005f3: PUSH1 0x40 000005f5: MLOAD 000005f6: DUP1 000005f7: SWAP2 000005f8: SUB 000005f9: SWAP1 000005fa: LOG1 000005fb: PUSH32 0x85600615329dbd38415d95ab88a1870aa23283ed03ea8339bbaf7c53cb6889eb 0000061c: DUP2 0000061d: PUSH1 0x40 0000061f: MLOAD 00000620: PUSH2 0x0629 00000623: SWAP2 00000624: SWAP1 00000625: PUSH2 0x186e 00000628: JUMP 00000629: JUMPDEST 0000062a: PUSH1 0x40 0000062c: MLOAD 0000062d: DUP1 0000062e: SWAP2 0000062f: SUB 00000630: SWAP1 00000631: LOG1 00000632: POP 00000633: POP 00000634: JUMP 00000635: JUMPDEST 00000636: PUSH1 0x60 00000638: DUP1 00000639: DUP4 0000063a: PUSH8 0xffffffffffffffff 00000643: DUP2 00000644: GT 00000645: DUP1 00000646: ISZERO 00000647: PUSH2 0x064f 0000064a: JUMPI 0000064b: PUSH1 0x00 0000064d: DUP1 0000064e: REVERT 0000064f: JUMPDEST 00000650: POP 00000651: PUSH1 0x40 00000653: MLOAD 00000654: SWAP1 00000655: DUP1 00000656: DUP3 00000657: MSTORE 00000658: DUP1 00000659: PUSH1 0x20 0000065b: MUL 0000065c: PUSH1 0x20 0000065e: ADD 0000065f: DUP3 00000660: ADD 00000661: PUSH1 0x40 00000663: MSTORE 00000664: DUP1 00000665: ISZERO 00000666: PUSH2 0x0679 00000669: JUMPI 0000066a: DUP2 0000066b: PUSH1 0x20 0000066d: ADD 0000066e: PUSH1 0x20 00000670: DUP3 00000671: MUL 00000672: DUP1 00000673: CALLDATASIZE 00000674: DUP4 00000675: CALLDATACOPY 00000676: ADD 00000677: SWAP1 00000678: POP 00000679: JUMPDEST 0000067a: POP 0000067b: SWAP2 0000067c: POP 0000067d: DUP4 0000067e: PUSH8 0xffffffffffffffff 00000687: DUP2 00000688: GT 00000689: DUP1 0000068a: ISZERO 0000068b: PUSH2 0x0693 0000068e: JUMPI 0000068f: PUSH1 0x00 00000691: DUP1 00000692: REVERT 00000693: JUMPDEST 00000694: POP 00000695: PUSH1 0x40 00000697: MLOAD 00000698: SWAP1 00000699: DUP1 0000069a: DUP3 0000069b: MSTORE 0000069c: DUP1 0000069d: PUSH1 0x20 0000069f: MUL 000006a0: PUSH1 0x20 000006a2: ADD 000006a3: DUP3 000006a4: ADD 000006a5: PUSH1 0x40 000006a7: MSTORE 000006a8: DUP1 000006a9: ISZERO 000006aa: PUSH2 0x06c7 000006ad: JUMPI 000006ae: DUP2 000006af: PUSH1 0x20 000006b1: ADD 000006b2: JUMPDEST 000006b3: PUSH1 0x60 000006b5: DUP2 000006b6: MSTORE 000006b7: PUSH1 0x20 000006b9: ADD 000006ba: SWAP1 000006bb: PUSH1 0x01 000006bd: SWAP1 000006be: SUB 000006bf: SWAP1 000006c0: DUP2 000006c1: PUSH2 0x06b2 000006c4: JUMPI 000006c5: SWAP1 000006c6: POP 000006c7: JUMPDEST 000006c8: POP 000006c9: SWAP1 000006ca: POP 000006cb: PUSH1 0x00 000006cd: JUMPDEST 000006ce: DUP5 000006cf: DUP2 000006d0: LT 000006d1: ISZERO 000006d2: PUSH2 0x084e 000006d5: JUMPI 000006d6: PUSH1 0x00 000006d8: DUP1 000006d9: ADDRESS 000006da: DUP9 000006db: DUP9 000006dc: DUP6 000006dd: DUP2 000006de: DUP2 000006df: LT 000006e0: PUSH2 0x06e5 000006e3: JUMPI 000006e4: INVALID 000006e5: JUMPDEST 000006e6: SWAP1 000006e7: POP 000006e8: PUSH1 0x20 000006ea: MUL 000006eb: DUP2 000006ec: ADD 000006ed: SWAP1 000006ee: PUSH2 0x06f7 000006f1: SWAP2 000006f2: SWAP1 000006f3: PUSH2 0x1b45 000006f6: JUMP 000006f7: JUMPDEST 000006f8: PUSH1 0x40 000006fa: MLOAD 000006fb: PUSH2 0x0705 000006fe: SWAP3 000006ff: SWAP2 00000700: SWAP1 00000701: PUSH2 0x1740 00000704: JUMP 00000705: JUMPDEST 00000706: PUSH1 0x00 00000708: PUSH1 0x40 0000070a: MLOAD 0000070b: DUP1 0000070c: DUP4 0000070d: SUB 0000070e: DUP2 0000070f: DUP6 00000710: GAS 00000711: DELEGATECALL 00000712: SWAP2 00000713: POP 00000714: POP 00000715: RETURNDATASIZE 00000716: DUP1 00000717: PUSH1 0x00 00000719: DUP2 0000071a: EQ 0000071b: PUSH2 0x0740 0000071e: JUMPI 0000071f: PUSH1 0x40 00000721: MLOAD 00000722: SWAP2 00000723: POP 00000724: PUSH1 0x1f 00000726: NOT 00000727: PUSH1 0x3f 00000729: RETURNDATASIZE 0000072a: ADD 0000072b: AND 0000072c: DUP3 0000072d: ADD 0000072e: PUSH1 0x40 00000730: MSTORE 00000731: RETURNDATASIZE 00000732: DUP3 00000733: MSTORE 00000734: RETURNDATASIZE 00000735: PUSH1 0x00 00000737: PUSH1 0x20 00000739: DUP5 0000073a: ADD 0000073b: RETURNDATACOPY 0000073c: PUSH2 0x0745 0000073f: JUMP 00000740: JUMPDEST 00000741: PUSH1 0x60 00000743: SWAP2 00000744: POP 00000745: JUMPDEST 00000746: POP 00000747: SWAP2 00000748: POP 00000749: SWAP2 0000074a: POP 0000074b: DUP2 0000074c: DUP6 0000074d: DUP5 0000074e: DUP2 0000074f: MLOAD 00000750: DUP2 00000751: LT 00000752: PUSH2 0x0757 00000755: JUMPI 00000756: INVALID 00000757: JUMPDEST 00000758: PUSH1 0x20 0000075a: MUL 0000075b: PUSH1 0x20 0000075d: ADD 0000075e: ADD 0000075f: SWAP1 00000760: ISZERO 00000761: ISZERO 00000762: SWAP1 00000763: DUP2 00000764: ISZERO 00000765: ISZERO 00000766: DUP2 00000767: MSTORE 00000768: POP 00000769: POP 0000076a: DUP1 0000076b: DUP5 0000076c: DUP5 0000076d: DUP2 0000076e: MLOAD 0000076f: DUP2 00000770: LT 00000771: PUSH2 0x0776 00000774: JUMPI 00000775: INVALID 00000776: JUMPDEST 00000777: PUSH1 0x20 00000779: MUL 0000077a: PUSH1 0x20 0000077c: ADD 0000077d: ADD 0000077e: DUP2 0000077f: SWAP1 00000780: MSTORE 00000781: POP 00000782: DUP2 00000783: PUSH2 0x0844 00000786: JUMPI 00000787: PUSH1 0x60 00000789: PUSH1 0x44 0000078b: DUP3 0000078c: MLOAD 0000078d: LT 0000078e: ISZERO 0000078f: PUSH2 0x07cc 00000792: JUMPI 00000793: POP 00000794: PUSH1 0x40 00000796: DUP1 00000797: MLOAD 00000798: DUP1 00000799: DUP3 0000079a: ADD 0000079b: SWAP1 0000079c: SWAP2 0000079d: MSTORE 0000079e: PUSH1 0x13 000007a0: DUP2 000007a1: MSTORE 000007a2: PUSH32 0x44656c656761746563616c6c206661696c656400000000000000000000000000 000007c3: PUSH1 0x20 000007c5: DUP3 000007c6: ADD 000007c7: MSTORE 000007c8: PUSH2 0x07e9 000007cb: JUMP 000007cc: JUMPDEST 000007cd: PUSH1 0x04 000007cf: DUP3 000007d0: ADD 000007d1: SWAP2 000007d2: POP 000007d3: DUP2 000007d4: DUP1 000007d5: PUSH1 0x20 000007d7: ADD 000007d8: SWAP1 000007d9: MLOAD 000007da: DUP2 000007db: ADD 000007dc: SWAP1 000007dd: PUSH2 0x07e6 000007e0: SWAP2 000007e1: SWAP1 000007e2: PUSH2 0x167d 000007e5: JUMP 000007e6: JUMPDEST 000007e7: SWAP1 000007e8: POP 000007e9: JUMPDEST 000007ea: DUP7 000007eb: ISZERO 000007ec: PUSH2 0x0809 000007ef: JUMPI 000007f0: DUP1 000007f1: PUSH1 0x40 000007f3: MLOAD 000007f4: PUSH3 0x461bcd 000007f8: PUSH1 0xe5 000007fa: SHL 000007fb: DUP2 000007fc: MSTORE 000007fd: PUSH1 0x04 000007ff: ADD 00000800: PUSH2 0x056f 00000803: SWAP2 00000804: SWAP1 00000805: PUSH2 0x1879 00000808: JUMP 00000809: JUMPDEST 0000080a: PUSH32 0x8227e69dc43e5a3dff3c9e10930295a5383b9e7736b0508e15d46d05efecb4a6 0000082b: DUP5 0000082c: DUP3 0000082d: PUSH1 0x40 0000082f: MLOAD 00000830: PUSH2 0x083a 00000833: SWAP3 00000834: SWAP2 00000835: SWAP1 00000836: PUSH2 0x1b24 00000839: JUMP 0000083a: JUMPDEST 0000083b: PUSH1 0x40 0000083d: MLOAD 0000083e: DUP1 0000083f: SWAP2 00000840: SUB 00000841: SWAP1 00000842: LOG1 00000843: POP 00000844: JUMPDEST 00000845: POP 00000846: POP 00000847: PUSH1 0x01 00000849: ADD 0000084a: PUSH2 0x06cd 0000084d: JUMP 0000084e: JUMPDEST 0000084f: POP 00000850: SWAP4 00000851: POP 00000852: SWAP4 00000853: SWAP2 00000854: POP 00000855: POP 00000856: JUMP 00000857: JUMPDEST 00000858: PUSH1 0x00 0000085a: SLOAD 0000085b: PUSH1 0x01 0000085d: PUSH1 0x01 0000085f: PUSH1 0xa0 00000861: SHL 00000862: SUB 00000863: AND 00000864: CALLER 00000865: EQ 00000866: PUSH2 0x0881 00000869: JUMPI 0000086a: PUSH1 0x40 0000086c: MLOAD 0000086d: PUSH3 0x461bcd 00000871: PUSH1 0xe5 00000873: SHL 00000874: DUP2 00000875: MSTORE 00000876: PUSH1 0x04 00000878: ADD 00000879: PUSH2 0x056f 0000087c: SWAP1 0000087d: PUSH2 0x1a59 00000880: JUMP 00000881: JUMPDEST 00000882: PUSH1 0x01 00000884: PUSH1 0x01 00000886: PUSH1 0xa0 00000888: SHL 00000889: SUB 0000088a: DUP2 0000088b: AND 0000088c: PUSH2 0x08a7 0000088f: JUMPI 00000890: PUSH1 0x40 00000892: MLOAD 00000893: PUSH3 0x461bcd 00000897: PUSH1 0xe5 00000899: SHL 0000089a: DUP2 0000089b: MSTORE 0000089c: PUSH1 0x04 0000089e: ADD 0000089f: PUSH2 0x056f 000008a2: SWAP1 000008a3: PUSH2 0x188c 000008a6: JUMP 000008a7: JUMPDEST 000008a8: PUSH1 0x02 000008aa: DUP1 000008ab: SLOAD 000008ac: PUSH1 0x01 000008ae: PUSH1 0x01 000008b0: PUSH1 0xa0 000008b2: SHL 000008b3: SUB 000008b4: NOT 000008b5: AND 000008b6: PUSH1 0x01 000008b8: PUSH1 0x01 000008ba: PUSH1 0xa0 000008bc: SHL 000008bd: SUB 000008be: DUP4 000008bf: AND 000008c0: SWAP1 000008c1: DUP2 000008c2: OR 000008c3: SWAP1 000008c4: SWAP2 000008c5: SSTORE 000008c6: PUSH1 0x40 000008c8: MLOAD 000008c9: PUSH32 0x8cc0f93a743dada018f348511be65ee8585206ca96e058f4d70c41f276e57bde 000008ea: SWAP1 000008eb: PUSH1 0x00 000008ed: SWAP1 000008ee: LOG2 000008ef: POP 000008f0: JUMP 000008f1: JUMPDEST 000008f2: PUSH1 0x00 000008f4: PUSH2 0x08fb 000008f7: PUSH2 0x13a4 000008fa: JUMP 000008fb: JUMPDEST 000008fc: SLOAD 000008fd: PUSH1 0x01 000008ff: PUSH1 0x01 00000901: PUSH1 0xa0 00000903: SHL 00000904: SUB 00000905: AND 00000906: SWAP1 00000907: POP 00000908: SWAP1 00000909: JUMP 0000090a: JUMPDEST 0000090b: PUSH1 0x00 0000090d: SLOAD 0000090e: PUSH1 0x01 00000910: PUSH1 0x01 00000912: PUSH1 0xa0 00000914: SHL 00000915: SUB 00000916: AND 00000917: CALLER 00000918: EQ 00000919: PUSH2 0x0934 0000091c: JUMPI 0000091d: PUSH1 0x40 0000091f: MLOAD 00000920: PUSH3 0x461bcd 00000924: PUSH1 0xe5 00000926: SHL 00000927: DUP2 00000928: MSTORE 00000929: PUSH1 0x04 0000092b: ADD 0000092c: PUSH2 0x056f 0000092f: SWAP1 00000930: PUSH2 0x1a59 00000933: JUMP 00000934: JUMPDEST 00000935: DUP1 00000936: PUSH2 0x093d 00000939: PUSH2 0x13c8 0000093c: JUMP 0000093d: JUMPDEST 0000093e: DUP1 0000093f: SLOAD 00000940: SWAP2 00000941: ISZERO 00000942: ISZERO 00000943: PUSH1 0x01 00000945: PUSH1 0xa0 00000947: SHL 00000948: MUL 00000949: PUSH1 0xff 0000094b: PUSH1 0xa0 0000094d: SHL 0000094e: NOT 0000094f: SWAP1 00000950: SWAP3 00000951: AND 00000952: SWAP2 00000953: SWAP1 00000954: SWAP2 00000955: OR 00000956: SWAP1 00000957: SSTORE 00000958: PUSH1 0x40 0000095a: MLOAD 0000095b: PUSH32 0x69013db8b04c8782a3bfb1988607e4cb48e1476125c4a9f2e08199916281becf 0000097c: SWAP1 0000097d: PUSH2 0x0987 00000980: SWAP1 00000981: DUP4 00000982: SWAP1 00000983: PUSH2 0x186e 00000986: JUMP 00000987: JUMPDEST 00000988: PUSH1 0x40 0000098a: MLOAD 0000098b: DUP1 0000098c: SWAP2 0000098d: SUB 0000098e: SWAP1 0000098f: LOG1 00000990: POP 00000991: JUMP 00000992: JUMPDEST 00000993: PUSH1 0x00 00000995: SLOAD 00000996: PUSH1 0x01 00000998: PUSH1 0x01 0000099a: PUSH1 0xa0 0000099c: SHL 0000099d: SUB 0000099e: AND 0000099f: CALLER 000009a0: EQ 000009a1: PUSH2 0x09bc 000009a4: JUMPI 000009a5: PUSH1 0x40 000009a7: MLOAD 000009a8: PUSH3 0x461bcd 000009ac: PUSH1 0xe5 000009ae: SHL 000009af: DUP2 000009b0: MSTORE 000009b1: PUSH1 0x04 000009b3: ADD 000009b4: PUSH2 0x056f 000009b7: SWAP1 000009b8: PUSH2 0x1a59 000009bb: JUMP 000009bc: JUMPDEST 000009bd: DUP2 000009be: PUSH2 0x09c5 000009c1: PUSH2 0x13ec 000009c4: JUMP 000009c5: JUMPDEST 000009c6: DUP1 000009c7: SLOAD 000009c8: PUSH1 0x01 000009ca: PUSH1 0x01 000009cc: PUSH1 0xa0 000009ce: SHL 000009cf: SUB 000009d0: NOT 000009d1: AND 000009d2: PUSH1 0x01 000009d4: PUSH1 0x01 000009d6: PUSH1 0xa0 000009d8: SHL 000009d9: SUB 000009da: SWAP3 000009db: SWAP1 000009dc: SWAP3 000009dd: AND 000009de: SWAP2 000009df: SWAP1 000009e0: SWAP2 000009e1: OR 000009e2: SWAP1 000009e3: SSTORE 000009e4: DUP1 000009e5: PUSH2 0x09ec 000009e8: PUSH2 0x13ec 000009eb: JUMP 000009ec: JUMPDEST 000009ed: DUP1 000009ee: SLOAD 000009ef: SWAP2 000009f0: ISZERO 000009f1: ISZERO 000009f2: PUSH1 0x01 000009f4: PUSH1 0xa0 000009f6: SHL 000009f7: MUL 000009f8: PUSH1 0xff 000009fa: PUSH1 0xa0 000009fc: SHL 000009fd: NOT 000009fe: SWAP1 000009ff: SWAP3 00000a00: AND 00000a01: SWAP2 00000a02: SWAP1 00000a03: SWAP2 00000a04: OR 00000a05: SWAP1 00000a06: SSTORE 00000a07: PUSH1 0x40 00000a09: MLOAD 00000a0a: PUSH32 0x474dbe0e44f4b1a24e66b1a543293f696f5f72651de8895adf45233e3c6948bb 00000a2b: SWAP1 00000a2c: PUSH2 0x0a36 00000a2f: SWAP1 00000a30: DUP5 00000a31: SWAP1 00000a32: PUSH2 0x17c3 00000a35: JUMP 00000a36: JUMPDEST 00000a37: PUSH1 0x40 00000a39: MLOAD 00000a3a: DUP1 00000a3b: SWAP2 00000a3c: SUB 00000a3d: SWAP1 00000a3e: LOG1 00000a3f: PUSH32 0x75f3afb50142265ab5ffa96a1281463cb3a39821dfcafd44d5bcda0dbf1c4825 00000a60: DUP2 00000a61: PUSH1 0x40 00000a63: MLOAD 00000a64: PUSH2 0x0629 00000a67: SWAP2 00000a68: SWAP1 00000a69: PUSH2 0x186e 00000a6c: JUMP 00000a6d: JUMPDEST 00000a6e: PUSH1 0x00 00000a70: SLOAD 00000a71: PUSH1 0x01 00000a73: PUSH1 0x01 00000a75: PUSH1 0xa0 00000a77: SHL 00000a78: SUB 00000a79: AND 00000a7a: CALLER 00000a7b: EQ 00000a7c: PUSH2 0x0a97 00000a7f: JUMPI 00000a80: PUSH1 0x40 00000a82: MLOAD 00000a83: PUSH3 0x461bcd 00000a87: PUSH1 0xe5 00000a89: SHL 00000a8a: DUP2 00000a8b: MSTORE 00000a8c: PUSH1 0x04 00000a8e: ADD 00000a8f: PUSH2 0x056f 00000a92: SWAP1 00000a93: PUSH2 0x1a59 00000a96: JUMP 00000a97: JUMPDEST 00000a98: DUP1 00000a99: PUSH2 0x0aa0 00000a9c: PUSH2 0x13ec 00000a9f: JUMP 00000aa0: JUMPDEST 00000aa1: DUP1 00000aa2: SLOAD 00000aa3: SWAP2 00000aa4: ISZERO 00000aa5: ISZERO 00000aa6: PUSH1 0x01 00000aa8: PUSH1 0xa0 00000aaa: SHL 00000aab: MUL 00000aac: PUSH1 0xff 00000aae: PUSH1 0xa0 00000ab0: SHL 00000ab1: NOT 00000ab2: SWAP1 00000ab3: SWAP3 00000ab4: AND 00000ab5: SWAP2 00000ab6: SWAP1 00000ab7: SWAP2 00000ab8: OR 00000ab9: SWAP1 00000aba: SSTORE 00000abb: PUSH1 0x40 00000abd: MLOAD 00000abe: PUSH32 0x75f3afb50142265ab5ffa96a1281463cb3a39821dfcafd44d5bcda0dbf1c4825 00000adf: SWAP1 00000ae0: PUSH2 0x0987 00000ae3: SWAP1 00000ae4: DUP4 00000ae5: SWAP1 00000ae6: PUSH2 0x186e 00000ae9: JUMP 00000aea: JUMPDEST 00000aeb: PUSH1 0x00 00000aed: PUSH2 0x0af4 00000af0: PUSH2 0x1410 00000af3: JUMP 00000af4: JUMPDEST 00000af5: SLOAD 00000af6: PUSH1 0x01 00000af8: PUSH1 0xa0 00000afa: SHL 00000afb: SWAP1 00000afc: DIV 00000afd: PUSH1 0xff 00000aff: AND 00000b00: SWAP2 00000b01: SWAP1 00000b02: POP 00000b03: JUMP 00000b04: JUMPDEST 00000b05: PUSH1 0x01 00000b07: DUP1 00000b08: SLOAD 00000b09: PUSH1 0x40 00000b0b: DUP1 00000b0c: MLOAD 00000b0d: PUSH1 0x20 00000b0f: PUSH1 0x02 00000b11: DUP5 00000b12: DUP7 00000b13: AND 00000b14: ISZERO 00000b15: PUSH2 0x0100 00000b18: MUL 00000b19: PUSH1 0x00 00000b1b: NOT 00000b1c: ADD 00000b1d: SWAP1 00000b1e: SWAP5 00000b1f: AND 00000b20: SWAP4 00000b21: SWAP1 00000b22: SWAP4 00000b23: DIV 00000b24: PUSH1 0x1f 00000b26: DUP2 00000b27: ADD 00000b28: DUP5 00000b29: SWAP1 00000b2a: DIV 00000b2b: DUP5 00000b2c: MUL 00000b2d: DUP3 00000b2e: ADD 00000b2f: DUP5 00000b30: ADD 00000b31: SWAP1 00000b32: SWAP3 00000b33: MSTORE 00000b34: DUP2 00000b35: DUP2 00000b36: MSTORE 00000b37: SWAP3 00000b38: SWAP2 00000b39: DUP4 00000b3a: ADD 00000b3b: DUP3 00000b3c: DUP3 00000b3d: DUP1 00000b3e: ISZERO 00000b3f: PUSH2 0x0b89 00000b42: JUMPI 00000b43: DUP1 00000b44: PUSH1 0x1f 00000b46: LT 00000b47: PUSH2 0x0b5e 00000b4a: JUMPI 00000b4b: PUSH2 0x0100 00000b4e: DUP1 00000b4f: DUP4 00000b50: SLOAD 00000b51: DIV 00000b52: MUL 00000b53: DUP4 00000b54: MSTORE 00000b55: SWAP2 00000b56: PUSH1 0x20 00000b58: ADD 00000b59: SWAP2 00000b5a: PUSH2 0x0b89 00000b5d: JUMP 00000b5e: JUMPDEST 00000b5f: DUP3 00000b60: ADD 00000b61: SWAP2 00000b62: SWAP1 00000b63: PUSH1 0x00 00000b65: MSTORE 00000b66: PUSH1 0x20 00000b68: PUSH1 0x00 00000b6a: KECCAK256 00000b6b: SWAP1 00000b6c: JUMPDEST 00000b6d: DUP2 00000b6e: SLOAD 00000b6f: DUP2 00000b70: MSTORE 00000b71: SWAP1 00000b72: PUSH1 0x01 00000b74: ADD 00000b75: SWAP1 00000b76: PUSH1 0x20 00000b78: ADD 00000b79: DUP1 00000b7a: DUP4 00000b7b: GT 00000b7c: PUSH2 0x0b6c 00000b7f: JUMPI 00000b80: DUP3 00000b81: SWAP1 00000b82: SUB 00000b83: PUSH1 0x1f 00000b85: AND 00000b86: DUP3 00000b87: ADD 00000b88: SWAP2 00000b89: JUMPDEST 00000b8a: POP 00000b8b: POP 00000b8c: POP 00000b8d: POP 00000b8e: POP 00000b8f: DUP2 00000b90: JUMP 00000b91: JUMPDEST 00000b92: PUSH1 0x00 00000b94: SLOAD 00000b95: PUSH1 0x01 00000b97: PUSH1 0x01 00000b99: PUSH1 0xa0 00000b9b: SHL 00000b9c: SUB 00000b9d: AND 00000b9e: DUP2 00000b9f: JUMP 00000ba0: JUMPDEST 00000ba1: PUSH2 0x0ba8 00000ba4: PUSH2 0x0aea 00000ba7: JUMP 00000ba8: JUMPDEST 00000ba9: PUSH2 0x0bc4 00000bac: JUMPI 00000bad: PUSH1 0x40 00000baf: MLOAD 00000bb0: PUSH3 0x461bcd 00000bb4: PUSH1 0xe5 00000bb6: SHL 00000bb7: DUP2 00000bb8: MSTORE 00000bb9: PUSH1 0x04 00000bbb: ADD 00000bbc: PUSH2 0x056f 00000bbf: SWAP1 00000bc0: PUSH2 0x197d 00000bc3: JUMP 00000bc4: JUMPDEST 00000bc5: CALLER 00000bc6: ORIGIN 00000bc7: EQ 00000bc8: PUSH2 0x0be3 00000bcb: JUMPI 00000bcc: PUSH1 0x40 00000bce: MLOAD 00000bcf: PUSH3 0x461bcd 00000bd3: PUSH1 0xe5 00000bd5: SHL 00000bd6: DUP2 00000bd7: MSTORE 00000bd8: PUSH1 0x04 00000bda: ADD 00000bdb: PUSH2 0x056f 00000bde: SWAP1 00000bdf: PUSH2 0x1946 00000be2: JUMP 00000be3: JUMPDEST 00000be4: PUSH1 0x00 00000be6: PUSH2 0x0bed 00000be9: PUSH2 0x0e84 00000bec: JUMP 00000bed: JUMPDEST 00000bee: PUSH1 0x01 00000bf0: PUSH1 0x01 00000bf2: PUSH1 0xa0 00000bf4: SHL 00000bf5: SUB 00000bf6: AND 00000bf7: CALLVALUE 00000bf8: DUP5 00000bf9: DUP5 00000bfa: PUSH1 0x40 00000bfc: MLOAD 00000bfd: PUSH2 0x0c07 00000c00: SWAP3 00000c01: SWAP2 00000c02: SWAP1 00000c03: PUSH2 0x1740 00000c06: JUMP 00000c07: JUMPDEST 00000c08: PUSH1 0x00 00000c0a: PUSH1 0x40 00000c0c: MLOAD 00000c0d: DUP1 00000c0e: DUP4 00000c0f: SUB 00000c10: DUP2 00000c11: DUP6 00000c12: DUP8 00000c13: GAS 00000c14: CALL 00000c15: SWAP3 00000c16: POP 00000c17: POP 00000c18: POP 00000c19: RETURNDATASIZE 00000c1a: DUP1 00000c1b: PUSH1 0x00 00000c1d: DUP2 00000c1e: EQ 00000c1f: PUSH2 0x0c44 00000c22: JUMPI 00000c23: PUSH1 0x40 00000c25: MLOAD 00000c26: SWAP2 00000c27: POP 00000c28: PUSH1 0x1f 00000c2a: NOT 00000c2b: PUSH1 0x3f 00000c2d: RETURNDATASIZE 00000c2e: ADD 00000c2f: AND 00000c30: DUP3 00000c31: ADD 00000c32: PUSH1 0x40 00000c34: MSTORE 00000c35: RETURNDATASIZE 00000c36: DUP3 00000c37: MSTORE 00000c38: RETURNDATASIZE 00000c39: PUSH1 0x00 00000c3b: PUSH1 0x20 00000c3d: DUP5 00000c3e: ADD 00000c3f: RETURNDATACOPY 00000c40: PUSH2 0x0c49 00000c43: JUMP 00000c44: JUMPDEST 00000c45: PUSH1 0x60 00000c47: SWAP2 00000c48: POP 00000c49: JUMPDEST 00000c4a: POP 00000c4b: POP 00000c4c: SWAP1 00000c4d: POP 00000c4e: DUP1 00000c4f: PUSH2 0x0c5f 00000c52: JUMPI 00000c53: PUSH1 0x40 00000c55: MLOAD 00000c56: RETURNDATASIZE 00000c57: DUP1 00000c58: PUSH1 0x00 00000c5a: DUP4 00000c5b: RETURNDATACOPY 00000c5c: DUP1 00000c5d: DUP3 00000c5e: REVERT 00000c5f: JUMPDEST 00000c60: POP 00000c61: POP 00000c62: POP 00000c63: JUMP 00000c64: JUMPDEST 00000c65: PUSH2 0x0c6c 00000c68: PUSH2 0x0faf 00000c6b: JUMP 00000c6c: JUMPDEST 00000c6d: PUSH2 0x0c88 00000c70: JUMPI 00000c71: PUSH1 0x40 00000c73: MLOAD 00000c74: PUSH3 0x461bcd 00000c78: PUSH1 0xe5 00000c7a: SHL 00000c7b: DUP2 00000c7c: MSTORE 00000c7d: PUSH1 0x04 00000c7f: ADD 00000c80: PUSH2 0x056f 00000c83: SWAP1 00000c84: PUSH2 0x18e9 00000c87: JUMP 00000c88: JUMPDEST 00000c89: CALLER 00000c8a: ORIGIN 00000c8b: EQ 00000c8c: PUSH2 0x0ca7 00000c8f: JUMPI 00000c90: PUSH1 0x40 00000c92: MLOAD 00000c93: PUSH3 0x461bcd 00000c97: PUSH1 0xe5 00000c99: SHL 00000c9a: DUP2 00000c9b: MSTORE 00000c9c: PUSH1 0x04 00000c9e: ADD 00000c9f: PUSH2 0x056f 00000ca2: SWAP1 00000ca3: PUSH2 0x1946 00000ca6: JUMP 00000ca7: JUMPDEST 00000ca8: PUSH1 0x00 00000caa: PUSH2 0x0cb1 00000cad: PUSH2 0x0e8e 00000cb0: JUMP 00000cb1: JUMPDEST 00000cb2: PUSH1 0x01 00000cb4: PUSH1 0x01 00000cb6: PUSH1 0xa0 00000cb8: SHL 00000cb9: SUB 00000cba: AND 00000cbb: DUP4 00000cbc: DUP4 00000cbd: PUSH1 0x40 00000cbf: MLOAD 00000cc0: PUSH2 0x0cca 00000cc3: SWAP3 00000cc4: SWAP2 00000cc5: SWAP1 00000cc6: PUSH2 0x1740 00000cc9: JUMP 00000cca: JUMPDEST 00000ccb: PUSH1 0x00 00000ccd: PUSH1 0x40 00000ccf: MLOAD 00000cd0: DUP1 00000cd1: DUP4 00000cd2: SUB 00000cd3: DUP2 00000cd4: PUSH1 0x00 00000cd6: DUP7 00000cd7: GAS 00000cd8: CALL 00000cd9: SWAP2 00000cda: POP 00000cdb: POP 00000cdc: RETURNDATASIZE 00000cdd: DUP1 00000cde: PUSH1 0x00 00000ce0: DUP2 00000ce1: EQ 00000ce2: PUSH2 0x0c44 00000ce5: JUMPI 00000ce6: PUSH1 0x40 00000ce8: MLOAD 00000ce9: SWAP2 00000cea: POP 00000ceb: PUSH1 0x1f 00000ced: NOT 00000cee: PUSH1 0x3f 00000cf0: RETURNDATASIZE 00000cf1: ADD 00000cf2: AND 00000cf3: DUP3 00000cf4: ADD 00000cf5: PUSH1 0x40 00000cf7: MSTORE 00000cf8: RETURNDATASIZE 00000cf9: DUP3 00000cfa: MSTORE 00000cfb: RETURNDATASIZE 00000cfc: PUSH1 0x00 00000cfe: PUSH1 0x20 00000d00: DUP5 00000d01: ADD 00000d02: RETURNDATACOPY 00000d03: PUSH2 0x0c49 00000d06: JUMP 00000d07: JUMPDEST 00000d08: PUSH1 0x02 00000d0a: SLOAD 00000d0b: PUSH1 0x01 00000d0d: PUSH1 0x01 00000d0f: PUSH1 0xa0 00000d11: SHL 00000d12: SUB 00000d13: AND 00000d14: CALLER 00000d15: EQ 00000d16: PUSH2 0x0d31 00000d19: JUMPI 00000d1a: PUSH1 0x40 00000d1c: MLOAD 00000d1d: PUSH3 0x461bcd 00000d21: PUSH1 0xe5 00000d23: SHL 00000d24: DUP2 00000d25: MSTORE 00000d26: PUSH1 0x04 00000d28: ADD 00000d29: PUSH2 0x056f 00000d2c: SWAP1 00000d2d: PUSH2 0x19eb 00000d30: JUMP 00000d31: JUMPDEST 00000d32: PUSH1 0x02 00000d34: SLOAD 00000d35: PUSH1 0x00 00000d37: DUP1 00000d38: SLOAD 00000d39: PUSH1 0x40 00000d3b: MLOAD 00000d3c: PUSH1 0x01 00000d3e: PUSH1 0x01 00000d40: PUSH1 0xa0 00000d42: SHL 00000d43: SUB 00000d44: SWAP4 00000d45: DUP5 00000d46: AND 00000d47: SWAP4 00000d48: SWAP1 00000d49: SWAP2 00000d4a: AND 00000d4b: SWAP2 00000d4c: PUSH32 0xd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c 00000d6d: SWAP2 00000d6e: LOG3 00000d6f: PUSH1 0x02 00000d71: DUP1 00000d72: SLOAD 00000d73: PUSH1 0x00 00000d75: DUP1 00000d76: SLOAD 00000d77: PUSH1 0x01 00000d79: PUSH1 0x01 00000d7b: PUSH1 0xa0 00000d7d: SHL 00000d7e: SUB 00000d7f: NOT 00000d80: SWAP1 00000d81: DUP2 00000d82: AND 00000d83: PUSH1 0x01 00000d85: PUSH1 0x01 00000d87: PUSH1 0xa0 00000d89: SHL 00000d8a: SUB 00000d8b: DUP5 00000d8c: AND 00000d8d: OR 00000d8e: SWAP1 00000d8f: SWAP2 00000d90: SSTORE 00000d91: AND 00000d92: SWAP1 00000d93: SSTORE 00000d94: JUMP 00000d95: JUMPDEST 00000d96: PUSH1 0x00 00000d98: SLOAD 00000d99: PUSH1 0x01 00000d9b: PUSH1 0x01 00000d9d: PUSH1 0xa0 00000d9f: SHL 00000da0: SUB 00000da1: AND 00000da2: CALLER 00000da3: EQ 00000da4: PUSH2 0x0dbf 00000da7: JUMPI 00000da8: PUSH1 0x40 00000daa: MLOAD 00000dab: PUSH3 0x461bcd 00000daf: PUSH1 0xe5 00000db1: SHL 00000db2: DUP2 00000db3: MSTORE 00000db4: PUSH1 0x04 00000db6: ADD 00000db7: PUSH2 0x056f 00000dba: SWAP1 00000dbb: PUSH2 0x1a59 00000dbe: JUMP 00000dbf: JUMPDEST 00000dc0: DUP2 00000dc1: PUSH2 0x0dc8 00000dc4: PUSH2 0x1434 00000dc7: JUMP 00000dc8: JUMPDEST 00000dc9: DUP1 00000dca: SLOAD 00000dcb: PUSH1 0x01 00000dcd: PUSH1 0x01 00000dcf: PUSH1 0xa0 00000dd1: SHL 00000dd2: SUB 00000dd3: NOT 00000dd4: AND 00000dd5: PUSH1 0x01 00000dd7: PUSH1 0x01 00000dd9: PUSH1 0xa0 00000ddb: SHL 00000ddc: SUB 00000ddd: SWAP3 00000dde: SWAP1 00000ddf: SWAP3 00000de0: AND 00000de1: SWAP2 00000de2: SWAP1 00000de3: SWAP2 00000de4: OR 00000de5: SWAP1 00000de6: SSTORE 00000de7: DUP1 00000de8: PUSH2 0x0def 00000deb: PUSH2 0x1434 00000dee: JUMP 00000def: JUMPDEST 00000df0: DUP1 00000df1: SLOAD 00000df2: SWAP2 00000df3: ISZERO 00000df4: ISZERO 00000df5: PUSH1 0x01 00000df7: PUSH1 0xa0 00000df9: SHL 00000dfa: MUL 00000dfb: PUSH1 0xff 00000dfd: PUSH1 0xa0 00000dff: SHL 00000e00: NOT 00000e01: SWAP1 00000e02: SWAP3 00000e03: AND 00000e04: SWAP2 00000e05: SWAP1 00000e06: SWAP2 00000e07: OR 00000e08: SWAP1 00000e09: SSTORE 00000e0a: PUSH1 0x40 00000e0c: MLOAD 00000e0d: PUSH32 0xc4b713388b13f13226268ec85c363aa606bfc124242892bef245909669b35d0c 00000e2e: SWAP1 00000e2f: PUSH2 0x0e39 00000e32: SWAP1 00000e33: DUP5 00000e34: SWAP1 00000e35: PUSH2 0x17c3 00000e38: JUMP 00000e39: JUMPDEST 00000e3a: PUSH1 0x40 00000e3c: MLOAD 00000e3d: DUP1 00000e3e: SWAP2 00000e3f: SUB 00000e40: SWAP1 00000e41: LOG1 00000e42: PUSH32 0x77a57cd075e1e4d27ea05938d55fc48c8967f71d9edeeb249010daccce25e45b 00000e63: DUP2 00000e64: PUSH1 0x40 00000e66: MLOAD 00000e67: PUSH2 0x0629 00000e6a: SWAP2 00000e6b: SWAP1 00000e6c: PUSH2 0x186e 00000e6f: JUMP 00000e70: JUMPDEST 00000e71: PUSH1 0x00 00000e73: PUSH2 0x0af4 00000e76: PUSH2 0x13ec 00000e79: JUMP 00000e7a: JUMPDEST 00000e7b: PUSH1 0x00 00000e7d: PUSH2 0x08fb 00000e80: PUSH2 0x13ec 00000e83: JUMP 00000e84: JUMPDEST 00000e85: PUSH1 0x00 00000e87: PUSH2 0x08fb 00000e8a: PUSH2 0x1410 00000e8d: JUMP 00000e8e: JUMPDEST 00000e8f: PUSH1 0x00 00000e91: PUSH2 0x08fb 00000e94: PUSH2 0x1434 00000e97: JUMP 00000e98: JUMPDEST 00000e99: PUSH2 0x0ea0 00000e9c: PUSH2 0x139e 00000e9f: JUMP 00000ea0: JUMPDEST 00000ea1: PUSH2 0x0ebc 00000ea4: JUMPI 00000ea5: PUSH1 0x40 00000ea7: MLOAD 00000ea8: PUSH3 0x461bcd 00000eac: PUSH1 0xe5 00000eae: SHL 00000eaf: DUP2 00000eb0: MSTORE 00000eb1: PUSH1 0x04 00000eb3: ADD 00000eb4: PUSH2 0x056f 00000eb7: SWAP1 00000eb8: PUSH2 0x1a22 00000ebb: JUMP 00000ebc: JUMPDEST 00000ebd: CALLER 00000ebe: ORIGIN 00000ebf: EQ 00000ec0: PUSH2 0x0edb 00000ec3: JUMPI 00000ec4: PUSH1 0x40 00000ec6: MLOAD 00000ec7: PUSH3 0x461bcd 00000ecb: PUSH1 0xe5 00000ecd: SHL 00000ece: DUP2 00000ecf: MSTORE 00000ed0: PUSH1 0x04 00000ed2: ADD 00000ed3: PUSH2 0x056f 00000ed6: SWAP1 00000ed7: PUSH2 0x1946 00000eda: JUMP 00000edb: JUMPDEST 00000edc: PUSH1 0x00 00000ede: PUSH2 0x0bed 00000ee1: PUSH2 0x08f1 00000ee4: JUMP 00000ee5: JUMPDEST 00000ee6: PUSH2 0x0eed 00000ee9: PUSH2 0x0e70 00000eec: JUMP 00000eed: JUMPDEST 00000eee: PUSH2 0x0f09 00000ef1: JUMPI 00000ef2: PUSH1 0x40 00000ef4: MLOAD 00000ef5: PUSH3 0x461bcd 00000ef9: PUSH1 0xe5 00000efb: SHL 00000efc: DUP2 00000efd: MSTORE 00000efe: PUSH1 0x04 00000f00: ADD 00000f01: PUSH2 0x056f 00000f04: SWAP1 00000f05: PUSH2 0x19b4 00000f08: JUMP 00000f09: JUMPDEST 00000f0a: CALLER 00000f0b: ORIGIN 00000f0c: EQ 00000f0d: PUSH2 0x0f28 00000f10: JUMPI 00000f11: PUSH1 0x40 00000f13: MLOAD 00000f14: PUSH3 0x461bcd 00000f18: PUSH1 0xe5 00000f1a: SHL 00000f1b: DUP2 00000f1c: MSTORE 00000f1d: PUSH1 0x04 00000f1f: ADD 00000f20: PUSH2 0x056f 00000f23: SWAP1 00000f24: PUSH2 0x1946 00000f27: JUMP 00000f28: JUMPDEST 00000f29: PUSH1 0x00 00000f2b: PUSH2 0x0bed 00000f2e: PUSH2 0x0e7a 00000f31: JUMP 00000f32: JUMPDEST 00000f33: PUSH1 0x00 00000f35: SLOAD 00000f36: PUSH1 0x01 00000f38: PUSH1 0x01 00000f3a: PUSH1 0xa0 00000f3c: SHL 00000f3d: SUB 00000f3e: AND 00000f3f: CALLER 00000f40: EQ 00000f41: PUSH2 0x0f5c 00000f44: JUMPI 00000f45: PUSH1 0x40 00000f47: MLOAD 00000f48: PUSH3 0x461bcd 00000f4c: PUSH1 0xe5 00000f4e: SHL 00000f4f: DUP2 00000f50: MSTORE 00000f51: PUSH1 0x04 00000f53: ADD 00000f54: PUSH2 0x056f 00000f57: SWAP1 00000f58: PUSH2 0x1a59 00000f5b: JUMP 00000f5c: JUMPDEST 00000f5d: DUP1 00000f5e: PUSH2 0x0f65 00000f61: PUSH2 0x1434 00000f64: JUMP 00000f65: JUMPDEST 00000f66: DUP1 00000f67: SLOAD 00000f68: SWAP2 00000f69: ISZERO 00000f6a: ISZERO 00000f6b: PUSH1 0x01 00000f6d: PUSH1 0xa0 00000f6f: SHL 00000f70: MUL 00000f71: PUSH1 0xff 00000f73: PUSH1 0xa0 00000f75: SHL 00000f76: NOT 00000f77: SWAP1 00000f78: SWAP3 00000f79: AND 00000f7a: SWAP2 00000f7b: SWAP1 00000f7c: SWAP2 00000f7d: OR 00000f7e: SWAP1 00000f7f: SSTORE 00000f80: PUSH1 0x40 00000f82: MLOAD 00000f83: PUSH32 0x77a57cd075e1e4d27ea05938d55fc48c8967f71d9edeeb249010daccce25e45b 00000fa4: SWAP1 00000fa5: PUSH2 0x0987 00000fa8: SWAP1 00000fa9: DUP4 00000faa: SWAP1 00000fab: PUSH2 0x186e 00000fae: JUMP 00000faf: JUMPDEST 00000fb0: PUSH1 0x00 00000fb2: PUSH2 0x0af4 00000fb5: PUSH2 0x1434 00000fb8: JUMP 00000fb9: JUMPDEST 00000fba: PUSH1 0x00 00000fbc: PUSH2 0x08fb 00000fbf: PUSH2 0x13c8 00000fc2: JUMP 00000fc3: JUMPDEST 00000fc4: PUSH1 0x00 00000fc6: PUSH2 0x0af4 00000fc9: PUSH2 0x13c8 00000fcc: JUMP 00000fcd: JUMPDEST 00000fce: PUSH1 0x00 00000fd0: SLOAD 00000fd1: PUSH1 0x01 00000fd3: PUSH1 0x01 00000fd5: PUSH1 0xa0 00000fd7: SHL 00000fd8: SUB 00000fd9: AND 00000fda: CALLER 00000fdb: EQ 00000fdc: PUSH2 0x0ff7 00000fdf: JUMPI 00000fe0: PUSH1 0x40 00000fe2: MLOAD 00000fe3: PUSH3 0x461bcd 00000fe7: PUSH1 0xe5 00000fe9: SHL 00000fea: DUP2 00000feb: MSTORE 00000fec: PUSH1 0x04 00000fee: ADD 00000fef: PUSH2 0x056f 00000ff2: SWAP1 00000ff3: PUSH2 0x1a59 00000ff6: JUMP 00000ff7: JUMPDEST 00000ff8: DUP2 00000ff9: PUSH2 0x1000 00000ffc: PUSH2 0x1410 00000fff: JUMP 00001000: JUMPDEST 00001001: DUP1 00001002: SLOAD 00001003: PUSH1 0x01 00001005: PUSH1 0x01 00001007: PUSH1 0xa0 00001009: SHL 0000100a: SUB 0000100b: NOT 0000100c: AND 0000100d: PUSH1 0x01 0000100f: PUSH1 0x01 00001011: PUSH1 0xa0 00001013: SHL 00001014: SUB 00001015: SWAP3 00001016: SWAP1 00001017: SWAP3 00001018: AND 00001019: SWAP2 0000101a: SWAP1 0000101b: SWAP2 0000101c: OR 0000101d: SWAP1 0000101e: SSTORE 0000101f: DUP1 00001020: PUSH2 0x1027 00001023: PUSH2 0x1410 00001026: JUMP 00001027: JUMPDEST 00001028: DUP1 00001029: SLOAD 0000102a: SWAP2 0000102b: ISZERO 0000102c: ISZERO 0000102d: PUSH1 0x01 0000102f: PUSH1 0xa0 00001031: SHL 00001032: MUL 00001033: PUSH1 0xff 00001035: PUSH1 0xa0 00001037: SHL 00001038: NOT 00001039: SWAP1 0000103a: SWAP3 0000103b: AND 0000103c: SWAP2 0000103d: SWAP1 0000103e: SWAP2 0000103f: OR 00001040: SWAP1 00001041: SSTORE 00001042: PUSH1 0x40 00001044: MLOAD 00001045: PUSH32 0xed44209623383e0a37e30095e7056f3e879411ab3edf075836dd94a2f4973580 00001066: SWAP1 00001067: PUSH2 0x1071 0000106a: SWAP1 0000106b: DUP5 0000106c: SWAP1 0000106d: PUSH2 0x17c3 00001070: JUMP 00001071: JUMPDEST 00001072: PUSH1 0x40 00001074: MLOAD 00001075: DUP1 00001076: SWAP2 00001077: SUB 00001078: SWAP1 00001079: LOG1 0000107a: PUSH32 0xf39273fb8850aade529594fa8aa09c79be1dd5d16a8cff2c20496e048539e418 0000109b: DUP2 0000109c: PUSH1 0x40 0000109e: MLOAD 0000109f: PUSH2 0x0629 000010a2: SWAP2 000010a3: SWAP1 000010a4: PUSH2 0x186e 000010a7: JUMP 000010a8: JUMPDEST 000010a9: PUSH1 0x00 000010ab: SLOAD 000010ac: PUSH1 0x01 000010ae: PUSH1 0x01 000010b0: PUSH1 0xa0 000010b2: SHL 000010b3: SUB 000010b4: AND 000010b5: CALLER 000010b6: EQ 000010b7: PUSH2 0x10d2 000010ba: JUMPI 000010bb: PUSH1 0x40 000010bd: MLOAD 000010be: PUSH3 0x461bcd 000010c2: PUSH1 0xe5 000010c4: SHL 000010c5: DUP2 000010c6: MSTORE 000010c7: PUSH1 0x04 000010c9: ADD 000010ca: PUSH2 0x056f 000010cd: SWAP1 000010ce: PUSH2 0x1a59 000010d1: JUMP 000010d2: JUMPDEST 000010d3: DUP2 000010d4: PUSH2 0x10db 000010d7: PUSH2 0x13c8 000010da: JUMP 000010db: JUMPDEST 000010dc: DUP1 000010dd: SLOAD 000010de: PUSH1 0x01 000010e0: PUSH1 0x01 000010e2: PUSH1 0xa0 000010e4: SHL 000010e5: SUB 000010e6: NOT 000010e7: AND 000010e8: PUSH1 0x01 000010ea: PUSH1 0x01 000010ec: PUSH1 0xa0 000010ee: SHL 000010ef: SUB 000010f0: SWAP3 000010f1: SWAP1 000010f2: SWAP3 000010f3: AND 000010f4: SWAP2 000010f5: SWAP1 000010f6: SWAP2 000010f7: OR 000010f8: SWAP1 000010f9: SSTORE 000010fa: DUP1 000010fb: PUSH2 0x1102 000010fe: PUSH2 0x13c8 00001101: JUMP 00001102: JUMPDEST 00001103: DUP1 00001104: SLOAD 00001105: SWAP2 00001106: ISZERO 00001107: ISZERO 00001108: PUSH1 0x01 0000110a: PUSH1 0xa0 0000110c: SHL 0000110d: MUL 0000110e: PUSH1 0xff 00001110: PUSH1 0xa0 00001112: SHL 00001113: NOT 00001114: SWAP1 00001115: SWAP3 00001116: AND 00001117: SWAP2 00001118: SWAP1 00001119: SWAP2 0000111a: OR 0000111b: SWAP1 0000111c: SSTORE 0000111d: PUSH1 0x40 0000111f: MLOAD 00001120: PUSH32 0xe3f9ba76e59e03b4e1255783bc2d5340338b8bc071086d3e32e5ddff4fc85553 00001141: SWAP1 00001142: PUSH2 0x114c 00001145: SWAP1 00001146: DUP5 00001147: SWAP1 00001148: PUSH2 0x17c3 0000114b: JUMP 0000114c: JUMPDEST 0000114d: PUSH1 0x40 0000114f: MLOAD 00001150: DUP1 00001151: SWAP2 00001152: SUB 00001153: SWAP1 00001154: LOG1 00001155: PUSH32 0x69013db8b04c8782a3bfb1988607e4cb48e1476125c4a9f2e08199916281becf 00001176: DUP2 00001177: PUSH1 0x40 00001179: MLOAD 0000117a: PUSH2 0x0629 0000117d: SWAP2 0000117e: SWAP1 0000117f: PUSH2 0x186e 00001182: JUMP 00001183: JUMPDEST 00001184: PUSH1 0x40 00001186: MLOAD 00001187: PUSH1 0x20 00001189: ADD 0000118a: PUSH2 0x1192 0000118d: SWAP1 0000118e: PUSH2 0x17c0 00001191: JUMP 00001192: JUMPDEST 00001193: PUSH1 0x40 00001195: MLOAD 00001196: PUSH1 0x20 00001198: DUP2 00001199: DUP4 0000119a: SUB 0000119b: SUB 0000119c: DUP2 0000119d: MSTORE 0000119e: SWAP1 0000119f: PUSH1 0x40 000011a1: MSTORE 000011a2: DUP1 000011a3: MLOAD 000011a4: SWAP1 000011a5: PUSH1 0x20 000011a7: ADD 000011a8: KECCAK256 000011a9: PUSH1 0x01 000011ab: PUSH1 0x40 000011ad: MLOAD 000011ae: PUSH1 0x20 000011b0: ADD 000011b1: PUSH2 0x11ba 000011b4: SWAP2 000011b5: SWAP1 000011b6: PUSH2 0x1750 000011b9: JUMP 000011ba: JUMPDEST 000011bb: PUSH1 0x40 000011bd: MLOAD 000011be: PUSH1 0x20 000011c0: DUP2 000011c1: DUP4 000011c2: SUB 000011c3: SUB 000011c4: DUP2 000011c5: MSTORE 000011c6: SWAP1 000011c7: PUSH1 0x40 000011c9: MSTORE 000011ca: DUP1 000011cb: MLOAD 000011cc: SWAP1 000011cd: PUSH1 0x20 000011cf: ADD 000011d0: KECCAK256 000011d1: EQ 000011d2: PUSH2 0x11ed 000011d5: JUMPI 000011d6: PUSH1 0x40 000011d8: MLOAD 000011d9: PUSH3 0x461bcd 000011dd: PUSH1 0xe5 000011df: SHL 000011e0: DUP2 000011e1: MSTORE 000011e2: PUSH1 0x04 000011e4: ADD 000011e5: PUSH2 0x056f 000011e8: SWAP1 000011e9: PUSH2 0x1ac7 000011ec: JUMP 000011ed: JUMPDEST 000011ee: PUSH1 0x01 000011f0: PUSH1 0x01 000011f2: PUSH1 0xa0 000011f4: SHL 000011f5: SUB 000011f6: DUP2 000011f7: AND 000011f8: PUSH2 0x1213 000011fb: JUMPI 000011fc: PUSH1 0x40 000011fe: MLOAD 000011ff: PUSH3 0x461bcd 00001203: PUSH1 0xe5 00001205: SHL 00001206: DUP2 00001207: MSTORE 00001208: PUSH1 0x04 0000120a: ADD 0000120b: PUSH2 0x056f 0000120e: SWAP1 0000120f: PUSH2 0x188c 00001212: JUMP 00001213: JUMPDEST 00001214: PUSH1 0x00 00001216: DUP1 00001217: SLOAD 00001218: PUSH1 0x01 0000121a: PUSH1 0x01 0000121c: PUSH1 0xa0 0000121e: SHL 0000121f: SUB 00001220: NOT 00001221: AND 00001222: PUSH1 0x01 00001224: PUSH1 0x01 00001226: PUSH1 0xa0 00001228: SHL 00001229: SUB 0000122a: DUP4 0000122b: AND 0000122c: OR 0000122d: SWAP1 0000122e: SSTORE 0000122f: PUSH1 0x40 00001231: DUP1 00001232: MLOAD 00001233: DUP1 00001234: DUP3 00001235: ADD 00001236: SWAP1 00001237: SWAP2 00001238: MSTORE 00001239: PUSH1 0x05 0000123b: DUP1 0000123c: DUP3 0000123d: MSTORE 0000123e: PUSH32 0x352e332e30000000000000000000000000000000000000000000000000000000 0000125f: PUSH1 0x20 00001261: SWAP1 00001262: SWAP3 00001263: ADD 00001264: SWAP2 00001265: DUP3 00001266: MSTORE 00001267: PUSH2 0x1272 0000126a: SWAP2 0000126b: PUSH1 0x01 0000126d: SWAP2 0000126e: PUSH2 0x1458 00001271: JUMP 00001272: JUMPDEST 00001273: POP 00001274: POP 00001275: JUMP 00001276: JUMPDEST 00001277: PUSH1 0x00 00001279: SLOAD 0000127a: PUSH1 0x01 0000127c: PUSH1 0x01 0000127e: PUSH1 0xa0 00001280: SHL 00001281: SUB 00001282: AND 00001283: CALLER 00001284: EQ 00001285: PUSH2 0x12a0 00001288: JUMPI 00001289: PUSH1 0x40 0000128b: MLOAD 0000128c: PUSH3 0x461bcd 00001290: PUSH1 0xe5 00001292: SHL 00001293: DUP2 00001294: MSTORE 00001295: PUSH1 0x04 00001297: ADD 00001298: PUSH2 0x056f 0000129b: SWAP1 0000129c: PUSH2 0x1a59 0000129f: JUMP 000012a0: JUMPDEST 000012a1: DUP1 000012a2: PUSH2 0x12a9 000012a5: PUSH2 0x13a4 000012a8: JUMP 000012a9: JUMPDEST 000012aa: DUP1 000012ab: SLOAD 000012ac: SWAP2 000012ad: ISZERO 000012ae: ISZERO 000012af: PUSH1 0x01 000012b1: PUSH1 0xa0 000012b3: SHL 000012b4: MUL 000012b5: PUSH1 0xff 000012b7: PUSH1 0xa0 000012b9: SHL 000012ba: NOT 000012bb: SWAP1 000012bc: SWAP3 000012bd: AND 000012be: SWAP2 000012bf: SWAP1 000012c0: SWAP2 000012c1: OR 000012c2: SWAP1 000012c3: SSTORE 000012c4: PUSH1 0x40 000012c6: MLOAD 000012c7: PUSH32 0x85600615329dbd38415d95ab88a1870aa23283ed03ea8339bbaf7c53cb6889eb 000012e8: SWAP1 000012e9: PUSH2 0x0987 000012ec: SWAP1 000012ed: DUP4 000012ee: SWAP1 000012ef: PUSH2 0x186e 000012f2: JUMP 000012f3: JUMPDEST 000012f4: PUSH2 0x12fb 000012f7: PUSH2 0x0fc3 000012fa: JUMP 000012fb: JUMPDEST 000012fc: PUSH2 0x1317 000012ff: JUMPI 00001300: PUSH1 0x40 00001302: MLOAD 00001303: PUSH3 0x461bcd 00001307: PUSH1 0xe5 00001309: SHL 0000130a: DUP2 0000130b: MSTORE 0000130c: PUSH1 0x04 0000130e: ADD 0000130f: PUSH2 0x056f 00001312: SWAP1 00001313: PUSH2 0x1a90 00001316: JUMP 00001317: JUMPDEST 00001318: PUSH1 0x00 0000131a: PUSH2 0x0bed 0000131d: PUSH2 0x0fb9 00001320: JUMP 00001321: JUMPDEST 00001322: PUSH1 0x00 00001324: SLOAD 00001325: PUSH1 0x01 00001327: PUSH1 0x01 00001329: PUSH1 0xa0 0000132b: SHL 0000132c: SUB 0000132d: AND 0000132e: CALLER 0000132f: EQ 00001330: PUSH2 0x134b 00001333: JUMPI 00001334: PUSH1 0x40 00001336: MLOAD 00001337: PUSH3 0x461bcd 0000133b: PUSH1 0xe5 0000133d: SHL 0000133e: DUP2 0000133f: MSTORE 00001340: PUSH1 0x04 00001342: ADD 00001343: PUSH2 0x056f 00001346: SWAP1 00001347: PUSH2 0x1a59 0000134a: JUMP 0000134b: JUMPDEST 0000134c: DUP1 0000134d: PUSH2 0x1354 00001350: PUSH2 0x1410 00001353: JUMP 00001354: JUMPDEST 00001355: DUP1 00001356: SLOAD 00001357: SWAP2 00001358: ISZERO 00001359: ISZERO 0000135a: PUSH1 0x01 0000135c: PUSH1 0xa0 0000135e: SHL 0000135f: MUL 00001360: PUSH1 0xff 00001362: PUSH1 0xa0 00001364: SHL 00001365: NOT 00001366: SWAP1 00001367: SWAP3 00001368: AND 00001369: SWAP2 0000136a: SWAP1 0000136b: SWAP2 0000136c: OR 0000136d: SWAP1 0000136e: SSTORE 0000136f: PUSH1 0x40 00001371: MLOAD 00001372: PUSH32 0xf39273fb8850aade529594fa8aa09c79be1dd5d16a8cff2c20496e048539e418 00001393: SWAP1 00001394: PUSH2 0x0987 00001397: SWAP1 00001398: DUP4 00001399: SWAP1 0000139a: PUSH2 0x186e 0000139d: JUMP 0000139e: JUMPDEST 0000139f: PUSH1 0x00 000013a1: PUSH2 0x0af4 000013a4: JUMPDEST 000013a5: PUSH32 0x857df08bd185dc66e3cc5e11acb4e1dd65290f3fee6426f52f84e8faccf229cf 000013c6: SWAP1 000013c7: JUMP 000013c8: JUMPDEST 000013c9: PUSH32 0xbf49677e3150252dfa801a673d2d5ec21eaa360a4674864e55e79041e3f65a6b 000013ea: SWAP1 000013eb: JUMP 000013ec: JUMPDEST 000013ed: PUSH32 0x8f135983375ba6442123d61647e7325c1753eabc2e038e44d3b888a970def89a 0000140e: SWAP1 0000140f: JUMP 00001410: JUMPDEST 00001411: PUSH32 0xd5f1768ede616e352f32123fd6fe01064898ae4e55a2678c79b8ad79680ff744 00001432: SWAP1 00001433: JUMP 00001434: JUMPDEST 00001435: PUSH32 0xf1a59a985b4002cdf0db464f05bed7182ee06372a999d820ea1883b8bf067ce5 00001456: SWAP1 00001457: JUMP 00001458: JUMPDEST 00001459: DUP3 0000145a: DUP1 0000145b: SLOAD 0000145c: PUSH1 0x01 0000145e: DUP2 0000145f: PUSH1 0x01 00001461: AND 00001462: ISZERO 00001463: PUSH2 0x0100 00001466: MUL 00001467: SUB 00001468: AND 00001469: PUSH1 0x02 0000146b: SWAP1 0000146c: DIV 0000146d: SWAP1 0000146e: PUSH1 0x00 00001470: MSTORE 00001471: PUSH1 0x20 00001473: PUSH1 0x00 00001475: KECCAK256 00001476: SWAP1 00001477: PUSH1 0x1f 00001479: ADD 0000147a: PUSH1 0x20 0000147c: SWAP1 0000147d: DIV 0000147e: DUP2 0000147f: ADD 00001480: SWAP3 00001481: DUP3 00001482: PUSH2 0x148e 00001485: JUMPI 00001486: PUSH1 0x00 00001488: DUP6 00001489: SSTORE 0000148a: PUSH2 0x14d4 0000148d: JUMP 0000148e: JUMPDEST 0000148f: DUP3 00001490: PUSH1 0x1f 00001492: LT 00001493: PUSH2 0x14a7 00001496: JUMPI 00001497: DUP1 00001498: MLOAD 00001499: PUSH1 0xff 0000149b: NOT 0000149c: AND 0000149d: DUP4 0000149e: DUP1 0000149f: ADD 000014a0: OR 000014a1: DUP6 000014a2: SSTORE 000014a3: PUSH2 0x14d4 000014a6: JUMP 000014a7: JUMPDEST 000014a8: DUP3 000014a9: DUP1 000014aa: ADD 000014ab: PUSH1 0x01 000014ad: ADD 000014ae: DUP6 000014af: SSTORE 000014b0: DUP3 000014b1: ISZERO 000014b2: PUSH2 0x14d4 000014b5: JUMPI 000014b6: SWAP2 000014b7: DUP3 000014b8: ADD 000014b9: JUMPDEST 000014ba: DUP3 000014bb: DUP2 000014bc: GT 000014bd: ISZERO 000014be: PUSH2 0x14d4 000014c1: JUMPI 000014c2: DUP3 000014c3: MLOAD 000014c4: DUP3 000014c5: SSTORE 000014c6: SWAP2 000014c7: PUSH1 0x20 000014c9: ADD 000014ca: SWAP2 000014cb: SWAP1 000014cc: PUSH1 0x01 000014ce: ADD 000014cf: SWAP1 000014d0: PUSH2 0x14b9 000014d3: JUMP 000014d4: JUMPDEST 000014d5: POP 000014d6: PUSH2 0x14e0 000014d9: SWAP3 000014da: SWAP2 000014db: POP 000014dc: PUSH2 0x14e4 000014df: JUMP 000014e0: JUMPDEST 000014e1: POP 000014e2: SWAP1 000014e3: JUMP 000014e4: JUMPDEST 000014e5: JUMPDEST 000014e6: DUP1 000014e7: DUP3 000014e8: GT 000014e9: ISZERO 000014ea: PUSH2 0x14e0 000014ed: JUMPI 000014ee: PUSH1 0x00 000014f0: DUP2 000014f1: SSTORE 000014f2: PUSH1 0x01 000014f4: ADD 000014f5: PUSH2 0x14e5 000014f8: JUMP 000014f9: JUMPDEST 000014fa: DUP1 000014fb: CALLDATALOAD 000014fc: PUSH1 0x01 000014fe: PUSH1 0x01 00001500: PUSH1 0xa0 00001502: SHL 00001503: SUB 00001504: DUP2 00001505: AND 00001506: DUP2 00001507: EQ 00001508: PUSH2 0x1510 0000150b: JUMPI 0000150c: PUSH1 0x00 0000150e: DUP1 0000150f: REVERT 00001510: JUMPDEST 00001511: SWAP2 00001512: SWAP1 00001513: POP 00001514: JUMP 00001515: JUMPDEST 00001516: DUP1 00001517: CALLDATALOAD 00001518: DUP1 00001519: ISZERO 0000151a: ISZERO 0000151b: DUP2 0000151c: EQ 0000151d: PUSH2 0x1510 00001520: JUMPI 00001521: PUSH1 0x00 00001523: DUP1 00001524: REVERT 00001525: JUMPDEST 00001526: PUSH1 0x00 00001528: PUSH1 0x20 0000152a: DUP3 0000152b: DUP5 0000152c: SUB 0000152d: SLT 0000152e: ISZERO 0000152f: PUSH2 0x1536 00001532: JUMPI 00001533: DUP1 00001534: DUP2 00001535: REVERT 00001536: JUMPDEST 00001537: PUSH2 0x153f 0000153a: DUP3 0000153b: PUSH2 0x14f9 0000153e: JUMP 0000153f: JUMPDEST 00001540: SWAP4 00001541: SWAP3 00001542: POP 00001543: POP 00001544: POP 00001545: JUMP 00001546: JUMPDEST 00001547: PUSH1 0x00 00001549: DUP1 0000154a: PUSH1 0x40 0000154c: DUP4 0000154d: DUP6 0000154e: SUB 0000154f: SLT 00001550: ISZERO 00001551: PUSH2 0x1558 00001554: JUMPI 00001555: DUP1 00001556: DUP2 00001557: REVERT 00001558: JUMPDEST 00001559: PUSH2 0x1561 0000155c: DUP4 0000155d: PUSH2 0x14f9 00001560: JUMP 00001561: JUMPDEST 00001562: SWAP2 00001563: POP 00001564: PUSH2 0x156f 00001567: PUSH1 0x20 00001569: DUP5 0000156a: ADD 0000156b: PUSH2 0x1515 0000156e: JUMP 0000156f: JUMPDEST 00001570: SWAP1 00001571: POP 00001572: SWAP3 00001573: POP 00001574: SWAP3 00001575: SWAP1 00001576: POP 00001577: JUMP 00001578: JUMPDEST 00001579: PUSH1 0x00 0000157b: DUP1 0000157c: PUSH1 0x00 0000157e: PUSH1 0x40 00001580: DUP5 00001581: DUP7 00001582: SUB 00001583: SLT 00001584: ISZERO 00001585: PUSH2 0x158c 00001588: JUMPI 00001589: DUP1 0000158a: DUP2 0000158b: REVERT 0000158c: JUMPDEST 0000158d: DUP4 0000158e: CALLDATALOAD 0000158f: PUSH8 0xffffffffffffffff 00001598: DUP1 00001599: DUP3 0000159a: GT 0000159b: ISZERO 0000159c: PUSH2 0x15a3 0000159f: JUMPI 000015a0: DUP3 000015a1: DUP4 000015a2: REVERT 000015a3: JUMPDEST 000015a4: DUP2 000015a5: DUP7 000015a6: ADD 000015a7: SWAP2 000015a8: POP 000015a9: DUP7 000015aa: PUSH1 0x1f 000015ac: DUP4 000015ad: ADD 000015ae: SLT 000015af: PUSH2 0x15b6 000015b2: JUMPI 000015b3: DUP3 000015b4: DUP4 000015b5: REVERT 000015b6: JUMPDEST 000015b7: DUP2 000015b8: CALLDATALOAD 000015b9: DUP2 000015ba: DUP2 000015bb: GT 000015bc: ISZERO 000015bd: PUSH2 0x15c4 000015c0: JUMPI 000015c1: DUP4 000015c2: DUP5 000015c3: REVERT 000015c4: JUMPDEST 000015c5: DUP8 000015c6: PUSH1 0x20 000015c8: DUP1 000015c9: DUP4 000015ca: MUL 000015cb: DUP6 000015cc: ADD 000015cd: ADD 000015ce: GT 000015cf: ISZERO 000015d0: PUSH2 0x15d7 000015d3: JUMPI 000015d4: DUP4 000015d5: DUP5 000015d6: REVERT 000015d7: JUMPDEST 000015d8: PUSH1 0x20 000015da: SWAP3 000015db: DUP4 000015dc: ADD 000015dd: SWAP6 000015de: POP 000015df: SWAP4 000015e0: POP 000015e1: PUSH2 0x15ed 000015e4: SWAP2 000015e5: DUP7 000015e6: ADD 000015e7: SWAP1 000015e8: POP 000015e9: PUSH2 0x1515 000015ec: JUMP 000015ed: JUMPDEST 000015ee: SWAP1 000015ef: POP 000015f0: SWAP3 000015f1: POP 000015f2: SWAP3 000015f3: POP 000015f4: SWAP3 000015f5: JUMP 000015f6: JUMPDEST 000015f7: PUSH1 0x00 000015f9: PUSH1 0x20 000015fb: DUP3 000015fc: DUP5 000015fd: SUB 000015fe: SLT 000015ff: ISZERO 00001600: PUSH2 0x1607 00001603: JUMPI 00001604: DUP1 00001605: DUP2 00001606: REVERT 00001607: JUMPDEST 00001608: PUSH2 0x153f 0000160b: DUP3 0000160c: PUSH2 0x1515 0000160f: JUMP 00001610: JUMPDEST 00001611: PUSH1 0x00 00001613: DUP1 00001614: PUSH1 0x20 00001616: DUP4 00001617: DUP6 00001618: SUB 00001619: SLT 0000161a: ISZERO 0000161b: PUSH2 0x1622 0000161e: JUMPI 0000161f: DUP2 00001620: DUP3 00001621: REVERT 00001622: JUMPDEST 00001623: DUP3 00001624: CALLDATALOAD 00001625: PUSH8 0xffffffffffffffff 0000162e: DUP1 0000162f: DUP3 00001630: GT 00001631: ISZERO 00001632: PUSH2 0x1639 00001635: JUMPI 00001636: DUP4 00001637: DUP5 00001638: REVERT 00001639: JUMPDEST 0000163a: DUP2 0000163b: DUP6 0000163c: ADD 0000163d: SWAP2 0000163e: POP 0000163f: DUP6 00001640: PUSH1 0x1f 00001642: DUP4 00001643: ADD 00001644: SLT 00001645: PUSH2 0x164c 00001648: JUMPI 00001649: DUP4 0000164a: DUP5 0000164b: REVERT 0000164c: JUMPDEST 0000164d: DUP2 0000164e: CALLDATALOAD 0000164f: DUP2 00001650: DUP2 00001651: GT 00001652: ISZERO 00001653: PUSH2 0x165a 00001656: JUMPI 00001657: DUP5 00001658: DUP6 00001659: REVERT 0000165a: JUMPDEST 0000165b: DUP7 0000165c: PUSH1 0x20 0000165e: DUP3 0000165f: DUP6 00001660: ADD 00001661: ADD 00001662: GT 00001663: ISZERO 00001664: PUSH2 0x166b 00001667: JUMPI 00001668: DUP5 00001669: DUP6 0000166a: REVERT 0000166b: JUMPDEST 0000166c: PUSH1 0x20 0000166e: SWAP3 0000166f: SWAP1 00001670: SWAP3 00001671: ADD 00001672: SWAP7 00001673: SWAP2 00001674: SWAP6 00001675: POP 00001676: SWAP1 00001677: SWAP4 00001678: POP 00001679: POP 0000167a: POP 0000167b: POP 0000167c: JUMP 0000167d: JUMPDEST 0000167e: PUSH1 0x00 00001680: PUSH1 0x20 00001682: DUP3 00001683: DUP5 00001684: SUB 00001685: SLT 00001686: ISZERO 00001687: PUSH2 0x168e 0000168a: JUMPI 0000168b: DUP1 0000168c: DUP2 0000168d: REVERT 0000168e: JUMPDEST 0000168f: DUP2 00001690: MLOAD 00001691: PUSH8 0xffffffffffffffff 0000169a: DUP1 0000169b: DUP3 0000169c: GT 0000169d: ISZERO 0000169e: PUSH2 0x16a5 000016a1: JUMPI 000016a2: DUP3 000016a3: DUP4 000016a4: REVERT 000016a5: JUMPDEST 000016a6: DUP2 000016a7: DUP5 000016a8: ADD 000016a9: SWAP2 000016aa: POP 000016ab: DUP5 000016ac: PUSH1 0x1f 000016ae: DUP4 000016af: ADD 000016b0: SLT 000016b1: PUSH2 0x16b8 000016b4: JUMPI 000016b5: DUP3 000016b6: DUP4 000016b7: REVERT 000016b8: JUMPDEST 000016b9: DUP2 000016ba: MLOAD 000016bb: DUP2 000016bc: DUP2 000016bd: GT 000016be: ISZERO 000016bf: PUSH2 0x16c4 000016c2: JUMPI 000016c3: INVALID 000016c4: JUMPDEST 000016c5: PUSH1 0x40 000016c7: MLOAD 000016c8: PUSH1 0x1f 000016ca: DUP3 000016cb: ADD 000016cc: PUSH1 0x1f 000016ce: NOT 000016cf: AND 000016d0: DUP2 000016d1: ADD 000016d2: PUSH1 0x20 000016d4: ADD 000016d5: DUP4 000016d6: DUP2 000016d7: GT 000016d8: DUP3 000016d9: DUP3 000016da: LT 000016db: OR 000016dc: ISZERO 000016dd: PUSH2 0x16e2 000016e0: JUMPI 000016e1: INVALID 000016e2: JUMPDEST 000016e3: PUSH1 0x40 000016e5: MSTORE 000016e6: DUP2 000016e7: DUP2 000016e8: MSTORE 000016e9: DUP4 000016ea: DUP3 000016eb: ADD 000016ec: PUSH1 0x20 000016ee: ADD 000016ef: DUP8 000016f0: LT 000016f1: ISZERO 000016f2: PUSH2 0x16f9 000016f5: JUMPI 000016f6: DUP5 000016f7: DUP6 000016f8: REVERT 000016f9: JUMPDEST 000016fa: PUSH2 0x170a 000016fd: DUP3 000016fe: PUSH1 0x20 00001700: DUP4 00001701: ADD 00001702: PUSH1 0x20 00001704: DUP8 00001705: ADD 00001706: PUSH2 0x1b91 00001709: JUMP 0000170a: JUMPDEST 0000170b: SWAP7 0000170c: SWAP6 0000170d: POP 0000170e: POP 0000170f: POP 00001710: POP 00001711: POP 00001712: POP 00001713: JUMP 00001714: JUMPDEST 00001715: PUSH1 0x00 00001717: DUP2 00001718: MLOAD 00001719: DUP1 0000171a: DUP5 0000171b: MSTORE 0000171c: PUSH2 0x172c 0000171f: DUP2 00001720: PUSH1 0x20 00001722: DUP7 00001723: ADD 00001724: PUSH1 0x20 00001726: DUP7 00001727: ADD 00001728: PUSH2 0x1b91 0000172b: JUMP 0000172c: JUMPDEST 0000172d: PUSH1 0x1f 0000172f: ADD 00001730: PUSH1 0x1f 00001732: NOT 00001733: AND 00001734: SWAP3 00001735: SWAP1 00001736: SWAP3 00001737: ADD 00001738: PUSH1 0x20 0000173a: ADD 0000173b: SWAP3 0000173c: SWAP2 0000173d: POP 0000173e: POP 0000173f: JUMP 00001740: JUMPDEST 00001741: PUSH1 0x00 00001743: DUP3 00001744: DUP5 00001745: DUP4 00001746: CALLDATACOPY 00001747: SWAP2 00001748: ADD 00001749: SWAP1 0000174a: DUP2 0000174b: MSTORE 0000174c: SWAP2 0000174d: SWAP1 0000174e: POP 0000174f: JUMP 00001750: JUMPDEST 00001751: PUSH1 0x00 00001753: DUP1 00001754: DUP4 00001755: SLOAD 00001756: PUSH1 0x01 00001758: DUP1 00001759: DUP3 0000175a: AND 0000175b: PUSH1 0x00 0000175d: DUP2 0000175e: EQ 0000175f: PUSH2 0x176f 00001762: JUMPI 00001763: PUSH1 0x01 00001765: DUP2 00001766: EQ 00001767: PUSH2 0x1786 0000176a: JUMPI 0000176b: PUSH2 0x17b5 0000176e: JUMP 0000176f: JUMPDEST 00001770: PUSH1 0xff 00001772: NOT 00001773: DUP4 00001774: AND 00001775: DUP7 00001776: MSTORE 00001777: PUSH1 0x02 00001779: DUP4 0000177a: DIV 0000177b: PUSH1 0x7f 0000177d: AND 0000177e: DUP7 0000177f: ADD 00001780: SWAP4 00001781: POP 00001782: PUSH2 0x17b5 00001785: JUMP 00001786: JUMPDEST 00001787: PUSH1 0x02 00001789: DUP4 0000178a: DIV 0000178b: DUP8 0000178c: DUP7 0000178d: MSTORE 0000178e: PUSH1 0x20 00001790: DUP1 00001791: DUP8 00001792: KECCAK256 00001793: DUP8 00001794: JUMPDEST 00001795: DUP4 00001796: DUP2 00001797: LT 00001798: ISZERO 00001799: PUSH2 0x17ad 0000179c: JUMPI 0000179d: DUP2 0000179e: SLOAD 0000179f: DUP11 000017a0: DUP3 000017a1: ADD 000017a2: MSTORE 000017a3: SWAP1 000017a4: DUP6 000017a5: ADD 000017a6: SWAP1 000017a7: DUP3 000017a8: ADD 000017a9: PUSH2 0x1794 000017ac: JUMP 000017ad: JUMPDEST 000017ae: POP 000017af: POP 000017b0: POP 000017b1: DUP7 000017b2: ADD 000017b3: SWAP4 000017b4: POP 000017b5: JUMPDEST 000017b6: POP 000017b7: SWAP2 000017b8: SWAP6 000017b9: SWAP5 000017ba: POP 000017bb: POP 000017bc: POP 000017bd: POP 000017be: POP 000017bf: JUMP 000017c0: JUMPDEST 000017c1: SWAP1 000017c2: JUMP 000017c3: JUMPDEST 000017c4: PUSH1 0x01 000017c6: PUSH1 0x01 000017c8: PUSH1 0xa0 000017ca: SHL 000017cb: SUB 000017cc: SWAP2 000017cd: SWAP1 000017ce: SWAP2 000017cf: AND 000017d0: DUP2 000017d1: MSTORE 000017d2: PUSH1 0x20 000017d4: ADD 000017d5: SWAP1 000017d6: JUMP 000017d7: JUMPDEST 000017d8: PUSH1 0x40 000017da: DUP1 000017db: DUP3 000017dc: MSTORE 000017dd: DUP4 000017de: MLOAD 000017df: SWAP1 000017e0: DUP3 000017e1: ADD 000017e2: DUP2 000017e3: SWAP1 000017e4: MSTORE 000017e5: PUSH1 0x00 000017e7: SWAP1 000017e8: PUSH1 0x20 000017ea: SWAP1 000017eb: PUSH1 0x60 000017ed: DUP5 000017ee: ADD 000017ef: SWAP1 000017f0: DUP3 000017f1: DUP8 000017f2: ADD 000017f3: DUP5 000017f4: JUMPDEST 000017f5: DUP3 000017f6: DUP2 000017f7: LT 000017f8: ISZERO 000017f9: PUSH2 0x1812 000017fc: JUMPI 000017fd: DUP2 000017fe: MLOAD 000017ff: ISZERO 00001800: ISZERO 00001801: DUP5 00001802: MSTORE 00001803: SWAP3 00001804: DUP5 00001805: ADD 00001806: SWAP3 00001807: SWAP1 00001808: DUP5 00001809: ADD 0000180a: SWAP1 0000180b: PUSH1 0x01 0000180d: ADD 0000180e: PUSH2 0x17f4 00001811: JUMP 00001812: JUMPDEST 00001813: POP 00001814: POP 00001815: POP 00001816: DUP4 00001817: DUP2 00001818: SUB 00001819: DUP3 0000181a: DUP6 0000181b: ADD 0000181c: MSTORE 0000181d: DUP5 0000181e: MLOAD 0000181f: DUP1 00001820: DUP3 00001821: MSTORE 00001822: DUP3 00001823: DUP3 00001824: ADD 00001825: SWAP1 00001826: DUP1 00001827: DUP5 00001828: MUL 00001829: DUP4 0000182a: ADD 0000182b: DUP5 0000182c: ADD 0000182d: DUP8 0000182e: DUP6 0000182f: ADD 00001830: DUP7 00001831: JUMPDEST 00001832: DUP4 00001833: DUP2 00001834: LT 00001835: ISZERO 00001836: PUSH2 0x185f 00001839: JUMPI 0000183a: PUSH1 0x1f 0000183c: NOT 0000183d: DUP7 0000183e: DUP5 0000183f: SUB 00001840: ADD 00001841: DUP6 00001842: MSTORE 00001843: PUSH2 0x184d 00001846: DUP4 00001847: DUP4 00001848: MLOAD 00001849: PUSH2 0x1714 0000184c: JUMP 0000184d: JUMPDEST 0000184e: SWAP5 0000184f: DUP8 00001850: ADD 00001851: SWAP5 00001852: SWAP3 00001853: POP 00001854: SWAP1 00001855: DUP7 00001856: ADD 00001857: SWAP1 00001858: PUSH1 0x01 0000185a: ADD 0000185b: PUSH2 0x1831 0000185e: JUMP 0000185f: JUMPDEST 00001860: POP 00001861: SWAP1 00001862: SWAP10 00001863: SWAP9 00001864: POP 00001865: POP 00001866: POP 00001867: POP 00001868: POP 00001869: POP 0000186a: POP 0000186b: POP 0000186c: POP 0000186d: JUMP 0000186e: JUMPDEST 0000186f: SWAP1 00001870: ISZERO 00001871: ISZERO 00001872: DUP2 00001873: MSTORE 00001874: PUSH1 0x20 00001876: ADD 00001877: SWAP1 00001878: JUMP 00001879: JUMPDEST 0000187a: PUSH1 0x00 0000187c: PUSH1 0x20 0000187e: DUP3 0000187f: MSTORE 00001880: PUSH2 0x153f 00001883: PUSH1 0x20 00001885: DUP4 00001886: ADD 00001887: DUP5 00001888: PUSH2 0x1714 0000188b: JUMP 0000188c: JUMPDEST 0000188d: PUSH1 0x20 0000188f: DUP1 00001890: DUP3 00001891: MSTORE 00001892: PUSH1 0x2b 00001894: SWAP1 00001895: DUP3 00001896: ADD 00001897: MSTORE 00001898: PUSH32 0x5573657250726f78793a206f70657261746f722063616e206e6f74206265207a 000018b9: PUSH1 0x40 000018bb: DUP3 000018bc: ADD 000018bd: MSTORE 000018be: PUSH32 0x65726f2061646472657373000000000000000000000000000000000000000000 000018df: PUSH1 0x60 000018e1: DUP3 000018e2: ADD 000018e3: MSTORE 000018e4: PUSH1 0x80 000018e6: ADD 000018e7: SWAP1 000018e8: JUMP 000018e9: JUMPDEST 000018ea: PUSH1 0x20 000018ec: DUP1 000018ed: DUP3 000018ee: MSTORE 000018ef: PUSH1 0x22 000018f1: SWAP1 000018f2: DUP3 000018f3: ADD 000018f4: MSTORE 000018f5: PUSH32 0x5573657250726f78793a204c696d6974204f726465722069732064697361626c 00001916: PUSH1 0x40 00001918: DUP3 00001919: ADD 0000191a: MSTORE 0000191b: PUSH32 0x6564000000000000000000000000000000000000000000000000000000000000 0000193c: PUSH1 0x60 0000193e: DUP3 0000193f: ADD 00001940: MSTORE 00001941: PUSH1 0x80 00001943: ADD 00001944: SWAP1 00001945: JUMP 00001946: JUMPDEST 00001947: PUSH1 0x20 00001949: DUP1 0000194a: DUP3 0000194b: MSTORE 0000194c: PUSH1 0x13 0000194e: SWAP1 0000194f: DUP3 00001950: ADD 00001951: MSTORE 00001952: PUSH32 0x5573657250726f78793a206f6e6c7920454f4100000000000000000000000000 00001973: PUSH1 0x40 00001975: DUP3 00001976: ADD 00001977: MSTORE 00001978: PUSH1 0x60 0000197a: ADD 0000197b: SWAP1 0000197c: JUMP 0000197d: JUMPDEST 0000197e: PUSH1 0x20 00001980: DUP1 00001981: DUP3 00001982: MSTORE 00001983: PUSH1 0x1c 00001985: SWAP1 00001986: DUP3 00001987: ADD 00001988: MSTORE 00001989: PUSH32 0x5573657250726f78793a2052465176322069732064697361626c656400000000 000019aa: PUSH1 0x40 000019ac: DUP3 000019ad: ADD 000019ae: MSTORE 000019af: PUSH1 0x60 000019b1: ADD 000019b2: SWAP1 000019b3: JUMP 000019b4: JUMPDEST 000019b5: PUSH1 0x20 000019b7: DUP1 000019b8: DUP3 000019b9: MSTORE 000019ba: PUSH1 0x1a 000019bc: SWAP1 000019bd: DUP3 000019be: ADD 000019bf: MSTORE 000019c0: PUSH32 0x5573657250726f78793a20504d4d2069732064697361626c6564000000000000 000019e1: PUSH1 0x40 000019e3: DUP3 000019e4: ADD 000019e5: MSTORE 000019e6: PUSH1 0x60 000019e8: ADD 000019e9: SWAP1 000019ea: JUMP 000019eb: JUMPDEST 000019ec: PUSH1 0x20 000019ee: DUP1 000019ef: DUP3 000019f0: MSTORE 000019f1: PUSH1 0x18 000019f3: SWAP1 000019f4: DUP3 000019f5: ADD 000019f6: MSTORE 000019f7: PUSH32 0x5573657250726f78793a206e6f74206e6f6d696e617465640000000000000000 00001a18: PUSH1 0x40 00001a1a: DUP3 00001a1b: ADD 00001a1c: MSTORE 00001a1d: PUSH1 0x60 00001a1f: ADD 00001a20: SWAP1 00001a21: JUMP 00001a22: JUMPDEST 00001a23: PUSH1 0x20 00001a25: DUP1 00001a26: DUP3 00001a27: MSTORE 00001a28: PUSH1 0x1a 00001a2a: SWAP1 00001a2b: DUP3 00001a2c: ADD 00001a2d: MSTORE 00001a2e: PUSH32 0x5573657250726f78793a205246512069732064697361626c6564000000000000 00001a4f: PUSH1 0x40 00001a51: DUP3 00001a52: ADD 00001a53: MSTORE 00001a54: PUSH1 0x60 00001a56: ADD 00001a57: SWAP1 00001a58: JUMP 00001a59: JUMPDEST 00001a5a: PUSH1 0x20 00001a5c: DUP1 00001a5d: DUP3 00001a5e: MSTORE 00001a5f: PUSH1 0x1b 00001a61: SWAP1 00001a62: DUP3 00001a63: ADD 00001a64: MSTORE 00001a65: PUSH32 0x5573657250726f78793a206e6f7420746865206f70657261746f720000000000 00001a86: PUSH1 0x40 00001a88: DUP3 00001a89: ADD 00001a8a: MSTORE 00001a8b: PUSH1 0x60 00001a8d: ADD 00001a8e: SWAP1 00001a8f: JUMP 00001a90: JUMPDEST 00001a91: PUSH1 0x20 00001a93: DUP1 00001a94: DUP3 00001a95: MSTORE 00001a96: PUSH1 0x1a 00001a98: SWAP1 00001a99: DUP3 00001a9a: ADD 00001a9b: MSTORE 00001a9c: PUSH32 0x5573657250726f78793a20414d4d2069732064697361626c6564000000000000 00001abd: PUSH1 0x40 00001abf: DUP3 00001ac0: ADD 00001ac1: MSTORE 00001ac2: PUSH1 0x60 00001ac4: ADD 00001ac5: SWAP1 00001ac6: JUMP 00001ac7: JUMPDEST 00001ac8: PUSH1 0x20 00001aca: DUP1 00001acb: DUP3 00001acc: MSTORE 00001acd: PUSH1 0x23 00001acf: SWAP1 00001ad0: DUP3 00001ad1: ADD 00001ad2: MSTORE 00001ad3: PUSH32 0x5573657250726f78793a206e6f7420757067726164696e672066726f6d20656d 00001af4: PUSH1 0x40 00001af6: DUP3 00001af7: ADD 00001af8: MSTORE 00001af9: PUSH32 0x7074790000000000000000000000000000000000000000000000000000000000 00001b1a: PUSH1 0x60 00001b1c: DUP3 00001b1d: ADD 00001b1e: MSTORE 00001b1f: PUSH1 0x80 00001b21: ADD 00001b22: SWAP1 00001b23: JUMP 00001b24: JUMPDEST 00001b25: PUSH1 0x00 00001b27: DUP4 00001b28: DUP3 00001b29: MSTORE 00001b2a: PUSH1 0x40 00001b2c: PUSH1 0x20 00001b2e: DUP4 00001b2f: ADD 00001b30: MSTORE 00001b31: PUSH2 0x1b3d 00001b34: PUSH1 0x40 00001b36: DUP4 00001b37: ADD 00001b38: DUP5 00001b39: PUSH2 0x1714 00001b3c: JUMP 00001b3d: JUMPDEST 00001b3e: SWAP5 00001b3f: SWAP4 00001b40: POP 00001b41: POP 00001b42: POP 00001b43: POP 00001b44: JUMP 00001b45: JUMPDEST 00001b46: PUSH1 0x00 00001b48: DUP1 00001b49: DUP4 00001b4a: CALLDATALOAD 00001b4b: PUSH1 0x1e 00001b4d: NOT 00001b4e: DUP5 00001b4f: CALLDATASIZE 00001b50: SUB 00001b51: ADD 00001b52: DUP2 00001b53: SLT 00001b54: PUSH2 0x1b5b 00001b57: JUMPI 00001b58: DUP3 00001b59: DUP4 00001b5a: REVERT 00001b5b: JUMPDEST 00001b5c: DUP4 00001b5d: ADD 00001b5e: DUP1 00001b5f: CALLDATALOAD 00001b60: SWAP2 00001b61: POP 00001b62: PUSH8 0xffffffffffffffff 00001b6b: DUP3 00001b6c: GT 00001b6d: ISZERO 00001b6e: PUSH2 0x1b75 00001b71: JUMPI 00001b72: DUP3 00001b73: DUP4 00001b74: REVERT 00001b75: JUMPDEST 00001b76: PUSH1 0x20 00001b78: ADD 00001b79: SWAP2 00001b7a: POP 00001b7b: CALLDATASIZE 00001b7c: DUP2 00001b7d: SWAP1 00001b7e: SUB 00001b7f: DUP3 00001b80: SGT 00001b81: ISZERO 00001b82: PUSH2 0x1b8a 00001b85: JUMPI 00001b86: PUSH1 0x00 00001b88: DUP1 00001b89: REVERT 00001b8a: JUMPDEST 00001b8b: SWAP3 00001b8c: POP 00001b8d: SWAP3 00001b8e: SWAP1 00001b8f: POP 00001b90: JUMP 00001b91: JUMPDEST 00001b92: PUSH1 0x00 00001b94: JUMPDEST 00001b95: DUP4 00001b96: DUP2 00001b97: LT 00001b98: ISZERO 00001b99: PUSH2 0x1bac 00001b9c: JUMPI 00001b9d: DUP2 00001b9e: DUP2 00001b9f: ADD 00001ba0: MLOAD 00001ba1: DUP4 00001ba2: DUP3 00001ba3: ADD 00001ba4: MSTORE 00001ba5: PUSH1 0x20 00001ba7: ADD 00001ba8: PUSH2 0x1b94 00001bab: JUMP 00001bac: JUMPDEST 00001bad: DUP4 00001bae: DUP2 00001baf: GT 00001bb0: ISZERO 00001bb1: PUSH2 0x1bbb 00001bb4: JUMPI 00001bb5: PUSH1 0x00 00001bb7: DUP5 00001bb8: DUP5 00001bb9: ADD 00001bba: MSTORE 00001bbb: JUMPDEST 00001bbc: POP 00001bbd: POP 00001bbe: POP 00001bbf: POP 00001bc0: JUMP 00001bc1: INVALID 00001bc2: LOG2 00001bc3: PUSH5 0x6970667358 00001bc9: UNKNOWN(0x22) 00001bca: SLT 00001bcb: KECCAK256 00001bcc: PUSH20 0x472f6f5e79471eeaf04b2ff08bab94017e08b9a3 00001be1: PUSH27
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | access_control | codex | Unprotected initializer allows operator takeover | 85 | no | — |
viewevidence_json{
"evidence": "`initialize` is `external` with only a version-empty check and no access control.",
"locations": [
"contracts/UserProxy.sol:60"
],
"recommendation": "Protect `initialize` with an access control mechanism (e.g., only deployer or a trusted factory), or use a constructor-based initialization in non-proxy deployments. For proxies, adopt OpenZeppelin Initializable and restrict initialization to the admin, ensuring it is called in the same transaction as deployment.",
"exploit_scenario": "If the contract is deployed without immediately calling `initialize`, any account can call it first and set themselves as `operator`. The attacker can then upgrade AMM/PMM/RFQ/LimitOrder addresses to malicious contracts or disable routes, potentially redirecting user calls and funds."
}
|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x4ca2775f6cf5af1e438c26876afd0985b7f7e632ea10217742b182f11d2bafcf
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x4ca2775f6cf5af1e438c26876afd0985b7f7e632ea10217742b182f11d2bafcf",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xde83cd54",
"selector": "0xde83cd54",
"calldata_variants": [
"0xde83cd54",
"0xde83cd540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe47d166c",
"selector": "0xe47d166c",
"calldata_variants": [
"0xe47d166c",
"0xe47d166c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe5f23b16",
"selector": "0xe5f23b16",
"calldata_variants": [
"0xe5f23b16",
"0xe5f23b160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xec559084",
"selector": "0xec559084",
"calldata_variants": [
"0xec559084",
"0xec5590840000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbbd3f638",
"selector": "0xbbd3f638",
"calldata_variants": [
"0xbbd3f638",
"0xbbd3f6380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc37197d3",
"selector": "0xc37197d3",
"calldata_variants": [
"0xc37197d3",
"0xc37197d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3e92075",
"selector": "0xc3e92075",
"calldata_variants": [
"0xc3e92075",
"0xc3e920750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc4d66de8",
"selector": "0xc4d66de8",
"calldata_variants": [
"0xc4d66de8",
"0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1809,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 3015,
"type": "tx_origin_used"
},
{
"pc": 3211,
"type": "tx_origin_used"
},
{
"pc": 3775,
"type": "tx_origin_used"
},
{
"pc": 3852,
"type": "tx_origin_used"
},
{
"pc": 3014,
"type": "tx_origin_used"
},
{
"pc": 3210,
"type": "tx_origin_used"
},
{
"pc": 3774,
"type": "tx_origin_used"
},
{
"pc": 3851,
"type": "tx_origin_used"
}
],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| 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": "0xde83cd54",
"selector": "0xde83cd54",
"calldata_variants": [
"0xde83cd54",
"0xde83cd540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe47d166c",
"selector": "0xe47d166c",
"calldata_variants": [
"0xe47d166c",
"0xe47d166c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe5f23b16",
"selector": "0xe5f23b16",
"calldata_variants": [
"0xe5f23b16",
"0xe5f23b160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xec559084",
"selector": "0xec559084",
"calldata_variants": [
"0xec559084",
"0xec5590840000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbbd3f638",
"selector": "0xbbd3f638",
"calldata_variants": [
"0xbbd3f638",
"0xbbd3f6380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc37197d3",
"selector": "0xc37197d3",
"calldata_variants": [
"0xc37197d3",
"0xc37197d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3e92075",
"selector": "0xc3e92075",
"calldata_variants": [
"0xc3e92075",
"0xc3e920750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc4d66de8",
"selector": "0xc4d66de8",
"calldata_variants": [
"0xc4d66de8",
"0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 3015,
"type": "tx_origin_used"
},
{
"pc": 3211,
"type": "tx_origin_used"
},
{
"pc": 3775,
"type": "tx_origin_used"
},
{
"pc": 3852,
"type": "tx_origin_used"
},
{
"pc": 3014,
"type": "tx_origin_used"
},
{
"pc": 3210,
"type": "tx_origin_used"
},
{
"pc": 3774,
"type": "tx_origin_used"
},
{
"pc": 3851,
"type": "tx_origin_used"
}
]
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xb7d67c1756282b496e9f6176b3e5b9295889dcfc765403116c55383302b9a6ad
call_targets:
0x0b9f13ffab8448089f50073cf24bbe5c7bd8675a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xb7d67c1756282b496e9f6176b3e5b9295889dcfc765403116c55383302b9a6ad",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0b9f13ffab8448089f50073cf24bbe5c7bd8675a"
],
"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": "0xde83cd54",
"selector": "0xde83cd54",
"calldata_variants": [
"0xde83cd54",
"0xde83cd540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe47d166c",
"selector": "0xe47d166c",
"calldata_variants": [
"0xe47d166c",
"0xe47d166c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe5f23b16",
"selector": "0xe5f23b16",
"calldata_variants": [
"0xe5f23b16",
"0xe5f23b160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xec559084",
"selector": "0xec559084",
"calldata_variants": [
"0xec559084",
"0xec5590840000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbbd3f638",
"selector": "0xbbd3f638",
"calldata_variants": [
"0xbbd3f638",
"0xbbd3f6380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc37197d3",
"selector": "0xc37197d3",
"calldata_variants": [
"0xc37197d3",
"0xc37197d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3e92075",
"selector": "0xc3e92075",
"calldata_variants": [
"0xc3e92075",
"0xc3e920750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc4d66de8",
"selector": "0xc4d66de8",
"calldata_variants": [
"0xc4d66de8",
"0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3092,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3288,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 3015,
"type": "tx_origin_used"
},
{
"pc": 3211,
"type": "tx_origin_used"
},
{
"pc": 3775,
"type": "tx_origin_used"
},
{
"pc": 3852,
"type": "tx_origin_used"
},
{
"pc": 3014,
"type": "tx_origin_used"
},
{
"pc": 3210,
"type": "tx_origin_used"
},
{
"pc": 3774,
"type": "tx_origin_used"
},
{
"pc": 3851,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 2
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xb7d67c1756282b496e9f6176b3e5b9295889dcfc765403116c55383302b9a6ad
call_targets:
0x0b9f13ffab8448089f50073cf24bbe5c7bd8675a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xb7d67c1756282b496e9f6176b3e5b9295889dcfc765403116c55383302b9a6ad",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0b9f13ffab8448089f50073cf24bbe5c7bd8675a"
],
"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": "0xde83cd54",
"selector": "0xde83cd54",
"calldata_variants": [
"0xde83cd54",
"0xde83cd540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe47d166c",
"selector": "0xe47d166c",
"calldata_variants": [
"0xe47d166c",
"0xe47d166c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe5f23b16",
"selector": "0xe5f23b16",
"calldata_variants": [
"0xe5f23b16",
"0xe5f23b160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xec559084",
"selector": "0xec559084",
"calldata_variants": [
"0xec559084",
"0xec5590840000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbbd3f638",
"selector": "0xbbd3f638",
"calldata_variants": [
"0xbbd3f638",
"0xbbd3f6380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc37197d3",
"selector": "0xc37197d3",
"calldata_variants": [
"0xc37197d3",
"0xc37197d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3e92075",
"selector": "0xc3e92075",
"calldata_variants": [
"0xc3e92075",
"0xc3e920750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc4d66de8",
"selector": "0xc4d66de8",
"calldata_variants": [
"0xc4d66de8",
"0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3092,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3288,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": [
{
"pc": 3015,
"type": "tx_origin_used"
},
{
"pc": 3211,
"type": "tx_origin_used"
},
{
"pc": 3775,
"type": "tx_origin_used"
},
{
"pc": 3852,
"type": "tx_origin_used"
},
{
"pc": 3014,
"type": "tx_origin_used"
},
{
"pc": 3210,
"type": "tx_origin_used"
},
{
"pc": 3774,
"type": "tx_origin_used"
},
{
"pc": 3851,
"type": "tx_origin_used"
}
]
}
|