a22acaa5-656f-4181-bd39-9ccc7fe754eb
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 |
|---|---|---|---|---|
| 31091 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 76360 | artifact.fetch | complete | 1 / 3 | 2 weeks ago |
| 76361 | tool.cast_disasm | complete | 1 / 3 | 2 weeks ago |
| 76362 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 76363 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 76364 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 76365 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
[codex:342127] OpenAI Codex v0.77.0 (research preview)
[codex:342127] --------
[codex:342127] workdir: /tmp/codex-multi-ihxqitjh
[codex:342127] model: gpt-5.2-codex
[codex:342127] provider: openai
[codex:342127] approval: never
[codex:342127] sandbox: read-only
[codex:342127] reasoning effort: xhigh
[codex:342127] reasoning summaries: auto
[codex:342127] session id: 019b7a8c-55ac-7922-a3dc-6bf58151e369
[codex:342127] --------
[codex:342127] user
[codex:342127] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:342127]
[codex:342127] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:342127]
[codex:342127] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:342127] - Gas inefficiency, code quality, or best practices
[codex:342127] - Theoretical vulnerabilities without a clear extraction path
[codex:342127] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:342127] - Issues requiring social engineering or off-chain coordination
[codex:342127]
[codex:342127] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:342127] - CALL/DELEGATECALL with controllable destination or calldata
[codex:342127] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:342127] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:342127] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:342127] - External calls before state updates (reentrancy)
[codex:342127] - SELFDESTRUCT with controllable beneficiary
[codex:342127] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:342127]
[codex:342127] For each finding, you MUST explain:
[codex:342127] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:342127] 2. The concrete sequence of transactions to extract value
[codex:342127] 3. Why you believe this is exploitable (not just suspicious)
[codex:342127]
[codex:342127] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:342127] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:342127]
[codex:342127] Output MUST be valid JSON matching the provided schema.
[codex:342127] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:342127] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:342127] mcp startup: no servers
[codex:342127]
[codex:342127] thinking
[codex:342127] **Evaluating skill applicability**
[codex:342127] exec
[codex:342127] /bin/bash -lc ls in /tmp/codex-multi-ihxqitjh succeeded in 5ms:
[codex:342127] BYTECODE_BUNDLE.txt
[codex:342127] codex-output-schema.json
[codex:342127] exec
[codex:342127] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-ihxqitjh succeeded in 5ms:
[codex:342127] Runtime bytecode bundle for best-effort auditing.
[codex:342127] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:342127]
[codex:342127] FILE: runtime_bytecode.hex
[codex:342127] 0x60806040526004361061012a5760003560e01c8063a0e67e2b116100ab578063c01a8c841161006f578063c01a8c84146107c4578063c6427474146107ff578063d74f8edd14610905578063dc8452cd14610930578063e20056e61461095b578063ee22610b146109cc5761012a565b8063a0e67e2b146105b0578063a8abe69a1461061c578063b5dc40c3146106ce578063b77bf6001461075e578063ba51a6df146107895761012a565b806354741525116100f257806354741525146103675780637065cb48146103c4578063784547a7146104155780638b51d13f146104685780639ace38c2146104b75761012a565b8063025e7c2714610184578063173825d9146101ff57806320ea8d86146102505780632f54bf6e1461028b5780633411c81c146102f4575b6000341115610182573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b005b34801561019057600080fd5b506101bd600480360360208110156101a757600080fd5b8101908080359060200190929190505050610a07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020b57600080fd5b5061024e6004803603602081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a43565b005b34801561025c57600080fd5b506102896004803603602081101561027357600080fd5b8101908080359060200190929190505050610cd1565b005b34801561029757600080fd5b506102da600480360360208110156102ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e73565b604051808215151515815260200191505060405180910390f35b34801561030057600080fd5b5061034d6004803603604081101561031757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e93565b604051808215151515815260200191505060405180910390f35b34801561037357600080fd5b506103ae6004803603604081101561038a57600080fd5b81019080803515159060200190929190803515159060200190929190505050610ec2565b6040518082815260200191505060405180910390f35b3480156103d057600080fd5b50610413600480360360208110156103e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f54565b005b34801561042157600080fd5b5061044e6004803603602081101561043857600080fd5b8101908080359060200190929190505050611167565b604051808215151515815260200191505060405180910390f35b34801561047457600080fd5b506104a16004803603602081101561048b57600080fd5b810190808035906020019092919050505061124c565b6040518082815260200191505060405180910390f35b3480156104c357600080fd5b506104f0600480360360208110156104da57600080fd5b8101908080359060200190929190505050611315565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b83811015610572578082015181840152602081019050610557565b50505050905090810190601f16801561059f5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156105bc57600080fd5b506105c561140a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106085780820151818401526020810190506105ed565b505050509050019250505060405180910390f35b34801561062857600080fd5b506106776004803603608081101561063f57600080fd5b810190808035906020019092919080359060200190929190803515159060200190929190803515159060200190929190505050611498565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106ba57808201518184015260208101905061069f565b505050509050019250505060405180910390f35b3480156106da57600080fd5b50610707600480360360208110156106f157600080fd5b81019080803590602001909291905050506115fc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561074a57808201518184015260208101905061072f565b505050509050019250505060405180910390f35b34801561076a57600080fd5b50610773611828565b6040518082815260200191505060405180910390f35b34801561079557600080fd5b506107c2600480360360208110156107ac57600080fd5b810190808035906020019092919050505061182e565b005b3480156107d057600080fd5b506107fd600480360360208110156107e757600080fd5b81019080803590602001909291905050506118e4565b005b34801561080b57600080fd5b506108ef6004803603606081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561086957600080fd5b82018360208201111561087b57600080fd5b8035906020019184600183028401116401000000008311171561089d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611ad1565b6040518082815260200191505060405180910390f35b34801561091157600080fd5b5061091a611af0565b6040518082815260200191505060405180910390f35b34801561093c57600080fd5b50610945611af5565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b506109ca6004803603604081101561097e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611afb565b005b3480156109d857600080fd5b50610a05600480360360208110156109ef57600080fd5b8101908080359060200190929190505050611e05565b005b60038181548110610a1457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a7b57600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ad257600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008090505b600160038054905003811015610c52578273ffffffffffffffffffffffffffffffffffffffff1660038281548110610b6457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610c4557600360016003805490500381548110610bc057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660038281548110610bf857fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c52565b8080600101915050610b30565b506001600381818054905003915081610c6b9190612212565b506003805490506004541115610c8a57610c8960038054905061182e565b5b8173ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a25050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d2857600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d9157600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff1615610dbf57600080fd5b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405160405180910390a35050505050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600080600090505b600554811015610f4d57838015610f01575060008082815260200190815260200160002060030160009054906101000a900460ff16155b80610f345750828015610f33575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15610f40576001820191505b8080600101915050610eca565b5092915050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f8c57600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fe457600080fd5b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561101f57600080fd5b6001600380549050016004546032821115801561103c5750818111155b8015611049575060008114155b8015611056575060008214155b61105f57600080fd5b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060038590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b6000806000905060008090505b60038054905081101561124457600160008581526020019081526020016000206000600383815481106111a357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611222576001820191505b60045482141561123757600192505050611247565b8080600101915050611174565b50505b919050565b600080600090505b60038054905081101561130f576001600084815260200190815260200160002060006003838154811061128357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611302576001820191505b8080600101915050611254565b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113ed5780601f106113c2576101008083540402835291602001916113ed565b820191906000526020600020905b8154815290600101906020018083116113d057829003601f168201915b5050505050908060030160009054906101000a900460ff16905084565b6060600380548060200260200160405190810160405280929190818152602001828054801561148e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611444575b5050505050905090565b6060806005546040519080825280602002602001820160405280156114cc5781602001602082028038833980820191505090505b509050600080905060008090505b60055481101561157657858015611511575060008082815260200190815260200160002060030160009054906101000a900460ff16155b806115445750848015611543575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15611569578083838151811061155657fe5b6020026020010181815250506001820191505b80806001019150506114da565b8787036040519080825280602002602001820160405280156115a75781602001602082028038833980820191505090505b5093508790505b868110156115f1578281815181106115c257fe5b602002602001015184898303815181106115d857fe5b60200260200101818152505080806001019150506115ae565b505050949350505050565b6060806003805490506040519080825280602002602001820160405280156116335781602001602082028038833980820191505090505b509050600080905060008090505b60038054905081101561177a576001600086815260200190815260200160002060006003838154811061167057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561176d57600381815481106116f557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811061172c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b8080600101915050611641565b816040519080825280602002602001820160405280156117a95781602001602082028038833980820191505090505b509350600090505b81811015611820578281815181106117c557fe5b60200260200101518482815181106117d957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506117b1565b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186657600080fd5b600380549050816032821115801561187e5750818111155b801561188b575060008114155b8015611898575060008214155b6118a157600080fd5b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a1505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661193b57600080fd5b81600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119ab57600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a1557600080fd5b600180600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405160405180910390a3611aca85611e05565b5050505050565b6000611ade8484846120ad565b9050611ae9816118e4565b9392505050565b603281565b60045481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b3357600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b8a57600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611be257600080fd5b60008090505b600380549050811015611cc8578473ffffffffffffffffffffffffffffffffffffffff1660038281548110611c1957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611cbb578360038281548110611c6e57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611cc8565b8080600101915050611be8565b506000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508373ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a28273ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a250505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e5c57600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ec557600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff1615611ef357600080fd5b611efc85611167565b156120a6576000806000878152602001908152602001600020905060018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040518082805460018160011615610100020316600290048015611fd55780601f10611fb3576101008083540402835291820191611fd5565b820191906000526020600020905b815481529060010190602001808311611fc1575b505091505060006040518083038185875af1925050503d8060008114612017576040519150601f19603f3d011682016040523d82523d6000602084013e61201c565b606091505b50509050801561205857867f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a26120a3565b867f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260008260030160006101000a81548160ff0219169083151502179055505b50505b5050505050565b600083600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120ea57600080fd5b600554915060405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581525060008084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020190805190602001906121a892919061223e565b5060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a2509392505050565b8154818355818111156122395781836000526020600020918201910161223891906122be565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061227f57805160ff19168380011785556122ad565b828001600101855582156122ad579182015b828111156122ac578251825591602001919060010190612291565b5b5090506122ba91906122be565b5090565b6122e091905b808211156122dc5760008160009055506001016122c4565b5090565b9056fea165627a7a723058208dc85fd62b1f33c9409f0296acf1c7525a8727d282bad744b61e77e0ef0f6b750029
[codex:342127]
[codex:342127]
[codex:342127] thinking
[codex:342127] **Examining bytecode for multisig patterns**
[codex:342127] thinking
[codex:342127] **Mapping known MultiSigWallet functions**
[codex:342127]
[codex:342127] I'm comparing the bytecode’s function selectors to standard MultiSigWallet functions to confirm its identity and understand access controls. I’m carefully verifying if owner-only restrictions hold for key methods like submitTransaction and confirmTransaction, checking for patterns that might allow unauthorized calls. I’m also validating the presence of common guards like onlyWallet and validRequirement, and verifying that no suspicious opcodes like delegatecall or selfdestruct exist. So far, the contract looks like a typical MultiSigWallet implementation without obvious exploits, but I’m preparing to generate a JSON summary with no findings after confirming these details.
[codex:342127] exec
[codex:342127] /bin/bash -lc "python - <<'PY'
[codex:342127] import hashlib
[codex:342127] sigs = [
[codex:342127] 'addOwner(address)',
[codex:342127] 'removeOwner(address)',
[codex:342127] 'replaceOwner(address,address)',
[codex:342127] 'changeRequirement(uint256)',
[codex:342127] 'submitTransaction(address,uint256,bytes)',
[codex:342127] 'confirmTransaction(uint256)',
[codex:342127] 'revokeConfirmation(uint256)',
[codex:342127] 'executeTransaction(uint256)',
[codex:342127] 'isOwner(address)',
[codex:342127] 'isConfirmed(uint256)',
[codex:342127] 'getConfirmationCount(uint256)',
[codex:342127] 'getTransactionCount(bool,bool)',
[codex:342127] 'getOwners()',
[codex:342127] 'getConfirmations(uint256)',
[codex:342127] 'getTransactionIds(uint256,uint256,bool,bool)',
[codex:342127] 'transactions(uint256)',
[codex:342127] 'confirmations(uint256,address)',
[codex:342127] 'ownerCount()',
[codex:342127] 'required()',
[codex:342127] 'transactionCount()',
[codex:342127] ]
[codex:342127]
[codex:342127] def selector(sig):
[codex:342127] return hashlib.new('sha3_256', sig.encode()).hexdigest()[:8]
[codex:342127]
[codex:342127] for sig in sigs:
[codex:342127] print(sig, selector(sig))
[codex:342127] PY" in /tmp/codex-multi-ihxqitjh succeeded in 35ms:
[codex:342127] addOwner(address) 8c54d081
[codex:342127] removeOwner(address) 04e4834f
[codex:342127] replaceOwner(address,address) b1173aa8
[codex:342127] changeRequirement(uint256) 640afc45
[codex:342127] submitTransaction(address,uint256,bytes) 6cb8c0ee
[codex:342127] confirmTransaction(uint256) 593c9bda
[codex:342127] revokeConfirmation(uint256) bb64c6be
[codex:342127] executeTransaction(uint256) 343ad26e
[codex:342127] isOwner(address) 44fac43f
[codex:342127] isConfirmed(uint256) ddda6100
[codex:342127] getConfirmationCount(uint256) fdf3dcf0
[codex:342127] getTransactionCount(bool,bool) 95279666
[codex:342127] getOwners() 9588d8c5
[codex:342127] getConfirmations(uint256) 0288d274
[codex:342127] getTransactionIds(uint256,uint256,bool,bool) 723b2544
[codex:342127] transactions(uint256) 5e26e706
[codex:342127] confirmations(uint256,address) 87c7c36a
[codex:342127] ownerCount() 45e82bcb
[codex:342127] required() 6b2b8d00
[codex:342127] transactionCount() 51bfcd31
[codex:342127]
[codex:342127] thinking
[codex:342127] **Investigating Keccak vs SHA3 support**
[codex:342127] exec
[codex:342127] /bin/bash -lc "python - <<'PY'
[codex:342127] try:
[codex:342127] import sha3
[codex:342127] k = sha3.keccak_256()
[codex:342127] k.update(b'getOwners()')
[codex:342127] print(k.hexdigest()[:8])
[codex:342127] except Exception as e:
[codex:342127] print('err', e)
[codex:342127] PY" in /tmp/codex-multi-ihxqitjh succeeded in 18ms:
[codex:342127] err No module named 'sha3'
[codex:342127]
[codex:342127] thinking
[codex:342127] **Checking for keccak support**
[codex:342127] exec
[codex:342127] /bin/bash -lc "python - <<'PY'
[codex:342127] try:
[codex:342127] from Crypto.Hash import keccak
[codex:342127] k = keccak.new(digest_bits=256)
[codex:342127] k.update(b'getOwners()')
[codex:342127] print(k.hexdigest()[:8])
[codex:342127] except Exception as e:
[codex:342127] print('err', e)
[codex:342127] PY" in /tmp/codex-multi-ihxqitjh succeeded in 46ms:
[codex:342127] a0e67e2b
[codex:342127]
[codex:342127] thinking
[codex:342127] **Computing MultiSig function selectors**
[codex:342127] exec
[codex:342127] /bin/bash -lc "python - <<'PY'
[codex:342127] from Crypto.Hash import keccak
[codex:342127]
[codex:342127] def sel(sig):
[codex:342127] k = keccak.new(digest_bits=256)
[codex:342127] k.update(sig.encode())
[codex:342127] return k.hexdigest()[:8]
[codex:342127]
[codex:342127] sigs = [
[codex:342127] 'addOwner(address)',
[codex:342127] 'removeOwner(address)',
[codex:342127] 'replaceOwner(address,address)',
[codex:342127] 'changeRequirement(uint256)',
[codex:342127] 'submitTransaction(address,uint256,bytes)',
[codex:342127] 'confirmTransaction(uint256)',
[codex:342127] 'revokeConfirmation(uint256)',
[codex:342127] 'executeTransaction(uint256)',
[codex:342127] 'isOwner(address)',
[codex:342127] 'isConfirmed(uint256)',
[codex:342127] 'getConfirmationCount(uint256)',
[codex:342127] 'getTransactionCount(bool,bool)',
[codex:342127] 'getOwners()',
[codex:342127] 'getConfirmations(uint256)',
[codex:342127] 'getTransactionIds(uint256,uint256,bool,bool)',
[codex:342127] 'transactions(uint256)',
[codex:342127] 'confirmations(uint256,address)',
[codex:342127] 'ownerCount()',
[codex:342127] 'required()',
[codex:342127] 'transactionCount()',
[codex:342127] 'MAX_OWNER_COUNT()',
[codex:342127] ]
[codex:342127] for sig in sigs:
[codex:342127] print(sig, sel(sig))
[codex:342127] PY" in /tmp/codex-multi-ihxqitjh succeeded in 39ms:
[codex:342127] addOwner(address) 7065cb48
[codex:342127] removeOwner(address) 173825d9
[codex:342127] replaceOwner(address,address) e20056e6
[codex:342127] changeRequirement(uint256) ba51a6df
[codex:342127] submitTransaction(address,uint256,bytes) c6427474
[codex:342127] confirmTransaction(uint256) c01a8c84
[codex:342127] revokeConfirmation(uint256) 20ea8d86
[codex:342127] executeTransaction(uint256) ee22610b
[codex:342127] isOwner(address) 2f54bf6e
[codex:342127] isConfirmed(uint256) 784547a7
[codex:342127] getConfirmationCount(uint256) 8b51d13f
[codex:342127] getTransactionCount(bool,bool) 54741525
[codex:342127] getOwners() a0e67e2b
[codex:342127] getConfirmations(uint256) b5dc40c3
[codex:342127] getTransactionIds(uint256,uint256,bool,bool) a8abe69a
[codex:342127] transactions(uint256) 9ace38c2
[codex:342127] confirmations(uint256,address) 3411c81c
[codex:342127] ownerCount() 0db02622
[codex:342127] required() dc8452cd
[codex:342127] transactionCount() b77bf600
[codex:342127]
[codex:342127] thinking
[codex:342127] **Assessing MultiSigWallet vulnerabilities**
[codex:342127] codex
[codex:342127] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path identified from the bytecode bundle.","findings":[]}
[codex:342127] tokens used
[codex:342127] 36,612
[codex:342127] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path identified from the bytecode bundle.","findings":[]}
{
"codex": {
"ran_at": "2026-01-01T17:15:53.451074+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable value-extraction path identified from the bytecode bundle.",
"raw_final": {
"summary": "No concrete, exploitable value-extraction path identified from the bytecode bundle.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x012a 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0xa0e67e2b 00000019: GT 0000001a: PUSH2 0x00ab 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xc01a8c84 00000024: GT 00000025: PUSH2 0x006f 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xc01a8c84 0000002f: EQ 00000030: PUSH2 0x07c4 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xc6427474 0000003a: EQ 0000003b: PUSH2 0x07ff 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd74f8edd 00000045: EQ 00000046: PUSH2 0x0905 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xdc8452cd 00000050: EQ 00000051: PUSH2 0x0930 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xe20056e6 0000005b: EQ 0000005c: PUSH2 0x095b 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xee22610b 00000066: EQ 00000067: PUSH2 0x09cc 0000006a: JUMPI 0000006b: PUSH2 0x012a 0000006e: JUMP 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0xa0e67e2b 00000076: EQ 00000077: PUSH2 0x05b0 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xa8abe69a 00000081: EQ 00000082: PUSH2 0x061c 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xb5dc40c3 0000008c: EQ 0000008d: PUSH2 0x06ce 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xb77bf600 00000097: EQ 00000098: PUSH2 0x075e 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0xba51a6df 000000a2: EQ 000000a3: PUSH2 0x0789 000000a6: JUMPI 000000a7: PUSH2 0x012a 000000aa: JUMP 000000ab: JUMPDEST 000000ac: DUP1 000000ad: PUSH4 0x54741525 000000b2: GT 000000b3: PUSH2 0x00f2 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x54741525 000000bd: EQ 000000be: PUSH2 0x0367 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x7065cb48 000000c8: EQ 000000c9: PUSH2 0x03c4 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x784547a7 000000d3: EQ 000000d4: PUSH2 0x0415 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x8b51d13f 000000de: EQ 000000df: PUSH2 0x0468 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0x9ace38c2 000000e9: EQ 000000ea: PUSH2 0x04b7 000000ed: JUMPI 000000ee: PUSH2 0x012a 000000f1: JUMP 000000f2: JUMPDEST 000000f3: DUP1 000000f4: PUSH4 0x025e7c27 000000f9: EQ 000000fa: PUSH2 0x0184 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x173825d9 00000104: EQ 00000105: PUSH2 0x01ff 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x20ea8d86 0000010f: EQ 00000110: PUSH2 0x0250 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x2f54bf6e 0000011a: EQ 0000011b: PUSH2 0x028b 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x3411c81c 00000125: EQ 00000126: PUSH2 0x02f4 00000129: JUMPI 0000012a: JUMPDEST 0000012b: PUSH1 0x00 0000012d: CALLVALUE 0000012e: GT 0000012f: ISZERO 00000130: PUSH2 0x0182 00000133: JUMPI 00000134: CALLER 00000135: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000014a: AND 0000014b: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c 0000016c: CALLVALUE 0000016d: PUSH1 0x40 0000016f: MLOAD 00000170: DUP1 00000171: DUP3 00000172: DUP2 00000173: MSTORE 00000174: PUSH1 0x20 00000176: ADD 00000177: SWAP2 00000178: POP 00000179: POP 0000017a: PUSH1 0x40 0000017c: MLOAD 0000017d: DUP1 0000017e: SWAP2 0000017f: SUB 00000180: SWAP1 00000181: LOG2 00000182: JUMPDEST 00000183: STOP 00000184: JUMPDEST 00000185: CALLVALUE 00000186: DUP1 00000187: ISZERO 00000188: PUSH2 0x0190 0000018b: JUMPI 0000018c: PUSH1 0x00 0000018e: DUP1 0000018f: REVERT 00000190: JUMPDEST 00000191: POP 00000192: PUSH2 0x01bd 00000195: PUSH1 0x04 00000197: DUP1 00000198: CALLDATASIZE 00000199: SUB 0000019a: PUSH1 0x20 0000019c: DUP2 0000019d: LT 0000019e: ISZERO 0000019f: PUSH2 0x01a7 000001a2: JUMPI 000001a3: PUSH1 0x00 000001a5: DUP1 000001a6: REVERT 000001a7: JUMPDEST 000001a8: DUP2 000001a9: ADD 000001aa: SWAP1 000001ab: DUP1 000001ac: DUP1 000001ad: CALLDATALOAD 000001ae: SWAP1 000001af: PUSH1 0x20 000001b1: ADD 000001b2: SWAP1 000001b3: SWAP3 000001b4: SWAP2 000001b5: SWAP1 000001b6: POP 000001b7: POP 000001b8: POP 000001b9: PUSH2 0x0a07 000001bc: JUMP 000001bd: JUMPDEST 000001be: PUSH1 0x40 000001c0: MLOAD 000001c1: DUP1 000001c2: DUP3 000001c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001d8: AND 000001d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001ee: AND 000001ef: DUP2 000001f0: MSTORE 000001f1: PUSH1 0x20 000001f3: ADD 000001f4: SWAP2 000001f5: POP 000001f6: POP 000001f7: PUSH1 0x40 000001f9: MLOAD 000001fa: DUP1 000001fb: SWAP2 000001fc: SUB 000001fd: SWAP1 000001fe: RETURN 000001ff: JUMPDEST 00000200: CALLVALUE 00000201: DUP1 00000202: ISZERO 00000203: PUSH2 0x020b 00000206: JUMPI 00000207: PUSH1 0x00 00000209: DUP1 0000020a: REVERT 0000020b: JUMPDEST 0000020c: POP 0000020d: PUSH2 0x024e 00000210: PUSH1 0x04 00000212: DUP1 00000213: CALLDATASIZE 00000214: SUB 00000215: PUSH1 0x20 00000217: DUP2 00000218: LT 00000219: ISZERO 0000021a: PUSH2 0x0222 0000021d: JUMPI 0000021e: PUSH1 0x00 00000220: DUP1 00000221: REVERT 00000222: JUMPDEST 00000223: DUP2 00000224: ADD 00000225: SWAP1 00000226: DUP1 00000227: DUP1 00000228: CALLDATALOAD 00000229: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000023e: AND 0000023f: SWAP1 00000240: PUSH1 0x20 00000242: ADD 00000243: SWAP1 00000244: SWAP3 00000245: SWAP2 00000246: SWAP1 00000247: POP 00000248: POP 00000249: POP 0000024a: PUSH2 0x0a43 0000024d: JUMP 0000024e: JUMPDEST 0000024f: STOP 00000250: JUMPDEST 00000251: CALLVALUE 00000252: DUP1 00000253: ISZERO 00000254: PUSH2 0x025c 00000257: JUMPI 00000258: PUSH1 0x00 0000025a: DUP1 0000025b: REVERT 0000025c: JUMPDEST 0000025d: POP 0000025e: PUSH2 0x0289 00000261: PUSH1 0x04 00000263: DUP1 00000264: CALLDATASIZE 00000265: SUB 00000266: PUSH1 0x20 00000268: DUP2 00000269: LT 0000026a: ISZERO 0000026b: PUSH2 0x0273 0000026e: JUMPI 0000026f: PUSH1 0x00 00000271: DUP1 00000272: REVERT 00000273: JUMPDEST 00000274: DUP2 00000275: ADD 00000276: SWAP1 00000277: DUP1 00000278: DUP1 00000279: CALLDATALOAD 0000027a: SWAP1 0000027b: PUSH1 0x20 0000027d: ADD 0000027e: SWAP1 0000027f: SWAP3 00000280: SWAP2 00000281: SWAP1 00000282: POP 00000283: POP 00000284: POP 00000285: PUSH2 0x0cd1 00000288: JUMP 00000289: JUMPDEST 0000028a: STOP 0000028b: JUMPDEST 0000028c: CALLVALUE 0000028d: DUP1 0000028e: ISZERO 0000028f: PUSH2 0x0297 00000292: JUMPI 00000293: PUSH1 0x00 00000295: DUP1 00000296: REVERT 00000297: JUMPDEST 00000298: POP 00000299: PUSH2 0x02da 0000029c: PUSH1 0x04 0000029e: DUP1 0000029f: CALLDATASIZE 000002a0: SUB 000002a1: PUSH1 0x20 000002a3: DUP2 000002a4: LT 000002a5: ISZERO 000002a6: PUSH2 0x02ae 000002a9: JUMPI 000002aa: PUSH1 0x00 000002ac: DUP1 000002ad: REVERT 000002ae: JUMPDEST 000002af: DUP2 000002b0: ADD 000002b1: SWAP1 000002b2: DUP1 000002b3: DUP1 000002b4: CALLDATALOAD 000002b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002ca: AND 000002cb: SWAP1 000002cc: PUSH1 0x20 000002ce: ADD 000002cf: SWAP1 000002d0: SWAP3 000002d1: SWAP2 000002d2: SWAP1 000002d3: POP 000002d4: POP 000002d5: POP 000002d6: PUSH2 0x0e73 000002d9: JUMP 000002da: JUMPDEST 000002db: PUSH1 0x40 000002dd: MLOAD 000002de: DUP1 000002df: DUP3 000002e0: ISZERO 000002e1: ISZERO 000002e2: ISZERO 000002e3: ISZERO 000002e4: DUP2 000002e5: MSTORE 000002e6: PUSH1 0x20 000002e8: ADD 000002e9: SWAP2 000002ea: POP 000002eb: POP 000002ec: PUSH1 0x40 000002ee: MLOAD 000002ef: DUP1 000002f0: SWAP2 000002f1: SUB 000002f2: SWAP1 000002f3: RETURN 000002f4: JUMPDEST 000002f5: CALLVALUE 000002f6: DUP1 000002f7: ISZERO 000002f8: PUSH2 0x0300 000002fb: JUMPI 000002fc: PUSH1 0x00 000002fe: DUP1 000002ff: REVERT 00000300: JUMPDEST 00000301: POP 00000302: PUSH2 0x034d 00000305: PUSH1 0x04 00000307: DUP1 00000308: CALLDATASIZE 00000309: SUB 0000030a: PUSH1 0x40 0000030c: DUP2 0000030d: LT 0000030e: ISZERO 0000030f: PUSH2 0x0317 00000312: JUMPI 00000313: PUSH1 0x00 00000315: DUP1 00000316: REVERT 00000317: JUMPDEST 00000318: DUP2 00000319: ADD 0000031a: SWAP1 0000031b: DUP1 0000031c: DUP1 0000031d: CALLDATALOAD 0000031e: SWAP1 0000031f: PUSH1 0x20 00000321: ADD 00000322: SWAP1 00000323: SWAP3 00000324: SWAP2 00000325: SWAP1 00000326: DUP1 00000327: CALLDATALOAD 00000328: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000033d: AND 0000033e: SWAP1 0000033f: PUSH1 0x20 00000341: ADD 00000342: SWAP1 00000343: SWAP3 00000344: SWAP2 00000345: SWAP1 00000346: POP 00000347: POP 00000348: POP 00000349: PUSH2 0x0e93 0000034c: JUMP 0000034d: JUMPDEST 0000034e: PUSH1 0x40 00000350: MLOAD 00000351: DUP1 00000352: DUP3 00000353: ISZERO 00000354: ISZERO 00000355: ISZERO 00000356: ISZERO 00000357: DUP2 00000358: MSTORE 00000359: PUSH1 0x20 0000035b: ADD 0000035c: SWAP2 0000035d: POP 0000035e: POP 0000035f: PUSH1 0x40 00000361: MLOAD 00000362: DUP1 00000363: SWAP2 00000364: SUB 00000365: SWAP1 00000366: RETURN 00000367: JUMPDEST 00000368: CALLVALUE 00000369: DUP1 0000036a: ISZERO 0000036b: PUSH2 0x0373 0000036e: JUMPI 0000036f: PUSH1 0x00 00000371: DUP1 00000372: REVERT 00000373: JUMPDEST 00000374: POP 00000375: PUSH2 0x03ae 00000378: PUSH1 0x04 0000037a: DUP1 0000037b: CALLDATASIZE 0000037c: SUB 0000037d: PUSH1 0x40 0000037f: DUP2 00000380: LT 00000381: ISZERO 00000382: PUSH2 0x038a 00000385: JUMPI 00000386: PUSH1 0x00 00000388: DUP1 00000389: REVERT 0000038a: JUMPDEST 0000038b: DUP2 0000038c: ADD 0000038d: SWAP1 0000038e: DUP1 0000038f: DUP1 00000390: CALLDATALOAD 00000391: ISZERO 00000392: ISZERO 00000393: SWAP1 00000394: PUSH1 0x20 00000396: ADD 00000397: SWAP1 00000398: SWAP3 00000399: SWAP2 0000039a: SWAP1 0000039b: DUP1 0000039c: CALLDATALOAD 0000039d: ISZERO 0000039e: ISZERO 0000039f: SWAP1 000003a0: PUSH1 0x20 000003a2: ADD 000003a3: SWAP1 000003a4: SWAP3 000003a5: SWAP2 000003a6: SWAP1 000003a7: POP 000003a8: POP 000003a9: POP 000003aa: PUSH2 0x0ec2 000003ad: JUMP 000003ae: JUMPDEST 000003af: PUSH1 0x40 000003b1: MLOAD 000003b2: DUP1 000003b3: DUP3 000003b4: DUP2 000003b5: MSTORE 000003b6: PUSH1 0x20 000003b8: ADD 000003b9: SWAP2 000003ba: POP 000003bb: POP 000003bc: PUSH1 0x40 000003be: MLOAD 000003bf: DUP1 000003c0: SWAP2 000003c1: SUB 000003c2: SWAP1 000003c3: RETURN 000003c4: JUMPDEST 000003c5: CALLVALUE 000003c6: DUP1 000003c7: ISZERO 000003c8: PUSH2 0x03d0 000003cb: JUMPI 000003cc: PUSH1 0x00 000003ce: DUP1 000003cf: REVERT 000003d0: JUMPDEST 000003d1: POP 000003d2: PUSH2 0x0413 000003d5: PUSH1 0x04 000003d7: DUP1 000003d8: CALLDATASIZE 000003d9: SUB 000003da: PUSH1 0x20 000003dc: DUP2 000003dd: LT 000003de: ISZERO 000003df: PUSH2 0x03e7 000003e2: JUMPI 000003e3: PUSH1 0x00 000003e5: DUP1 000003e6: REVERT 000003e7: JUMPDEST 000003e8: DUP2 000003e9: ADD 000003ea: SWAP1 000003eb: DUP1 000003ec: DUP1 000003ed: CALLDATALOAD 000003ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000403: AND 00000404: SWAP1 00000405: PUSH1 0x20 00000407: ADD 00000408: SWAP1 00000409: SWAP3 0000040a: SWAP2 0000040b: SWAP1 0000040c: POP 0000040d: POP 0000040e: POP 0000040f: PUSH2 0x0f54 00000412: JUMP 00000413: JUMPDEST 00000414: STOP 00000415: JUMPDEST 00000416: CALLVALUE 00000417: DUP1 00000418: ISZERO 00000419: PUSH2 0x0421 0000041c: JUMPI 0000041d: PUSH1 0x00 0000041f: DUP1 00000420: REVERT 00000421: JUMPDEST 00000422: POP 00000423: PUSH2 0x044e 00000426: PUSH1 0x04 00000428: DUP1 00000429: CALLDATASIZE 0000042a: SUB 0000042b: PUSH1 0x20 0000042d: DUP2 0000042e: LT 0000042f: ISZERO 00000430: PUSH2 0x0438 00000433: JUMPI 00000434: PUSH1 0x00 00000436: DUP1 00000437: REVERT 00000438: JUMPDEST 00000439: DUP2 0000043a: ADD 0000043b: SWAP1 0000043c: DUP1 0000043d: DUP1 0000043e: CALLDATALOAD 0000043f: SWAP1 00000440: PUSH1 0x20 00000442: ADD 00000443: SWAP1 00000444: SWAP3 00000445: SWAP2 00000446: SWAP1 00000447: POP 00000448: POP 00000449: POP 0000044a: PUSH2 0x1167 0000044d: JUMP 0000044e: JUMPDEST 0000044f: PUSH1 0x40 00000451: MLOAD 00000452: DUP1 00000453: DUP3 00000454: ISZERO 00000455: ISZERO 00000456: ISZERO 00000457: ISZERO 00000458: DUP2 00000459: MSTORE 0000045a: PUSH1 0x20 0000045c: ADD 0000045d: SWAP2 0000045e: POP 0000045f: POP 00000460: PUSH1 0x40 00000462: MLOAD 00000463: DUP1 00000464: SWAP2 00000465: SUB 00000466: SWAP1 00000467: RETURN 00000468: JUMPDEST 00000469: CALLVALUE 0000046a: DUP1 0000046b: ISZERO 0000046c: PUSH2 0x0474 0000046f: JUMPI 00000470: PUSH1 0x00 00000472: DUP1 00000473: REVERT 00000474: JUMPDEST 00000475: POP 00000476: PUSH2 0x04a1 00000479: PUSH1 0x04 0000047b: DUP1 0000047c: CALLDATASIZE 0000047d: SUB 0000047e: PUSH1 0x20 00000480: DUP2 00000481: LT 00000482: ISZERO 00000483: PUSH2 0x048b 00000486: JUMPI 00000487: PUSH1 0x00 00000489: DUP1 0000048a: REVERT 0000048b: JUMPDEST 0000048c: DUP2 0000048d: ADD 0000048e: SWAP1 0000048f: DUP1 00000490: DUP1 00000491: CALLDATALOAD 00000492: SWAP1 00000493: PUSH1 0x20 00000495: ADD 00000496: SWAP1 00000497: SWAP3 00000498: SWAP2 00000499: SWAP1 0000049a: POP 0000049b: POP 0000049c: POP 0000049d: PUSH2 0x124c 000004a0: JUMP 000004a1: JUMPDEST 000004a2: PUSH1 0x40 000004a4: MLOAD 000004a5: DUP1 000004a6: DUP3 000004a7: DUP2 000004a8: MSTORE 000004a9: PUSH1 0x20 000004ab: ADD 000004ac: SWAP2 000004ad: POP 000004ae: POP 000004af: PUSH1 0x40 000004b1: MLOAD 000004b2: DUP1 000004b3: SWAP2 000004b4: SUB 000004b5: SWAP1 000004b6: RETURN 000004b7: JUMPDEST 000004b8: CALLVALUE 000004b9: DUP1 000004ba: ISZERO 000004bb: PUSH2 0x04c3 000004be: JUMPI 000004bf: PUSH1 0x00 000004c1: DUP1 000004c2: REVERT 000004c3: JUMPDEST 000004c4: POP 000004c5: PUSH2 0x04f0 000004c8: PUSH1 0x04 000004ca: DUP1 000004cb: CALLDATASIZE 000004cc: SUB 000004cd: PUSH1 0x20 000004cf: DUP2 000004d0: LT 000004d1: ISZERO 000004d2: PUSH2 0x04da 000004d5: JUMPI 000004d6: PUSH1 0x00 000004d8: DUP1 000004d9: REVERT 000004da: JUMPDEST 000004db: DUP2 000004dc: ADD 000004dd: SWAP1 000004de: DUP1 000004df: DUP1 000004e0: CALLDATALOAD 000004e1: SWAP1 000004e2: PUSH1 0x20 000004e4: ADD 000004e5: SWAP1 000004e6: SWAP3 000004e7: SWAP2 000004e8: SWAP1 000004e9: POP 000004ea: POP 000004eb: POP 000004ec: PUSH2 0x1315 000004ef: JUMP 000004f0: JUMPDEST 000004f1: PUSH1 0x40 000004f3: MLOAD 000004f4: DUP1 000004f5: DUP6 000004f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000050b: AND 0000050c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000521: AND 00000522: DUP2 00000523: MSTORE 00000524: PUSH1 0x20 00000526: ADD 00000527: DUP5 00000528: DUP2 00000529: MSTORE 0000052a: PUSH1 0x20 0000052c: ADD 0000052d: DUP1 0000052e: PUSH1 0x20 00000530: ADD 00000531: DUP4 00000532: ISZERO 00000533: ISZERO 00000534: ISZERO 00000535: ISZERO 00000536: DUP2 00000537: MSTORE 00000538: PUSH1 0x20 0000053a: ADD 0000053b: DUP3 0000053c: DUP2 0000053d: SUB 0000053e: DUP3 0000053f: MSTORE 00000540: DUP5 00000541: DUP2 00000542: DUP2 00000543: MLOAD 00000544: DUP2 00000545: MSTORE 00000546: PUSH1 0x20 00000548: ADD 00000549: SWAP2 0000054a: POP 0000054b: DUP1 0000054c: MLOAD 0000054d: SWAP1 0000054e: PUSH1 0x20 00000550: ADD 00000551: SWAP1 00000552: DUP1 00000553: DUP4 00000554: DUP4 00000555: PUSH1 0x00 00000557: JUMPDEST 00000558: DUP4 00000559: DUP2 0000055a: LT 0000055b: ISZERO 0000055c: PUSH2 0x0572 0000055f: JUMPI 00000560: DUP1 00000561: DUP3 00000562: ADD 00000563: MLOAD 00000564: DUP2 00000565: DUP5 00000566: ADD 00000567: MSTORE 00000568: PUSH1 0x20 0000056a: DUP2 0000056b: ADD 0000056c: SWAP1 0000056d: POP 0000056e: PUSH2 0x0557 00000571: JUMP 00000572: JUMPDEST 00000573: POP 00000574: POP 00000575: POP 00000576: POP 00000577: SWAP1 00000578: POP 00000579: SWAP1 0000057a: DUP2 0000057b: ADD 0000057c: SWAP1 0000057d: PUSH1 0x1f 0000057f: AND 00000580: DUP1 00000581: ISZERO 00000582: PUSH2 0x059f 00000585: JUMPI 00000586: DUP1 00000587: DUP3 00000588: SUB 00000589: DUP1 0000058a: MLOAD 0000058b: PUSH1 0x01 0000058d: DUP4 0000058e: PUSH1 0x20 00000590: SUB 00000591: PUSH2 0x0100 00000594: EXP 00000595: SUB 00000596: NOT 00000597: AND 00000598: DUP2 00000599: MSTORE 0000059a: PUSH1 0x20 0000059c: ADD 0000059d: SWAP2 0000059e: POP 0000059f: JUMPDEST 000005a0: POP 000005a1: SWAP6 000005a2: POP 000005a3: POP 000005a4: POP 000005a5: POP 000005a6: POP 000005a7: POP 000005a8: PUSH1 0x40 000005aa: MLOAD 000005ab: DUP1 000005ac: SWAP2 000005ad: SUB 000005ae: SWAP1 000005af: RETURN 000005b0: JUMPDEST 000005b1: CALLVALUE 000005b2: DUP1 000005b3: ISZERO 000005b4: PUSH2 0x05bc 000005b7: JUMPI 000005b8: PUSH1 0x00 000005ba: DUP1 000005bb: REVERT 000005bc: JUMPDEST 000005bd: POP 000005be: PUSH2 0x05c5 000005c1: PUSH2 0x140a 000005c4: JUMP 000005c5: JUMPDEST 000005c6: PUSH1 0x40 000005c8: MLOAD 000005c9: DUP1 000005ca: DUP1 000005cb: PUSH1 0x20 000005cd: ADD 000005ce: DUP3 000005cf: DUP2 000005d0: SUB 000005d1: DUP3 000005d2: MSTORE 000005d3: DUP4 000005d4: DUP2 000005d5: DUP2 000005d6: MLOAD 000005d7: DUP2 000005d8: MSTORE 000005d9: PUSH1 0x20 000005db: ADD 000005dc: SWAP2 000005dd: POP 000005de: DUP1 000005df: MLOAD 000005e0: SWAP1 000005e1: PUSH1 0x20 000005e3: ADD 000005e4: SWAP1 000005e5: PUSH1 0x20 000005e7: MUL 000005e8: DUP1 000005e9: DUP4 000005ea: DUP4 000005eb: PUSH1 0x00 000005ed: JUMPDEST 000005ee: DUP4 000005ef: DUP2 000005f0: LT 000005f1: ISZERO 000005f2: PUSH2 0x0608 000005f5: JUMPI 000005f6: DUP1 000005f7: DUP3 000005f8: ADD 000005f9: MLOAD 000005fa: DUP2 000005fb: DUP5 000005fc: ADD 000005fd: MSTORE 000005fe: PUSH1 0x20 00000600: DUP2 00000601: ADD 00000602: SWAP1 00000603: POP 00000604: PUSH2 0x05ed 00000607: JUMP 00000608: JUMPDEST 00000609: POP 0000060a: POP 0000060b: POP 0000060c: POP 0000060d: SWAP1 0000060e: POP 0000060f: ADD 00000610: SWAP3 00000611: POP 00000612: POP 00000613: POP 00000614: PUSH1 0x40 00000616: MLOAD 00000617: DUP1 00000618: SWAP2 00000619: SUB 0000061a: SWAP1 0000061b: RETURN 0000061c: JUMPDEST 0000061d: CALLVALUE 0000061e: DUP1 0000061f: ISZERO 00000620: PUSH2 0x0628 00000623: JUMPI 00000624: PUSH1 0x00 00000626: DUP1 00000627: REVERT 00000628: JUMPDEST 00000629: POP 0000062a: PUSH2 0x0677 0000062d: PUSH1 0x04 0000062f: DUP1 00000630: CALLDATASIZE 00000631: SUB 00000632: PUSH1 0x80 00000634: DUP2 00000635: LT 00000636: ISZERO 00000637: PUSH2 0x063f 0000063a: JUMPI 0000063b: PUSH1 0x00 0000063d: DUP1 0000063e: REVERT 0000063f: JUMPDEST 00000640: DUP2 00000641: ADD 00000642: SWAP1 00000643: DUP1 00000644: DUP1 00000645: CALLDATALOAD 00000646: SWAP1 00000647: PUSH1 0x20 00000649: ADD 0000064a: SWAP1 0000064b: SWAP3 0000064c: SWAP2 0000064d: SWAP1 0000064e: DUP1 0000064f: CALLDATALOAD 00000650: SWAP1 00000651: PUSH1 0x20 00000653: ADD 00000654: SWAP1 00000655: SWAP3 00000656: SWAP2 00000657: SWAP1 00000658: DUP1 00000659: CALLDATALOAD 0000065a: ISZERO 0000065b: ISZERO 0000065c: SWAP1 0000065d: PUSH1 0x20 0000065f: ADD 00000660: SWAP1 00000661: SWAP3 00000662: SWAP2 00000663: SWAP1 00000664: DUP1 00000665: CALLDATALOAD 00000666: ISZERO 00000667: ISZERO 00000668: SWAP1 00000669: PUSH1 0x20 0000066b: ADD 0000066c: SWAP1 0000066d: SWAP3 0000066e: SWAP2 0000066f: SWAP1 00000670: POP 00000671: POP 00000672: POP 00000673: PUSH2 0x1498 00000676: JUMP 00000677: JUMPDEST 00000678: PUSH1 0x40 0000067a: MLOAD 0000067b: DUP1 0000067c: DUP1 0000067d: PUSH1 0x20 0000067f: ADD 00000680: DUP3 00000681: DUP2 00000682: SUB 00000683: DUP3 00000684: MSTORE 00000685: DUP4 00000686: DUP2 00000687: DUP2 00000688: MLOAD 00000689: DUP2 0000068a: MSTORE 0000068b: PUSH1 0x20 0000068d: ADD 0000068e: SWAP2 0000068f: POP 00000690: DUP1 00000691: MLOAD 00000692: SWAP1 00000693: PUSH1 0x20 00000695: ADD 00000696: SWAP1 00000697: PUSH1 0x20 00000699: MUL 0000069a: DUP1 0000069b: DUP4 0000069c: DUP4 0000069d: PUSH1 0x00 0000069f: JUMPDEST 000006a0: DUP4 000006a1: DUP2 000006a2: LT 000006a3: ISZERO 000006a4: PUSH2 0x06ba 000006a7: JUMPI 000006a8: DUP1 000006a9: DUP3 000006aa: ADD 000006ab: MLOAD 000006ac: DUP2 000006ad: DUP5 000006ae: ADD 000006af: MSTORE 000006b0: PUSH1 0x20 000006b2: DUP2 000006b3: ADD 000006b4: SWAP1 000006b5: POP 000006b6: PUSH2 0x069f 000006b9: JUMP 000006ba: JUMPDEST 000006bb: POP 000006bc: POP 000006bd: POP 000006be: POP 000006bf: SWAP1 000006c0: POP 000006c1: ADD 000006c2: SWAP3 000006c3: POP 000006c4: POP 000006c5: POP 000006c6: PUSH1 0x40 000006c8: MLOAD 000006c9: DUP1 000006ca: SWAP2 000006cb: SUB 000006cc: SWAP1 000006cd: RETURN 000006ce: JUMPDEST 000006cf: CALLVALUE 000006d0: DUP1 000006d1: ISZERO 000006d2: PUSH2 0x06da 000006d5: JUMPI 000006d6: PUSH1 0x00 000006d8: DUP1 000006d9: REVERT 000006da: JUMPDEST 000006db: POP 000006dc: PUSH2 0x0707 000006df: PUSH1 0x04 000006e1: DUP1 000006e2: CALLDATASIZE 000006e3: SUB 000006e4: PUSH1 0x20 000006e6: DUP2 000006e7: LT 000006e8: ISZERO 000006e9: PUSH2 0x06f1 000006ec: JUMPI 000006ed: PUSH1 0x00 000006ef: DUP1 000006f0: REVERT 000006f1: JUMPDEST 000006f2: DUP2 000006f3: ADD 000006f4: SWAP1 000006f5: DUP1 000006f6: DUP1 000006f7: CALLDATALOAD 000006f8: SWAP1 000006f9: PUSH1 0x20 000006fb: ADD 000006fc: SWAP1 000006fd: SWAP3 000006fe: SWAP2 000006ff: SWAP1 00000700: POP 00000701: POP 00000702: POP 00000703: PUSH2 0x15fc 00000706: JUMP 00000707: JUMPDEST 00000708: PUSH1 0x40 0000070a: MLOAD 0000070b: DUP1 0000070c: DUP1 0000070d: PUSH1 0x20 0000070f: ADD 00000710: DUP3 00000711: DUP2 00000712: SUB 00000713: DUP3 00000714: MSTORE 00000715: DUP4 00000716: DUP2 00000717: DUP2 00000718: MLOAD 00000719: DUP2 0000071a: MSTORE 0000071b: PUSH1 0x20 0000071d: ADD 0000071e: SWAP2 0000071f: POP 00000720: DUP1 00000721: MLOAD 00000722: SWAP1 00000723: PUSH1 0x20 00000725: ADD 00000726: SWAP1 00000727: PUSH1 0x20 00000729: MUL 0000072a: DUP1 0000072b: DUP4 0000072c: DUP4 0000072d: PUSH1 0x00 0000072f: JUMPDEST 00000730: DUP4 00000731: DUP2 00000732: LT 00000733: ISZERO 00000734: PUSH2 0x074a 00000737: JUMPI 00000738: DUP1 00000739: DUP3 0000073a: ADD 0000073b: MLOAD 0000073c: DUP2 0000073d: DUP5 0000073e: ADD 0000073f: MSTORE 00000740: PUSH1 0x20 00000742: DUP2 00000743: ADD 00000744: SWAP1 00000745: POP 00000746: PUSH2 0x072f 00000749: JUMP 0000074a: JUMPDEST 0000074b: POP 0000074c: POP 0000074d: POP 0000074e: POP 0000074f: SWAP1 00000750: POP 00000751: ADD 00000752: SWAP3 00000753: POP 00000754: POP 00000755: POP 00000756: PUSH1 0x40 00000758: MLOAD 00000759: DUP1 0000075a: SWAP2 0000075b: SUB 0000075c: SWAP1 0000075d: RETURN 0000075e: JUMPDEST 0000075f: CALLVALUE 00000760: DUP1 00000761: ISZERO 00000762: PUSH2 0x076a 00000765: JUMPI 00000766: PUSH1 0x00 00000768: DUP1 00000769: REVERT 0000076a: JUMPDEST 0000076b: POP 0000076c: PUSH2 0x0773 0000076f: PUSH2 0x1828 00000772: JUMP 00000773: JUMPDEST 00000774: PUSH1 0x40 00000776: MLOAD 00000777: DUP1 00000778: DUP3 00000779: DUP2 0000077a: MSTORE 0000077b: PUSH1 0x20 0000077d: ADD 0000077e: SWAP2 0000077f: POP 00000780: POP 00000781: PUSH1 0x40 00000783: MLOAD 00000784: DUP1 00000785: SWAP2 00000786: SUB 00000787: SWAP1 00000788: RETURN 00000789: JUMPDEST 0000078a: CALLVALUE 0000078b: DUP1 0000078c: ISZERO 0000078d: PUSH2 0x0795 00000790: JUMPI 00000791: PUSH1 0x00 00000793: DUP1 00000794: REVERT 00000795: JUMPDEST 00000796: POP 00000797: PUSH2 0x07c2 0000079a: PUSH1 0x04 0000079c: DUP1 0000079d: CALLDATASIZE 0000079e: SUB 0000079f: PUSH1 0x20 000007a1: DUP2 000007a2: LT 000007a3: ISZERO 000007a4: PUSH2 0x07ac 000007a7: JUMPI 000007a8: PUSH1 0x00 000007aa: DUP1 000007ab: REVERT 000007ac: JUMPDEST 000007ad: DUP2 000007ae: ADD 000007af: SWAP1 000007b0: DUP1 000007b1: DUP1 000007b2: CALLDATALOAD 000007b3: SWAP1 000007b4: PUSH1 0x20 000007b6: ADD 000007b7: SWAP1 000007b8: SWAP3 000007b9: SWAP2 000007ba: SWAP1 000007bb: POP 000007bc: POP 000007bd: POP 000007be: PUSH2 0x182e 000007c1: JUMP 000007c2: JUMPDEST 000007c3: STOP 000007c4: JUMPDEST 000007c5: CALLVALUE 000007c6: DUP1 000007c7: ISZERO 000007c8: PUSH2 0x07d0 000007cb: JUMPI 000007cc: PUSH1 0x00 000007ce: DUP1 000007cf: REVERT 000007d0: JUMPDEST 000007d1: POP 000007d2: PUSH2 0x07fd 000007d5: PUSH1 0x04 000007d7: DUP1 000007d8: CALLDATASIZE 000007d9: SUB 000007da: PUSH1 0x20 000007dc: DUP2 000007dd: LT 000007de: ISZERO 000007df: PUSH2 0x07e7 000007e2: JUMPI 000007e3: PUSH1 0x00 000007e5: DUP1 000007e6: REVERT 000007e7: JUMPDEST 000007e8: DUP2 000007e9: ADD 000007ea: SWAP1 000007eb: DUP1 000007ec: DUP1 000007ed: CALLDATALOAD 000007ee: SWAP1 000007ef: PUSH1 0x20 000007f1: ADD 000007f2: SWAP1 000007f3: SWAP3 000007f4: SWAP2 000007f5: SWAP1 000007f6: POP 000007f7: POP 000007f8: POP 000007f9: PUSH2 0x18e4 000007fc: JUMP 000007fd: JUMPDEST 000007fe: STOP 000007ff: JUMPDEST 00000800: CALLVALUE 00000801: DUP1 00000802: ISZERO 00000803: PUSH2 0x080b 00000806: JUMPI 00000807: PUSH1 0x00 00000809: DUP1 0000080a: REVERT 0000080b: JUMPDEST 0000080c: POP 0000080d: PUSH2 0x08ef 00000810: PUSH1 0x04 00000812: DUP1 00000813: CALLDATASIZE 00000814: SUB 00000815: PUSH1 0x60 00000817: DUP2 00000818: LT 00000819: ISZERO 0000081a: PUSH2 0x0822 0000081d: JUMPI 0000081e: PUSH1 0x00 00000820: DUP1 00000821: REVERT 00000822: JUMPDEST 00000823: DUP2 00000824: ADD 00000825: SWAP1 00000826: DUP1 00000827: DUP1 00000828: CALLDATALOAD 00000829: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000083e: AND 0000083f: SWAP1 00000840: PUSH1 0x20 00000842: ADD 00000843: SWAP1 00000844: SWAP3 00000845: SWAP2 00000846: SWAP1 00000847: DUP1 00000848: CALLDATALOAD 00000849: SWAP1 0000084a: PUSH1 0x20 0000084c: ADD 0000084d: SWAP1 0000084e: SWAP3 0000084f: SWAP2 00000850: SWAP1 00000851: DUP1 00000852: CALLDATALOAD 00000853: SWAP1 00000854: PUSH1 0x20 00000856: ADD 00000857: SWAP1 00000858: PUSH5 0x0100000000 0000085e: DUP2 0000085f: GT 00000860: ISZERO 00000861: PUSH2 0x0869 00000864: JUMPI 00000865: PUSH1 0x00 00000867: DUP1 00000868: REVERT 00000869: JUMPDEST 0000086a: DUP3 0000086b: ADD 0000086c: DUP4 0000086d: PUSH1 0x20 0000086f: DUP3 00000870: ADD 00000871: GT 00000872: ISZERO 00000873: PUSH2 0x087b 00000876: JUMPI 00000877: PUSH1 0x00 00000879: DUP1 0000087a: REVERT 0000087b: JUMPDEST 0000087c: DUP1 0000087d: CALLDATALOAD 0000087e: SWAP1 0000087f: PUSH1 0x20 00000881: ADD 00000882: SWAP2 00000883: DUP5 00000884: PUSH1 0x01 00000886: DUP4 00000887: MUL 00000888: DUP5 00000889: ADD 0000088a: GT 0000088b: PUSH5 0x0100000000 00000891: DUP4 00000892: GT 00000893: OR 00000894: ISZERO 00000895: PUSH2 0x089d 00000898: JUMPI 00000899: PUSH1 0x00 0000089b: DUP1 0000089c: REVERT 0000089d: JUMPDEST 0000089e: SWAP2 0000089f: SWAP1 000008a0: DUP1 000008a1: DUP1 000008a2: PUSH1 0x1f 000008a4: ADD 000008a5: PUSH1 0x20 000008a7: DUP1 000008a8: SWAP2 000008a9: DIV 000008aa: MUL 000008ab: PUSH1 0x20 000008ad: ADD 000008ae: PUSH1 0x40 000008b0: MLOAD 000008b1: SWAP1 000008b2: DUP2 000008b3: ADD 000008b4: PUSH1 0x40 000008b6: MSTORE 000008b7: DUP1 000008b8: SWAP4 000008b9: SWAP3 000008ba: SWAP2 000008bb: SWAP1 000008bc: DUP2 000008bd: DUP2 000008be: MSTORE 000008bf: PUSH1 0x20 000008c1: ADD 000008c2: DUP4 000008c3: DUP4 000008c4: DUP1 000008c5: DUP3 000008c6: DUP5 000008c7: CALLDATACOPY 000008c8: PUSH1 0x00 000008ca: DUP2 000008cb: DUP5 000008cc: ADD 000008cd: MSTORE 000008ce: PUSH1 0x1f 000008d0: NOT 000008d1: PUSH1 0x1f 000008d3: DUP3 000008d4: ADD 000008d5: AND 000008d6: SWAP1 000008d7: POP 000008d8: DUP1 000008d9: DUP4 000008da: ADD 000008db: SWAP3 000008dc: POP 000008dd: POP 000008de: POP 000008df: POP 000008e0: POP 000008e1: POP 000008e2: POP 000008e3: SWAP2 000008e4: SWAP3 000008e5: SWAP2 000008e6: SWAP3 000008e7: SWAP1 000008e8: POP 000008e9: POP 000008ea: POP 000008eb: PUSH2 0x1ad1 000008ee: JUMP 000008ef: JUMPDEST 000008f0: PUSH1 0x40 000008f2: MLOAD 000008f3: DUP1 000008f4: DUP3 000008f5: DUP2 000008f6: MSTORE 000008f7: PUSH1 0x20 000008f9: ADD 000008fa: SWAP2 000008fb: POP 000008fc: POP 000008fd: PUSH1 0x40 000008ff: MLOAD 00000900: DUP1 00000901: SWAP2 00000902: SUB 00000903: SWAP1 00000904: RETURN 00000905: JUMPDEST 00000906: CALLVALUE 00000907: DUP1 00000908: ISZERO 00000909: PUSH2 0x0911 0000090c: JUMPI 0000090d: PUSH1 0x00 0000090f: DUP1 00000910: REVERT 00000911: JUMPDEST 00000912: POP 00000913: PUSH2 0x091a 00000916: PUSH2 0x1af0 00000919: JUMP 0000091a: JUMPDEST 0000091b: PUSH1 0x40 0000091d: MLOAD 0000091e: DUP1 0000091f: DUP3 00000920: DUP2 00000921: MSTORE 00000922: PUSH1 0x20 00000924: ADD 00000925: SWAP2 00000926: POP 00000927: POP 00000928: PUSH1 0x40 0000092a: MLOAD 0000092b: DUP1 0000092c: SWAP2 0000092d: SUB 0000092e: SWAP1 0000092f: RETURN 00000930: JUMPDEST 00000931: CALLVALUE 00000932: DUP1 00000933: ISZERO 00000934: PUSH2 0x093c 00000937: JUMPI 00000938: PUSH1 0x00 0000093a: DUP1 0000093b: REVERT 0000093c: JUMPDEST 0000093d: POP 0000093e: PUSH2 0x0945 00000941: PUSH2 0x1af5 00000944: JUMP 00000945: JUMPDEST 00000946: PUSH1 0x40 00000948: MLOAD 00000949: DUP1 0000094a: DUP3 0000094b: DUP2 0000094c: MSTORE 0000094d: PUSH1 0x20 0000094f: ADD 00000950: SWAP2 00000951: POP 00000952: POP 00000953: PUSH1 0x40 00000955: MLOAD 00000956: DUP1 00000957: SWAP2 00000958: SUB 00000959: SWAP1 0000095a: RETURN 0000095b: JUMPDEST 0000095c: CALLVALUE 0000095d: DUP1 0000095e: ISZERO 0000095f: PUSH2 0x0967 00000962: JUMPI 00000963: PUSH1 0x00 00000965: DUP1 00000966: REVERT 00000967: JUMPDEST 00000968: POP 00000969: PUSH2 0x09ca 0000096c: PUSH1 0x04 0000096e: DUP1 0000096f: CALLDATASIZE 00000970: SUB 00000971: PUSH1 0x40 00000973: DUP2 00000974: LT 00000975: ISZERO 00000976: PUSH2 0x097e 00000979: JUMPI 0000097a: PUSH1 0x00 0000097c: DUP1 0000097d: REVERT 0000097e: JUMPDEST 0000097f: DUP2 00000980: ADD 00000981: SWAP1 00000982: DUP1 00000983: DUP1 00000984: CALLDATALOAD 00000985: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000099a: AND 0000099b: SWAP1 0000099c: PUSH1 0x20 0000099e: ADD 0000099f: SWAP1 000009a0: SWAP3 000009a1: SWAP2 000009a2: SWAP1 000009a3: DUP1 000009a4: CALLDATALOAD 000009a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009ba: AND 000009bb: SWAP1 000009bc: PUSH1 0x20 000009be: ADD 000009bf: SWAP1 000009c0: SWAP3 000009c1: SWAP2 000009c2: SWAP1 000009c3: POP 000009c4: POP 000009c5: POP 000009c6: PUSH2 0x1afb 000009c9: JUMP 000009ca: JUMPDEST 000009cb: STOP 000009cc: JUMPDEST 000009cd: CALLVALUE 000009ce: DUP1 000009cf: ISZERO 000009d0: PUSH2 0x09d8 000009d3: JUMPI 000009d4: PUSH1 0x00 000009d6: DUP1 000009d7: REVERT 000009d8: JUMPDEST 000009d9: POP 000009da: PUSH2 0x0a05 000009dd: PUSH1 0x04 000009df: DUP1 000009e0: CALLDATASIZE 000009e1: SUB 000009e2: PUSH1 0x20 000009e4: DUP2 000009e5: LT 000009e6: ISZERO 000009e7: PUSH2 0x09ef 000009ea: JUMPI 000009eb: PUSH1 0x00 000009ed: DUP1 000009ee: REVERT 000009ef: JUMPDEST 000009f0: DUP2 000009f1: ADD 000009f2: SWAP1 000009f3: DUP1 000009f4: DUP1 000009f5: CALLDATALOAD 000009f6: SWAP1 000009f7: PUSH1 0x20 000009f9: ADD 000009fa: SWAP1 000009fb: SWAP3 000009fc: SWAP2 000009fd: SWAP1 000009fe: POP 000009ff: POP 00000a00: POP 00000a01: PUSH2 0x1e05 00000a04: JUMP 00000a05: JUMPDEST 00000a06: STOP 00000a07: JUMPDEST 00000a08: PUSH1 0x03 00000a0a: DUP2 00000a0b: DUP2 00000a0c: SLOAD 00000a0d: DUP2 00000a0e: LT 00000a0f: PUSH2 0x0a14 00000a12: JUMPI 00000a13: INVALID 00000a14: JUMPDEST 00000a15: SWAP1 00000a16: PUSH1 0x00 00000a18: MSTORE 00000a19: PUSH1 0x20 00000a1b: PUSH1 0x00 00000a1d: KECCAK256 00000a1e: ADD 00000a1f: PUSH1 0x00 00000a21: SWAP2 00000a22: POP 00000a23: SLOAD 00000a24: SWAP1 00000a25: PUSH2 0x0100 00000a28: EXP 00000a29: SWAP1 00000a2a: DIV 00000a2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a40: AND 00000a41: DUP2 00000a42: JUMP 00000a43: JUMPDEST 00000a44: ADDRESS 00000a45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a5a: AND 00000a5b: CALLER 00000a5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a71: AND 00000a72: EQ 00000a73: PUSH2 0x0a7b 00000a76: JUMPI 00000a77: PUSH1 0x00 00000a79: DUP1 00000a7a: REVERT 00000a7b: JUMPDEST 00000a7c: DUP1 00000a7d: PUSH1 0x02 00000a7f: PUSH1 0x00 00000a81: DUP3 00000a82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a97: AND 00000a98: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aad: AND 00000aae: DUP2 00000aaf: MSTORE 00000ab0: PUSH1 0x20 00000ab2: ADD 00000ab3: SWAP1 00000ab4: DUP2 00000ab5: MSTORE 00000ab6: PUSH1 0x20 00000ab8: ADD 00000ab9: PUSH1 0x00 00000abb: KECCAK256 00000abc: PUSH1 0x00 00000abe: SWAP1 00000abf: SLOAD 00000ac0: SWAP1 00000ac1: PUSH2 0x0100 00000ac4: EXP 00000ac5: SWAP1 00000ac6: DIV 00000ac7: PUSH1 0xff 00000ac9: AND 00000aca: PUSH2 0x0ad2 00000acd: JUMPI 00000ace: PUSH1 0x00 00000ad0: DUP1 00000ad1: REVERT 00000ad2: JUMPDEST 00000ad3: PUSH1 0x00 00000ad5: PUSH1 0x02 00000ad7: PUSH1 0x00 00000ad9: DUP5 00000ada: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aef: AND 00000af0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b05: AND 00000b06: DUP2 00000b07: MSTORE 00000b08: PUSH1 0x20 00000b0a: ADD 00000b0b: SWAP1 00000b0c: DUP2 00000b0d: MSTORE 00000b0e: PUSH1 0x20 00000b10: ADD 00000b11: PUSH1 0x00 00000b13: KECCAK256 00000b14: PUSH1 0x00 00000b16: PUSH2 0x0100 00000b19: EXP 00000b1a: DUP2 00000b1b: SLOAD 00000b1c: DUP2 00000b1d: PUSH1 0xff 00000b1f: MUL 00000b20: NOT 00000b21: AND 00000b22: SWAP1 00000b23: DUP4 00000b24: ISZERO 00000b25: ISZERO 00000b26: MUL 00000b27: OR 00000b28: SWAP1 00000b29: SSTORE 00000b2a: POP 00000b2b: PUSH1 0x00 00000b2d: DUP1 00000b2e: SWAP1 00000b2f: POP 00000b30: JUMPDEST 00000b31: PUSH1 0x01 00000b33: PUSH1 0x03 00000b35: DUP1 00000b36: SLOAD 00000b37: SWAP1 00000b38: POP 00000b39: SUB 00000b3a: DUP2 00000b3b: LT 00000b3c: ISZERO 00000b3d: PUSH2 0x0c52 00000b40: JUMPI 00000b41: DUP3 00000b42: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b57: AND 00000b58: PUSH1 0x03 00000b5a: DUP3 00000b5b: DUP2 00000b5c: SLOAD 00000b5d: DUP2 00000b5e: LT 00000b5f: PUSH2 0x0b64 00000b62: JUMPI 00000b63: INVALID 00000b64: JUMPDEST 00000b65: SWAP1 00000b66: PUSH1 0x00 00000b68: MSTORE 00000b69: PUSH1 0x20 00000b6b: PUSH1 0x00 00000b6d: KECCAK256 00000b6e: ADD 00000b6f: PUSH1 0x00 00000b71: SWAP1 00000b72: SLOAD 00000b73: SWAP1 00000b74: PUSH2 0x0100 00000b77: EXP 00000b78: SWAP1 00000b79: DIV 00000b7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b8f: AND 00000b90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ba5: AND 00000ba6: EQ 00000ba7: ISZERO 00000ba8: PUSH2 0x0c45 00000bab: JUMPI 00000bac: PUSH1 0x03 00000bae: PUSH1 0x01 00000bb0: PUSH1 0x03 00000bb2: DUP1 00000bb3: SLOAD 00000bb4: SWAP1 00000bb5: POP 00000bb6: SUB 00000bb7: DUP2 00000bb8: SLOAD 00000bb9: DUP2 00000bba: LT 00000bbb: PUSH2 0x0bc0 00000bbe: JUMPI 00000bbf: INVALID 00000bc0: JUMPDEST 00000bc1: SWAP1 00000bc2: PUSH1 0x00 00000bc4: MSTORE 00000bc5: PUSH1 0x20 00000bc7: PUSH1 0x00 00000bc9: KECCAK256 00000bca: ADD 00000bcb: PUSH1 0x00 00000bcd: SWAP1 00000bce: SLOAD 00000bcf: SWAP1 00000bd0: PUSH2 0x0100 00000bd3: EXP 00000bd4: SWAP1 00000bd5: DIV 00000bd6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000beb: AND 00000bec: PUSH1 0x03 00000bee: DUP3 00000bef: DUP2 00000bf0: SLOAD 00000bf1: DUP2 00000bf2: LT 00000bf3: PUSH2 0x0bf8 00000bf6: JUMPI 00000bf7: INVALID 00000bf8: JUMPDEST 00000bf9: SWAP1 00000bfa: PUSH1 0x00 00000bfc: MSTORE 00000bfd: PUSH1 0x20 00000bff: PUSH1 0x00 00000c01: KECCAK256 00000c02: ADD 00000c03: PUSH1 0x00 00000c05: PUSH2 0x0100 00000c08: EXP 00000c09: DUP2 00000c0a: SLOAD 00000c0b: DUP2 00000c0c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c21: MUL 00000c22: NOT 00000c23: AND 00000c24: SWAP1 00000c25: DUP4 00000c26: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c3b: AND 00000c3c: MUL 00000c3d: OR 00000c3e: SWAP1 00000c3f: SSTORE 00000c40: POP 00000c41: PUSH2 0x0c52 00000c44: JUMP 00000c45: JUMPDEST 00000c46: DUP1 00000c47: DUP1 00000c48: PUSH1 0x01 00000c4a: ADD 00000c4b: SWAP2 00000c4c: POP 00000c4d: POP 00000c4e: PUSH2 0x0b30 00000c51: JUMP 00000c52: JUMPDEST 00000c53: POP 00000c54: PUSH1 0x01 00000c56: PUSH1 0x03 00000c58: DUP2 00000c59: DUP2 00000c5a: DUP1 00000c5b: SLOAD 00000c5c: SWAP1 00000c5d: POP 00000c5e: SUB 00000c5f: SWAP2 00000c60: POP 00000c61: DUP2 00000c62: PUSH2 0x0c6b 00000c65: SWAP2 00000c66: SWAP1 00000c67: PUSH2 0x2212 00000c6a: JUMP 00000c6b: JUMPDEST 00000c6c: POP 00000c6d: PUSH1 0x03 00000c6f: DUP1 00000c70: SLOAD 00000c71: SWAP1 00000c72: POP 00000c73: PUSH1 0x04 00000c75: SLOAD 00000c76: GT 00000c77: ISZERO 00000c78: PUSH2 0x0c8a 00000c7b: JUMPI 00000c7c: PUSH2 0x0c89 00000c7f: PUSH1 0x03 00000c81: DUP1 00000c82: SLOAD 00000c83: SWAP1 00000c84: POP 00000c85: PUSH2 0x182e 00000c88: JUMP 00000c89: JUMPDEST 00000c8a: JUMPDEST 00000c8b: DUP2 00000c8c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ca1: AND 00000ca2: PUSH32 0x8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90 00000cc3: PUSH1 0x40 00000cc5: MLOAD 00000cc6: PUSH1 0x40 00000cc8: MLOAD 00000cc9: DUP1 00000cca: SWAP2 00000ccb: SUB 00000ccc: SWAP1 00000ccd: LOG2 00000cce: POP 00000ccf: POP 00000cd0: JUMP 00000cd1: JUMPDEST 00000cd2: CALLER 00000cd3: PUSH1 0x02 00000cd5: PUSH1 0x00 00000cd7: DUP3 00000cd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ced: AND 00000cee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d03: AND 00000d04: DUP2 00000d05: MSTORE 00000d06: PUSH1 0x20 00000d08: ADD 00000d09: SWAP1 00000d0a: DUP2 00000d0b: MSTORE 00000d0c: PUSH1 0x20 00000d0e: ADD 00000d0f: PUSH1 0x00 00000d11: KECCAK256 00000d12: PUSH1 0x00 00000d14: SWAP1 00000d15: SLOAD 00000d16: SWAP1 00000d17: PUSH2 0x0100 00000d1a: EXP 00000d1b: SWAP1 00000d1c: DIV 00000d1d: PUSH1 0xff 00000d1f: AND 00000d20: PUSH2 0x0d28 00000d23: JUMPI 00000d24: PUSH1 0x00 00000d26: DUP1 00000d27: REVERT 00000d28: JUMPDEST 00000d29: DUP2 00000d2a: CALLER 00000d2b: PUSH1 0x01 00000d2d: PUSH1 0x00 00000d2f: DUP4 00000d30: DUP2 00000d31: MSTORE 00000d32: PUSH1 0x20 00000d34: ADD 00000d35: SWAP1 00000d36: DUP2 00000d37: MSTORE 00000d38: PUSH1 0x20 00000d3a: ADD 00000d3b: PUSH1 0x00 00000d3d: KECCAK256 00000d3e: PUSH1 0x00 00000d40: DUP3 00000d41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d56: AND 00000d57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d6c: AND 00000d6d: DUP2 00000d6e: MSTORE 00000d6f: PUSH1 0x20 00000d71: ADD 00000d72: SWAP1 00000d73: DUP2 00000d74: MSTORE 00000d75: PUSH1 0x20 00000d77: ADD 00000d78: PUSH1 0x00 00000d7a: KECCAK256 00000d7b: PUSH1 0x00 00000d7d: SWAP1 00000d7e: SLOAD 00000d7f: SWAP1 00000d80: PUSH2 0x0100 00000d83: EXP 00000d84: SWAP1 00000d85: DIV 00000d86: PUSH1 0xff 00000d88: AND 00000d89: PUSH2 0x0d91 00000d8c: JUMPI 00000d8d: PUSH1 0x00 00000d8f: DUP1 00000d90: REVERT 00000d91: JUMPDEST 00000d92: DUP4 00000d93: PUSH1 0x00 00000d95: DUP1 00000d96: DUP3 00000d97: DUP2 00000d98: MSTORE 00000d99: PUSH1 0x20 00000d9b: ADD 00000d9c: SWAP1 00000d9d: DUP2 00000d9e: MSTORE 00000d9f: PUSH1 0x20 00000da1: ADD 00000da2: PUSH1 0x00 00000da4: KECCAK256 00000da5: PUSH1 0x03 00000da7: ADD 00000da8: PUSH1 0x00 00000daa: SWAP1 00000dab: SLOAD 00000dac: SWAP1 00000dad: PUSH2 0x0100 00000db0: EXP 00000db1: SWAP1 00000db2: DIV 00000db3: PUSH1 0xff 00000db5: AND 00000db6: ISZERO 00000db7: PUSH2 0x0dbf 00000dba: JUMPI 00000dbb: PUSH1 0x00 00000dbd: DUP1 00000dbe: REVERT 00000dbf: JUMPDEST 00000dc0: PUSH1 0x00 00000dc2: PUSH1 0x01 00000dc4: PUSH1 0x00 00000dc6: DUP8 00000dc7: DUP2 00000dc8: MSTORE 00000dc9: PUSH1 0x20 00000dcb: ADD 00000dcc: SWAP1 00000dcd: DUP2 00000dce: MSTORE 00000dcf: PUSH1 0x20 00000dd1: ADD 00000dd2: PUSH1 0x00 00000dd4: KECCAK256 00000dd5: PUSH1 0x00 00000dd7: CALLER 00000dd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ded: AND 00000dee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e03: AND 00000e04: DUP2 00000e05: MSTORE 00000e06: PUSH1 0x20 00000e08: ADD 00000e09: SWAP1 00000e0a: DUP2 00000e0b: MSTORE 00000e0c: PUSH1 0x20 00000e0e: ADD 00000e0f: PUSH1 0x00 00000e11: KECCAK256 00000e12: PUSH1 0x00 00000e14: PUSH2 0x0100 00000e17: EXP 00000e18: DUP2 00000e19: SLOAD 00000e1a: DUP2 00000e1b: PUSH1 0xff 00000e1d: MUL 00000e1e: NOT 00000e1f: AND 00000e20: SWAP1 00000e21: DUP4 00000e22: ISZERO 00000e23: ISZERO 00000e24: MUL 00000e25: OR 00000e26: SWAP1 00000e27: SSTORE 00000e28: POP 00000e29: DUP5 00000e2a: CALLER 00000e2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e40: AND 00000e41: PUSH32 0xf6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e9 00000e62: PUSH1 0x40 00000e64: MLOAD 00000e65: PUSH1 0x40 00000e67: MLOAD 00000e68: DUP1 00000e69: SWAP2 00000e6a: SUB 00000e6b: SWAP1 00000e6c: LOG3 00000e6d: POP 00000e6e: POP 00000e6f: POP 00000e70: POP 00000e71: POP 00000e72: JUMP 00000e73: JUMPDEST 00000e74: PUSH1 0x02 00000e76: PUSH1 0x20 00000e78: MSTORE 00000e79: DUP1 00000e7a: PUSH1 0x00 00000e7c: MSTORE 00000e7d: PUSH1 0x40 00000e7f: PUSH1 0x00 00000e81: KECCAK256 00000e82: PUSH1 0x00 00000e84: SWAP2 00000e85: POP 00000e86: SLOAD 00000e87: SWAP1 00000e88: PUSH2 0x0100 00000e8b: EXP 00000e8c: SWAP1 00000e8d: DIV 00000e8e: PUSH1 0xff 00000e90: AND 00000e91: DUP2 00000e92: JUMP 00000e93: JUMPDEST 00000e94: PUSH1 0x01 00000e96: PUSH1 0x20 00000e98: MSTORE 00000e99: DUP2 00000e9a: PUSH1 0x00 00000e9c: MSTORE 00000e9d: PUSH1 0x40 00000e9f: PUSH1 0x00 00000ea1: KECCAK256 00000ea2: PUSH1 0x20 00000ea4: MSTORE 00000ea5: DUP1 00000ea6: PUSH1 0x00 00000ea8: MSTORE 00000ea9: PUSH1 0x40 00000eab: PUSH1 0x00 00000ead: KECCAK256 00000eae: PUSH1 0x00 00000eb0: SWAP2 00000eb1: POP 00000eb2: SWAP2 00000eb3: POP 00000eb4: SWAP1 00000eb5: SLOAD 00000eb6: SWAP1 00000eb7: PUSH2 0x0100 00000eba: EXP 00000ebb: SWAP1 00000ebc: DIV 00000ebd: PUSH1 0xff 00000ebf: AND 00000ec0: DUP2 00000ec1: JUMP 00000ec2: JUMPDEST 00000ec3: PUSH1 0x00 00000ec5: DUP1 00000ec6: PUSH1 0x00 00000ec8: SWAP1 00000ec9: POP 00000eca: JUMPDEST 00000ecb: PUSH1 0x05 00000ecd: SLOAD 00000ece: DUP2 00000ecf: LT 00000ed0: ISZERO 00000ed1: PUSH2 0x0f4d 00000ed4: JUMPI 00000ed5: DUP4 00000ed6: DUP1 00000ed7: ISZERO 00000ed8: PUSH2 0x0f01 00000edb: JUMPI 00000edc: POP 00000edd: PUSH1 0x00 00000edf: DUP1 00000ee0: DUP3 00000ee1: DUP2 00000ee2: MSTORE 00000ee3: PUSH1 0x20 00000ee5: ADD 00000ee6: SWAP1 00000ee7: DUP2 00000ee8: MSTORE 00000ee9: PUSH1 0x20 00000eeb: ADD 00000eec: PUSH1 0x00 00000eee: KECCAK256 00000eef: PUSH1 0x03 00000ef1: ADD 00000ef2: PUSH1 0x00 00000ef4: SWAP1 00000ef5: SLOAD 00000ef6: SWAP1 00000ef7: PUSH2 0x0100 00000efa: EXP 00000efb: SWAP1 00000efc: DIV 00000efd: PUSH1 0xff 00000eff: AND 00000f00: ISZERO 00000f01: JUMPDEST 00000f02: DUP1 00000f03: PUSH2 0x0f34 00000f06: JUMPI 00000f07: POP 00000f08: DUP3 00000f09: DUP1 00000f0a: ISZERO 00000f0b: PUSH2 0x0f33 00000f0e: JUMPI 00000f0f: POP 00000f10: PUSH1 0x00 00000f12: DUP1 00000f13: DUP3 00000f14: DUP2 00000f15: MSTORE 00000f16: PUSH1 0x20 00000f18: ADD 00000f19: SWAP1 00000f1a: DUP2 00000f1b: MSTORE 00000f1c: PUSH1 0x20 00000f1e: ADD 00000f1f: PUSH1 0x00 00000f21: KECCAK256 00000f22: PUSH1 0x03 00000f24: ADD 00000f25: PUSH1 0x00 00000f27: SWAP1 00000f28: SLOAD 00000f29: SWAP1 00000f2a: PUSH2 0x0100 00000f2d: EXP 00000f2e: SWAP1 00000f2f: DIV 00000f30: PUSH1 0xff 00000f32: AND 00000f33: JUMPDEST 00000f34: JUMPDEST 00000f35: ISZERO 00000f36: PUSH2 0x0f40 00000f39: JUMPI 00000f3a: PUSH1 0x01 00000f3c: DUP3 00000f3d: ADD 00000f3e: SWAP2 00000f3f: POP 00000f40: JUMPDEST 00000f41: DUP1 00000f42: DUP1 00000f43: PUSH1 0x01 00000f45: ADD 00000f46: SWAP2 00000f47: POP 00000f48: POP 00000f49: PUSH2 0x0eca 00000f4c: JUMP 00000f4d: JUMPDEST 00000f4e: POP 00000f4f: SWAP3 00000f50: SWAP2 00000f51: POP 00000f52: POP 00000f53: JUMP 00000f54: JUMPDEST 00000f55: ADDRESS 00000f56: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f6b: AND 00000f6c: CALLER 00000f6d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f82: AND 00000f83: EQ 00000f84: PUSH2 0x0f8c 00000f87: JUMPI 00000f88: PUSH1 0x00 00000f8a: DUP1 00000f8b: REVERT 00000f8c: JUMPDEST 00000f8d: DUP1 00000f8e: PUSH1 0x02 00000f90: PUSH1 0x00 00000f92: DUP3 00000f93: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fa8: AND 00000fa9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fbe: AND 00000fbf: DUP2 00000fc0: MSTORE 00000fc1: PUSH1 0x20 00000fc3: ADD 00000fc4: SWAP1 00000fc5: DUP2 00000fc6: MSTORE 00000fc7: PUSH1 0x20 00000fc9: ADD 00000fca: PUSH1 0x00 00000fcc: KECCAK256 00000fcd: PUSH1 0x00 00000fcf: SWAP1 00000fd0: SLOAD 00000fd1: SWAP1 00000fd2: PUSH2 0x0100 00000fd5: EXP 00000fd6: SWAP1 00000fd7: DIV 00000fd8: PUSH1 0xff 00000fda: AND 00000fdb: ISZERO 00000fdc: PUSH2 0x0fe4 00000fdf: JUMPI 00000fe0: PUSH1 0x00 00000fe2: DUP1 00000fe3: REVERT 00000fe4: JUMPDEST 00000fe5: DUP2 00000fe6: PUSH1 0x00 00000fe8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ffd: AND 00000ffe: DUP2 00000fff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001014: AND 00001015: EQ 00001016: ISZERO 00001017: PUSH2 0x101f 0000101a: JUMPI 0000101b: PUSH1 0x00 0000101d: DUP1 0000101e: REVERT 0000101f: JUMPDEST 00001020: PUSH1 0x01 00001022: PUSH1 0x03 00001024: DUP1 00001025: SLOAD 00001026: SWAP1 00001027: POP 00001028: ADD 00001029: PUSH1 0x04 0000102b: SLOAD 0000102c: PUSH1 0x32 0000102e: DUP3 0000102f: GT 00001030: ISZERO 00001031: DUP1 00001032: ISZERO 00001033: PUSH2 0x103c 00001036: JUMPI 00001037: POP 00001038: DUP2 00001039: DUP2 0000103a: GT 0000103b: ISZERO 0000103c: JUMPDEST 0000103d: DUP1 0000103e: ISZERO 0000103f: PUSH2 0x1049 00001042: JUMPI 00001043: POP 00001044: PUSH1 0x00 00001046: DUP2 00001047: EQ 00001048: ISZERO 00001049: JUMPDEST 0000104a: DUP1 0000104b: ISZERO 0000104c: PUSH2 0x1056 0000104f: JUMPI 00001050: POP 00001051: PUSH1 0x00 00001053: DUP3 00001054: EQ 00001055: ISZERO 00001056: JUMPDEST 00001057: PUSH2 0x105f 0000105a: JUMPI 0000105b: PUSH1 0x00 0000105d: DUP1 0000105e: REVERT 0000105f: JUMPDEST 00001060: PUSH1 0x01 00001062: PUSH1 0x02 00001064: PUSH1 0x00 00001066: DUP8 00001067: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000107c: AND 0000107d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001092: AND 00001093: DUP2 00001094: MSTORE 00001095: PUSH1 0x20 00001097: ADD 00001098: SWAP1 00001099: DUP2 0000109a: MSTORE 0000109b: PUSH1 0x20 0000109d: ADD 0000109e: PUSH1 0x00 000010a0: KECCAK256 000010a1: PUSH1 0x00 000010a3: PUSH2 0x0100 000010a6: EXP 000010a7: DUP2 000010a8: SLOAD 000010a9: DUP2 000010aa: PUSH1 0xff 000010ac: MUL 000010ad: NOT 000010ae: AND 000010af: SWAP1 000010b0: DUP4 000010b1: ISZERO 000010b2: ISZERO 000010b3: MUL 000010b4: OR 000010b5: SWAP1 000010b6: SSTORE 000010b7: POP 000010b8: PUSH1 0x03 000010ba: DUP6 000010bb: SWAP1 000010bc: DUP1 000010bd: PUSH1 0x01 000010bf: DUP2 000010c0: SLOAD 000010c1: ADD 000010c2: DUP1 000010c3: DUP3 000010c4: SSTORE 000010c5: DUP1 000010c6: SWAP2 000010c7: POP 000010c8: POP 000010c9: SWAP1 000010ca: PUSH1 0x01 000010cc: DUP3 000010cd: SUB 000010ce: SWAP1 000010cf: PUSH1 0x00 000010d1: MSTORE 000010d2: PUSH1 0x20 000010d4: PUSH1 0x00 000010d6: KECCAK256 000010d7: ADD 000010d8: PUSH1 0x00 000010da: SWAP1 000010db: SWAP2 000010dc: SWAP3 000010dd: SWAP1 000010de: SWAP2 000010df: SWAP1 000010e0: SWAP2 000010e1: PUSH2 0x0100 000010e4: EXP 000010e5: DUP2 000010e6: SLOAD 000010e7: DUP2 000010e8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010fd: MUL 000010fe: NOT 000010ff: AND 00001100: SWAP1 00001101: DUP4 00001102: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001117: AND 00001118: MUL 00001119: OR 0000111a: SWAP1 0000111b: SSTORE 0000111c: POP 0000111d: POP 0000111e: DUP5 0000111f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001134: AND 00001135: PUSH32 0xf39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d 00001156: PUSH1 0x40 00001158: MLOAD 00001159: PUSH1 0x40 0000115b: MLOAD 0000115c: DUP1 0000115d: SWAP2 0000115e: SUB 0000115f: SWAP1 00001160: LOG2 00001161: POP 00001162: POP 00001163: POP 00001164: POP 00001165: POP 00001166: JUMP 00001167: JUMPDEST 00001168: PUSH1 0x00 0000116a: DUP1 0000116b: PUSH1 0x00 0000116d: SWAP1 0000116e: POP 0000116f: PUSH1 0x00 00001171: DUP1 00001172: SWAP1 00001173: POP 00001174: JUMPDEST 00001175: PUSH1 0x03 00001177: DUP1 00001178: SLOAD 00001179: SWAP1 0000117a: POP 0000117b: DUP2 0000117c: LT 0000117d: ISZERO 0000117e: PUSH2 0x1244 00001181: JUMPI 00001182: PUSH1 0x01 00001184: PUSH1 0x00 00001186: DUP6 00001187: DUP2 00001188: MSTORE 00001189: PUSH1 0x20 0000118b: ADD 0000118c: SWAP1 0000118d: DUP2 0000118e: MSTORE 0000118f: PUSH1 0x20 00001191: ADD 00001192: PUSH1 0x00 00001194: KECCAK256 00001195: PUSH1 0x00 00001197: PUSH1 0x03 00001199: DUP4 0000119a: DUP2 0000119b: SLOAD 0000119c: DUP2 0000119d: LT 0000119e: PUSH2 0x11a3 000011a1: JUMPI 000011a2: INVALID 000011a3: JUMPDEST 000011a4: SWAP1 000011a5: PUSH1 0x00 000011a7: MSTORE 000011a8: PUSH1 0x20 000011aa: PUSH1 0x00 000011ac: KECCAK256 000011ad: ADD 000011ae: PUSH1 0x00 000011b0: SWAP1 000011b1: SLOAD 000011b2: SWAP1 000011b3: PUSH2 0x0100 000011b6: EXP 000011b7: SWAP1 000011b8: DIV 000011b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011ce: AND 000011cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011e4: AND 000011e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011fa: AND 000011fb: DUP2 000011fc: MSTORE 000011fd: PUSH1 0x20 000011ff: ADD 00001200: SWAP1 00001201: DUP2 00001202: MSTORE 00001203: PUSH1 0x20 00001205: ADD 00001206: PUSH1 0x00 00001208: KECCAK256 00001209: PUSH1 0x00 0000120b: SWAP1 0000120c: SLOAD 0000120d: SWAP1 0000120e: PUSH2 0x0100 00001211: EXP 00001212: SWAP1 00001213: DIV 00001214: PUSH1 0xff 00001216: AND 00001217: ISZERO 00001218: PUSH2 0x1222 0000121b: JUMPI 0000121c: PUSH1 0x01 0000121e: DUP3 0000121f: ADD 00001220: SWAP2 00001221: POP 00001222: JUMPDEST 00001223: PUSH1 0x04 00001225: SLOAD 00001226: DUP3 00001227: EQ 00001228: ISZERO 00001229: PUSH2 0x1237 0000122c: JUMPI 0000122d: PUSH1 0x01 0000122f: SWAP3 00001230: POP 00001231: POP 00001232: POP 00001233: PUSH2 0x1247 00001236: JUMP 00001237: JUMPDEST 00001238: DUP1 00001239: DUP1 0000123a: PUSH1 0x01 0000123c: ADD 0000123d: SWAP2 0000123e: POP 0000123f: POP 00001240: PUSH2 0x1174 00001243: JUMP 00001244: JUMPDEST 00001245: POP 00001246: POP 00001247: JUMPDEST 00001248: SWAP2 00001249: SWAP1 0000124a: POP 0000124b: JUMP 0000124c: JUMPDEST 0000124d: PUSH1 0x00 0000124f: DUP1 00001250: PUSH1 0x00 00001252: SWAP1 00001253: POP 00001254: JUMPDEST 00001255: PUSH1 0x03 00001257: DUP1 00001258: SLOAD 00001259: SWAP1 0000125a: POP 0000125b: DUP2 0000125c: LT 0000125d: ISZERO 0000125e: PUSH2 0x130f 00001261: JUMPI 00001262: PUSH1 0x01 00001264: PUSH1 0x00 00001266: DUP5 00001267: DUP2 00001268: MSTORE 00001269: PUSH1 0x20 0000126b: ADD 0000126c: SWAP1 0000126d: DUP2 0000126e: MSTORE 0000126f: PUSH1 0x20 00001271: ADD 00001272: PUSH1 0x00 00001274: KECCAK256 00001275: PUSH1 0x00 00001277: PUSH1 0x03 00001279: DUP4 0000127a: DUP2 0000127b: SLOAD 0000127c: DUP2 0000127d: LT 0000127e: PUSH2 0x1283 00001281: JUMPI 00001282: INVALID 00001283: JUMPDEST 00001284: SWAP1 00001285: PUSH1 0x00 00001287: MSTORE 00001288: PUSH1 0x20 0000128a: PUSH1 0x00 0000128c: KECCAK256 0000128d: ADD 0000128e: PUSH1 0x00 00001290: SWAP1 00001291: SLOAD 00001292: SWAP1 00001293: PUSH2 0x0100 00001296: EXP 00001297: SWAP1 00001298: DIV 00001299: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012ae: AND 000012af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012c4: AND 000012c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012da: AND 000012db: DUP2 000012dc: MSTORE 000012dd: PUSH1 0x20 000012df: ADD 000012e0: SWAP1 000012e1: DUP2 000012e2: MSTORE 000012e3: PUSH1 0x20 000012e5: ADD 000012e6: PUSH1 0x00 000012e8: KECCAK256 000012e9: PUSH1 0x00 000012eb: SWAP1 000012ec: SLOAD 000012ed: SWAP1 000012ee: PUSH2 0x0100 000012f1: EXP 000012f2: SWAP1 000012f3: DIV 000012f4: PUSH1 0xff 000012f6: AND 000012f7: ISZERO 000012f8: PUSH2 0x1302 000012fb: JUMPI 000012fc: PUSH1 0x01 000012fe: DUP3 000012ff: ADD 00001300: SWAP2 00001301: POP 00001302: JUMPDEST 00001303: DUP1 00001304: DUP1 00001305: PUSH1 0x01 00001307: ADD 00001308: SWAP2 00001309: POP 0000130a: POP 0000130b: PUSH2 0x1254 0000130e: JUMP 0000130f: JUMPDEST 00001310: POP 00001311: SWAP2 00001312: SWAP1 00001313: POP 00001314: JUMP 00001315: JUMPDEST 00001316: PUSH1 0x00 00001318: PUSH1 0x20 0000131a: MSTORE 0000131b: DUP1 0000131c: PUSH1 0x00 0000131e: MSTORE 0000131f: PUSH1 0x40 00001321: PUSH1 0x00 00001323: KECCAK256 00001324: PUSH1 0x00 00001326: SWAP2 00001327: POP 00001328: SWAP1 00001329: POP 0000132a: DUP1 0000132b: PUSH1 0x00 0000132d: ADD 0000132e: PUSH1 0x00 00001330: SWAP1 00001331: SLOAD 00001332: SWAP1 00001333: PUSH2 0x0100 00001336: EXP 00001337: SWAP1 00001338: DIV 00001339: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000134e: AND 0000134f: SWAP1 00001350: DUP1 00001351: PUSH1 0x01 00001353: ADD 00001354: SLOAD 00001355: SWAP1 00001356: DUP1 00001357: PUSH1 0x02 00001359: ADD 0000135a: DUP1 0000135b: SLOAD 0000135c: PUSH1 0x01 0000135e: DUP2 0000135f: PUSH1 0x01 00001361: AND 00001362: ISZERO 00001363: PUSH2 0x0100 00001366: MUL 00001367: SUB 00001368: AND 00001369: PUSH1 0x02 0000136b: SWAP1 0000136c: DIV 0000136d: DUP1 0000136e: PUSH1 0x1f 00001370: ADD 00001371: PUSH1 0x20 00001373: DUP1 00001374: SWAP2 00001375: DIV 00001376: MUL 00001377: PUSH1 0x20 00001379: ADD 0000137a: PUSH1 0x40 0000137c: MLOAD 0000137d: SWAP1 0000137e: DUP2 0000137f: ADD 00001380: PUSH1 0x40 00001382: MSTORE 00001383: DUP1 00001384: SWAP3 00001385: SWAP2 00001386: SWAP1 00001387: DUP2 00001388: DUP2 00001389: MSTORE 0000138a: PUSH1 0x20 0000138c: ADD 0000138d: DUP3 0000138e: DUP1 0000138f: SLOAD 00001390: PUSH1 0x01 00001392: DUP2 00001393: PUSH1 0x01 00001395: AND 00001396: ISZERO 00001397: PUSH2 0x0100 0000139a: MUL 0000139b: SUB 0000139c: AND 0000139d: PUSH1 0x02 0000139f: SWAP1 000013a0: DIV 000013a1: DUP1 000013a2: ISZERO 000013a3: PUSH2 0x13ed 000013a6: JUMPI 000013a7: DUP1 000013a8: PUSH1 0x1f 000013aa: LT 000013ab: PUSH2 0x13c2 000013ae: JUMPI 000013af: PUSH2 0x0100 000013b2: DUP1 000013b3: DUP4 000013b4: SLOAD 000013b5: DIV 000013b6: MUL 000013b7: DUP4 000013b8: MSTORE 000013b9: SWAP2 000013ba: PUSH1 0x20 000013bc: ADD 000013bd: SWAP2 000013be: PUSH2 0x13ed 000013c1: JUMP 000013c2: JUMPDEST 000013c3: DUP3 000013c4: ADD 000013c5: SWAP2 000013c6: SWAP1 000013c7: PUSH1 0x00 000013c9: MSTORE 000013ca: PUSH1 0x20 000013cc: PUSH1 0x00 000013ce: KECCAK256 000013cf: SWAP1 000013d0: JUMPDEST 000013d1: DUP2 000013d2: SLOAD 000013d3: DUP2 000013d4: MSTORE 000013d5: SWAP1 000013d6: PUSH1 0x01 000013d8: ADD 000013d9: SWAP1 000013da: PUSH1 0x20 000013dc: ADD 000013dd: DUP1 000013de: DUP4 000013df: GT 000013e0: PUSH2 0x13d0 000013e3: JUMPI 000013e4: DUP3 000013e5: SWAP1 000013e6: SUB 000013e7: PUSH1 0x1f 000013e9: AND 000013ea: DUP3 000013eb: ADD 000013ec: SWAP2 000013ed: JUMPDEST 000013ee: POP 000013ef: POP 000013f0: POP 000013f1: POP 000013f2: POP 000013f3: SWAP1 000013f4: DUP1 000013f5: PUSH1 0x03 000013f7: ADD 000013f8: PUSH1 0x00 000013fa: SWAP1 000013fb: SLOAD 000013fc: SWAP1 000013fd: PUSH2 0x0100 00001400: EXP 00001401: SWAP1 00001402: DIV 00001403: PUSH1 0xff 00001405: AND 00001406: SWAP1 00001407: POP 00001408: DUP5 00001409: JUMP 0000140a: JUMPDEST 0000140b: PUSH1 0x60 0000140d: PUSH1 0x03 0000140f: DUP1 00001410: SLOAD 00001411: DUP1 00001412: PUSH1 0x20 00001414: MUL 00001415: PUSH1 0x20 00001417: ADD 00001418: PUSH1 0x40 0000141a: MLOAD 0000141b: SWAP1 0000141c: DUP2 0000141d: ADD 0000141e: PUSH1 0x40 00001420: MSTORE 00001421: DUP1 00001422: SWAP3 00001423: SWAP2 00001424: SWAP1 00001425: DUP2 00001426: DUP2 00001427: MSTORE 00001428: PUSH1 0x20 0000142a: ADD 0000142b: DUP3 0000142c: DUP1 0000142d: SLOAD 0000142e: DUP1 0000142f: ISZERO 00001430: PUSH2 0x148e 00001433: JUMPI 00001434: PUSH1 0x20 00001436: MUL 00001437: DUP3 00001438: ADD 00001439: SWAP2 0000143a: SWAP1 0000143b: PUSH1 0x00 0000143d: MSTORE 0000143e: PUSH1 0x20 00001440: PUSH1 0x00 00001442: KECCAK256 00001443: SWAP1 00001444: JUMPDEST 00001445: DUP2 00001446: PUSH1 0x00 00001448: SWAP1 00001449: SLOAD 0000144a: SWAP1 0000144b: PUSH2 0x0100 0000144e: EXP 0000144f: SWAP1 00001450: DIV 00001451: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001466: AND 00001467: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000147c: AND 0000147d: DUP2 0000147e: MSTORE 0000147f: PUSH1 0x20 00001481: ADD 00001482: SWAP1 00001483: PUSH1 0x01 00001485: ADD 00001486: SWAP1 00001487: DUP1 00001488: DUP4 00001489: GT 0000148a: PUSH2 0x1444 0000148d: JUMPI 0000148e: JUMPDEST 0000148f: POP 00001490: POP 00001491: POP 00001492: POP 00001493: POP 00001494: SWAP1 00001495: POP 00001496: SWAP1 00001497: JUMP 00001498: JUMPDEST 00001499: PUSH1 0x60 0000149b: DUP1 0000149c: PUSH1 0x05 0000149e: SLOAD 0000149f: PUSH1 0x40 000014a1: MLOAD 000014a2: SWAP1 000014a3: DUP1 000014a4: DUP3 000014a5: MSTORE 000014a6: DUP1 000014a7: PUSH1 0x20 000014a9: MUL 000014aa: PUSH1 0x20 000014ac: ADD 000014ad: DUP3 000014ae: ADD 000014af: PUSH1 0x40 000014b1: MSTORE 000014b2: DUP1 000014b3: ISZERO 000014b4: PUSH2 0x14cc 000014b7: JUMPI 000014b8: DUP2 000014b9: PUSH1 0x20 000014bb: ADD 000014bc: PUSH1 0x20 000014be: DUP3 000014bf: MUL 000014c0: DUP1 000014c1: CODESIZE 000014c2: DUP4 000014c3: CODECOPY 000014c4: DUP1 000014c5: DUP3 000014c6: ADD 000014c7: SWAP2 000014c8: POP 000014c9: POP 000014ca: SWAP1 000014cb: POP 000014cc: JUMPDEST 000014cd: POP 000014ce: SWAP1 000014cf: POP 000014d0: PUSH1 0x00 000014d2: DUP1 000014d3: SWAP1 000014d4: POP 000014d5: PUSH1 0x00 000014d7: DUP1 000014d8: SWAP1 000014d9: POP 000014da: JUMPDEST 000014db: PUSH1 0x05 000014dd: SLOAD 000014de: DUP2 000014df: LT 000014e0: ISZERO 000014e1: PUSH2 0x1576 000014e4: JUMPI 000014e5: DUP6 000014e6: DUP1 000014e7: ISZERO 000014e8: PUSH2 0x1511 000014eb: JUMPI 000014ec: POP 000014ed: PUSH1 0x00 000014ef: DUP1 000014f0: DUP3 000014f1: DUP2 000014f2: MSTORE 000014f3: PUSH1 0x20 000014f5: ADD 000014f6: SWAP1 000014f7: DUP2 000014f8: MSTORE 000014f9: PUSH1 0x20 000014fb: ADD 000014fc: PUSH1 0x00 000014fe: KECCAK256 000014ff: PUSH1 0x03 00001501: ADD 00001502: PUSH1 0x00 00001504: SWAP1 00001505: SLOAD 00001506: SWAP1 00001507: PUSH2 0x0100 0000150a: EXP 0000150b: SWAP1 0000150c: DIV 0000150d: PUSH1 0xff 0000150f: AND 00001510: ISZERO 00001511: JUMPDEST 00001512: DUP1 00001513: PUSH2 0x1544 00001516: JUMPI 00001517: POP 00001518: DUP5 00001519: DUP1 0000151a: ISZERO 0000151b: PUSH2 0x1543 0000151e: JUMPI 0000151f: POP 00001520: PUSH1 0x00 00001522: DUP1 00001523: DUP3 00001524: DUP2 00001525: MSTORE 00001526: PUSH1 0x20 00001528: ADD 00001529: SWAP1 0000152a: DUP2 0000152b: MSTORE 0000152c: PUSH1 0x20 0000152e: ADD 0000152f: PUSH1 0x00 00001531: KECCAK256 00001532: PUSH1 0x03 00001534: ADD 00001535: PUSH1 0x00 00001537: SWAP1 00001538: SLOAD 00001539: SWAP1 0000153a: PUSH2 0x0100 0000153d: EXP 0000153e: SWAP1 0000153f: DIV 00001540: PUSH1 0xff 00001542: AND 00001543: JUMPDEST 00001544: JUMPDEST 00001545: ISZERO 00001546: PUSH2 0x1569 00001549: JUMPI 0000154a: DUP1 0000154b: DUP4 0000154c: DUP4 0000154d: DUP2 0000154e: MLOAD 0000154f: DUP2 00001550: LT 00001551: PUSH2 0x1556 00001554: JUMPI 00001555: INVALID 00001556: JUMPDEST 00001557: PUSH1 0x20 00001559: MUL 0000155a: PUSH1 0x20 0000155c: ADD 0000155d: ADD 0000155e: DUP2 0000155f: DUP2 00001560: MSTORE 00001561: POP 00001562: POP 00001563: PUSH1 0x01 00001565: DUP3 00001566: ADD 00001567: SWAP2 00001568: POP 00001569: JUMPDEST 0000156a: DUP1 0000156b: DUP1 0000156c: PUSH1 0x01 0000156e: ADD 0000156f: SWAP2 00001570: POP 00001571: POP 00001572: PUSH2 0x14da 00001575: JUMP 00001576: JUMPDEST 00001577: DUP8 00001578: DUP8 00001579: SUB 0000157a: PUSH1 0x40 0000157c: MLOAD 0000157d: SWAP1 0000157e: DUP1 0000157f: DUP3 00001580: MSTORE 00001581: DUP1 00001582: PUSH1 0x20 00001584: MUL 00001585: PUSH1 0x20 00001587: ADD 00001588: DUP3 00001589: ADD 0000158a: PUSH1 0x40 0000158c: MSTORE 0000158d: DUP1 0000158e: ISZERO 0000158f: PUSH2 0x15a7 00001592: JUMPI 00001593: DUP2 00001594: PUSH1 0x20 00001596: ADD 00001597: PUSH1 0x20 00001599: DUP3 0000159a: MUL 0000159b: DUP1 0000159c: CODESIZE 0000159d: DUP4 0000159e: CODECOPY 0000159f: DUP1 000015a0: DUP3 000015a1: ADD 000015a2: SWAP2 000015a3: POP 000015a4: POP 000015a5: SWAP1 000015a6: POP 000015a7: JUMPDEST 000015a8: POP 000015a9: SWAP4 000015aa: POP 000015ab: DUP8 000015ac: SWAP1 000015ad: POP 000015ae: JUMPDEST 000015af: DUP7 000015b0: DUP2 000015b1: LT 000015b2: ISZERO 000015b3: PUSH2 0x15f1 000015b6: JUMPI 000015b7: DUP3 000015b8: DUP2 000015b9: DUP2 000015ba: MLOAD 000015bb: DUP2 000015bc: LT 000015bd: PUSH2 0x15c2 000015c0: JUMPI 000015c1: INVALID 000015c2: JUMPDEST 000015c3: PUSH1 0x20 000015c5: MUL 000015c6: PUSH1 0x20 000015c8: ADD 000015c9: ADD 000015ca: MLOAD 000015cb: DUP5 000015cc: DUP10 000015cd: DUP4 000015ce: SUB 000015cf: DUP2 000015d0: MLOAD 000015d1: DUP2 000015d2: LT 000015d3: PUSH2 0x15d8 000015d6: JUMPI 000015d7: INVALID 000015d8: JUMPDEST 000015d9: PUSH1 0x20 000015db: MUL 000015dc: PUSH1 0x20 000015de: ADD 000015df: ADD 000015e0: DUP2 000015e1: DUP2 000015e2: MSTORE 000015e3: POP 000015e4: POP 000015e5: DUP1 000015e6: DUP1 000015e7: PUSH1 0x01 000015e9: ADD 000015ea: SWAP2 000015eb: POP 000015ec: POP 000015ed: PUSH2 0x15ae 000015f0: JUMP 000015f1: JUMPDEST 000015f2: POP 000015f3: POP 000015f4: POP 000015f5: SWAP5 000015f6: SWAP4 000015f7: POP 000015f8: POP 000015f9: POP 000015fa: POP 000015fb: JUMP 000015fc: JUMPDEST 000015fd: PUSH1 0x60 000015ff: DUP1 00001600: PUSH1 0x03 00001602: DUP1 00001603: SLOAD 00001604: SWAP1 00001605: POP 00001606: PUSH1 0x40 00001608: MLOAD 00001609: SWAP1 0000160a: DUP1 0000160b: DUP3 0000160c: MSTORE 0000160d: DUP1 0000160e: PUSH1 0x20 00001610: MUL 00001611: PUSH1 0x20 00001613: ADD 00001614: DUP3 00001615: ADD 00001616: PUSH1 0x40 00001618: MSTORE 00001619: DUP1 0000161a: ISZERO 0000161b: PUSH2 0x1633 0000161e: JUMPI 0000161f: DUP2 00001620: PUSH1 0x20 00001622: ADD 00001623: PUSH1 0x20 00001625: DUP3 00001626: MUL 00001627: DUP1 00001628: CODESIZE 00001629: DUP4 0000162a: CODECOPY 0000162b: DUP1 0000162c: DUP3 0000162d: ADD 0000162e: SWAP2 0000162f: POP 00001630: POP 00001631: SWAP1 00001632: POP 00001633: JUMPDEST 00001634: POP 00001635: SWAP1 00001636: POP 00001637: PUSH1 0x00 00001639: DUP1 0000163a: SWAP1 0000163b: POP 0000163c: PUSH1 0x00 0000163e: DUP1 0000163f: SWAP1 00001640: POP 00001641: JUMPDEST 00001642: PUSH1 0x03 00001644: DUP1 00001645: SLOAD 00001646: SWAP1 00001647: POP 00001648: DUP2 00001649: LT 0000164a: ISZERO 0000164b: PUSH2 0x177a 0000164e: JUMPI 0000164f: PUSH1 0x01 00001651: PUSH1 0x00 00001653: DUP7 00001654: DUP2 00001655: MSTORE 00001656: PUSH1 0x20 00001658: ADD 00001659: SWAP1 0000165a: DUP2 0000165b: MSTORE 0000165c: PUSH1 0x20 0000165e: ADD 0000165f: PUSH1 0x00 00001661: KECCAK256 00001662: PUSH1 0x00 00001664: PUSH1 0x03 00001666: DUP4 00001667: DUP2 00001668: SLOAD 00001669: DUP2 0000166a: LT 0000166b: PUSH2 0x1670 0000166e: JUMPI 0000166f: INVALID 00001670: JUMPDEST 00001671: SWAP1 00001672: PUSH1 0x00 00001674: MSTORE 00001675: PUSH1 0x20 00001677: PUSH1 0x00 00001679: KECCAK256 0000167a: ADD 0000167b: PUSH1 0x00 0000167d: SWAP1 0000167e: SLOAD 0000167f: SWAP1 00001680: PUSH2 0x0100 00001683: EXP 00001684: SWAP1 00001685: DIV 00001686: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000169b: AND 0000169c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016b1: AND 000016b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016c7: AND 000016c8: DUP2 000016c9: MSTORE 000016ca: PUSH1 0x20 000016cc: ADD 000016cd: SWAP1 000016ce: DUP2 000016cf: MSTORE 000016d0: PUSH1 0x20 000016d2: ADD 000016d3: PUSH1 0x00 000016d5: KECCAK256 000016d6: PUSH1 0x00 000016d8: SWAP1 000016d9: SLOAD 000016da: SWAP1 000016db: PUSH2 0x0100 000016de: EXP 000016df: SWAP1 000016e0: DIV 000016e1: PUSH1 0xff 000016e3: AND 000016e4: ISZERO 000016e5: PUSH2 0x176d 000016e8: JUMPI 000016e9: PUSH1 0x03 000016eb: DUP2 000016ec: DUP2 000016ed: SLOAD 000016ee: DUP2 000016ef: LT 000016f0: PUSH2 0x16f5 000016f3: JUMPI 000016f4: INVALID 000016f5: JUMPDEST 000016f6: SWAP1 000016f7: PUSH1 0x00 000016f9: MSTORE 000016fa: PUSH1 0x20 000016fc: PUSH1 0x00 000016fe: KECCAK256 000016ff: ADD 00001700: PUSH1 0x00 00001702: SWAP1 00001703: SLOAD 00001704: SWAP1 00001705: PUSH2 0x0100 00001708: EXP 00001709: SWAP1 0000170a: DIV 0000170b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001720: AND 00001721: DUP4 00001722: DUP4 00001723: DUP2 00001724: MLOAD 00001725: DUP2 00001726: LT 00001727: PUSH2 0x172c 0000172a: JUMPI 0000172b: INVALID 0000172c: JUMPDEST 0000172d: PUSH1 0x20 0000172f: MUL 00001730: PUSH1 0x20 00001732: ADD 00001733: ADD 00001734: SWAP1 00001735: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000174a: AND 0000174b: SWAP1 0000174c: DUP2 0000174d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001762: AND 00001763: DUP2 00001764: MSTORE 00001765: POP 00001766: POP 00001767: PUSH1 0x01 00001769: DUP3 0000176a: ADD 0000176b: SWAP2 0000176c: POP 0000176d: JUMPDEST 0000176e: DUP1 0000176f: DUP1 00001770: PUSH1 0x01 00001772: ADD 00001773: SWAP2 00001774: POP 00001775: POP 00001776: PUSH2 0x1641 00001779: JUMP 0000177a: JUMPDEST 0000177b: DUP2 0000177c: PUSH1 0x40 0000177e: MLOAD 0000177f: SWAP1 00001780: DUP1 00001781: DUP3 00001782: MSTORE 00001783: DUP1 00001784: PUSH1 0x20 00001786: MUL 00001787: PUSH1 0x20 00001789: ADD 0000178a: DUP3 0000178b: ADD 0000178c: PUSH1 0x40 0000178e: MSTORE 0000178f: DUP1 00001790: ISZERO 00001791: PUSH2 0x17a9 00001794: JUMPI 00001795: DUP2 00001796: PUSH1 0x20 00001798: ADD 00001799: PUSH1 0x20 0000179b: DUP3 0000179c: MUL 0000179d: DUP1 0000179e: CODESIZE 0000179f: DUP4 000017a0: CODECOPY 000017a1: DUP1 000017a2: DUP3 000017a3: ADD 000017a4: SWAP2 000017a5: POP 000017a6: POP 000017a7: SWAP1 000017a8: POP 000017a9: JUMPDEST 000017aa: POP 000017ab: SWAP4 000017ac: POP 000017ad: PUSH1 0x00 000017af: SWAP1 000017b0: POP 000017b1: JUMPDEST 000017b2: DUP2 000017b3: DUP2 000017b4: LT 000017b5: ISZERO 000017b6: PUSH2 0x1820 000017b9: JUMPI 000017ba: DUP3 000017bb: DUP2 000017bc: DUP2 000017bd: MLOAD 000017be: DUP2 000017bf: LT 000017c0: PUSH2 0x17c5 000017c3: JUMPI 000017c4: INVALID 000017c5: JUMPDEST 000017c6: PUSH1 0x20 000017c8: MUL 000017c9: PUSH1 0x20 000017cb: ADD 000017cc: ADD 000017cd: MLOAD 000017ce: DUP5 000017cf: DUP3 000017d0: DUP2 000017d1: MLOAD 000017d2: DUP2 000017d3: LT 000017d4: PUSH2 0x17d9 000017d7: JUMPI 000017d8: INVALID 000017d9: JUMPDEST 000017da: PUSH1 0x20 000017dc: MUL 000017dd: PUSH1 0x20 000017df: ADD 000017e0: ADD 000017e1: SWAP1 000017e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017f7: AND 000017f8: SWAP1 000017f9: DUP2 000017fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000180f: AND 00001810: DUP2 00001811: MSTORE 00001812: POP 00001813: POP 00001814: DUP1 00001815: DUP1 00001816: PUSH1 0x01 00001818: ADD 00001819: SWAP2 0000181a: POP 0000181b: POP 0000181c: PUSH2 0x17b1 0000181f: JUMP 00001820: JUMPDEST 00001821: POP 00001822: POP 00001823: POP 00001824: SWAP2 00001825: SWAP1 00001826: POP 00001827: JUMP 00001828: JUMPDEST 00001829: PUSH1 0x05 0000182b: SLOAD 0000182c: DUP2 0000182d: JUMP 0000182e: JUMPDEST 0000182f: ADDRESS 00001830: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001845: AND 00001846: CALLER 00001847: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000185c: AND 0000185d: EQ 0000185e: PUSH2 0x1866 00001861: JUMPI 00001862: PUSH1 0x00 00001864: DUP1 00001865: REVERT 00001866: JUMPDEST 00001867: PUSH1 0x03 00001869: DUP1 0000186a: SLOAD 0000186b: SWAP1 0000186c: POP 0000186d: DUP2 0000186e: PUSH1 0x32 00001870: DUP3 00001871: GT 00001872: ISZERO 00001873: DUP1 00001874: ISZERO 00001875: PUSH2 0x187e 00001878: JUMPI 00001879: POP 0000187a: DUP2 0000187b: DUP2 0000187c: GT 0000187d: ISZERO 0000187e: JUMPDEST 0000187f: DUP1 00001880: ISZERO 00001881: PUSH2 0x188b 00001884: JUMPI 00001885: POP 00001886: PUSH1 0x00 00001888: DUP2 00001889: EQ 0000188a: ISZERO 0000188b: JUMPDEST 0000188c: DUP1 0000188d: ISZERO 0000188e: PUSH2 0x1898 00001891: JUMPI 00001892: POP 00001893: PUSH1 0x00 00001895: DUP3 00001896: EQ 00001897: ISZERO 00001898: JUMPDEST 00001899: PUSH2 0x18a1 0000189c: JUMPI 0000189d: PUSH1 0x00 0000189f: DUP1 000018a0: REVERT 000018a1: JUMPDEST 000018a2: DUP3 000018a3: PUSH1 0x04 000018a5: DUP2 000018a6: SWAP1 000018a7: SSTORE 000018a8: POP 000018a9: PUSH32 0xa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a 000018ca: DUP4 000018cb: PUSH1 0x40 000018cd: MLOAD 000018ce: DUP1 000018cf: DUP3 000018d0: DUP2 000018d1: MSTORE 000018d2: PUSH1 0x20 000018d4: ADD 000018d5: SWAP2 000018d6: POP 000018d7: POP 000018d8: PUSH1 0x40 000018da: MLOAD 000018db: DUP1 000018dc: SWAP2 000018dd: SUB 000018de: SWAP1 000018df: LOG1 000018e0: POP 000018e1: POP 000018e2: POP 000018e3: JUMP 000018e4: JUMPDEST 000018e5: CALLER 000018e6: PUSH1 0x02 000018e8: PUSH1 0x00 000018ea: DUP3 000018eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001900: AND 00001901: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001916: AND 00001917: DUP2 00001918: MSTORE 00001919: PUSH1 0x20 0000191b: ADD 0000191c: SWAP1 0000191d: DUP2 0000191e: MSTORE 0000191f: PUSH1 0x20 00001921: ADD 00001922: PUSH1 0x00 00001924: KECCAK256 00001925: PUSH1 0x00 00001927: SWAP1 00001928: SLOAD 00001929: SWAP1 0000192a: PUSH2 0x0100 0000192d: EXP 0000192e: SWAP1 0000192f: DIV 00001930: PUSH1 0xff 00001932: AND 00001933: PUSH2 0x193b 00001936: JUMPI 00001937: PUSH1 0x00 00001939: DUP1 0000193a: REVERT 0000193b: JUMPDEST 0000193c: DUP2 0000193d: PUSH1 0x00 0000193f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001954: AND 00001955: PUSH1 0x00 00001957: DUP1 00001958: DUP4 00001959: DUP2 0000195a: MSTORE 0000195b: PUSH1 0x20 0000195d: ADD 0000195e: SWAP1 0000195f: DUP2 00001960: MSTORE 00001961: PUSH1 0x20 00001963: ADD 00001964: PUSH1 0x00 00001966: KECCAK256 00001967: PUSH1 0x00 00001969: ADD 0000196a: PUSH1 0x00 0000196c: SWAP1 0000196d: SLOAD 0000196e: SWAP1 0000196f: PUSH2 0x0100 00001972: EXP 00001973: SWAP1 00001974: DIV 00001975: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000198a: AND 0000198b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019a0: AND 000019a1: EQ 000019a2: ISZERO 000019a3: PUSH2 0x19ab 000019a6: JUMPI 000019a7: PUSH1 0x00 000019a9: DUP1 000019aa: REVERT 000019ab: JUMPDEST 000019ac: DUP3 000019ad: CALLER 000019ae: PUSH1 0x01 000019b0: PUSH1 0x00 000019b2: DUP4 000019b3: DUP2 000019b4: MSTORE 000019b5: PUSH1 0x20 000019b7: ADD 000019b8: SWAP1 000019b9: DUP2 000019ba: MSTORE 000019bb: PUSH1 0x20 000019bd: ADD 000019be: PUSH1 0x00 000019c0: KECCAK256 000019c1: PUSH1 0x00 000019c3: DUP3 000019c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019d9: AND 000019da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019ef: AND 000019f0: DUP2 000019f1: MSTORE 000019f2: PUSH1 0x20 000019f4: ADD 000019f5: SWAP1 000019f6: DUP2 000019f7: MSTORE 000019f8: PUSH1 0x20 000019fa: ADD 000019fb: PUSH1 0x00 000019fd: KECCAK256 000019fe: PUSH1 0x00 00001a00: SWAP1 00001a01: SLOAD 00001a02: SWAP1 00001a03: PUSH2 0x0100 00001a06: EXP 00001a07: SWAP1 00001a08: DIV 00001a09: PUSH1 0xff 00001a0b: AND 00001a0c: ISZERO 00001a0d: PUSH2 0x1a15 00001a10: JUMPI 00001a11: PUSH1 0x00 00001a13: DUP1 00001a14: REVERT 00001a15: JUMPDEST 00001a16: PUSH1 0x01 00001a18: DUP1 00001a19: PUSH1 0x00 00001a1b: DUP8 00001a1c: DUP2 00001a1d: MSTORE 00001a1e: PUSH1 0x20 00001a20: ADD 00001a21: SWAP1 00001a22: DUP2 00001a23: MSTORE 00001a24: PUSH1 0x20 00001a26: ADD 00001a27: PUSH1 0x00 00001a29: KECCAK256 00001a2a: PUSH1 0x00 00001a2c: CALLER 00001a2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a42: AND 00001a43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a58: AND 00001a59: DUP2 00001a5a: MSTORE 00001a5b: PUSH1 0x20 00001a5d: ADD 00001a5e: SWAP1 00001a5f: DUP2 00001a60: MSTORE 00001a61: PUSH1 0x20 00001a63: ADD 00001a64: PUSH1 0x00 00001a66: KECCAK256 00001a67: PUSH1 0x00 00001a69: PUSH2 0x0100 00001a6c: EXP 00001a6d: DUP2 00001a6e: SLOAD 00001a6f: DUP2 00001a70: PUSH1 0xff 00001a72: MUL 00001a73: NOT 00001a74: AND 00001a75: SWAP1 00001a76: DUP4 00001a77: ISZERO 00001a78: ISZERO 00001a79: MUL 00001a7a: OR 00001a7b: SWAP1 00001a7c: SSTORE 00001a7d: POP 00001a7e: DUP5 00001a7f: CALLER 00001a80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a95: AND 00001a96: PUSH32 0x4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef 00001ab7: PUSH1 0x40 00001ab9: MLOAD 00001aba: PUSH1 0x40 00001abc: MLOAD 00001abd: DUP1 00001abe: SWAP2 00001abf: SUB 00001ac0: SWAP1 00001ac1: LOG3 00001ac2: PUSH2 0x1aca 00001ac5: DUP6 00001ac6: PUSH2 0x1e05 00001ac9: JUMP 00001aca: JUMPDEST 00001acb: POP 00001acc: POP 00001acd: POP 00001ace: POP 00001acf: POP 00001ad0: JUMP 00001ad1: JUMPDEST 00001ad2: PUSH1 0x00 00001ad4: PUSH2 0x1ade 00001ad7: DUP5 00001ad8: DUP5 00001ad9: DUP5 00001ada: PUSH2 0x20ad 00001add: JUMP 00001ade: JUMPDEST 00001adf: SWAP1 00001ae0: POP 00001ae1: PUSH2 0x1ae9 00001ae4: DUP2 00001ae5: PUSH2 0x18e4 00001ae8: JUMP 00001ae9: JUMPDEST 00001aea: SWAP4 00001aeb: SWAP3 00001aec: POP 00001aed: POP 00001aee: POP 00001aef: JUMP 00001af0: JUMPDEST 00001af1: PUSH1 0x32 00001af3: DUP2 00001af4: JUMP 00001af5: JUMPDEST 00001af6: PUSH1 0x04 00001af8: SLOAD 00001af9: DUP2 00001afa: JUMP 00001afb: JUMPDEST 00001afc: ADDRESS 00001afd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b12: AND 00001b13: CALLER 00001b14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b29: AND 00001b2a: EQ 00001b2b: PUSH2 0x1b33 00001b2e: JUMPI 00001b2f: PUSH1 0x00 00001b31: DUP1 00001b32: REVERT 00001b33: JUMPDEST 00001b34: DUP2 00001b35: PUSH1 0x02 00001b37: PUSH1 0x00 00001b39: DUP3 00001b3a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b4f: AND 00001b50: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b65: AND 00001b66: DUP2 00001b67: MSTORE 00001b68: PUSH1 0x20 00001b6a: ADD 00001b6b: SWAP1 00001b6c: DUP2 00001b6d: MSTORE 00001b6e: PUSH1 0x20 00001b70: ADD 00001b71: PUSH1 0x00 00001b73: KECCAK256 00001b74: PUSH1 0x00 00001b76: SWAP1 00001b77: SLOAD 00001b78: SWAP1 00001b79: PUSH2 0x0100 00001b7c: EXP 00001b7d: SWAP1 00001b7e: DIV 00001b7f: PUSH1 0xff 00001b81: AND 00001b82: PUSH2 0x1b8a 00001b85: JUMPI 00001b86: PUSH1 0x00 00001b88: DUP1 00001b89: REVERT 00001b8a: JUMPDEST 00001b8b: DUP2 00001b8c: PUSH1 0x02 00001b8e: PUSH1 0x00 00001b90: DUP3 00001b91: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ba6: AND 00001ba7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bbc: AND 00001bbd: DUP2 00001bbe: MSTORE 00001bbf: PUSH1 0x20 00001bc1: ADD 00001bc2: SWAP1 00001bc3: DUP2 00001bc4: MSTORE 00001bc5: PUSH1 0x20 00001bc7: ADD 00001bc8: PUSH1 0x00 00001bca: KECCAK256 00001bcb: PUSH1 0x00 00001bcd: SWAP1 00001bce: SLOAD 00001bcf: SWAP1 00001bd0: PUSH2 0x0100 00001bd3: EXP 00001bd4: SWAP1 00001bd5: DIV 00001bd6: PUSH1 0xff 00001bd8: AND 00001bd9: ISZERO 00001bda: PUSH2 0x1be2 00001bdd: JUMPI 00001bde: PUSH1 0x00 00001be0: DUP1 00001be1: REVERT 00001be2: JUMPDEST 00001be3: PUSH1 0x00 00001be5: DUP1 00001be6: SWAP1 00001be7: POP 00001be8: JUMPDEST 00001be9: PUSH1 0x03 00001beb: DUP1 00001bec: SLOAD 00001bed: SWAP1 00001bee: POP 00001bef: DUP2 00001bf0: LT 00001bf1: ISZERO 00001bf2: PUSH2 0x1cc8 00001bf5: JUMPI 00001bf6: DUP5 00001bf7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c0c: AND 00001c0d: PUSH1 0x03 00001c0f: DUP3 00001c10: DUP2 00001c11: SLOAD 00001c12: DUP2 00001c13: LT 00001c14: PUSH2 0x1c19 00001c17: JUMPI 00001c18: INVALID 00001c19: JUMPDEST 00001c1a: SWAP1 00001c1b: PUSH1 0x00 00001c1d: MSTORE 00001c1e: PUSH1 0x20 00001c20: PUSH1 0x00 00001c22: KECCAK256 00001c23: ADD 00001c24: PUSH1 0x00 00001c26: SWAP1 00001c27: SLOAD 00001c28: SWAP1 00001c29: PUSH2 0x0100 00001c2c: EXP 00001c2d: SWAP1 00001c2e: DIV 00001c2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c44: AND 00001c45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c5a: AND 00001c5b: EQ 00001c5c: ISZERO 00001c5d: PUSH2 0x1cbb 00001c60: JUMPI 00001c61: DUP4 00001c62: PUSH1 0x03 00001c64: DUP3 00001c65: DUP2 00001c66: SLOAD 00001c67: DUP2 00001c68: LT 00001c69: PUSH2 0x1c6e 00001c6c: JUMPI 00001c6d: INVALID 00001c6e: JUMPDEST 00001c6f: SWAP1 00001c70: PUSH1 0x00 00001c72: MSTORE 00001c73: PUSH1 0x20 00001c75: PUSH1 0x00 00001c77: KECCAK256 00001c78: ADD 00001c79: PUSH1 0x00 00001c7b: PUSH2 0x0100 00001c7e: EXP 00001c7f: DUP2 00001c80: SLOAD 00001c81: DUP2 00001c82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c97: MUL 00001c98: NOT 00001c99: AND 00001c9a: SWAP1 00001c9b: DUP4 00001c9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cb1: AND 00001cb2: MUL 00001cb3: OR 00001cb4: SWAP1 00001cb5: SSTORE 00001cb6: POP 00001cb7: PUSH2 0x1cc8 00001cba: JUMP 00001cbb: JUMPDEST 00001cbc: DUP1 00001cbd: DUP1 00001cbe: PUSH1 0x01 00001cc0: ADD 00001cc1: SWAP2 00001cc2: POP 00001cc3: POP 00001cc4: PUSH2 0x1be8 00001cc7: JUMP 00001cc8: JUMPDEST 00001cc9: POP 00001cca: PUSH1 0x00 00001ccc: PUSH1 0x02 00001cce: PUSH1 0x00 00001cd0: DUP7 00001cd1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ce6: AND 00001ce7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cfc: AND 00001cfd: DUP2 00001cfe: MSTORE 00001cff: PUSH1 0x20 00001d01: ADD 00001d02: SWAP1 00001d03: DUP2 00001d04: MSTORE 00001d05: PUSH1 0x20 00001d07: ADD 00001d08: PUSH1 0x00 00001d0a: KECCAK256 00001d0b: PUSH1 0x00 00001d0d: PUSH2 0x0100 00001d10: EXP 00001d11: DUP2 00001d12: SLOAD 00001d13: DUP2 00001d14: PUSH1 0xff 00001d16: MUL 00001d17: NOT 00001d18: AND 00001d19: SWAP1 00001d1a: DUP4 00001d1b: ISZERO 00001d1c: ISZERO 00001d1d: MUL 00001d1e: OR 00001d1f: SWAP1 00001d20: SSTORE 00001d21: POP 00001d22: PUSH1 0x01 00001d24: PUSH1 0x02 00001d26: PUSH1 0x00 00001d28: DUP6 00001d29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d3e: AND 00001d3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d54: AND 00001d55: DUP2 00001d56: MSTORE 00001d57: PUSH1 0x20 00001d59: ADD 00001d5a: SWAP1 00001d5b: DUP2 00001d5c: MSTORE 00001d5d: PUSH1 0x20 00001d5f: ADD 00001d60: PUSH1 0x00 00001d62: KECCAK256 00001d63: PUSH1 0x00 00001d65: PUSH2 0x0100 00001d68: EXP 00001d69: DUP2 00001d6a: SLOAD 00001d6b: DUP2 00001d6c: PUSH1 0xff 00001d6e: MUL 00001d6f: NOT 00001d70: AND 00001d71: SWAP1 00001d72: DUP4 00001d73: ISZERO 00001d74: ISZERO 00001d75: MUL 00001d76: OR 00001d77: SWAP1 00001d78: SSTORE 00001d79: POP 00001d7a: DUP4 00001d7b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d90: AND 00001d91: PUSH32 0x8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90 00001db2: PUSH1 0x40 00001db4: MLOAD 00001db5: PUSH1 0x40 00001db7: MLOAD 00001db8: DUP1 00001db9: SWAP2 00001dba: SUB 00001dbb: SWAP1 00001dbc: LOG2 00001dbd: DUP3 00001dbe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dd3: AND 00001dd4: PUSH32 0xf39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d 00001df5: PUSH1 0x40 00001df7: MLOAD 00001df8: PUSH1 0x40 00001dfa: MLOAD 00001dfb: DUP1 00001dfc: SWAP2 00001dfd: SUB 00001dfe: SWAP1 00001dff: LOG2 00001e00: POP 00001e01: POP 00001e02: POP 00001e03: POP 00001e04: JUMP 00001e05: JUMPDEST 00001e06: CALLER 00001e07: PUSH1 0x02 00001e09: PUSH1 0x00 00001e0b: DUP3 00001e0c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e21: AND 00001e22: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e37: AND 00001e38: DUP2 00001e39: MSTORE 00001e3a: PUSH1 0x20 00001e3c: ADD 00001e3d: SWAP1 00001e3e: DUP2 00001e3f: MSTORE 00001e40: PUSH1 0x20 00001e42: ADD 00001e43: PUSH1 0x00 00001e45: KECCAK256 00001e46: PUSH1 0x00 00001e48: SWAP1 00001e49: SLOAD 00001e4a: SWAP1 00001e4b: PUSH2 0x0100 00001e4e: EXP 00001e4f: SWAP1 00001e50: DIV 00001e51: PUSH1 0xff 00001e53: AND 00001e54: PUSH2 0x1e5c 00001e57: JUMPI 00001e58: PUSH1 0x00 00001e5a: DUP1 00001e5b: REVERT 00001e5c: JUMPDEST 00001e5d: DUP2 00001e5e: CALLER 00001e5f: PUSH1 0x01 00001e61: PUSH1 0x00 00001e63: DUP4 00001e64: DUP2 00001e65: MSTORE 00001e66: PUSH1 0x20 00001e68: ADD 00001e69: SWAP1 00001e6a: DUP2 00001e6b: MSTORE 00001e6c: PUSH1 0x20 00001e6e: ADD 00001e6f: PUSH1 0x00 00001e71: KECCAK256 00001e72: PUSH1 0x00 00001e74: DUP3 00001e75: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e8a: AND 00001e8b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ea0: AND 00001ea1: DUP2 00001ea2: MSTORE 00001ea3: PUSH1 0x20 00001ea5: ADD 00001ea6: SWAP1 00001ea7: DUP2 00001ea8: MSTORE 00001ea9: PUSH1 0x20 00001eab: ADD 00001eac: PUSH1 0x00 00001eae: KECCAK256 00001eaf: PUSH1 0x00 00001eb1: SWAP1 00001eb2: SLOAD 00001eb3: SWAP1 00001eb4: PUSH2 0x0100 00001eb7: EXP 00001eb8: SWAP1 00001eb9: DIV 00001eba: PUSH1 0xff 00001ebc: AND 00001ebd: PUSH2 0x1ec5 00001ec0: JUMPI 00001ec1: PUSH1 0x00 00001ec3: DUP1 00001ec4: REVERT 00001ec5: JUMPDEST 00001ec6: DUP4 00001ec7: PUSH1 0x00 00001ec9: DUP1 00001eca: DUP3 00001ecb: DUP2 00001ecc: MSTORE 00001ecd: PUSH1 0x20 00001ecf: ADD 00001ed0: SWAP1 00001ed1: DUP2 00001ed2: MSTORE 00001ed3: PUSH1 0x20 00001ed5: ADD 00001ed6: PUSH1 0x00 00001ed8: KECCAK256 00001ed9: PUSH1 0x03 00001edb: ADD 00001edc: PUSH1 0x00 00001ede: SWAP1 00001edf: SLOAD 00001ee0: SWAP1 00001ee1: PUSH2 0x0100 00001ee4: EXP 00001ee5: SWAP1 00001ee6: DIV 00001ee7: PUSH1 0xff 00001ee9: AND 00001eea: ISZERO 00001eeb: PUSH2 0x1ef3 00001eee: JUMPI 00001eef: PUSH1 0x00 00001ef1: DUP1 00001ef2: REVERT 00001ef3: JUMPDEST 00001ef4: PUSH2 0x1efc 00001ef7: DUP6 00001ef8: PUSH2 0x1167 00001efb: JUMP 00001efc: JUMPDEST 00001efd: ISZERO 00001efe: PUSH2 0x20a6 00001f01: JUMPI 00001f02: PUSH1 0x00 00001f04: DUP1 00001f05: PUSH1 0x00 00001f07: DUP8 00001f08: DUP2 00001f09: MSTORE 00001f0a: PUSH1 0x20 00001f0c: ADD 00001f0d: SWAP1 00001f0e: DUP2 00001f0f: MSTORE 00001f10: PUSH1 0x20 00001f12: ADD 00001f13: PUSH1 0x00 00001f15: KECCAK256 00001f16: SWAP1 00001f17: POP 00001f18: PUSH1 0x01 00001f1a: DUP2 00001f1b: PUSH1 0x03 00001f1d: ADD 00001f1e: PUSH1 0x00 00001f20: PUSH2 0x0100 00001f23: EXP 00001f24: DUP2 00001f25: SLOAD 00001f26: DUP2 00001f27: PUSH1 0xff 00001f29: MUL 00001f2a: NOT 00001f2b: AND 00001f2c: SWAP1 00001f2d: DUP4 00001f2e: ISZERO 00001f2f: ISZERO 00001f30: MUL 00001f31: OR 00001f32: SWAP1 00001f33: SSTORE 00001f34: POP 00001f35: PUSH1 0x00 00001f37: DUP2 00001f38: PUSH1 0x00 00001f3a: ADD 00001f3b: PUSH1 0x00 00001f3d: SWAP1 00001f3e: SLOAD 00001f3f: SWAP1 00001f40: PUSH2 0x0100 00001f43: EXP 00001f44: SWAP1 00001f45: DIV 00001f46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f5b: AND 00001f5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f71: AND 00001f72: DUP3 00001f73: PUSH1 0x01 00001f75: ADD 00001f76: SLOAD 00001f77: DUP4 00001f78: PUSH1 0x02 00001f7a: ADD 00001f7b: PUSH1 0x40 00001f7d: MLOAD 00001f7e: DUP1 00001f7f: DUP3 00001f80: DUP1 00001f81: SLOAD 00001f82: PUSH1 0x01 00001f84: DUP2 00001f85: PUSH1 0x01 00001f87: AND 00001f88: ISZERO 00001f89: PUSH2 0x0100 00001f8c: MUL 00001f8d: SUB 00001f8e: AND 00001f8f: PUSH1 0x02 00001f91: SWAP1 00001f92: DIV 00001f93: DUP1 00001f94: ISZERO 00001f95: PUSH2 0x1fd5 00001f98: JUMPI 00001f99: DUP1 00001f9a: PUSH1 0x1f 00001f9c: LT 00001f9d: PUSH2 0x1fb3 00001fa0: JUMPI 00001fa1: PUSH2 0x0100 00001fa4: DUP1 00001fa5: DUP4 00001fa6: SLOAD 00001fa7: DIV 00001fa8: MUL 00001fa9: DUP4 00001faa: MSTORE 00001fab: SWAP2 00001fac: DUP3 00001fad: ADD 00001fae: SWAP2 00001faf: PUSH2 0x1fd5 00001fb2: JUMP 00001fb3: JUMPDEST 00001fb4: DUP3 00001fb5: ADD 00001fb6: SWAP2 00001fb7: SWAP1 00001fb8: PUSH1 0x00 00001fba: MSTORE 00001fbb: PUSH1 0x20 00001fbd: PUSH1 0x00 00001fbf: KECCAK256 00001fc0: SWAP1 00001fc1: JUMPDEST 00001fc2: DUP2 00001fc3: SLOAD 00001fc4: DUP2 00001fc5: MSTORE 00001fc6: SWAP1 00001fc7: PUSH1 0x01 00001fc9: ADD 00001fca: SWAP1 00001fcb: PUSH1 0x20 00001fcd: ADD 00001fce: DUP1 00001fcf: DUP4 00001fd0: GT 00001fd1: PUSH2 0x1fc1 00001fd4: JUMPI 00001fd5: JUMPDEST 00001fd6: POP 00001fd7: POP 00001fd8: SWAP2 00001fd9: POP 00001fda: POP 00001fdb: PUSH1 0x00 00001fdd: PUSH1 0x40 00001fdf: MLOAD 00001fe0: DUP1 00001fe1: DUP4 00001fe2: SUB 00001fe3: DUP2 00001fe4: DUP6 00001fe5: DUP8 00001fe6: GAS 00001fe7: CALL 00001fe8: SWAP3 00001fe9: POP 00001fea: POP 00001feb: POP 00001fec: RETURNDATASIZE 00001fed: DUP1 00001fee: PUSH1 0x00 00001ff0: DUP2 00001ff1: EQ 00001ff2: PUSH2 0x2017 00001ff5: JUMPI 00001ff6: PUSH1 0x40 00001ff8: MLOAD 00001ff9: SWAP2 00001ffa: POP 00001ffb: PUSH1 0x1f 00001ffd: NOT 00001ffe: PUSH1 0x3f 00002000: RETURNDATASIZE 00002001: ADD 00002002: AND 00002003: DUP3 00002004: ADD 00002005: PUSH1 0x40 00002007: MSTORE 00002008: RETURNDATASIZE 00002009: DUP3 0000200a: MSTORE 0000200b: RETURNDATASIZE 0000200c: PUSH1 0x00 0000200e: PUSH1 0x20 00002010: DUP5 00002011: ADD 00002012: RETURNDATACOPY 00002013: PUSH2 0x201c 00002016: JUMP 00002017: JUMPDEST 00002018: PUSH1 0x60 0000201a: SWAP2 0000201b: POP 0000201c: JUMPDEST 0000201d: POP 0000201e: POP 0000201f: SWAP1 00002020: POP 00002021: DUP1 00002022: ISZERO 00002023: PUSH2 0x2058 00002026: JUMPI 00002027: DUP7 00002028: PUSH32 0x33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed75 00002049: PUSH1 0x40 0000204b: MLOAD 0000204c: PUSH1 0x40 0000204e: MLOAD 0000204f: DUP1 00002050: SWAP2 00002051: SUB 00002052: SWAP1 00002053: LOG2 00002054: PUSH2 0x20a3 00002057: JUMP 00002058: JUMPDEST 00002059: DUP7 0000205a: PUSH32 0x526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b79236 0000207b: PUSH1 0x40 0000207d: MLOAD 0000207e: PUSH1 0x40 00002080: MLOAD 00002081: DUP1 00002082: SWAP2 00002083: SUB 00002084: SWAP1 00002085: LOG2 00002086: PUSH1 0x00 00002088: DUP3 00002089: PUSH1 0x03 0000208b: ADD 0000208c: PUSH1 0x00 0000208e: PUSH2 0x0100 00002091: EXP 00002092: DUP2 00002093: SLOAD 00002094: DUP2 00002095: PUSH1 0xff 00002097: MUL 00002098: NOT 00002099: AND 0000209a: SWAP1 0000209b: DUP4 0000209c: ISZERO 0000209d: ISZERO 0000209e: MUL 0000209f: OR 000020a0: SWAP1 000020a1: SSTORE 000020a2: POP 000020a3: JUMPDEST 000020a4: POP 000020a5: POP 000020a6: JUMPDEST 000020a7: POP 000020a8: POP 000020a9: POP 000020aa: POP 000020ab: POP 000020ac: JUMP 000020ad: JUMPDEST 000020ae: PUSH1 0x00 000020b0: DUP4 000020b1: PUSH1 0x00 000020b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020c8: AND 000020c9: DUP2 000020ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020df: AND 000020e0: EQ 000020e1: ISZERO 000020e2: PUSH2 0x20ea 000020e5: JUMPI 000020e6: PUSH1 0x00 000020e8: DUP1 000020e9: REVERT 000020ea: JUMPDEST 000020eb: PUSH1 0x05 000020ed: SLOAD 000020ee: SWAP2 000020ef: POP 000020f0: PUSH1 0x40 000020f2: MLOAD 000020f3: DUP1 000020f4: PUSH1 0x80 000020f6: ADD 000020f7: PUSH1 0x40 000020f9: MSTORE 000020fa: DUP1 000020fb: DUP7 000020fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002111: AND 00002112: DUP2 00002113: MSTORE 00002114: PUSH1 0x20 00002116: ADD 00002117: DUP6 00002118: DUP2 00002119: MSTORE 0000211a: PUSH1 0x20 0000211c: ADD 0000211d: DUP5 0000211e: DUP2 0000211f: MSTORE 00002120: PUSH1 0x20 00002122: ADD 00002123: PUSH1 0x00 00002125: ISZERO 00002126: ISZERO 00002127: DUP2 00002128: MSTORE 00002129: POP 0000212a: PUSH1 0x00 0000212c: DUP1 0000212d: DUP5 0000212e: DUP2 0000212f: MSTORE 00002130: PUSH1 0x20 00002132: ADD 00002133: SWAP1 00002134: DUP2 00002135: MSTORE 00002136: PUSH1 0x20 00002138: ADD 00002139: PUSH1 0x00 0000213b: KECCAK256 0000213c: PUSH1 0x00 0000213e: DUP3 0000213f: ADD 00002140: MLOAD 00002141: DUP2 00002142: PUSH1 0x00 00002144: ADD 00002145: PUSH1 0x00 00002147: PUSH2 0x0100 0000214a: EXP 0000214b: DUP2 0000214c: SLOAD 0000214d: DUP2 0000214e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002163: MUL 00002164: NOT 00002165: AND 00002166: SWAP1 00002167: DUP4 00002168: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000217d: AND 0000217e: MUL 0000217f: OR 00002180: SWAP1 00002181: SSTORE 00002182: POP 00002183: PUSH1 0x20 00002185: DUP3 00002186: ADD 00002187: MLOAD 00002188: DUP2 00002189: PUSH1 0x01 0000218b: ADD 0000218c: SSTORE 0000218d: PUSH1 0x40 0000218f: DUP3 00002190: ADD 00002191: MLOAD 00002192: DUP2 00002193: PUSH1 0x02 00002195: ADD 00002196: SWAP1 00002197: DUP1 00002198: MLOAD 00002199: SWAP1 0000219a: PUSH1 0x20 0000219c: ADD 0000219d: SWAP1 0000219e: PUSH2 0x21a8 000021a1: SWAP3 000021a2: SWAP2 000021a3: SWAP1 000021a4: PUSH2 0x223e 000021a7: JUMP 000021a8: JUMPDEST 000021a9: POP 000021aa: PUSH1 0x60 000021ac: DUP3 000021ad: ADD 000021ae: MLOAD 000021af: DUP2 000021b0: PUSH1 0x03 000021b2: ADD 000021b3: PUSH1 0x00 000021b5: PUSH2 0x0100 000021b8: EXP 000021b9: DUP2 000021ba: SLOAD 000021bb: DUP2 000021bc: PUSH1 0xff 000021be: MUL 000021bf: NOT 000021c0: AND 000021c1: SWAP1 000021c2: DUP4 000021c3: ISZERO 000021c4: ISZERO 000021c5: MUL 000021c6: OR 000021c7: SWAP1 000021c8: SSTORE 000021c9: POP 000021ca: SWAP1 000021cb: POP 000021cc: POP 000021cd: PUSH1 0x01 000021cf: PUSH1 0x05 000021d1: PUSH1 0x00 000021d3: DUP3 000021d4: DUP3 000021d5: SLOAD 000021d6: ADD 000021d7: SWAP3 000021d8: POP 000021d9: POP 000021da: DUP2 000021db: SWAP1 000021dc: SSTORE 000021dd: POP 000021de: DUP2 000021df: PUSH32 0xc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e51 00002200: PUSH1 0x40 00002202: MLOAD 00002203: PUSH1 0x40 00002205: MLOAD 00002206: DUP1 00002207: SWAP2 00002208: SUB 00002209: SWAP1 0000220a: LOG2 0000220b: POP 0000220c: SWAP4 0000220d: SWAP3 0000220e: POP 0000220f: POP 00002210: POP 00002211: JUMP 00002212: JUMPDEST 00002213: DUP2 00002214: SLOAD 00002215: DUP2 00002216: DUP4 00002217: SSTORE 00002218: DUP2 00002219: DUP2 0000221a: GT 0000221b: ISZERO 0000221c: PUSH2 0x2239 0000221f: JUMPI 00002220: DUP2 00002221: DUP4 00002222: PUSH1 0x00 00002224: MSTORE 00002225: PUSH1 0x20 00002227: PUSH1 0x00 00002229: KECCAK256 0000222a: SWAP2 0000222b: DUP3 0000222c: ADD 0000222d: SWAP2 0000222e: ADD 0000222f: PUSH2 0x2238 00002232: SWAP2 00002233: SWAP1 00002234: PUSH2 0x22be 00002237: JUMP 00002238: JUMPDEST 00002239: JUMPDEST 0000223a: POP 0000223b: POP 0000223c: POP 0000223d: JUMP 0000223e: JUMPDEST 0000223f: DUP3 00002240: DUP1 00002241: SLOAD 00002242: PUSH1 0x01 00002244: DUP2 00002245: PUSH1 0x01 00002247: AND 00002248: ISZERO 00002249: PUSH2 0x0100 0000224c: MUL 0000224d: SUB 0000224e: AND 0000224f: PUSH1 0x02 00002251: SWAP1 00002252: DIV 00002253: SWAP1 00002254: PUSH1 0x00 00002256: MSTORE 00002257: PUSH1 0x20 00002259: PUSH1 0x00 0000225b: KECCAK256 0000225c: SWAP1 0000225d: PUSH1 0x1f 0000225f: ADD 00002260: PUSH1 0x20 00002262: SWAP1 00002263: DIV 00002264: DUP2 00002265: ADD 00002266: SWAP3 00002267: DUP3 00002268: PUSH1 0x1f 0000226a: LT 0000226b: PUSH2 0x227f 0000226e: JUMPI 0000226f: DUP1 00002270: MLOAD 00002271: PUSH1 0xff 00002273: NOT 00002274: AND 00002275: DUP4 00002276: DUP1 00002277: ADD 00002278: OR 00002279: DUP6 0000227a: SSTORE 0000227b: PUSH2 0x22ad 0000227e: JUMP 0000227f: JUMPDEST 00002280: DUP3 00002281: DUP1 00002282: ADD 00002283: PUSH1 0x01 00002285: ADD 00002286: DUP6 00002287: SSTORE 00002288: DUP3 00002289: ISZERO 0000228a: PUSH2 0x22ad 0000228d: JUMPI 0000228e: SWAP2 0000228f: DUP3 00002290: ADD 00002291: JUMPDEST 00002292: DUP3 00002293: DUP2 00002294: GT 00002295: ISZERO 00002296: PUSH2 0x22ac 00002299: JUMPI 0000229a: DUP3 0000229b: MLOAD 0000229c: DUP3 0000229d: SSTORE 0000229e: SWAP2 0000229f: PUSH1 0x20 000022a1: ADD 000022a2: SWAP2 000022a3: SWAP1 000022a4: PUSH1 0x01 000022a6: ADD 000022a7: SWAP1 000022a8: PUSH2 0x2291 000022ab: JUMP 000022ac: JUMPDEST 000022ad: JUMPDEST 000022ae: POP 000022af: SWAP1 000022b0: POP 000022b1: PUSH2 0x22ba 000022b4: SWAP2 000022b5: SWAP1 000022b6: PUSH2 0x22be 000022b9: JUMP 000022ba: JUMPDEST 000022bb: POP 000022bc: SWAP1 000022bd: JUMP 000022be: JUMPDEST 000022bf: PUSH2 0x22e0 000022c2: SWAP2 000022c3: SWAP1 000022c4: JUMPDEST 000022c5: DUP1 000022c6: DUP3 000022c7: GT 000022c8: ISZERO 000022c9: PUSH2 0x22dc 000022cc: JUMPI 000022cd: PUSH1 0x00 000022cf: DUP2 000022d0: PUSH1 0x00 000022d2: SWAP1 000022d3: SSTORE 000022d4: POP 000022d5: PUSH1 0x01 000022d7: ADD 000022d8: PUSH2 0x22c4 000022db: JUMP 000022dc: JUMPDEST 000022dd: POP 000022de: SWAP1 000022df: JUMP 000022e0: JUMPDEST 000022e1: SWAP1 000022e2: JUMP 000022e3: INVALID 000022e4: LOG1 000022e5: PUSH6 0x627a7a723058 000022ec: KECCAK256 000022ed: DUP14 000022ee: UNKNOWN(0xC8) 000022ef: PUSH0 000022f0: UNKNOWN(0xD6) 000022f1: UNKNOWN(0x2B) 000022f2: UNKNOWN(0x1F) 000022f3: CALLER 000022f4: UNKNOWN(0xC9) 000022f5: BLOCKHASH 000022f6: SWAP16 000022f7: MUL 000022f8: SWAP7 000022f9: UNKNOWN(0xAC) 000022fa: CALL 000022fb: UNKNOWN(0xC7) 000022fc: MSTORE 000022fd: GAS 000022fe: DUP8 000022ff: UNKNOWN(0x27) 00002300: UNKNOWN(0xD2) 00002301: DUP3 00002302: UNKNOWN(0xBA) 00002303: UNKNOWN(0xD7) 00002304: DIFFICULTY 00002305: UNKNOWN(0xB6) 00002306: CLZ 00002307: PUSH24
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x50d3a0b77d1a55cb0cd70949401f4416b392ffa8cbaa081ff1f65b9bfb8c5414
call_targets:
0x36eed1a4dd70f0731dd20ef76c32345185a8a042
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x50d3a0b77d1a55cb0cd70949401f4416b392ffa8cbaa081ff1f65b9bfb8c5414",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x36eed1a4dd70f0731dd20ef76c32345185a8a042"
],
"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": "0xc01a8c84",
"selector": "0xc01a8c84",
"calldata_variants": [
"0xc01a8c84",
"0xc01a8c840000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6427474",
"selector": "0xc6427474",
"calldata_variants": [
"0xc6427474",
"0xc64274740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd74f8edd",
"selector": "0xd74f8edd",
"calldata_variants": [
"0xd74f8edd",
"0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdc8452cd",
"selector": "0xdc8452cd",
"calldata_variants": [
"0xdc8452cd",
"0xdc8452cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe20056e6",
"selector": "0xe20056e6",
"calldata_variants": [
"0xe20056e6",
"0xe20056e60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xee22610b",
"selector": "0xee22610b",
"calldata_variants": [
"0xee22610b",
"0xee22610b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa0e67e2b",
"selector": "0xa0e67e2b",
"calldata_variants": [
"0xa0e67e2b",
"0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8abe69a",
"selector": "0xa8abe69a",
"calldata_variants": [
"0xa8abe69a",
"0xa8abe69a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8167,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8954,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 2651,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3948,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6214,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6931,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 2
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x50d3a0b77d1a55cb0cd70949401f4416b392ffa8cbaa081ff1f65b9bfb8c5414
call_targets:
0x36eed1a4dd70f0731dd20ef76c32345185a8a042
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x50d3a0b77d1a55cb0cd70949401f4416b392ffa8cbaa081ff1f65b9bfb8c5414",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x36eed1a4dd70f0731dd20ef76c32345185a8a042"
],
"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": "0xc01a8c84",
"selector": "0xc01a8c84",
"calldata_variants": [
"0xc01a8c84",
"0xc01a8c840000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6427474",
"selector": "0xc6427474",
"calldata_variants": [
"0xc6427474",
"0xc64274740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd74f8edd",
"selector": "0xd74f8edd",
"calldata_variants": [
"0xd74f8edd",
"0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdc8452cd",
"selector": "0xdc8452cd",
"calldata_variants": [
"0xdc8452cd",
"0xdc8452cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe20056e6",
"selector": "0xe20056e6",
"calldata_variants": [
"0xe20056e6",
"0xe20056e60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xee22610b",
"selector": "0xee22610b",
"calldata_variants": [
"0xee22610b",
"0xee22610b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa0e67e2b",
"selector": "0xa0e67e2b",
"calldata_variants": [
"0xa0e67e2b",
"0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8abe69a",
"selector": "0xa8abe69a",
"calldata_variants": [
"0xa8abe69a",
"0xa8abe69a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8167,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8954,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": [
{
"pc": 2651,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3948,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6214,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6931,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|