bb5b93eb-4200-4976-ba61-e903af632b89
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 |
|---|---|---|---|---|
| 30214 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 73468 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 73469 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 73470 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 73471 | capability.graph | complete | 1 / 3 | 1 week ago |
| 73472 | detector.run | complete | 1 / 3 | 1 week ago |
| 73473 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1125939] OpenAI Codex v0.77.0 (research preview)
[codex:1125939] --------
[codex:1125939] workdir: /tmp/codex-multi-5crzii37
[codex:1125939] model: gpt-5.2-codex
[codex:1125939] provider: openai
[codex:1125939] approval: never
[codex:1125939] sandbox: read-only
[codex:1125939] reasoning effort: xhigh
[codex:1125939] reasoning summaries: auto
[codex:1125939] session id: 019b61eb-fdbd-7843-b6ae-9b3b861e2bd3
[codex:1125939] --------
[codex:1125939] user
[codex:1125939] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1125939] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1125939] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1125939]
[codex:1125939] Scope rules:
[codex:1125939] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1125939] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1125939]
[codex:1125939] Output MUST be valid JSON matching the provided schema.
[codex:1125939] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1125939] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1125939]
[codex:1125939] Output constraints (IMPORTANT):
[codex:1125939] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1125939] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1125939] mcp startup: no servers
[codex:1125939]
[codex:1125939] thinking
[codex:1125939] **Preparing to read skill instructions**
[codex:1125939] exec
[codex:1125939] /bin/bash -lc ls in /tmp/codex-multi-5crzii37 succeeded in 6ms:
[codex:1125939] AUDIT_BUNDLE.txt
[codex:1125939] codex-output-schema.json
[codex:1125939] contracts
[codex:1125939]
[codex:1125939] thinking
[codex:1125939] **Reading AUDIT_BUNDLE.txt**
[codex:1125939] exec
[codex:1125939] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-5crzii37 succeeded in 5ms:
[codex:1125939] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1125939]
[codex:1125939] ================================================================================
[codex:1125939] FILE: contracts/@uniswap/lib/contracts/libraries/TransferHelper.sol
[codex:1125939] ================================================================================
[codex:1125939] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1125939]
[codex:1125939] pragma solidity >=0.6.0;
[codex:1125939]
[codex:1125939] // helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
[codex:1125939] library TransferHelper {
[codex:1125939] function safeApprove(
[codex:1125939] address token,
[codex:1125939] address to,
[codex:1125939] uint256 value
[codex:1125939] ) internal {
[codex:1125939] // bytes4(keccak256(bytes('approve(address,uint256)')));
[codex:1125939] (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
[codex:1125939] require(
[codex:1125939] success && (data.length == 0 || abi.decode(data, (bool))),
[codex:1125939]
[codex:1125939]
[codex:1125939] thinking
[codex:1125939] **Analyzing token wrapper vulnerabilities**
[codex:1125939] thinking
[codex:1125939] **Examining fee-on-transfer risk and pause bypass**
[codex:1125939]
[codex:1125939] I’m seeing a key issue where the wrapper mints tokens based on the requested amount without verifying the actual underlying received, which opens the door to economic loss when fee-on-transfer or rebasing tokens are wrapped. Attackers can exploit this to dilute backing and drain value from other depositors. There's also a gap where the pause mechanism used by the contract does not apply to the wrap and unwrap functions, potentially allowing token operations to continue during emergency stops. Both are notable concerns for how the contract manages accounting and access control.
[codex:1125939] exec
[codex:1125939] /bin/bash -lc 'nl -ba contracts/contracts/FewWrappedToken.sol' in /tmp/codex-multi-5crzii37 succeeded in 6ms:
[codex:1125939] 1 // SPDX-License-Identifier: BUSL-1.1
[codex:1125939] 2 pragma solidity =0.6.6;
[codex:1125939] 3
[codex:1125939] 4 import '@uniswap/lib/contracts/libraries/TransferHelper.sol';
[codex:1125939] 5
[codex:1125939] 6 import './interfaces/IFewWrappedToken.sol';
[codex:1125939] 7 import './libraries/SafeMath.sol';
[codex:1125939] 8 import './refs/ICoreRef.sol';
[codex:1125939] 9 import './interfaces/IFewFactory.sol';
[codex:1125939] 10
[codex:1125939] 11 /// @title Few Wrapped Token
[codex:1125939] 12 contract FewWrappedToken is IFewWrappedToken {
[codex:1125939] 13 using SafeMath for uint;
[codex:1125939] 14
[codex:1125939] 15 string public override name;
[codex:1125939] 16 string public override symbol;
[codex:1125939] 17 uint8 public override decimals;
[codex:1125939] 18 uint public override totalSupply;
[codex:1125939] 19 mapping(address => uint) public override balanceOf;
[codex:1125939] 20 mapping(address => mapping(address => uint)) public override allowance;
[codex:1125939]
[codex:1125939] thinking
[codex:1125939] **Summarizing vulnerability analysis and crafting JSON output**
[codex:1125939]
[codex:1125939] I'll carefully detail two main findings: the undercollateralization risk in `wrapTo` due to fee-on-transfer tokens and the low-severity signature malleability issue in `permit`. I'll explain the exploit scenarios, recommendations, and evidence with precise file and line references, then format the output as valid JSON according to the required schema.
[codex:1125939] codex
[codex:1125939] {"no_findings":false,"summary":"Found 2 issues: wrapped token minting can become undercollateralized for fee-on-transfer/malicious tokens, and permit signatures are malleable due to missing EIP-2 checks.","findings":[{"severity":"medium","category":"math","title":"Wrap mints based on requested amount instead of actual received tokens","exploit_scenario":"If the underlying token is fee-on-transfer, rebasing, or malicious (returns success without transferring), `wrapTo` still mints the full requested amount. An attacker can deposit such a token to receive more wrapped tokens than backing, then later redeem full amounts once other users deposit, leaving the contract undercollateralized and other holders unable to redeem.","recommendation":"Measure actual tokens received by checking `balanceOf` before/after transfer and mint only the delta, or explicitly reject fee-on-transfer/rebasing tokens (e.g., via a whitelist).","evidence":"`wrapTo` calls `safeTransferFrom` and then mints `amount` without verifying the contract’s token balance increase.","locations":["contracts/contracts/FewWrappedToken.sol:165","contracts/contracts/FewWrappedToken.sol:167","contracts/contracts/FewWrappedToken.sol:168"]},{"severity":"low","category":"auth","title":"Permit allows malleable signatures (no EIP-2 s/v checks)","exploit_scenario":"Because `permit` accepts any `v` and does not enforce `s` in the lower half-order, signatures are malleable. A second valid signature for the same permit can be submitted, which can enable front‑running or replay in systems that expect signature uniqueness (even though nonces prevent reuse for state changes).","recommendation":"Use OpenZeppelin’s `ECDSA` helpers or add explicit checks for `v` ∈ {27,28} and `s` ≤ secp256k1n/2.","evidence":"`ecrecover` is used directly with no validation of `v` or `s`.","locations":["contracts/contracts/FewWrappedToken.sol:115","contracts/contracts/FewWrappedToken.sol:124","contracts/contracts/FewWrappedToken.sol:125"]}]}
[codex:1125939] tokens used
[codex:1125939] 19,062
[codex:1125939] {"no_findings":false,"summary":"Found 2 issues: wrapped token minting can become undercollateralized for fee-on-transfer/malicious tokens, and permit signatures are malleable due to missing EIP-2 checks.","findings":[{"severity":"medium","category":"math","title":"Wrap mints based on requested amount instead of actual received tokens","exploit_scenario":"If the underlying token is fee-on-transfer, rebasing, or malicious (returns success without transferring), `wrapTo` still mints the full requested amount. An attacker can deposit such a token to receive more wrapped tokens than backing, then later redeem full amounts once other users deposit, leaving the contract undercollateralized and other holders unable to redeem.","recommendation":"Measure actual tokens received by checking `balanceOf` before/after transfer and mint only the delta, or explicitly reject fee-on-transfer/rebasing tokens (e.g., via a whitelist).","evidence":"`wrapTo` calls `safeTransferFrom` and then mints `amount` without verifying the contract’s token balance increase.","locations":["contracts/contracts/FewWrappedToken.sol:165","contracts/contracts/FewWrappedToken.sol:167","contracts/contracts/FewWrappedToken.sol:168"]},{"severity":"low","category":"auth","title":"Permit allows malleable signatures (no EIP-2 s/v checks)","exploit_scenario":"Because `permit` accepts any `v` and does not enforce `s` in the lower half-order, signatures are malleable. A second valid signature for the same permit can be submitted, which can enable front‑running or replay in systems that expect signature uniqueness (even though nonces prevent reuse for state changes).","recommendation":"Use OpenZeppelin’s `ECDSA` helpers or add explicit checks for `v` ∈ {27,28} and `s` ≤ secp256k1n/2.","evidence":"`ecrecover` is used directly with no validation of `v` or `s`.","locations":["contracts/contracts/FewWrappedToken.sol:115","contracts/contracts/FewWrappedToken.sol:124","contracts/contracts/FewWrappedToken.sol:125"]}]}
{
"codex": {
"ran_at": "2025-12-27T22:29:44.569331+00:00",
"returncode": 0
},
"summary": "Found 2 issues: wrapped token minting can become undercollateralized for fee-on-transfer/malicious tokens, and permit signatures are malleable due to missing EIP-2 checks.",
"raw_final": {
"summary": "Found 2 issues: wrapped token minting can become undercollateralized for fee-on-transfer/malicious tokens, and permit signatures are malleable due to missing EIP-2 checks.",
"findings": [
{
"title": "Wrap mints based on requested amount instead of actual received tokens",
"category": "math",
"evidence": "`wrapTo` calls `safeTransferFrom` and then mints `amount` without verifying the contract\u2019s token balance increase.",
"severity": "medium",
"locations": [
"contracts/contracts/FewWrappedToken.sol:165",
"contracts/contracts/FewWrappedToken.sol:167",
"contracts/contracts/FewWrappedToken.sol:168"
],
"recommendation": "Measure actual tokens received by checking `balanceOf` before/after transfer and mint only the delta, or explicitly reject fee-on-transfer/rebasing tokens (e.g., via a whitelist).",
"exploit_scenario": "If the underlying token is fee-on-transfer, rebasing, or malicious (returns success without transferring), `wrapTo` still mints the full requested amount. An attacker can deposit such a token to receive more wrapped tokens than backing, then later redeem full amounts once other users deposit, leaving the contract undercollateralized and other holders unable to redeem."
},
{
"title": "Permit allows malleable signatures (no EIP-2 s/v checks)",
"category": "auth",
"evidence": "`ecrecover` is used directly with no validation of `v` or `s`.",
"severity": "low",
"locations": [
"contracts/contracts/FewWrappedToken.sol:115",
"contracts/contracts/FewWrappedToken.sol:124",
"contracts/contracts/FewWrappedToken.sol:125"
],
"recommendation": "Use OpenZeppelin\u2019s `ECDSA` helpers or add explicit checks for `v` \u2208 {27,28} and `s` \u2264 secp256k1n/2.",
"exploit_scenario": "Because `permit` accepts any `v` and does not enforce `s` in the lower half-order, signatures are malleable. A second valid signature for the same permit can be submitted, which can enable front\u2011running or replay in systems that expect signature uniqueness (even though nonces prevent reuse for state changes)."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x0182 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x70a08231 00000026: GT 00000027: PUSH2 0x00d8 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xc45a0155 00000031: GT 00000032: PUSH2 0x008c 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xde0e9a3e 0000003c: GT 0000003d: PUSH2 0x0066 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xde0e9a3e 00000047: EQ 00000048: PUSH2 0x0550 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xea598cb0 00000052: EQ 00000053: PUSH2 0x056d 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xfc0c546a 0000005d: EQ 0000005e: PUSH2 0x058a 00000061: JUMPI 00000062: PUSH2 0x0182 00000065: JUMP 00000066: JUMPDEST 00000067: DUP1 00000068: PUSH4 0xc45a0155 0000006d: EQ 0000006e: PUSH2 0x0486 00000071: JUMPI 00000072: DUP1 00000073: PUSH4 0xd505accf 00000078: EQ 00000079: PUSH2 0x04b7 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xdd62ed3e 00000083: EQ 00000084: PUSH2 0x0515 00000087: JUMPI 00000088: PUSH2 0x0182 0000008b: JUMP 0000008c: JUMPDEST 0000008d: DUP1 0000008e: PUSH4 0x7ecebe00 00000093: GT 00000094: PUSH2 0x00bd 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0x7ecebe00 0000009e: EQ 0000009f: PUSH2 0x0412 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0x95d89b41 000000a9: EQ 000000aa: PUSH2 0x0445 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0xa9059cbb 000000b4: EQ 000000b5: PUSH2 0x044d 000000b8: JUMPI 000000b9: PUSH2 0x0182 000000bc: JUMP 000000bd: JUMPDEST 000000be: DUP1 000000bf: PUSH4 0x70a08231 000000c4: EQ 000000c5: PUSH2 0x03a6 000000c8: JUMPI 000000c9: DUP1 000000ca: PUSH4 0x79cc6790 000000cf: EQ 000000d0: PUSH2 0x03d9 000000d3: JUMPI 000000d4: PUSH2 0x0182 000000d7: JUMP 000000d8: JUMPDEST 000000d9: DUP1 000000da: PUSH4 0x30adf81f 000000df: GT 000000e0: PUSH2 0x013a 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0x40c10f19 000000ea: GT 000000eb: PUSH2 0x0114 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0x40c10f19 000000f5: EQ 000000f6: PUSH2 0x0315 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0x42966c68 00000100: EQ 00000101: PUSH2 0x0350 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0x5dbd6059 0000010b: EQ 0000010c: PUSH2 0x036d 0000010f: JUMPI 00000110: PUSH2 0x0182 00000113: JUMP 00000114: JUMPDEST 00000115: DUP1 00000116: PUSH4 0x30adf81f 0000011b: EQ 0000011c: PUSH2 0x02e7 0000011f: JUMPI 00000120: DUP1 00000121: PUSH4 0x313ce567 00000126: EQ 00000127: PUSH2 0x02ef 0000012a: JUMPI 0000012b: DUP1 0000012c: PUSH4 0x3644e515 00000131: EQ 00000132: PUSH2 0x030d 00000135: JUMPI 00000136: PUSH2 0x0182 00000139: JUMP 0000013a: JUMPDEST 0000013b: DUP1 0000013c: PUSH4 0x18160ddd 00000141: GT 00000142: PUSH2 0x016b 00000145: JUMPI 00000146: DUP1 00000147: PUSH4 0x18160ddd 0000014c: EQ 0000014d: PUSH2 0x0251 00000150: JUMPI 00000151: DUP1 00000152: PUSH4 0x23b872dd 00000157: EQ 00000158: PUSH2 0x026b 0000015b: JUMPI 0000015c: DUP1 0000015d: PUSH4 0x26599850 00000162: EQ 00000163: PUSH2 0x02ae 00000166: JUMPI 00000167: PUSH2 0x0182 0000016a: JUMP 0000016b: JUMPDEST 0000016c: DUP1 0000016d: PUSH4 0x06fdde03 00000172: EQ 00000173: PUSH2 0x0187 00000176: JUMPI 00000177: DUP1 00000178: PUSH4 0x095ea7b3 0000017d: EQ 0000017e: PUSH2 0x0204 00000181: JUMPI 00000182: JUMPDEST 00000183: PUSH1 0x00 00000185: DUP1 00000186: REVERT 00000187: JUMPDEST 00000188: PUSH2 0x018f 0000018b: PUSH2 0x0592 0000018e: JUMP 0000018f: JUMPDEST 00000190: PUSH1 0x40 00000192: DUP1 00000193: MLOAD 00000194: PUSH1 0x20 00000196: DUP1 00000197: DUP3 00000198: MSTORE 00000199: DUP4 0000019a: MLOAD 0000019b: DUP2 0000019c: DUP4 0000019d: ADD 0000019e: MSTORE 0000019f: DUP4 000001a0: MLOAD 000001a1: SWAP2 000001a2: SWAP3 000001a3: DUP4 000001a4: SWAP3 000001a5: SWAP1 000001a6: DUP4 000001a7: ADD 000001a8: SWAP2 000001a9: DUP6 000001aa: ADD 000001ab: SWAP1 000001ac: DUP1 000001ad: DUP4 000001ae: DUP4 000001af: PUSH1 0x00 000001b1: JUMPDEST 000001b2: DUP4 000001b3: DUP2 000001b4: LT 000001b5: ISZERO 000001b6: PUSH2 0x01c9 000001b9: JUMPI 000001ba: DUP2 000001bb: DUP2 000001bc: ADD 000001bd: MLOAD 000001be: DUP4 000001bf: DUP3 000001c0: ADD 000001c1: MSTORE 000001c2: PUSH1 0x20 000001c4: ADD 000001c5: PUSH2 0x01b1 000001c8: JUMP 000001c9: JUMPDEST 000001ca: POP 000001cb: POP 000001cc: POP 000001cd: POP 000001ce: SWAP1 000001cf: POP 000001d0: SWAP1 000001d1: DUP2 000001d2: ADD 000001d3: SWAP1 000001d4: PUSH1 0x1f 000001d6: AND 000001d7: DUP1 000001d8: ISZERO 000001d9: PUSH2 0x01f6 000001dc: JUMPI 000001dd: DUP1 000001de: DUP3 000001df: SUB 000001e0: DUP1 000001e1: MLOAD 000001e2: PUSH1 0x01 000001e4: DUP4 000001e5: PUSH1 0x20 000001e7: SUB 000001e8: PUSH2 0x0100 000001eb: EXP 000001ec: SUB 000001ed: NOT 000001ee: AND 000001ef: DUP2 000001f0: MSTORE 000001f1: PUSH1 0x20 000001f3: ADD 000001f4: SWAP2 000001f5: POP 000001f6: JUMPDEST 000001f7: POP 000001f8: SWAP3 000001f9: POP 000001fa: POP 000001fb: POP 000001fc: PUSH1 0x40 000001fe: MLOAD 000001ff: DUP1 00000200: SWAP2 00000201: SUB 00000202: SWAP1 00000203: RETURN 00000204: JUMPDEST 00000205: PUSH2 0x023d 00000208: PUSH1 0x04 0000020a: DUP1 0000020b: CALLDATASIZE 0000020c: SUB 0000020d: PUSH1 0x40 0000020f: DUP2 00000210: LT 00000211: ISZERO 00000212: PUSH2 0x021a 00000215: JUMPI 00000216: PUSH1 0x00 00000218: DUP1 00000219: REVERT 0000021a: JUMPDEST 0000021b: POP 0000021c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000231: DUP2 00000232: CALLDATALOAD 00000233: AND 00000234: SWAP1 00000235: PUSH1 0x20 00000237: ADD 00000238: CALLDATALOAD 00000239: PUSH2 0x063e 0000023c: JUMP 0000023d: JUMPDEST 0000023e: PUSH1 0x40 00000240: DUP1 00000241: MLOAD 00000242: SWAP2 00000243: ISZERO 00000244: ISZERO 00000245: DUP3 00000246: MSTORE 00000247: MLOAD 00000248: SWAP1 00000249: DUP2 0000024a: SWAP1 0000024b: SUB 0000024c: PUSH1 0x20 0000024e: ADD 0000024f: SWAP1 00000250: RETURN 00000251: JUMPDEST 00000252: PUSH2 0x0259 00000255: PUSH2 0x0655 00000258: JUMP 00000259: JUMPDEST 0000025a: PUSH1 0x40 0000025c: DUP1 0000025d: MLOAD 0000025e: SWAP2 0000025f: DUP3 00000260: MSTORE 00000261: MLOAD 00000262: SWAP1 00000263: DUP2 00000264: SWAP1 00000265: SUB 00000266: PUSH1 0x20 00000268: ADD 00000269: SWAP1 0000026a: RETURN 0000026b: JUMPDEST 0000026c: PUSH2 0x023d 0000026f: PUSH1 0x04 00000271: DUP1 00000272: CALLDATASIZE 00000273: SUB 00000274: PUSH1 0x60 00000276: DUP2 00000277: LT 00000278: ISZERO 00000279: PUSH2 0x0281 0000027c: JUMPI 0000027d: PUSH1 0x00 0000027f: DUP1 00000280: REVERT 00000281: JUMPDEST 00000282: POP 00000283: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000298: DUP2 00000299: CALLDATALOAD 0000029a: DUP2 0000029b: AND 0000029c: SWAP2 0000029d: PUSH1 0x20 0000029f: DUP2 000002a0: ADD 000002a1: CALLDATALOAD 000002a2: SWAP1 000002a3: SWAP2 000002a4: AND 000002a5: SWAP1 000002a6: PUSH1 0x40 000002a8: ADD 000002a9: CALLDATALOAD 000002aa: PUSH2 0x065b 000002ad: JUMP 000002ae: JUMPDEST 000002af: PUSH2 0x0259 000002b2: PUSH1 0x04 000002b4: DUP1 000002b5: CALLDATASIZE 000002b6: SUB 000002b7: PUSH1 0x40 000002b9: DUP2 000002ba: LT 000002bb: ISZERO 000002bc: PUSH2 0x02c4 000002bf: JUMPI 000002c0: PUSH1 0x00 000002c2: DUP1 000002c3: REVERT 000002c4: JUMPDEST 000002c5: POP 000002c6: DUP1 000002c7: CALLDATALOAD 000002c8: SWAP1 000002c9: PUSH1 0x20 000002cb: ADD 000002cc: CALLDATALOAD 000002cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002e2: AND 000002e3: PUSH2 0x073a 000002e6: JUMP 000002e7: JUMPDEST 000002e8: PUSH2 0x0259 000002eb: PUSH2 0x082d 000002ee: JUMP 000002ef: JUMPDEST 000002f0: PUSH2 0x02f7 000002f3: PUSH2 0x0851 000002f6: JUMP 000002f7: JUMPDEST 000002f8: PUSH1 0x40 000002fa: DUP1 000002fb: MLOAD 000002fc: PUSH1 0xff 000002fe: SWAP1 000002ff: SWAP3 00000300: AND 00000301: DUP3 00000302: MSTORE 00000303: MLOAD 00000304: SWAP1 00000305: DUP2 00000306: SWAP1 00000307: SUB 00000308: PUSH1 0x20 0000030a: ADD 0000030b: SWAP1 0000030c: RETURN 0000030d: JUMPDEST 0000030e: PUSH2 0x0259 00000311: PUSH2 0x085a 00000314: JUMP 00000315: JUMPDEST 00000316: PUSH2 0x034e 00000319: PUSH1 0x04 0000031b: DUP1 0000031c: CALLDATASIZE 0000031d: SUB 0000031e: PUSH1 0x40 00000320: DUP2 00000321: LT 00000322: ISZERO 00000323: PUSH2 0x032b 00000326: JUMPI 00000327: PUSH1 0x00 00000329: DUP1 0000032a: REVERT 0000032b: JUMPDEST 0000032c: POP 0000032d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000342: DUP2 00000343: CALLDATALOAD 00000344: AND 00000345: SWAP1 00000346: PUSH1 0x20 00000348: ADD 00000349: CALLDATALOAD 0000034a: PUSH2 0x0860 0000034d: JUMP 0000034e: JUMPDEST 0000034f: STOP 00000350: JUMPDEST 00000351: PUSH2 0x034e 00000354: PUSH1 0x04 00000356: DUP1 00000357: CALLDATASIZE 00000358: SUB 00000359: PUSH1 0x20 0000035b: DUP2 0000035c: LT 0000035d: ISZERO 0000035e: PUSH2 0x0366 00000361: JUMPI 00000362: PUSH1 0x00 00000364: DUP1 00000365: REVERT 00000366: JUMPDEST 00000367: POP 00000368: CALLDATALOAD 00000369: PUSH2 0x0b54 0000036c: JUMP 0000036d: JUMPDEST 0000036e: PUSH2 0x0259 00000371: PUSH1 0x04 00000373: DUP1 00000374: CALLDATASIZE 00000375: SUB 00000376: PUSH1 0x40 00000378: DUP2 00000379: LT 0000037a: ISZERO 0000037b: PUSH2 0x0383 0000037e: JUMPI 0000037f: PUSH1 0x00 00000381: DUP1 00000382: REVERT 00000383: JUMPDEST 00000384: POP 00000385: DUP1 00000386: CALLDATALOAD 00000387: SWAP1 00000388: PUSH1 0x20 0000038a: ADD 0000038b: CALLDATALOAD 0000038c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003a1: AND 000003a2: PUSH2 0x0b98 000003a5: JUMP 000003a6: JUMPDEST 000003a7: PUSH2 0x0259 000003aa: PUSH1 0x04 000003ac: DUP1 000003ad: CALLDATASIZE 000003ae: SUB 000003af: PUSH1 0x20 000003b1: DUP2 000003b2: LT 000003b3: ISZERO 000003b4: PUSH2 0x03bc 000003b7: JUMPI 000003b8: PUSH1 0x00 000003ba: DUP1 000003bb: REVERT 000003bc: JUMPDEST 000003bd: POP 000003be: CALLDATALOAD 000003bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003d4: AND 000003d5: PUSH2 0x0c74 000003d8: JUMP 000003d9: JUMPDEST 000003da: PUSH2 0x034e 000003dd: PUSH1 0x04 000003df: DUP1 000003e0: CALLDATASIZE 000003e1: SUB 000003e2: PUSH1 0x40 000003e4: DUP2 000003e5: LT 000003e6: ISZERO 000003e7: PUSH2 0x03ef 000003ea: JUMPI 000003eb: PUSH1 0x00 000003ed: DUP1 000003ee: REVERT 000003ef: JUMPDEST 000003f0: POP 000003f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000406: DUP2 00000407: CALLDATALOAD 00000408: AND 00000409: SWAP1 0000040a: PUSH1 0x20 0000040c: ADD 0000040d: CALLDATALOAD 0000040e: PUSH2 0x0c86 00000411: JUMP 00000412: JUMPDEST 00000413: PUSH2 0x0259 00000416: PUSH1 0x04 00000418: DUP1 00000419: CALLDATASIZE 0000041a: SUB 0000041b: PUSH1 0x20 0000041d: DUP2 0000041e: LT 0000041f: ISZERO 00000420: PUSH2 0x0428 00000423: JUMPI 00000424: PUSH1 0x00 00000426: DUP1 00000427: REVERT 00000428: JUMPDEST 00000429: POP 0000042a: CALLDATALOAD 0000042b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000440: AND 00000441: PUSH2 0x0f7a 00000444: JUMP 00000445: JUMPDEST 00000446: PUSH2 0x018f 00000449: PUSH2 0x0f8c 0000044c: JUMP 0000044d: JUMPDEST 0000044e: PUSH2 0x023d 00000451: PUSH1 0x04 00000453: DUP1 00000454: CALLDATASIZE 00000455: SUB 00000456: PUSH1 0x40 00000458: DUP2 00000459: LT 0000045a: ISZERO 0000045b: PUSH2 0x0463 0000045e: JUMPI 0000045f: PUSH1 0x00 00000461: DUP1 00000462: REVERT 00000463: JUMPDEST 00000464: POP 00000465: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000047a: DUP2 0000047b: CALLDATALOAD 0000047c: AND 0000047d: SWAP1 0000047e: PUSH1 0x20 00000480: ADD 00000481: CALLDATALOAD 00000482: PUSH2 0x1004 00000485: JUMP 00000486: JUMPDEST 00000487: PUSH2 0x048e 0000048a: PUSH2 0x1011 0000048d: JUMP 0000048e: JUMPDEST 0000048f: PUSH1 0x40 00000491: DUP1 00000492: MLOAD 00000493: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004a8: SWAP1 000004a9: SWAP3 000004aa: AND 000004ab: DUP3 000004ac: MSTORE 000004ad: MLOAD 000004ae: SWAP1 000004af: DUP2 000004b0: SWAP1 000004b1: SUB 000004b2: PUSH1 0x20 000004b4: ADD 000004b5: SWAP1 000004b6: RETURN 000004b7: JUMPDEST 000004b8: PUSH2 0x034e 000004bb: PUSH1 0x04 000004bd: DUP1 000004be: CALLDATASIZE 000004bf: SUB 000004c0: PUSH1 0xe0 000004c2: DUP2 000004c3: LT 000004c4: ISZERO 000004c5: PUSH2 0x04cd 000004c8: JUMPI 000004c9: PUSH1 0x00 000004cb: DUP1 000004cc: REVERT 000004cd: JUMPDEST 000004ce: POP 000004cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004e4: DUP2 000004e5: CALLDATALOAD 000004e6: DUP2 000004e7: AND 000004e8: SWAP2 000004e9: PUSH1 0x20 000004eb: DUP2 000004ec: ADD 000004ed: CALLDATALOAD 000004ee: SWAP1 000004ef: SWAP2 000004f0: AND 000004f1: SWAP1 000004f2: PUSH1 0x40 000004f4: DUP2 000004f5: ADD 000004f6: CALLDATALOAD 000004f7: SWAP1 000004f8: PUSH1 0x60 000004fa: DUP2 000004fb: ADD 000004fc: CALLDATALOAD 000004fd: SWAP1 000004fe: PUSH1 0xff 00000500: PUSH1 0x80 00000502: DUP3 00000503: ADD 00000504: CALLDATALOAD 00000505: AND 00000506: SWAP1 00000507: PUSH1 0xa0 00000509: DUP2 0000050a: ADD 0000050b: CALLDATALOAD 0000050c: SWAP1 0000050d: PUSH1 0xc0 0000050f: ADD 00000510: CALLDATALOAD 00000511: PUSH2 0x102d 00000514: JUMP 00000515: JUMPDEST 00000516: PUSH2 0x0259 00000519: PUSH1 0x04 0000051b: DUP1 0000051c: CALLDATASIZE 0000051d: SUB 0000051e: PUSH1 0x40 00000520: DUP2 00000521: LT 00000522: ISZERO 00000523: PUSH2 0x052b 00000526: JUMPI 00000527: PUSH1 0x00 00000529: DUP1 0000052a: REVERT 0000052b: JUMPDEST 0000052c: POP 0000052d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000542: DUP2 00000543: CALLDATALOAD 00000544: DUP2 00000545: AND 00000546: SWAP2 00000547: PUSH1 0x20 00000549: ADD 0000054a: CALLDATALOAD 0000054b: AND 0000054c: PUSH2 0x12f9 0000054f: JUMP 00000550: JUMPDEST 00000551: PUSH2 0x0259 00000554: PUSH1 0x04 00000556: DUP1 00000557: CALLDATASIZE 00000558: SUB 00000559: PUSH1 0x20 0000055b: DUP2 0000055c: LT 0000055d: ISZERO 0000055e: PUSH2 0x0566 00000561: JUMPI 00000562: PUSH1 0x00 00000564: DUP1 00000565: REVERT 00000566: JUMPDEST 00000567: POP 00000568: CALLDATALOAD 00000569: PUSH2 0x1316 0000056c: JUMP 0000056d: JUMPDEST 0000056e: PUSH2 0x0259 00000571: PUSH1 0x04 00000573: DUP1 00000574: CALLDATASIZE 00000575: SUB 00000576: PUSH1 0x20 00000578: DUP2 00000579: LT 0000057a: ISZERO 0000057b: PUSH2 0x0583 0000057e: JUMPI 0000057f: PUSH1 0x00 00000581: DUP1 00000582: REVERT 00000583: JUMPDEST 00000584: POP 00000585: CALLDATALOAD 00000586: PUSH2 0x1322 00000589: JUMP 0000058a: JUMPDEST 0000058b: PUSH2 0x048e 0000058e: PUSH2 0x132e 00000591: JUMP 00000592: JUMPDEST 00000593: PUSH1 0x00 00000595: DUP1 00000596: SLOAD 00000597: PUSH1 0x40 00000599: DUP1 0000059a: MLOAD 0000059b: PUSH1 0x20 0000059d: PUSH1 0x02 0000059f: PUSH1 0x01 000005a1: DUP6 000005a2: AND 000005a3: ISZERO 000005a4: PUSH2 0x0100 000005a7: MUL 000005a8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000005c9: ADD 000005ca: SWAP1 000005cb: SWAP5 000005cc: AND 000005cd: SWAP4 000005ce: SWAP1 000005cf: SWAP4 000005d0: DIV 000005d1: PUSH1 0x1f 000005d3: DUP2 000005d4: ADD 000005d5: DUP5 000005d6: SWAP1 000005d7: DIV 000005d8: DUP5 000005d9: MUL 000005da: DUP3 000005db: ADD 000005dc: DUP5 000005dd: ADD 000005de: SWAP1 000005df: SWAP3 000005e0: MSTORE 000005e1: DUP2 000005e2: DUP2 000005e3: MSTORE 000005e4: SWAP3 000005e5: SWAP2 000005e6: DUP4 000005e7: ADD 000005e8: DUP3 000005e9: DUP3 000005ea: DUP1 000005eb: ISZERO 000005ec: PUSH2 0x0636 000005ef: JUMPI 000005f0: DUP1 000005f1: PUSH1 0x1f 000005f3: LT 000005f4: PUSH2 0x060b 000005f7: JUMPI 000005f8: PUSH2 0x0100 000005fb: DUP1 000005fc: DUP4 000005fd: SLOAD 000005fe: DIV 000005ff: MUL 00000600: DUP4 00000601: MSTORE 00000602: SWAP2 00000603: PUSH1 0x20 00000605: ADD 00000606: SWAP2 00000607: PUSH2 0x0636 0000060a: JUMP 0000060b: JUMPDEST 0000060c: DUP3 0000060d: ADD 0000060e: SWAP2 0000060f: SWAP1 00000610: PUSH1 0x00 00000612: MSTORE 00000613: PUSH1 0x20 00000615: PUSH1 0x00 00000617: KECCAK256 00000618: SWAP1 00000619: JUMPDEST 0000061a: DUP2 0000061b: SLOAD 0000061c: DUP2 0000061d: MSTORE 0000061e: SWAP1 0000061f: PUSH1 0x01 00000621: ADD 00000622: SWAP1 00000623: PUSH1 0x20 00000625: ADD 00000626: DUP1 00000627: DUP4 00000628: GT 00000629: PUSH2 0x0619 0000062c: JUMPI 0000062d: DUP3 0000062e: SWAP1 0000062f: SUB 00000630: PUSH1 0x1f 00000632: AND 00000633: DUP3 00000634: ADD 00000635: SWAP2 00000636: JUMPDEST 00000637: POP 00000638: POP 00000639: POP 0000063a: POP 0000063b: POP 0000063c: DUP2 0000063d: JUMP 0000063e: JUMPDEST 0000063f: PUSH1 0x00 00000641: PUSH2 0x064b 00000644: CALLER 00000645: DUP5 00000646: DUP5 00000647: PUSH2 0x134a 0000064a: JUMP 0000064b: JUMPDEST 0000064c: POP 0000064d: PUSH1 0x01 0000064f: JUMPDEST 00000650: SWAP3 00000651: SWAP2 00000652: POP 00000653: POP 00000654: JUMP 00000655: JUMPDEST 00000656: PUSH1 0x03 00000658: SLOAD 00000659: DUP2 0000065a: JUMP 0000065b: JUMPDEST 0000065c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000671: DUP4 00000672: AND 00000673: PUSH1 0x00 00000675: SWAP1 00000676: DUP2 00000677: MSTORE 00000678: PUSH1 0x05 0000067a: PUSH1 0x20 0000067c: SWAP1 0000067d: DUP2 0000067e: MSTORE 0000067f: PUSH1 0x40 00000681: DUP1 00000682: DUP4 00000683: KECCAK256 00000684: CALLER 00000685: DUP5 00000686: MSTORE 00000687: SWAP1 00000688: SWAP2 00000689: MSTORE 0000068a: DUP2 0000068b: KECCAK256 0000068c: SLOAD 0000068d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000006ae: EQ 000006af: PUSH2 0x0725 000006b2: JUMPI 000006b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006c8: DUP5 000006c9: AND 000006ca: PUSH1 0x00 000006cc: SWAP1 000006cd: DUP2 000006ce: MSTORE 000006cf: PUSH1 0x05 000006d1: PUSH1 0x20 000006d3: SWAP1 000006d4: DUP2 000006d5: MSTORE 000006d6: PUSH1 0x40 000006d8: DUP1 000006d9: DUP4 000006da: KECCAK256 000006db: CALLER 000006dc: DUP5 000006dd: MSTORE 000006de: SWAP1 000006df: SWAP2 000006e0: MSTORE 000006e1: SWAP1 000006e2: KECCAK256 000006e3: SLOAD 000006e4: PUSH2 0x06f3 000006e7: SWAP1 000006e8: DUP4 000006e9: PUSH4 0xffffffff 000006ee: PUSH2 0x13b9 000006f1: AND 000006f2: JUMP 000006f3: JUMPDEST 000006f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000709: DUP6 0000070a: AND 0000070b: PUSH1 0x00 0000070d: SWAP1 0000070e: DUP2 0000070f: MSTORE 00000710: PUSH1 0x05 00000712: PUSH1 0x20 00000714: SWAP1 00000715: DUP2 00000716: MSTORE 00000717: PUSH1 0x40 00000719: DUP1 0000071a: DUP4 0000071b: KECCAK256 0000071c: CALLER 0000071d: DUP5 0000071e: MSTORE 0000071f: SWAP1 00000720: SWAP2 00000721: MSTORE 00000722: SWAP1 00000723: KECCAK256 00000724: SSTORE 00000725: JUMPDEST 00000726: PUSH2 0x0730 00000729: DUP5 0000072a: DUP5 0000072b: DUP5 0000072c: PUSH2 0x142b 0000072f: JUMP 00000730: JUMPDEST 00000731: POP 00000732: PUSH1 0x01 00000734: SWAP4 00000735: SWAP3 00000736: POP 00000737: POP 00000738: POP 00000739: JUMP 0000073a: JUMPDEST 0000073b: PUSH1 0x00 0000073d: DUP1 0000073e: DUP4 0000073f: GT 00000740: PUSH2 0x07aa 00000743: JUMPI 00000744: PUSH1 0x40 00000746: DUP1 00000747: MLOAD 00000748: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000769: DUP2 0000076a: MSTORE 0000076b: PUSH1 0x20 0000076d: PUSH1 0x04 0000076f: DUP3 00000770: ADD 00000771: MSTORE 00000772: PUSH1 0x1a 00000774: PUSH1 0x24 00000776: DUP3 00000777: ADD 00000778: MSTORE 00000779: PUSH32 0x4665773a2063616e27742077726170207a65726f20746f6b656e000000000000 0000079a: PUSH1 0x44 0000079c: DUP3 0000079d: ADD 0000079e: MSTORE 0000079f: SWAP1 000007a0: MLOAD 000007a1: SWAP1 000007a2: DUP2 000007a3: SWAP1 000007a4: SUB 000007a5: PUSH1 0x64 000007a7: ADD 000007a8: SWAP1 000007a9: REVERT 000007aa: JUMPDEST 000007ab: PUSH1 0x09 000007ad: SLOAD 000007ae: PUSH2 0x07cf 000007b1: SWAP1 000007b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007c7: AND 000007c8: CALLER 000007c9: ADDRESS 000007ca: DUP7 000007cb: PUSH2 0x150c 000007ce: JUMP 000007cf: JUMPDEST 000007d0: PUSH2 0x07d9 000007d3: DUP3 000007d4: DUP5 000007d5: PUSH2 0x16dc 000007d8: JUMP 000007d9: JUMPDEST 000007da: PUSH1 0x40 000007dc: DUP1 000007dd: MLOAD 000007de: DUP5 000007df: DUP2 000007e0: MSTORE 000007e1: SWAP1 000007e2: MLOAD 000007e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007f8: DUP5 000007f9: AND 000007fa: SWAP2 000007fb: CALLER 000007fc: SWAP2 000007fd: PUSH32 0xeb5580a0908e96b78bdcb1a3c5638793b491a6073c3ff56061a069cb20581773 0000081e: SWAP2 0000081f: DUP2 00000820: SWAP1 00000821: SUB 00000822: PUSH1 0x20 00000824: ADD 00000825: SWAP1 00000826: LOG3 00000827: POP 00000828: SWAP1 00000829: SWAP2 0000082a: SWAP1 0000082b: POP 0000082c: JUMP 0000082d: JUMPDEST 0000082e: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 0000084f: DUP2 00000850: JUMP 00000851: JUMPDEST 00000852: PUSH1 0x02 00000854: SLOAD 00000855: PUSH1 0xff 00000857: AND 00000858: DUP2 00000859: JUMP 0000085a: JUMPDEST 0000085b: PUSH1 0x06 0000085d: SLOAD 0000085e: DUP2 0000085f: JUMP 00000860: JUMPDEST 00000861: PUSH1 0x08 00000863: PUSH1 0x00 00000865: SWAP1 00000866: SLOAD 00000867: SWAP1 00000868: PUSH2 0x0100 0000086b: EXP 0000086c: SWAP1 0000086d: DIV 0000086e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000883: AND 00000884: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000899: AND 0000089a: PUSH4 0xf2f4eb26 0000089f: PUSH1 0x40 000008a1: MLOAD 000008a2: DUP2 000008a3: PUSH4 0xffffffff 000008a8: AND 000008a9: PUSH1 0xe0 000008ab: SHL 000008ac: DUP2 000008ad: MSTORE 000008ae: PUSH1 0x04 000008b0: ADD 000008b1: PUSH1 0x20 000008b3: PUSH1 0x40 000008b5: MLOAD 000008b6: DUP1 000008b7: DUP4 000008b8: SUB 000008b9: DUP2 000008ba: DUP7 000008bb: DUP1 000008bc: EXTCODESIZE 000008bd: ISZERO 000008be: DUP1 000008bf: ISZERO 000008c0: PUSH2 0x08c8 000008c3: JUMPI 000008c4: PUSH1 0x00 000008c6: DUP1 000008c7: REVERT 000008c8: JUMPDEST 000008c9: POP 000008ca: GAS 000008cb: STATICCALL 000008cc: ISZERO 000008cd: DUP1 000008ce: ISZERO 000008cf: PUSH2 0x08dc 000008d2: JUMPI 000008d3: RETURNDATASIZE 000008d4: PUSH1 0x00 000008d6: DUP1 000008d7: RETURNDATACOPY 000008d8: RETURNDATASIZE 000008d9: PUSH1 0x00 000008db: REVERT 000008dc: JUMPDEST 000008dd: POP 000008de: POP 000008df: POP 000008e0: POP 000008e1: PUSH1 0x40 000008e3: MLOAD 000008e4: RETURNDATASIZE 000008e5: PUSH1 0x20 000008e7: DUP2 000008e8: LT 000008e9: ISZERO 000008ea: PUSH2 0x08f2 000008ed: JUMPI 000008ee: PUSH1 0x00 000008f0: DUP1 000008f1: REVERT 000008f2: JUMPDEST 000008f3: POP 000008f4: MLOAD 000008f5: PUSH1 0x40 000008f7: DUP1 000008f8: MLOAD 000008f9: PUSH32 0xaa271e1a00000000000000000000000000000000000000000000000000000000 0000091a: DUP2 0000091b: MSTORE 0000091c: CALLER 0000091d: PUSH1 0x04 0000091f: DUP3 00000920: ADD 00000921: MSTORE 00000922: SWAP1 00000923: MLOAD 00000924: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000939: SWAP1 0000093a: SWAP3 0000093b: AND 0000093c: SWAP2 0000093d: PUSH4 0xaa271e1a 00000942: SWAP2 00000943: PUSH1 0x24 00000945: DUP1 00000946: DUP3 00000947: ADD 00000948: SWAP3 00000949: PUSH1 0x20 0000094b: SWAP3 0000094c: SWAP1 0000094d: SWAP2 0000094e: SWAP1 0000094f: DUP3 00000950: SWAP1 00000951: SUB 00000952: ADD 00000953: DUP2 00000954: DUP7 00000955: DUP1 00000956: EXTCODESIZE 00000957: ISZERO 00000958: DUP1 00000959: ISZERO 0000095a: PUSH2 0x0962 0000095d: JUMPI 0000095e: PUSH1 0x00 00000960: DUP1 00000961: REVERT 00000962: JUMPDEST 00000963: POP 00000964: GAS 00000965: STATICCALL 00000966: ISZERO 00000967: DUP1 00000968: ISZERO 00000969: PUSH2 0x0976 0000096c: JUMPI 0000096d: RETURNDATASIZE 0000096e: PUSH1 0x00 00000970: DUP1 00000971: RETURNDATACOPY 00000972: RETURNDATASIZE 00000973: PUSH1 0x00 00000975: REVERT 00000976: JUMPDEST 00000977: POP 00000978: POP 00000979: POP 0000097a: POP 0000097b: PUSH1 0x40 0000097d: MLOAD 0000097e: RETURNDATASIZE 0000097f: PUSH1 0x20 00000981: DUP2 00000982: LT 00000983: ISZERO 00000984: PUSH2 0x098c 00000987: JUMPI 00000988: PUSH1 0x00 0000098a: DUP1 0000098b: REVERT 0000098c: JUMPDEST 0000098d: POP 0000098e: MLOAD 0000098f: PUSH2 0x09f9 00000992: JUMPI 00000993: PUSH1 0x40 00000995: DUP1 00000996: MLOAD 00000997: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000009b8: DUP2 000009b9: MSTORE 000009ba: PUSH1 0x20 000009bc: PUSH1 0x04 000009be: DUP3 000009bf: ADD 000009c0: MSTORE 000009c1: PUSH1 0x1f 000009c3: PUSH1 0x24 000009c5: DUP3 000009c6: ADD 000009c7: MSTORE 000009c8: PUSH32 0x436f72655265663a2043616c6c6572206973206e6f742061206d696e74657200 000009e9: PUSH1 0x44 000009eb: DUP3 000009ec: ADD 000009ed: MSTORE 000009ee: SWAP1 000009ef: MLOAD 000009f0: SWAP1 000009f1: DUP2 000009f2: SWAP1 000009f3: SUB 000009f4: PUSH1 0x64 000009f6: ADD 000009f7: SWAP1 000009f8: REVERT 000009f9: JUMPDEST 000009fa: PUSH1 0x08 000009fc: PUSH1 0x00 000009fe: SWAP1 000009ff: SLOAD 00000a00: SWAP1 00000a01: PUSH2 0x0100 00000a04: EXP 00000a05: SWAP1 00000a06: DIV 00000a07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a1c: AND 00000a1d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a32: AND 00000a33: PUSH4 0x5c975abb 00000a38: PUSH1 0x40 00000a3a: MLOAD 00000a3b: DUP2 00000a3c: PUSH4 0xffffffff 00000a41: AND 00000a42: PUSH1 0xe0 00000a44: SHL 00000a45: DUP2 00000a46: MSTORE 00000a47: PUSH1 0x04 00000a49: ADD 00000a4a: PUSH1 0x20 00000a4c: PUSH1 0x40 00000a4e: MLOAD 00000a4f: DUP1 00000a50: DUP4 00000a51: SUB 00000a52: DUP2 00000a53: DUP7 00000a54: DUP1 00000a55: EXTCODESIZE 00000a56: ISZERO 00000a57: DUP1 00000a58: ISZERO 00000a59: PUSH2 0x0a61 00000a5c: JUMPI 00000a5d: PUSH1 0x00 00000a5f: DUP1 00000a60: REVERT 00000a61: JUMPDEST 00000a62: POP 00000a63: GAS 00000a64: STATICCALL 00000a65: ISZERO 00000a66: DUP1 00000a67: ISZERO 00000a68: PUSH2 0x0a75 00000a6b: JUMPI 00000a6c: RETURNDATASIZE 00000a6d: PUSH1 0x00 00000a6f: DUP1 00000a70: RETURNDATACOPY 00000a71: RETURNDATASIZE 00000a72: PUSH1 0x00 00000a74: REVERT 00000a75: JUMPDEST 00000a76: POP 00000a77: POP 00000a78: POP 00000a79: POP 00000a7a: PUSH1 0x40 00000a7c: MLOAD 00000a7d: RETURNDATASIZE 00000a7e: PUSH1 0x20 00000a80: DUP2 00000a81: LT 00000a82: ISZERO 00000a83: PUSH2 0x0a8b 00000a86: JUMPI 00000a87: PUSH1 0x00 00000a89: DUP1 00000a8a: REVERT 00000a8b: JUMPDEST 00000a8c: POP 00000a8d: MLOAD 00000a8e: ISZERO 00000a8f: PUSH2 0x0af9 00000a92: JUMPI 00000a93: PUSH1 0x40 00000a95: DUP1 00000a96: MLOAD 00000a97: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ab8: DUP2 00000ab9: MSTORE 00000aba: PUSH1 0x20 00000abc: PUSH1 0x04 00000abe: DUP3 00000abf: ADD 00000ac0: MSTORE 00000ac1: PUSH1 0x19 00000ac3: PUSH1 0x24 00000ac5: DUP3 00000ac6: ADD 00000ac7: MSTORE 00000ac8: PUSH32 0x436f72655265663a2043616c6c65722069732070617573656400000000000000 00000ae9: PUSH1 0x44 00000aeb: DUP3 00000aec: ADD 00000aed: MSTORE 00000aee: SWAP1 00000aef: MLOAD 00000af0: SWAP1 00000af1: DUP2 00000af2: SWAP1 00000af3: SUB 00000af4: PUSH1 0x64 00000af6: ADD 00000af7: SWAP1 00000af8: REVERT 00000af9: JUMPDEST 00000afa: PUSH2 0x0b03 00000afd: DUP3 00000afe: DUP3 00000aff: PUSH2 0x16dc 00000b02: JUMP 00000b03: JUMPDEST 00000b04: PUSH1 0x40 00000b06: DUP1 00000b07: MLOAD 00000b08: DUP3 00000b09: DUP2 00000b0a: MSTORE 00000b0b: SWAP1 00000b0c: MLOAD 00000b0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b22: DUP5 00000b23: AND 00000b24: SWAP2 00000b25: CALLER 00000b26: SWAP2 00000b27: PUSH32 0xbcad3d7d3dfccb90d49c6063bf70f828901fefc88937d90af74e58e6e55bc39d 00000b48: SWAP2 00000b49: DUP2 00000b4a: SWAP1 00000b4b: SUB 00000b4c: PUSH1 0x20 00000b4e: ADD 00000b4f: SWAP1 00000b50: LOG3 00000b51: POP 00000b52: POP 00000b53: JUMP 00000b54: JUMPDEST 00000b55: PUSH2 0x0b5e 00000b58: CALLER 00000b59: DUP3 00000b5a: PUSH2 0x178d 00000b5d: JUMP 00000b5e: JUMPDEST 00000b5f: PUSH1 0x40 00000b61: DUP1 00000b62: MLOAD 00000b63: DUP3 00000b64: DUP2 00000b65: MSTORE 00000b66: SWAP1 00000b67: MLOAD 00000b68: CALLER 00000b69: SWAP2 00000b6a: DUP3 00000b6b: SWAP2 00000b6c: PUSH32 0xdbdf9b8e4b75e75b162d151ec8fc7f0561cabab5fcccfa2600be62223e4300c4 00000b8d: SWAP2 00000b8e: DUP2 00000b8f: SWAP1 00000b90: SUB 00000b91: PUSH1 0x20 00000b93: ADD 00000b94: SWAP1 00000b95: LOG3 00000b96: POP 00000b97: JUMP 00000b98: JUMPDEST 00000b99: PUSH1 0x00 00000b9b: DUP1 00000b9c: DUP4 00000b9d: GT 00000b9e: PUSH2 0x0bf2 00000ba1: JUMPI 00000ba2: PUSH1 0x40 00000ba4: MLOAD 00000ba5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000bc6: DUP2 00000bc7: MSTORE 00000bc8: PUSH1 0x04 00000bca: ADD 00000bcb: DUP1 00000bcc: DUP1 00000bcd: PUSH1 0x20 00000bcf: ADD 00000bd0: DUP3 00000bd1: DUP2 00000bd2: SUB 00000bd3: DUP3 00000bd4: MSTORE 00000bd5: PUSH1 0x23 00000bd7: DUP2 00000bd8: MSTORE 00000bd9: PUSH1 0x20 00000bdb: ADD 00000bdc: DUP1 00000bdd: PUSH2 0x1abc 00000be0: PUSH1 0x23 00000be2: SWAP2 00000be3: CODECOPY 00000be4: PUSH1 0x40 00000be6: ADD 00000be7: SWAP2 00000be8: POP 00000be9: POP 00000bea: PUSH1 0x40 00000bec: MLOAD 00000bed: DUP1 00000bee: SWAP2 00000bef: SUB 00000bf0: SWAP1 00000bf1: REVERT 00000bf2: JUMPDEST 00000bf3: PUSH2 0x0bfc 00000bf6: CALLER 00000bf7: DUP5 00000bf8: PUSH2 0x178d 00000bfb: JUMP 00000bfc: JUMPDEST 00000bfd: PUSH1 0x09 00000bff: SLOAD 00000c00: PUSH2 0x0c20 00000c03: SWAP1 00000c04: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c19: AND 00000c1a: DUP4 00000c1b: DUP6 00000c1c: PUSH2 0x1851 00000c1f: JUMP 00000c20: JUMPDEST 00000c21: PUSH1 0x40 00000c23: DUP1 00000c24: MLOAD 00000c25: DUP5 00000c26: DUP2 00000c27: MSTORE 00000c28: SWAP1 00000c29: MLOAD 00000c2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c3f: DUP5 00000c40: AND 00000c41: SWAP2 00000c42: CALLER 00000c43: SWAP2 00000c44: PUSH32 0x12d6424519838e57637c6db9df31af32d7926ff0a53dd37007c191d0fe302818 00000c65: SWAP2 00000c66: DUP2 00000c67: SWAP1 00000c68: SUB 00000c69: PUSH1 0x20 00000c6b: ADD 00000c6c: SWAP1 00000c6d: LOG3 00000c6e: POP 00000c6f: SWAP1 00000c70: SWAP2 00000c71: SWAP1 00000c72: POP 00000c73: JUMP 00000c74: JUMPDEST 00000c75: PUSH1 0x04 00000c77: PUSH1 0x20 00000c79: MSTORE 00000c7a: PUSH1 0x00 00000c7c: SWAP1 00000c7d: DUP2 00000c7e: MSTORE 00000c7f: PUSH1 0x40 00000c81: SWAP1 00000c82: KECCAK256 00000c83: SLOAD 00000c84: DUP2 00000c85: JUMP 00000c86: JUMPDEST 00000c87: PUSH1 0x08 00000c89: PUSH1 0x00 00000c8b: SWAP1 00000c8c: SLOAD 00000c8d: SWAP1 00000c8e: PUSH2 0x0100 00000c91: EXP 00000c92: SWAP1 00000c93: DIV 00000c94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ca9: AND 00000caa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cbf: AND 00000cc0: PUSH4 0xf2f4eb26 00000cc5: PUSH1 0x40 00000cc7: MLOAD 00000cc8: DUP2 00000cc9: PUSH4 0xffffffff 00000cce: AND 00000ccf: PUSH1 0xe0 00000cd1: SHL 00000cd2: DUP2 00000cd3: MSTORE 00000cd4: PUSH1 0x04 00000cd6: ADD 00000cd7: PUSH1 0x20 00000cd9: PUSH1 0x40 00000cdb: MLOAD 00000cdc: DUP1 00000cdd: DUP4 00000cde: SUB 00000cdf: DUP2 00000ce0: DUP7 00000ce1: DUP1 00000ce2: EXTCODESIZE 00000ce3: ISZERO 00000ce4: DUP1 00000ce5: ISZERO 00000ce6: PUSH2 0x0cee 00000ce9: JUMPI 00000cea: PUSH1 0x00 00000cec: DUP1 00000ced: REVERT 00000cee: JUMPDEST 00000cef: POP 00000cf0: GAS 00000cf1: STATICCALL 00000cf2: ISZERO 00000cf3: DUP1 00000cf4: ISZERO 00000cf5: PUSH2 0x0d02 00000cf8: JUMPI 00000cf9: RETURNDATASIZE 00000cfa: PUSH1 0x00 00000cfc: DUP1 00000cfd: RETURNDATACOPY 00000cfe: RETURNDATASIZE 00000cff: PUSH1 0x00 00000d01: REVERT 00000d02: JUMPDEST 00000d03: POP 00000d04: POP 00000d05: POP 00000d06: POP 00000d07: PUSH1 0x40 00000d09: MLOAD 00000d0a: RETURNDATASIZE 00000d0b: PUSH1 0x20 00000d0d: DUP2 00000d0e: LT 00000d0f: ISZERO 00000d10: PUSH2 0x0d18 00000d13: JUMPI 00000d14: PUSH1 0x00 00000d16: DUP1 00000d17: REVERT 00000d18: JUMPDEST 00000d19: POP 00000d1a: MLOAD 00000d1b: PUSH1 0x40 00000d1d: DUP1 00000d1e: MLOAD 00000d1f: PUSH32 0x4334614a00000000000000000000000000000000000000000000000000000000 00000d40: DUP2 00000d41: MSTORE 00000d42: CALLER 00000d43: PUSH1 0x04 00000d45: DUP3 00000d46: ADD 00000d47: MSTORE 00000d48: SWAP1 00000d49: MLOAD 00000d4a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d5f: SWAP1 00000d60: SWAP3 00000d61: AND 00000d62: SWAP2 00000d63: PUSH4 0x4334614a 00000d68: SWAP2 00000d69: PUSH1 0x24 00000d6b: DUP1 00000d6c: DUP3 00000d6d: ADD 00000d6e: SWAP3 00000d6f: PUSH1 0x20 00000d71: SWAP3 00000d72: SWAP1 00000d73: SWAP2 00000d74: SWAP1 00000d75: DUP3 00000d76: SWAP1 00000d77: SUB 00000d78: ADD 00000d79: DUP2 00000d7a: DUP7 00000d7b: DUP1 00000d7c: EXTCODESIZE 00000d7d: ISZERO 00000d7e: DUP1 00000d7f: ISZERO 00000d80: PUSH2 0x0d88 00000d83: JUMPI 00000d84: PUSH1 0x00 00000d86: DUP1 00000d87: REVERT 00000d88: JUMPDEST 00000d89: POP 00000d8a: GAS 00000d8b: STATICCALL 00000d8c: ISZERO 00000d8d: DUP1 00000d8e: ISZERO 00000d8f: PUSH2 0x0d9c 00000d92: JUMPI 00000d93: RETURNDATASIZE 00000d94: PUSH1 0x00 00000d96: DUP1 00000d97: RETURNDATACOPY 00000d98: RETURNDATASIZE 00000d99: PUSH1 0x00 00000d9b: REVERT 00000d9c: JUMPDEST 00000d9d: POP 00000d9e: POP 00000d9f: POP 00000da0: POP 00000da1: PUSH1 0x40 00000da3: MLOAD 00000da4: RETURNDATASIZE 00000da5: PUSH1 0x20 00000da7: DUP2 00000da8: LT 00000da9: ISZERO 00000daa: PUSH2 0x0db2 00000dad: JUMPI 00000dae: PUSH1 0x00 00000db0: DUP1 00000db1: REVERT 00000db2: JUMPDEST 00000db3: POP 00000db4: MLOAD 00000db5: PUSH2 0x0e1f 00000db8: JUMPI 00000db9: PUSH1 0x40 00000dbb: DUP1 00000dbc: MLOAD 00000dbd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000dde: DUP2 00000ddf: MSTORE 00000de0: PUSH1 0x20 00000de2: PUSH1 0x04 00000de4: DUP3 00000de5: ADD 00000de6: MSTORE 00000de7: PUSH1 0x1f 00000de9: PUSH1 0x24 00000deb: DUP3 00000dec: ADD 00000ded: MSTORE 00000dee: PUSH32 0x436f72655265663a2043616c6c6572206973206e6f742061206275726e657200 00000e0f: PUSH1 0x44 00000e11: DUP3 00000e12: ADD 00000e13: MSTORE 00000e14: SWAP1 00000e15: MLOAD 00000e16: SWAP1 00000e17: DUP2 00000e18: SWAP1 00000e19: SUB 00000e1a: PUSH1 0x64 00000e1c: ADD 00000e1d: SWAP1 00000e1e: REVERT 00000e1f: JUMPDEST 00000e20: PUSH1 0x08 00000e22: PUSH1 0x00 00000e24: SWAP1 00000e25: SLOAD 00000e26: SWAP1 00000e27: PUSH2 0x0100 00000e2a: EXP 00000e2b: SWAP1 00000e2c: DIV 00000e2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e42: AND 00000e43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e58: AND 00000e59: PUSH4 0x5c975abb 00000e5e: PUSH1 0x40 00000e60: MLOAD 00000e61: DUP2 00000e62: PUSH4 0xffffffff 00000e67: AND 00000e68: PUSH1 0xe0 00000e6a: SHL 00000e6b: DUP2 00000e6c: MSTORE 00000e6d: PUSH1 0x04 00000e6f: ADD 00000e70: PUSH1 0x20 00000e72: PUSH1 0x40 00000e74: MLOAD 00000e75: DUP1 00000e76: DUP4 00000e77: SUB 00000e78: DUP2 00000e79: DUP7 00000e7a: DUP1 00000e7b: EXTCODESIZE 00000e7c: ISZERO 00000e7d: DUP1 00000e7e: ISZERO 00000e7f: PUSH2 0x0e87 00000e82: JUMPI 00000e83: PUSH1 0x00 00000e85: DUP1 00000e86: REVERT 00000e87: JUMPDEST 00000e88: POP 00000e89: GAS 00000e8a: STATICCALL 00000e8b: ISZERO 00000e8c: DUP1 00000e8d: ISZERO 00000e8e: PUSH2 0x0e9b 00000e91: JUMPI 00000e92: RETURNDATASIZE 00000e93: PUSH1 0x00 00000e95: DUP1 00000e96: RETURNDATACOPY 00000e97: RETURNDATASIZE 00000e98: PUSH1 0x00 00000e9a: REVERT 00000e9b: JUMPDEST 00000e9c: POP 00000e9d: POP 00000e9e: POP 00000e9f: POP 00000ea0: PUSH1 0x40 00000ea2: MLOAD 00000ea3: RETURNDATASIZE 00000ea4: PUSH1 0x20 00000ea6: DUP2 00000ea7: LT 00000ea8: ISZERO 00000ea9: PUSH2 0x0eb1 00000eac: JUMPI 00000ead: PUSH1 0x00 00000eaf: DUP1 00000eb0: REVERT 00000eb1: JUMPDEST 00000eb2: POP 00000eb3: MLOAD 00000eb4: ISZERO 00000eb5: PUSH2 0x0f1f 00000eb8: JUMPI 00000eb9: PUSH1 0x40 00000ebb: DUP1 00000ebc: MLOAD 00000ebd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ede: DUP2 00000edf: MSTORE 00000ee0: PUSH1 0x20 00000ee2: PUSH1 0x04 00000ee4: DUP3 00000ee5: ADD 00000ee6: MSTORE 00000ee7: PUSH1 0x19 00000ee9: PUSH1 0x24 00000eeb: DUP3 00000eec: ADD 00000eed: MSTORE 00000eee: PUSH32 0x436f72655265663a2043616c6c65722069732070617573656400000000000000 00000f0f: PUSH1 0x44 00000f11: DUP3 00000f12: ADD 00000f13: MSTORE 00000f14: SWAP1 00000f15: MLOAD 00000f16: SWAP1 00000f17: DUP2 00000f18: SWAP1 00000f19: SUB 00000f1a: PUSH1 0x64 00000f1c: ADD 00000f1d: SWAP1 00000f1e: REVERT 00000f1f: JUMPDEST 00000f20: PUSH2 0x0f29 00000f23: DUP3 00000f24: DUP3 00000f25: PUSH2 0x178d 00000f28: JUMP 00000f29: JUMPDEST 00000f2a: PUSH1 0x40 00000f2c: DUP1 00000f2d: MLOAD 00000f2e: DUP3 00000f2f: DUP2 00000f30: MSTORE 00000f31: SWAP1 00000f32: MLOAD 00000f33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f48: DUP5 00000f49: AND 00000f4a: SWAP2 00000f4b: CALLER 00000f4c: SWAP2 00000f4d: PUSH32 0xdbdf9b8e4b75e75b162d151ec8fc7f0561cabab5fcccfa2600be62223e4300c4 00000f6e: SWAP2 00000f6f: DUP2 00000f70: SWAP1 00000f71: SUB 00000f72: PUSH1 0x20 00000f74: ADD 00000f75: SWAP1 00000f76: LOG3 00000f77: POP 00000f78: POP 00000f79: JUMP 00000f7a: JUMPDEST 00000f7b: PUSH1 0x07 00000f7d: PUSH1 0x20 00000f7f: MSTORE 00000f80: PUSH1 0x00 00000f82: SWAP1 00000f83: DUP2 00000f84: MSTORE 00000f85: PUSH1 0x40 00000f87: SWAP1 00000f88: KECCAK256 00000f89: SLOAD 00000f8a: DUP2 00000f8b: JUMP 00000f8c: JUMPDEST 00000f8d: PUSH1 0x01 00000f8f: DUP1 00000f90: SLOAD 00000f91: PUSH1 0x40 00000f93: DUP1 00000f94: MLOAD 00000f95: PUSH1 0x20 00000f97: PUSH1 0x02 00000f99: DUP5 00000f9a: DUP7 00000f9b: AND 00000f9c: ISZERO 00000f9d: PUSH2 0x0100 00000fa0: MUL 00000fa1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000fc2: ADD 00000fc3: SWAP1 00000fc4: SWAP5 00000fc5: AND 00000fc6: SWAP4 00000fc7: SWAP1 00000fc8: SWAP4 00000fc9: DIV 00000fca: PUSH1 0x1f 00000fcc: DUP2 00000fcd: ADD 00000fce: DUP5 00000fcf: SWAP1 00000fd0: DIV 00000fd1: DUP5 00000fd2: MUL 00000fd3: DUP3 00000fd4: ADD 00000fd5: DUP5 00000fd6: ADD 00000fd7: SWAP1 00000fd8: SWAP3 00000fd9: MSTORE 00000fda: DUP2 00000fdb: DUP2 00000fdc: MSTORE 00000fdd: SWAP3 00000fde: SWAP2 00000fdf: DUP4 00000fe0: ADD 00000fe1: DUP3 00000fe2: DUP3 00000fe3: DUP1 00000fe4: ISZERO 00000fe5: PUSH2 0x0636 00000fe8: JUMPI 00000fe9: DUP1 00000fea: PUSH1 0x1f 00000fec: LT 00000fed: PUSH2 0x060b 00000ff0: JUMPI 00000ff1: PUSH2 0x0100 00000ff4: DUP1 00000ff5: DUP4 00000ff6: SLOAD 00000ff7: DIV 00000ff8: MUL 00000ff9: DUP4 00000ffa: MSTORE 00000ffb: SWAP2 00000ffc: PUSH1 0x20 00000ffe: ADD 00000fff: SWAP2 00001000: PUSH2 0x0636 00001003: JUMP 00001004: JUMPDEST 00001005: PUSH1 0x00 00001007: PUSH2 0x064b 0000100a: CALLER 0000100b: DUP5 0000100c: DUP5 0000100d: PUSH2 0x142b 00001010: JUMP 00001011: JUMPDEST 00001012: PUSH1 0x08 00001014: SLOAD 00001015: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000102a: AND 0000102b: DUP2 0000102c: JUMP 0000102d: JUMPDEST 0000102e: TIMESTAMP 0000102f: DUP5 00001030: LT 00001031: ISZERO 00001032: PUSH2 0x109c 00001035: JUMPI 00001036: PUSH1 0x40 00001038: DUP1 00001039: MLOAD 0000103a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000105b: DUP2 0000105c: MSTORE 0000105d: PUSH1 0x20 0000105f: PUSH1 0x04 00001061: DUP3 00001062: ADD 00001063: MSTORE 00001064: PUSH1 0x0c 00001066: PUSH1 0x24 00001068: DUP3 00001069: ADD 0000106a: MSTORE 0000106b: PUSH32 0x4665773a20455850495245440000000000000000000000000000000000000000 0000108c: PUSH1 0x44 0000108e: DUP3 0000108f: ADD 00001090: MSTORE 00001091: SWAP1 00001092: MLOAD 00001093: SWAP1 00001094: DUP2 00001095: SWAP1 00001096: SUB 00001097: PUSH1 0x64 00001099: ADD 0000109a: SWAP1 0000109b: REVERT 0000109c: JUMPDEST 0000109d: PUSH1 0x06 0000109f: SLOAD 000010a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010b5: DUP1 000010b6: DUP10 000010b7: AND 000010b8: PUSH1 0x00 000010ba: DUP2 000010bb: DUP2 000010bc: MSTORE 000010bd: PUSH1 0x07 000010bf: PUSH1 0x20 000010c1: SWAP1 000010c2: DUP2 000010c3: MSTORE 000010c4: PUSH1 0x40 000010c6: DUP1 000010c7: DUP4 000010c8: KECCAK256 000010c9: DUP1 000010ca: SLOAD 000010cb: PUSH1 0x01 000010cd: DUP1 000010ce: DUP3 000010cf: ADD 000010d0: SWAP1 000010d1: SWAP3 000010d2: SSTORE 000010d3: DUP3 000010d4: MLOAD 000010d5: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 000010f6: DUP2 000010f7: DUP7 000010f8: ADD 000010f9: MSTORE 000010fa: DUP1 000010fb: DUP5 000010fc: ADD 000010fd: SWAP7 000010fe: SWAP1 000010ff: SWAP7 00001100: MSTORE 00001101: SWAP6 00001102: DUP14 00001103: AND 00001104: PUSH1 0x60 00001106: DUP7 00001107: ADD 00001108: MSTORE 00001109: PUSH1 0x80 0000110b: DUP6 0000110c: ADD 0000110d: DUP13 0000110e: SWAP1 0000110f: MSTORE 00001110: PUSH1 0xa0 00001112: DUP6 00001113: ADD 00001114: SWAP6 00001115: SWAP1 00001116: SWAP6 00001117: MSTORE 00001118: PUSH1 0xc0 0000111a: DUP1 0000111b: DUP6 0000111c: ADD 0000111d: DUP12 0000111e: SWAP1 0000111f: MSTORE 00001120: DUP2 00001121: MLOAD 00001122: DUP1 00001123: DUP7 00001124: SUB 00001125: SWAP1 00001126: SWAP2 00001127: ADD 00001128: DUP2 00001129: MSTORE 0000112a: PUSH1 0xe0 0000112c: DUP6 0000112d: ADD 0000112e: DUP3 0000112f: MSTORE 00001130: DUP1 00001131: MLOAD 00001132: SWAP1 00001133: DUP4 00001134: ADD 00001135: KECCAK256 00001136: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 00001157: PUSH2 0x0100 0000115a: DUP7 0000115b: ADD 0000115c: MSTORE 0000115d: PUSH2 0x0102 00001160: DUP6 00001161: ADD 00001162: SWAP7 00001163: SWAP1 00001164: SWAP7 00001165: MSTORE 00001166: PUSH2 0x0122 00001169: DUP1 0000116a: DUP6 0000116b: ADD 0000116c: SWAP7 0000116d: SWAP1 0000116e: SWAP7 0000116f: MSTORE 00001170: DUP1 00001171: MLOAD 00001172: DUP1 00001173: DUP6 00001174: SUB 00001175: SWAP1 00001176: SWAP7 00001177: ADD 00001178: DUP7 00001179: MSTORE 0000117a: PUSH2 0x0142 0000117d: DUP5 0000117e: ADD 0000117f: DUP1 00001180: DUP3 00001181: MSTORE 00001182: DUP7 00001183: MLOAD 00001184: SWAP7 00001185: DUP4 00001186: ADD 00001187: SWAP7 00001188: SWAP1 00001189: SWAP7 0000118a: KECCAK256 0000118b: SWAP6 0000118c: DUP4 0000118d: SWAP1 0000118e: MSTORE 0000118f: PUSH2 0x0162 00001192: DUP5 00001193: ADD 00001194: DUP1 00001195: DUP3 00001196: MSTORE 00001197: DUP7 00001198: SWAP1 00001199: MSTORE 0000119a: PUSH1 0xff 0000119c: DUP10 0000119d: AND 0000119e: PUSH2 0x0182 000011a1: DUP6 000011a2: ADD 000011a3: MSTORE 000011a4: PUSH2 0x01a2 000011a7: DUP5 000011a8: ADD 000011a9: DUP9 000011aa: SWAP1 000011ab: MSTORE 000011ac: PUSH2 0x01c2 000011af: DUP5 000011b0: ADD 000011b1: DUP8 000011b2: SWAP1 000011b3: MSTORE 000011b4: MLOAD 000011b5: SWAP2 000011b6: SWAP4 000011b7: SWAP3 000011b8: PUSH2 0x01e2 000011bb: DUP1 000011bc: DUP3 000011bd: ADD 000011be: SWAP4 000011bf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000011e0: DUP2 000011e1: ADD 000011e2: SWAP3 000011e3: DUP2 000011e4: SWAP1 000011e5: SUB 000011e6: SWAP1 000011e7: SWAP2 000011e8: ADD 000011e9: SWAP1 000011ea: DUP6 000011eb: GAS 000011ec: STATICCALL 000011ed: ISZERO 000011ee: DUP1 000011ef: ISZERO 000011f0: PUSH2 0x11fd 000011f3: JUMPI 000011f4: RETURNDATASIZE 000011f5: PUSH1 0x00 000011f7: DUP1 000011f8: RETURNDATACOPY 000011f9: RETURNDATASIZE 000011fa: PUSH1 0x00 000011fc: REVERT 000011fd: JUMPDEST 000011fe: POP 000011ff: POP 00001200: PUSH1 0x40 00001202: MLOAD 00001203: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001224: ADD 00001225: MLOAD 00001226: SWAP2 00001227: POP 00001228: POP 00001229: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000123e: DUP2 0000123f: AND 00001240: ISZERO 00001241: DUP1 00001242: ISZERO 00001243: SWAP1 00001244: PUSH2 0x1278 00001247: JUMPI 00001248: POP 00001249: DUP9 0000124a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000125f: AND 00001260: DUP2 00001261: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001276: AND 00001277: EQ 00001278: JUMPDEST 00001279: PUSH2 0x12e3 0000127c: JUMPI 0000127d: PUSH1 0x40 0000127f: DUP1 00001280: MLOAD 00001281: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000012a2: DUP2 000012a3: MSTORE 000012a4: PUSH1 0x20 000012a6: PUSH1 0x04 000012a8: DUP3 000012a9: ADD 000012aa: MSTORE 000012ab: PUSH1 0x16 000012ad: PUSH1 0x24 000012af: DUP3 000012b0: ADD 000012b1: MSTORE 000012b2: PUSH32 0x4665773a20494e56414c49445f5349474e415455524500000000000000000000 000012d3: PUSH1 0x44 000012d5: DUP3 000012d6: ADD 000012d7: MSTORE 000012d8: SWAP1 000012d9: MLOAD 000012da: SWAP1 000012db: DUP2 000012dc: SWAP1 000012dd: SUB 000012de: PUSH1 0x64 000012e0: ADD 000012e1: SWAP1 000012e2: REVERT 000012e3: JUMPDEST 000012e4: PUSH2 0x12ee 000012e7: DUP10 000012e8: DUP10 000012e9: DUP10 000012ea: PUSH2 0x134a 000012ed: JUMP 000012ee: JUMPDEST 000012ef: POP 000012f0: POP 000012f1: POP 000012f2: POP 000012f3: POP 000012f4: POP 000012f5: POP 000012f6: POP 000012f7: POP 000012f8: JUMP 000012f9: JUMPDEST 000012fa: PUSH1 0x05 000012fc: PUSH1 0x20 000012fe: SWAP1 000012ff: DUP2 00001300: MSTORE 00001301: PUSH1 0x00 00001303: SWAP3 00001304: DUP4 00001305: MSTORE 00001306: PUSH1 0x40 00001308: DUP1 00001309: DUP5 0000130a: KECCAK256 0000130b: SWAP1 0000130c: SWAP2 0000130d: MSTORE 0000130e: SWAP1 0000130f: DUP3 00001310: MSTORE 00001311: SWAP1 00001312: KECCAK256 00001313: SLOAD 00001314: DUP2 00001315: JUMP 00001316: JUMPDEST 00001317: PUSH1 0x00 00001319: PUSH2 0x064f 0000131c: DUP3 0000131d: CALLER 0000131e: PUSH2 0x0b98 00001321: JUMP 00001322: JUMPDEST 00001323: PUSH1 0x00 00001325: PUSH2 0x064f 00001328: DUP3 00001329: CALLER 0000132a: PUSH2 0x073a 0000132d: JUMP 0000132e: JUMPDEST 0000132f: PUSH1 0x09 00001331: SLOAD 00001332: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001347: AND 00001348: DUP2 00001349: JUMP 0000134a: JUMPDEST 0000134b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001360: DUP1 00001361: DUP5 00001362: AND 00001363: PUSH1 0x00 00001365: DUP2 00001366: DUP2 00001367: MSTORE 00001368: PUSH1 0x05 0000136a: PUSH1 0x20 0000136c: SWAP1 0000136d: DUP2 0000136e: MSTORE 0000136f: PUSH1 0x40 00001371: DUP1 00001372: DUP4 00001373: KECCAK256 00001374: SWAP5 00001375: DUP8 00001376: AND 00001377: DUP1 00001378: DUP5 00001379: MSTORE 0000137a: SWAP5 0000137b: DUP3 0000137c: MSTORE 0000137d: SWAP2 0000137e: DUP3 0000137f: SWAP1 00001380: KECCAK256 00001381: DUP6 00001382: SWAP1 00001383: SSTORE 00001384: DUP2 00001385: MLOAD 00001386: DUP6 00001387: DUP2 00001388: MSTORE 00001389: SWAP2 0000138a: MLOAD 0000138b: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000013ac: SWAP3 000013ad: DUP2 000013ae: SWAP1 000013af: SUB 000013b0: SWAP1 000013b1: SWAP2 000013b2: ADD 000013b3: SWAP1 000013b4: LOG3 000013b5: POP 000013b6: POP 000013b7: POP 000013b8: JUMP 000013b9: JUMPDEST 000013ba: DUP1 000013bb: DUP3 000013bc: SUB 000013bd: DUP3 000013be: DUP2 000013bf: GT 000013c0: ISZERO 000013c1: PUSH2 0x064f 000013c4: JUMPI 000013c5: PUSH1 0x40 000013c7: DUP1 000013c8: MLOAD 000013c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000013ea: DUP2 000013eb: MSTORE 000013ec: PUSH1 0x20 000013ee: PUSH1 0x04 000013f0: DUP3 000013f1: ADD 000013f2: MSTORE 000013f3: PUSH1 0x15 000013f5: PUSH1 0x24 000013f7: DUP3 000013f8: ADD 000013f9: MSTORE 000013fa: PUSH32 0x64732d6d6174682d7375622d756e646572666c6f770000000000000000000000 0000141b: PUSH1 0x44 0000141d: DUP3 0000141e: ADD 0000141f: MSTORE 00001420: SWAP1 00001421: MLOAD 00001422: SWAP1 00001423: DUP2 00001424: SWAP1 00001425: SUB 00001426: PUSH1 0x64 00001428: ADD 00001429: SWAP1 0000142a: REVERT 0000142b: JUMPDEST 0000142c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001441: DUP4 00001442: AND 00001443: PUSH1 0x00 00001445: SWAP1 00001446: DUP2 00001447: MSTORE 00001448: PUSH1 0x04 0000144a: PUSH1 0x20 0000144c: MSTORE 0000144d: PUSH1 0x40 0000144f: SWAP1 00001450: KECCAK256 00001451: SLOAD 00001452: PUSH2 0x1461 00001455: SWAP1 00001456: DUP3 00001457: PUSH4 0xffffffff 0000145c: PUSH2 0x13b9 0000145f: AND 00001460: JUMP 00001461: JUMPDEST 00001462: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001477: DUP1 00001478: DUP6 00001479: AND 0000147a: PUSH1 0x00 0000147c: SWAP1 0000147d: DUP2 0000147e: MSTORE 0000147f: PUSH1 0x04 00001481: PUSH1 0x20 00001483: MSTORE 00001484: PUSH1 0x40 00001486: DUP1 00001487: DUP3 00001488: KECCAK256 00001489: SWAP4 0000148a: SWAP1 0000148b: SWAP4 0000148c: SSTORE 0000148d: SWAP1 0000148e: DUP5 0000148f: AND 00001490: DUP2 00001491: MSTORE 00001492: KECCAK256 00001493: SLOAD 00001494: PUSH2 0x14a3 00001497: SWAP1 00001498: DUP3 00001499: PUSH4 0xffffffff 0000149e: PUSH2 0x1a18 000014a1: AND 000014a2: JUMP 000014a3: JUMPDEST 000014a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014b9: DUP1 000014ba: DUP5 000014bb: AND 000014bc: PUSH1 0x00 000014be: DUP2 000014bf: DUP2 000014c0: MSTORE 000014c1: PUSH1 0x04 000014c3: PUSH1 0x20 000014c5: SWAP1 000014c6: DUP2 000014c7: MSTORE 000014c8: PUSH1 0x40 000014ca: SWAP2 000014cb: DUP3 000014cc: SWAP1 000014cd: KECCAK256 000014ce: SWAP5 000014cf: SWAP1 000014d0: SWAP5 000014d1: SSTORE 000014d2: DUP1 000014d3: MLOAD 000014d4: DUP6 000014d5: DUP2 000014d6: MSTORE 000014d7: SWAP1 000014d8: MLOAD 000014d9: SWAP2 000014da: SWAP4 000014db: SWAP3 000014dc: DUP8 000014dd: AND 000014de: SWAP3 000014df: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001500: SWAP3 00001501: SWAP2 00001502: DUP3 00001503: SWAP1 00001504: SUB 00001505: ADD 00001506: SWAP1 00001507: LOG3 00001508: POP 00001509: POP 0000150a: POP 0000150b: JUMP 0000150c: JUMPDEST 0000150d: PUSH1 0x40 0000150f: DUP1 00001510: MLOAD 00001511: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001526: DUP6 00001527: DUP2 00001528: AND 00001529: PUSH1 0x24 0000152b: DUP4 0000152c: ADD 0000152d: MSTORE 0000152e: DUP5 0000152f: DUP2 00001530: AND 00001531: PUSH1 0x44 00001533: DUP4 00001534: ADD 00001535: MSTORE 00001536: PUSH1 0x64 00001538: DUP1 00001539: DUP4 0000153a: ADD 0000153b: DUP6 0000153c: SWAP1 0000153d: MSTORE 0000153e: DUP4 0000153f: MLOAD 00001540: DUP1 00001541: DUP5 00001542: SUB 00001543: SWAP1 00001544: SWAP2 00001545: ADD 00001546: DUP2 00001547: MSTORE 00001548: PUSH1 0x84 0000154a: SWAP1 0000154b: SWAP3 0000154c: ADD 0000154d: DUP4 0000154e: MSTORE 0000154f: PUSH1 0x20 00001551: DUP3 00001552: ADD 00001553: DUP1 00001554: MLOAD 00001555: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001572: AND 00001573: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00001594: OR 00001595: DUP2 00001596: MSTORE 00001597: SWAP3 00001598: MLOAD 00001599: DUP3 0000159a: MLOAD 0000159b: PUSH1 0x00 0000159d: SWAP5 0000159e: PUSH1 0x60 000015a0: SWAP5 000015a1: SWAP4 000015a2: DUP11 000015a3: AND 000015a4: SWAP4 000015a5: SWAP3 000015a6: SWAP2 000015a7: DUP3 000015a8: SWAP2 000015a9: SWAP1 000015aa: DUP1 000015ab: DUP4 000015ac: DUP4 000015ad: JUMPDEST 000015ae: PUSH1 0x20 000015b0: DUP4 000015b1: LT 000015b2: PUSH2 0x15ea 000015b5: JUMPI 000015b6: DUP1 000015b7: MLOAD 000015b8: DUP3 000015b9: MSTORE 000015ba: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000015db: SWAP1 000015dc: SWAP3 000015dd: ADD 000015de: SWAP2 000015df: PUSH1 0x20 000015e1: SWAP2 000015e2: DUP3 000015e3: ADD 000015e4: SWAP2 000015e5: ADD 000015e6: PUSH2 0x15ad 000015e9: JUMP 000015ea: JUMPDEST 000015eb: PUSH1 0x01 000015ed: DUP4 000015ee: PUSH1 0x20 000015f0: SUB 000015f1: PUSH2 0x0100 000015f4: EXP 000015f5: SUB 000015f6: DUP1 000015f7: NOT 000015f8: DUP3 000015f9: MLOAD 000015fa: AND 000015fb: DUP2 000015fc: DUP5 000015fd: MLOAD 000015fe: AND 000015ff: DUP1 00001600: DUP3 00001601: OR 00001602: DUP6 00001603: MSTORE 00001604: POP 00001605: POP 00001606: POP 00001607: POP 00001608: POP 00001609: POP 0000160a: SWAP1 0000160b: POP 0000160c: ADD 0000160d: SWAP2 0000160e: POP 0000160f: POP 00001610: PUSH1 0x00 00001612: PUSH1 0x40 00001614: MLOAD 00001615: DUP1 00001616: DUP4 00001617: SUB 00001618: DUP2 00001619: PUSH1 0x00 0000161b: DUP7 0000161c: GAS 0000161d: CALL 0000161e: SWAP2 0000161f: POP 00001620: POP 00001621: RETURNDATASIZE 00001622: DUP1 00001623: PUSH1 0x00 00001625: DUP2 00001626: EQ 00001627: PUSH2 0x164c 0000162a: JUMPI 0000162b: PUSH1 0x40 0000162d: MLOAD 0000162e: SWAP2 0000162f: POP 00001630: PUSH1 0x1f 00001632: NOT 00001633: PUSH1 0x3f 00001635: RETURNDATASIZE 00001636: ADD 00001637: AND 00001638: DUP3 00001639: ADD 0000163a: PUSH1 0x40 0000163c: MSTORE 0000163d: RETURNDATASIZE 0000163e: DUP3 0000163f: MSTORE 00001640: RETURNDATASIZE 00001641: PUSH1 0x00 00001643: PUSH1 0x20 00001645: DUP5 00001646: ADD 00001647: RETURNDATACOPY 00001648: PUSH2 0x1651 0000164b: JUMP 0000164c: JUMPDEST 0000164d: PUSH1 0x60 0000164f: SWAP2 00001650: POP 00001651: JUMPDEST 00001652: POP 00001653: SWAP2 00001654: POP 00001655: SWAP2 00001656: POP 00001657: DUP2 00001658: DUP1 00001659: ISZERO 0000165a: PUSH2 0x167f 0000165d: JUMPI 0000165e: POP 0000165f: DUP1 00001660: MLOAD 00001661: ISZERO 00001662: DUP1 00001663: PUSH2 0x167f 00001666: JUMPI 00001667: POP 00001668: DUP1 00001669: DUP1 0000166a: PUSH1 0x20 0000166c: ADD 0000166d: SWAP1 0000166e: MLOAD 0000166f: PUSH1 0x20 00001671: DUP2 00001672: LT 00001673: ISZERO 00001674: PUSH2 0x167c 00001677: JUMPI 00001678: PUSH1 0x00 0000167a: DUP1 0000167b: REVERT 0000167c: JUMPDEST 0000167d: POP 0000167e: MLOAD 0000167f: JUMPDEST 00001680: PUSH2 0x16d4 00001683: JUMPI 00001684: PUSH1 0x40 00001686: MLOAD 00001687: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000016a8: DUP2 000016a9: MSTORE 000016aa: PUSH1 0x04 000016ac: ADD 000016ad: DUP1 000016ae: DUP1 000016af: PUSH1 0x20 000016b1: ADD 000016b2: DUP3 000016b3: DUP2 000016b4: SUB 000016b5: DUP3 000016b6: MSTORE 000016b7: PUSH1 0x31 000016b9: DUP2 000016ba: MSTORE 000016bb: PUSH1 0x20 000016bd: ADD 000016be: DUP1 000016bf: PUSH2 0x1a8b 000016c2: PUSH1 0x31 000016c4: SWAP2 000016c5: CODECOPY 000016c6: PUSH1 0x40 000016c8: ADD 000016c9: SWAP2 000016ca: POP 000016cb: POP 000016cc: PUSH1 0x40 000016ce: MLOAD 000016cf: DUP1 000016d0: SWAP2 000016d1: SUB 000016d2: SWAP1 000016d3: REVERT 000016d4: JUMPDEST 000016d5: POP 000016d6: POP 000016d7: POP 000016d8: POP 000016d9: POP 000016da: POP 000016db: JUMP 000016dc: JUMPDEST 000016dd: PUSH1 0x03 000016df: SLOAD 000016e0: PUSH2 0x16ef 000016e3: SWAP1 000016e4: DUP3 000016e5: PUSH4 0xffffffff 000016ea: PUSH2 0x1a18 000016ed: AND 000016ee: JUMP 000016ef: JUMPDEST 000016f0: PUSH1 0x03 000016f2: SSTORE 000016f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001708: DUP3 00001709: AND 0000170a: PUSH1 0x00 0000170c: SWAP1 0000170d: DUP2 0000170e: MSTORE 0000170f: PUSH1 0x04 00001711: PUSH1 0x20 00001713: MSTORE 00001714: PUSH1 0x40 00001716: SWAP1 00001717: KECCAK256 00001718: SLOAD 00001719: PUSH2 0x1728 0000171c: SWAP1 0000171d: DUP3 0000171e: PUSH4 0xffffffff 00001723: PUSH2 0x1a18 00001726: AND 00001727: JUMP 00001728: JUMPDEST 00001729: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000173e: DUP4 0000173f: AND 00001740: PUSH1 0x00 00001742: DUP2 00001743: DUP2 00001744: MSTORE 00001745: PUSH1 0x04 00001747: PUSH1 0x20 00001749: SWAP1 0000174a: DUP2 0000174b: MSTORE 0000174c: PUSH1 0x40 0000174e: DUP1 0000174f: DUP4 00001750: KECCAK256 00001751: SWAP5 00001752: SWAP1 00001753: SWAP5 00001754: SSTORE 00001755: DUP4 00001756: MLOAD 00001757: DUP6 00001758: DUP2 00001759: MSTORE 0000175a: SWAP4 0000175b: MLOAD 0000175c: SWAP3 0000175d: SWAP4 0000175e: SWAP2 0000175f: SWAP3 00001760: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001781: SWAP3 00001782: DUP2 00001783: SWAP1 00001784: SUB 00001785: SWAP1 00001786: SWAP2 00001787: ADD 00001788: SWAP1 00001789: LOG3 0000178a: POP 0000178b: POP 0000178c: JUMP 0000178d: JUMPDEST 0000178e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017a3: DUP3 000017a4: AND 000017a5: PUSH1 0x00 000017a7: SWAP1 000017a8: DUP2 000017a9: MSTORE 000017aa: PUSH1 0x04 000017ac: PUSH1 0x20 000017ae: MSTORE 000017af: PUSH1 0x40 000017b1: SWAP1 000017b2: KECCAK256 000017b3: SLOAD 000017b4: PUSH2 0x17c3 000017b7: SWAP1 000017b8: DUP3 000017b9: PUSH4 0xffffffff 000017be: PUSH2 0x13b9 000017c1: AND 000017c2: JUMP 000017c3: JUMPDEST 000017c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017d9: DUP4 000017da: AND 000017db: PUSH1 0x00 000017dd: SWAP1 000017de: DUP2 000017df: MSTORE 000017e0: PUSH1 0x04 000017e2: PUSH1 0x20 000017e4: MSTORE 000017e5: PUSH1 0x40 000017e7: SWAP1 000017e8: KECCAK256 000017e9: SSTORE 000017ea: PUSH1 0x03 000017ec: SLOAD 000017ed: PUSH2 0x17fc 000017f0: SWAP1 000017f1: DUP3 000017f2: PUSH4 0xffffffff 000017f7: PUSH2 0x13b9 000017fa: AND 000017fb: JUMP 000017fc: JUMPDEST 000017fd: PUSH1 0x03 000017ff: SSTORE 00001800: PUSH1 0x40 00001802: DUP1 00001803: MLOAD 00001804: DUP3 00001805: DUP2 00001806: MSTORE 00001807: SWAP1 00001808: MLOAD 00001809: PUSH1 0x00 0000180b: SWAP2 0000180c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001821: DUP6 00001822: AND 00001823: SWAP2 00001824: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001845: SWAP2 00001846: DUP2 00001847: SWAP1 00001848: SUB 00001849: PUSH1 0x20 0000184b: ADD 0000184c: SWAP1 0000184d: LOG3 0000184e: POP 0000184f: POP 00001850: JUMP 00001851: JUMPDEST 00001852: PUSH1 0x40 00001854: DUP1 00001855: MLOAD 00001856: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000186b: DUP5 0000186c: DUP2 0000186d: AND 0000186e: PUSH1 0x24 00001870: DUP4 00001871: ADD 00001872: MSTORE 00001873: PUSH1 0x44 00001875: DUP1 00001876: DUP4 00001877: ADD 00001878: DUP6 00001879: SWAP1 0000187a: MSTORE 0000187b: DUP4 0000187c: MLOAD 0000187d: DUP1 0000187e: DUP5 0000187f: SUB 00001880: SWAP1 00001881: SWAP2 00001882: ADD 00001883: DUP2 00001884: MSTORE 00001885: PUSH1 0x64 00001887: SWAP1 00001888: SWAP3 00001889: ADD 0000188a: DUP4 0000188b: MSTORE 0000188c: PUSH1 0x20 0000188e: DUP3 0000188f: ADD 00001890: DUP1 00001891: MLOAD 00001892: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000018af: AND 000018b0: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 000018d1: OR 000018d2: DUP2 000018d3: MSTORE 000018d4: SWAP3 000018d5: MLOAD 000018d6: DUP3 000018d7: MLOAD 000018d8: PUSH1 0x00 000018da: SWAP5 000018db: PUSH1 0x60 000018dd: SWAP5 000018de: SWAP4 000018df: DUP10 000018e0: AND 000018e1: SWAP4 000018e2: SWAP3 000018e3: SWAP2 000018e4: DUP3 000018e5: SWAP2 000018e6: SWAP1 000018e7: DUP1 000018e8: DUP4 000018e9: DUP4 000018ea: JUMPDEST 000018eb: PUSH1 0x20 000018ed: DUP4 000018ee: LT 000018ef: PUSH2 0x1927 000018f2: JUMPI 000018f3: DUP1 000018f4: MLOAD 000018f5: DUP3 000018f6: MSTORE 000018f7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001918: SWAP1 00001919: SWAP3 0000191a: ADD 0000191b: SWAP2 0000191c: PUSH1 0x20 0000191e: SWAP2 0000191f: DUP3 00001920: ADD 00001921: SWAP2 00001922: ADD 00001923: PUSH2 0x18ea 00001926: JUMP 00001927: JUMPDEST 00001928: PUSH1 0x01 0000192a: DUP4 0000192b: PUSH1 0x20 0000192d: SUB 0000192e: PUSH2 0x0100 00001931: EXP 00001932: SUB 00001933: DUP1 00001934: NOT 00001935: DUP3 00001936: MLOAD 00001937: AND 00001938: DUP2 00001939: DUP5 0000193a: MLOAD 0000193b: AND 0000193c: DUP1 0000193d: DUP3 0000193e: OR 0000193f: DUP6 00001940: MSTORE 00001941: POP 00001942: POP 00001943: POP 00001944: POP 00001945: POP 00001946: POP 00001947: SWAP1 00001948: POP 00001949: ADD 0000194a: SWAP2 0000194b: POP 0000194c: POP 0000194d: PUSH1 0x00 0000194f: PUSH1 0x40 00001951: MLOAD 00001952: DUP1 00001953: DUP4 00001954: SUB 00001955: DUP2 00001956: PUSH1 0x00 00001958: DUP7 00001959: GAS 0000195a: CALL 0000195b: SWAP2 0000195c: POP 0000195d: POP 0000195e: RETURNDATASIZE 0000195f: DUP1 00001960: PUSH1 0x00 00001962: DUP2 00001963: EQ 00001964: PUSH2 0x1989 00001967: JUMPI 00001968: PUSH1 0x40 0000196a: MLOAD 0000196b: SWAP2 0000196c: POP 0000196d: PUSH1 0x1f 0000196f: NOT 00001970: PUSH1 0x3f 00001972: RETURNDATASIZE 00001973: ADD 00001974: AND 00001975: DUP3 00001976: ADD 00001977: PUSH1 0x40 00001979: MSTORE 0000197a: RETURNDATASIZE 0000197b: DUP3 0000197c: MSTORE 0000197d: RETURNDATASIZE 0000197e: PUSH1 0x00 00001980: PUSH1 0x20 00001982: DUP5 00001983: ADD 00001984: RETURNDATACOPY 00001985: PUSH2 0x198e 00001988: JUMP 00001989: JUMPDEST 0000198a: PUSH1 0x60 0000198c: SWAP2 0000198d: POP 0000198e: JUMPDEST 0000198f: POP 00001990: SWAP2 00001991: POP 00001992: SWAP2 00001993: POP 00001994: DUP2 00001995: DUP1 00001996: ISZERO 00001997: PUSH2 0x19bc 0000199a: JUMPI 0000199b: POP 0000199c: DUP1 0000199d: MLOAD 0000199e: ISZERO 0000199f: DUP1 000019a0: PUSH2 0x19bc 000019a3: JUMPI 000019a4: POP 000019a5: DUP1 000019a6: DUP1 000019a7: PUSH1 0x20 000019a9: ADD 000019aa: SWAP1 000019ab: MLOAD 000019ac: PUSH1 0x20 000019ae: DUP2 000019af: LT 000019b0: ISZERO 000019b1: PUSH2 0x19b9 000019b4: JUMPI 000019b5: PUSH1 0x00 000019b7: DUP1 000019b8: REVERT 000019b9: JUMPDEST 000019ba: POP 000019bb: MLOAD 000019bc: JUMPDEST 000019bd: PUSH2 0x1a11 000019c0: JUMPI 000019c1: PUSH1 0x40 000019c3: MLOAD 000019c4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000019e5: DUP2 000019e6: MSTORE 000019e7: PUSH1 0x04 000019e9: ADD 000019ea: DUP1 000019eb: DUP1 000019ec: PUSH1 0x20 000019ee: ADD 000019ef: DUP3 000019f0: DUP2 000019f1: SUB 000019f2: DUP3 000019f3: MSTORE 000019f4: PUSH1 0x2d 000019f6: DUP2 000019f7: MSTORE 000019f8: PUSH1 0x20 000019fa: ADD 000019fb: DUP1 000019fc: PUSH2 0x1adf 000019ff: PUSH1 0x2d 00001a01: SWAP2 00001a02: CODECOPY 00001a03: PUSH1 0x40 00001a05: ADD 00001a06: SWAP2 00001a07: POP 00001a08: POP 00001a09: PUSH1 0x40 00001a0b: MLOAD 00001a0c: DUP1 00001a0d: SWAP2 00001a0e: SUB 00001a0f: SWAP1 00001a10: REVERT 00001a11: JUMPDEST 00001a12: POP 00001a13: POP 00001a14: POP 00001a15: POP 00001a16: POP 00001a17: JUMP 00001a18: JUMPDEST 00001a19: DUP1 00001a1a: DUP3 00001a1b: ADD 00001a1c: DUP3 00001a1d: DUP2 00001a1e: LT 00001a1f: ISZERO 00001a20: PUSH2 0x064f 00001a23: JUMPI 00001a24: PUSH1 0x40 00001a26: DUP1 00001a27: MLOAD 00001a28: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001a49: DUP2 00001a4a: MSTORE 00001a4b: PUSH1 0x20 00001a4d: PUSH1 0x04 00001a4f: DUP3 00001a50: ADD 00001a51: MSTORE 00001a52: PUSH1 0x14 00001a54: PUSH1 0x24 00001a56: DUP3 00001a57: ADD 00001a58: MSTORE 00001a59: PUSH32 0x64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000 00001a7a: PUSH1 0x44 00001a7c: DUP3 00001a7d: ADD 00001a7e: MSTORE 00001a7f: SWAP1 00001a80: MLOAD 00001a81: SWAP1 00001a82: DUP2 00001a83: SWAP1 00001a84: SUB 00001a85: PUSH1 0x64 00001a87: ADD 00001a88: SWAP1 00001a89: REVERT 00001a8a: INVALID 00001a8b: SLOAD 00001a8c: PUSH19 0x616e7366657248656c7065723a3a7472616e73 00001aa0: PUSH7 0x657246726f6d3a 00001aa8: KECCAK256 00001aa9: PUSH21 0x72616e7366657246726f6d206661696c6564466577 00001abf: GASPRICE 00001ac0: KECCAK256 00001ac1: PUSH27 0x65726f20616d6f756e7420756e77726170206e6f7420616c6c6f77 00001add: PUSH6 0x645472616e73 00001ae4: PUSH7 0x657248656c7065 00001aec: PUSH19 0x3a3a736166655472616e736665723a20747261 00001b00: PUSH15 0x73666572206661696c6564a2646970 00001b10: PUSH7 0x7358221220a6e8 00001b18: SWAP10 00001b19: SAR 00001b1a: SHR 00001b1b: SWAP12 00001b1c: UNKNOWN(0xB4) 00001b1d: PC 00001b1e: DUP9 00001b1f: PUSH13 0xaf6747ba791abf4d04a0ed9229 00001b2d: ISZERO 00001b2e: NOT 00001b2f: UNKNOWN(0xC0) 00001b30: PUSH28
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x492dbd421e444d7847c45b29d6c019aea2bd5af775c84e5bf82a459742709c7e
call_targets:
0xa250cc729bb3323e7933022a67b52200fe354767
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x492dbd421e444d7847c45b29d6c019aea2bd5af775c84e5bf82a459742709c7e",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xa250cc729bb3323e7933022a67b52200fe354767"
],
"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": "0xde0e9a3e",
"selector": "0xde0e9a3e",
"calldata_variants": [
"0xde0e9a3e",
"0xde0e9a3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea598cb0",
"selector": "0xea598cb0",
"calldata_variants": [
"0xea598cb0",
"0xea598cb00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc0c546a",
"selector": "0xfc0c546a",
"calldata_variants": [
"0xfc0c546a",
"0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc45a0155",
"selector": "0xc45a0155",
"calldata_variants": [
"0xc45a0155",
"0xc45a01550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7ecebe00",
"selector": "0x7ecebe00",
"calldata_variants": [
"0x7ecebe00",
"0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5661,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6490,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x492dbd421e444d7847c45b29d6c019aea2bd5af775c84e5bf82a459742709c7e
call_targets:
0xa250cc729bb3323e7933022a67b52200fe354767
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x492dbd421e444d7847c45b29d6c019aea2bd5af775c84e5bf82a459742709c7e",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xa250cc729bb3323e7933022a67b52200fe354767"
],
"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": "0xde0e9a3e",
"selector": "0xde0e9a3e",
"calldata_variants": [
"0xde0e9a3e",
"0xde0e9a3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea598cb0",
"selector": "0xea598cb0",
"calldata_variants": [
"0xea598cb0",
"0xea598cb00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc0c546a",
"selector": "0xfc0c546a",
"calldata_variants": [
"0xfc0c546a",
"0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc45a0155",
"selector": "0xc45a0155",
"calldata_variants": [
"0xc45a0155",
"0xc45a01550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7ecebe00",
"selector": "0x7ecebe00",
"calldata_variants": [
"0x7ecebe00",
"0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5661,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6490,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| medium | math | codex | Wrap mints based on requested amount instead of actual received tokens | 75 | no | — |
viewevidence_json{
"evidence": "`wrapTo` calls `safeTransferFrom` and then mints `amount` without verifying the contract\u2019s token balance increase.",
"locations": [
"contracts/contracts/FewWrappedToken.sol:165",
"contracts/contracts/FewWrappedToken.sol:167",
"contracts/contracts/FewWrappedToken.sol:168"
],
"recommendation": "Measure actual tokens received by checking `balanceOf` before/after transfer and mint only the delta, or explicitly reject fee-on-transfer/rebasing tokens (e.g., via a whitelist).",
"exploit_scenario": "If the underlying token is fee-on-transfer, rebasing, or malicious (returns success without transferring), `wrapTo` still mints the full requested amount. An attacker can deposit such a token to receive more wrapped tokens than backing, then later redeem full amounts once other users deposit, leaving the contract undercollateralized and other holders unable to redeem."
}
|
| low | auth | codex | Permit allows malleable signatures (no EIP-2 s/v checks) | 65 | no | — |
viewevidence_json{
"evidence": "`ecrecover` is used directly with no validation of `v` or `s`.",
"locations": [
"contracts/contracts/FewWrappedToken.sol:115",
"contracts/contracts/FewWrappedToken.sol:124",
"contracts/contracts/FewWrappedToken.sol:125"
],
"recommendation": "Use OpenZeppelin\u2019s `ECDSA` helpers or add explicit checks for `v` \u2208 {27,28} and `s` \u2264 secp256k1n/2.",
"exploit_scenario": "Because `permit` accepts any `v` and does not enforce `s` in the lower half-order, signatures are malleable. A second valid signature for the same permit can be submitted, which can enable front\u2011running or replay in systems that expect signature uniqueness (even though nonces prevent reuse for state changes)."
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 6
}
|