019bb2d5-fd30-71f7-b28c-904f162f05ba
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 |
|---|---|---|---|---|
| 39566 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 39567 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 39568 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 39569 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 39570 | capability.graph | complete | 1 / 3 | 3 months ago |
| 39571 | detector.run | complete | 1 / 3 | 3 months ago |
| 39572 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39721 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"The payment calculation hardcodes a 1000 denominator and never enforces that total shares equal 1000, which can permanently lock or misallocate funds if deployed with any other share sum.","findings":[{"severity":"medium","category":"math","title":"Hardcoded 1000 denominator breaks accounting when shares do not sum to 1000","exploit_scenario":"If the constructor is configured with shares that do not sum to 1000, payouts are miscomputed. When the total is less than 1000, a portion of ETH/tokens becomes permanently unclaimable (no rescue method). When the total exceeds 1000, the contract becomes insolvent and some payees can never withdraw their computed entitlement, leaving funds stuck or unfairly distributed as deposits arrive.","recommendation":"Use `_totalShares` as the denominator (as in OpenZeppelin PaymentSplitter), or enforce in `_addPayee`/constructor that the total shares must equal 1000 and revert otherwise.","evidence":"`_pendingPayment` divides by a constant 1000 and ignores `_totalShares`, while `_totalShares` is accumulated but never used for payouts.","locations":["contracts/AmbassadorsFund.sol:98","contracts/AmbassadorsFund.sol:103","contracts/AmbassadorsFund.sol:115"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-f67p7cty
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb2e4-0a49-7741-b8a5-b58e6fabde65
--------
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
**Preparing to audit file contents**
exec
/bin/bash -lc ls in /tmp/codex-f67p7cty succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
@openzeppelin
exec
/bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-f67p7cty succeeded in 27ms:
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/AmbassadorsFund.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Address.sol";
import "@openzeppelin/contracts/utils/Context.sol";
contract AmbassadorsFund is Context, Ownable {
event PayeeAdded(address account, uint256 shares);
event PaymentReleased(address to, uint256 amount);
event ERC20PaymentReleased(IERC20 indexed token, address to, uint256 amount);
event PaymentReceived(address from, uint256 amount);
thinking
**Verifying bundle completeness**
exec
/bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-f67p7cty succeeded in 7ms:
thinking
**Analyzing PaymentSplitter vulnerabilities**
thinking
**Examining reentrancy and payment calculation flaws**
I'll analyze how reentrancy during ERC20 transfers might inflate payable amounts due to balance timing in token hooks, especially with malicious tokens, and how using a fixed denominator without enforcing total shares causes potential over- or under-distribution and permanent fund locks. I'll also note implications of ETH release access control requiring the payee to call.
exec
/bin/bash -lc 'nl -ba contracts/AmbassadorsFund.sol' in /tmp/codex-f67p7cty succeeded in 28ms:
1 // SPDX-License-Identifier: MIT
2
3 pragma solidity ^0.8.0;
4
5 import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
6 import "@openzeppelin/contracts/access/Ownable.sol";
7 import "@openzeppelin/contracts/utils/Address.sol";
8 import "@openzeppelin/contracts/utils/Context.sol";
9
10 contract AmbassadorsFund is Context, Ownable {
11 event PayeeAdded(address account, uint256 shares);
12 event PaymentReleased(address to, uint256 amount);
13 event ERC20PaymentReleased(IERC20 indexed token, address to, uint256 amount);
14 event PaymentReceived(address from, uint256 amount);
15
16 uint256 private _totalShares;
17 uint256 private _totalReleased;
18
19 mapping(address => uint256) private _shares;
20 mapping(address => uint256) private _released;
thinking
**Preparing vulnerability report data**
codex
{"no_findings":false,"summary":"The payment calculation hardcodes a 1000 denominator and never enforces that total shares equal 1000, which can permanently lock or misallocate funds if deployed with any other share sum.","findings":[{"severity":"medium","category":"math","title":"Hardcoded 1000 denominator breaks accounting when shares do not sum to 1000","exploit_scenario":"If the constructor is configured with shares that do not sum to 1000, payouts are miscomputed. When the total is less than 1000, a portion of ETH/tokens becomes permanently unclaimable (no rescue method). When the total exceeds 1000, the contract becomes insolvent and some payees can never withdraw their computed entitlement, leaving funds stuck or unfairly distributed as deposits arrive.","recommendation":"Use `_totalShares` as the denominator (as in OpenZeppelin PaymentSplitter), or enforce in `_addPayee`/constructor that the total shares must equal 1000 and revert otherwise.","evidence":"`_pendingPayment` divides by a constant 1000 and ignores `_totalShares`, while `_totalShares` is accumulated but never used for payouts.","locations":["contracts/AmbassadorsFund.sol:98","contracts/AmbassadorsFund.sol:103","contracts/AmbassadorsFund.sol:115"]}]}
tokens used
14,596
{
"codex": {
"ran_at": "2026-01-12T15:49:49.986297+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 6,
"import_count": 7,
"first_party_contracts_count": 1
},
"summary": "The payment calculation hardcodes a 1000 denominator and never enforces that total shares equal 1000, which can permanently lock or misallocate funds if deployed with any other share sum.",
"raw_final": {
"summary": "The payment calculation hardcodes a 1000 denominator and never enforces that total shares equal 1000, which can permanently lock or misallocate funds if deployed with any other share sum.",
"findings": [
{
"title": "Hardcoded 1000 denominator breaks accounting when shares do not sum to 1000",
"category": "math",
"evidence": "`_pendingPayment` divides by a constant 1000 and ignores `_totalShares`, while `_totalShares` is accumulated but never used for payouts.",
"severity": "medium",
"locations": [
"contracts/AmbassadorsFund.sol:98",
"contracts/AmbassadorsFund.sol:103",
"contracts/AmbassadorsFund.sol:115"
],
"recommendation": "Use `_totalShares` as the denominator (as in OpenZeppelin PaymentSplitter), or enforce in `_addPayee`/constructor that the total shares must equal 1000 and revert otherwise.",
"exploit_scenario": "If the constructor is configured with shares that do not sum to 1000, payouts are miscomputed. When the total is less than 1000, a portion of ETH/tokens becomes permanently unclaimable (no rescue method). When the total exceeds 1000, the contract becomes insolvent and some payees can never withdraw their computed entitlement, leaving funds stuck or unfairly distributed as deposits arrive."
}
],
"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 0x00ab 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8da5cb5b 00000019: GT 0000001a: PUSH2 0x0064 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x8da5cb5b 00000024: EQ 00000025: PUSH2 0x0205 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x9852595c 0000002f: EQ 00000030: PUSH2 0x0230 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xce7c2ac2 0000003a: EQ 0000003b: PUSH2 0x026d 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd79779b2 00000045: EQ 00000046: PUSH2 0x02aa 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xe33b7de3 00000050: EQ 00000051: PUSH2 0x02e7 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf2fde38b 0000005b: EQ 0000005c: PUSH2 0x0312 0000005f: JUMPI 00000060: PUSH2 0x00f2 00000063: JUMP 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0x19165587 0000006b: EQ 0000006c: PUSH2 0x00f7 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0x3a98ef39 00000076: EQ 00000077: PUSH2 0x0120 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x406072a9 00000081: EQ 00000082: PUSH2 0x014b 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0x48b75044 0000008c: EQ 0000008d: PUSH2 0x0188 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0x715018a6 00000097: EQ 00000098: PUSH2 0x01b1 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0x8b83209b 000000a2: EQ 000000a3: PUSH2 0x01c8 000000a6: JUMPI 000000a7: PUSH2 0x00f2 000000aa: JUMP 000000ab: JUMPDEST 000000ac: CALLDATASIZE 000000ad: PUSH2 0x00f2 000000b0: JUMPI 000000b1: PUSH32 0x6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770 000000d2: PUSH2 0x00d9 000000d5: PUSH2 0x033b 000000d8: JUMP 000000d9: JUMPDEST 000000da: CALLVALUE 000000db: PUSH1 0x40 000000dd: MLOAD 000000de: PUSH2 0x00e8 000000e1: SWAP3 000000e2: SWAP2 000000e3: SWAP1 000000e4: PUSH2 0x172a 000000e7: JUMP 000000e8: JUMPDEST 000000e9: PUSH1 0x40 000000eb: MLOAD 000000ec: DUP1 000000ed: SWAP2 000000ee: SUB 000000ef: SWAP1 000000f0: LOG1 000000f1: STOP 000000f2: JUMPDEST 000000f3: PUSH1 0x00 000000f5: DUP1 000000f6: REVERT 000000f7: JUMPDEST 000000f8: CALLVALUE 000000f9: DUP1 000000fa: ISZERO 000000fb: PUSH2 0x0103 000000fe: JUMPI 000000ff: PUSH1 0x00 00000101: DUP1 00000102: REVERT 00000103: JUMPDEST 00000104: POP 00000105: PUSH2 0x011e 00000108: PUSH1 0x04 0000010a: DUP1 0000010b: CALLDATASIZE 0000010c: SUB 0000010d: DUP2 0000010e: ADD 0000010f: SWAP1 00000110: PUSH2 0x0119 00000113: SWAP2 00000114: SWAP1 00000115: PUSH2 0x1176 00000118: JUMP 00000119: JUMPDEST 0000011a: PUSH2 0x0343 0000011d: JUMP 0000011e: JUMPDEST 0000011f: STOP 00000120: JUMPDEST 00000121: CALLVALUE 00000122: DUP1 00000123: ISZERO 00000124: PUSH2 0x012c 00000127: JUMPI 00000128: PUSH1 0x00 0000012a: DUP1 0000012b: REVERT 0000012c: JUMPDEST 0000012d: POP 0000012e: PUSH2 0x0135 00000131: PUSH2 0x055c 00000134: JUMP 00000135: JUMPDEST 00000136: PUSH1 0x40 00000138: MLOAD 00000139: PUSH2 0x0142 0000013c: SWAP2 0000013d: SWAP1 0000013e: PUSH2 0x18b5 00000141: JUMP 00000142: JUMPDEST 00000143: PUSH1 0x40 00000145: MLOAD 00000146: DUP1 00000147: SWAP2 00000148: SUB 00000149: SWAP1 0000014a: RETURN 0000014b: JUMPDEST 0000014c: CALLVALUE 0000014d: DUP1 0000014e: ISZERO 0000014f: PUSH2 0x0157 00000152: JUMPI 00000153: PUSH1 0x00 00000155: DUP1 00000156: REVERT 00000157: JUMPDEST 00000158: POP 00000159: PUSH2 0x0172 0000015c: PUSH1 0x04 0000015e: DUP1 0000015f: CALLDATASIZE 00000160: SUB 00000161: DUP2 00000162: ADD 00000163: SWAP1 00000164: PUSH2 0x016d 00000167: SWAP2 00000168: SWAP1 00000169: PUSH2 0x11f1 0000016c: JUMP 0000016d: JUMPDEST 0000016e: PUSH2 0x0566 00000171: JUMP 00000172: JUMPDEST 00000173: PUSH1 0x40 00000175: MLOAD 00000176: PUSH2 0x017f 00000179: SWAP2 0000017a: SWAP1 0000017b: PUSH2 0x18b5 0000017e: JUMP 0000017f: JUMPDEST 00000180: PUSH1 0x40 00000182: MLOAD 00000183: DUP1 00000184: SWAP2 00000185: SUB 00000186: SWAP1 00000187: RETURN 00000188: JUMPDEST 00000189: CALLVALUE 0000018a: DUP1 0000018b: ISZERO 0000018c: PUSH2 0x0194 0000018f: JUMPI 00000190: PUSH1 0x00 00000192: DUP1 00000193: REVERT 00000194: JUMPDEST 00000195: POP 00000196: PUSH2 0x01af 00000199: PUSH1 0x04 0000019b: DUP1 0000019c: CALLDATASIZE 0000019d: SUB 0000019e: DUP2 0000019f: ADD 000001a0: SWAP1 000001a1: PUSH2 0x01aa 000001a4: SWAP2 000001a5: SWAP1 000001a6: PUSH2 0x11f1 000001a9: JUMP 000001aa: JUMPDEST 000001ab: PUSH2 0x05ed 000001ae: JUMP 000001af: JUMPDEST 000001b0: STOP 000001b1: JUMPDEST 000001b2: CALLVALUE 000001b3: DUP1 000001b4: ISZERO 000001b5: PUSH2 0x01bd 000001b8: JUMPI 000001b9: PUSH1 0x00 000001bb: DUP1 000001bc: REVERT 000001bd: JUMPDEST 000001be: POP 000001bf: PUSH2 0x01c6 000001c2: PUSH2 0x08b5 000001c5: JUMP 000001c6: JUMPDEST 000001c7: STOP 000001c8: JUMPDEST 000001c9: CALLVALUE 000001ca: DUP1 000001cb: ISZERO 000001cc: PUSH2 0x01d4 000001cf: JUMPI 000001d0: PUSH1 0x00 000001d2: DUP1 000001d3: REVERT 000001d4: JUMPDEST 000001d5: POP 000001d6: PUSH2 0x01ef 000001d9: PUSH1 0x04 000001db: DUP1 000001dc: CALLDATASIZE 000001dd: SUB 000001de: DUP2 000001df: ADD 000001e0: SWAP1 000001e1: PUSH2 0x01ea 000001e4: SWAP2 000001e5: SWAP1 000001e6: PUSH2 0x122d 000001e9: JUMP 000001ea: JUMPDEST 000001eb: PUSH2 0x093d 000001ee: JUMP 000001ef: JUMPDEST 000001f0: PUSH1 0x40 000001f2: MLOAD 000001f3: PUSH2 0x01fc 000001f6: SWAP2 000001f7: SWAP1 000001f8: PUSH2 0x16e6 000001fb: JUMP 000001fc: JUMPDEST 000001fd: PUSH1 0x40 000001ff: MLOAD 00000200: DUP1 00000201: SWAP2 00000202: SUB 00000203: SWAP1 00000204: RETURN 00000205: JUMPDEST 00000206: CALLVALUE 00000207: DUP1 00000208: ISZERO 00000209: PUSH2 0x0211 0000020c: JUMPI 0000020d: PUSH1 0x00 0000020f: DUP1 00000210: REVERT 00000211: JUMPDEST 00000212: POP 00000213: PUSH2 0x021a 00000216: PUSH2 0x09ab 00000219: JUMP 0000021a: JUMPDEST 0000021b: PUSH1 0x40 0000021d: MLOAD 0000021e: PUSH2 0x0227 00000221: SWAP2 00000222: SWAP1 00000223: PUSH2 0x16e6 00000226: JUMP 00000227: JUMPDEST 00000228: PUSH1 0x40 0000022a: MLOAD 0000022b: DUP1 0000022c: SWAP2 0000022d: SUB 0000022e: SWAP1 0000022f: RETURN 00000230: JUMPDEST 00000231: CALLVALUE 00000232: DUP1 00000233: ISZERO 00000234: PUSH2 0x023c 00000237: JUMPI 00000238: PUSH1 0x00 0000023a: DUP1 0000023b: REVERT 0000023c: JUMPDEST 0000023d: POP 0000023e: PUSH2 0x0257 00000241: PUSH1 0x04 00000243: DUP1 00000244: CALLDATASIZE 00000245: SUB 00000246: DUP2 00000247: ADD 00000248: SWAP1 00000249: PUSH2 0x0252 0000024c: SWAP2 0000024d: SWAP1 0000024e: PUSH2 0x114d 00000251: JUMP 00000252: JUMPDEST 00000253: PUSH2 0x09d4 00000256: JUMP 00000257: JUMPDEST 00000258: PUSH1 0x40 0000025a: MLOAD 0000025b: PUSH2 0x0264 0000025e: SWAP2 0000025f: SWAP1 00000260: PUSH2 0x18b5 00000263: JUMP 00000264: JUMPDEST 00000265: PUSH1 0x40 00000267: MLOAD 00000268: DUP1 00000269: SWAP2 0000026a: SUB 0000026b: SWAP1 0000026c: RETURN 0000026d: JUMPDEST 0000026e: CALLVALUE 0000026f: DUP1 00000270: ISZERO 00000271: PUSH2 0x0279 00000274: JUMPI 00000275: PUSH1 0x00 00000277: DUP1 00000278: REVERT 00000279: JUMPDEST 0000027a: POP 0000027b: PUSH2 0x0294 0000027e: PUSH1 0x04 00000280: DUP1 00000281: CALLDATASIZE 00000282: SUB 00000283: DUP2 00000284: ADD 00000285: SWAP1 00000286: PUSH2 0x028f 00000289: SWAP2 0000028a: SWAP1 0000028b: PUSH2 0x114d 0000028e: JUMP 0000028f: JUMPDEST 00000290: PUSH2 0x0a1d 00000293: JUMP 00000294: JUMPDEST 00000295: PUSH1 0x40 00000297: MLOAD 00000298: PUSH2 0x02a1 0000029b: SWAP2 0000029c: SWAP1 0000029d: PUSH2 0x18b5 000002a0: JUMP 000002a1: JUMPDEST 000002a2: PUSH1 0x40 000002a4: MLOAD 000002a5: DUP1 000002a6: SWAP2 000002a7: SUB 000002a8: SWAP1 000002a9: RETURN 000002aa: JUMPDEST 000002ab: CALLVALUE 000002ac: DUP1 000002ad: ISZERO 000002ae: PUSH2 0x02b6 000002b1: JUMPI 000002b2: PUSH1 0x00 000002b4: DUP1 000002b5: REVERT 000002b6: JUMPDEST 000002b7: POP 000002b8: PUSH2 0x02d1 000002bb: PUSH1 0x04 000002bd: DUP1 000002be: CALLDATASIZE 000002bf: SUB 000002c0: DUP2 000002c1: ADD 000002c2: SWAP1 000002c3: PUSH2 0x02cc 000002c6: SWAP2 000002c7: SWAP1 000002c8: PUSH2 0x11c8 000002cb: JUMP 000002cc: JUMPDEST 000002cd: PUSH2 0x0a66 000002d0: JUMP 000002d1: JUMPDEST 000002d2: PUSH1 0x40 000002d4: MLOAD 000002d5: PUSH2 0x02de 000002d8: SWAP2 000002d9: SWAP1 000002da: PUSH2 0x18b5 000002dd: JUMP 000002de: JUMPDEST 000002df: PUSH1 0x40 000002e1: MLOAD 000002e2: DUP1 000002e3: SWAP2 000002e4: SUB 000002e5: SWAP1 000002e6: RETURN 000002e7: JUMPDEST 000002e8: CALLVALUE 000002e9: DUP1 000002ea: ISZERO 000002eb: PUSH2 0x02f3 000002ee: JUMPI 000002ef: PUSH1 0x00 000002f1: DUP1 000002f2: REVERT 000002f3: JUMPDEST 000002f4: POP 000002f5: PUSH2 0x02fc 000002f8: PUSH2 0x0aaf 000002fb: JUMP 000002fc: JUMPDEST 000002fd: PUSH1 0x40 000002ff: MLOAD 00000300: PUSH2 0x0309 00000303: SWAP2 00000304: SWAP1 00000305: PUSH2 0x18b5 00000308: JUMP 00000309: JUMPDEST 0000030a: PUSH1 0x40 0000030c: MLOAD 0000030d: DUP1 0000030e: SWAP2 0000030f: SUB 00000310: SWAP1 00000311: RETURN 00000312: JUMPDEST 00000313: CALLVALUE 00000314: DUP1 00000315: ISZERO 00000316: PUSH2 0x031e 00000319: JUMPI 0000031a: PUSH1 0x00 0000031c: DUP1 0000031d: REVERT 0000031e: JUMPDEST 0000031f: POP 00000320: PUSH2 0x0339 00000323: PUSH1 0x04 00000325: DUP1 00000326: CALLDATASIZE 00000327: SUB 00000328: DUP2 00000329: ADD 0000032a: SWAP1 0000032b: PUSH2 0x0334 0000032e: SWAP2 0000032f: SWAP1 00000330: PUSH2 0x114d 00000333: JUMP 00000334: JUMPDEST 00000335: PUSH2 0x0ab9 00000338: JUMP 00000339: JUMPDEST 0000033a: STOP 0000033b: JUMPDEST 0000033c: PUSH1 0x00 0000033e: CALLER 0000033f: SWAP1 00000340: POP 00000341: SWAP1 00000342: JUMP 00000343: JUMPDEST 00000344: DUP1 00000345: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000035a: AND 0000035b: CALLER 0000035c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000371: AND 00000372: EQ 00000373: PUSH2 0x03b1 00000376: JUMPI 00000377: PUSH1 0x40 00000379: MLOAD 0000037a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000039b: DUP2 0000039c: MSTORE 0000039d: PUSH1 0x04 0000039f: ADD 000003a0: PUSH2 0x03a8 000003a3: SWAP1 000003a4: PUSH2 0x17b5 000003a7: JUMP 000003a8: JUMPDEST 000003a9: PUSH1 0x40 000003ab: MLOAD 000003ac: DUP1 000003ad: SWAP2 000003ae: SUB 000003af: SWAP1 000003b0: REVERT 000003b1: JUMPDEST 000003b2: PUSH1 0x00 000003b4: PUSH1 0x03 000003b6: PUSH1 0x00 000003b8: DUP4 000003b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003ce: AND 000003cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003e4: AND 000003e5: DUP2 000003e6: MSTORE 000003e7: PUSH1 0x20 000003e9: ADD 000003ea: SWAP1 000003eb: DUP2 000003ec: MSTORE 000003ed: PUSH1 0x20 000003ef: ADD 000003f0: PUSH1 0x00 000003f2: KECCAK256 000003f3: SLOAD 000003f4: GT 000003f5: PUSH2 0x0433 000003f8: JUMPI 000003f9: PUSH1 0x40 000003fb: MLOAD 000003fc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000041d: DUP2 0000041e: MSTORE 0000041f: PUSH1 0x04 00000421: ADD 00000422: PUSH2 0x042a 00000425: SWAP1 00000426: PUSH2 0x1795 00000429: JUMP 0000042a: JUMPDEST 0000042b: PUSH1 0x40 0000042d: MLOAD 0000042e: DUP1 0000042f: SWAP2 00000430: SUB 00000431: SWAP1 00000432: REVERT 00000433: JUMPDEST 00000434: PUSH1 0x00 00000436: PUSH2 0x043d 00000439: PUSH2 0x0aaf 0000043c: JUMP 0000043d: JUMPDEST 0000043e: SELFBALANCE 0000043f: PUSH2 0x0448 00000442: SWAP2 00000443: SWAP1 00000444: PUSH2 0x1902 00000447: JUMP 00000448: JUMPDEST 00000449: SWAP1 0000044a: POP 0000044b: PUSH1 0x00 0000044d: PUSH2 0x045f 00000450: DUP4 00000451: DUP4 00000452: PUSH2 0x045a 00000455: DUP7 00000456: PUSH2 0x09d4 00000459: JUMP 0000045a: JUMPDEST 0000045b: PUSH2 0x0bb1 0000045e: JUMP 0000045f: JUMPDEST 00000460: SWAP1 00000461: POP 00000462: PUSH1 0x00 00000464: DUP2 00000465: EQ 00000466: ISZERO 00000467: PUSH2 0x04a5 0000046a: JUMPI 0000046b: PUSH1 0x40 0000046d: MLOAD 0000046e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000048f: DUP2 00000490: MSTORE 00000491: PUSH1 0x04 00000493: ADD 00000494: PUSH2 0x049c 00000497: SWAP1 00000498: PUSH2 0x1835 0000049b: JUMP 0000049c: JUMPDEST 0000049d: PUSH1 0x40 0000049f: MLOAD 000004a0: DUP1 000004a1: SWAP2 000004a2: SUB 000004a3: SWAP1 000004a4: REVERT 000004a5: JUMPDEST 000004a6: DUP1 000004a7: PUSH1 0x04 000004a9: PUSH1 0x00 000004ab: DUP6 000004ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004c1: AND 000004c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004d7: AND 000004d8: DUP2 000004d9: MSTORE 000004da: PUSH1 0x20 000004dc: ADD 000004dd: SWAP1 000004de: DUP2 000004df: MSTORE 000004e0: PUSH1 0x20 000004e2: ADD 000004e3: PUSH1 0x00 000004e5: KECCAK256 000004e6: PUSH1 0x00 000004e8: DUP3 000004e9: DUP3 000004ea: SLOAD 000004eb: PUSH2 0x04f4 000004ee: SWAP2 000004ef: SWAP1 000004f0: PUSH2 0x1902 000004f3: JUMP 000004f4: JUMPDEST 000004f5: SWAP3 000004f6: POP 000004f7: POP 000004f8: DUP2 000004f9: SWAP1 000004fa: SSTORE 000004fb: POP 000004fc: DUP1 000004fd: PUSH1 0x02 000004ff: PUSH1 0x00 00000501: DUP3 00000502: DUP3 00000503: SLOAD 00000504: PUSH2 0x050d 00000507: SWAP2 00000508: SWAP1 00000509: PUSH2 0x1902 0000050c: JUMP 0000050d: JUMPDEST 0000050e: SWAP3 0000050f: POP 00000510: POP 00000511: DUP2 00000512: SWAP1 00000513: SSTORE 00000514: POP 00000515: PUSH2 0x051e 00000518: DUP4 00000519: DUP3 0000051a: PUSH2 0x0c24 0000051d: JUMP 0000051e: JUMPDEST 0000051f: PUSH32 0xdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056 00000540: DUP4 00000541: DUP3 00000542: PUSH1 0x40 00000544: MLOAD 00000545: PUSH2 0x054f 00000548: SWAP3 00000549: SWAP2 0000054a: SWAP1 0000054b: PUSH2 0x1701 0000054e: JUMP 0000054f: JUMPDEST 00000550: PUSH1 0x40 00000552: MLOAD 00000553: DUP1 00000554: SWAP2 00000555: SUB 00000556: SWAP1 00000557: LOG1 00000558: POP 00000559: POP 0000055a: POP 0000055b: JUMP 0000055c: JUMPDEST 0000055d: PUSH1 0x00 0000055f: PUSH1 0x01 00000561: SLOAD 00000562: SWAP1 00000563: POP 00000564: SWAP1 00000565: JUMP 00000566: JUMPDEST 00000567: PUSH1 0x00 00000569: PUSH1 0x07 0000056b: PUSH1 0x00 0000056d: DUP5 0000056e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000583: AND 00000584: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000599: AND 0000059a: DUP2 0000059b: MSTORE 0000059c: PUSH1 0x20 0000059e: ADD 0000059f: SWAP1 000005a0: DUP2 000005a1: MSTORE 000005a2: PUSH1 0x20 000005a4: ADD 000005a5: PUSH1 0x00 000005a7: KECCAK256 000005a8: PUSH1 0x00 000005aa: DUP4 000005ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005c0: AND 000005c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005d6: AND 000005d7: DUP2 000005d8: MSTORE 000005d9: PUSH1 0x20 000005db: ADD 000005dc: SWAP1 000005dd: DUP2 000005de: MSTORE 000005df: PUSH1 0x20 000005e1: ADD 000005e2: PUSH1 0x00 000005e4: KECCAK256 000005e5: SLOAD 000005e6: SWAP1 000005e7: POP 000005e8: SWAP3 000005e9: SWAP2 000005ea: POP 000005eb: POP 000005ec: JUMP 000005ed: JUMPDEST 000005ee: PUSH1 0x00 000005f0: PUSH1 0x03 000005f2: PUSH1 0x00 000005f4: DUP4 000005f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000060a: AND 0000060b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000620: AND 00000621: DUP2 00000622: MSTORE 00000623: PUSH1 0x20 00000625: ADD 00000626: SWAP1 00000627: DUP2 00000628: MSTORE 00000629: PUSH1 0x20 0000062b: ADD 0000062c: PUSH1 0x00 0000062e: KECCAK256 0000062f: SLOAD 00000630: GT 00000631: PUSH2 0x066f 00000634: JUMPI 00000635: PUSH1 0x40 00000637: MLOAD 00000638: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000659: DUP2 0000065a: MSTORE 0000065b: PUSH1 0x04 0000065d: ADD 0000065e: PUSH2 0x0666 00000661: SWAP1 00000662: PUSH2 0x1795 00000665: JUMP 00000666: JUMPDEST 00000667: PUSH1 0x40 00000669: MLOAD 0000066a: DUP1 0000066b: SWAP2 0000066c: SUB 0000066d: SWAP1 0000066e: REVERT 0000066f: JUMPDEST 00000670: PUSH1 0x00 00000672: PUSH2 0x067a 00000675: DUP4 00000676: PUSH2 0x0a66 00000679: JUMP 0000067a: JUMPDEST 0000067b: DUP4 0000067c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000691: AND 00000692: PUSH4 0x70a08231 00000697: ADDRESS 00000698: PUSH1 0x40 0000069a: MLOAD 0000069b: DUP3 0000069c: PUSH4 0xffffffff 000006a1: AND 000006a2: PUSH1 0xe0 000006a4: SHL 000006a5: DUP2 000006a6: MSTORE 000006a7: PUSH1 0x04 000006a9: ADD 000006aa: PUSH2 0x06b3 000006ad: SWAP2 000006ae: SWAP1 000006af: PUSH2 0x16e6 000006b2: JUMP 000006b3: JUMPDEST 000006b4: PUSH1 0x20 000006b6: PUSH1 0x40 000006b8: MLOAD 000006b9: DUP1 000006ba: DUP4 000006bb: SUB 000006bc: DUP2 000006bd: DUP7 000006be: DUP1 000006bf: EXTCODESIZE 000006c0: ISZERO 000006c1: DUP1 000006c2: ISZERO 000006c3: PUSH2 0x06cb 000006c6: JUMPI 000006c7: PUSH1 0x00 000006c9: DUP1 000006ca: REVERT 000006cb: JUMPDEST 000006cc: POP 000006cd: GAS 000006ce: STATICCALL 000006cf: ISZERO 000006d0: DUP1 000006d1: ISZERO 000006d2: PUSH2 0x06df 000006d5: JUMPI 000006d6: RETURNDATASIZE 000006d7: PUSH1 0x00 000006d9: DUP1 000006da: RETURNDATACOPY 000006db: RETURNDATASIZE 000006dc: PUSH1 0x00 000006de: REVERT 000006df: JUMPDEST 000006e0: POP 000006e1: POP 000006e2: POP 000006e3: POP 000006e4: PUSH1 0x40 000006e6: MLOAD 000006e7: RETURNDATASIZE 000006e8: PUSH1 0x1f 000006ea: NOT 000006eb: PUSH1 0x1f 000006ed: DUP3 000006ee: ADD 000006ef: AND 000006f0: DUP3 000006f1: ADD 000006f2: DUP1 000006f3: PUSH1 0x40 000006f5: MSTORE 000006f6: POP 000006f7: DUP2 000006f8: ADD 000006f9: SWAP1 000006fa: PUSH2 0x0703 000006fd: SWAP2 000006fe: SWAP1 000006ff: PUSH2 0x1256 00000702: JUMP 00000703: JUMPDEST 00000704: PUSH2 0x070d 00000707: SWAP2 00000708: SWAP1 00000709: PUSH2 0x1902 0000070c: JUMP 0000070d: JUMPDEST 0000070e: SWAP1 0000070f: POP 00000710: PUSH1 0x00 00000712: PUSH2 0x0725 00000715: DUP4 00000716: DUP4 00000717: PUSH2 0x0720 0000071a: DUP8 0000071b: DUP8 0000071c: PUSH2 0x0566 0000071f: JUMP 00000720: JUMPDEST 00000721: PUSH2 0x0bb1 00000724: JUMP 00000725: JUMPDEST 00000726: SWAP1 00000727: POP 00000728: PUSH1 0x00 0000072a: DUP2 0000072b: EQ 0000072c: ISZERO 0000072d: PUSH2 0x076b 00000730: JUMPI 00000731: PUSH1 0x40 00000733: MLOAD 00000734: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000755: DUP2 00000756: MSTORE 00000757: PUSH1 0x04 00000759: ADD 0000075a: PUSH2 0x0762 0000075d: SWAP1 0000075e: PUSH2 0x1835 00000761: JUMP 00000762: JUMPDEST 00000763: PUSH1 0x40 00000765: MLOAD 00000766: DUP1 00000767: SWAP2 00000768: SUB 00000769: SWAP1 0000076a: REVERT 0000076b: JUMPDEST 0000076c: DUP1 0000076d: PUSH1 0x07 0000076f: PUSH1 0x00 00000771: DUP7 00000772: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000787: AND 00000788: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000079d: AND 0000079e: DUP2 0000079f: MSTORE 000007a0: PUSH1 0x20 000007a2: ADD 000007a3: SWAP1 000007a4: DUP2 000007a5: MSTORE 000007a6: PUSH1 0x20 000007a8: ADD 000007a9: PUSH1 0x00 000007ab: KECCAK256 000007ac: PUSH1 0x00 000007ae: DUP6 000007af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007c4: AND 000007c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007da: AND 000007db: DUP2 000007dc: MSTORE 000007dd: PUSH1 0x20 000007df: ADD 000007e0: SWAP1 000007e1: DUP2 000007e2: MSTORE 000007e3: PUSH1 0x20 000007e5: ADD 000007e6: PUSH1 0x00 000007e8: KECCAK256 000007e9: PUSH1 0x00 000007eb: DUP3 000007ec: DUP3 000007ed: SLOAD 000007ee: PUSH2 0x07f7 000007f1: SWAP2 000007f2: SWAP1 000007f3: PUSH2 0x1902 000007f6: JUMP 000007f7: JUMPDEST 000007f8: SWAP3 000007f9: POP 000007fa: POP 000007fb: DUP2 000007fc: SWAP1 000007fd: SSTORE 000007fe: POP 000007ff: DUP1 00000800: PUSH1 0x06 00000802: PUSH1 0x00 00000804: DUP7 00000805: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000081a: AND 0000081b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000830: AND 00000831: DUP2 00000832: MSTORE 00000833: PUSH1 0x20 00000835: ADD 00000836: SWAP1 00000837: DUP2 00000838: MSTORE 00000839: PUSH1 0x20 0000083b: ADD 0000083c: PUSH1 0x00 0000083e: KECCAK256 0000083f: PUSH1 0x00 00000841: DUP3 00000842: DUP3 00000843: SLOAD 00000844: PUSH2 0x084d 00000847: SWAP2 00000848: SWAP1 00000849: PUSH2 0x1902 0000084c: JUMP 0000084d: JUMPDEST 0000084e: SWAP3 0000084f: POP 00000850: POP 00000851: DUP2 00000852: SWAP1 00000853: SSTORE 00000854: POP 00000855: PUSH2 0x085f 00000858: DUP5 00000859: DUP5 0000085a: DUP4 0000085b: PUSH2 0x0d18 0000085e: JUMP 0000085f: JUMPDEST 00000860: DUP4 00000861: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000876: AND 00000877: PUSH32 0x3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a 00000898: DUP5 00000899: DUP4 0000089a: PUSH1 0x40 0000089c: MLOAD 0000089d: PUSH2 0x08a7 000008a0: SWAP3 000008a1: SWAP2 000008a2: SWAP1 000008a3: PUSH2 0x172a 000008a6: JUMP 000008a7: JUMPDEST 000008a8: PUSH1 0x40 000008aa: MLOAD 000008ab: DUP1 000008ac: SWAP2 000008ad: SUB 000008ae: SWAP1 000008af: LOG2 000008b0: POP 000008b1: POP 000008b2: POP 000008b3: POP 000008b4: JUMP 000008b5: JUMPDEST 000008b6: PUSH2 0x08bd 000008b9: PUSH2 0x033b 000008bc: JUMP 000008bd: JUMPDEST 000008be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008d3: AND 000008d4: PUSH2 0x08db 000008d7: PUSH2 0x09ab 000008da: JUMP 000008db: JUMPDEST 000008dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008f1: AND 000008f2: EQ 000008f3: PUSH2 0x0931 000008f6: JUMPI 000008f7: PUSH1 0x40 000008f9: MLOAD 000008fa: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000091b: DUP2 0000091c: MSTORE 0000091d: PUSH1 0x04 0000091f: ADD 00000920: PUSH2 0x0928 00000923: SWAP1 00000924: PUSH2 0x1855 00000927: JUMP 00000928: JUMPDEST 00000929: PUSH1 0x40 0000092b: MLOAD 0000092c: DUP1 0000092d: SWAP2 0000092e: SUB 0000092f: SWAP1 00000930: REVERT 00000931: JUMPDEST 00000932: PUSH2 0x093b 00000935: PUSH1 0x00 00000937: PUSH2 0x0d9e 0000093a: JUMP 0000093b: JUMPDEST 0000093c: JUMP 0000093d: JUMPDEST 0000093e: PUSH1 0x00 00000940: PUSH1 0x05 00000942: DUP3 00000943: DUP2 00000944: SLOAD 00000945: DUP2 00000946: LT 00000947: PUSH2 0x0979 0000094a: JUMPI 0000094b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000096c: PUSH1 0x00 0000096e: MSTORE 0000096f: PUSH1 0x32 00000971: PUSH1 0x04 00000973: MSTORE 00000974: PUSH1 0x24 00000976: PUSH1 0x00 00000978: REVERT 00000979: JUMPDEST 0000097a: SWAP1 0000097b: PUSH1 0x00 0000097d: MSTORE 0000097e: PUSH1 0x20 00000980: PUSH1 0x00 00000982: KECCAK256 00000983: ADD 00000984: PUSH1 0x00 00000986: SWAP1 00000987: SLOAD 00000988: SWAP1 00000989: PUSH2 0x0100 0000098c: EXP 0000098d: SWAP1 0000098e: DIV 0000098f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009a4: AND 000009a5: SWAP1 000009a6: POP 000009a7: SWAP2 000009a8: SWAP1 000009a9: POP 000009aa: JUMP 000009ab: JUMPDEST 000009ac: PUSH1 0x00 000009ae: DUP1 000009af: PUSH1 0x00 000009b1: SWAP1 000009b2: SLOAD 000009b3: SWAP1 000009b4: PUSH2 0x0100 000009b7: EXP 000009b8: SWAP1 000009b9: DIV 000009ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009cf: AND 000009d0: SWAP1 000009d1: POP 000009d2: SWAP1 000009d3: JUMP 000009d4: JUMPDEST 000009d5: PUSH1 0x00 000009d7: PUSH1 0x04 000009d9: PUSH1 0x00 000009db: DUP4 000009dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009f1: AND 000009f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a07: AND 00000a08: DUP2 00000a09: MSTORE 00000a0a: PUSH1 0x20 00000a0c: ADD 00000a0d: SWAP1 00000a0e: DUP2 00000a0f: MSTORE 00000a10: PUSH1 0x20 00000a12: ADD 00000a13: PUSH1 0x00 00000a15: KECCAK256 00000a16: SLOAD 00000a17: SWAP1 00000a18: POP 00000a19: SWAP2 00000a1a: SWAP1 00000a1b: POP 00000a1c: JUMP 00000a1d: JUMPDEST 00000a1e: PUSH1 0x00 00000a20: PUSH1 0x03 00000a22: PUSH1 0x00 00000a24: DUP4 00000a25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a3a: AND 00000a3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a50: AND 00000a51: DUP2 00000a52: MSTORE 00000a53: PUSH1 0x20 00000a55: ADD 00000a56: SWAP1 00000a57: DUP2 00000a58: MSTORE 00000a59: PUSH1 0x20 00000a5b: ADD 00000a5c: PUSH1 0x00 00000a5e: KECCAK256 00000a5f: SLOAD 00000a60: SWAP1 00000a61: POP 00000a62: SWAP2 00000a63: SWAP1 00000a64: POP 00000a65: JUMP 00000a66: JUMPDEST 00000a67: PUSH1 0x00 00000a69: PUSH1 0x06 00000a6b: PUSH1 0x00 00000a6d: DUP4 00000a6e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a83: AND 00000a84: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a99: AND 00000a9a: DUP2 00000a9b: MSTORE 00000a9c: PUSH1 0x20 00000a9e: ADD 00000a9f: SWAP1 00000aa0: DUP2 00000aa1: MSTORE 00000aa2: PUSH1 0x20 00000aa4: ADD 00000aa5: PUSH1 0x00 00000aa7: KECCAK256 00000aa8: SLOAD 00000aa9: SWAP1 00000aaa: POP 00000aab: SWAP2 00000aac: SWAP1 00000aad: POP 00000aae: JUMP 00000aaf: JUMPDEST 00000ab0: PUSH1 0x00 00000ab2: PUSH1 0x02 00000ab4: SLOAD 00000ab5: SWAP1 00000ab6: POP 00000ab7: SWAP1 00000ab8: JUMP 00000ab9: JUMPDEST 00000aba: PUSH2 0x0ac1 00000abd: PUSH2 0x033b 00000ac0: JUMP 00000ac1: JUMPDEST 00000ac2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ad7: AND 00000ad8: PUSH2 0x0adf 00000adb: PUSH2 0x09ab 00000ade: JUMP 00000adf: JUMPDEST 00000ae0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000af5: AND 00000af6: EQ 00000af7: PUSH2 0x0b35 00000afa: JUMPI 00000afb: PUSH1 0x40 00000afd: MLOAD 00000afe: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000b1f: DUP2 00000b20: MSTORE 00000b21: PUSH1 0x04 00000b23: ADD 00000b24: PUSH2 0x0b2c 00000b27: SWAP1 00000b28: PUSH2 0x1855 00000b2b: JUMP 00000b2c: JUMPDEST 00000b2d: PUSH1 0x40 00000b2f: MLOAD 00000b30: DUP1 00000b31: SWAP2 00000b32: SUB 00000b33: SWAP1 00000b34: REVERT 00000b35: JUMPDEST 00000b36: PUSH1 0x00 00000b38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b4d: AND 00000b4e: DUP2 00000b4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b64: AND 00000b65: EQ 00000b66: ISZERO 00000b67: PUSH2 0x0ba5 00000b6a: JUMPI 00000b6b: PUSH1 0x40 00000b6d: MLOAD 00000b6e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000b8f: DUP2 00000b90: MSTORE 00000b91: PUSH1 0x04 00000b93: ADD 00000b94: PUSH2 0x0b9c 00000b97: SWAP1 00000b98: PUSH2 0x1775 00000b9b: JUMP 00000b9c: JUMPDEST 00000b9d: PUSH1 0x40 00000b9f: MLOAD 00000ba0: DUP1 00000ba1: SWAP2 00000ba2: SUB 00000ba3: SWAP1 00000ba4: REVERT 00000ba5: JUMPDEST 00000ba6: PUSH2 0x0bae 00000ba9: DUP2 00000baa: PUSH2 0x0d9e 00000bad: JUMP 00000bae: JUMPDEST 00000baf: POP 00000bb0: JUMP 00000bb1: JUMPDEST 00000bb2: PUSH1 0x00 00000bb4: DUP1 00000bb5: PUSH2 0x03e8 00000bb8: PUSH1 0x03 00000bba: PUSH1 0x00 00000bbc: DUP8 00000bbd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bd2: AND 00000bd3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000be8: AND 00000be9: DUP2 00000bea: MSTORE 00000beb: PUSH1 0x20 00000bed: ADD 00000bee: SWAP1 00000bef: DUP2 00000bf0: MSTORE 00000bf1: PUSH1 0x20 00000bf3: ADD 00000bf4: PUSH1 0x00 00000bf6: KECCAK256 00000bf7: SLOAD 00000bf8: DUP6 00000bf9: PUSH2 0x0c02 00000bfc: SWAP2 00000bfd: SWAP1 00000bfe: PUSH2 0x1989 00000c01: JUMP 00000c02: JUMPDEST 00000c03: PUSH2 0x0c0c 00000c06: SWAP2 00000c07: SWAP1 00000c08: PUSH2 0x1958 00000c0b: JUMP 00000c0c: JUMPDEST 00000c0d: SWAP1 00000c0e: POP 00000c0f: DUP3 00000c10: DUP2 00000c11: PUSH2 0x0c1a 00000c14: SWAP2 00000c15: SWAP1 00000c16: PUSH2 0x19e3 00000c19: JUMP 00000c1a: JUMPDEST 00000c1b: SWAP2 00000c1c: POP 00000c1d: POP 00000c1e: SWAP4 00000c1f: SWAP3 00000c20: POP 00000c21: POP 00000c22: POP 00000c23: JUMP 00000c24: JUMPDEST 00000c25: DUP1 00000c26: SELFBALANCE 00000c27: LT 00000c28: ISZERO 00000c29: PUSH2 0x0c67 00000c2c: JUMPI 00000c2d: PUSH1 0x40 00000c2f: MLOAD 00000c30: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000c51: DUP2 00000c52: MSTORE 00000c53: PUSH1 0x04 00000c55: ADD 00000c56: PUSH2 0x0c5e 00000c59: SWAP1 00000c5a: PUSH2 0x17f5 00000c5d: JUMP 00000c5e: JUMPDEST 00000c5f: PUSH1 0x40 00000c61: MLOAD 00000c62: DUP1 00000c63: SWAP2 00000c64: SUB 00000c65: SWAP1 00000c66: REVERT 00000c67: JUMPDEST 00000c68: PUSH1 0x00 00000c6a: DUP3 00000c6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c80: AND 00000c81: DUP3 00000c82: PUSH1 0x40 00000c84: MLOAD 00000c85: PUSH2 0x0c8d 00000c88: SWAP1 00000c89: PUSH2 0x16d1 00000c8c: JUMP 00000c8d: JUMPDEST 00000c8e: PUSH1 0x00 00000c90: PUSH1 0x40 00000c92: MLOAD 00000c93: DUP1 00000c94: DUP4 00000c95: SUB 00000c96: DUP2 00000c97: DUP6 00000c98: DUP8 00000c99: GAS 00000c9a: CALL 00000c9b: SWAP3 00000c9c: POP 00000c9d: POP 00000c9e: POP 00000c9f: RETURNDATASIZE 00000ca0: DUP1 00000ca1: PUSH1 0x00 00000ca3: DUP2 00000ca4: EQ 00000ca5: PUSH2 0x0cca 00000ca8: JUMPI 00000ca9: PUSH1 0x40 00000cab: MLOAD 00000cac: SWAP2 00000cad: POP 00000cae: PUSH1 0x1f 00000cb0: NOT 00000cb1: PUSH1 0x3f 00000cb3: RETURNDATASIZE 00000cb4: ADD 00000cb5: AND 00000cb6: DUP3 00000cb7: ADD 00000cb8: PUSH1 0x40 00000cba: MSTORE 00000cbb: RETURNDATASIZE 00000cbc: DUP3 00000cbd: MSTORE 00000cbe: RETURNDATASIZE 00000cbf: PUSH1 0x00 00000cc1: PUSH1 0x20 00000cc3: DUP5 00000cc4: ADD 00000cc5: RETURNDATACOPY 00000cc6: PUSH2 0x0ccf 00000cc9: JUMP 00000cca: JUMPDEST 00000ccb: PUSH1 0x60 00000ccd: SWAP2 00000cce: POP 00000ccf: JUMPDEST 00000cd0: POP 00000cd1: POP 00000cd2: SWAP1 00000cd3: POP 00000cd4: DUP1 00000cd5: PUSH2 0x0d13 00000cd8: JUMPI 00000cd9: PUSH1 0x40 00000cdb: MLOAD 00000cdc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000cfd: DUP2 00000cfe: MSTORE 00000cff: PUSH1 0x04 00000d01: ADD 00000d02: PUSH2 0x0d0a 00000d05: SWAP1 00000d06: PUSH2 0x17d5 00000d09: JUMP 00000d0a: JUMPDEST 00000d0b: PUSH1 0x40 00000d0d: MLOAD 00000d0e: DUP1 00000d0f: SWAP2 00000d10: SUB 00000d11: SWAP1 00000d12: REVERT 00000d13: JUMPDEST 00000d14: POP 00000d15: POP 00000d16: POP 00000d17: JUMP 00000d18: JUMPDEST 00000d19: PUSH2 0x0d99 00000d1c: DUP4 00000d1d: PUSH4 0xa9059cbb 00000d22: PUSH1 0xe0 00000d24: SHL 00000d25: DUP5 00000d26: DUP5 00000d27: PUSH1 0x40 00000d29: MLOAD 00000d2a: PUSH1 0x24 00000d2c: ADD 00000d2d: PUSH2 0x0d37 00000d30: SWAP3 00000d31: SWAP2 00000d32: SWAP1 00000d33: PUSH2 0x172a 00000d36: JUMP 00000d37: JUMPDEST 00000d38: PUSH1 0x40 00000d3a: MLOAD 00000d3b: PUSH1 0x20 00000d3d: DUP2 00000d3e: DUP4 00000d3f: SUB 00000d40: SUB 00000d41: DUP2 00000d42: MSTORE 00000d43: SWAP1 00000d44: PUSH1 0x40 00000d46: MSTORE 00000d47: SWAP1 00000d48: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000d65: NOT 00000d66: AND 00000d67: PUSH1 0x20 00000d69: DUP3 00000d6a: ADD 00000d6b: DUP1 00000d6c: MLOAD 00000d6d: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000d8a: DUP4 00000d8b: DUP2 00000d8c: DUP4 00000d8d: AND 00000d8e: OR 00000d8f: DUP4 00000d90: MSTORE 00000d91: POP 00000d92: POP 00000d93: POP 00000d94: POP 00000d95: PUSH2 0x0e62 00000d98: JUMP 00000d99: JUMPDEST 00000d9a: POP 00000d9b: POP 00000d9c: POP 00000d9d: JUMP 00000d9e: JUMPDEST 00000d9f: PUSH1 0x00 00000da1: DUP1 00000da2: PUSH1 0x00 00000da4: SWAP1 00000da5: SLOAD 00000da6: SWAP1 00000da7: PUSH2 0x0100 00000daa: EXP 00000dab: SWAP1 00000dac: DIV 00000dad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dc2: AND 00000dc3: SWAP1 00000dc4: POP 00000dc5: DUP2 00000dc6: PUSH1 0x00 00000dc8: DUP1 00000dc9: PUSH2 0x0100 00000dcc: EXP 00000dcd: DUP2 00000dce: SLOAD 00000dcf: DUP2 00000dd0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000de5: MUL 00000de6: NOT 00000de7: AND 00000de8: SWAP1 00000de9: DUP4 00000dea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dff: AND 00000e00: MUL 00000e01: OR 00000e02: SWAP1 00000e03: SSTORE 00000e04: POP 00000e05: DUP2 00000e06: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e1b: AND 00000e1c: DUP2 00000e1d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e32: AND 00000e33: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000e54: PUSH1 0x40 00000e56: MLOAD 00000e57: PUSH1 0x40 00000e59: MLOAD 00000e5a: DUP1 00000e5b: SWAP2 00000e5c: SUB 00000e5d: SWAP1 00000e5e: LOG3 00000e5f: POP 00000e60: POP 00000e61: JUMP 00000e62: JUMPDEST 00000e63: PUSH1 0x00 00000e65: PUSH2 0x0ec4 00000e68: DUP3 00000e69: PUSH1 0x40 00000e6b: MLOAD 00000e6c: DUP1 00000e6d: PUSH1 0x40 00000e6f: ADD 00000e70: PUSH1 0x40 00000e72: MSTORE 00000e73: DUP1 00000e74: PUSH1 0x20 00000e76: DUP2 00000e77: MSTORE 00000e78: PUSH1 0x20 00000e7a: ADD 00000e7b: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00000e9c: DUP2 00000e9d: MSTORE 00000e9e: POP 00000e9f: DUP6 00000ea0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000eb5: AND 00000eb6: PUSH2 0x0f29 00000eb9: SWAP1 00000eba: SWAP3 00000ebb: SWAP2 00000ebc: SWAP1 00000ebd: PUSH4 0xffffffff 00000ec2: AND 00000ec3: JUMP 00000ec4: JUMPDEST 00000ec5: SWAP1 00000ec6: POP 00000ec7: PUSH1 0x00 00000ec9: DUP2 00000eca: MLOAD 00000ecb: GT 00000ecc: ISZERO 00000ecd: PUSH2 0x0f24 00000ed0: JUMPI 00000ed1: DUP1 00000ed2: DUP1 00000ed3: PUSH1 0x20 00000ed5: ADD 00000ed6: SWAP1 00000ed7: MLOAD 00000ed8: DUP2 00000ed9: ADD 00000eda: SWAP1 00000edb: PUSH2 0x0ee4 00000ede: SWAP2 00000edf: SWAP1 00000ee0: PUSH2 0x119f 00000ee3: JUMP 00000ee4: JUMPDEST 00000ee5: PUSH2 0x0f23 00000ee8: JUMPI 00000ee9: PUSH1 0x40 00000eeb: MLOAD 00000eec: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f0d: DUP2 00000f0e: MSTORE 00000f0f: PUSH1 0x04 00000f11: ADD 00000f12: PUSH2 0x0f1a 00000f15: SWAP1 00000f16: PUSH2 0x1895 00000f19: JUMP 00000f1a: JUMPDEST 00000f1b: PUSH1 0x40 00000f1d: MLOAD 00000f1e: DUP1 00000f1f: SWAP2 00000f20: SUB 00000f21: SWAP1 00000f22: REVERT 00000f23: JUMPDEST 00000f24: JUMPDEST 00000f25: POP 00000f26: POP 00000f27: POP 00000f28: JUMP 00000f29: JUMPDEST 00000f2a: PUSH1 0x60 00000f2c: PUSH2 0x0f38 00000f2f: DUP5 00000f30: DUP5 00000f31: PUSH1 0x00 00000f33: DUP6 00000f34: PUSH2 0x0f41 00000f37: JUMP 00000f38: JUMPDEST 00000f39: SWAP1 00000f3a: POP 00000f3b: SWAP4 00000f3c: SWAP3 00000f3d: POP 00000f3e: POP 00000f3f: POP 00000f40: JUMP 00000f41: JUMPDEST 00000f42: PUSH1 0x60 00000f44: DUP3 00000f45: SELFBALANCE 00000f46: LT 00000f47: ISZERO 00000f48: PUSH2 0x0f86 00000f4b: JUMPI 00000f4c: PUSH1 0x40 00000f4e: MLOAD 00000f4f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f70: DUP2 00000f71: MSTORE 00000f72: PUSH1 0x04 00000f74: ADD 00000f75: PUSH2 0x0f7d 00000f78: SWAP1 00000f79: PUSH2 0x1815 00000f7c: JUMP 00000f7d: JUMPDEST 00000f7e: PUSH1 0x40 00000f80: MLOAD 00000f81: DUP1 00000f82: SWAP2 00000f83: SUB 00000f84: SWAP1 00000f85: REVERT 00000f86: JUMPDEST 00000f87: PUSH2 0x0f8f 00000f8a: DUP6 00000f8b: PUSH2 0x1055 00000f8e: JUMP 00000f8f: JUMPDEST 00000f90: PUSH2 0x0fce 00000f93: JUMPI 00000f94: PUSH1 0x40 00000f96: MLOAD 00000f97: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000fb8: DUP2 00000fb9: MSTORE 00000fba: PUSH1 0x04 00000fbc: ADD 00000fbd: PUSH2 0x0fc5 00000fc0: SWAP1 00000fc1: PUSH2 0x1875 00000fc4: JUMP 00000fc5: JUMPDEST 00000fc6: PUSH1 0x40 00000fc8: MLOAD 00000fc9: DUP1 00000fca: SWAP2 00000fcb: SUB 00000fcc: SWAP1 00000fcd: REVERT 00000fce: JUMPDEST 00000fcf: PUSH1 0x00 00000fd1: DUP1 00000fd2: DUP7 00000fd3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fe8: AND 00000fe9: DUP6 00000fea: DUP8 00000feb: PUSH1 0x40 00000fed: MLOAD 00000fee: PUSH2 0x0ff7 00000ff1: SWAP2 00000ff2: SWAP1 00000ff3: PUSH2 0x16ba 00000ff6: JUMP 00000ff7: JUMPDEST 00000ff8: PUSH1 0x00 00000ffa: PUSH1 0x40 00000ffc: MLOAD 00000ffd: DUP1 00000ffe: DUP4 00000fff: SUB 00001000: DUP2 00001001: DUP6 00001002: DUP8 00001003: GAS 00001004: CALL 00001005: SWAP3 00001006: POP 00001007: POP 00001008: POP 00001009: RETURNDATASIZE 0000100a: DUP1 0000100b: PUSH1 0x00 0000100d: DUP2 0000100e: EQ 0000100f: PUSH2 0x1034 00001012: JUMPI 00001013: PUSH1 0x40 00001015: MLOAD 00001016: SWAP2 00001017: POP 00001018: PUSH1 0x1f 0000101a: NOT 0000101b: PUSH1 0x3f 0000101d: RETURNDATASIZE 0000101e: ADD 0000101f: AND 00001020: DUP3 00001021: ADD 00001022: PUSH1 0x40 00001024: MSTORE 00001025: RETURNDATASIZE 00001026: DUP3 00001027: MSTORE 00001028: RETURNDATASIZE 00001029: PUSH1 0x00 0000102b: PUSH1 0x20 0000102d: DUP5 0000102e: ADD 0000102f: RETURNDATACOPY 00001030: PUSH2 0x1039 00001033: JUMP 00001034: JUMPDEST 00001035: PUSH1 0x60 00001037: SWAP2 00001038: POP 00001039: JUMPDEST 0000103a: POP 0000103b: SWAP2 0000103c: POP 0000103d: SWAP2 0000103e: POP 0000103f: PUSH2 0x1049 00001042: DUP3 00001043: DUP3 00001044: DUP7 00001045: PUSH2 0x1068 00001048: JUMP 00001049: JUMPDEST 0000104a: SWAP3 0000104b: POP 0000104c: POP 0000104d: POP 0000104e: SWAP5 0000104f: SWAP4 00001050: POP 00001051: POP 00001052: POP 00001053: POP 00001054: JUMP 00001055: JUMPDEST 00001056: PUSH1 0x00 00001058: DUP1 00001059: DUP3 0000105a: EXTCODESIZE 0000105b: SWAP1 0000105c: POP 0000105d: PUSH1 0x00 0000105f: DUP2 00001060: GT 00001061: SWAP2 00001062: POP 00001063: POP 00001064: SWAP2 00001065: SWAP1 00001066: POP 00001067: JUMP 00001068: JUMPDEST 00001069: PUSH1 0x60 0000106b: DUP4 0000106c: ISZERO 0000106d: PUSH2 0x1078 00001070: JUMPI 00001071: DUP3 00001072: SWAP1 00001073: POP 00001074: PUSH2 0x10c8 00001077: JUMP 00001078: JUMPDEST 00001079: PUSH1 0x00 0000107b: DUP4 0000107c: MLOAD 0000107d: GT 0000107e: ISZERO 0000107f: PUSH2 0x108b 00001082: JUMPI 00001083: DUP3 00001084: MLOAD 00001085: DUP1 00001086: DUP5 00001087: PUSH1 0x20 00001089: ADD 0000108a: REVERT 0000108b: JUMPDEST 0000108c: DUP2 0000108d: PUSH1 0x40 0000108f: MLOAD 00001090: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000010b1: DUP2 000010b2: MSTORE 000010b3: PUSH1 0x04 000010b5: ADD 000010b6: PUSH2 0x10bf 000010b9: SWAP2 000010ba: SWAP1 000010bb: PUSH2 0x1753 000010be: JUMP 000010bf: JUMPDEST 000010c0: PUSH1 0x40 000010c2: MLOAD 000010c3: DUP1 000010c4: SWAP2 000010c5: SUB 000010c6: SWAP1 000010c7: REVERT 000010c8: JUMPDEST 000010c9: SWAP4 000010ca: SWAP3 000010cb: POP 000010cc: POP 000010cd: POP 000010ce: JUMP 000010cf: JUMPDEST 000010d0: PUSH1 0x00 000010d2: DUP2 000010d3: CALLDATALOAD 000010d4: SWAP1 000010d5: POP 000010d6: PUSH2 0x10de 000010d9: DUP2 000010da: PUSH2 0x1b5b 000010dd: JUMP 000010de: JUMPDEST 000010df: SWAP3 000010e0: SWAP2 000010e1: POP 000010e2: POP 000010e3: JUMP 000010e4: JUMPDEST 000010e5: PUSH1 0x00 000010e7: DUP2 000010e8: CALLDATALOAD 000010e9: SWAP1 000010ea: POP 000010eb: PUSH2 0x10f3 000010ee: DUP2 000010ef: PUSH2 0x1b72 000010f2: JUMP 000010f3: JUMPDEST 000010f4: SWAP3 000010f5: SWAP2 000010f6: POP 000010f7: POP 000010f8: JUMP 000010f9: JUMPDEST 000010fa: PUSH1 0x00 000010fc: DUP2 000010fd: MLOAD 000010fe: SWAP1 000010ff: POP 00001100: PUSH2 0x1108 00001103: DUP2 00001104: PUSH2 0x1b89 00001107: JUMP 00001108: JUMPDEST 00001109: SWAP3 0000110a: SWAP2 0000110b: POP 0000110c: POP 0000110d: JUMP 0000110e: JUMPDEST 0000110f: PUSH1 0x00 00001111: DUP2 00001112: CALLDATALOAD 00001113: SWAP1 00001114: POP 00001115: PUSH2 0x111d 00001118: DUP2 00001119: PUSH2 0x1ba0 0000111c: JUMP 0000111d: JUMPDEST 0000111e: SWAP3 0000111f: SWAP2 00001120: POP 00001121: POP 00001122: JUMP 00001123: JUMPDEST 00001124: PUSH1 0x00 00001126: DUP2 00001127: CALLDATALOAD 00001128: SWAP1 00001129: POP 0000112a: PUSH2 0x1132 0000112d: DUP2 0000112e: PUSH2 0x1bb7 00001131: JUMP 00001132: JUMPDEST 00001133: SWAP3 00001134: SWAP2 00001135: POP 00001136: POP 00001137: JUMP 00001138: JUMPDEST 00001139: PUSH1 0x00 0000113b: DUP2 0000113c: MLOAD 0000113d: SWAP1 0000113e: POP 0000113f: PUSH2 0x1147 00001142: DUP2 00001143: PUSH2 0x1bb7 00001146: JUMP 00001147: JUMPDEST 00001148: SWAP3 00001149: SWAP2 0000114a: POP 0000114b: POP 0000114c: JUMP 0000114d: JUMPDEST 0000114e: PUSH1 0x00 00001150: PUSH1 0x20 00001152: DUP3 00001153: DUP5 00001154: SUB 00001155: SLT 00001156: ISZERO 00001157: PUSH2 0x115f 0000115a: JUMPI 0000115b: PUSH1 0x00 0000115d: DUP1 0000115e: REVERT 0000115f: JUMPDEST 00001160: PUSH1 0x00 00001162: PUSH2 0x116d 00001165: DUP5 00001166: DUP3 00001167: DUP6 00001168: ADD 00001169: PUSH2 0x10cf 0000116c: JUMP 0000116d: JUMPDEST 0000116e: SWAP2 0000116f: POP 00001170: POP 00001171: SWAP3 00001172: SWAP2 00001173: POP 00001174: POP 00001175: JUMP 00001176: JUMPDEST 00001177: PUSH1 0x00 00001179: PUSH1 0x20 0000117b: DUP3 0000117c: DUP5 0000117d: SUB 0000117e: SLT 0000117f: ISZERO 00001180: PUSH2 0x1188 00001183: JUMPI 00001184: PUSH1 0x00 00001186: DUP1 00001187: REVERT 00001188: JUMPDEST 00001189: PUSH1 0x00 0000118b: PUSH2 0x1196 0000118e: DUP5 0000118f: DUP3 00001190: DUP6 00001191: ADD 00001192: PUSH2 0x10e4 00001195: JUMP 00001196: JUMPDEST 00001197: SWAP2 00001198: POP 00001199: POP 0000119a: SWAP3 0000119b: SWAP2 0000119c: POP 0000119d: POP 0000119e: JUMP 0000119f: JUMPDEST 000011a0: PUSH1 0x00 000011a2: PUSH1 0x20 000011a4: DUP3 000011a5: DUP5 000011a6: SUB 000011a7: SLT 000011a8: ISZERO 000011a9: PUSH2 0x11b1 000011ac: JUMPI 000011ad: PUSH1 0x00 000011af: DUP1 000011b0: REVERT 000011b1: JUMPDEST 000011b2: PUSH1 0x00 000011b4: PUSH2 0x11bf 000011b7: DUP5 000011b8: DUP3 000011b9: DUP6 000011ba: ADD 000011bb: PUSH2 0x10f9 000011be: JUMP 000011bf: JUMPDEST 000011c0: SWAP2 000011c1: POP 000011c2: POP 000011c3: SWAP3 000011c4: SWAP2 000011c5: POP 000011c6: POP 000011c7: JUMP 000011c8: JUMPDEST 000011c9: PUSH1 0x00 000011cb: PUSH1 0x20 000011cd: DUP3 000011ce: DUP5 000011cf: SUB 000011d0: SLT 000011d1: ISZERO 000011d2: PUSH2 0x11da 000011d5: JUMPI 000011d6: PUSH1 0x00 000011d8: DUP1 000011d9: REVERT 000011da: JUMPDEST 000011db: PUSH1 0x00 000011dd: PUSH2 0x11e8 000011e0: DUP5 000011e1: DUP3 000011e2: DUP6 000011e3: ADD 000011e4: PUSH2 0x110e 000011e7: JUMP 000011e8: JUMPDEST 000011e9: SWAP2 000011ea: POP 000011eb: POP 000011ec: SWAP3 000011ed: SWAP2 000011ee: POP 000011ef: POP 000011f0: JUMP 000011f1: JUMPDEST 000011f2: PUSH1 0x00 000011f4: DUP1 000011f5: PUSH1 0x40 000011f7: DUP4 000011f8: DUP6 000011f9: SUB 000011fa: SLT 000011fb: ISZERO 000011fc: PUSH2 0x1204 000011ff: JUMPI 00001200: PUSH1 0x00 00001202: DUP1 00001203: REVERT 00001204: JUMPDEST 00001205: PUSH1 0x00 00001207: PUSH2 0x1212 0000120a: DUP6 0000120b: DUP3 0000120c: DUP7 0000120d: ADD 0000120e: PUSH2 0x110e 00001211: JUMP 00001212: JUMPDEST 00001213: SWAP3 00001214: POP 00001215: POP 00001216: PUSH1 0x20 00001218: PUSH2 0x1223 0000121b: DUP6 0000121c: DUP3 0000121d: DUP7 0000121e: ADD 0000121f: PUSH2 0x10cf 00001222: JUMP 00001223: JUMPDEST 00001224: SWAP2 00001225: POP 00001226: POP 00001227: SWAP3 00001228: POP 00001229: SWAP3 0000122a: SWAP1 0000122b: POP 0000122c: JUMP 0000122d: JUMPDEST 0000122e: PUSH1 0x00 00001230: PUSH1 0x20 00001232: DUP3 00001233: DUP5 00001234: SUB 00001235: SLT 00001236: ISZERO 00001237: PUSH2 0x123f 0000123a: JUMPI 0000123b: PUSH1 0x00 0000123d: DUP1 0000123e: REVERT 0000123f: JUMPDEST 00001240: PUSH1 0x00 00001242: PUSH2 0x124d 00001245: DUP5 00001246: DUP3 00001247: DUP6 00001248: ADD 00001249: PUSH2 0x1123 0000124c: JUMP 0000124d: JUMPDEST 0000124e: SWAP2 0000124f: POP 00001250: POP 00001251: SWAP3 00001252: SWAP2 00001253: POP 00001254: POP 00001255: JUMP 00001256: JUMPDEST 00001257: PUSH1 0x00 00001259: PUSH1 0x20 0000125b: DUP3 0000125c: DUP5 0000125d: SUB 0000125e: SLT 0000125f: ISZERO 00001260: PUSH2 0x1268 00001263: JUMPI 00001264: PUSH1 0x00 00001266: DUP1 00001267: REVERT 00001268: JUMPDEST 00001269: PUSH1 0x00 0000126b: PUSH2 0x1276 0000126e: DUP5 0000126f: DUP3 00001270: DUP6 00001271: ADD 00001272: PUSH2 0x1138 00001275: JUMP 00001276: JUMPDEST 00001277: SWAP2 00001278: POP 00001279: POP 0000127a: SWAP3 0000127b: SWAP2 0000127c: POP 0000127d: POP 0000127e: JUMP 0000127f: JUMPDEST 00001280: PUSH2 0x1288 00001283: DUP2 00001284: PUSH2 0x1a83 00001287: JUMP 00001288: JUMPDEST 00001289: DUP3 0000128a: MSTORE 0000128b: POP 0000128c: POP 0000128d: JUMP 0000128e: JUMPDEST 0000128f: PUSH2 0x1297 00001292: DUP2 00001293: PUSH2 0x1a17 00001296: JUMP 00001297: JUMPDEST 00001298: DUP3 00001299: MSTORE 0000129a: POP 0000129b: POP 0000129c: JUMP 0000129d: JUMPDEST 0000129e: PUSH1 0x00 000012a0: PUSH2 0x12a8 000012a3: DUP3 000012a4: PUSH2 0x18d0 000012a7: JUMP 000012a8: JUMPDEST 000012a9: PUSH2 0x12b2 000012ac: DUP2 000012ad: DUP6 000012ae: PUSH2 0x18e6 000012b1: JUMP 000012b2: JUMPDEST 000012b3: SWAP4 000012b4: POP 000012b5: PUSH2 0x12c2 000012b8: DUP2 000012b9: DUP6 000012ba: PUSH1 0x20 000012bc: DUP7 000012bd: ADD 000012be: PUSH2 0x1ab9 000012c1: JUMP 000012c2: JUMPDEST 000012c3: DUP1 000012c4: DUP5 000012c5: ADD 000012c6: SWAP2 000012c7: POP 000012c8: POP 000012c9: SWAP3 000012ca: SWAP2 000012cb: POP 000012cc: POP 000012cd: JUMP 000012ce: JUMPDEST 000012cf: PUSH1 0x00 000012d1: PUSH2 0x12d9 000012d4: DUP3 000012d5: PUSH2 0x18db 000012d8: JUMP 000012d9: JUMPDEST 000012da: PUSH2 0x12e3 000012dd: DUP2 000012de: DUP6 000012df: PUSH2 0x18f1 000012e2: JUMP 000012e3: JUMPDEST 000012e4: SWAP4 000012e5: POP 000012e6: PUSH2 0x12f3 000012e9: DUP2 000012ea: DUP6 000012eb: PUSH1 0x20 000012ed: DUP7 000012ee: ADD 000012ef: PUSH2 0x1ab9 000012f2: JUMP 000012f3: JUMPDEST 000012f4: PUSH2 0x12fc 000012f7: DUP2 000012f8: PUSH2 0x1b4a 000012fb: JUMP 000012fc: JUMPDEST 000012fd: DUP5 000012fe: ADD 000012ff: SWAP2 00001300: POP 00001301: POP 00001302: SWAP3 00001303: SWAP2 00001304: POP 00001305: POP 00001306: JUMP 00001307: JUMPDEST 00001308: PUSH1 0x00 0000130a: PUSH2 0x1314 0000130d: PUSH1 0x26 0000130f: DUP4 00001310: PUSH2 0x18f1 00001313: JUMP 00001314: JUMPDEST 00001315: SWAP2 00001316: POP 00001317: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00001338: PUSH1 0x00 0000133a: DUP4 0000133b: ADD 0000133c: MSTORE 0000133d: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 0000135e: PUSH1 0x20 00001360: DUP4 00001361: ADD 00001362: MSTORE 00001363: PUSH1 0x40 00001365: DUP3 00001366: ADD 00001367: SWAP1 00001368: POP 00001369: SWAP2 0000136a: SWAP1 0000136b: POP 0000136c: JUMP 0000136d: JUMPDEST 0000136e: PUSH1 0x00 00001370: PUSH2 0x137a 00001373: PUSH1 0x26 00001375: DUP4 00001376: PUSH2 0x18f1 00001379: JUMP 0000137a: JUMPDEST 0000137b: SWAP2 0000137c: POP 0000137d: PUSH32 0x5061796d656e7453706c69747465723a206163636f756e7420686173206e6f20 0000139e: PUSH1 0x00 000013a0: DUP4 000013a1: ADD 000013a2: MSTORE 000013a3: PUSH32 0x7368617265730000000000000000000000000000000000000000000000000000 000013c4: PUSH1 0x20 000013c6: DUP4 000013c7: ADD 000013c8: MSTORE 000013c9: PUSH1 0x40 000013cb: DUP3 000013cc: ADD 000013cd: SWAP1 000013ce: POP 000013cf: SWAP2 000013d0: SWAP1 000013d1: POP 000013d2: JUMP 000013d3: JUMPDEST 000013d4: PUSH1 0x00 000013d6: PUSH2 0x13e0 000013d9: PUSH1 0x2e 000013db: DUP4 000013dc: PUSH2 0x18f1 000013df: JUMP 000013e0: JUMPDEST 000013e1: SWAP2 000013e2: POP 000013e3: PUSH32 0x596f7520617265206e6f7420617574686f72697a656420746f20706572666f72 00001404: PUSH1 0x00 00001406: DUP4 00001407: ADD 00001408: MSTORE 00001409: PUSH32 0x6d207468697320616374696f6e2e000000000000000000000000000000000000 0000142a: PUSH1 0x20 0000142c: DUP4 0000142d: ADD 0000142e: MSTORE 0000142f: PUSH1 0x40 00001431: DUP3 00001432: ADD 00001433: SWAP1 00001434: POP 00001435: SWAP2 00001436: SWAP1 00001437: POP 00001438: JUMP 00001439: JUMPDEST 0000143a: PUSH1 0x00 0000143c: PUSH2 0x1446 0000143f: PUSH1 0x3a 00001441: DUP4 00001442: PUSH2 0x18f1 00001445: JUMP 00001446: JUMPDEST 00001447: SWAP2 00001448: POP 00001449: PUSH32 0x416464726573733a20756e61626c6520746f2073656e642076616c75652c2072 0000146a: PUSH1 0x00 0000146c: DUP4 0000146d: ADD 0000146e: MSTORE 0000146f: PUSH32 0x6563697069656e74206d61792068617665207265766572746564000000000000 00001490: PUSH1 0x20 00001492: DUP4 00001493: ADD 00001494: MSTORE 00001495: PUSH1 0x40 00001497: DUP3 00001498: ADD 00001499: SWAP1 0000149a: POP 0000149b: SWAP2 0000149c: SWAP1 0000149d: POP 0000149e: JUMP 0000149f: JUMPDEST 000014a0: PUSH1 0x00 000014a2: PUSH2 0x14ac 000014a5: PUSH1 0x1d 000014a7: DUP4 000014a8: PUSH2 0x18f1 000014ab: JUMP 000014ac: JUMPDEST 000014ad: SWAP2 000014ae: POP 000014af: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e6365000000 000014d0: PUSH1 0x00 000014d2: DUP4 000014d3: ADD 000014d4: MSTORE 000014d5: PUSH1 0x20 000014d7: DUP3 000014d8: ADD 000014d9: SWAP1 000014da: POP 000014db: SWAP2 000014dc: SWAP1 000014dd: POP 000014de: JUMP 000014df: JUMPDEST 000014e0: PUSH1 0x00 000014e2: PUSH2 0x14ec 000014e5: PUSH1 0x26 000014e7: DUP4 000014e8: PUSH2 0x18f1 000014eb: JUMP 000014ec: JUMPDEST 000014ed: SWAP2 000014ee: POP 000014ef: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 00001510: PUSH1 0x00 00001512: DUP4 00001513: ADD 00001514: MSTORE 00001515: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 00001536: PUSH1 0x20 00001538: DUP4 00001539: ADD 0000153a: MSTORE 0000153b: PUSH1 0x40 0000153d: DUP3 0000153e: ADD 0000153f: SWAP1 00001540: POP 00001541: SWAP2 00001542: SWAP1 00001543: POP 00001544: JUMP 00001545: JUMPDEST 00001546: PUSH1 0x00 00001548: PUSH2 0x1552 0000154b: PUSH1 0x2b 0000154d: DUP4 0000154e: PUSH2 0x18f1 00001551: JUMP 00001552: JUMPDEST 00001553: SWAP2 00001554: POP 00001555: PUSH32 0x5061796d656e7453706c69747465723a206163636f756e74206973206e6f7420 00001576: PUSH1 0x00 00001578: DUP4 00001579: ADD 0000157a: MSTORE 0000157b: PUSH32 0x647565207061796d656e74000000000000000000000000000000000000000000 0000159c: PUSH1 0x20 0000159e: DUP4 0000159f: ADD 000015a0: MSTORE 000015a1: PUSH1 0x40 000015a3: DUP3 000015a4: ADD 000015a5: SWAP1 000015a6: POP 000015a7: SWAP2 000015a8: SWAP1 000015a9: POP 000015aa: JUMP 000015ab: JUMPDEST 000015ac: PUSH1 0x00 000015ae: PUSH2 0x15b8 000015b1: PUSH1 0x20 000015b3: DUP4 000015b4: PUSH2 0x18f1 000015b7: JUMP 000015b8: JUMPDEST 000015b9: SWAP2 000015ba: POP 000015bb: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 000015dc: PUSH1 0x00 000015de: DUP4 000015df: ADD 000015e0: MSTORE 000015e1: PUSH1 0x20 000015e3: DUP3 000015e4: ADD 000015e5: SWAP1 000015e6: POP 000015e7: SWAP2 000015e8: SWAP1 000015e9: POP 000015ea: JUMP 000015eb: JUMPDEST 000015ec: PUSH1 0x00 000015ee: PUSH2 0x15f8 000015f1: PUSH1 0x00 000015f3: DUP4 000015f4: PUSH2 0x18e6 000015f7: JUMP 000015f8: JUMPDEST 000015f9: SWAP2 000015fa: POP 000015fb: PUSH1 0x00 000015fd: DUP3 000015fe: ADD 000015ff: SWAP1 00001600: POP 00001601: SWAP2 00001602: SWAP1 00001603: POP 00001604: JUMP 00001605: JUMPDEST 00001606: PUSH1 0x00 00001608: PUSH2 0x1612 0000160b: PUSH1 0x1d 0000160d: DUP4 0000160e: PUSH2 0x18f1 00001611: JUMP 00001612: JUMPDEST 00001613: SWAP2 00001614: POP 00001615: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00001636: PUSH1 0x00 00001638: DUP4 00001639: ADD 0000163a: MSTORE 0000163b: PUSH1 0x20 0000163d: DUP3 0000163e: ADD 0000163f: SWAP1 00001640: POP 00001641: SWAP2 00001642: SWAP1 00001643: POP 00001644: JUMP 00001645: JUMPDEST 00001646: PUSH1 0x00 00001648: PUSH2 0x1652 0000164b: PUSH1 0x2a 0000164d: DUP4 0000164e: PUSH2 0x18f1 00001651: JUMP 00001652: JUMPDEST 00001653: SWAP2 00001654: POP 00001655: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00001676: PUSH1 0x00 00001678: DUP4 00001679: ADD 0000167a: MSTORE 0000167b: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 0000169c: PUSH1 0x20 0000169e: DUP4 0000169f: ADD 000016a0: MSTORE 000016a1: PUSH1 0x40 000016a3: DUP3 000016a4: ADD 000016a5: SWAP1 000016a6: POP 000016a7: SWAP2 000016a8: SWAP1 000016a9: POP 000016aa: JUMP 000016ab: JUMPDEST 000016ac: PUSH2 0x16b4 000016af: DUP2 000016b0: PUSH2 0x1a79 000016b3: JUMP 000016b4: JUMPDEST 000016b5: DUP3 000016b6: MSTORE 000016b7: POP 000016b8: POP 000016b9: JUMP 000016ba: JUMPDEST 000016bb: PUSH1 0x00 000016bd: PUSH2 0x16c6 000016c0: DUP3 000016c1: DUP5 000016c2: PUSH2 0x129d 000016c5: JUMP 000016c6: JUMPDEST 000016c7: SWAP2 000016c8: POP 000016c9: DUP2 000016ca: SWAP1 000016cb: POP 000016cc: SWAP3 000016cd: SWAP2 000016ce: POP 000016cf: POP 000016d0: JUMP 000016d1: JUMPDEST 000016d2: PUSH1 0x00 000016d4: PUSH2 0x16dc 000016d7: DUP3 000016d8: PUSH2 0x15eb 000016db: JUMP 000016dc: JUMPDEST 000016dd: SWAP2 000016de: POP 000016df: DUP2 000016e0: SWAP1 000016e1: POP 000016e2: SWAP2 000016e3: SWAP1 000016e4: POP 000016e5: JUMP 000016e6: JUMPDEST 000016e7: PUSH1 0x00 000016e9: PUSH1 0x20 000016eb: DUP3 000016ec: ADD 000016ed: SWAP1 000016ee: POP 000016ef: PUSH2 0x16fb 000016f2: PUSH1 0x00 000016f4: DUP4 000016f5: ADD 000016f6: DUP5 000016f7: PUSH2 0x128e 000016fa: JUMP 000016fb: JUMPDEST 000016fc: SWAP3 000016fd: SWAP2 000016fe: POP 000016ff: POP 00001700: JUMP 00001701: JUMPDEST 00001702: PUSH1 0x00 00001704: PUSH1 0x40 00001706: DUP3 00001707: ADD 00001708: SWAP1 00001709: POP 0000170a: PUSH2 0x1716 0000170d: PUSH1 0x00 0000170f: DUP4 00001710: ADD 00001711: DUP6 00001712: PUSH2 0x127f 00001715: JUMP 00001716: JUMPDEST 00001717: PUSH2 0x1723 0000171a: PUSH1 0x20 0000171c: DUP4 0000171d: ADD 0000171e: DUP5 0000171f: PUSH2 0x16ab 00001722: JUMP 00001723: JUMPDEST 00001724: SWAP4 00001725: SWAP3 00001726: POP 00001727: POP 00001728: POP 00001729: JUMP 0000172a: JUMPDEST 0000172b: PUSH1 0x00 0000172d: PUSH1 0x40 0000172f: DUP3 00001730: ADD 00001731: SWAP1 00001732: POP 00001733: PUSH2 0x173f 00001736: PUSH1 0x00 00001738: DUP4 00001739: ADD 0000173a: DUP6 0000173b: PUSH2 0x128e 0000173e: JUMP 0000173f: JUMPDEST 00001740: PUSH2 0x174c 00001743: PUSH1 0x20 00001745: DUP4 00001746: ADD 00001747: DUP5 00001748: PUSH2 0x16ab 0000174b: JUMP 0000174c: JUMPDEST 0000174d: SWAP4 0000174e: SWAP3 0000174f: POP 00001750: POP 00001751: POP 00001752: JUMP 00001753: JUMPDEST 00001754: PUSH1 0x00 00001756: PUSH1 0x20 00001758: DUP3 00001759: ADD 0000175a: SWAP1 0000175b: POP 0000175c: DUP2 0000175d: DUP2 0000175e: SUB 0000175f: PUSH1 0x00 00001761: DUP4 00001762: ADD 00001763: MSTORE 00001764: PUSH2 0x176d 00001767: DUP2 00001768: DUP5 00001769: PUSH2 0x12ce 0000176c: JUMP 0000176d: JUMPDEST 0000176e: SWAP1 0000176f: POP 00001770: SWAP3 00001771: SWAP2 00001772: POP 00001773: POP 00001774: JUMP 00001775: JUMPDEST 00001776: PUSH1 0x00 00001778: PUSH1 0x20 0000177a: DUP3 0000177b: ADD 0000177c: SWAP1 0000177d: POP 0000177e: DUP2 0000177f: DUP2 00001780: SUB 00001781: PUSH1 0x00 00001783: DUP4 00001784: ADD 00001785: MSTORE 00001786: PUSH2 0x178e 00001789: DUP2 0000178a: PUSH2 0x1307 0000178d: JUMP 0000178e: JUMPDEST 0000178f: SWAP1 00001790: POP 00001791: SWAP2 00001792: SWAP1 00001793: POP 00001794: JUMP 00001795: JUMPDEST 00001796: PUSH1 0x00 00001798: PUSH1 0x20 0000179a: DUP3 0000179b: ADD 0000179c: SWAP1 0000179d: POP 0000179e: DUP2 0000179f: DUP2 000017a0: SUB 000017a1: PUSH1 0x00 000017a3: DUP4 000017a4: ADD 000017a5: MSTORE 000017a6: PUSH2 0x17ae 000017a9: DUP2 000017aa: PUSH2 0x136d 000017ad: JUMP 000017ae: JUMPDEST 000017af: SWAP1 000017b0: POP 000017b1: SWAP2 000017b2: SWAP1 000017b3: POP 000017b4: JUMP 000017b5: JUMPDEST 000017b6: PUSH1 0x00 000017b8: PUSH1 0x20 000017ba: DUP3 000017bb: ADD 000017bc: SWAP1 000017bd: POP 000017be: DUP2 000017bf: DUP2 000017c0: SUB 000017c1: PUSH1 0x00 000017c3: DUP4 000017c4: ADD 000017c5: MSTORE 000017c6: PUSH2 0x17ce 000017c9: DUP2 000017ca: PUSH2 0x13d3 000017cd: JUMP 000017ce: JUMPDEST 000017cf: SWAP1 000017d0: POP 000017d1: SWAP2 000017d2: SWAP1 000017d3: POP 000017d4: JUMP 000017d5: JUMPDEST 000017d6: PUSH1 0x00 000017d8: PUSH1 0x20 000017da: DUP3 000017db: ADD 000017dc: SWAP1 000017dd: POP 000017de: DUP2 000017df: DUP2 000017e0: SUB 000017e1: PUSH1 0x00 000017e3: DUP4 000017e4: ADD 000017e5: MSTORE 000017e6: PUSH2 0x17ee 000017e9: DUP2 000017ea: PUSH2 0x1439 000017ed: JUMP 000017ee: JUMPDEST 000017ef: SWAP1 000017f0: POP 000017f1: SWAP2 000017f2: SWAP1 000017f3: POP 000017f4: JUMP 000017f5: JUMPDEST 000017f6: PUSH1 0x00 000017f8: PUSH1 0x20 000017fa: DUP3 000017fb: ADD 000017fc: SWAP1 000017fd: POP 000017fe: DUP2 000017ff: DUP2 00001800: SUB 00001801: PUSH1 0x00 00001803: DUP4 00001804: ADD 00001805: MSTORE 00001806: PUSH2 0x180e 00001809: DUP2 0000180a: PUSH2 0x149f 0000180d: JUMP 0000180e: JUMPDEST 0000180f: SWAP1 00001810: POP 00001811: SWAP2 00001812: SWAP1 00001813: POP 00001814: JUMP 00001815: JUMPDEST 00001816: PUSH1 0x00 00001818: PUSH1 0x20 0000181a: DUP3 0000181b: ADD 0000181c: SWAP1 0000181d: POP 0000181e: DUP2 0000181f: DUP2 00001820: SUB 00001821: PUSH1 0x00 00001823: DUP4 00001824: ADD 00001825: MSTORE 00001826: PUSH2 0x182e 00001829: DUP2 0000182a: PUSH2 0x14df 0000182d: JUMP 0000182e: JUMPDEST 0000182f: SWAP1 00001830: POP 00001831: SWAP2 00001832: SWAP1 00001833: POP 00001834: JUMP 00001835: JUMPDEST 00001836: PUSH1 0x00 00001838: PUSH1 0x20 0000183a: DUP3 0000183b: ADD 0000183c: SWAP1 0000183d: POP 0000183e: DUP2 0000183f: DUP2 00001840: SUB 00001841: PUSH1 0x00 00001843: DUP4 00001844: ADD 00001845: MSTORE 00001846: PUSH2 0x184e 00001849: DUP2 0000184a: PUSH2 0x1545 0000184d: JUMP 0000184e: JUMPDEST 0000184f: SWAP1 00001850: POP 00001851: SWAP2 00001852: SWAP1 00001853: POP 00001854: JUMP 00001855: JUMPDEST 00001856: PUSH1 0x00 00001858: PUSH1 0x20 0000185a: DUP3 0000185b: ADD 0000185c: SWAP1 0000185d: POP 0000185e: DUP2 0000185f: DUP2 00001860: SUB 00001861: PUSH1 0x00 00001863: DUP4 00001864: ADD 00001865: MSTORE 00001866: PUSH2 0x186e 00001869: DUP2 0000186a: PUSH2 0x15ab 0000186d: JUMP 0000186e: JUMPDEST 0000186f: SWAP1 00001870: POP 00001871: SWAP2 00001872: SWAP1 00001873: POP 00001874: JUMP 00001875: JUMPDEST 00001876: PUSH1 0x00 00001878: PUSH1 0x20 0000187a: DUP3 0000187b: ADD 0000187c: SWAP1 0000187d: POP 0000187e: DUP2 0000187f: DUP2 00001880: SUB 00001881: PUSH1 0x00 00001883: DUP4 00001884: ADD 00001885: MSTORE 00001886: PUSH2 0x188e 00001889: DUP2 0000188a: PUSH2 0x1605 0000188d: JUMP 0000188e: JUMPDEST 0000188f: SWAP1 00001890: POP 00001891: SWAP2 00001892: SWAP1 00001893: POP 00001894: JUMP 00001895: JUMPDEST 00001896: PUSH1 0x00 00001898: PUSH1 0x20 0000189a: DUP3 0000189b: ADD 0000189c: SWAP1 0000189d: POP 0000189e: DUP2 0000189f: DUP2 000018a0: SUB 000018a1: PUSH1 0x00 000018a3: DUP4 000018a4: ADD 000018a5: MSTORE 000018a6: PUSH2 0x18ae 000018a9: DUP2 000018aa: PUSH2 0x1645 000018ad: JUMP 000018ae: JUMPDEST 000018af: SWAP1 000018b0: POP 000018b1: SWAP2 000018b2: SWAP1 000018b3: POP 000018b4: JUMP 000018b5: JUMPDEST 000018b6: PUSH1 0x00 000018b8: PUSH1 0x20 000018ba: DUP3 000018bb: ADD 000018bc: SWAP1 000018bd: POP 000018be: PUSH2 0x18ca 000018c1: PUSH1 0x00 000018c3: DUP4 000018c4: ADD 000018c5: DUP5 000018c6: PUSH2 0x16ab 000018c9: JUMP 000018ca: JUMPDEST 000018cb: SWAP3 000018cc: SWAP2 000018cd: POP 000018ce: POP 000018cf: JUMP 000018d0: JUMPDEST 000018d1: PUSH1 0x00 000018d3: DUP2 000018d4: MLOAD 000018d5: SWAP1 000018d6: POP 000018d7: SWAP2 000018d8: SWAP1 000018d9: POP 000018da: JUMP 000018db: JUMPDEST 000018dc: PUSH1 0x00 000018de: DUP2 000018df: MLOAD 000018e0: SWAP1 000018e1: POP 000018e2: SWAP2 000018e3: SWAP1 000018e4: POP 000018e5: JUMP 000018e6: JUMPDEST 000018e7: PUSH1 0x00 000018e9: DUP2 000018ea: SWAP1 000018eb: POP 000018ec: SWAP3 000018ed: SWAP2 000018ee: POP 000018ef: POP 000018f0: JUMP 000018f1: JUMPDEST 000018f2: PUSH1 0x00 000018f4: DUP3 000018f5: DUP3 000018f6: MSTORE 000018f7: PUSH1 0x20 000018f9: DUP3 000018fa: ADD 000018fb: SWAP1 000018fc: POP 000018fd: SWAP3 000018fe: SWAP2 000018ff: POP 00001900: POP 00001901: JUMP 00001902: JUMPDEST 00001903: PUSH1 0x00 00001905: PUSH2 0x190d 00001908: DUP3 00001909: PUSH2 0x1a79 0000190c: JUMP 0000190d: JUMPDEST 0000190e: SWAP2 0000190f: POP 00001910: PUSH2 0x1918 00001913: DUP4 00001914: PUSH2 0x1a79 00001917: JUMP 00001918: JUMPDEST 00001919: SWAP3 0000191a: POP 0000191b: DUP3 0000191c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000193d: SUB 0000193e: DUP3 0000193f: GT 00001940: ISZERO 00001941: PUSH2 0x194d 00001944: JUMPI 00001945: PUSH2 0x194c 00001948: PUSH2 0x1aec 0000194b: JUMP 0000194c: JUMPDEST 0000194d: JUMPDEST 0000194e: DUP3 0000194f: DUP3 00001950: ADD 00001951: SWAP1 00001952: POP 00001953: SWAP3 00001954: SWAP2 00001955: POP 00001956: POP 00001957: JUMP 00001958: JUMPDEST 00001959: PUSH1 0x00 0000195b: PUSH2 0x1963 0000195e: DUP3 0000195f: PUSH2 0x1a79 00001962: JUMP 00001963: JUMPDEST 00001964: SWAP2 00001965: POP 00001966: PUSH2 0x196e 00001969: DUP4 0000196a: PUSH2 0x1a79 0000196d: JUMP 0000196e: JUMPDEST 0000196f: SWAP3 00001970: POP 00001971: DUP3 00001972: PUSH2 0x197e 00001975: JUMPI 00001976: PUSH2 0x197d 00001979: PUSH2 0x1b1b 0000197c: JUMP 0000197d: JUMPDEST 0000197e: JUMPDEST 0000197f: DUP3 00001980: DUP3 00001981: DIV 00001982: SWAP1 00001983: POP 00001984: SWAP3 00001985: SWAP2 00001986: POP 00001987: POP 00001988: JUMP 00001989: JUMPDEST 0000198a: PUSH1 0x00 0000198c: PUSH2 0x1994 0000198f: DUP3 00001990: PUSH2 0x1a79 00001993: JUMP 00001994: JUMPDEST 00001995: SWAP2 00001996: POP 00001997: PUSH2 0x199f 0000199a: DUP4 0000199b: PUSH2 0x1a79 0000199e: JUMP 0000199f: JUMPDEST 000019a0: SWAP3 000019a1: POP 000019a2: DUP2 000019a3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000019c4: DIV 000019c5: DUP4 000019c6: GT 000019c7: DUP3 000019c8: ISZERO 000019c9: ISZERO 000019ca: AND 000019cb: ISZERO 000019cc: PUSH2 0x19d8 000019cf: JUMPI 000019d0: PUSH2 0x19d7 000019d3: PUSH2 0x1aec 000019d6: JUMP 000019d7: JUMPDEST 000019d8: JUMPDEST 000019d9: DUP3 000019da: DUP3 000019db: MUL 000019dc: SWAP1 000019dd: POP 000019de: SWAP3 000019df: SWAP2 000019e0: POP 000019e1: POP 000019e2: JUMP 000019e3: JUMPDEST 000019e4: PUSH1 0x00 000019e6: PUSH2 0x19ee 000019e9: DUP3 000019ea: PUSH2 0x1a79 000019ed: JUMP 000019ee: JUMPDEST 000019ef: SWAP2 000019f0: POP 000019f1: PUSH2 0x19f9 000019f4: DUP4 000019f5: PUSH2 0x1a79 000019f8: JUMP 000019f9: JUMPDEST 000019fa: SWAP3 000019fb: POP 000019fc: DUP3 000019fd: DUP3 000019fe: LT 000019ff: ISZERO 00001a00: PUSH2 0x1a0c 00001a03: JUMPI 00001a04: PUSH2 0x1a0b 00001a07: PUSH2 0x1aec 00001a0a: JUMP 00001a0b: JUMPDEST 00001a0c: JUMPDEST 00001a0d: DUP3 00001a0e: DUP3 00001a0f: SUB 00001a10: SWAP1 00001a11: POP 00001a12: SWAP3 00001a13: SWAP2 00001a14: POP 00001a15: POP 00001a16: JUMP 00001a17: JUMPDEST 00001a18: PUSH1 0x00 00001a1a: PUSH2 0x1a22 00001a1d: DUP3 00001a1e: PUSH2 0x1a59 00001a21: JUMP 00001a22: JUMPDEST 00001a23: SWAP1 00001a24: POP 00001a25: SWAP2 00001a26: SWAP1 00001a27: POP 00001a28: JUMP 00001a29: JUMPDEST 00001a2a: PUSH1 0x00 00001a2c: PUSH2 0x1a34 00001a2f: DUP3 00001a30: PUSH2 0x1a59 00001a33: JUMP 00001a34: JUMPDEST 00001a35: SWAP1 00001a36: POP 00001a37: SWAP2 00001a38: SWAP1 00001a39: POP 00001a3a: JUMP 00001a3b: JUMPDEST 00001a3c: PUSH1 0x00 00001a3e: DUP2 00001a3f: ISZERO 00001a40: ISZERO 00001a41: SWAP1 00001a42: POP 00001a43: SWAP2 00001a44: SWAP1 00001a45: POP 00001a46: JUMP 00001a47: JUMPDEST 00001a48: PUSH1 0x00 00001a4a: PUSH2 0x1a52 00001a4d: DUP3 00001a4e: PUSH2 0x1a17 00001a51: JUMP 00001a52: JUMPDEST 00001a53: SWAP1 00001a54: POP 00001a55: SWAP2 00001a56: SWAP1 00001a57: POP 00001a58: JUMP 00001a59: JUMPDEST 00001a5a: PUSH1 0x00 00001a5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a71: DUP3 00001a72: AND 00001a73: SWAP1 00001a74: POP 00001a75: SWAP2 00001a76: SWAP1 00001a77: POP 00001a78: JUMP 00001a79: JUMPDEST 00001a7a: PUSH1 0x00 00001a7c: DUP2 00001a7d: SWAP1 00001a7e: POP 00001a7f: SWAP2 00001a80: SWAP1 00001a81: POP 00001a82: JUMP 00001a83: JUMPDEST 00001a84: PUSH1 0x00 00001a86: PUSH2 0x1a8e 00001a89: DUP3 00001a8a: PUSH2 0x1a95 00001a8d: JUMP 00001a8e: JUMPDEST 00001a8f: SWAP1 00001a90: POP 00001a91: SWAP2 00001a92: SWAP1 00001a93: POP 00001a94: JUMP 00001a95: JUMPDEST 00001a96: PUSH1 0x00 00001a98: PUSH2 0x1aa0 00001a9b: DUP3 00001a9c: PUSH2 0x1aa7 00001a9f: JUMP 00001aa0: JUMPDEST 00001aa1: SWAP1 00001aa2: POP 00001aa3: SWAP2 00001aa4: SWAP1 00001aa5: POP 00001aa6: JUMP 00001aa7: JUMPDEST 00001aa8: PUSH1 0x00 00001aaa: PUSH2 0x1ab2 00001aad: DUP3 00001aae: PUSH2 0x1a59 00001ab1: JUMP 00001ab2: JUMPDEST 00001ab3: SWAP1 00001ab4: POP 00001ab5: SWAP2 00001ab6: SWAP1 00001ab7: POP 00001ab8: JUMP 00001ab9: JUMPDEST 00001aba: PUSH1 0x00 00001abc: JUMPDEST 00001abd: DUP4 00001abe: DUP2 00001abf: LT 00001ac0: ISZERO 00001ac1: PUSH2 0x1ad7 00001ac4: JUMPI 00001ac5: DUP1 00001ac6: DUP3 00001ac7: ADD 00001ac8: MLOAD 00001ac9: DUP2 00001aca: DUP5 00001acb: ADD 00001acc: MSTORE 00001acd: PUSH1 0x20 00001acf: DUP2 00001ad0: ADD 00001ad1: SWAP1 00001ad2: POP 00001ad3: PUSH2 0x1abc 00001ad6: JUMP 00001ad7: JUMPDEST 00001ad8: DUP4 00001ad9: DUP2 00001ada: GT 00001adb: ISZERO 00001adc: PUSH2 0x1ae6 00001adf: JUMPI 00001ae0: PUSH1 0x00 00001ae2: DUP5 00001ae3: DUP5 00001ae4: ADD 00001ae5: MSTORE 00001ae6: JUMPDEST 00001ae7: POP 00001ae8: POP 00001ae9: POP 00001aea: POP 00001aeb: JUMP 00001aec: JUMPDEST 00001aed: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001b0e: PUSH1 0x00 00001b10: MSTORE 00001b11: PUSH1 0x11 00001b13: PUSH1 0x04 00001b15: MSTORE 00001b16: PUSH1 0x24 00001b18: PUSH1 0x00 00001b1a: REVERT 00001b1b: JUMPDEST 00001b1c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001b3d: PUSH1 0x00 00001b3f: MSTORE 00001b40: PUSH1 0x12 00001b42: PUSH1 0x04 00001b44: MSTORE 00001b45: PUSH1 0x24 00001b47: PUSH1 0x00 00001b49: REVERT 00001b4a: JUMPDEST 00001b4b: PUSH1 0x00 00001b4d: PUSH1 0x1f 00001b4f: NOT 00001b50: PUSH1 0x1f 00001b52: DUP4 00001b53: ADD 00001b54: AND 00001b55: SWAP1 00001b56: POP 00001b57: SWAP2 00001b58: SWAP1 00001b59: POP 00001b5a: JUMP 00001b5b: JUMPDEST 00001b5c: PUSH2 0x1b64 00001b5f: DUP2 00001b60: PUSH2 0x1a17 00001b63: JUMP 00001b64: JUMPDEST 00001b65: DUP2 00001b66: EQ 00001b67: PUSH2 0x1b6f 00001b6a: JUMPI 00001b6b: PUSH1 0x00 00001b6d: DUP1 00001b6e: REVERT 00001b6f: JUMPDEST 00001b70: POP 00001b71: JUMP 00001b72: JUMPDEST 00001b73: PUSH2 0x1b7b 00001b76: DUP2 00001b77: PUSH2 0x1a29 00001b7a: JUMP 00001b7b: JUMPDEST 00001b7c: DUP2 00001b7d: EQ 00001b7e: PUSH2 0x1b86 00001b81: JUMPI 00001b82: PUSH1 0x00 00001b84: DUP1 00001b85: REVERT 00001b86: JUMPDEST 00001b87: POP 00001b88: JUMP 00001b89: JUMPDEST 00001b8a: PUSH2 0x1b92 00001b8d: DUP2 00001b8e: PUSH2 0x1a3b 00001b91: JUMP 00001b92: JUMPDEST 00001b93: DUP2 00001b94: EQ 00001b95: PUSH2 0x1b9d 00001b98: JUMPI 00001b99: PUSH1 0x00 00001b9b: DUP1 00001b9c: REVERT 00001b9d: JUMPDEST 00001b9e: POP 00001b9f: JUMP 00001ba0: JUMPDEST 00001ba1: PUSH2 0x1ba9 00001ba4: DUP2 00001ba5: PUSH2 0x1a47 00001ba8: JUMP 00001ba9: JUMPDEST 00001baa: DUP2 00001bab: EQ 00001bac: PUSH2 0x1bb4 00001baf: JUMPI 00001bb0: PUSH1 0x00 00001bb2: DUP1 00001bb3: REVERT 00001bb4: JUMPDEST 00001bb5: POP 00001bb6: JUMP 00001bb7: JUMPDEST 00001bb8: PUSH2 0x1bc0 00001bbb: DUP2 00001bbc: PUSH2 0x1a79 00001bbf: JUMP 00001bc0: JUMPDEST 00001bc1: DUP2 00001bc2: EQ 00001bc3: PUSH2 0x1bcb 00001bc6: JUMPI 00001bc7: PUSH1 0x00 00001bc9: DUP1 00001bca: REVERT 00001bcb: JUMPDEST 00001bcc: POP 00001bcd: JUMP 00001bce: INVALID 00001bcf: LOG2 00001bd0: PUSH5 0x6970667358 00001bd6: UNKNOWN(0x22) 00001bd7: SLT 00001bd8: KECCAK256 00001bd9: UNKNOWN(0xE6) 00001bda: EXP 00001bdb: COINBASE 00001bdc: MSIZE 00001bdd: PUSH22 0x5224e674c13eb31fe6109d2fe1328329b0d9f6262adf 00001bf4: UNKNOWN(0x2C) 00001bf5: UNKNOWN(0xD6) 00001bf6: ADDMOD 00001bf7: SWAP13 00001bf8: PUSH2 0x6473 00001bfb: PUSH16
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | math | codex | Hardcoded 1000 denominator breaks accounting when shares do not sum to 1000 | 75 | no | — |
viewevidence_json{
"evidence": "`_pendingPayment` divides by a constant 1000 and ignores `_totalShares`, while `_totalShares` is accumulated but never used for payouts.",
"locations": [
"contracts/AmbassadorsFund.sol:98",
"contracts/AmbassadorsFund.sol:103",
"contracts/AmbassadorsFund.sol:115"
],
"recommendation": "Use `_totalShares` as the denominator (as in OpenZeppelin PaymentSplitter), or enforce in `_addPayee`/constructor that the total shares must equal 1000 and revert otherwise.",
"exploit_scenario": "If the constructor is configured with shares that do not sum to 1000, payouts are miscomputed. When the total is less than 1000, a portion of ETH/tokens becomes permanently unclaimable (no rescue method). When the total exceeds 1000, the contract becomes insolvent and some payees can never withdraw their computed entitlement, leaving funds stuck or unfairly distributed as deposits arrive."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xa42c7b2585f54a1802ae6f3f690ca078cd6b958dc8a014e317184aeb82dba354
call_targets:
0xe9426198aec621203ba1fe07cf292b3796ba6248
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xa42c7b2585f54a1802ae6f3f690ca078cd6b958dc8a014e317184aeb82dba354",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xe9426198aec621203ba1fe07cf292b3796ba6248"
],
"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": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9852595c",
"selector": "0x9852595c",
"calldata_variants": [
"0x9852595c",
"0x9852595c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xce7c2ac2",
"selector": "0xce7c2ac2",
"calldata_variants": [
"0xce7c2ac2",
"0xce7c2ac20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd79779b2",
"selector": "0xd79779b2",
"calldata_variants": [
"0xd79779b2",
"0xd79779b20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe33b7de3",
"selector": "0xe33b7de3",
"calldata_variants": [
"0xe33b7de3",
"0xe33b7de30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19165587",
"selector": "0x19165587",
"calldata_variants": [
"0x19165587",
"0x191655870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3a98ef39",
"selector": "0x3a98ef39",
"calldata_variants": [
"0x3a98ef39",
"0x3a98ef390000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3226,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4100,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 859,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 2
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xa42c7b2585f54a1802ae6f3f690ca078cd6b958dc8a014e317184aeb82dba354
call_targets:
0xe9426198aec621203ba1fe07cf292b3796ba6248
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xa42c7b2585f54a1802ae6f3f690ca078cd6b958dc8a014e317184aeb82dba354",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xe9426198aec621203ba1fe07cf292b3796ba6248"
],
"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": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9852595c",
"selector": "0x9852595c",
"calldata_variants": [
"0x9852595c",
"0x9852595c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xce7c2ac2",
"selector": "0xce7c2ac2",
"calldata_variants": [
"0xce7c2ac2",
"0xce7c2ac20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd79779b2",
"selector": "0xd79779b2",
"calldata_variants": [
"0xd79779b2",
"0xd79779b20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe33b7de3",
"selector": "0xe33b7de3",
"calldata_variants": [
"0xe33b7de3",
"0xe33b7de30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19165587",
"selector": "0x19165587",
"calldata_variants": [
"0x19165587",
"0x191655870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3a98ef39",
"selector": "0x3a98ef39",
"calldata_variants": [
"0x3a98ef39",
"0x3a98ef390000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3226,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4100,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": [
{
"pc": 859,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|