TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

28beba35-69fc-4696-bdc3-790cf8022029

complete
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 7:33 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Present
Best current signal
Authorization based on tx.origin
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30740 report.consolidate complete 1 / 1 3 months ago
75436 artifact.fetch complete 1 / 3 1 week ago
75437 tool.cast_disasm complete 1 / 3 1 week ago
75438 analysis.bundle complete 1 / 3 1 week ago
75439 capability.graph complete 1 / 3 1 week ago
75440 detector.run complete 1 / 3 1 week ago
75441 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found a low-severity pattern where ERC20 transfer calls ignore the CALL result/return data, which can allow silent transfer failures with non‑standard tokens.
View stderr
[codex:1305563] OpenAI Codex v0.77.0 (research preview)
[codex:1305563] --------
[codex:1305563] workdir: /tmp/codex-multi-c_j_6gc6
[codex:1305563] model: gpt-5.2-codex
[codex:1305563] provider: openai
[codex:1305563] approval: never
[codex:1305563] sandbox: read-only
[codex:1305563] reasoning effort: xhigh
[codex:1305563] reasoning summaries: auto
[codex:1305563] session id: 019b70bc-75e2-7be0-bf0b-b542c616cd4d
[codex:1305563] --------
[codex:1305563] user
[codex:1305563] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:1305563] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:1305563] 
[codex:1305563] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:1305563] 
[codex:1305563] Output MUST be valid JSON matching the provided schema.
[codex:1305563] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:1305563] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:1305563] 
[codex:1305563] Output constraints (IMPORTANT):
[codex:1305563] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1305563] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1305563] mcp startup: no servers
[codex:1305563] 
[codex:1305563] thinking
[codex:1305563] **Reading file content via shell**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc ls in /tmp/codex-multi-c_j_6gc6 succeeded in 5ms:
[codex:1305563] BYTECODE_BUNDLE.txt
[codex:1305563] codex-output-schema.json
[codex:1305563] exec
[codex:1305563] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-c_j_6gc6 succeeded in 5ms:
[codex:1305563] Runtime bytecode bundle for best-effort auditing.
[codex:1305563] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1305563] 
[codex:1305563] FILE: runtime_bytecode.hex
[codex:1305563] 0x608060405260043610610113575f3560e01c8063613a7b481161009d578063c34684eb11610062578063c34684eb1461029d578063d7c41ef9146102b0578063ea60efed146102d0578063f0a2003e146102e3578063fa461e33146102f6575f5ffd5b8063613a7b48146101fb5780637b3341541461021a5780637f64784f14610258578063856c1a571461026b578063954e75b01461027e575f5ffd5b80630da84181116100e35780630da841811461017857806312065fe0146101975780631c8ef6c6146101b65780634782f779146101c95780634b74bc84146101e8575f5ffd5b806301e336671461011e57806305397ed41461013f57806306411cbb1461015257806308539c9414610165575f5ffd5b3661011a57005b5f5ffd5b348015610129575f5ffd5b5061013d610138366004613a5b565b610315565b005b61013d61014d366004613a99565b610395565b61013d610160366004613ad3565b61090c565b61013d610173366004613a99565b610ee4565b348015610183575f5ffd5b5061013d610192366004613ad3565b610fe8565b3480156101a2575f5ffd5b506040514781526020015b60405180910390f35b61013d6101c4366004613a99565b6115a2565b3480156101d4575f5ffd5b5061013d6101e3366004613b18565b611bc0565b61013d6101f6366004613ad3565b611ca9565b348015610206575f5ffd5b5061013d610215366004613b42565b61231c565b348015610225575f5ffd5b50610248610234366004613b42565b5f6020819052908152604090205460ff1681565b60405190151581526020016101ad565b61013d610266366004613ad3565b612384565b61013d610279366004613ad3565b61296a565b348015610289575f5ffd5b5061013d610298366004613b64565b612a5e565b61013d6102ab366004613a99565b612f1a565b6102c36102be366004613c01565b613017565b6040516101ad9190613c80565b61013d6102de366004613b64565b613115565b61013d6102f1366004613b64565b613202565b348015610301575f5ffd5b5061013d610310366004613c92565b6136c2565b5f516020613f6c5f395f51905f5233148061033e5750335f9081526020819052604090205460ff165b6103635760405162461bcd60e51b815260040161035a90613ce1565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b03831660048201528160248201525f5f6044835f885af15050505050565b5f516020613f6c5f395f51905f523314806103be5750335f9081526020819052604090205460ff165b6103da5760405162461bcd60e51b815260040161035a90613ce1565b834311156103fa5760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610440573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104649190613d55565b50915091505f600160ff1b86165f036104fd5761049434846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f69190613da1565b905061057f565b61051a34836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610558573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057c9190613da1565b90505b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29034905f81818185875af1925050503d805f81146105d0576040519150601f19603f3d011682016040523d82523d5f602084013e6105d5565b606091505b50506040516323b872dd60e01b81523060048201526001600160a01b038a16602482015234604482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291506323b872dd906064016020604051808303815f875af115801561063b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065f9190613dbc565b506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa1580156106a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106cb9190613ddb565b90505f600160fe1b881615610743576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561071c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107409190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611610767578b610769565b305b6040518463ffffffff1660e01b815260040161078793929190613df2565b5f604051808303815f87803b15801561079e575f5ffd5b505af11580156107b0573d5f5f3e3d5ffd5b50505050600160fe1b88161561086b576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610804573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108289190613ddb565b9050815f0361085a57610841848a610138600185613e33565b89156108555761085260018b613e33565b99505b610869565b610869848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa1580156108b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d79190613ddb565b6108e19190613e33565b10156108ff5760405162461bcd60e51b815260040161035a90613e4c565b5050505050505050505050565b5f516020613f6c5f395f51905f523314806109355750335f9081526020819052604090205460ff165b6109515760405162461bcd60e51b815260040161035a90613ce1565b834311156109715760405162461bcd60e51b815260040161035a90613d10565b5f61097c8634613e33565b90505f5f90505f5f90505f5f876001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156109c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e89190613d55565b50915091505f600160ff1b87165f03610a8157610a1886846001600160701b0316846001600160701b03166138cc565b9350886001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7a9190613da1565b9050610b03565b610a9e86836001600160701b0316856001600160701b03166138cc565b9450886001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b009190613da1565b90505b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087905f81818185875af1925050503d805f8114610b54576040519150601f19603f3d011682016040523d82523d5f602084013e610b59565b606091505b50506040516323b872dd60e01b81523060048201526001600160a01b038b1660248201526044810188905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291506323b872dd906064016020604051808303815f875af1158015610bc0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be49190613dbc565b506040516370a0823160e01b81526001600160a01b0388811660048301525f91908316906370a0823190602401602060405180830381865afa158015610c2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190613ddb565b90505f600160fe1b891615610cc8576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ca1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc59190613ddb565b90505b8a6001600160a01b031663022c0d9f88885f600160fe1b8e1611610cec578c610cee565b305b6040518463ffffffff1660e01b8152600401610d0c93929190613df2565b5f604051808303815f87803b158015610d23575f5ffd5b505af1158015610d35573d5f5f3e3d5ffd5b50505050600160fe1b891615610df0576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610d89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dad9190613ddb565b9050815f03610ddf57610dc6848b610138600185613e33565b8a15610dda57610dd760018c613e33565b9a505b610dee565b610dee848b6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038a811660048301528b9184918616906370a0823190602401602060405180830381865afa158015610e38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5c9190613ddb565b610e669190613e33565b1015610e845760405162461bcd60e51b815260040161035a90613e4c565b416001600160a01b03168d6040515b5f6040518083038185875af1925050503d805f8114610ecd576040519150601f19603f3d011682016040523d82523d5f602084013e610ed2565b606091505b50505050505050505050505050505050565b5f516020613f6c5f395f51905f52331480610f0d5750335f9081526020819052604090205460ff165b610f295760405162461bcd60e51b815260040161035a90613ce1565b6001603460831936010615610f735760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60845b813682101615610fba575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114610fb2575f91505b603401610f76565b508015610fd5575f5f5f5f34335ff161013d573d5f5f3e3d5ffd5b610fe1858585856115a2565b5050505050565b5f516020613f6c5f395f51905f523314806110115750335f9081526020819052604090205460ff165b61102d5760405162461bcd60e51b815260040161035a90613ce1565b8443111561104d5760405162461bcd60e51b815260040161035a90613d10565b5f5f5f600160ff1b84165f0361125057856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611099573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110bd9190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611105573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111299190613ddb565b9150600160fe1b8416156111a0576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611179573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119d9190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116111c257856111c4565b305b604080513060208201526001918c916401000276a491016040516020818303038152906040526040518663ffffffff1660e01b815260040161120a959493929190613e77565b60408051808303815f875af1158015611225573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112499190613eb1565b505061144d565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b09190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa1580156112f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131c9190613ddb565b9150600160fe1b841615611393576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561136c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113909190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116113b557856113b7565b305b604080513060208201525f918c9173fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b815260040161140b959493929190613e77565b60408051808303815f875af1158015611426573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144a9190613eb1565b50505b600160fe1b841615611504576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561149d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c19190613ddb565b9050815f036114f3576114da8486610138600185613e33565b85156114ee576114eb600187613e33565b95505b611502565b61150284866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa15801561154c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115709190613ddb565b61157a9190613e33565b10156115985760405162461bcd60e51b815260040161035a90613e4c565b5050505050505050565b5f516020613f6c5f395f51905f523314806115cb5750335f9081526020819052604090205460ff165b6115e75760405162461bcd60e51b815260040161035a90613ce1565b834311156116075760405162461bcd60e51b815260040161035a90613d10565b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29034905f81818185875af1925050503d805f8114611658576040519150601f19603f3d011682016040523d82523d5f602084013e61165d565b606091505b5050505f5f5f600160ff1b84165f0361186957856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d09190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611718573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173c9190613ddb565b9150600160fe1b8416156117b3576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561178c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b09190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116117d557856117d7565b305b60016117e2346139d7565b604080513060208201526401000276a491016040516020818303038152906040526040518663ffffffff1660e01b8152600401611823959493929190613e77565b60408051808303815f875af115801561183e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118629190613eb1565b5050611a6c565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c99190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611911573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119359190613ddb565b9150600160fe1b8416156119ac576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611985573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a99190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116119ce57856119d0565b305b5f6119da346139d7565b6040805130602082015273fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b8152600401611a2a959493929190613e77565b60408051808303815f875af1158015611a45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a699190613eb1565b50505b600160fe1b841615611b23576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015611abc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae09190613ddb565b9050815f03611b1257611af98486610138600185613e33565b8515611b0d57611b0a600187613e33565b95505b611b21565b611b2184866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa158015611b6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8f9190613ddb565b611b999190613e33565b1015611bb75760405162461bcd60e51b815260040161035a90613e4c565b50505050505050565b5f516020613f6c5f395f51905f52331480611be95750335f9081526020819052604090205460ff165b611c055760405162461bcd60e51b815260040161035a90613ce1565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611c4e576040519150601f19603f3d011682016040523d82523d5f602084013e611c53565b606091505b5050905080611ca45760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f2077697468647261772045746865720000000000000000604482015260640161035a565b505050565b5f516020613f6c5f395f51905f52331480611cd25750335f9081526020819052604090205460ff165b611cee5760405162461bcd60e51b815260040161035a90613ce1565b83431115611d0e5760405162461bcd60e51b815260040161035a90613d10565b5f611d198634613e33565b60405190915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29082905f81818185875af1925050503d805f8114611d6d576040519150601f19603f3d011682016040523d82523d5f602084013e611d72565b606091505b5050505f5f5f600160ff1b85165f03611f7e57866001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611de59190613da1565b6040516370a0823160e01b81526001600160a01b038781166004830152919450908416906370a0823190602401602060405180830381865afa158015611e2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e519190613ddb565b9150600160fe1b851615611ec8576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611ea1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ec59190613ddb565b90505b866001600160a01b031663128acb085f600160fe1b881611611eea5786611eec565b305b6001611ef7886139d7565b604080513060208201526401000276a491016040516020818303038152906040526040518663ffffffff1660e01b8152600401611f38959493929190613e77565b60408051808303815f875af1158015611f53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f779190613eb1565b5050612181565b866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fba573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fde9190613da1565b6040516370a0823160e01b81526001600160a01b038781166004830152919450908416906370a0823190602401602060405180830381865afa158015612026573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204a9190613ddb565b9150600160fe1b8516156120c1576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561209a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120be9190613ddb565b90505b866001600160a01b031663128acb085f600160fe1b8816116120e357866120e5565b305b5f6120ef886139d7565b6040805130602082015273fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b815260040161213f959493929190613e77565b60408051808303815f875af115801561215a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061217e9190613eb1565b50505b600160fe1b851615612238576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156121d1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f59190613ddb565b9050815f036122275761220e8487610138600185613e33565b86156122225761221f600188613e33565b96505b612236565b61223684876101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038681166004830152879184918616906370a0823190602401602060405180830381865afa158015612280573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a49190613ddb565b6122ae9190613e33565b10156122cc5760405162461bcd60e51b815260040161035a90613e4c565b60405141908a905f81818185875af1925050503d805f8114612309576040519150601f19603f3d011682016040523d82523d5f602084013e61230e565b606091505b505050505050505050505050565b5f516020613f6c5f395f51905f523314806123455750335f9081526020819052604090205460ff165b6123615760405162461bcd60e51b815260040161035a90613ce1565b6001600160a01b03165f908152602081905260409020805460ff19166001179055565b5f516020613f6c5f395f51905f523314806123ad5750335f9081526020819052604090205460ff165b6123c95760405162461bcd60e51b815260040161035a90613ce1565b844311156123e95760405162461bcd60e51b815260040161035a90613d10565b5f5f5f600160ff1b84165f036125ec57856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612435573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124599190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa1580156124a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124c59190613ddb565b9150600160fe1b84161561253c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612515573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125399190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b87161161255e5785612560565b305b604080513060208201526001918c916401000276a491016040516020818303038152906040526040518663ffffffff1660e01b81526004016125a6959493929190613e77565b60408051808303815f875af11580156125c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e59190613eb1565b50506127e9565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612628573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061264c9190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015612694573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126b89190613ddb565b9150600160fe1b84161561272f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612708573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272c9190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116127515785612753565b305b604080513060208201525f918c9173fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b81526004016127a7959493929190613e77565b60408051808303815f875af11580156127c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127e69190613eb1565b50505b600160fe1b841615612899576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015612839573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061285d9190613ddb565b9050815f03612888576128768486610138600185613e33565b612881600187613e33565b9550612897565b61289784866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa1580156128e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129059190613ddb565b61290f9190613e33565b101561292d5760405162461bcd60e51b815260040161035a90613e4c565b604051419034905f81818185875af1925050503d805f81146108ff576040519150601f19603f3d011682016040523d82523d5f602084013e6108ff565b5f516020613f6c5f395f51905f523314806129935750335f9081526020819052604090205460ff165b6129af5760405162461bcd60e51b815260040161035a90613ce1565b6001603460a319360106156129f95760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60a45b813682101615612a40575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114612a38575f91505b6034016129fc565b508015612a4957005b612a568686868686610fe8565b505050505050565b5f516020613f6c5f395f51905f52331480612a875750335f9081526020819052604090205460ff165b612aa35760405162461bcd60e51b815260040161035a90613ce1565b85431115612ac35760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612b09573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2d9190613d55565b50915091505f600160ff1b86165f03612bc657612b5d8a846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bbf9190613da1565b9050612c48565b612be38a836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c459190613da1565b90505b60405163a9059cbb60e01b81528860048201528a60248201525f5f6044835f8e5af150506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa158015612cb3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cd79190613ddb565b90505f600160fe1b881615612d4f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612d28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d4c9190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611612d73578b612d75565b305b6040518463ffffffff1660e01b8152600401612d9393929190613df2565b5f604051808303815f87803b158015612daa575f5ffd5b505af1158015612dbc573d5f5f3e3d5ffd5b50505050600160fe1b881615612e77576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015612e10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e349190613ddb565b9050815f03612e6657612e4d848a610138600185613e33565b8915612e6157612e5e60018b613e33565b99505b612e75565b612e75848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa158015612ebf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ee39190613ddb565b612eed9190613e33565b1015612f0b5760405162461bcd60e51b815260040161035a90613e4c565b50505050505050505050505050565b5f516020613f6c5f395f51905f52331480612f435750335f9081526020819052604090205460ff165b612f5f5760405162461bcd60e51b815260040161035a90613ce1565b6001603460831936010615612fa95760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60845b813682101615612ff0575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114612fe8575f91505b603401612fac565b50801561300b575f5f5f5f34335ff161013d573d5f5f3e3d5ffd5b610fe185858585610395565b60605f516020613f6c5f395f51905f523314806130425750335f9081526020819052604090205460ff165b61305e5760405162461bcd60e51b815260040161035a90613ce1565b5f5f856001600160a01b031634868660405161307b929190613ed3565b5f6040518083038185875af1925050503d805f81146130b5576040519150601f19603f3d011682016040523d82523d5f602084013e6130ba565b606091505b50915091508161310c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73706172656e7443616c6c3a2063616c6c206661696c656400000000604482015260640161035a565b95945050505050565b5f516020613f6c5f395f51905f5233148061313e5750335f9081526020819052604090205460ff165b61315a5760405162461bcd60e51b815260040161035a90613ce1565b6001603460c319360106156131a45760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60c45b8136821016156131eb575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c1831146131e3575f91505b6034016131a7565b5080156131f457005b611bb7878787878787612a5e565b5f516020613f6c5f395f51905f5233148061322b5750335f9081526020819052604090205460ff165b6132475760405162461bcd60e51b815260040161035a90613ce1565b854311156132675760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156132ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132d19190613d55565b50915091505f600160ff1b86165f0361336a576133018a846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561333f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133639190613da1565b90506133ec565b6133878a836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133e99190613da1565b90505b60405163a9059cbb60e01b81528860048201528a60248201525f5f6044835f8e5af150506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa158015613457573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061347b9190613ddb565b90505f600160fe1b8816156134f3576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156134cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134f09190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611613517578b613519565b305b6040518463ffffffff1660e01b815260040161353793929190613df2565b5f604051808303815f87803b15801561354e575f5ffd5b505af1158015613560573d5f5f3e3d5ffd5b50505050600160fe1b88161561361b576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156135b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135d89190613ddb565b9050815f0361360a576135f1848a610138600185613e33565b89156136055761360260018b613e33565b99505b613619565b613619848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa158015613663573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136879190613ddb565b6136919190613e33565b10156136af5760405162461bcd60e51b815260040161035a90613e4c565b416001600160a01b031634604051610e93565b5f516020613f6c5f395f51905f523214806136eb5750325f9081526020819052604090205460ff165b6137075760405162461bcd60e51b815260040161035a90613ce1565b613746565b3d5f5f3e3d5ffd5b806137215761372161370c565b60015f5114601f3d11163d15178061374257633c9fd93960e21b5f5260045ffd5b5050565b60405160158101730dfe1681d21220a7ddca3f43a9059cbb23b872dd60601b8252602081600484335afa61377c5761377c61370c565b60208082016004808501335afa6137955761379561370c565b602060408201600460088501335afa6137b0576137b061370c565b5f5f5f8813600181146137cc57602084015192508791506137d4565b835192508891505b507fff1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000084526060832083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b03605585201692503383181561384a57635960139160e11b5f5260045ffd5b6084359250730dfe1681d21220a7ddca3f43a9059cbb23b872dd60601b8452308314600181146138a05783601486015233603486015281605486015261389b60205f6064601089015f885af1613714565b6138c1565b3360108601528160308601526138c160205f6044600c89015f885af1613714565b505050505050505050565b5f5f84116139285760405162461bcd60e51b8152602060048201526024808201527f556e697377617056323a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b606482015260840161035a565b5f8311801561393657505f82115b61398c5760405162461bcd60e51b815260206004820152602160248201527f556e697377617056323a20494e53554646494349454e545f4c495155494449546044820152605960f81b606482015260840161035a565b5f613999856103e5613ee2565b90505f6139a68483613ee2565b90505f826139b6876103e8613ee2565b6139c09190613ef9565b90506139cc8183613f0c565b979650505050505050565b5f6001600160ff1b03821115613a405760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161035a565b5090565b6001600160a01b0381168114613a58575f5ffd5b50565b5f5f5f60608486031215613a6d575f5ffd5b8335613a7881613a44565b92506020840135613a8881613a44565b929592945050506040919091013590565b5f5f5f5f60808587031215613aac575f5ffd5b843593506020850135613abe81613a44565b93969395505050506040820135916060013590565b5f5f5f5f5f60a08688031215613ae7575f5ffd5b85359450602086013593506040860135613b0081613a44565b94979396509394606081013594506080013592915050565b5f5f60408385031215613b29575f5ffd5b8235613b3481613a44565b946020939093013593505050565b5f60208284031215613b52575f5ffd5b8135613b5d81613a44565b9392505050565b5f5f5f5f5f5f60c08789031215613b79575f5ffd5b86359550602087013594506040870135613b9281613a44565b93506060870135613ba281613a44565b9598949750929560808101359460a0909101359350915050565b5f5f83601f840112613bcc575f5ffd5b50813567ffffffffffffffff811115613be3575f5ffd5b602083019150836020828501011115613bfa575f5ffd5b9250929050565b5f5f5f60408486031215613c13575f5ffd5b8335613c1e81613a44565b9250602084013567ffffffffffffffff811115613c39575f5ffd5b613c4586828701613bbc565b9497909650939450505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f613b5d6020830184613c52565b5f5f5f5f60608587031215613ca5575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115613cc9575f5ffd5b613cd587828801613bbc565b95989497509550505050565b60208082526015908201527410d85b1b195c881a5cc81b9bdd08185b1b1bddd959605a1b604082015260600190565b60208082526010908201526f189b1bd8dac8195e1c1a5c9e481a1a5d60821b604082015260600190565b80516001600160701b0381168114613d50575f5ffd5b919050565b5f5f5f60608486031215613d67575f5ffd5b613d7084613d3a565b9250613d7e60208501613d3a565b9150604084015163ffffffff81168114613d96575f5ffd5b809150509250925092565b5f60208284031215613db1575f5ffd5b8151613b5d81613a44565b5f60208284031215613dcc575f5ffd5b81518015158114613b5d575f5ffd5b5f60208284031215613deb575f5ffd5b5051919050565b92835260208301919091526001600160a01b031660408201526080606082018190525f9082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115613e4657613e46613e1f565b92915050565b60208082526011908201527014db1a5c1c1859d948195e18d959591959607a1b604082015260600190565b6001600160a01b0386811682528515156020830152604082018590528316606082015260a0608082018190525f906139cc90830184613c52565b5f5f60408385031215613ec2575f5ffd5b505080516020909101519092909150565b818382375f9101908152919050565b8082028115828204841417613e4657613e46613e1f565b80820180821115613e4657613e46613e1f565b5f82613f2657634e487b7160e01b5f52601260045260245ffd5b50049056fe1725c69472b0d35be4e865c78e45538ce31f51e1c4f309908f969ccb89593e157c96ed2c20512d7b7221b71f3608be92d18a5dadfc18b3b0dce63e83e07e73b800000000000000000000000054620b9a8a2c43aa8ed028450a7ce656a9c69feba2646970667358221220413fe934988e8c081892a8f94bdb4b7c9ba591e16ff3a52b1757a0fc3df4633464736f6c634300081b0033
[codex:1305563] 
[codex:1305563] thinking
[codex:1305563] **Analyzing bytecode for security patterns**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] # extract hex after 0x in runtime_bytecode.hex
[codex:1305563] import re
[codex:1305563] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code)
[codex:1305563] hexstr=m.group(1)[2:]
[codex:1305563] # disassemble minimal opcodes; track positions
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # opcode sizes
[codex:1305563] push_sizes={i: i-0x5f for i in range(0x60,0x80)}
[codex:1305563] # collect opcodes by name
[codex:1305563] names={
[codex:1305563] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT'
[codex:1305563] }
[codex:1305563] ops=[]
[codex:1305563] i=0
[codex:1305563] while i<len(code_bytes):
[codex:1305563]     op=code_bytes[i]
[codex:1305563]     ops.append((i,op))
[codex:1305563]     i+=1
[codex:1305563]     if op in push_sizes:
[codex:1305563]         i+=push_sizes[op]
[codex:1305563] # count target ops
[codex:1305563] counts={k:0 for k in names.values()}
[codex:1305563] positions={k:[] for k in names.values()}
[codex:1305563] for pos,op in ops:
[codex:1305563]     if op in names:
[codex:1305563]         nm=names[op]
[codex:1305563]         counts[nm]+=1
[codex:1305563]         positions[nm].append(pos)
[codex:1305563] print('counts',counts)
[codex:1305563] print('delegatecall positions',positions['DELEGATECALL'][:10])
[codex:1305563] print('selfdestruct positions',positions['SELFDESTRUCT'][:10])
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 36ms:
[codex:1305563] counts {'CREATE': 0, 'CALL': 30, 'CALLCODE': 0, 'RETURN': 1, 'DELEGATECALL': 0, 'CREATE2': 0, 'STATICCALL': 63, 'REVERT': 125, 'SELFDESTRUCT': 0}
[codex:1305563] delegatecall positions []
[codex:1305563] selfdestruct positions []
[codex:1305563] 
[codex:1305563] thinking
[codex:1305563] **Analyzing low-level call patterns and access controls**
[codex:1305563] 
[codex:1305563] I'm inspecting the bytecode for external calls, reentrancy risks, and checking if permission controls exist around critical functions like `transparentCall`; I'm also deciphering a distinctive opcode pattern that might load immutable constants, planning to disassemble it with Python to better understand function entry points and access checks.
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code).group(1)[2:]
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # disassemble function at offset 0x3115? But we can search for pattern at start of function (5f51 6020 613f6c 5f39 5f51 905f52 33 14 80)
[codex:1305563] pat=bytes.fromhex('5f516020613f6c5f395f51905f52331480')
[codex:1305563] idxs=[]
[codex:1305563] start=0
[codex:1305563] while True:
[codex:1305563]     i=code_bytes.find(pat,start)
[codex:1305563]     if i==-1: break
[codex:1305563]     idxs.append(i)
[codex:1305563]     start=i+1
[codex:1305563] print('pattern occurrences',len(idxs))
[codex:1305563] print('first few',idxs[:5])
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 23ms:
[codex:1305563] pattern occurrences 16
[codex:1305563] first few [790, 918, 2317, 3813, 4073]
[codex:1305563] 
[codex:1305563] thinking
[codex:1305563] **Analyzing access control patterns**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code).group(1)[2:]
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # simple disassembler
[codex:1305563] push_sizes={i: i-0x5f for i in range(0x60,0x80)}
[codex:1305563] # opcodes names minimal
[codex:1305563] names={
[codex:1305563] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1305563] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1305563] 0x20:'SHA3',
[codex:1305563] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1305563] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1305563] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',
[codex:1305563] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1305563] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1305563] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1305563] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1305563] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT'
[codex:1305563] }
[codex:1305563] 
[codex:1305563] # function to disassemble range
[codex:1305563] 
[codex:1305563] def disasm(start, end):
[codex:1305563]     i=start
[codex:1305563]     while i<end:
[codex:1305563]         op=code_bytes[i]
[codex:1305563]         name=names.get(op, f'OP{op:02x}')
[codex:1305563]         if 0x60 <= op <= 0x7f:
[codex:1305563]             n=op-0x5f
[codex:1305563]             data=code_bytes[i+1:i+1+n]
[codex:1305563]             print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1305563]             i+=1+n
[codex:1305563]         else:
[codex:1305563]             print(f'{i:04x}: {name}')
[codex:1305563]             i+=1
[codex:1305563] 
[codex:1305563] # disassemble around first occurrence at 0x316? find idx
[codex:1305563] pat=bytes.fromhex('5f516020613f6c5f395f51905f52331480')
[codex:1305563] idx=code_bytes.find(pat)
[codex:1305563] print('first occurrence',hex(idx))
[codex:1305563] # disasm 40 bytes around idx
[codex:1305563] start=idx
[codex:1305563] end=idx+50
[codex:1305563] print('--- disasm ---')
[codex:1305563] disasm(start,end)
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 24ms:
[codex:1305563] first occurrence 0x316
[codex:1305563] --- disasm ---
[codex:1305563] 0316: PUSH0
[codex:1305563] 0317: MLOAD
[codex:1305563] 0318: PUSH1 0x20
[codex:1305563] 031a: PUSH2 0x3f6c
[codex:1305563] 031d: PUSH0
[codex:1305563] 031e: CODECOPY
[codex:1305563] 031f: PUSH0
[codex:1305563] 0320: MLOAD
[codex:1305563] 0321: SWAP1
[codex:1305563] 0322: PUSH0
[codex:1305563] 0323: MSTORE
[codex:1305563] 0324: CALLER
[codex:1305563] 0325: EQ
[codex:1305563] 0326: DUP1
[codex:1305563] 0327: PUSH2 0x033e
[codex:1305563] 032a: JUMPI
[codex:1305563] 032b: POP
[codex:1305563] 032c: CALLER
[codex:1305563] 
[codex:1305563] thinking
[codex:1305563] **Analyzing access control and token transfer patterns**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code).group(1)[2:]
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # disassembler from earlier
[codex:1305563] push_sizes={i: i-0x5f for i in range(0x60,0x80)}
[codex:1305563] 
[codex:1305563] names={
[codex:1305563] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1305563] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1305563] 0x20:'SHA3',
[codex:1305563] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1305563] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1305563] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',
[codex:1305563] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1305563] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1305563] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1305563] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1305563] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT'
[codex:1305563] }
[codex:1305563] 
[codex:1305563] def disasm(start, end):
[codex:1305563]     i=start
[codex:1305563]     while i<end:
[codex:1305563]         op=code_bytes[i]
[codex:1305563]         name=names.get(op, f'OP{op:02x}')
[codex:1305563]         if 0x60 <= op <= 0x7f:
[codex:1305563]             n=op-0x5f
[codex:1305563]             data=code_bytes[i+1:i+1+n]
[codex:1305563]             print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1305563]             i+=1+n
[codex:1305563]         else:
[codex:1305563]             print(f'{i:04x}: {name}')
[codex:1305563]             i+=1
[codex:1305563] 
[codex:1305563] # disasm around 0x0340-0x0390
[codex:1305563] start=0x033e
[codex:1305563] end=0x0378
[codex:1305563] print('--- disasm ---')
[codex:1305563] disasm(start,end)
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 24ms:
[codex:1305563] --- disasm ---
[codex:1305563] 033e: JUMPDEST
[codex:1305563] 033f: PUSH2 0x0363
[codex:1305563] 0342: JUMPI
[codex:1305563] 0343: PUSH1 0x40
[codex:1305563] 0345: MLOAD
[codex:1305563] 0346: PUSH3 0x461bcd
[codex:1305563] 034a: PUSH1 0xe5
[codex:1305563] 034c: SHL
[codex:1305563] 034d: DUP2
[codex:1305563] 034e: MSTORE
[codex:1305563] 034f: PUSH1 0x04
[codex:1305563] 0351: ADD
[codex:1305563] 0352: PUSH2 0x035a
[codex:1305563] 0355: SWAP1
[codex:1305563] 0356: PUSH2 0x3ce1
[codex:1305563] 0359: JUMP
[codex:1305563] 035a: JUMPDEST
[codex:1305563] 035b: PUSH1 0x40
[codex:1305563] 035d: MLOAD
[codex:1305563] 
[codex:1305563] thinking
[codex:1305563] **Continuing exploration**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code).group(1)[2:]
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # disassembler from earlier
[codex:1305563] push_sizes={i: i-0x5f for i in range(0x60,0x80)}
[codex:1305563] 
[codex:1305563] names={
[codex:1305563] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1305563] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1305563] 0x20:'SHA3',
[codex:1305563] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1305563] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1305563] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',
[codex:1305563] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1305563] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1305563] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1305563] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1305563] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT'
[codex:1305563] }
[codex:1305563] 
[codex:1305563] 
[codex:1305563] def disasm(start, end):
[codex:1305563]     i=start
[codex:1305563]     while i<end:
[codex:1305563]         op=code_bytes[i]
[codex:1305563]         name=names.get(op, f'OP{op:02x}')
[codex:1305563]         if 0x60 <= op <= 0x7f:
[codex:1305563]             n=op-0x5f
[codex:1305563]             data=code_bytes[i+1:i+1+n]
[codex:1305563]             print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1305563]             i+=1+n
[codex:1305563]         else:
[codex:1305563]             print(f'{i:04x}: {name}')
[codex:1305563]             i+=1
[codex:1305563] 
[codex:1305563] # disasm around call for a9059cbb
[codex:1305563] start=0x0363
[codex:1305563] end=0x03a0
[codex:1305563] print('--- disasm ---')
[codex:1305563] disasm(start,end)
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 27ms:
[codex:1305563] --- disasm ---
[codex:1305563] 0363: JUMPDEST
[codex:1305563] 0364: PUSH1 0x40
[codex:1305563] 0366: MLOAD
[codex:1305563] 0367: PUSH4 0xa9059cbb
[codex:1305563] 036c: PUSH1 0xe0
[codex:1305563] 036e: SHL
[codex:1305563] 036f: DUP2
[codex:1305563] 0370: MSTORE
[codex:1305563] 0371: PUSH1 0x01
[codex:1305563] 0373: PUSH1 0x01
[codex:1305563] 0375: PUSH1 0xa0
[codex:1305563] 0377: SHL
[codex:1305563] 0378: SUB
[codex:1305563] 0379: DUP4
[codex:1305563] 037a: AND
[codex:1305563] 037b: PUSH1 0x04
[codex:1305563] 037d: DUP3
[codex:1305563] 037e: ADD
[codex:1305563] 037f: MSTORE
[codex:1305563] 
[codex:1305563] thinking
[codex:1305563] **Analyzing unchecked ERC20 transfer calls**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc 'nl -ba BYTECODE_BUNDLE.txt | head -n 5' in /tmp/codex-multi-c_j_6gc6 succeeded in 6ms:
[codex:1305563]      1	Runtime bytecode bundle for best-effort auditing.
[codex:1305563]      2	Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1305563]      3	
[codex:1305563]      4	FILE: runtime_bytecode.hex
[codex:1305563]      5	0x608060405260043610610113575f3560e01c8063613a7b481161009d578063c34684eb11610062578063c34684eb1461029d578063d7c41ef9146102b0578063ea60efed146102d0578063f0a2003e146102e3578063fa461e33146102f6575f5ffd5b8063613a7b48146101fb5780637b3341541461021a5780637f64784f14610258578063856c1a571461026b578063954e75b01461027e575f5ffd5b80630da84181116100e35780630da841811461017857806312065fe0146101975780631c8ef6c6146101b65780634782f779146101c95780634b74bc84146101e8575f5ffd5b806301e336671461011e57806305397ed41461013f57806306411cbb1461015257806308539c9414610165575f5ffd5b3661011a57005b5f5ffd5b348015610129575f5ffd5b5061013d610138366004613a5b565b610315565b005b61013d61014d366004613a99565b610395565b61013d610160366004613ad3565b61090c565b61013d610173366004613a99565b610ee4565b348015610183575f5ffd5b5061013d610192366004613ad3565b610fe8565b3480156101a2575f5ffd5b506040514781526020015b60405180910390f35b61013d6101c4366004613a99565b6115a2565b3480156101d4575f5ffd5b5061013d6101e3366004613b18565b611bc0565b61013d6101f6366004613ad3565b611ca9565b348015610206575f5ffd5b5061013d610215366004613b42565b61231c565b348015610225575f5ffd5b50610248610234366004613b42565b5f6020819052908152604090205460ff1681565b60405190151581526020016101ad565b61013d610266366004613ad3565b612384565b61013d610279366004613ad3565b61296a565b348015610289575f5ffd5b5061013d610298366004613b64565b612a5e565b61013d6102ab366004613a99565b612f1a565b6102c36102be366004613c01565b613017565b6040516101ad9190613c80565b61013d6102de366004613b64565b613115565b61013d6102f1366004613b64565b613202565b348015610301575f5ffd5b5061013d610310366004613c92565b6136c2565b5f516020613f6c5f395f51905f5233148061033e5750335f9081526020819052604090205460ff165b6103635760405162461bcd60e51b815260040161035a90613ce1565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b03831660048201528160248201525f5f6044835f885af15050505050565b5f516020613f6c5f395f51905f523314806103be5750335f9081526020819052604090205460ff165b6103da5760405162461bcd60e51b815260040161035a90613ce1565b834311156103fa5760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610440573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104649190613d55565b50915091505f600160ff1b86165f036104fd5761049434846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f69190613da1565b905061057f565b61051a34836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610558573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057c9190613da1565b90505b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29034905f81818185875af1925050503d805f81146105d0576040519150601f19603f3d011682016040523d82523d5f602084013e6105d5565b606091505b50506040516323b872dd60e01b81523060048201526001600160a01b038a16602482015234604482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291506323b872dd906064016020604051808303815f875af115801561063b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065f9190613dbc565b506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa1580156106a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106cb9190613ddb565b90505f600160fe1b881615610743576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561071c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107409190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611610767578b610769565b305b6040518463ffffffff1660e01b815260040161078793929190613df2565b5f604051808303815f87803b15801561079e575f5ffd5b505af11580156107b0573d5f5f3e3d5ffd5b50505050600160fe1b88161561086b576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610804573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108289190613ddb565b9050815f0361085a57610841848a610138600185613e33565b89156108555761085260018b613e33565b99505b610869565b610869848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa1580156108b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d79190613ddb565b6108e19190613e33565b10156108ff5760405162461bcd60e51b815260040161035a90613e4c565b5050505050505050505050565b5f516020613f6c5f395f51905f523314806109355750335f9081526020819052604090205460ff165b6109515760405162461bcd60e51b815260040161035a90613ce1565b834311156109715760405162461bcd60e51b815260040161035a90613d10565b5f61097c8634613e33565b90505f5f90505f5f90505f5f876001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156109c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e89190613d55565b50915091505f600160ff1b87165f03610a8157610a1886846001600160701b0316846001600160701b03166138cc565b9350886001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7a9190613da1565b9050610b03565b610a9e86836001600160701b0316856001600160701b03166138cc565b9450886001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b009190613da1565b90505b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087905f81818185875af1925050503d805f8114610b54576040519150601f19603f3d011682016040523d82523d5f602084013e610b59565b606091505b50506040516323b872dd60e01b81523060048201526001600160a01b038b1660248201526044810188905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291506323b872dd906064016020604051808303815f875af1158015610bc0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be49190613dbc565b506040516370a0823160e01b81526001600160a01b0388811660048301525f91908316906370a0823190602401602060405180830381865afa158015610c2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190613ddb565b90505f600160fe1b891615610cc8576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ca1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc59190613ddb565b90505b8a6001600160a01b031663022c0d9f88885f600160fe1b8e1611610cec578c610cee565b305b6040518463ffffffff1660e01b8152600401610d0c93929190613df2565b5f604051808303815f87803b158015610d23575f5ffd5b505af1158015610d35573d5f5f3e3d5ffd5b50505050600160fe1b891615610df0576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610d89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dad9190613ddb565b9050815f03610ddf57610dc6848b610138600185613e33565b8a15610dda57610dd760018c613e33565b9a505b610dee565b610dee848b6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038a811660048301528b9184918616906370a0823190602401602060405180830381865afa158015610e38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5c9190613ddb565b610e669190613e33565b1015610e845760405162461bcd60e51b815260040161035a90613e4c565b416001600160a01b03168d6040515b5f6040518083038185875af1925050503d805f8114610ecd576040519150601f19603f3d011682016040523d82523d5f602084013e610ed2565b606091505b50505050505050505050505050505050565b5f516020613f6c5f395f51905f52331480610f0d5750335f9081526020819052604090205460ff165b610f295760405162461bcd60e51b815260040161035a90613ce1565b6001603460831936010615610f735760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60845b813682101615610fba575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114610fb2575f91505b603401610f76565b508015610fd5575f5f5f5f34335ff161013d573d5f5f3e3d5ffd5b610fe1858585856115a2565b5050505050565b5f516020613f6c5f395f51905f523314806110115750335f9081526020819052604090205460ff165b61102d5760405162461bcd60e51b815260040161035a90613ce1565b8443111561104d5760405162461bcd60e51b815260040161035a90613d10565b5f5f5f600160ff1b84165f0361125057856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611099573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110bd9190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611105573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111299190613ddb565b9150600160fe1b8416156111a0576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611179573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119d9190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116111c257856111c4565b305b604080513060208201526001918c916401000276a491016040516020818303038152906040526040518663ffffffff1660e01b815260040161120a959493929190613e77565b60408051808303815f875af1158015611225573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112499190613eb1565b505061144d565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b09190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa1580156112f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131c9190613ddb565b9150600160fe1b841615611393576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561136c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113909190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116113b557856113b7565b305b604080513060208201525f918c9173fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b815260040161140b959493929190613e77565b60408051808303815f875af1158015611426573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144a9190613eb1565b50505b600160fe1b841615611504576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561149d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c19190613ddb565b9050815f036114f3576114da8486610138600185613e33565b85156114ee576114eb600187613e33565b95505b611502565b61150284866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa15801561154c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115709190613ddb565b61157a9190613e33565b10156115985760405162461bcd60e51b815260040161035a90613e4c565b5050505050505050565b5f516020613f6c5f395f51905f523314806115cb5750335f9081526020819052604090205460ff165b6115e75760405162461bcd60e51b815260040161035a90613ce1565b834311156116075760405162461bcd60e51b815260040161035a90613d10565b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29034905f81818185875af1925050503d805f8114611658576040519150601f19603f3d011682016040523d82523d5f602084013e61165d565b606091505b5050505f5f5f600160ff1b84165f0361186957856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d09190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611718573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173c9190613ddb565b9150600160fe1b8416156117b3576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561178c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b09190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116117d557856117d7565b305b60016117e2346139d7565b604080513060208201526401000276a491016040516020818303038152906040526040518663ffffffff1660e01b8152600401611823959493929190613e77565b60408051808303815f875af115801561183e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118629190613eb1565b5050611a6c565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c99190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611911573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119359190613ddb565b9150600160fe1b8416156119ac576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611985573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a99190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116119ce57856119d0565b305b5f6119da346139d7565b6040805130602082015273fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b8152600401611a2a959493929190613e77565b60408051808303815f875af1158015611a45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a699190613eb1565b50505b600160fe1b841615611b23576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015611abc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae09190613ddb565b9050815f03611b1257611af98486610138600185613e33565b8515611b0d57611b0a600187613e33565b95505b611b21565b611b2184866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa158015611b6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8f9190613ddb565b611b999190613e33565b1015611bb75760405162461bcd60e51b815260040161035a90613e4c565b50505050505050565b5f516020613f6c5f395f51905f52331480611be95750335f9081526020819052604090205460ff165b611c055760405162461bcd60e51b815260040161035a90613ce1565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611c4e576040519150601f19603f3d011682016040523d82523d5f602084013e611c53565b606091505b5050905080611ca45760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f2077697468647261772045746865720000000000000000604482015260640161035a565b505050565b5f516020613f6c5f395f51905f52331480611cd25750335f9081526020819052604090205460ff165b611cee5760405162461bcd60e51b815260040161035a90613ce1565b83431115611d0e5760405162461bcd60e51b815260040161035a90613d10565b5f611d198634613e33565b60405190915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29082905f81818185875af1925050503d805f8114611d6d576040519150601f19603f3d011682016040523d82523d5f602084013e611d72565b606091505b5050505f5f5f600160ff1b85165f03611f7e57866001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611de59190613da1565b6040516370a0823160e01b81526001600160a01b038781166004830152919450908416906370a0823190602401602060405180830381865afa158015611e2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e519190613ddb565b9150600160fe1b851615611ec8576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611ea1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ec59190613ddb565b90505b866001600160a01b031663128acb085f600160fe1b881611611eea5786611eec565b305b6001611ef7886139d7565b604080513060208201526401000276a491016040516020818303038152906040526040518663ffffffff1660e01b8152600401611f38959493929190613e77565b60408051808303815f875af1158015611f53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f779190613eb1565b5050612181565b866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fba573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fde9190613da1565b6040516370a0823160e01b81526001600160a01b038781166004830152919450908416906370a0823190602401602060405180830381865afa158015612026573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204a9190613ddb565b9150600160fe1b8516156120c1576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561209a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120be9190613ddb565b90505b866001600160a01b031663128acb085f600160fe1b8816116120e357866120e5565b305b5f6120ef886139d7565b6040805130602082015273fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b815260040161213f959493929190613e77565b60408051808303815f875af115801561215a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061217e9190613eb1565b50505b600160fe1b851615612238576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156121d1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f59190613ddb565b9050815f036122275761220e8487610138600185613e33565b86156122225761221f600188613e33565b96505b612236565b61223684876101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038681166004830152879184918616906370a0823190602401602060405180830381865afa158015612280573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a49190613ddb565b6122ae9190613e33565b10156122cc5760405162461bcd60e51b815260040161035a90613e4c565b60405141908a905f81818185875af1925050503d805f8114612309576040519150601f19603f3d011682016040523d82523d5f602084013e61230e565b606091505b505050505050505050505050565b5f516020613f6c5f395f51905f523314806123455750335f9081526020819052604090205460ff165b6123615760405162461bcd60e51b815260040161035a90613ce1565b6001600160a01b03165f908152602081905260409020805460ff19166001179055565b5f516020613f6c5f395f51905f523314806123ad5750335f9081526020819052604090205460ff165b6123c95760405162461bcd60e51b815260040161035a90613ce1565b844311156123e95760405162461bcd60e51b815260040161035a90613d10565b5f5f5f600160ff1b84165f036125ec57856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612435573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124599190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa1580156124a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124c59190613ddb565b9150600160fe1b84161561253c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612515573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125399190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b87161161255e5785612560565b305b604080513060208201526001918c916401000276a491016040516020818303038152906040526040518663ffffffff1660e01b81526004016125a6959493929190613e77565b60408051808303815f875af11580156125c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e59190613eb1565b50506127e9565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612628573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061264c9190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015612694573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126b89190613ddb565b9150600160fe1b84161561272f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612708573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272c9190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116127515785612753565b305b604080513060208201525f918c9173fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b81526004016127a7959493929190613e77565b60408051808303815f875af11580156127c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127e69190613eb1565b50505b600160fe1b841615612899576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015612839573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061285d9190613ddb565b9050815f03612888576128768486610138600185613e33565b612881600187613e33565b9550612897565b61289784866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa1580156128e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129059190613ddb565b61290f9190613e33565b101561292d5760405162461bcd60e51b815260040161035a90613e4c565b604051419034905f81818185875af1925050503d805f81146108ff576040519150601f19603f3d011682016040523d82523d5f602084013e6108ff565b5f516020613f6c5f395f51905f523314806129935750335f9081526020819052604090205460ff165b6129af5760405162461bcd60e51b815260040161035a90613ce1565b6001603460a319360106156129f95760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60a45b813682101615612a40575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114612a38575f91505b6034016129fc565b508015612a4957005b612a568686868686610fe8565b505050505050565b5f516020613f6c5f395f51905f52331480612a875750335f9081526020819052604090205460ff165b612aa35760405162461bcd60e51b815260040161035a90613ce1565b85431115612ac35760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612b09573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2d9190613d55565b50915091505f600160ff1b86165f03612bc657612b5d8a846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bbf9190613da1565b9050612c48565b612be38a836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c459190613da1565b90505b60405163a9059cbb60e01b81528860048201528a60248201525f5f6044835f8e5af150506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa158015612cb3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cd79190613ddb565b90505f600160fe1b881615612d4f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612d28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d4c9190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611612d73578b612d75565b305b6040518463ffffffff1660e01b8152600401612d9393929190613df2565b5f604051808303815f87803b158015612daa575f5ffd5b505af1158015612dbc573d5f5f3e3d5ffd5b50505050600160fe1b881615612e77576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015612e10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e349190613ddb565b9050815f03612e6657612e4d848a610138600185613e33565b8915612e6157612e5e60018b613e33565b99505b612e75565b612e75848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa158015612ebf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ee39190613ddb565b612eed9190613e33565b1015612f0b5760405162461bcd60e51b815260040161035a90613e4c565b50505050505050505050505050565b5f516020613f6c5f395f51905f52331480612f435750335f9081526020819052604090205460ff165b612f5f5760405162461bcd60e51b815260040161035a90613ce1565b6001603460831936010615612fa95760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60845b813682101615612ff0575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114612fe8575f91505b603401612fac565b50801561300b575f5f5f5f34335ff161013d573d5f5f3e3d5ffd5b610fe185858585610395565b60605f516020613f6c5f395f51905f523314806130425750335f9081526020819052604090205460ff165b61305e5760405162461bcd60e51b815260040161035a90613ce1565b5f5f856001600160a01b031634868660405161307b929190613ed3565b5f6040518083038185875af1925050503d805f81146130b5576040519150601f19603f3d011682016040523d82523d5f602084013e6130ba565b606091505b50915091508161310c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73706172656e7443616c6c3a2063616c6c206661696c656400000000604482015260640161035a565b95945050505050565b5f516020613f6c5f395f51905f5233148061313e5750335f9081526020819052604090205460ff165b61315a5760405162461bcd60e51b815260040161035a90613ce1565b6001603460c319360106156131a45760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60c45b8136821016156131eb575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c1831146131e3575f91505b6034016131a7565b5080156131f457005b611bb7878787878787612a5e565b5f516020613f6c5f395f51905f5233148061322b5750335f9081526020819052604090205460ff165b6132475760405162461bcd60e51b815260040161035a90613ce1565b854311156132675760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156132ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132d19190613d55565b50915091505f600160ff1b86165f0361336a576133018a846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561333f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133639190613da1565b90506133ec565b6133878a836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133e99190613da1565b90505b60405163a9059cbb60e01b81528860048201528a60248201525f5f6044835f8e5af150506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa158015613457573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061347b9190613ddb565b90505f600160fe1b8816156134f3576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156134cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134f09190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611613517578b613519565b305b6040518463ffffffff1660e01b815260040161353793929190613df2565b5f604051808303815f87803b15801561354e575f5ffd5b505af1158015613560573d5f5f3e3d5ffd5b50505050600160fe1b88161561361b576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156135b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135d89190613ddb565b9050815f0361360a576135f1848a610138600185613e33565b89156136055761360260018b613e33565b99505b613619565b613619848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa158015613663573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136879190613ddb565b6136919190613e33565b10156136af5760405162461bcd60e51b815260040161035a90613e4c565b416001600160a01b031634604051610e93565b5f516020613f6c5f395f51905f523214806136eb5750325f9081526020819052604090205460ff165b6137075760405162461bcd60e51b815260040161035a90613ce1565b613746565b3d5f5f3e3d5ffd5b806137215761372161370c565b60015f5114601f3d11163d15178061374257633c9fd93960e21b5f5260045ffd5b5050565b60405160158101730dfe1681d21220a7ddca3f43a9059cbb23b872dd60601b8252602081600484335afa61377c5761377c61370c565b60208082016004808501335afa6137955761379561370c565b602060408201600460088501335afa6137b0576137b061370c565b5f5f5f8813600181146137cc57602084015192508791506137d4565b835192508891505b507fff1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000084526060832083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b03605585201692503383181561384a57635960139160e11b5f5260045ffd5b6084359250730dfe1681d21220a7ddca3f43a9059cbb23b872dd60601b8452308314600181146138a05783601486015233603486015281605486015261389b60205f6064601089015f885af1613714565b6138c1565b3360108601528160308601526138c160205f6044600c89015f885af1613714565b505050505050505050565b5f5f84116139285760405162461bcd60e51b8152602060048201526024808201527f556e697377617056323a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b606482015260840161035a565b5f8311801561393657505f82115b61398c5760405162461bcd60e51b815260206004820152602160248201527f556e697377617056323a20494e53554646494349454e545f4c495155494449546044820152605960f81b606482015260840161035a565b5f613999856103e5613ee2565b90505f6139a68483613ee2565b90505f826139b6876103e8613ee2565b6139c09190613ef9565b90506139cc8183613f0c565b979650505050505050565b5f6001600160ff1b03821115613a405760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161035a565b5090565b6001600160a01b0381168114613a58575f5ffd5b50565b5f5f5f60608486031215613a6d575f5ffd5b8335613a7881613a44565b92506020840135613a8881613a44565b929592945050506040919091013590565b5f5f5f5f60808587031215613aac575f5ffd5b843593506020850135613abe81613a44565b93969395505050506040820135916060013590565b5f5f5f5f5f60a08688031215613ae7575f5ffd5b85359450602086013593506040860135613b0081613a44565b94979396509394606081013594506080013592915050565b5f5f60408385031215613b29575f5ffd5b8235613b3481613a44565b946020939093013593505050565b5f60208284031215613b52575f5ffd5b8135613b5d81613a44565b9392505050565b5f5f5f5f5f5f60c08789031215613b79575f5ffd5b86359550602087013594506040870135613b9281613a44565b93506060870135613ba281613a44565b9598949750929560808101359460a0909101359350915050565b5f5f83601f840112613bcc575f5ffd5b50813567ffffffffffffffff811115613be3575f5ffd5b602083019150836020828501011115613bfa575f5ffd5b9250929050565b5f5f5f60408486031215613c13575f5ffd5b8335613c1e81613a44565b9250602084013567ffffffffffffffff811115613c39575f5ffd5b613c4586828701613bbc565b9497909650939450505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f613b5d6020830184613c52565b5f5f5f5f60608587031215613ca5575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115613cc9575f5ffd5b613cd587828801613bbc565b95989497509550505050565b60208082526015908201527410d85b1b195c881a5cc81b9bdd08185b1b1bddd959605a1b604082015260600190565b60208082526010908201526f189b1bd8dac8195e1c1a5c9e481a1a5d60821b604082015260600190565b80516001600160701b0381168114613d50575f5ffd5b919050565b5f5f5f60608486031215613d67575f5ffd5b613d7084613d3a565b9250613d7e60208501613d3a565b9150604084015163ffffffff81168114613d96575f5ffd5b809150509250925092565b5f60208284031215613db1575f5ffd5b8151613b5d81613a44565b5f60208284031215613dcc575f5ffd5b81518015158114613b5d575f5ffd5b5f60208284031215613deb575f5ffd5b5051919050565b92835260208301919091526001600160a01b031660408201526080606082018190525f9082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115613e4657613e46613e1f565b92915050565b60208082526011908201527014db1a5c1c1859d948195e18d959591959607a1b604082015260600190565b6001600160a01b0386811682528515156020830152604082018590528316606082015260a0608082018190525f906139cc90830184613c52565b5f5f60408385031215613ec2575f5ffd5b505080516020909101519092909150565b818382375f9101908152919050565b8082028115828204841417613e4657613e46613e1f565b80820180821115613e4657613e46613e1f565b5f82613f2657634e487b7160e01b5f52601260045260245ffd5b50049056fe1725c69472b0d35be4e865c78e45538ce31f51e1c4f309908f969ccb89593e157c96ed2c20512d7b7221b71f3608be92d18a5dadfc18b3b0dce63e83e07e73b800000000000000000000000054620b9a8a2c43aa8ed028450a7ce656a9c69feba2646970667358221220413fe934988e8c081892a8f94bdb4b7c9ba591e16ff3a52b1757a0fc3df4633464736f6c634300081b0033
[codex:1305563] 
[codex:1305563] thinking
[codex:1305563] **Analyzing unchecked ERC20 return values**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-c_j_6gc6 succeeded in 5ms:
[codex:1305563] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1305563] 
[codex:1305563] thinking
[codex:1305563] **Preparing issue summary and evidence**
[codex:1305563] codex
[codex:1305563] {"no_findings":false,"summary":"Found a low-severity pattern where ERC20 transfer calls ignore the CALL result/return data, which can allow silent transfer failures with non‑standard tokens.","findings":[{"severity":"low","category":"other","title":"Unchecked ERC20 transfer return value (silent failures possible)","exploit_scenario":"A malicious or non‑standard ERC20 can return false or revert on `transfer` while the low‑level CALL result is ignored. The function can continue as if the transfer succeeded, leading to incorrect assumptions about token movement or silent failures in downstream logic.","recommendation":"Use a safe ERC20 wrapper that requires `success` and verifies return data (`returndata.length == 0 || abi.decode(returndata, bool)`), and revert on failure for all token transfers.","evidence":"Line 5 contains a low‑level CALL to selector `a9059cbb` followed immediately by POPs with no `ISZERO`/returndata checks, e.g., `...63a9059cbb...5af1 50505050...` (CALL result is discarded).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
[codex:1305563] tokens used
[codex:1305563] 94,551
[codex:1305563] {"no_findings":false,"summary":"Found a low-severity pattern where ERC20 transfer calls ignore the CALL result/return data, which can allow silent transfer failures with non‑standard tokens.","findings":[{"severity":"low","category":"other","title":"Unchecked ERC20 transfer return value (silent failures possible)","exploit_scenario":"A malicious or non‑standard ERC20 can return false or revert on `transfer` while the low‑level CALL result is ignored. The function can continue as if the transfer succeeded, leading to incorrect assumptions about token movement or silent failures in downstream logic.","recommendation":"Use a safe ERC20 wrapper that requires `success` and verifies return data (`returndata.length == 0 || abi.decode(returndata, bool)`), and revert on failure for all token transfers.","evidence":"Line 5 contains a low‑level CALL to selector `a9059cbb` followed immediately by POPs with no `ISZERO`/returndata checks, e.g., `...63a9059cbb...5af1 50505050...` (CALL result is discarded).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T19:33:57.143708+00:00",
        "returncode": 0
    },
    "summary": "Found a low-severity pattern where ERC20 transfer calls ignore the CALL result/return data, which can allow silent transfer failures with non\u2011standard tokens.",
    "raw_final": {
        "summary": "Found a low-severity pattern where ERC20 transfer calls ignore the CALL result/return data, which can allow silent transfer failures with non\u2011standard tokens.",
        "findings": [
            {
                "title": "Unchecked ERC20 transfer return value (silent failures possible)",
                "category": "other",
                "evidence": "Line 5 contains a low\u2011level CALL to selector `a9059cbb` followed immediately by POPs with no `ISZERO`/returndata checks, e.g., `...63a9059cbb...5af1 50505050...` (CALL result is discarded).",
                "severity": "low",
                "locations": [
                    "BYTECODE_BUNDLE.txt:5"
                ],
                "recommendation": "Use a safe ERC20 wrapper that requires `success` and verifies return data (`returndata.length == 0 || abi.decode(returndata, bool)`), and revert on failure for all token transfers.",
                "exploit_scenario": "A malicious or non\u2011standard ERC20 can return false or revert on `transfer` while the low\u2011level CALL result is ignored. The function can continue as if the transfer succeeded, leading to incorrect assumptions about token movement or silent failures in downstream logic."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
93
EXT*/BALANCE
8
Total opcodes
11380
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0113
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x613a7b48
00000018: GT
00000019: PUSH2 0x009d
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0xc34684eb
00000023: GT
00000024: PUSH2 0x0062
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0xc34684eb
0000002e: EQ
0000002f: PUSH2 0x029d
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0xd7c41ef9
00000039: EQ
0000003a: PUSH2 0x02b0
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0xea60efed
00000044: EQ
00000045: PUSH2 0x02d0
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xf0a2003e
0000004f: EQ
00000050: PUSH2 0x02e3
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0xfa461e33
0000005a: EQ
0000005b: PUSH2 0x02f6
0000005e: JUMPI
0000005f: PUSH0
00000060: PUSH0
00000061: REVERT
00000062: JUMPDEST
00000063: DUP1
00000064: PUSH4 0x613a7b48
00000069: EQ
0000006a: PUSH2 0x01fb
0000006d: JUMPI
0000006e: DUP1
0000006f: PUSH4 0x7b334154
00000074: EQ
00000075: PUSH2 0x021a
00000078: JUMPI
00000079: DUP1
0000007a: PUSH4 0x7f64784f
0000007f: EQ
00000080: PUSH2 0x0258
00000083: JUMPI
00000084: DUP1
00000085: PUSH4 0x856c1a57
0000008a: EQ
0000008b: PUSH2 0x026b
0000008e: JUMPI
0000008f: DUP1
00000090: PUSH4 0x954e75b0
00000095: EQ
00000096: PUSH2 0x027e
00000099: JUMPI
0000009a: PUSH0
0000009b: PUSH0
0000009c: REVERT
0000009d: JUMPDEST
0000009e: DUP1
0000009f: PUSH4 0x0da84181
000000a4: GT
000000a5: PUSH2 0x00e3
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0x0da84181
000000af: EQ
000000b0: PUSH2 0x0178
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0x12065fe0
000000ba: EQ
000000bb: PUSH2 0x0197
000000be: JUMPI
000000bf: DUP1
000000c0: PUSH4 0x1c8ef6c6
000000c5: EQ
000000c6: PUSH2 0x01b6
000000c9: JUMPI
000000ca: DUP1
000000cb: PUSH4 0x4782f779
000000d0: EQ
000000d1: PUSH2 0x01c9
000000d4: JUMPI
000000d5: DUP1
000000d6: PUSH4 0x4b74bc84
000000db: EQ
000000dc: PUSH2 0x01e8
000000df: JUMPI
000000e0: PUSH0
000000e1: PUSH0
000000e2: REVERT
000000e3: JUMPDEST
000000e4: DUP1
000000e5: PUSH4 0x01e33667
000000ea: EQ
000000eb: PUSH2 0x011e
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0x05397ed4
000000f5: EQ
000000f6: PUSH2 0x013f
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0x06411cbb
00000100: EQ
00000101: PUSH2 0x0152
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0x08539c94
0000010b: EQ
0000010c: PUSH2 0x0165
0000010f: JUMPI
00000110: PUSH0
00000111: PUSH0
00000112: REVERT
00000113: JUMPDEST
00000114: CALLDATASIZE
00000115: PUSH2 0x011a
00000118: JUMPI
00000119: STOP
0000011a: JUMPDEST
0000011b: PUSH0
0000011c: PUSH0
0000011d: REVERT
0000011e: JUMPDEST
0000011f: CALLVALUE
00000120: DUP1
00000121: ISZERO
00000122: PUSH2 0x0129
00000125: JUMPI
00000126: PUSH0
00000127: PUSH0
00000128: REVERT
00000129: JUMPDEST
0000012a: POP
0000012b: PUSH2 0x013d
0000012e: PUSH2 0x0138
00000131: CALLDATASIZE
00000132: PUSH1 0x04
00000134: PUSH2 0x3a5b
00000137: JUMP
00000138: JUMPDEST
00000139: PUSH2 0x0315
0000013c: JUMP
0000013d: JUMPDEST
0000013e: STOP
0000013f: JUMPDEST
00000140: PUSH2 0x013d
00000143: PUSH2 0x014d
00000146: CALLDATASIZE
00000147: PUSH1 0x04
00000149: PUSH2 0x3a99
0000014c: JUMP
0000014d: JUMPDEST
0000014e: PUSH2 0x0395
00000151: JUMP
00000152: JUMPDEST
00000153: PUSH2 0x013d
00000156: PUSH2 0x0160
00000159: CALLDATASIZE
0000015a: PUSH1 0x04
0000015c: PUSH2 0x3ad3
0000015f: JUMP
00000160: JUMPDEST
00000161: PUSH2 0x090c
00000164: JUMP
00000165: JUMPDEST
00000166: PUSH2 0x013d
00000169: PUSH2 0x0173
0000016c: CALLDATASIZE
0000016d: PUSH1 0x04
0000016f: PUSH2 0x3a99
00000172: JUMP
00000173: JUMPDEST
00000174: PUSH2 0x0ee4
00000177: JUMP
00000178: JUMPDEST
00000179: CALLVALUE
0000017a: DUP1
0000017b: ISZERO
0000017c: PUSH2 0x0183
0000017f: JUMPI
00000180: PUSH0
00000181: PUSH0
00000182: REVERT
00000183: JUMPDEST
00000184: POP
00000185: PUSH2 0x013d
00000188: PUSH2 0x0192
0000018b: CALLDATASIZE
0000018c: PUSH1 0x04
0000018e: PUSH2 0x3ad3
00000191: JUMP
00000192: JUMPDEST
00000193: PUSH2 0x0fe8
00000196: JUMP
00000197: JUMPDEST
00000198: CALLVALUE
00000199: DUP1
0000019a: ISZERO
0000019b: PUSH2 0x01a2
0000019e: JUMPI
0000019f: PUSH0
000001a0: PUSH0
000001a1: REVERT
000001a2: JUMPDEST
000001a3: POP
000001a4: PUSH1 0x40
000001a6: MLOAD
000001a7: SELFBALANCE
000001a8: DUP2
000001a9: MSTORE
000001aa: PUSH1 0x20
000001ac: ADD
000001ad: JUMPDEST
000001ae: PUSH1 0x40
000001b0: MLOAD
000001b1: DUP1
000001b2: SWAP2
000001b3: SUB
000001b4: SWAP1
000001b5: RETURN
000001b6: JUMPDEST
000001b7: PUSH2 0x013d
000001ba: PUSH2 0x01c4
000001bd: CALLDATASIZE
000001be: PUSH1 0x04
000001c0: PUSH2 0x3a99
000001c3: JUMP
000001c4: JUMPDEST
000001c5: PUSH2 0x15a2
000001c8: JUMP
000001c9: JUMPDEST
000001ca: CALLVALUE
000001cb: DUP1
000001cc: ISZERO
000001cd: PUSH2 0x01d4
000001d0: JUMPI
000001d1: PUSH0
000001d2: PUSH0
000001d3: REVERT
000001d4: JUMPDEST
000001d5: POP
000001d6: PUSH2 0x013d
000001d9: PUSH2 0x01e3
000001dc: CALLDATASIZE
000001dd: PUSH1 0x04
000001df: PUSH2 0x3b18
000001e2: JUMP
000001e3: JUMPDEST
000001e4: PUSH2 0x1bc0
000001e7: JUMP
000001e8: JUMPDEST
000001e9: PUSH2 0x013d
000001ec: PUSH2 0x01f6
000001ef: CALLDATASIZE
000001f0: PUSH1 0x04
000001f2: PUSH2 0x3ad3
000001f5: JUMP
000001f6: JUMPDEST
000001f7: PUSH2 0x1ca9
000001fa: JUMP
000001fb: JUMPDEST
000001fc: CALLVALUE
000001fd: DUP1
000001fe: ISZERO
000001ff: PUSH2 0x0206
00000202: JUMPI
00000203: PUSH0
00000204: PUSH0
00000205: REVERT
00000206: JUMPDEST
00000207: POP
00000208: PUSH2 0x013d
0000020b: PUSH2 0x0215
0000020e: CALLDATASIZE
0000020f: PUSH1 0x04
00000211: PUSH2 0x3b42
00000214: JUMP
00000215: JUMPDEST
00000216: PUSH2 0x231c
00000219: JUMP
0000021a: JUMPDEST
0000021b: CALLVALUE
0000021c: DUP1
0000021d: ISZERO
0000021e: PUSH2 0x0225
00000221: JUMPI
00000222: PUSH0
00000223: PUSH0
00000224: REVERT
00000225: JUMPDEST
00000226: POP
00000227: PUSH2 0x0248
0000022a: PUSH2 0x0234
0000022d: CALLDATASIZE
0000022e: PUSH1 0x04
00000230: PUSH2 0x3b42
00000233: JUMP
00000234: JUMPDEST
00000235: PUSH0
00000236: PUSH1 0x20
00000238: DUP2
00000239: SWAP1
0000023a: MSTORE
0000023b: SWAP1
0000023c: DUP2
0000023d: MSTORE
0000023e: PUSH1 0x40
00000240: SWAP1
00000241: KECCAK256
00000242: SLOAD
00000243: PUSH1 0xff
00000245: AND
00000246: DUP2
00000247: JUMP
00000248: JUMPDEST
00000249: PUSH1 0x40
0000024b: MLOAD
0000024c: SWAP1
0000024d: ISZERO
0000024e: ISZERO
0000024f: DUP2
00000250: MSTORE
00000251: PUSH1 0x20
00000253: ADD
00000254: PUSH2 0x01ad
00000257: JUMP
00000258: JUMPDEST
00000259: PUSH2 0x013d
0000025c: PUSH2 0x0266
0000025f: CALLDATASIZE
00000260: PUSH1 0x04
00000262: PUSH2 0x3ad3
00000265: JUMP
00000266: JUMPDEST
00000267: PUSH2 0x2384
0000026a: JUMP
0000026b: JUMPDEST
0000026c: PUSH2 0x013d
0000026f: PUSH2 0x0279
00000272: CALLDATASIZE
00000273: PUSH1 0x04
00000275: PUSH2 0x3ad3
00000278: JUMP
00000279: JUMPDEST
0000027a: PUSH2 0x296a
0000027d: JUMP
0000027e: JUMPDEST
0000027f: CALLVALUE
00000280: DUP1
00000281: ISZERO
00000282: PUSH2 0x0289
00000285: JUMPI
00000286: PUSH0
00000287: PUSH0
00000288: REVERT
00000289: JUMPDEST
0000028a: POP
0000028b: PUSH2 0x013d
0000028e: PUSH2 0x0298
00000291: CALLDATASIZE
00000292: PUSH1 0x04
00000294: PUSH2 0x3b64
00000297: JUMP
00000298: JUMPDEST
00000299: PUSH2 0x2a5e
0000029c: JUMP
0000029d: JUMPDEST
0000029e: PUSH2 0x013d
000002a1: PUSH2 0x02ab
000002a4: CALLDATASIZE
000002a5: PUSH1 0x04
000002a7: PUSH2 0x3a99
000002aa: JUMP
000002ab: JUMPDEST
000002ac: PUSH2 0x2f1a
000002af: JUMP
000002b0: JUMPDEST
000002b1: PUSH2 0x02c3
000002b4: PUSH2 0x02be
000002b7: CALLDATASIZE
000002b8: PUSH1 0x04
000002ba: PUSH2 0x3c01
000002bd: JUMP
000002be: JUMPDEST
000002bf: PUSH2 0x3017
000002c2: JUMP
000002c3: JUMPDEST
000002c4: PUSH1 0x40
000002c6: MLOAD
000002c7: PUSH2 0x01ad
000002ca: SWAP2
000002cb: SWAP1
000002cc: PUSH2 0x3c80
000002cf: JUMP
000002d0: JUMPDEST
000002d1: PUSH2 0x013d
000002d4: PUSH2 0x02de
000002d7: CALLDATASIZE
000002d8: PUSH1 0x04
000002da: PUSH2 0x3b64
000002dd: JUMP
000002de: JUMPDEST
000002df: PUSH2 0x3115
000002e2: JUMP
000002e3: JUMPDEST
000002e4: PUSH2 0x013d
000002e7: PUSH2 0x02f1
000002ea: CALLDATASIZE
000002eb: PUSH1 0x04
000002ed: PUSH2 0x3b64
000002f0: JUMP
000002f1: JUMPDEST
000002f2: PUSH2 0x3202
000002f5: JUMP
000002f6: JUMPDEST
000002f7: CALLVALUE
000002f8: DUP1
000002f9: ISZERO
000002fa: PUSH2 0x0301
000002fd: JUMPI
000002fe: PUSH0
000002ff: PUSH0
00000300: REVERT
00000301: JUMPDEST
00000302: POP
00000303: PUSH2 0x013d
00000306: PUSH2 0x0310
00000309: CALLDATASIZE
0000030a: PUSH1 0x04
0000030c: PUSH2 0x3c92
0000030f: JUMP
00000310: JUMPDEST
00000311: PUSH2 0x36c2
00000314: JUMP
00000315: JUMPDEST
00000316: PUSH0
00000317: MLOAD
00000318: PUSH1 0x20
0000031a: PUSH2 0x3f6c
0000031d: PUSH0
0000031e: CODECOPY
0000031f: PUSH0
00000320: MLOAD
00000321: SWAP1
00000322: PUSH0
00000323: MSTORE
00000324: CALLER
00000325: EQ
00000326: DUP1
00000327: PUSH2 0x033e
0000032a: JUMPI
0000032b: POP
0000032c: CALLER
0000032d: PUSH0
0000032e: SWAP1
0000032f: DUP2
00000330: MSTORE
00000331: PUSH1 0x20
00000333: DUP2
00000334: SWAP1
00000335: MSTORE
00000336: PUSH1 0x40
00000338: SWAP1
00000339: KECCAK256
0000033a: SLOAD
0000033b: PUSH1 0xff
0000033d: AND
0000033e: JUMPDEST
0000033f: PUSH2 0x0363
00000342: JUMPI
00000343: PUSH1 0x40
00000345: MLOAD
00000346: PUSH3 0x461bcd
0000034a: PUSH1 0xe5
0000034c: SHL
0000034d: DUP2
0000034e: MSTORE
0000034f: PUSH1 0x04
00000351: ADD
00000352: PUSH2 0x035a
00000355: SWAP1
00000356: PUSH2 0x3ce1
00000359: JUMP
0000035a: JUMPDEST
0000035b: PUSH1 0x40
0000035d: MLOAD
0000035e: DUP1
0000035f: SWAP2
00000360: SUB
00000361: SWAP1
00000362: REVERT
00000363: JUMPDEST
00000364: PUSH1 0x40
00000366: MLOAD
00000367: PUSH4 0xa9059cbb
0000036c: PUSH1 0xe0
0000036e: SHL
0000036f: DUP2
00000370: MSTORE
00000371: PUSH1 0x01
00000373: PUSH1 0x01
00000375: PUSH1 0xa0
00000377: SHL
00000378: SUB
00000379: DUP4
0000037a: AND
0000037b: PUSH1 0x04
0000037d: DUP3
0000037e: ADD
0000037f: MSTORE
00000380: DUP2
00000381: PUSH1 0x24
00000383: DUP3
00000384: ADD
00000385: MSTORE
00000386: PUSH0
00000387: PUSH0
00000388: PUSH1 0x44
0000038a: DUP4
0000038b: PUSH0
0000038c: DUP9
0000038d: GAS
0000038e: CALL
0000038f: POP
00000390: POP
00000391: POP
00000392: POP
00000393: POP
00000394: JUMP
00000395: JUMPDEST
00000396: PUSH0
00000397: MLOAD
00000398: PUSH1 0x20
0000039a: PUSH2 0x3f6c
0000039d: PUSH0
0000039e: CODECOPY
0000039f: PUSH0
000003a0: MLOAD
000003a1: SWAP1
000003a2: PUSH0
000003a3: MSTORE
000003a4: CALLER
000003a5: EQ
000003a6: DUP1
000003a7: PUSH2 0x03be
000003aa: JUMPI
000003ab: POP
000003ac: CALLER
000003ad: PUSH0
000003ae: SWAP1
000003af: DUP2
000003b0: MSTORE
000003b1: PUSH1 0x20
000003b3: DUP2
000003b4: SWAP1
000003b5: MSTORE
000003b6: PUSH1 0x40
000003b8: SWAP1
000003b9: KECCAK256
000003ba: SLOAD
000003bb: PUSH1 0xff
000003bd: AND
000003be: JUMPDEST
000003bf: PUSH2 0x03da
000003c2: JUMPI
000003c3: PUSH1 0x40
000003c5: MLOAD
000003c6: PUSH3 0x461bcd
000003ca: PUSH1 0xe5
000003cc: SHL
000003cd: DUP2
000003ce: MSTORE
000003cf: PUSH1 0x04
000003d1: ADD
000003d2: PUSH2 0x035a
000003d5: SWAP1
000003d6: PUSH2 0x3ce1
000003d9: JUMP
000003da: JUMPDEST
000003db: DUP4
000003dc: NUMBER
000003dd: GT
000003de: ISZERO
000003df: PUSH2 0x03fa
000003e2: JUMPI
000003e3: PUSH1 0x40
000003e5: MLOAD
000003e6: PUSH3 0x461bcd
000003ea: PUSH1 0xe5
000003ec: SHL
000003ed: DUP2
000003ee: MSTORE
000003ef: PUSH1 0x04
000003f1: ADD
000003f2: PUSH2 0x035a
000003f5: SWAP1
000003f6: PUSH2 0x3d10
000003f9: JUMP
000003fa: JUMPDEST
000003fb: PUSH0
000003fc: PUSH0
000003fd: SWAP1
000003fe: POP
000003ff: PUSH0
00000400: PUSH0
00000401: SWAP1
00000402: POP
00000403: PUSH0
00000404: PUSH0
00000405: DUP7
00000406: PUSH1 0x01
00000408: PUSH1 0x01
0000040a: PUSH1 0xa0
0000040c: SHL
0000040d: SUB
0000040e: AND
0000040f: PUSH4 0x0902f1ac
00000414: PUSH1 0x40
00000416: MLOAD
00000417: DUP2
00000418: PUSH4 0xffffffff
0000041d: AND
0000041e: PUSH1 0xe0
00000420: SHL
00000421: DUP2
00000422: MSTORE
00000423: PUSH1 0x04
00000425: ADD
00000426: PUSH1 0x60
00000428: PUSH1 0x40
0000042a: MLOAD
0000042b: DUP1
0000042c: DUP4
0000042d: SUB
0000042e: DUP2
0000042f: DUP7
00000430: GAS
00000431: STATICCALL
00000432: ISZERO
00000433: DUP1
00000434: ISZERO
00000435: PUSH2 0x0440
00000438: JUMPI
00000439: RETURNDATASIZE
0000043a: PUSH0
0000043b: PUSH0
0000043c: RETURNDATACOPY
0000043d: RETURNDATASIZE
0000043e: PUSH0
0000043f: REVERT
00000440: JUMPDEST
00000441: POP
00000442: POP
00000443: POP
00000444: POP
00000445: PUSH1 0x40
00000447: MLOAD
00000448: RETURNDATASIZE
00000449: PUSH1 0x1f
0000044b: NOT
0000044c: PUSH1 0x1f
0000044e: DUP3
0000044f: ADD
00000450: AND
00000451: DUP3
00000452: ADD
00000453: DUP1
00000454: PUSH1 0x40
00000456: MSTORE
00000457: POP
00000458: DUP2
00000459: ADD
0000045a: SWAP1
0000045b: PUSH2 0x0464
0000045e: SWAP2
0000045f: SWAP1
00000460: PUSH2 0x3d55
00000463: JUMP
00000464: JUMPDEST
00000465: POP
00000466: SWAP2
00000467: POP
00000468: SWAP2
00000469: POP
0000046a: PUSH0
0000046b: PUSH1 0x01
0000046d: PUSH1 0xff
0000046f: SHL
00000470: DUP7
00000471: AND
00000472: PUSH0
00000473: SUB
00000474: PUSH2 0x04fd
00000477: JUMPI
00000478: PUSH2 0x0494
0000047b: CALLVALUE
0000047c: DUP5
0000047d: PUSH1 0x01
0000047f: PUSH1 0x01
00000481: PUSH1 0x70
00000483: SHL
00000484: SUB
00000485: AND
00000486: DUP5
00000487: PUSH1 0x01
00000489: PUSH1 0x01
0000048b: PUSH1 0x70
0000048d: SHL
0000048e: SUB
0000048f: AND
00000490: PUSH2 0x38cc
00000493: JUMP
00000494: JUMPDEST
00000495: SWAP4
00000496: POP
00000497: DUP8
00000498: PUSH1 0x01
0000049a: PUSH1 0x01
0000049c: PUSH1 0xa0
0000049e: SHL
0000049f: SUB
000004a0: AND
000004a1: PUSH4 0xd21220a7
000004a6: PUSH1 0x40
000004a8: MLOAD
000004a9: DUP2
000004aa: PUSH4 0xffffffff
000004af: AND
000004b0: PUSH1 0xe0
000004b2: SHL
000004b3: DUP2
000004b4: MSTORE
000004b5: PUSH1 0x04
000004b7: ADD
000004b8: PUSH1 0x20
000004ba: PUSH1 0x40
000004bc: MLOAD
000004bd: DUP1
000004be: DUP4
000004bf: SUB
000004c0: DUP2
000004c1: DUP7
000004c2: GAS
000004c3: STATICCALL
000004c4: ISZERO
000004c5: DUP1
000004c6: ISZERO
000004c7: PUSH2 0x04d2
000004ca: JUMPI
000004cb: RETURNDATASIZE
000004cc: PUSH0
000004cd: PUSH0
000004ce: RETURNDATACOPY
000004cf: RETURNDATASIZE
000004d0: PUSH0
000004d1: REVERT
000004d2: JUMPDEST
000004d3: POP
000004d4: POP
000004d5: POP
000004d6: POP
000004d7: PUSH1 0x40
000004d9: MLOAD
000004da: RETURNDATASIZE
000004db: PUSH1 0x1f
000004dd: NOT
000004de: PUSH1 0x1f
000004e0: DUP3
000004e1: ADD
000004e2: AND
000004e3: DUP3
000004e4: ADD
000004e5: DUP1
000004e6: PUSH1 0x40
000004e8: MSTORE
000004e9: POP
000004ea: DUP2
000004eb: ADD
000004ec: SWAP1
000004ed: PUSH2 0x04f6
000004f0: SWAP2
000004f1: SWAP1
000004f2: PUSH2 0x3da1
000004f5: JUMP
000004f6: JUMPDEST
000004f7: SWAP1
000004f8: POP
000004f9: PUSH2 0x057f
000004fc: JUMP
000004fd: JUMPDEST
000004fe: PUSH2 0x051a
00000501: CALLVALUE
00000502: DUP4
00000503: PUSH1 0x01
00000505: PUSH1 0x01
00000507: PUSH1 0x70
00000509: SHL
0000050a: SUB
0000050b: AND
0000050c: DUP6
0000050d: PUSH1 0x01
0000050f: PUSH1 0x01
00000511: PUSH1 0x70
00000513: SHL
00000514: SUB
00000515: AND
00000516: PUSH2 0x38cc
00000519: JUMP
0000051a: JUMPDEST
0000051b: SWAP5
0000051c: POP
0000051d: DUP8
0000051e: PUSH1 0x01
00000520: PUSH1 0x01
00000522: PUSH1 0xa0
00000524: SHL
00000525: SUB
00000526: AND
00000527: PUSH4 0x0dfe1681
0000052c: PUSH1 0x40
0000052e: MLOAD
0000052f: DUP2
00000530: PUSH4 0xffffffff
00000535: AND
00000536: PUSH1 0xe0
00000538: SHL
00000539: DUP2
0000053a: MSTORE
0000053b: PUSH1 0x04
0000053d: ADD
0000053e: PUSH1 0x20
00000540: PUSH1 0x40
00000542: MLOAD
00000543: DUP1
00000544: DUP4
00000545: SUB
00000546: DUP2
00000547: DUP7
00000548: GAS
00000549: STATICCALL
0000054a: ISZERO
0000054b: DUP1
0000054c: ISZERO
0000054d: PUSH2 0x0558
00000550: JUMPI
00000551: RETURNDATASIZE
00000552: PUSH0
00000553: PUSH0
00000554: RETURNDATACOPY
00000555: RETURNDATASIZE
00000556: PUSH0
00000557: REVERT
00000558: JUMPDEST
00000559: POP
0000055a: POP
0000055b: POP
0000055c: POP
0000055d: PUSH1 0x40
0000055f: MLOAD
00000560: RETURNDATASIZE
00000561: PUSH1 0x1f
00000563: NOT
00000564: PUSH1 0x1f
00000566: DUP3
00000567: ADD
00000568: AND
00000569: DUP3
0000056a: ADD
0000056b: DUP1
0000056c: PUSH1 0x40
0000056e: MSTORE
0000056f: POP
00000570: DUP2
00000571: ADD
00000572: SWAP1
00000573: PUSH2 0x057c
00000576: SWAP2
00000577: SWAP1
00000578: PUSH2 0x3da1
0000057b: JUMP
0000057c: JUMPDEST
0000057d: SWAP1
0000057e: POP
0000057f: JUMPDEST
00000580: PUSH1 0x40
00000582: MLOAD
00000583: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000598: SWAP1
00000599: CALLVALUE
0000059a: SWAP1
0000059b: PUSH0
0000059c: DUP2
0000059d: DUP2
0000059e: DUP2
0000059f: DUP6
000005a0: DUP8
000005a1: GAS
000005a2: CALL
000005a3: SWAP3
000005a4: POP
000005a5: POP
000005a6: POP
000005a7: RETURNDATASIZE
000005a8: DUP1
000005a9: PUSH0
000005aa: DUP2
000005ab: EQ
000005ac: PUSH2 0x05d0
000005af: JUMPI
000005b0: PUSH1 0x40
000005b2: MLOAD
000005b3: SWAP2
000005b4: POP
000005b5: PUSH1 0x1f
000005b7: NOT
000005b8: PUSH1 0x3f
000005ba: RETURNDATASIZE
000005bb: ADD
000005bc: AND
000005bd: DUP3
000005be: ADD
000005bf: PUSH1 0x40
000005c1: MSTORE
000005c2: RETURNDATASIZE
000005c3: DUP3
000005c4: MSTORE
000005c5: RETURNDATASIZE
000005c6: PUSH0
000005c7: PUSH1 0x20
000005c9: DUP5
000005ca: ADD
000005cb: RETURNDATACOPY
000005cc: PUSH2 0x05d5
000005cf: JUMP
000005d0: JUMPDEST
000005d1: PUSH1 0x60
000005d3: SWAP2
000005d4: POP
000005d5: JUMPDEST
000005d6: POP
000005d7: POP
000005d8: PUSH1 0x40
000005da: MLOAD
000005db: PUSH4 0x23b872dd
000005e0: PUSH1 0xe0
000005e2: SHL
000005e3: DUP2
000005e4: MSTORE
000005e5: ADDRESS
000005e6: PUSH1 0x04
000005e8: DUP3
000005e9: ADD
000005ea: MSTORE
000005eb: PUSH1 0x01
000005ed: PUSH1 0x01
000005ef: PUSH1 0xa0
000005f1: SHL
000005f2: SUB
000005f3: DUP11
000005f4: AND
000005f5: PUSH1 0x24
000005f7: DUP3
000005f8: ADD
000005f9: MSTORE
000005fa: CALLVALUE
000005fb: PUSH1 0x44
000005fd: DUP3
000005fe: ADD
000005ff: MSTORE
00000600: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000615: SWAP2
00000616: POP
00000617: PUSH4 0x23b872dd
0000061c: SWAP1
0000061d: PUSH1 0x64
0000061f: ADD
00000620: PUSH1 0x20
00000622: PUSH1 0x40
00000624: MLOAD
00000625: DUP1
00000626: DUP4
00000627: SUB
00000628: DUP2
00000629: PUSH0
0000062a: DUP8
0000062b: GAS
0000062c: CALL
0000062d: ISZERO
0000062e: DUP1
0000062f: ISZERO
00000630: PUSH2 0x063b
00000633: JUMPI
00000634: RETURNDATASIZE
00000635: PUSH0
00000636: PUSH0
00000637: RETURNDATACOPY
00000638: RETURNDATASIZE
00000639: PUSH0
0000063a: REVERT
0000063b: JUMPDEST
0000063c: POP
0000063d: POP
0000063e: POP
0000063f: POP
00000640: PUSH1 0x40
00000642: MLOAD
00000643: RETURNDATASIZE
00000644: PUSH1 0x1f
00000646: NOT
00000647: PUSH1 0x1f
00000649: DUP3
0000064a: ADD
0000064b: AND
0000064c: DUP3
0000064d: ADD
0000064e: DUP1
0000064f: PUSH1 0x40
00000651: MSTORE
00000652: POP
00000653: DUP2
00000654: ADD
00000655: SWAP1
00000656: PUSH2 0x065f
00000659: SWAP2
0000065a: SWAP1
0000065b: PUSH2 0x3dbc
0000065e: JUMP
0000065f: JUMPDEST
00000660: POP
00000661: PUSH1 0x40
00000663: MLOAD
00000664: PUSH4 0x70a08231
00000669: PUSH1 0xe0
0000066b: SHL
0000066c: DUP2
0000066d: MSTORE
0000066e: PUSH1 0x01
00000670: PUSH1 0x01
00000672: PUSH1 0xa0
00000674: SHL
00000675: SUB
00000676: DUP8
00000677: DUP2
00000678: AND
00000679: PUSH1 0x04
0000067b: DUP4
0000067c: ADD
0000067d: MSTORE
0000067e: PUSH0
0000067f: SWAP2
00000680: SWAP1
00000681: DUP4
00000682: AND
00000683: SWAP1
00000684: PUSH4 0x70a08231
00000689: SWAP1
0000068a: PUSH1 0x24
0000068c: ADD
0000068d: PUSH1 0x20
0000068f: PUSH1 0x40
00000691: MLOAD
00000692: DUP1
00000693: DUP4
00000694: SUB
00000695: DUP2
00000696: DUP7
00000697: GAS
00000698: STATICCALL
00000699: ISZERO
0000069a: DUP1
0000069b: ISZERO
0000069c: PUSH2 0x06a7
0000069f: JUMPI
000006a0: RETURNDATASIZE
000006a1: PUSH0
000006a2: PUSH0
000006a3: RETURNDATACOPY
000006a4: RETURNDATASIZE
000006a5: PUSH0
000006a6: REVERT
000006a7: JUMPDEST
000006a8: POP
000006a9: POP
000006aa: POP
000006ab: POP
000006ac: PUSH1 0x40
000006ae: MLOAD
000006af: RETURNDATASIZE
000006b0: PUSH1 0x1f
000006b2: NOT
000006b3: PUSH1 0x1f
000006b5: DUP3
000006b6: ADD
000006b7: AND
000006b8: DUP3
000006b9: ADD
000006ba: DUP1
000006bb: PUSH1 0x40
000006bd: MSTORE
000006be: POP
000006bf: DUP2
000006c0: ADD
000006c1: SWAP1
000006c2: PUSH2 0x06cb
000006c5: SWAP2
000006c6: SWAP1
000006c7: PUSH2 0x3ddb
000006ca: JUMP
000006cb: JUMPDEST
000006cc: SWAP1
000006cd: POP
000006ce: PUSH0
000006cf: PUSH1 0x01
000006d1: PUSH1 0xfe
000006d3: SHL
000006d4: DUP9
000006d5: AND
000006d6: ISZERO
000006d7: PUSH2 0x0743
000006da: JUMPI
000006db: PUSH1 0x40
000006dd: MLOAD
000006de: PUSH4 0x70a08231
000006e3: PUSH1 0xe0
000006e5: SHL
000006e6: DUP2
000006e7: MSTORE
000006e8: ADDRESS
000006e9: PUSH1 0x04
000006eb: DUP3
000006ec: ADD
000006ed: MSTORE
000006ee: PUSH1 0x01
000006f0: PUSH1 0x01
000006f2: PUSH1 0xa0
000006f4: SHL
000006f5: SUB
000006f6: DUP5
000006f7: AND
000006f8: SWAP1
000006f9: PUSH4 0x70a08231
000006fe: SWAP1
000006ff: PUSH1 0x24
00000701: ADD
00000702: PUSH1 0x20
00000704: PUSH1 0x40
00000706: MLOAD
00000707: DUP1
00000708: DUP4
00000709: SUB
0000070a: DUP2
0000070b: DUP7
0000070c: GAS
0000070d: STATICCALL
0000070e: ISZERO
0000070f: DUP1
00000710: ISZERO
00000711: PUSH2 0x071c
00000714: JUMPI
00000715: RETURNDATASIZE
00000716: PUSH0
00000717: PUSH0
00000718: RETURNDATACOPY
00000719: RETURNDATASIZE
0000071a: PUSH0
0000071b: REVERT
0000071c: JUMPDEST
0000071d: POP
0000071e: POP
0000071f: POP
00000720: POP
00000721: PUSH1 0x40
00000723: MLOAD
00000724: RETURNDATASIZE
00000725: PUSH1 0x1f
00000727: NOT
00000728: PUSH1 0x1f
0000072a: DUP3
0000072b: ADD
0000072c: AND
0000072d: DUP3
0000072e: ADD
0000072f: DUP1
00000730: PUSH1 0x40
00000732: MSTORE
00000733: POP
00000734: DUP2
00000735: ADD
00000736: SWAP1
00000737: PUSH2 0x0740
0000073a: SWAP2
0000073b: SWAP1
0000073c: PUSH2 0x3ddb
0000073f: JUMP
00000740: JUMPDEST
00000741: SWAP1
00000742: POP
00000743: JUMPDEST
00000744: DUP10
00000745: PUSH1 0x01
00000747: PUSH1 0x01
00000749: PUSH1 0xa0
0000074b: SHL
0000074c: SUB
0000074d: AND
0000074e: PUSH4 0x022c0d9f
00000753: DUP9
00000754: DUP9
00000755: PUSH0
00000756: PUSH1 0x01
00000758: PUSH1 0xfe
0000075a: SHL
0000075b: DUP14
0000075c: AND
0000075d: GT
0000075e: PUSH2 0x0767
00000761: JUMPI
00000762: DUP12
00000763: PUSH2 0x0769
00000766: JUMP
00000767: JUMPDEST
00000768: ADDRESS
00000769: JUMPDEST
0000076a: PUSH1 0x40
0000076c: MLOAD
0000076d: DUP5
0000076e: PUSH4 0xffffffff
00000773: AND
00000774: PUSH1 0xe0
00000776: SHL
00000777: DUP2
00000778: MSTORE
00000779: PUSH1 0x04
0000077b: ADD
0000077c: PUSH2 0x0787
0000077f: SWAP4
00000780: SWAP3
00000781: SWAP2
00000782: SWAP1
00000783: PUSH2 0x3df2
00000786: JUMP
00000787: JUMPDEST
00000788: PUSH0
00000789: PUSH1 0x40
0000078b: MLOAD
0000078c: DUP1
0000078d: DUP4
0000078e: SUB
0000078f: DUP2
00000790: PUSH0
00000791: DUP8
00000792: DUP1
00000793: EXTCODESIZE
00000794: ISZERO
00000795: DUP1
00000796: ISZERO
00000797: PUSH2 0x079e
0000079a: JUMPI
0000079b: PUSH0
0000079c: PUSH0
0000079d: REVERT
0000079e: JUMPDEST
0000079f: POP
000007a0: GAS
000007a1: CALL
000007a2: ISZERO
000007a3: DUP1
000007a4: ISZERO
000007a5: PUSH2 0x07b0
000007a8: JUMPI
000007a9: RETURNDATASIZE
000007aa: PUSH0
000007ab: PUSH0
000007ac: RETURNDATACOPY
000007ad: RETURNDATASIZE
000007ae: PUSH0
000007af: REVERT
000007b0: JUMPDEST
000007b1: POP
000007b2: POP
000007b3: POP
000007b4: POP
000007b5: PUSH1 0x01
000007b7: PUSH1 0xfe
000007b9: SHL
000007ba: DUP9
000007bb: AND
000007bc: ISZERO
000007bd: PUSH2 0x086b
000007c0: JUMPI
000007c1: PUSH1 0x40
000007c3: MLOAD
000007c4: PUSH4 0x70a08231
000007c9: PUSH1 0xe0
000007cb: SHL
000007cc: DUP2
000007cd: MSTORE
000007ce: ADDRESS
000007cf: PUSH1 0x04
000007d1: DUP3
000007d2: ADD
000007d3: MSTORE
000007d4: PUSH0
000007d5: SWAP1
000007d6: PUSH1 0x01
000007d8: PUSH1 0x01
000007da: PUSH1 0xa0
000007dc: SHL
000007dd: SUB
000007de: DUP6
000007df: AND
000007e0: SWAP1
000007e1: PUSH4 0x70a08231
000007e6: SWAP1
000007e7: PUSH1 0x24
000007e9: ADD
000007ea: PUSH1 0x20
000007ec: PUSH1 0x40
000007ee: MLOAD
000007ef: DUP1
000007f0: DUP4
000007f1: SUB
000007f2: DUP2
000007f3: DUP7
000007f4: GAS
000007f5: STATICCALL
000007f6: ISZERO
000007f7: DUP1
000007f8: ISZERO
000007f9: PUSH2 0x0804
000007fc: JUMPI
000007fd: RETURNDATASIZE
000007fe: PUSH0
000007ff: PUSH0
00000800: RETURNDATACOPY
00000801: RETURNDATASIZE
00000802: PUSH0
00000803: REVERT
00000804: JUMPDEST
00000805: POP
00000806: POP
00000807: POP
00000808: POP
00000809: PUSH1 0x40
0000080b: MLOAD
0000080c: RETURNDATASIZE
0000080d: PUSH1 0x1f
0000080f: NOT
00000810: PUSH1 0x1f
00000812: DUP3
00000813: ADD
00000814: AND
00000815: DUP3
00000816: ADD
00000817: DUP1
00000818: PUSH1 0x40
0000081a: MSTORE
0000081b: POP
0000081c: DUP2
0000081d: ADD
0000081e: SWAP1
0000081f: PUSH2 0x0828
00000822: SWAP2
00000823: SWAP1
00000824: PUSH2 0x3ddb
00000827: JUMP
00000828: JUMPDEST
00000829: SWAP1
0000082a: POP
0000082b: DUP2
0000082c: PUSH0
0000082d: SUB
0000082e: PUSH2 0x085a
00000831: JUMPI
00000832: PUSH2 0x0841
00000835: DUP5
00000836: DUP11
00000837: PUSH2 0x0138
0000083a: PUSH1 0x01
0000083c: DUP6
0000083d: PUSH2 0x3e33
00000840: JUMP
00000841: JUMPDEST
00000842: DUP10
00000843: ISZERO
00000844: PUSH2 0x0855
00000847: JUMPI
00000848: PUSH2 0x0852
0000084b: PUSH1 0x01
0000084d: DUP12
0000084e: PUSH2 0x3e33
00000851: JUMP
00000852: JUMPDEST
00000853: SWAP10
00000854: POP
00000855: JUMPDEST
00000856: PUSH2 0x0869
00000859: JUMP
0000085a: JUMPDEST
0000085b: PUSH2 0x0869
0000085e: DUP5
0000085f: DUP11
00000860: PUSH2 0x0138
00000863: DUP6
00000864: DUP6
00000865: PUSH2 0x3e33
00000868: JUMP
00000869: JUMPDEST
0000086a: POP
0000086b: JUMPDEST
0000086c: PUSH1 0x40
0000086e: MLOAD
0000086f: PUSH4 0x70a08231
00000874: PUSH1 0xe0
00000876: SHL
00000877: DUP2
00000878: MSTORE
00000879: PUSH1 0x01
0000087b: PUSH1 0x01
0000087d: PUSH1 0xa0
0000087f: SHL
00000880: SUB
00000881: DUP10
00000882: DUP2
00000883: AND
00000884: PUSH1 0x04
00000886: DUP4
00000887: ADD
00000888: MSTORE
00000889: DUP11
0000088a: SWAP2
0000088b: DUP5
0000088c: SWAP2
0000088d: DUP7
0000088e: AND
0000088f: SWAP1
00000890: PUSH4 0x70a08231
00000895: SWAP1
00000896: PUSH1 0x24
00000898: ADD
00000899: PUSH1 0x20
0000089b: PUSH1 0x40
0000089d: MLOAD
0000089e: DUP1
0000089f: DUP4
000008a0: SUB
000008a1: DUP2
000008a2: DUP7
000008a3: GAS
000008a4: STATICCALL
000008a5: ISZERO
000008a6: DUP1
000008a7: ISZERO
000008a8: PUSH2 0x08b3
000008ab: JUMPI
000008ac: RETURNDATASIZE
000008ad: PUSH0
000008ae: PUSH0
000008af: RETURNDATACOPY
000008b0: RETURNDATASIZE
000008b1: PUSH0
000008b2: REVERT
000008b3: JUMPDEST
000008b4: POP
000008b5: POP
000008b6: POP
000008b7: POP
000008b8: PUSH1 0x40
000008ba: MLOAD
000008bb: RETURNDATASIZE
000008bc: PUSH1 0x1f
000008be: NOT
000008bf: PUSH1 0x1f
000008c1: DUP3
000008c2: ADD
000008c3: AND
000008c4: DUP3
000008c5: ADD
000008c6: DUP1
000008c7: PUSH1 0x40
000008c9: MSTORE
000008ca: POP
000008cb: DUP2
000008cc: ADD
000008cd: SWAP1
000008ce: PUSH2 0x08d7
000008d1: SWAP2
000008d2: SWAP1
000008d3: PUSH2 0x3ddb
000008d6: JUMP
000008d7: JUMPDEST
000008d8: PUSH2 0x08e1
000008db: SWAP2
000008dc: SWAP1
000008dd: PUSH2 0x3e33
000008e0: JUMP
000008e1: JUMPDEST
000008e2: LT
000008e3: ISZERO
000008e4: PUSH2 0x08ff
000008e7: JUMPI
000008e8: PUSH1 0x40
000008ea: MLOAD
000008eb: PUSH3 0x461bcd
000008ef: PUSH1 0xe5
000008f1: SHL
000008f2: DUP2
000008f3: MSTORE
000008f4: PUSH1 0x04
000008f6: ADD
000008f7: PUSH2 0x035a
000008fa: SWAP1
000008fb: PUSH2 0x3e4c
000008fe: JUMP
000008ff: JUMPDEST
00000900: POP
00000901: POP
00000902: POP
00000903: POP
00000904: POP
00000905: POP
00000906: POP
00000907: POP
00000908: POP
00000909: POP
0000090a: POP
0000090b: JUMP
0000090c: JUMPDEST
0000090d: PUSH0
0000090e: MLOAD
0000090f: PUSH1 0x20
00000911: PUSH2 0x3f6c
00000914: PUSH0
00000915: CODECOPY
00000916: PUSH0
00000917: MLOAD
00000918: SWAP1
00000919: PUSH0
0000091a: MSTORE
0000091b: CALLER
0000091c: EQ
0000091d: DUP1
0000091e: PUSH2 0x0935
00000921: JUMPI
00000922: POP
00000923: CALLER
00000924: PUSH0
00000925: SWAP1
00000926: DUP2
00000927: MSTORE
00000928: PUSH1 0x20
0000092a: DUP2
0000092b: SWAP1
0000092c: MSTORE
0000092d: PUSH1 0x40
0000092f: SWAP1
00000930: KECCAK256
00000931: SLOAD
00000932: PUSH1 0xff
00000934: AND
00000935: JUMPDEST
00000936: PUSH2 0x0951
00000939: JUMPI
0000093a: PUSH1 0x40
0000093c: MLOAD
0000093d: PUSH3 0x461bcd
00000941: PUSH1 0xe5
00000943: SHL
00000944: DUP2
00000945: MSTORE
00000946: PUSH1 0x04
00000948: ADD
00000949: PUSH2 0x035a
0000094c: SWAP1
0000094d: PUSH2 0x3ce1
00000950: JUMP
00000951: JUMPDEST
00000952: DUP4
00000953: NUMBER
00000954: GT
00000955: ISZERO
00000956: PUSH2 0x0971
00000959: JUMPI
0000095a: PUSH1 0x40
0000095c: MLOAD
0000095d: PUSH3 0x461bcd
00000961: PUSH1 0xe5
00000963: SHL
00000964: DUP2
00000965: MSTORE
00000966: PUSH1 0x04
00000968: ADD
00000969: PUSH2 0x035a
0000096c: SWAP1
0000096d: PUSH2 0x3d10
00000970: JUMP
00000971: JUMPDEST
00000972: PUSH0
00000973: PUSH2 0x097c
00000976: DUP7
00000977: CALLVALUE
00000978: PUSH2 0x3e33
0000097b: JUMP
0000097c: JUMPDEST
0000097d: SWAP1
0000097e: POP
0000097f: PUSH0
00000980: PUSH0
00000981: SWAP1
00000982: POP
00000983: PUSH0
00000984: PUSH0
00000985: SWAP1
00000986: POP
00000987: PUSH0
00000988: PUSH0
00000989: DUP8
0000098a: PUSH1 0x01
0000098c: PUSH1 0x01
0000098e: PUSH1 0xa0
00000990: SHL
00000991: SUB
00000992: AND
00000993: PUSH4 0x0902f1ac
00000998: PUSH1 0x40
0000099a: MLOAD
0000099b: DUP2
0000099c: PUSH4 0xffffffff
000009a1: AND
000009a2: PUSH1 0xe0
000009a4: SHL
000009a5: DUP2
000009a6: MSTORE
000009a7: PUSH1 0x04
000009a9: ADD
000009aa: PUSH1 0x60
000009ac: PUSH1 0x40
000009ae: MLOAD
000009af: DUP1
000009b0: DUP4
000009b1: SUB
000009b2: DUP2
000009b3: DUP7
000009b4: GAS
000009b5: STATICCALL
000009b6: ISZERO
000009b7: DUP1
000009b8: ISZERO
000009b9: PUSH2 0x09c4
000009bc: JUMPI
000009bd: RETURNDATASIZE
000009be: PUSH0
000009bf: PUSH0
000009c0: RETURNDATACOPY
000009c1: RETURNDATASIZE
000009c2: PUSH0
000009c3: REVERT
000009c4: JUMPDEST
000009c5: POP
000009c6: POP
000009c7: POP
000009c8: POP
000009c9: PUSH1 0x40
000009cb: MLOAD
000009cc: RETURNDATASIZE
000009cd: PUSH1 0x1f
000009cf: NOT
000009d0: PUSH1 0x1f
000009d2: DUP3
000009d3: ADD
000009d4: AND
000009d5: DUP3
000009d6: ADD
000009d7: DUP1
000009d8: PUSH1 0x40
000009da: MSTORE
000009db: POP
000009dc: DUP2
000009dd: ADD
000009de: SWAP1
000009df: PUSH2 0x09e8
000009e2: SWAP2
000009e3: SWAP1
000009e4: PUSH2 0x3d55
000009e7: JUMP
000009e8: JUMPDEST
000009e9: POP
000009ea: SWAP2
000009eb: POP
000009ec: SWAP2
000009ed: POP
000009ee: PUSH0
000009ef: PUSH1 0x01
000009f1: PUSH1 0xff
000009f3: SHL
000009f4: DUP8
000009f5: AND
000009f6: PUSH0
000009f7: SUB
000009f8: PUSH2 0x0a81
000009fb: JUMPI
000009fc: PUSH2 0x0a18
000009ff: DUP7
00000a00: DUP5
00000a01: PUSH1 0x01
00000a03: PUSH1 0x01
00000a05: PUSH1 0x70
00000a07: SHL
00000a08: SUB
00000a09: AND
00000a0a: DUP5
00000a0b: PUSH1 0x01
00000a0d: PUSH1 0x01
00000a0f: PUSH1 0x70
00000a11: SHL
00000a12: SUB
00000a13: AND
00000a14: PUSH2 0x38cc
00000a17: JUMP
00000a18: JUMPDEST
00000a19: SWAP4
00000a1a: POP
00000a1b: DUP9
00000a1c: PUSH1 0x01
00000a1e: PUSH1 0x01
00000a20: PUSH1 0xa0
00000a22: SHL
00000a23: SUB
00000a24: AND
00000a25: PUSH4 0xd21220a7
00000a2a: PUSH1 0x40
00000a2c: MLOAD
00000a2d: DUP2
00000a2e: PUSH4 0xffffffff
00000a33: AND
00000a34: PUSH1 0xe0
00000a36: SHL
00000a37: DUP2
00000a38: MSTORE
00000a39: PUSH1 0x04
00000a3b: ADD
00000a3c: PUSH1 0x20
00000a3e: PUSH1 0x40
00000a40: MLOAD
00000a41: DUP1
00000a42: DUP4
00000a43: SUB
00000a44: DUP2
00000a45: DUP7
00000a46: GAS
00000a47: STATICCALL
00000a48: ISZERO
00000a49: DUP1
00000a4a: ISZERO
00000a4b: PUSH2 0x0a56
00000a4e: JUMPI
00000a4f: RETURNDATASIZE
00000a50: PUSH0
00000a51: PUSH0
00000a52: RETURNDATACOPY
00000a53: RETURNDATASIZE
00000a54: PUSH0
00000a55: REVERT
00000a56: JUMPDEST
00000a57: POP
00000a58: POP
00000a59: POP
00000a5a: POP
00000a5b: PUSH1 0x40
00000a5d: MLOAD
00000a5e: RETURNDATASIZE
00000a5f: PUSH1 0x1f
00000a61: NOT
00000a62: PUSH1 0x1f
00000a64: DUP3
00000a65: ADD
00000a66: AND
00000a67: DUP3
00000a68: ADD
00000a69: DUP1
00000a6a: PUSH1 0x40
00000a6c: MSTORE
00000a6d: POP
00000a6e: DUP2
00000a6f: ADD
00000a70: SWAP1
00000a71: PUSH2 0x0a7a
00000a74: SWAP2
00000a75: SWAP1
00000a76: PUSH2 0x3da1
00000a79: JUMP
00000a7a: JUMPDEST
00000a7b: SWAP1
00000a7c: POP
00000a7d: PUSH2 0x0b03
00000a80: JUMP
00000a81: JUMPDEST
00000a82: PUSH2 0x0a9e
00000a85: DUP7
00000a86: DUP4
00000a87: PUSH1 0x01
00000a89: PUSH1 0x01
00000a8b: PUSH1 0x70
00000a8d: SHL
00000a8e: SUB
00000a8f: AND
00000a90: DUP6
00000a91: PUSH1 0x01
00000a93: PUSH1 0x01
00000a95: PUSH1 0x70
00000a97: SHL
00000a98: SUB
00000a99: AND
00000a9a: PUSH2 0x38cc
00000a9d: JUMP
00000a9e: JUMPDEST
00000a9f: SWAP5
00000aa0: POP
00000aa1: DUP9
00000aa2: PUSH1 0x01
00000aa4: PUSH1 0x01
00000aa6: PUSH1 0xa0
00000aa8: SHL
00000aa9: SUB
00000aaa: AND
00000aab: PUSH4 0x0dfe1681
00000ab0: PUSH1 0x40
00000ab2: MLOAD
00000ab3: DUP2
00000ab4: PUSH4 0xffffffff
00000ab9: AND
00000aba: PUSH1 0xe0
00000abc: SHL
00000abd: DUP2
00000abe: MSTORE
00000abf: PUSH1 0x04
00000ac1: ADD
00000ac2: PUSH1 0x20
00000ac4: PUSH1 0x40
00000ac6: MLOAD
00000ac7: DUP1
00000ac8: DUP4
00000ac9: SUB
00000aca: DUP2
00000acb: DUP7
00000acc: GAS
00000acd: STATICCALL
00000ace: ISZERO
00000acf: DUP1
00000ad0: ISZERO
00000ad1: PUSH2 0x0adc
00000ad4: JUMPI
00000ad5: RETURNDATASIZE
00000ad6: PUSH0
00000ad7: PUSH0
00000ad8: RETURNDATACOPY
00000ad9: RETURNDATASIZE
00000ada: PUSH0
00000adb: REVERT
00000adc: JUMPDEST
00000add: POP
00000ade: POP
00000adf: POP
00000ae0: POP
00000ae1: PUSH1 0x40
00000ae3: MLOAD
00000ae4: RETURNDATASIZE
00000ae5: PUSH1 0x1f
00000ae7: NOT
00000ae8: PUSH1 0x1f
00000aea: DUP3
00000aeb: ADD
00000aec: AND
00000aed: DUP3
00000aee: ADD
00000aef: DUP1
00000af0: PUSH1 0x40
00000af2: MSTORE
00000af3: POP
00000af4: DUP2
00000af5: ADD
00000af6: SWAP1
00000af7: PUSH2 0x0b00
00000afa: SWAP2
00000afb: SWAP1
00000afc: PUSH2 0x3da1
00000aff: JUMP
00000b00: JUMPDEST
00000b01: SWAP1
00000b02: POP
00000b03: JUMPDEST
00000b04: PUSH1 0x40
00000b06: MLOAD
00000b07: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000b1c: SWAP1
00000b1d: DUP8
00000b1e: SWAP1
00000b1f: PUSH0
00000b20: DUP2
00000b21: DUP2
00000b22: DUP2
00000b23: DUP6
00000b24: DUP8
00000b25: GAS
00000b26: CALL
00000b27: SWAP3
00000b28: POP
00000b29: POP
00000b2a: POP
00000b2b: RETURNDATASIZE
00000b2c: DUP1
00000b2d: PUSH0
00000b2e: DUP2
00000b2f: EQ
00000b30: PUSH2 0x0b54
00000b33: JUMPI
00000b34: PUSH1 0x40
00000b36: MLOAD
00000b37: SWAP2
00000b38: POP
00000b39: PUSH1 0x1f
00000b3b: NOT
00000b3c: PUSH1 0x3f
00000b3e: RETURNDATASIZE
00000b3f: ADD
00000b40: AND
00000b41: DUP3
00000b42: ADD
00000b43: PUSH1 0x40
00000b45: MSTORE
00000b46: RETURNDATASIZE
00000b47: DUP3
00000b48: MSTORE
00000b49: RETURNDATASIZE
00000b4a: PUSH0
00000b4b: PUSH1 0x20
00000b4d: DUP5
00000b4e: ADD
00000b4f: RETURNDATACOPY
00000b50: PUSH2 0x0b59
00000b53: JUMP
00000b54: JUMPDEST
00000b55: PUSH1 0x60
00000b57: SWAP2
00000b58: POP
00000b59: JUMPDEST
00000b5a: POP
00000b5b: POP
00000b5c: PUSH1 0x40
00000b5e: MLOAD
00000b5f: PUSH4 0x23b872dd
00000b64: PUSH1 0xe0
00000b66: SHL
00000b67: DUP2
00000b68: MSTORE
00000b69: ADDRESS
00000b6a: PUSH1 0x04
00000b6c: DUP3
00000b6d: ADD
00000b6e: MSTORE
00000b6f: PUSH1 0x01
00000b71: PUSH1 0x01
00000b73: PUSH1 0xa0
00000b75: SHL
00000b76: SUB
00000b77: DUP12
00000b78: AND
00000b79: PUSH1 0x24
00000b7b: DUP3
00000b7c: ADD
00000b7d: MSTORE
00000b7e: PUSH1 0x44
00000b80: DUP2
00000b81: ADD
00000b82: DUP9
00000b83: SWAP1
00000b84: MSTORE
00000b85: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000b9a: SWAP2
00000b9b: POP
00000b9c: PUSH4 0x23b872dd
00000ba1: SWAP1
00000ba2: PUSH1 0x64
00000ba4: ADD
00000ba5: PUSH1 0x20
00000ba7: PUSH1 0x40
00000ba9: MLOAD
00000baa: DUP1
00000bab: DUP4
00000bac: SUB
00000bad: DUP2
00000bae: PUSH0
00000baf: DUP8
00000bb0: GAS
00000bb1: CALL
00000bb2: ISZERO
00000bb3: DUP1
00000bb4: ISZERO
00000bb5: PUSH2 0x0bc0
00000bb8: JUMPI
00000bb9: RETURNDATASIZE
00000bba: PUSH0
00000bbb: PUSH0
00000bbc: RETURNDATACOPY
00000bbd: RETURNDATASIZE
00000bbe: PUSH0
00000bbf: REVERT
00000bc0: JUMPDEST
00000bc1: POP
00000bc2: POP
00000bc3: POP
00000bc4: POP
00000bc5: PUSH1 0x40
00000bc7: MLOAD
00000bc8: RETURNDATASIZE
00000bc9: PUSH1 0x1f
00000bcb: NOT
00000bcc: PUSH1 0x1f
00000bce: DUP3
00000bcf: ADD
00000bd0: AND
00000bd1: DUP3
00000bd2: ADD
00000bd3: DUP1
00000bd4: PUSH1 0x40
00000bd6: MSTORE
00000bd7: POP
00000bd8: DUP2
00000bd9: ADD
00000bda: SWAP1
00000bdb: PUSH2 0x0be4
00000bde: SWAP2
00000bdf: SWAP1
00000be0: PUSH2 0x3dbc
00000be3: JUMP
00000be4: JUMPDEST
00000be5: POP
00000be6: PUSH1 0x40
00000be8: MLOAD
00000be9: PUSH4 0x70a08231
00000bee: PUSH1 0xe0
00000bf0: SHL
00000bf1: DUP2
00000bf2: MSTORE
00000bf3: PUSH1 0x01
00000bf5: PUSH1 0x01
00000bf7: PUSH1 0xa0
00000bf9: SHL
00000bfa: SUB
00000bfb: DUP9
00000bfc: DUP2
00000bfd: AND
00000bfe: PUSH1 0x04
00000c00: DUP4
00000c01: ADD
00000c02: MSTORE
00000c03: PUSH0
00000c04: SWAP2
00000c05: SWAP1
00000c06: DUP4
00000c07: AND
00000c08: SWAP1
00000c09: PUSH4 0x70a08231
00000c0e: SWAP1
00000c0f: PUSH1 0x24
00000c11: ADD
00000c12: PUSH1 0x20
00000c14: PUSH1 0x40
00000c16: MLOAD
00000c17: DUP1
00000c18: DUP4
00000c19: SUB
00000c1a: DUP2
00000c1b: DUP7
00000c1c: GAS
00000c1d: STATICCALL
00000c1e: ISZERO
00000c1f: DUP1
00000c20: ISZERO
00000c21: PUSH2 0x0c2c
00000c24: JUMPI
00000c25: RETURNDATASIZE
00000c26: PUSH0
00000c27: PUSH0
00000c28: RETURNDATACOPY
00000c29: RETURNDATASIZE
00000c2a: PUSH0
00000c2b: REVERT
00000c2c: JUMPDEST
00000c2d: POP
00000c2e: POP
00000c2f: POP
00000c30: POP
00000c31: PUSH1 0x40
00000c33: MLOAD
00000c34: RETURNDATASIZE
00000c35: PUSH1 0x1f
00000c37: NOT
00000c38: PUSH1 0x1f
00000c3a: DUP3
00000c3b: ADD
00000c3c: AND
00000c3d: DUP3
00000c3e: ADD
00000c3f: DUP1
00000c40: PUSH1 0x40
00000c42: MSTORE
00000c43: POP
00000c44: DUP2
00000c45: ADD
00000c46: SWAP1
00000c47: PUSH2 0x0c50
00000c4a: SWAP2
00000c4b: SWAP1
00000c4c: PUSH2 0x3ddb
00000c4f: JUMP
00000c50: JUMPDEST
00000c51: SWAP1
00000c52: POP
00000c53: PUSH0
00000c54: PUSH1 0x01
00000c56: PUSH1 0xfe
00000c58: SHL
00000c59: DUP10
00000c5a: AND
00000c5b: ISZERO
00000c5c: PUSH2 0x0cc8
00000c5f: JUMPI
00000c60: PUSH1 0x40
00000c62: MLOAD
00000c63: PUSH4 0x70a08231
00000c68: PUSH1 0xe0
00000c6a: SHL
00000c6b: DUP2
00000c6c: MSTORE
00000c6d: ADDRESS
00000c6e: PUSH1 0x04
00000c70: DUP3
00000c71: ADD
00000c72: MSTORE
00000c73: PUSH1 0x01
00000c75: PUSH1 0x01
00000c77: PUSH1 0xa0
00000c79: SHL
00000c7a: SUB
00000c7b: DUP5
00000c7c: AND
00000c7d: SWAP1
00000c7e: PUSH4 0x70a08231
00000c83: SWAP1
00000c84: PUSH1 0x24
00000c86: ADD
00000c87: PUSH1 0x20
00000c89: PUSH1 0x40
00000c8b: MLOAD
00000c8c: DUP1
00000c8d: DUP4
00000c8e: SUB
00000c8f: DUP2
00000c90: DUP7
00000c91: GAS
00000c92: STATICCALL
00000c93: ISZERO
00000c94: DUP1
00000c95: ISZERO
00000c96: PUSH2 0x0ca1
00000c99: JUMPI
00000c9a: RETURNDATASIZE
00000c9b: PUSH0
00000c9c: PUSH0
00000c9d: RETURNDATACOPY
00000c9e: RETURNDATASIZE
00000c9f: PUSH0
00000ca0: REVERT
00000ca1: JUMPDEST
00000ca2: POP
00000ca3: POP
00000ca4: POP
00000ca5: POP
00000ca6: PUSH1 0x40
00000ca8: MLOAD
00000ca9: RETURNDATASIZE
00000caa: PUSH1 0x1f
00000cac: NOT
00000cad: PUSH1 0x1f
00000caf: DUP3
00000cb0: ADD
00000cb1: AND
00000cb2: DUP3
00000cb3: ADD
00000cb4: DUP1
00000cb5: PUSH1 0x40
00000cb7: MSTORE
00000cb8: POP
00000cb9: DUP2
00000cba: ADD
00000cbb: SWAP1
00000cbc: PUSH2 0x0cc5
00000cbf: SWAP2
00000cc0: SWAP1
00000cc1: PUSH2 0x3ddb
00000cc4: JUMP
00000cc5: JUMPDEST
00000cc6: SWAP1
00000cc7: POP
00000cc8: JUMPDEST
00000cc9: DUP11
00000cca: PUSH1 0x01
00000ccc: PUSH1 0x01
00000cce: PUSH1 0xa0
00000cd0: SHL
00000cd1: SUB
00000cd2: AND
00000cd3: PUSH4 0x022c0d9f
00000cd8: DUP9
00000cd9: DUP9
00000cda: PUSH0
00000cdb: PUSH1 0x01
00000cdd: PUSH1 0xfe
00000cdf: SHL
00000ce0: DUP15
00000ce1: AND
00000ce2: GT
00000ce3: PUSH2 0x0cec
00000ce6: JUMPI
00000ce7: DUP13
00000ce8: PUSH2 0x0cee
00000ceb: JUMP
00000cec: JUMPDEST
00000ced: ADDRESS
00000cee: JUMPDEST
00000cef: PUSH1 0x40
00000cf1: MLOAD
00000cf2: DUP5
00000cf3: PUSH4 0xffffffff
00000cf8: AND
00000cf9: PUSH1 0xe0
00000cfb: SHL
00000cfc: DUP2
00000cfd: MSTORE
00000cfe: PUSH1 0x04
00000d00: ADD
00000d01: PUSH2 0x0d0c
00000d04: SWAP4
00000d05: SWAP3
00000d06: SWAP2
00000d07: SWAP1
00000d08: PUSH2 0x3df2
00000d0b: JUMP
00000d0c: JUMPDEST
00000d0d: PUSH0
00000d0e: PUSH1 0x40
00000d10: MLOAD
00000d11: DUP1
00000d12: DUP4
00000d13: SUB
00000d14: DUP2
00000d15: PUSH0
00000d16: DUP8
00000d17: DUP1
00000d18: EXTCODESIZE
00000d19: ISZERO
00000d1a: DUP1
00000d1b: ISZERO
00000d1c: PUSH2 0x0d23
00000d1f: JUMPI
00000d20: PUSH0
00000d21: PUSH0
00000d22: REVERT
00000d23: JUMPDEST
00000d24: POP
00000d25: GAS
00000d26: CALL
00000d27: ISZERO
00000d28: DUP1
00000d29: ISZERO
00000d2a: PUSH2 0x0d35
00000d2d: JUMPI
00000d2e: RETURNDATASIZE
00000d2f: PUSH0
00000d30: PUSH0
00000d31: RETURNDATACOPY
00000d32: RETURNDATASIZE
00000d33: PUSH0
00000d34: REVERT
00000d35: JUMPDEST
00000d36: POP
00000d37: POP
00000d38: POP
00000d39: POP
00000d3a: PUSH1 0x01
00000d3c: PUSH1 0xfe
00000d3e: SHL
00000d3f: DUP10
00000d40: AND
00000d41: ISZERO
00000d42: PUSH2 0x0df0
00000d45: JUMPI
00000d46: PUSH1 0x40
00000d48: MLOAD
00000d49: PUSH4 0x70a08231
00000d4e: PUSH1 0xe0
00000d50: SHL
00000d51: DUP2
00000d52: MSTORE
00000d53: ADDRESS
00000d54: PUSH1 0x04
00000d56: DUP3
00000d57: ADD
00000d58: MSTORE
00000d59: PUSH0
00000d5a: SWAP1
00000d5b: PUSH1 0x01
00000d5d: PUSH1 0x01
00000d5f: PUSH1 0xa0
00000d61: SHL
00000d62: SUB
00000d63: DUP6
00000d64: AND
00000d65: SWAP1
00000d66: PUSH4 0x70a08231
00000d6b: SWAP1
00000d6c: PUSH1 0x24
00000d6e: ADD
00000d6f: PUSH1 0x20
00000d71: PUSH1 0x40
00000d73: MLOAD
00000d74: DUP1
00000d75: DUP4
00000d76: SUB
00000d77: DUP2
00000d78: DUP7
00000d79: GAS
00000d7a: STATICCALL
00000d7b: ISZERO
00000d7c: DUP1
00000d7d: ISZERO
00000d7e: PUSH2 0x0d89
00000d81: JUMPI
00000d82: RETURNDATASIZE
00000d83: PUSH0
00000d84: PUSH0
00000d85: RETURNDATACOPY
00000d86: RETURNDATASIZE
00000d87: PUSH0
00000d88: REVERT
00000d89: JUMPDEST
00000d8a: POP
00000d8b: POP
00000d8c: POP
00000d8d: POP
00000d8e: PUSH1 0x40
00000d90: MLOAD
00000d91: RETURNDATASIZE
00000d92: PUSH1 0x1f
00000d94: NOT
00000d95: PUSH1 0x1f
00000d97: DUP3
00000d98: ADD
00000d99: AND
00000d9a: DUP3
00000d9b: ADD
00000d9c: DUP1
00000d9d: PUSH1 0x40
00000d9f: MSTORE
00000da0: POP
00000da1: DUP2
00000da2: ADD
00000da3: SWAP1
00000da4: PUSH2 0x0dad
00000da7: SWAP2
00000da8: SWAP1
00000da9: PUSH2 0x3ddb
00000dac: JUMP
00000dad: JUMPDEST
00000dae: SWAP1
00000daf: POP
00000db0: DUP2
00000db1: PUSH0
00000db2: SUB
00000db3: PUSH2 0x0ddf
00000db6: JUMPI
00000db7: PUSH2 0x0dc6
00000dba: DUP5
00000dbb: DUP12
00000dbc: PUSH2 0x0138
00000dbf: PUSH1 0x01
00000dc1: DUP6
00000dc2: PUSH2 0x3e33
00000dc5: JUMP
00000dc6: JUMPDEST
00000dc7: DUP11
00000dc8: ISZERO
00000dc9: PUSH2 0x0dda
00000dcc: JUMPI
00000dcd: PUSH2 0x0dd7
00000dd0: PUSH1 0x01
00000dd2: DUP13
00000dd3: PUSH2 0x3e33
00000dd6: JUMP
00000dd7: JUMPDEST
00000dd8: SWAP11
00000dd9: POP
00000dda: JUMPDEST
00000ddb: PUSH2 0x0dee
00000dde: JUMP
00000ddf: JUMPDEST
00000de0: PUSH2 0x0dee
00000de3: DUP5
00000de4: DUP12
00000de5: PUSH2 0x0138
00000de8: DUP6
00000de9: DUP6
00000dea: PUSH2 0x3e33
00000ded: JUMP
00000dee: JUMPDEST
00000def: POP
00000df0: JUMPDEST
00000df1: PUSH1 0x40
00000df3: MLOAD
00000df4: PUSH4 0x70a08231
00000df9: PUSH1 0xe0
00000dfb: SHL
00000dfc: DUP2
00000dfd: MSTORE
00000dfe: PUSH1 0x01
00000e00: PUSH1 0x01
00000e02: PUSH1 0xa0
00000e04: SHL
00000e05: SUB
00000e06: DUP11
00000e07: DUP2
00000e08: AND
00000e09: PUSH1 0x04
00000e0b: DUP4
00000e0c: ADD
00000e0d: MSTORE
00000e0e: DUP12
00000e0f: SWAP2
00000e10: DUP5
00000e11: SWAP2
00000e12: DUP7
00000e13: AND
00000e14: SWAP1
00000e15: PUSH4 0x70a08231
00000e1a: SWAP1
00000e1b: PUSH1 0x24
00000e1d: ADD
00000e1e: PUSH1 0x20
00000e20: PUSH1 0x40
00000e22: MLOAD
00000e23: DUP1
00000e24: DUP4
00000e25: SUB
00000e26: DUP2
00000e27: DUP7
00000e28: GAS
00000e29: STATICCALL
00000e2a: ISZERO
00000e2b: DUP1
00000e2c: ISZERO
00000e2d: PUSH2 0x0e38
00000e30: JUMPI
00000e31: RETURNDATASIZE
00000e32: PUSH0
00000e33: PUSH0
00000e34: RETURNDATACOPY
00000e35: RETURNDATASIZE
00000e36: PUSH0
00000e37: REVERT
00000e38: JUMPDEST
00000e39: POP
00000e3a: POP
00000e3b: POP
00000e3c: POP
00000e3d: PUSH1 0x40
00000e3f: MLOAD
00000e40: RETURNDATASIZE
00000e41: PUSH1 0x1f
00000e43: NOT
00000e44: PUSH1 0x1f
00000e46: DUP3
00000e47: ADD
00000e48: AND
00000e49: DUP3
00000e4a: ADD
00000e4b: DUP1
00000e4c: PUSH1 0x40
00000e4e: MSTORE
00000e4f: POP
00000e50: DUP2
00000e51: ADD
00000e52: SWAP1
00000e53: PUSH2 0x0e5c
00000e56: SWAP2
00000e57: SWAP1
00000e58: PUSH2 0x3ddb
00000e5b: JUMP
00000e5c: JUMPDEST
00000e5d: PUSH2 0x0e66
00000e60: SWAP2
00000e61: SWAP1
00000e62: PUSH2 0x3e33
00000e65: JUMP
00000e66: JUMPDEST
00000e67: LT
00000e68: ISZERO
00000e69: PUSH2 0x0e84
00000e6c: JUMPI
00000e6d: PUSH1 0x40
00000e6f: MLOAD
00000e70: PUSH3 0x461bcd
00000e74: PUSH1 0xe5
00000e76: SHL
00000e77: DUP2
00000e78: MSTORE
00000e79: PUSH1 0x04
00000e7b: ADD
00000e7c: PUSH2 0x035a
00000e7f: SWAP1
00000e80: PUSH2 0x3e4c
00000e83: JUMP
00000e84: JUMPDEST
00000e85: COINBASE
00000e86: PUSH1 0x01
00000e88: PUSH1 0x01
00000e8a: PUSH1 0xa0
00000e8c: SHL
00000e8d: SUB
00000e8e: AND
00000e8f: DUP14
00000e90: PUSH1 0x40
00000e92: MLOAD
00000e93: JUMPDEST
00000e94: PUSH0
00000e95: PUSH1 0x40
00000e97: MLOAD
00000e98: DUP1
00000e99: DUP4
00000e9a: SUB
00000e9b: DUP2
00000e9c: DUP6
00000e9d: DUP8
00000e9e: GAS
00000e9f: CALL
00000ea0: SWAP3
00000ea1: POP
00000ea2: POP
00000ea3: POP
00000ea4: RETURNDATASIZE
00000ea5: DUP1
00000ea6: PUSH0
00000ea7: DUP2
00000ea8: EQ
00000ea9: PUSH2 0x0ecd
00000eac: JUMPI
00000ead: PUSH1 0x40
00000eaf: MLOAD
00000eb0: SWAP2
00000eb1: POP
00000eb2: PUSH1 0x1f
00000eb4: NOT
00000eb5: PUSH1 0x3f
00000eb7: RETURNDATASIZE
00000eb8: ADD
00000eb9: AND
00000eba: DUP3
00000ebb: ADD
00000ebc: PUSH1 0x40
00000ebe: MSTORE
00000ebf: RETURNDATASIZE
00000ec0: DUP3
00000ec1: MSTORE
00000ec2: RETURNDATASIZE
00000ec3: PUSH0
00000ec4: PUSH1 0x20
00000ec6: DUP5
00000ec7: ADD
00000ec8: RETURNDATACOPY
00000ec9: PUSH2 0x0ed2
00000ecc: JUMP
00000ecd: JUMPDEST
00000ece: PUSH1 0x60
00000ed0: SWAP2
00000ed1: POP
00000ed2: JUMPDEST
00000ed3: POP
00000ed4: POP
00000ed5: POP
00000ed6: POP
00000ed7: POP
00000ed8: POP
00000ed9: POP
00000eda: POP
00000edb: POP
00000edc: POP
00000edd: POP
00000ede: POP
00000edf: POP
00000ee0: POP
00000ee1: POP
00000ee2: POP
00000ee3: JUMP
00000ee4: JUMPDEST
00000ee5: PUSH0
00000ee6: MLOAD
00000ee7: PUSH1 0x20
00000ee9: PUSH2 0x3f6c
00000eec: PUSH0
00000eed: CODECOPY
00000eee: PUSH0
00000eef: MLOAD
00000ef0: SWAP1
00000ef1: PUSH0
00000ef2: MSTORE
00000ef3: CALLER
00000ef4: EQ
00000ef5: DUP1
00000ef6: PUSH2 0x0f0d
00000ef9: JUMPI
00000efa: POP
00000efb: CALLER
00000efc: PUSH0
00000efd: SWAP1
00000efe: DUP2
00000eff: MSTORE
00000f00: PUSH1 0x20
00000f02: DUP2
00000f03: SWAP1
00000f04: MSTORE
00000f05: PUSH1 0x40
00000f07: SWAP1
00000f08: KECCAK256
00000f09: SLOAD
00000f0a: PUSH1 0xff
00000f0c: AND
00000f0d: JUMPDEST
00000f0e: PUSH2 0x0f29
00000f11: JUMPI
00000f12: PUSH1 0x40
00000f14: MLOAD
00000f15: PUSH3 0x461bcd
00000f19: PUSH1 0xe5
00000f1b: SHL
00000f1c: DUP2
00000f1d: MSTORE
00000f1e: PUSH1 0x04
00000f20: ADD
00000f21: PUSH2 0x035a
00000f24: SWAP1
00000f25: PUSH2 0x3ce1
00000f28: JUMP
00000f29: JUMPDEST
00000f2a: PUSH1 0x01
00000f2c: PUSH1 0x34
00000f2e: PUSH1 0x83
00000f30: NOT
00000f31: CALLDATASIZE
00000f32: ADD
00000f33: MOD
00000f34: ISZERO
00000f35: PUSH2 0x0f73
00000f38: JUMPI
00000f39: PUSH1 0x40
00000f3b: MLOAD
00000f3c: PUSH3 0x461bcd
00000f40: PUSH1 0xe5
00000f42: SHL
00000f43: DUP2
00000f44: MSTORE
00000f45: PUSH1 0x20
00000f47: PUSH1 0x04
00000f49: DUP3
00000f4a: ADD
00000f4b: MSTORE
00000f4c: PUSH1 0x13
00000f4e: PUSH1 0x24
00000f50: DUP3
00000f51: ADD
00000f52: MSTORE
00000f53: PUSH19 0x092dcecc2d8d2c840c8c2e8c240d8cadccee8d
00000f67: PUSH1 0x6b
00000f69: SHL
00000f6a: PUSH1 0x44
00000f6c: DUP3
00000f6d: ADD
00000f6e: MSTORE
00000f6f: PUSH1 0x64
00000f71: DUP2
00000f72: REVERT
00000f73: JUMPDEST
00000f74: PUSH1 0x84
00000f76: JUMPDEST
00000f77: DUP2
00000f78: CALLDATASIZE
00000f79: DUP3
00000f7a: LT
00000f7b: AND
00000f7c: ISZERO
00000f7d: PUSH2 0x0fba
00000f80: JUMPI
00000f81: PUSH0
00000f82: MLOAD
00000f83: PUSH1 0x20
00000f85: PUSH2 0x3f4c
00000f88: PUSH0
00000f89: CODECOPY
00000f8a: PUSH0
00000f8b: MLOAD
00000f8c: SWAP1
00000f8d: PUSH0
00000f8e: MSTORE
00000f8f: DUP2
00000f90: PUSH1 0x14
00000f92: ADD
00000f93: CALLDATALOAD
00000f94: XOR
00000f95: PUSH0
00000f96: MLOAD
00000f97: PUSH1 0x20
00000f99: PUSH2 0x3f2c
00000f9c: PUSH0
00000f9d: CODECOPY
00000f9e: PUSH0
00000f9f: MLOAD
00000fa0: SWAP1
00000fa1: PUSH0
00000fa2: MSTORE
00000fa3: DUP3
00000fa4: CALLDATALOAD
00000fa5: PUSH1 0x60
00000fa7: SHR
00000fa8: XOR
00000fa9: BALANCE
00000faa: EQ
00000fab: PUSH2 0x0fb2
00000fae: JUMPI
00000faf: PUSH0
00000fb0: SWAP2
00000fb1: POP
00000fb2: JUMPDEST
00000fb3: PUSH1 0x34
00000fb5: ADD
00000fb6: PUSH2 0x0f76
00000fb9: JUMP
00000fba: JUMPDEST
00000fbb: POP
00000fbc: DUP1
00000fbd: ISZERO
00000fbe: PUSH2 0x0fd5
00000fc1: JUMPI
00000fc2: PUSH0
00000fc3: PUSH0
00000fc4: PUSH0
00000fc5: PUSH0
00000fc6: CALLVALUE
00000fc7: CALLER
00000fc8: PUSH0
00000fc9: CALL
00000fca: PUSH2 0x013d
00000fcd: JUMPI
00000fce: RETURNDATASIZE
00000fcf: PUSH0
00000fd0: PUSH0
00000fd1: RETURNDATACOPY
00000fd2: RETURNDATASIZE
00000fd3: PUSH0
00000fd4: REVERT
00000fd5: JUMPDEST
00000fd6: PUSH2 0x0fe1
00000fd9: DUP6
00000fda: DUP6
00000fdb: DUP6
00000fdc: DUP6
00000fdd: PUSH2 0x15a2
00000fe0: JUMP
00000fe1: JUMPDEST
00000fe2: POP
00000fe3: POP
00000fe4: POP
00000fe5: POP
00000fe6: POP
00000fe7: JUMP
00000fe8: JUMPDEST
00000fe9: PUSH0
00000fea: MLOAD
00000feb: PUSH1 0x20
00000fed: PUSH2 0x3f6c
00000ff0: PUSH0
00000ff1: CODECOPY
00000ff2: PUSH0
00000ff3: MLOAD
00000ff4: SWAP1
00000ff5: PUSH0
00000ff6: MSTORE
00000ff7: CALLER
00000ff8: EQ
00000ff9: DUP1
00000ffa: PUSH2 0x1011
00000ffd: JUMPI
00000ffe: POP
00000fff: CALLER
00001000: PUSH0
00001001: SWAP1
00001002: DUP2
00001003: MSTORE
00001004: PUSH1 0x20
00001006: DUP2
00001007: SWAP1
00001008: MSTORE
00001009: PUSH1 0x40
0000100b: SWAP1
0000100c: KECCAK256
0000100d: SLOAD
0000100e: PUSH1 0xff
00001010: AND
00001011: JUMPDEST
00001012: PUSH2 0x102d
00001015: JUMPI
00001016: PUSH1 0x40
00001018: MLOAD
00001019: PUSH3 0x461bcd
0000101d: PUSH1 0xe5
0000101f: SHL
00001020: DUP2
00001021: MSTORE
00001022: PUSH1 0x04
00001024: ADD
00001025: PUSH2 0x035a
00001028: SWAP1
00001029: PUSH2 0x3ce1
0000102c: JUMP
0000102d: JUMPDEST
0000102e: DUP5
0000102f: NUMBER
00001030: GT
00001031: ISZERO
00001032: PUSH2 0x104d
00001035: JUMPI
00001036: PUSH1 0x40
00001038: MLOAD
00001039: PUSH3 0x461bcd
0000103d: PUSH1 0xe5
0000103f: SHL
00001040: DUP2
00001041: MSTORE
00001042: PUSH1 0x04
00001044: ADD
00001045: PUSH2 0x035a
00001048: SWAP1
00001049: PUSH2 0x3d10
0000104c: JUMP
0000104d: JUMPDEST
0000104e: PUSH0
0000104f: PUSH0
00001050: PUSH0
00001051: PUSH1 0x01
00001053: PUSH1 0xff
00001055: SHL
00001056: DUP5
00001057: AND
00001058: PUSH0
00001059: SUB
0000105a: PUSH2 0x1250
0000105d: JUMPI
0000105e: DUP6
0000105f: PUSH1 0x01
00001061: PUSH1 0x01
00001063: PUSH1 0xa0
00001065: SHL
00001066: SUB
00001067: AND
00001068: PUSH4 0xd21220a7
0000106d: PUSH1 0x40
0000106f: MLOAD
00001070: DUP2
00001071: PUSH4 0xffffffff
00001076: AND
00001077: PUSH1 0xe0
00001079: SHL
0000107a: DUP2
0000107b: MSTORE
0000107c: PUSH1 0x04
0000107e: ADD
0000107f: PUSH1 0x20
00001081: PUSH1 0x40
00001083: MLOAD
00001084: DUP1
00001085: DUP4
00001086: SUB
00001087: DUP2
00001088: DUP7
00001089: GAS
0000108a: STATICCALL
0000108b: ISZERO
0000108c: DUP1
0000108d: ISZERO
0000108e: PUSH2 0x1099
00001091: JUMPI
00001092: RETURNDATASIZE
00001093: PUSH0
00001094: PUSH0
00001095: RETURNDATACOPY
00001096: RETURNDATASIZE
00001097: PUSH0
00001098: REVERT
00001099: JUMPDEST
0000109a: POP
0000109b: POP
0000109c: POP
0000109d: POP
0000109e: PUSH1 0x40
000010a0: MLOAD
000010a1: RETURNDATASIZE
000010a2: PUSH1 0x1f
000010a4: NOT
000010a5: PUSH1 0x1f
000010a7: DUP3
000010a8: ADD
000010a9: AND
000010aa: DUP3
000010ab: ADD
000010ac: DUP1
000010ad: PUSH1 0x40
000010af: MSTORE
000010b0: POP
000010b1: DUP2
000010b2: ADD
000010b3: SWAP1
000010b4: PUSH2 0x10bd
000010b7: SWAP2
000010b8: SWAP1
000010b9: PUSH2 0x3da1
000010bc: JUMP
000010bd: JUMPDEST
000010be: PUSH1 0x40
000010c0: MLOAD
000010c1: PUSH4 0x70a08231
000010c6: PUSH1 0xe0
000010c8: SHL
000010c9: DUP2
000010ca: MSTORE
000010cb: PUSH1 0x01
000010cd: PUSH1 0x01
000010cf: PUSH1 0xa0
000010d1: SHL
000010d2: SUB
000010d3: DUP7
000010d4: DUP2
000010d5: AND
000010d6: PUSH1 0x04
000010d8: DUP4
000010d9: ADD
000010da: MSTORE
000010db: SWAP2
000010dc: SWAP5
000010dd: POP
000010de: SWAP1
000010df: DUP5
000010e0: AND
000010e1: SWAP1
000010e2: PUSH4 0x70a08231
000010e7: SWAP1
000010e8: PUSH1 0x24
000010ea: ADD
000010eb: PUSH1 0x20
000010ed: PUSH1 0x40
000010ef: MLOAD
000010f0: DUP1
000010f1: DUP4
000010f2: SUB
000010f3: DUP2
000010f4: DUP7
000010f5: GAS
000010f6: STATICCALL
000010f7: ISZERO
000010f8: DUP1
000010f9: ISZERO
000010fa: PUSH2 0x1105
000010fd: JUMPI
000010fe: RETURNDATASIZE
000010ff: PUSH0
00001100: PUSH0
00001101: RETURNDATACOPY
00001102: RETURNDATASIZE
00001103: PUSH0
00001104: REVERT
00001105: JUMPDEST
00001106: POP
00001107: POP
00001108: POP
00001109: POP
0000110a: PUSH1 0x40
0000110c: MLOAD
0000110d: RETURNDATASIZE
0000110e: PUSH1 0x1f
00001110: NOT
00001111: PUSH1 0x1f
00001113: DUP3
00001114: ADD
00001115: AND
00001116: DUP3
00001117: ADD
00001118: DUP1
00001119: PUSH1 0x40
0000111b: MSTORE
0000111c: POP
0000111d: DUP2
0000111e: ADD
0000111f: SWAP1
00001120: PUSH2 0x1129
00001123: SWAP2
00001124: SWAP1
00001125: PUSH2 0x3ddb
00001128: JUMP
00001129: JUMPDEST
0000112a: SWAP2
0000112b: POP
0000112c: PUSH1 0x01
0000112e: PUSH1 0xfe
00001130: SHL
00001131: DUP5
00001132: AND
00001133: ISZERO
00001134: PUSH2 0x11a0
00001137: JUMPI
00001138: PUSH1 0x40
0000113a: MLOAD
0000113b: PUSH4 0x70a08231
00001140: PUSH1 0xe0
00001142: SHL
00001143: DUP2
00001144: MSTORE
00001145: ADDRESS
00001146: PUSH1 0x04
00001148: DUP3
00001149: ADD
0000114a: MSTORE
0000114b: PUSH1 0x01
0000114d: PUSH1 0x01
0000114f: PUSH1 0xa0
00001151: SHL
00001152: SUB
00001153: DUP5
00001154: AND
00001155: SWAP1
00001156: PUSH4 0x70a08231
0000115b: SWAP1
0000115c: PUSH1 0x24
0000115e: ADD
0000115f: PUSH1 0x20
00001161: PUSH1 0x40
00001163: MLOAD
00001164: DUP1
00001165: DUP4
00001166: SUB
00001167: DUP2
00001168: DUP7
00001169: GAS
0000116a: STATICCALL
0000116b: ISZERO
0000116c: DUP1
0000116d: ISZERO
0000116e: PUSH2 0x1179
00001171: JUMPI
00001172: RETURNDATASIZE
00001173: PUSH0
00001174: PUSH0
00001175: RETURNDATACOPY
00001176: RETURNDATASIZE
00001177: PUSH0
00001178: REVERT
00001179: JUMPDEST
0000117a: POP
0000117b: POP
0000117c: POP
0000117d: POP
0000117e: PUSH1 0x40
00001180: MLOAD
00001181: RETURNDATASIZE
00001182: PUSH1 0x1f
00001184: NOT
00001185: PUSH1 0x1f
00001187: DUP3
00001188: ADD
00001189: AND
0000118a: DUP3
0000118b: ADD
0000118c: DUP1
0000118d: PUSH1 0x40
0000118f: MSTORE
00001190: POP
00001191: DUP2
00001192: ADD
00001193: SWAP1
00001194: PUSH2 0x119d
00001197: SWAP2
00001198: SWAP1
00001199: PUSH2 0x3ddb
0000119c: JUMP
0000119d: JUMPDEST
0000119e: SWAP1
0000119f: POP
000011a0: JUMPDEST
000011a1: DUP6
000011a2: PUSH1 0x01
000011a4: PUSH1 0x01
000011a6: PUSH1 0xa0
000011a8: SHL
000011a9: SUB
000011aa: AND
000011ab: PUSH4 0x128acb08
000011b0: PUSH0
000011b1: PUSH1 0x01
000011b3: PUSH1 0xfe
000011b5: SHL
000011b6: DUP8
000011b7: AND
000011b8: GT
000011b9: PUSH2 0x11c2
000011bc: JUMPI
000011bd: DUP6
000011be: PUSH2 0x11c4
000011c1: JUMP
000011c2: JUMPDEST
000011c3: ADDRESS
000011c4: JUMPDEST
000011c5: PUSH1 0x40
000011c7: DUP1
000011c8: MLOAD
000011c9: ADDRESS
000011ca: PUSH1 0x20
000011cc: DUP3
000011cd: ADD
000011ce: MSTORE
000011cf: PUSH1 0x01
000011d1: SWAP2
000011d2: DUP13
000011d3: SWAP2
000011d4: PUSH5 0x01000276a4
000011da: SWAP2
000011db: ADD
000011dc: PUSH1 0x40
000011de: MLOAD
000011df: PUSH1 0x20
000011e1: DUP2
000011e2: DUP4
000011e3: SUB
000011e4: SUB
000011e5: DUP2
000011e6: MSTORE
000011e7: SWAP1
000011e8: PUSH1 0x40
000011ea: MSTORE
000011eb: PUSH1 0x40
000011ed: MLOAD
000011ee: DUP7
000011ef: PUSH4 0xffffffff
000011f4: AND
000011f5: PUSH1 0xe0
000011f7: SHL
000011f8: DUP2
000011f9: MSTORE
000011fa: PUSH1 0x04
000011fc: ADD
000011fd: PUSH2 0x120a
00001200: SWAP6
00001201: SWAP5
00001202: SWAP4
00001203: SWAP3
00001204: SWAP2
00001205: SWAP1
00001206: PUSH2 0x3e77
00001209: JUMP
0000120a: JUMPDEST
0000120b: PUSH1 0x40
0000120d: DUP1
0000120e: MLOAD
0000120f: DUP1
00001210: DUP4
00001211: SUB
00001212: DUP2
00001213: PUSH0
00001214: DUP8
00001215: GAS
00001216: CALL
00001217: ISZERO
00001218: DUP1
00001219: ISZERO
0000121a: PUSH2 0x1225
0000121d: JUMPI
0000121e: RETURNDATASIZE
0000121f: PUSH0
00001220: PUSH0
00001221: RETURNDATACOPY
00001222: RETURNDATASIZE
00001223: PUSH0
00001224: REVERT
00001225: JUMPDEST
00001226: POP
00001227: POP
00001228: POP
00001229: POP
0000122a: PUSH1 0x40
0000122c: MLOAD
0000122d: RETURNDATASIZE
0000122e: PUSH1 0x1f
00001230: NOT
00001231: PUSH1 0x1f
00001233: DUP3
00001234: ADD
00001235: AND
00001236: DUP3
00001237: ADD
00001238: DUP1
00001239: PUSH1 0x40
0000123b: MSTORE
0000123c: POP
0000123d: DUP2
0000123e: ADD
0000123f: SWAP1
00001240: PUSH2 0x1249
00001243: SWAP2
00001244: SWAP1
00001245: PUSH2 0x3eb1
00001248: JUMP
00001249: JUMPDEST
0000124a: POP
0000124b: POP
0000124c: PUSH2 0x144d
0000124f: JUMP
00001250: JUMPDEST
00001251: DUP6
00001252: PUSH1 0x01
00001254: PUSH1 0x01
00001256: PUSH1 0xa0
00001258: SHL
00001259: SUB
0000125a: AND
0000125b: PUSH4 0x0dfe1681
00001260: PUSH1 0x40
00001262: MLOAD
00001263: DUP2
00001264: PUSH4 0xffffffff
00001269: AND
0000126a: PUSH1 0xe0
0000126c: SHL
0000126d: DUP2
0000126e: MSTORE
0000126f: PUSH1 0x04
00001271: ADD
00001272: PUSH1 0x20
00001274: PUSH1 0x40
00001276: MLOAD
00001277: DUP1
00001278: DUP4
00001279: SUB
0000127a: DUP2
0000127b: DUP7
0000127c: GAS
0000127d: STATICCALL
0000127e: ISZERO
0000127f: DUP1
00001280: ISZERO
00001281: PUSH2 0x128c
00001284: JUMPI
00001285: RETURNDATASIZE
00001286: PUSH0
00001287: PUSH0
00001288: RETURNDATACOPY
00001289: RETURNDATASIZE
0000128a: PUSH0
0000128b: REVERT
0000128c: JUMPDEST
0000128d: POP
0000128e: POP
0000128f: POP
00001290: POP
00001291: PUSH1 0x40
00001293: MLOAD
00001294: RETURNDATASIZE
00001295: PUSH1 0x1f
00001297: NOT
00001298: PUSH1 0x1f
0000129a: DUP3
0000129b: ADD
0000129c: AND
0000129d: DUP3
0000129e: ADD
0000129f: DUP1
000012a0: PUSH1 0x40
000012a2: MSTORE
000012a3: POP
000012a4: DUP2
000012a5: ADD
000012a6: SWAP1
000012a7: PUSH2 0x12b0
000012aa: SWAP2
000012ab: SWAP1
000012ac: PUSH2 0x3da1
000012af: JUMP
000012b0: JUMPDEST
000012b1: PUSH1 0x40
000012b3: MLOAD
000012b4: PUSH4 0x70a08231
000012b9: PUSH1 0xe0
000012bb: SHL
000012bc: DUP2
000012bd: MSTORE
000012be: PUSH1 0x01
000012c0: PUSH1 0x01
000012c2: PUSH1 0xa0
000012c4: SHL
000012c5: SUB
000012c6: DUP7
000012c7: DUP2
000012c8: AND
000012c9: PUSH1 0x04
000012cb: DUP4
000012cc: ADD
000012cd: MSTORE
000012ce: SWAP2
000012cf: SWAP5
000012d0: POP
000012d1: SWAP1
000012d2: DUP5
000012d3: AND
000012d4: SWAP1
000012d5: PUSH4 0x70a08231
000012da: SWAP1
000012db: PUSH1 0x24
000012dd: ADD
000012de: PUSH1 0x20
000012e0: PUSH1 0x40
000012e2: MLOAD
000012e3: DUP1
000012e4: DUP4
000012e5: SUB
000012e6: DUP2
000012e7: DUP7
000012e8: GAS
000012e9: STATICCALL
000012ea: ISZERO
000012eb: DUP1
000012ec: ISZERO
000012ed: PUSH2 0x12f8
000012f0: JUMPI
000012f1: RETURNDATASIZE
000012f2: PUSH0
000012f3: PUSH0
000012f4: RETURNDATACOPY
000012f5: RETURNDATASIZE
000012f6: PUSH0
000012f7: REVERT
000012f8: JUMPDEST
000012f9: POP
000012fa: POP
000012fb: POP
000012fc: POP
000012fd: PUSH1 0x40
000012ff: MLOAD
00001300: RETURNDATASIZE
00001301: PUSH1 0x1f
00001303: NOT
00001304: PUSH1 0x1f
00001306: DUP3
00001307: ADD
00001308: AND
00001309: DUP3
0000130a: ADD
0000130b: DUP1
0000130c: PUSH1 0x40
0000130e: MSTORE
0000130f: POP
00001310: DUP2
00001311: ADD
00001312: SWAP1
00001313: PUSH2 0x131c
00001316: SWAP2
00001317: SWAP1
00001318: PUSH2 0x3ddb
0000131b: JUMP
0000131c: JUMPDEST
0000131d: SWAP2
0000131e: POP
0000131f: PUSH1 0x01
00001321: PUSH1 0xfe
00001323: SHL
00001324: DUP5
00001325: AND
00001326: ISZERO
00001327: PUSH2 0x1393
0000132a: JUMPI
0000132b: PUSH1 0x40
0000132d: MLOAD
0000132e: PUSH4 0x70a08231
00001333: PUSH1 0xe0
00001335: SHL
00001336: DUP2
00001337: MSTORE
00001338: ADDRESS
00001339: PUSH1 0x04
0000133b: DUP3
0000133c: ADD
0000133d: MSTORE
0000133e: PUSH1 0x01
00001340: PUSH1 0x01
00001342: PUSH1 0xa0
00001344: SHL
00001345: SUB
00001346: DUP5
00001347: AND
00001348: SWAP1
00001349: PUSH4 0x70a08231
0000134e: SWAP1
0000134f: PUSH1 0x24
00001351: ADD
00001352: PUSH1 0x20
00001354: PUSH1 0x40
00001356: MLOAD
00001357: DUP1
00001358: DUP4
00001359: SUB
0000135a: DUP2
0000135b: DUP7
0000135c: GAS
0000135d: STATICCALL
0000135e: ISZERO
0000135f: DUP1
00001360: ISZERO
00001361: PUSH2 0x136c
00001364: JUMPI
00001365: RETURNDATASIZE
00001366: PUSH0
00001367: PUSH0
00001368: RETURNDATACOPY
00001369: RETURNDATASIZE
0000136a: PUSH0
0000136b: REVERT
0000136c: JUMPDEST
0000136d: POP
0000136e: POP
0000136f: POP
00001370: POP
00001371: PUSH1 0x40
00001373: MLOAD
00001374: RETURNDATASIZE
00001375: PUSH1 0x1f
00001377: NOT
00001378: PUSH1 0x1f
0000137a: DUP3
0000137b: ADD
0000137c: AND
0000137d: DUP3
0000137e: ADD
0000137f: DUP1
00001380: PUSH1 0x40
00001382: MSTORE
00001383: POP
00001384: DUP2
00001385: ADD
00001386: SWAP1
00001387: PUSH2 0x1390
0000138a: SWAP2
0000138b: SWAP1
0000138c: PUSH2 0x3ddb
0000138f: JUMP
00001390: JUMPDEST
00001391: SWAP1
00001392: POP
00001393: JUMPDEST
00001394: DUP6
00001395: PUSH1 0x01
00001397: PUSH1 0x01
00001399: PUSH1 0xa0
0000139b: SHL
0000139c: SUB
0000139d: AND
0000139e: PUSH4 0x128acb08
000013a3: PUSH0
000013a4: PUSH1 0x01
000013a6: PUSH1 0xfe
000013a8: SHL
000013a9: DUP8
000013aa: AND
000013ab: GT
000013ac: PUSH2 0x13b5
000013af: JUMPI
000013b0: DUP6
000013b1: PUSH2 0x13b7
000013b4: JUMP
000013b5: JUMPDEST
000013b6: ADDRESS
000013b7: JUMPDEST
000013b8: PUSH1 0x40
000013ba: DUP1
000013bb: MLOAD
000013bc: ADDRESS
000013bd: PUSH1 0x20
000013bf: DUP3
000013c0: ADD
000013c1: MSTORE
000013c2: PUSH0
000013c3: SWAP2
000013c4: DUP13
000013c5: SWAP2
000013c6: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25
000013db: SWAP2
000013dc: ADD
000013dd: PUSH1 0x40
000013df: MLOAD
000013e0: PUSH1 0x20
000013e2: DUP2
000013e3: DUP4
000013e4: SUB
000013e5: SUB
000013e6: DUP2
000013e7: MSTORE
000013e8: SWAP1
000013e9: PUSH1 0x40
000013eb: MSTORE
000013ec: PUSH1 0x40
000013ee: MLOAD
000013ef: DUP7
000013f0: PUSH4 0xffffffff
000013f5: AND
000013f6: PUSH1 0xe0
000013f8: SHL
000013f9: DUP2
000013fa: MSTORE
000013fb: PUSH1 0x04
000013fd: ADD
000013fe: PUSH2 0x140b
00001401: SWAP6
00001402: SWAP5
00001403: SWAP4
00001404: SWAP3
00001405: SWAP2
00001406: SWAP1
00001407: PUSH2 0x3e77
0000140a: JUMP
0000140b: JUMPDEST
0000140c: PUSH1 0x40
0000140e: DUP1
0000140f: MLOAD
00001410: DUP1
00001411: DUP4
00001412: SUB
00001413: DUP2
00001414: PUSH0
00001415: DUP8
00001416: GAS
00001417: CALL
00001418: ISZERO
00001419: DUP1
0000141a: ISZERO
0000141b: PUSH2 0x1426
0000141e: JUMPI
0000141f: RETURNDATASIZE
00001420: PUSH0
00001421: PUSH0
00001422: RETURNDATACOPY
00001423: RETURNDATASIZE
00001424: PUSH0
00001425: REVERT
00001426: JUMPDEST
00001427: POP
00001428: POP
00001429: POP
0000142a: POP
0000142b: PUSH1 0x40
0000142d: MLOAD
0000142e: RETURNDATASIZE
0000142f: PUSH1 0x1f
00001431: NOT
00001432: PUSH1 0x1f
00001434: DUP3
00001435: ADD
00001436: AND
00001437: DUP3
00001438: ADD
00001439: DUP1
0000143a: PUSH1 0x40
0000143c: MSTORE
0000143d: POP
0000143e: DUP2
0000143f: ADD
00001440: SWAP1
00001441: PUSH2 0x144a
00001444: SWAP2
00001445: SWAP1
00001446: PUSH2 0x3eb1
00001449: JUMP
0000144a: JUMPDEST
0000144b: POP
0000144c: POP
0000144d: JUMPDEST
0000144e: PUSH1 0x01
00001450: PUSH1 0xfe
00001452: SHL
00001453: DUP5
00001454: AND
00001455: ISZERO
00001456: PUSH2 0x1504
00001459: JUMPI
0000145a: PUSH1 0x40
0000145c: MLOAD
0000145d: PUSH4 0x70a08231
00001462: PUSH1 0xe0
00001464: SHL
00001465: DUP2
00001466: MSTORE
00001467: ADDRESS
00001468: PUSH1 0x04
0000146a: DUP3
0000146b: ADD
0000146c: MSTORE
0000146d: PUSH0
0000146e: SWAP1
0000146f: PUSH1 0x01
00001471: PUSH1 0x01
00001473: PUSH1 0xa0
00001475: SHL
00001476: SUB
00001477: DUP6
00001478: AND
00001479: SWAP1
0000147a: PUSH4 0x70a08231
0000147f: SWAP1
00001480: PUSH1 0x24
00001482: ADD
00001483: PUSH1 0x20
00001485: PUSH1 0x40
00001487: MLOAD
00001488: DUP1
00001489: DUP4
0000148a: SUB
0000148b: DUP2
0000148c: DUP7
0000148d: GAS
0000148e: STATICCALL
0000148f: ISZERO
00001490: DUP1
00001491: ISZERO
00001492: PUSH2 0x149d
00001495: JUMPI
00001496: RETURNDATASIZE
00001497: PUSH0
00001498: PUSH0
00001499: RETURNDATACOPY
0000149a: RETURNDATASIZE
0000149b: PUSH0
0000149c: REVERT
0000149d: JUMPDEST
0000149e: POP
0000149f: POP
000014a0: POP
000014a1: POP
000014a2: PUSH1 0x40
000014a4: MLOAD
000014a5: RETURNDATASIZE
000014a6: PUSH1 0x1f
000014a8: NOT
000014a9: PUSH1 0x1f
000014ab: DUP3
000014ac: ADD
000014ad: AND
000014ae: DUP3
000014af: ADD
000014b0: DUP1
000014b1: PUSH1 0x40
000014b3: MSTORE
000014b4: POP
000014b5: DUP2
000014b6: ADD
000014b7: SWAP1
000014b8: PUSH2 0x14c1
000014bb: SWAP2
000014bc: SWAP1
000014bd: PUSH2 0x3ddb
000014c0: JUMP
000014c1: JUMPDEST
000014c2: SWAP1
000014c3: POP
000014c4: DUP2
000014c5: PUSH0
000014c6: SUB
000014c7: PUSH2 0x14f3
000014ca: JUMPI
000014cb: PUSH2 0x14da
000014ce: DUP5
000014cf: DUP7
000014d0: PUSH2 0x0138
000014d3: PUSH1 0x01
000014d5: DUP6
000014d6: PUSH2 0x3e33
000014d9: JUMP
000014da: JUMPDEST
000014db: DUP6
000014dc: ISZERO
000014dd: PUSH2 0x14ee
000014e0: JUMPI
000014e1: PUSH2 0x14eb
000014e4: PUSH1 0x01
000014e6: DUP8
000014e7: PUSH2 0x3e33
000014ea: JUMP
000014eb: JUMPDEST
000014ec: SWAP6
000014ed: POP
000014ee: JUMPDEST
000014ef: PUSH2 0x1502
000014f2: JUMP
000014f3: JUMPDEST
000014f4: PUSH2 0x1502
000014f7: DUP5
000014f8: DUP7
000014f9: PUSH2 0x0138
000014fc: DUP6
000014fd: DUP6
000014fe: PUSH2 0x3e33
00001501: JUMP
00001502: JUMPDEST
00001503: POP
00001504: JUMPDEST
00001505: PUSH1 0x40
00001507: MLOAD
00001508: PUSH4 0x70a08231
0000150d: PUSH1 0xe0
0000150f: SHL
00001510: DUP2
00001511: MSTORE
00001512: PUSH1 0x01
00001514: PUSH1 0x01
00001516: PUSH1 0xa0
00001518: SHL
00001519: SUB
0000151a: DUP6
0000151b: DUP2
0000151c: AND
0000151d: PUSH1 0x04
0000151f: DUP4
00001520: ADD
00001521: MSTORE
00001522: DUP7
00001523: SWAP2
00001524: DUP5
00001525: SWAP2
00001526: DUP7
00001527: AND
00001528: SWAP1
00001529: PUSH4 0x70a08231
0000152e: SWAP1
0000152f: PUSH1 0x24
00001531: ADD
00001532: PUSH1 0x20
00001534: PUSH1 0x40
00001536: MLOAD
00001537: DUP1
00001538: DUP4
00001539: SUB
0000153a: DUP2
0000153b: DUP7
0000153c: GAS
0000153d: STATICCALL
0000153e: ISZERO
0000153f: DUP1
00001540: ISZERO
00001541: PUSH2 0x154c
00001544: JUMPI
00001545: RETURNDATASIZE
00001546: PUSH0
00001547: PUSH0
00001548: RETURNDATACOPY
00001549: RETURNDATASIZE
0000154a: PUSH0
0000154b: REVERT
0000154c: JUMPDEST
0000154d: POP
0000154e: POP
0000154f: POP
00001550: POP
00001551: PUSH1 0x40
00001553: MLOAD
00001554: RETURNDATASIZE
00001555: PUSH1 0x1f
00001557: NOT
00001558: PUSH1 0x1f
0000155a: DUP3
0000155b: ADD
0000155c: AND
0000155d: DUP3
0000155e: ADD
0000155f: DUP1
00001560: PUSH1 0x40
00001562: MSTORE
00001563: POP
00001564: DUP2
00001565: ADD
00001566: SWAP1
00001567: PUSH2 0x1570
0000156a: SWAP2
0000156b: SWAP1
0000156c: PUSH2 0x3ddb
0000156f: JUMP
00001570: JUMPDEST
00001571: PUSH2 0x157a
00001574: SWAP2
00001575: SWAP1
00001576: PUSH2 0x3e33
00001579: JUMP
0000157a: JUMPDEST
0000157b: LT
0000157c: ISZERO
0000157d: PUSH2 0x1598
00001580: JUMPI
00001581: PUSH1 0x40
00001583: MLOAD
00001584: PUSH3 0x461bcd
00001588: PUSH1 0xe5
0000158a: SHL
0000158b: DUP2
0000158c: MSTORE
0000158d: PUSH1 0x04
0000158f: ADD
00001590: PUSH2 0x035a
00001593: SWAP1
00001594: PUSH2 0x3e4c
00001597: JUMP
00001598: JUMPDEST
00001599: POP
0000159a: POP
0000159b: POP
0000159c: POP
0000159d: POP
0000159e: POP
0000159f: POP
000015a0: POP
000015a1: JUMP
000015a2: JUMPDEST
000015a3: PUSH0
000015a4: MLOAD
000015a5: PUSH1 0x20
000015a7: PUSH2 0x3f6c
000015aa: PUSH0
000015ab: CODECOPY
000015ac: PUSH0
000015ad: MLOAD
000015ae: SWAP1
000015af: PUSH0
000015b0: MSTORE
000015b1: CALLER
000015b2: EQ
000015b3: DUP1
000015b4: PUSH2 0x15cb
000015b7: JUMPI
000015b8: POP
000015b9: CALLER
000015ba: PUSH0
000015bb: SWAP1
000015bc: DUP2
000015bd: MSTORE
000015be: PUSH1 0x20
000015c0: DUP2
000015c1: SWAP1
000015c2: MSTORE
000015c3: PUSH1 0x40
000015c5: SWAP1
000015c6: KECCAK256
000015c7: SLOAD
000015c8: PUSH1 0xff
000015ca: AND
000015cb: JUMPDEST
000015cc: PUSH2 0x15e7
000015cf: JUMPI
000015d0: PUSH1 0x40
000015d2: MLOAD
000015d3: PUSH3 0x461bcd
000015d7: PUSH1 0xe5
000015d9: SHL
000015da: DUP2
000015db: MSTORE
000015dc: PUSH1 0x04
000015de: ADD
000015df: PUSH2 0x035a
000015e2: SWAP1
000015e3: PUSH2 0x3ce1
000015e6: JUMP
000015e7: JUMPDEST
000015e8: DUP4
000015e9: NUMBER
000015ea: GT
000015eb: ISZERO
000015ec: PUSH2 0x1607
000015ef: JUMPI
000015f0: PUSH1 0x40
000015f2: MLOAD
000015f3: PUSH3 0x461bcd
000015f7: PUSH1 0xe5
000015f9: SHL
000015fa: DUP2
000015fb: MSTORE
000015fc: PUSH1 0x04
000015fe: ADD
000015ff: PUSH2 0x035a
00001602: SWAP1
00001603: PUSH2 0x3d10
00001606: JUMP
00001607: JUMPDEST
00001608: PUSH1 0x40
0000160a: MLOAD
0000160b: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00001620: SWAP1
00001621: CALLVALUE
00001622: SWAP1
00001623: PUSH0
00001624: DUP2
00001625: DUP2
00001626: DUP2
00001627: DUP6
00001628: DUP8
00001629: GAS
0000162a: CALL
0000162b: SWAP3
0000162c: POP
0000162d: POP
0000162e: POP
0000162f: RETURNDATASIZE
00001630: DUP1
00001631: PUSH0
00001632: DUP2
00001633: EQ
00001634: PUSH2 0x1658
00001637: JUMPI
00001638: PUSH1 0x40
0000163a: MLOAD
0000163b: SWAP2
0000163c: POP
0000163d: PUSH1 0x1f
0000163f: NOT
00001640: PUSH1 0x3f
00001642: RETURNDATASIZE
00001643: ADD
00001644: AND
00001645: DUP3
00001646: ADD
00001647: PUSH1 0x40
00001649: MSTORE
0000164a: RETURNDATASIZE
0000164b: DUP3
0000164c: MSTORE
0000164d: RETURNDATASIZE
0000164e: PUSH0
0000164f: PUSH1 0x20
00001651: DUP5
00001652: ADD
00001653: RETURNDATACOPY
00001654: PUSH2 0x165d
00001657: JUMP
00001658: JUMPDEST
00001659: PUSH1 0x60
0000165b: SWAP2
0000165c: POP
0000165d: JUMPDEST
0000165e: POP
0000165f: POP
00001660: POP
00001661: PUSH0
00001662: PUSH0
00001663: PUSH0
00001664: PUSH1 0x01
00001666: PUSH1 0xff
00001668: SHL
00001669: DUP5
0000166a: AND
0000166b: PUSH0
0000166c: SUB
0000166d: PUSH2 0x1869
00001670: JUMPI
00001671: DUP6
00001672: PUSH1 0x01
00001674: PUSH1 0x01
00001676: PUSH1 0xa0
00001678: SHL
00001679: SUB
0000167a: AND
0000167b: PUSH4 0xd21220a7
00001680: PUSH1 0x40
00001682: MLOAD
00001683: DUP2
00001684: PUSH4 0xffffffff
00001689: AND
0000168a: PUSH1 0xe0
0000168c: SHL
0000168d: DUP2
0000168e: MSTORE
0000168f: PUSH1 0x04
00001691: ADD
00001692: PUSH1 0x20
00001694: PUSH1 0x40
00001696: MLOAD
00001697: DUP1
00001698: DUP4
00001699: SUB
0000169a: DUP2
0000169b: DUP7
0000169c: GAS
0000169d: STATICCALL
0000169e: ISZERO
0000169f: DUP1
000016a0: ISZERO
000016a1: PUSH2 0x16ac
000016a4: JUMPI
000016a5: RETURNDATASIZE
000016a6: PUSH0
000016a7: PUSH0
000016a8: RETURNDATACOPY
000016a9: RETURNDATASIZE
000016aa: PUSH0
000016ab: REVERT
000016ac: JUMPDEST
000016ad: POP
000016ae: POP
000016af: POP
000016b0: POP
000016b1: PUSH1 0x40
000016b3: MLOAD
000016b4: RETURNDATASIZE
000016b5: PUSH1 0x1f
000016b7: NOT
000016b8: PUSH1 0x1f
000016ba: DUP3
000016bb: ADD
000016bc: AND
000016bd: DUP3
000016be: ADD
000016bf: DUP1
000016c0: PUSH1 0x40
000016c2: MSTORE
000016c3: POP
000016c4: DUP2
000016c5: ADD
000016c6: SWAP1
000016c7: PUSH2 0x16d0
000016ca: SWAP2
000016cb: SWAP1
000016cc: PUSH2 0x3da1
000016cf: JUMP
000016d0: JUMPDEST
000016d1: PUSH1 0x40
000016d3: MLOAD
000016d4: PUSH4 0x70a08231
000016d9: PUSH1 0xe0
000016db: SHL
000016dc: DUP2
000016dd: MSTORE
000016de: PUSH1 0x01
000016e0: PUSH1 0x01
000016e2: PUSH1 0xa0
000016e4: SHL
000016e5: SUB
000016e6: DUP7
000016e7: DUP2
000016e8: AND
000016e9: PUSH1 0x04
000016eb: DUP4
000016ec: ADD
000016ed: MSTORE
000016ee: SWAP2
000016ef: SWAP5
000016f0: POP
000016f1: SWAP1
000016f2: DUP5
000016f3: AND
000016f4: SWAP1
000016f5: PUSH4 0x70a08231
000016fa: SWAP1
000016fb: PUSH1 0x24
000016fd: ADD
000016fe: PUSH1 0x20
00001700: PUSH1 0x40
00001702: MLOAD
00001703: DUP1
00001704: DUP4
00001705: SUB
00001706: DUP2
00001707: DUP7
00001708: GAS
00001709: STATICCALL
0000170a: ISZERO
0000170b: DUP1
0000170c: ISZERO
0000170d: PUSH2 0x1718
00001710: JUMPI
00001711: RETURNDATASIZE
00001712: PUSH0
00001713: PUSH0
00001714: RETURNDATACOPY
00001715: RETURNDATASIZE
00001716: PUSH0
00001717: REVERT
00001718: JUMPDEST
00001719: POP
0000171a: POP
0000171b: POP
0000171c: POP
0000171d: PUSH1 0x40
0000171f: MLOAD
00001720: RETURNDATASIZE
00001721: PUSH1 0x1f
00001723: NOT
00001724: PUSH1 0x1f
00001726: DUP3
00001727: ADD
00001728: AND
00001729: DUP3
0000172a: ADD
0000172b: DUP1
0000172c: PUSH1 0x40
0000172e: MSTORE
0000172f: POP
00001730: DUP2
00001731: ADD
00001732: SWAP1
00001733: PUSH2 0x173c
00001736: SWAP2
00001737: SWAP1
00001738: PUSH2 0x3ddb
0000173b: JUMP
0000173c: JUMPDEST
0000173d: SWAP2
0000173e: POP
0000173f: PUSH1 0x01
00001741: PUSH1 0xfe
00001743: SHL
00001744: DUP5
00001745: AND
00001746: ISZERO
00001747: PUSH2 0x17b3
0000174a: JUMPI
0000174b: PUSH1 0x40
0000174d: MLOAD
0000174e: PUSH4 0x70a08231
00001753: PUSH1 0xe0
00001755: SHL
00001756: DUP2
00001757: MSTORE
00001758: ADDRESS
00001759: PUSH1 0x04
0000175b: DUP3
0000175c: ADD
0000175d: MSTORE
0000175e: PUSH1 0x01
00001760: PUSH1 0x01
00001762: PUSH1 0xa0
00001764: SHL
00001765: SUB
00001766: DUP5
00001767: AND
00001768: SWAP1
00001769: PUSH4 0x70a08231
0000176e: SWAP1
0000176f: PUSH1 0x24
00001771: ADD
00001772: PUSH1 0x20
00001774: PUSH1 0x40
00001776: MLOAD
00001777: DUP1
00001778: DUP4
00001779: SUB
0000177a: DUP2
0000177b: DUP7
0000177c: GAS
0000177d: STATICCALL
0000177e: ISZERO
0000177f: DUP1
00001780: ISZERO
00001781: PUSH2 0x178c
00001784: JUMPI
00001785: RETURNDATASIZE
00001786: PUSH0
00001787: PUSH0
00001788: RETURNDATACOPY
00001789: RETURNDATASIZE
0000178a: PUSH0
0000178b: REVERT
0000178c: JUMPDEST
0000178d: POP
0000178e: POP
0000178f: POP
00001790: POP
00001791: PUSH1 0x40
00001793: MLOAD
00001794: RETURNDATASIZE
00001795: PUSH1 0x1f
00001797: NOT
00001798: PUSH1 0x1f
0000179a: DUP3
0000179b: ADD
0000179c: AND
0000179d: DUP3
0000179e: ADD
0000179f: DUP1
000017a0: PUSH1 0x40
000017a2: MSTORE
000017a3: POP
000017a4: DUP2
000017a5: ADD
000017a6: SWAP1
000017a7: PUSH2 0x17b0
000017aa: SWAP2
000017ab: SWAP1
000017ac: PUSH2 0x3ddb
000017af: JUMP
000017b0: JUMPDEST
000017b1: SWAP1
000017b2: POP
000017b3: JUMPDEST
000017b4: DUP6
000017b5: PUSH1 0x01
000017b7: PUSH1 0x01
000017b9: PUSH1 0xa0
000017bb: SHL
000017bc: SUB
000017bd: AND
000017be: PUSH4 0x128acb08
000017c3: PUSH0
000017c4: PUSH1 0x01
000017c6: PUSH1 0xfe
000017c8: SHL
000017c9: DUP8
000017ca: AND
000017cb: GT
000017cc: PUSH2 0x17d5
000017cf: JUMPI
000017d0: DUP6
000017d1: PUSH2 0x17d7
000017d4: JUMP
000017d5: JUMPDEST
000017d6: ADDRESS
000017d7: JUMPDEST
000017d8: PUSH1 0x01
000017da: PUSH2 0x17e2
000017dd: CALLVALUE
000017de: PUSH2 0x39d7
000017e1: JUMP
000017e2: JUMPDEST
000017e3: PUSH1 0x40
000017e5: DUP1
000017e6: MLOAD
000017e7: ADDRESS
000017e8: PUSH1 0x20
000017ea: DUP3
000017eb: ADD
000017ec: MSTORE
000017ed: PUSH5 0x01000276a4
000017f3: SWAP2
000017f4: ADD
000017f5: PUSH1 0x40
000017f7: MLOAD
000017f8: PUSH1 0x20
000017fa: DUP2
000017fb: DUP4
000017fc: SUB
000017fd: SUB
000017fe: DUP2
000017ff: MSTORE
00001800: SWAP1
00001801: PUSH1 0x40
00001803: MSTORE
00001804: PUSH1 0x40
00001806: MLOAD
00001807: DUP7
00001808: PUSH4 0xffffffff
0000180d: AND
0000180e: PUSH1 0xe0
00001810: SHL
00001811: DUP2
00001812: MSTORE
00001813: PUSH1 0x04
00001815: ADD
00001816: PUSH2 0x1823
00001819: SWAP6
0000181a: SWAP5
0000181b: SWAP4
0000181c: SWAP3
0000181d: SWAP2
0000181e: SWAP1
0000181f: PUSH2 0x3e77
00001822: JUMP
00001823: JUMPDEST
00001824: PUSH1 0x40
00001826: DUP1
00001827: MLOAD
00001828: DUP1
00001829: DUP4
0000182a: SUB
0000182b: DUP2
0000182c: PUSH0
0000182d: DUP8
0000182e: GAS
0000182f: CALL
00001830: ISZERO
00001831: DUP1
00001832: ISZERO
00001833: PUSH2 0x183e
00001836: JUMPI
00001837: RETURNDATASIZE
00001838: PUSH0
00001839: PUSH0
0000183a: RETURNDATACOPY
0000183b: RETURNDATASIZE
0000183c: PUSH0
0000183d: REVERT
0000183e: JUMPDEST
0000183f: POP
00001840: POP
00001841: POP
00001842: POP
00001843: PUSH1 0x40
00001845: MLOAD
00001846: RETURNDATASIZE
00001847: PUSH1 0x1f
00001849: NOT
0000184a: PUSH1 0x1f
0000184c: DUP3
0000184d: ADD
0000184e: AND
0000184f: DUP3
00001850: ADD
00001851: DUP1
00001852: PUSH1 0x40
00001854: MSTORE
00001855: POP
00001856: DUP2
00001857: ADD
00001858: SWAP1
00001859: PUSH2 0x1862
0000185c: SWAP2
0000185d: SWAP1
0000185e: PUSH2 0x3eb1
00001861: JUMP
00001862: JUMPDEST
00001863: POP
00001864: POP
00001865: PUSH2 0x1a6c
00001868: JUMP
00001869: JUMPDEST
0000186a: DUP6
0000186b: PUSH1 0x01
0000186d: PUSH1 0x01
0000186f: PUSH1 0xa0
00001871: SHL
00001872: SUB
00001873: AND
00001874: PUSH4 0x0dfe1681
00001879: PUSH1 0x40
0000187b: MLOAD
0000187c: DUP2
0000187d: PUSH4 0xffffffff
00001882: AND
00001883: PUSH1 0xe0
00001885: SHL
00001886: DUP2
00001887: MSTORE
00001888: PUSH1 0x04
0000188a: ADD
0000188b: PUSH1 0x20
0000188d: PUSH1 0x40
0000188f: MLOAD
00001890: DUP1
00001891: DUP4
00001892: SUB
00001893: DUP2
00001894: DUP7
00001895: GAS
00001896: STATICCALL
00001897: ISZERO
00001898: DUP1
00001899: ISZERO
0000189a: PUSH2 0x18a5
0000189d: JUMPI
0000189e: RETURNDATASIZE
0000189f: PUSH0
000018a0: PUSH0
000018a1: RETURNDATACOPY
000018a2: RETURNDATASIZE
000018a3: PUSH0
000018a4: REVERT
000018a5: JUMPDEST
000018a6: POP
000018a7: POP
000018a8: POP
000018a9: POP
000018aa: PUSH1 0x40
000018ac: MLOAD
000018ad: RETURNDATASIZE
000018ae: PUSH1 0x1f
000018b0: NOT
000018b1: PUSH1 0x1f
000018b3: DUP3
000018b4: ADD
000018b5: AND
000018b6: DUP3
000018b7: ADD
000018b8: DUP1
000018b9: PUSH1 0x40
000018bb: MSTORE
000018bc: POP
000018bd: DUP2
000018be: ADD
000018bf: SWAP1
000018c0: PUSH2 0x18c9
000018c3: SWAP2
000018c4: SWAP1
000018c5: PUSH2 0x3da1
000018c8: JUMP
000018c9: JUMPDEST
000018ca: PUSH1 0x40
000018cc: MLOAD
000018cd: PUSH4 0x70a08231
000018d2: PUSH1 0xe0
000018d4: SHL
000018d5: DUP2
000018d6: MSTORE
000018d7: PUSH1 0x01
000018d9: PUSH1 0x01
000018db: PUSH1 0xa0
000018dd: SHL
000018de: SUB
000018df: DUP7
000018e0: DUP2
000018e1: AND
000018e2: PUSH1 0x04
000018e4: DUP4
000018e5: ADD
000018e6: MSTORE
000018e7: SWAP2
000018e8: SWAP5
000018e9: POP
000018ea: SWAP1
000018eb: DUP5
000018ec: AND
000018ed: SWAP1
000018ee: PUSH4 0x70a08231
000018f3: SWAP1
000018f4: PUSH1 0x24
000018f6: ADD
000018f7: PUSH1 0x20
000018f9: PUSH1 0x40
000018fb: MLOAD
000018fc: DUP1
000018fd: DUP4
000018fe: SUB
000018ff: DUP2
00001900: DUP7
00001901: GAS
00001902: STATICCALL
00001903: ISZERO
00001904: DUP1
00001905: ISZERO
00001906: PUSH2 0x1911
00001909: JUMPI
0000190a: RETURNDATASIZE
0000190b: PUSH0
0000190c: PUSH0
0000190d: RETURNDATACOPY
0000190e: RETURNDATASIZE
0000190f: PUSH0
00001910: REVERT
00001911: JUMPDEST
00001912: POP
00001913: POP
00001914: POP
00001915: POP
00001916: PUSH1 0x40
00001918: MLOAD
00001919: RETURNDATASIZE
0000191a: PUSH1 0x1f
0000191c: NOT
0000191d: PUSH1 0x1f
0000191f: DUP3
00001920: ADD
00001921: AND
00001922: DUP3
00001923: ADD
00001924: DUP1
00001925: PUSH1 0x40
00001927: MSTORE
00001928: POP
00001929: DUP2
0000192a: ADD
0000192b: SWAP1
0000192c: PUSH2 0x1935
0000192f: SWAP2
00001930: SWAP1
00001931: PUSH2 0x3ddb
00001934: JUMP
00001935: JUMPDEST
00001936: SWAP2
00001937: POP
00001938: PUSH1 0x01
0000193a: PUSH1 0xfe
0000193c: SHL
0000193d: DUP5
0000193e: AND
0000193f: ISZERO
00001940: PUSH2 0x19ac
00001943: JUMPI
00001944: PUSH1 0x40
00001946: MLOAD
00001947: PUSH4 0x70a08231
0000194c: PUSH1 0xe0
0000194e: SHL
0000194f: DUP2
00001950: MSTORE
00001951: ADDRESS
00001952: PUSH1 0x04
00001954: DUP3
00001955: ADD
00001956: MSTORE
00001957: PUSH1 0x01
00001959: PUSH1 0x01
0000195b: PUSH1 0xa0
0000195d: SHL
0000195e: SUB
0000195f: DUP5
00001960: AND
00001961: SWAP1
00001962: PUSH4 0x70a08231
00001967: SWAP1
00001968: PUSH1 0x24
0000196a: ADD
0000196b: PUSH1 0x20
0000196d: PUSH1 0x40
0000196f: MLOAD
00001970: DUP1
00001971: DUP4
00001972: SUB
00001973: DUP2
00001974: DUP7
00001975: GAS
00001976: STATICCALL
00001977: ISZERO
00001978: DUP1
00001979: ISZERO
0000197a: PUSH2 0x1985
0000197d: JUMPI
0000197e: RETURNDATASIZE
0000197f: PUSH0
00001980: PUSH0
00001981: RETURNDATACOPY
00001982: RETURNDATASIZE
00001983: PUSH0
00001984: REVERT
00001985: JUMPDEST
00001986: POP
00001987: POP
00001988: POP
00001989: POP
0000198a: PUSH1 0x40
0000198c: MLOAD
0000198d: RETURNDATASIZE
0000198e: PUSH1 0x1f
00001990: NOT
00001991: PUSH1 0x1f
00001993: DUP3
00001994: ADD
00001995: AND
00001996: DUP3
00001997: ADD
00001998: DUP1
00001999: PUSH1 0x40
0000199b: MSTORE
0000199c: POP
0000199d: DUP2
0000199e: ADD
0000199f: SWAP1
000019a0: PUSH2 0x19a9
000019a3: SWAP2
000019a4: SWAP1
000019a5: PUSH2 0x3ddb
000019a8: JUMP
000019a9: JUMPDEST
000019aa: SWAP1
000019ab: POP
000019ac: JUMPDEST
000019ad: DUP6
000019ae: PUSH1 0x01
000019b0: PUSH1 0x01
000019b2: PUSH1 0xa0
000019b4: SHL
000019b5: SUB
000019b6: AND
000019b7: PUSH4 0x128acb08
000019bc: PUSH0
000019bd: PUSH1 0x01
000019bf: PUSH1 0xfe
000019c1: SHL
000019c2: DUP8
000019c3: AND
000019c4: GT
000019c5: PUSH2 0x19ce
000019c8: JUMPI
000019c9: DUP6
000019ca: PUSH2 0x19d0
000019cd: JUMP
000019ce: JUMPDEST
000019cf: ADDRESS
000019d0: JUMPDEST
000019d1: PUSH0
000019d2: PUSH2 0x19da
000019d5: CALLVALUE
000019d6: PUSH2 0x39d7
000019d9: JUMP
000019da: JUMPDEST
000019db: PUSH1 0x40
000019dd: DUP1
000019de: MLOAD
000019df: ADDRESS
000019e0: PUSH1 0x20
000019e2: DUP3
000019e3: ADD
000019e4: MSTORE
000019e5: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25
000019fa: SWAP2
000019fb: ADD
000019fc: PUSH1 0x40
000019fe: MLOAD
000019ff: PUSH1 0x20
00001a01: DUP2
00001a02: DUP4
00001a03: SUB
00001a04: SUB
00001a05: DUP2
00001a06: MSTORE
00001a07: SWAP1
00001a08: PUSH1 0x40
00001a0a: MSTORE
00001a0b: PUSH1 0x40
00001a0d: MLOAD
00001a0e: DUP7
00001a0f: PUSH4 0xffffffff
00001a14: AND
00001a15: PUSH1 0xe0
00001a17: SHL
00001a18: DUP2
00001a19: MSTORE
00001a1a: PUSH1 0x04
00001a1c: ADD
00001a1d: PUSH2 0x1a2a
00001a20: SWAP6
00001a21: SWAP5
00001a22: SWAP4
00001a23: SWAP3
00001a24: SWAP2
00001a25: SWAP1
00001a26: PUSH2 0x3e77
00001a29: JUMP
00001a2a: JUMPDEST
00001a2b: PUSH1 0x40
00001a2d: DUP1
00001a2e: MLOAD
00001a2f: DUP1
00001a30: DUP4
00001a31: SUB
00001a32: DUP2
00001a33: PUSH0
00001a34: DUP8
00001a35: GAS
00001a36: CALL
00001a37: ISZERO
00001a38: DUP1
00001a39: ISZERO
00001a3a: PUSH2 0x1a45
00001a3d: JUMPI
00001a3e: RETURNDATASIZE
00001a3f: PUSH0
00001a40: PUSH0
00001a41: RETURNDATACOPY
00001a42: RETURNDATASIZE
00001a43: PUSH0
00001a44: REVERT
00001a45: JUMPDEST
00001a46: POP
00001a47: POP
00001a48: POP
00001a49: POP
00001a4a: PUSH1 0x40
00001a4c: MLOAD
00001a4d: RETURNDATASIZE
00001a4e: PUSH1 0x1f
00001a50: NOT
00001a51: PUSH1 0x1f
00001a53: DUP3
00001a54: ADD
00001a55: AND
00001a56: DUP3
00001a57: ADD
00001a58: DUP1
00001a59: PUSH1 0x40
00001a5b: MSTORE
00001a5c: POP
00001a5d: DUP2
00001a5e: ADD
00001a5f: SWAP1
00001a60: PUSH2 0x1a69
00001a63: SWAP2
00001a64: SWAP1
00001a65: PUSH2 0x3eb1
00001a68: JUMP
00001a69: JUMPDEST
00001a6a: POP
00001a6b: POP
00001a6c: JUMPDEST
00001a6d: PUSH1 0x01
00001a6f: PUSH1 0xfe
00001a71: SHL
00001a72: DUP5
00001a73: AND
00001a74: ISZERO
00001a75: PUSH2 0x1b23
00001a78: JUMPI
00001a79: PUSH1 0x40
00001a7b: MLOAD
00001a7c: PUSH4 0x70a08231
00001a81: PUSH1 0xe0
00001a83: SHL
00001a84: DUP2
00001a85: MSTORE
00001a86: ADDRESS
00001a87: PUSH1 0x04
00001a89: DUP3
00001a8a: ADD
00001a8b: MSTORE
00001a8c: PUSH0
00001a8d: SWAP1
00001a8e: PUSH1 0x01
00001a90: PUSH1 0x01
00001a92: PUSH1 0xa0
00001a94: SHL
00001a95: SUB
00001a96: DUP6
00001a97: AND
00001a98: SWAP1
00001a99: PUSH4 0x70a08231
00001a9e: SWAP1
00001a9f: PUSH1 0x24
00001aa1: ADD
00001aa2: PUSH1 0x20
00001aa4: PUSH1 0x40
00001aa6: MLOAD
00001aa7: DUP1
00001aa8: DUP4
00001aa9: SUB
00001aaa: DUP2
00001aab: DUP7
00001aac: GAS
00001aad: STATICCALL
00001aae: ISZERO
00001aaf: DUP1
00001ab0: ISZERO
00001ab1: PUSH2 0x1abc
00001ab4: JUMPI
00001ab5: RETURNDATASIZE
00001ab6: PUSH0
00001ab7: PUSH0
00001ab8: RETURNDATACOPY
00001ab9: RETURNDATASIZE
00001aba: PUSH0
00001abb: REVERT
00001abc: JUMPDEST
00001abd: POP
00001abe: POP
00001abf: POP
00001ac0: POP
00001ac1: PUSH1 0x40
00001ac3: MLOAD
00001ac4: RETURNDATASIZE
00001ac5: PUSH1 0x1f
00001ac7: NOT
00001ac8: PUSH1 0x1f
00001aca: DUP3
00001acb: ADD
00001acc: AND
00001acd: DUP3
00001ace: ADD
00001acf: DUP1
00001ad0: PUSH1 0x40
00001ad2: MSTORE
00001ad3: POP
00001ad4: DUP2
00001ad5: ADD
00001ad6: SWAP1
00001ad7: PUSH2 0x1ae0
00001ada: SWAP2
00001adb: SWAP1
00001adc: PUSH2 0x3ddb
00001adf: JUMP
00001ae0: JUMPDEST
00001ae1: SWAP1
00001ae2: POP
00001ae3: DUP2
00001ae4: PUSH0
00001ae5: SUB
00001ae6: PUSH2 0x1b12
00001ae9: JUMPI
00001aea: PUSH2 0x1af9
00001aed: DUP5
00001aee: DUP7
00001aef: PUSH2 0x0138
00001af2: PUSH1 0x01
00001af4: DUP6
00001af5: PUSH2 0x3e33
00001af8: JUMP
00001af9: JUMPDEST
00001afa: DUP6
00001afb: ISZERO
00001afc: PUSH2 0x1b0d
00001aff: JUMPI
00001b00: PUSH2 0x1b0a
00001b03: PUSH1 0x01
00001b05: DUP8
00001b06: PUSH2 0x3e33
00001b09: JUMP
00001b0a: JUMPDEST
00001b0b: SWAP6
00001b0c: POP
00001b0d: JUMPDEST
00001b0e: PUSH2 0x1b21
00001b11: JUMP
00001b12: JUMPDEST
00001b13: PUSH2 0x1b21
00001b16: DUP5
00001b17: DUP7
00001b18: PUSH2 0x0138
00001b1b: DUP6
00001b1c: DUP6
00001b1d: PUSH2 0x3e33
00001b20: JUMP
00001b21: JUMPDEST
00001b22: POP
00001b23: JUMPDEST
00001b24: PUSH1 0x40
00001b26: MLOAD
00001b27: PUSH4 0x70a08231
00001b2c: PUSH1 0xe0
00001b2e: SHL
00001b2f: DUP2
00001b30: MSTORE
00001b31: PUSH1 0x01
00001b33: PUSH1 0x01
00001b35: PUSH1 0xa0
00001b37: SHL
00001b38: SUB
00001b39: DUP6
00001b3a: DUP2
00001b3b: AND
00001b3c: PUSH1 0x04
00001b3e: DUP4
00001b3f: ADD
00001b40: MSTORE
00001b41: DUP7
00001b42: SWAP2
00001b43: DUP5
00001b44: SWAP2
00001b45: DUP7
00001b46: AND
00001b47: SWAP1
00001b48: PUSH4 0x70a08231
00001b4d: SWAP1
00001b4e: PUSH1 0x24
00001b50: ADD
00001b51: PUSH1 0x20
00001b53: PUSH1 0x40
00001b55: MLOAD
00001b56: DUP1
00001b57: DUP4
00001b58: SUB
00001b59: DUP2
00001b5a: DUP7
00001b5b: GAS
00001b5c: STATICCALL
00001b5d: ISZERO
00001b5e: DUP1
00001b5f: ISZERO
00001b60: PUSH2 0x1b6b
00001b63: JUMPI
00001b64: RETURNDATASIZE
00001b65: PUSH0
00001b66: PUSH0
00001b67: RETURNDATACOPY
00001b68: RETURNDATASIZE
00001b69: PUSH0
00001b6a: REVERT
00001b6b: JUMPDEST
00001b6c: POP
00001b6d: POP
00001b6e: POP
00001b6f: POP
00001b70: PUSH1 0x40
00001b72: MLOAD
00001b73: RETURNDATASIZE
00001b74: PUSH1 0x1f
00001b76: NOT
00001b77: PUSH1 0x1f
00001b79: DUP3
00001b7a: ADD
00001b7b: AND
00001b7c: DUP3
00001b7d: ADD
00001b7e: DUP1
00001b7f: PUSH1 0x40
00001b81: MSTORE
00001b82: POP
00001b83: DUP2
00001b84: ADD
00001b85: SWAP1
00001b86: PUSH2 0x1b8f
00001b89: SWAP2
00001b8a: SWAP1
00001b8b: PUSH2 0x3ddb
00001b8e: JUMP
00001b8f: JUMPDEST
00001b90: PUSH2 0x1b99
00001b93: SWAP2
00001b94: SWAP1
00001b95: PUSH2 0x3e33
00001b98: JUMP
00001b99: JUMPDEST
00001b9a: LT
00001b9b: ISZERO
00001b9c: PUSH2 0x1bb7
00001b9f: JUMPI
00001ba0: PUSH1 0x40
00001ba2: MLOAD
00001ba3: PUSH3 0x461bcd
00001ba7: PUSH1 0xe5
00001ba9: SHL
00001baa: DUP2
00001bab: MSTORE
00001bac: PUSH1 0x04
00001bae: ADD
00001baf: PUSH2 0x035a
00001bb2: SWAP1
00001bb3: PUSH2 0x3e4c
00001bb6: JUMP
00001bb7: JUMPDEST
00001bb8: POP
00001bb9: POP
00001bba: POP
00001bbb: POP
00001bbc: POP
00001bbd: POP
00001bbe: POP
00001bbf: JUMP
00001bc0: JUMPDEST
00001bc1: PUSH0
00001bc2: MLOAD
00001bc3: PUSH1 0x20
00001bc5: PUSH2 0x3f6c
00001bc8: PUSH0
00001bc9: CODECOPY
00001bca: PUSH0
00001bcb: MLOAD
00001bcc: SWAP1
00001bcd: PUSH0
00001bce: MSTORE
00001bcf: CALLER
00001bd0: EQ
00001bd1: DUP1
00001bd2: PUSH2 0x1be9
00001bd5: JUMPI
00001bd6: POP
00001bd7: CALLER
00001bd8: PUSH0
00001bd9: SWAP1
00001bda: DUP2
00001bdb: MSTORE
00001bdc: PUSH1 0x20
00001bde: DUP2
00001bdf: SWAP1
00001be0: MSTORE
00001be1: PUSH1 0x40
00001be3: SWAP1
00001be4: KECCAK256
00001be5: SLOAD
00001be6: PUSH1 0xff
00001be8: AND
00001be9: JUMPDEST
00001bea: PUSH2 0x1c05
00001bed: JUMPI
00001bee: PUSH1 0x40
00001bf0: MLOAD
00001bf1: PUSH3 0x461bcd
00001bf5: PUSH1 0xe5
00001bf7: SHL
00001bf8: DUP2
00001bf9: MSTORE
00001bfa: PUSH1 0x04
00001bfc: ADD
00001bfd: PUSH2 0x035a
00001c00: SWAP1
00001c01: PUSH2 0x3ce1
00001c04: JUMP
00001c05: JUMPDEST
00001c06: PUSH0
00001c07: DUP3
00001c08: PUSH1 0x01
00001c0a: PUSH1 0x01
00001c0c: PUSH1 0xa0
00001c0e: SHL
00001c0f: SUB
00001c10: AND
00001c11: DUP3
00001c12: PUSH1 0x40
00001c14: MLOAD
00001c15: PUSH0
00001c16: PUSH1 0x40
00001c18: MLOAD
00001c19: DUP1
00001c1a: DUP4
00001c1b: SUB
00001c1c: DUP2
00001c1d: DUP6
00001c1e: DUP8
00001c1f: GAS
00001c20: CALL
00001c21: SWAP3
00001c22: POP
00001c23: POP
00001c24: POP
00001c25: RETURNDATASIZE
00001c26: DUP1
00001c27: PUSH0
00001c28: DUP2
00001c29: EQ
00001c2a: PUSH2 0x1c4e
00001c2d: JUMPI
00001c2e: PUSH1 0x40
00001c30: MLOAD
00001c31: SWAP2
00001c32: POP
00001c33: PUSH1 0x1f
00001c35: NOT
00001c36: PUSH1 0x3f
00001c38: RETURNDATASIZE
00001c39: ADD
00001c3a: AND
00001c3b: DUP3
00001c3c: ADD
00001c3d: PUSH1 0x40
00001c3f: MSTORE
00001c40: RETURNDATASIZE
00001c41: DUP3
00001c42: MSTORE
00001c43: RETURNDATASIZE
00001c44: PUSH0
00001c45: PUSH1 0x20
00001c47: DUP5
00001c48: ADD
00001c49: RETURNDATACOPY
00001c4a: PUSH2 0x1c53
00001c4d: JUMP
00001c4e: JUMPDEST
00001c4f: PUSH1 0x60
00001c51: SWAP2
00001c52: POP
00001c53: JUMPDEST
00001c54: POP
00001c55: POP
00001c56: SWAP1
00001c57: POP
00001c58: DUP1
00001c59: PUSH2 0x1ca4
00001c5c: JUMPI
00001c5d: PUSH1 0x40
00001c5f: MLOAD
00001c60: PUSH3 0x461bcd
00001c64: PUSH1 0xe5
00001c66: SHL
00001c67: DUP2
00001c68: MSTORE
00001c69: PUSH1 0x20
00001c6b: PUSH1 0x04
00001c6d: DUP3
00001c6e: ADD
00001c6f: MSTORE
00001c70: PUSH1 0x18
00001c72: PUSH1 0x24
00001c74: DUP3
00001c75: ADD
00001c76: MSTORE
00001c77: PUSH32 0x4661696c656420746f2077697468647261772045746865720000000000000000
00001c98: PUSH1 0x44
00001c9a: DUP3
00001c9b: ADD
00001c9c: MSTORE
00001c9d: PUSH1 0x64
00001c9f: ADD
00001ca0: PUSH2 0x035a
00001ca3: JUMP
00001ca4: JUMPDEST
00001ca5: POP
00001ca6: POP
00001ca7: POP
00001ca8: JUMP
00001ca9: JUMPDEST
00001caa: PUSH0
00001cab: MLOAD
00001cac: PUSH1 0x20
00001cae: PUSH2 0x3f6c
00001cb1: PUSH0
00001cb2: CODECOPY
00001cb3: PUSH0
00001cb4: MLOAD
00001cb5: SWAP1
00001cb6: PUSH0
00001cb7: MSTORE
00001cb8: CALLER
00001cb9: EQ
00001cba: DUP1
00001cbb: PUSH2 0x1cd2
00001cbe: JUMPI
00001cbf: POP
00001cc0: CALLER
00001cc1: PUSH0
00001cc2: SWAP1
00001cc3: DUP2
00001cc4: MSTORE
00001cc5: PUSH1 0x20
00001cc7: DUP2
00001cc8: SWAP1
00001cc9: MSTORE
00001cca: PUSH1 0x40
00001ccc: SWAP1
00001ccd: KECCAK256
00001cce: SLOAD
00001ccf: PUSH1 0xff
00001cd1: AND
00001cd2: JUMPDEST
00001cd3: PUSH2 0x1cee
00001cd6: JUMPI
00001cd7: PUSH1 0x40
00001cd9: MLOAD
00001cda: PUSH3 0x461bcd
00001cde: PUSH1 0xe5
00001ce0: SHL
00001ce1: DUP2
00001ce2: MSTORE
00001ce3: PUSH1 0x04
00001ce5: ADD
00001ce6: PUSH2 0x035a
00001ce9: SWAP1
00001cea: PUSH2 0x3ce1
00001ced: JUMP
00001cee: JUMPDEST
00001cef: DUP4
00001cf0: NUMBER
00001cf1: GT
00001cf2: ISZERO
00001cf3: PUSH2 0x1d0e
00001cf6: JUMPI
00001cf7: PUSH1 0x40
00001cf9: MLOAD
00001cfa: PUSH3 0x461bcd
00001cfe: PUSH1 0xe5
00001d00: SHL
00001d01: DUP2
00001d02: MSTORE
00001d03: PUSH1 0x04
00001d05: ADD
00001d06: PUSH2 0x035a
00001d09: SWAP1
00001d0a: PUSH2 0x3d10
00001d0d: JUMP
00001d0e: JUMPDEST
00001d0f: PUSH0
00001d10: PUSH2 0x1d19
00001d13: DUP7
00001d14: CALLVALUE
00001d15: PUSH2 0x3e33
00001d18: JUMP
00001d19: JUMPDEST
00001d1a: PUSH1 0x40
00001d1c: MLOAD
00001d1d: SWAP1
00001d1e: SWAP2
00001d1f: POP
00001d20: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00001d35: SWAP1
00001d36: DUP3
00001d37: SWAP1
00001d38: PUSH0
00001d39: DUP2
00001d3a: DUP2
00001d3b: DUP2
00001d3c: DUP6
00001d3d: DUP8
00001d3e: GAS
00001d3f: CALL
00001d40: SWAP3
00001d41: POP
00001d42: POP
00001d43: POP
00001d44: RETURNDATASIZE
00001d45: DUP1
00001d46: PUSH0
00001d47: DUP2
00001d48: EQ
00001d49: PUSH2 0x1d6d
00001d4c: JUMPI
00001d4d: PUSH1 0x40
00001d4f: MLOAD
00001d50: SWAP2
00001d51: POP
00001d52: PUSH1 0x1f
00001d54: NOT
00001d55: PUSH1 0x3f
00001d57: RETURNDATASIZE
00001d58: ADD
00001d59: AND
00001d5a: DUP3
00001d5b: ADD
00001d5c: PUSH1 0x40
00001d5e: MSTORE
00001d5f: RETURNDATASIZE
00001d60: DUP3
00001d61: MSTORE
00001d62: RETURNDATASIZE
00001d63: PUSH0
00001d64: PUSH1 0x20
00001d66: DUP5
00001d67: ADD
00001d68: RETURNDATACOPY
00001d69: PUSH2 0x1d72
00001d6c: JUMP
00001d6d: JUMPDEST
00001d6e: PUSH1 0x60
00001d70: SWAP2
00001d71: POP
00001d72: JUMPDEST
00001d73: POP
00001d74: POP
00001d75: POP
00001d76: PUSH0
00001d77: PUSH0
00001d78: PUSH0
00001d79: PUSH1 0x01
00001d7b: PUSH1 0xff
00001d7d: SHL
00001d7e: DUP6
00001d7f: AND
00001d80: PUSH0
00001d81: SUB
00001d82: PUSH2 0x1f7e
00001d85: JUMPI
00001d86: DUP7
00001d87: PUSH1 0x01
00001d89: PUSH1 0x01
00001d8b: PUSH1 0xa0
00001d8d: SHL
00001d8e: SUB
00001d8f: AND
00001d90: PUSH4 0xd21220a7
00001d95: PUSH1 0x40
00001d97: MLOAD
00001d98: DUP2
00001d99: PUSH4 0xffffffff
00001d9e: AND
00001d9f: PUSH1 0xe0
00001da1: SHL
00001da2: DUP2
00001da3: MSTORE
00001da4: PUSH1 0x04
00001da6: ADD
00001da7: PUSH1 0x20
00001da9: PUSH1 0x40
00001dab: MLOAD
00001dac: DUP1
00001dad: DUP4
00001dae: SUB
00001daf: DUP2
00001db0: DUP7
00001db1: GAS
00001db2: STATICCALL
00001db3: ISZERO
00001db4: DUP1
00001db5: ISZERO
00001db6: PUSH2 0x1dc1
00001db9: JUMPI
00001dba: RETURNDATASIZE
00001dbb: PUSH0
00001dbc: PUSH0
00001dbd: RETURNDATACOPY
00001dbe: RETURNDATASIZE
00001dbf: PUSH0
00001dc0: REVERT
00001dc1: JUMPDEST
00001dc2: POP
00001dc3: POP
00001dc4: POP
00001dc5: POP
00001dc6: PUSH1 0x40
00001dc8: MLOAD
00001dc9: RETURNDATASIZE
00001dca: PUSH1 0x1f
00001dcc: NOT
00001dcd: PUSH1 0x1f
00001dcf: DUP3
00001dd0: ADD
00001dd1: AND
00001dd2: DUP3
00001dd3: ADD
00001dd4: DUP1
00001dd5: PUSH1 0x40
00001dd7: MSTORE
00001dd8: POP
00001dd9: DUP2
00001dda: ADD
00001ddb: SWAP1
00001ddc: PUSH2 0x1de5
00001ddf: SWAP2
00001de0: SWAP1
00001de1: PUSH2 0x3da1
00001de4: JUMP
00001de5: JUMPDEST
00001de6: PUSH1 0x40
00001de8: MLOAD
00001de9: PUSH4 0x70a08231
00001dee: PUSH1 0xe0
00001df0: SHL
00001df1: DUP2
00001df2: MSTORE
00001df3: PUSH1 0x01
00001df5: PUSH1 0x01
00001df7: PUSH1 0xa0
00001df9: SHL
00001dfa: SUB
00001dfb: DUP8
00001dfc: DUP2
00001dfd: AND
00001dfe: PUSH1 0x04
00001e00: DUP4
00001e01: ADD
00001e02: MSTORE
00001e03: SWAP2
00001e04: SWAP5
00001e05: POP
00001e06: SWAP1
00001e07: DUP5
00001e08: AND
00001e09: SWAP1
00001e0a: PUSH4 0x70a08231
00001e0f: SWAP1
00001e10: PUSH1 0x24
00001e12: ADD
00001e13: PUSH1 0x20
00001e15: PUSH1 0x40
00001e17: MLOAD
00001e18: DUP1
00001e19: DUP4
00001e1a: SUB
00001e1b: DUP2
00001e1c: DUP7
00001e1d: GAS
00001e1e: STATICCALL
00001e1f: ISZERO
00001e20: DUP1
00001e21: ISZERO
00001e22: PUSH2 0x1e2d
00001e25: JUMPI
00001e26: RETURNDATASIZE
00001e27: PUSH0
00001e28: PUSH0
00001e29: RETURNDATACOPY
00001e2a: RETURNDATASIZE
00001e2b: PUSH0
00001e2c: REVERT
00001e2d: JUMPDEST
00001e2e: POP
00001e2f: POP
00001e30: POP
00001e31: POP
00001e32: PUSH1 0x40
00001e34: MLOAD
00001e35: RETURNDATASIZE
00001e36: PUSH1 0x1f
00001e38: NOT
00001e39: PUSH1 0x1f
00001e3b: DUP3
00001e3c: ADD
00001e3d: AND
00001e3e: DUP3
00001e3f: ADD
00001e40: DUP1
00001e41: PUSH1 0x40
00001e43: MSTORE
00001e44: POP
00001e45: DUP2
00001e46: ADD
00001e47: SWAP1
00001e48: PUSH2 0x1e51
00001e4b: SWAP2
00001e4c: SWAP1
00001e4d: PUSH2 0x3ddb
00001e50: JUMP
00001e51: JUMPDEST
00001e52: SWAP2
00001e53: POP
00001e54: PUSH1 0x01
00001e56: PUSH1 0xfe
00001e58: SHL
00001e59: DUP6
00001e5a: AND
00001e5b: ISZERO
00001e5c: PUSH2 0x1ec8
00001e5f: JUMPI
00001e60: PUSH1 0x40
00001e62: MLOAD
00001e63: PUSH4 0x70a08231
00001e68: PUSH1 0xe0
00001e6a: SHL
00001e6b: DUP2
00001e6c: MSTORE
00001e6d: ADDRESS
00001e6e: PUSH1 0x04
00001e70: DUP3
00001e71: ADD
00001e72: MSTORE
00001e73: PUSH1 0x01
00001e75: PUSH1 0x01
00001e77: PUSH1 0xa0
00001e79: SHL
00001e7a: SUB
00001e7b: DUP5
00001e7c: AND
00001e7d: SWAP1
00001e7e: PUSH4 0x70a08231
00001e83: SWAP1
00001e84: PUSH1 0x24
00001e86: ADD
00001e87: PUSH1 0x20
00001e89: PUSH1 0x40
00001e8b: MLOAD
00001e8c: DUP1
00001e8d: DUP4
00001e8e: SUB
00001e8f: DUP2
00001e90: DUP7
00001e91: GAS
00001e92: STATICCALL
00001e93: ISZERO
00001e94: DUP1
00001e95: ISZERO
00001e96: PUSH2 0x1ea1
00001e99: JUMPI
00001e9a: RETURNDATASIZE
00001e9b: PUSH0
00001e9c: PUSH0
00001e9d: RETURNDATACOPY
00001e9e: RETURNDATASIZE
00001e9f: PUSH0
00001ea0: REVERT
00001ea1: JUMPDEST
00001ea2: POP
00001ea3: POP
00001ea4: POP
00001ea5: POP
00001ea6: PUSH1 0x40
00001ea8: MLOAD
00001ea9: RETURNDATASIZE
00001eaa: PUSH1 0x1f
00001eac: NOT
00001ead: PUSH1 0x1f
00001eaf: DUP3
00001eb0: ADD
00001eb1: AND
00001eb2: DUP3
00001eb3: ADD
00001eb4: DUP1
00001eb5: PUSH1 0x40
00001eb7: MSTORE
00001eb8: POP
00001eb9: DUP2
00001eba: ADD
00001ebb: SWAP1
00001ebc: PUSH2 0x1ec5
00001ebf: SWAP2
00001ec0: SWAP1
00001ec1: PUSH2 0x3ddb
00001ec4: JUMP
00001ec5: JUMPDEST
00001ec6: SWAP1
00001ec7: POP
00001ec8: JUMPDEST
00001ec9: DUP7
00001eca: PUSH1 0x01
00001ecc: PUSH1 0x01
00001ece: PUSH1 0xa0
00001ed0: SHL
00001ed1: SUB
00001ed2: AND
00001ed3: PUSH4 0x128acb08
00001ed8: PUSH0
00001ed9: PUSH1 0x01
00001edb: PUSH1 0xfe
00001edd: SHL
00001ede: DUP9
00001edf: AND
00001ee0: GT
00001ee1: PUSH2 0x1eea
00001ee4: JUMPI
00001ee5: DUP7
00001ee6: PUSH2 0x1eec
00001ee9: JUMP
00001eea: JUMPDEST
00001eeb: ADDRESS
00001eec: JUMPDEST
00001eed: PUSH1 0x01
00001eef: PUSH2 0x1ef7
00001ef2: DUP9
00001ef3: PUSH2 0x39d7
00001ef6: JUMP
00001ef7: JUMPDEST
00001ef8: PUSH1 0x40
00001efa: DUP1
00001efb: MLOAD
00001efc: ADDRESS
00001efd: PUSH1 0x20
00001eff: DUP3
00001f00: ADD
00001f01: MSTORE
00001f02: PUSH5 0x01000276a4
00001f08: SWAP2
00001f09: ADD
00001f0a: PUSH1 0x40
00001f0c: MLOAD
00001f0d: PUSH1 0x20
00001f0f: DUP2
00001f10: DUP4
00001f11: SUB
00001f12: SUB
00001f13: DUP2
00001f14: MSTORE
00001f15: SWAP1
00001f16: PUSH1 0x40
00001f18: MSTORE
00001f19: PUSH1 0x40
00001f1b: MLOAD
00001f1c: DUP7
00001f1d: PUSH4 0xffffffff
00001f22: AND
00001f23: PUSH1 0xe0
00001f25: SHL
00001f26: DUP2
00001f27: MSTORE
00001f28: PUSH1 0x04
00001f2a: ADD
00001f2b: PUSH2 0x1f38
00001f2e: SWAP6
00001f2f: SWAP5
00001f30: SWAP4
00001f31: SWAP3
00001f32: SWAP2
00001f33: SWAP1
00001f34: PUSH2 0x3e77
00001f37: JUMP
00001f38: JUMPDEST
00001f39: PUSH1 0x40
00001f3b: DUP1
00001f3c: MLOAD
00001f3d: DUP1
00001f3e: DUP4
00001f3f: SUB
00001f40: DUP2
00001f41: PUSH0
00001f42: DUP8
00001f43: GAS
00001f44: CALL
00001f45: ISZERO
00001f46: DUP1
00001f47: ISZERO
00001f48: PUSH2 0x1f53
00001f4b: JUMPI
00001f4c: RETURNDATASIZE
00001f4d: PUSH0
00001f4e: PUSH0
00001f4f: RETURNDATACOPY
00001f50: RETURNDATASIZE
00001f51: PUSH0
00001f52: REVERT
00001f53: JUMPDEST
00001f54: POP
00001f55: POP
00001f56: POP
00001f57: POP
00001f58: PUSH1 0x40
00001f5a: MLOAD
00001f5b: RETURNDATASIZE
00001f5c: PUSH1 0x1f
00001f5e: NOT
00001f5f: PUSH1 0x1f
00001f61: DUP3
00001f62: ADD
00001f63: AND
00001f64: DUP3
00001f65: ADD
00001f66: DUP1
00001f67: PUSH1 0x40
00001f69: MSTORE
00001f6a: POP
00001f6b: DUP2
00001f6c: ADD
00001f6d: SWAP1
00001f6e: PUSH2 0x1f77
00001f71: SWAP2
00001f72: SWAP1
00001f73: PUSH2 0x3eb1
00001f76: JUMP
00001f77: JUMPDEST
00001f78: POP
00001f79: POP
00001f7a: PUSH2 0x2181
00001f7d: JUMP
00001f7e: JUMPDEST
00001f7f: DUP7
00001f80: PUSH1 0x01
00001f82: PUSH1 0x01
00001f84: PUSH1 0xa0
00001f86: SHL
00001f87: SUB
00001f88: AND
00001f89: PUSH4 0x0dfe1681
00001f8e: PUSH1 0x40
00001f90: MLOAD
00001f91: DUP2
00001f92: PUSH4 0xffffffff
00001f97: AND
00001f98: PUSH1 0xe0
00001f9a: SHL
00001f9b: DUP2
00001f9c: MSTORE
00001f9d: PUSH1 0x04
00001f9f: ADD
00001fa0: PUSH1 0x20
00001fa2: PUSH1 0x40
00001fa4: MLOAD
00001fa5: DUP1
00001fa6: DUP4
00001fa7: SUB
00001fa8: DUP2
00001fa9: DUP7
00001faa: GAS
00001fab: STATICCALL
00001fac: ISZERO
00001fad: DUP1
00001fae: ISZERO
00001faf: PUSH2 0x1fba
00001fb2: JUMPI
00001fb3: RETURNDATASIZE
00001fb4: PUSH0
00001fb5: PUSH0
00001fb6: RETURNDATACOPY
00001fb7: RETURNDATASIZE
00001fb8: PUSH0
00001fb9: REVERT
00001fba: JUMPDEST
00001fbb: POP
00001fbc: POP
00001fbd: POP
00001fbe: POP
00001fbf: PUSH1 0x40
00001fc1: MLOAD
00001fc2: RETURNDATASIZE
00001fc3: PUSH1 0x1f
00001fc5: NOT
00001fc6: PUSH1 0x1f
00001fc8: DUP3
00001fc9: ADD
00001fca: AND
00001fcb: DUP3
00001fcc: ADD
00001fcd: DUP1
00001fce: PUSH1 0x40
00001fd0: MSTORE
00001fd1: POP
00001fd2: DUP2
00001fd3: ADD
00001fd4: SWAP1
00001fd5: PUSH2 0x1fde
00001fd8: SWAP2
00001fd9: SWAP1
00001fda: PUSH2 0x3da1
00001fdd: JUMP
00001fde: JUMPDEST
00001fdf: PUSH1 0x40
00001fe1: MLOAD
00001fe2: PUSH4 0x70a08231
00001fe7: PUSH1 0xe0
00001fe9: SHL
00001fea: DUP2
00001feb: MSTORE
00001fec: PUSH1 0x01
00001fee: PUSH1 0x01
00001ff0: PUSH1 0xa0
00001ff2: SHL
00001ff3: SUB
00001ff4: DUP8
00001ff5: DUP2
00001ff6: AND
00001ff7: PUSH1 0x04
00001ff9: DUP4
00001ffa: ADD
00001ffb: MSTORE
00001ffc: SWAP2
00001ffd: SWAP5
00001ffe: POP
00001fff: SWAP1
00002000: DUP5
00002001: AND
00002002: SWAP1
00002003: PUSH4 0x70a08231
00002008: SWAP1
00002009: PUSH1 0x24
0000200b: ADD
0000200c: PUSH1 0x20
0000200e: PUSH1 0x40
00002010: MLOAD
00002011: DUP1
00002012: DUP4
00002013: SUB
00002014: DUP2
00002015: DUP7
00002016: GAS
00002017: STATICCALL
00002018: ISZERO
00002019: DUP1
0000201a: ISZERO
0000201b: PUSH2 0x2026
0000201e: JUMPI
0000201f: RETURNDATASIZE
00002020: PUSH0
00002021: PUSH0
00002022: RETURNDATACOPY
00002023: RETURNDATASIZE
00002024: PUSH0
00002025: REVERT
00002026: JUMPDEST
00002027: POP
00002028: POP
00002029: POP
0000202a: POP
0000202b: PUSH1 0x40
0000202d: MLOAD
0000202e: RETURNDATASIZE
0000202f: PUSH1 0x1f
00002031: NOT
00002032: PUSH1 0x1f
00002034: DUP3
00002035: ADD
00002036: AND
00002037: DUP3
00002038: ADD
00002039: DUP1
0000203a: PUSH1 0x40
0000203c: MSTORE
0000203d: POP
0000203e: DUP2
0000203f: ADD
00002040: SWAP1
00002041: PUSH2 0x204a
00002044: SWAP2
00002045: SWAP1
00002046: PUSH2 0x3ddb
00002049: JUMP
0000204a: JUMPDEST
0000204b: SWAP2
0000204c: POP
0000204d: PUSH1 0x01
0000204f: PUSH1 0xfe
00002051: SHL
00002052: DUP6
00002053: AND
00002054: ISZERO
00002055: PUSH2 0x20c1
00002058: JUMPI
00002059: PUSH1 0x40
0000205b: MLOAD
0000205c: PUSH4 0x70a08231
00002061: PUSH1 0xe0
00002063: SHL
00002064: DUP2
00002065: MSTORE
00002066: ADDRESS
00002067: PUSH1 0x04
00002069: DUP3
0000206a: ADD
0000206b: MSTORE
0000206c: PUSH1 0x01
0000206e: PUSH1 0x01
00002070: PUSH1 0xa0
00002072: SHL
00002073: SUB
00002074: DUP5
00002075: AND
00002076: SWAP1
00002077: PUSH4 0x70a08231
0000207c: SWAP1
0000207d: PUSH1 0x24
0000207f: ADD
00002080: PUSH1 0x20
00002082: PUSH1 0x40
00002084: MLOAD
00002085: DUP1
00002086: DUP4
00002087: SUB
00002088: DUP2
00002089: DUP7
0000208a: GAS
0000208b: STATICCALL
0000208c: ISZERO
0000208d: DUP1
0000208e: ISZERO
0000208f: PUSH2 0x209a
00002092: JUMPI
00002093: RETURNDATASIZE
00002094: PUSH0
00002095: PUSH0
00002096: RETURNDATACOPY
00002097: RETURNDATASIZE
00002098: PUSH0
00002099: REVERT
0000209a: JUMPDEST
0000209b: POP
0000209c: POP
0000209d: POP
0000209e: POP
0000209f: PUSH1 0x40
000020a1: MLOAD
000020a2: RETURNDATASIZE
000020a3: PUSH1 0x1f
000020a5: NOT
000020a6: PUSH1 0x1f
000020a8: DUP3
000020a9: ADD
000020aa: AND
000020ab: DUP3
000020ac: ADD
000020ad: DUP1
000020ae: PUSH1 0x40
000020b0: MSTORE
000020b1: POP
000020b2: DUP2
000020b3: ADD
000020b4: SWAP1
000020b5: PUSH2 0x20be
000020b8: SWAP2
000020b9: SWAP1
000020ba: PUSH2 0x3ddb
000020bd: JUMP
000020be: JUMPDEST
000020bf: SWAP1
000020c0: POP
000020c1: JUMPDEST
000020c2: DUP7
000020c3: PUSH1 0x01
000020c5: PUSH1 0x01
000020c7: PUSH1 0xa0
000020c9: SHL
000020ca: SUB
000020cb: AND
000020cc: PUSH4 0x128acb08
000020d1: PUSH0
000020d2: PUSH1 0x01
000020d4: PUSH1 0xfe
000020d6: SHL
000020d7: DUP9
000020d8: AND
000020d9: GT
000020da: PUSH2 0x20e3
000020dd: JUMPI
000020de: DUP7
000020df: PUSH2 0x20e5
000020e2: JUMP
000020e3: JUMPDEST
000020e4: ADDRESS
000020e5: JUMPDEST
000020e6: PUSH0
000020e7: PUSH2 0x20ef
000020ea: DUP9
000020eb: PUSH2 0x39d7
000020ee: JUMP
000020ef: JUMPDEST
000020f0: PUSH1 0x40
000020f2: DUP1
000020f3: MLOAD
000020f4: ADDRESS
000020f5: PUSH1 0x20
000020f7: DUP3
000020f8: ADD
000020f9: MSTORE
000020fa: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25
0000210f: SWAP2
00002110: ADD
00002111: PUSH1 0x40
00002113: MLOAD
00002114: PUSH1 0x20
00002116: DUP2
00002117: DUP4
00002118: SUB
00002119: SUB
0000211a: DUP2
0000211b: MSTORE
0000211c: SWAP1
0000211d: PUSH1 0x40
0000211f: MSTORE
00002120: PUSH1 0x40
00002122: MLOAD
00002123: DUP7
00002124: PUSH4 0xffffffff
00002129: AND
0000212a: PUSH1 0xe0
0000212c: SHL
0000212d: DUP2
0000212e: MSTORE
0000212f: PUSH1 0x04
00002131: ADD
00002132: PUSH2 0x213f
00002135: SWAP6
00002136: SWAP5
00002137: SWAP4
00002138: SWAP3
00002139: SWAP2
0000213a: SWAP1
0000213b: PUSH2 0x3e77
0000213e: JUMP
0000213f: JUMPDEST
00002140: PUSH1 0x40
00002142: DUP1
00002143: MLOAD
00002144: DUP1
00002145: DUP4
00002146: SUB
00002147: DUP2
00002148: PUSH0
00002149: DUP8
0000214a: GAS
0000214b: CALL
0000214c: ISZERO
0000214d: DUP1
0000214e: ISZERO
0000214f: PUSH2 0x215a
00002152: JUMPI
00002153: RETURNDATASIZE
00002154: PUSH0
00002155: PUSH0
00002156: RETURNDATACOPY
00002157: RETURNDATASIZE
00002158: PUSH0
00002159: REVERT
0000215a: JUMPDEST
0000215b: POP
0000215c: POP
0000215d: POP
0000215e: POP
0000215f: PUSH1 0x40
00002161: MLOAD
00002162: RETURNDATASIZE
00002163: PUSH1 0x1f
00002165: NOT
00002166: PUSH1 0x1f
00002168: DUP3
00002169: ADD
0000216a: AND
0000216b: DUP3
0000216c: ADD
0000216d: DUP1
0000216e: PUSH1 0x40
00002170: MSTORE
00002171: POP
00002172: DUP2
00002173: ADD
00002174: SWAP1
00002175: PUSH2 0x217e
00002178: SWAP2
00002179: SWAP1
0000217a: PUSH2 0x3eb1
0000217d: JUMP
0000217e: JUMPDEST
0000217f: POP
00002180: POP
00002181: JUMPDEST
00002182: PUSH1 0x01
00002184: PUSH1 0xfe
00002186: SHL
00002187: DUP6
00002188: AND
00002189: ISZERO
0000218a: PUSH2 0x2238
0000218d: JUMPI
0000218e: PUSH1 0x40
00002190: MLOAD
00002191: PUSH4 0x70a08231
00002196: PUSH1 0xe0
00002198: SHL
00002199: DUP2
0000219a: MSTORE
0000219b: ADDRESS
0000219c: PUSH1 0x04
0000219e: DUP3
0000219f: ADD
000021a0: MSTORE
000021a1: PUSH0
000021a2: SWAP1
000021a3: PUSH1 0x01
000021a5: PUSH1 0x01
000021a7: PUSH1 0xa0
000021a9: SHL
000021aa: SUB
000021ab: DUP6
000021ac: AND
000021ad: SWAP1
000021ae: PUSH4 0x70a08231
000021b3: SWAP1
000021b4: PUSH1 0x24
000021b6: ADD
000021b7: PUSH1 0x20
000021b9: PUSH1 0x40
000021bb: MLOAD
000021bc: DUP1
000021bd: DUP4
000021be: SUB
000021bf: DUP2
000021c0: DUP7
000021c1: GAS
000021c2: STATICCALL
000021c3: ISZERO
000021c4: DUP1
000021c5: ISZERO
000021c6: PUSH2 0x21d1
000021c9: JUMPI
000021ca: RETURNDATASIZE
000021cb: PUSH0
000021cc: PUSH0
000021cd: RETURNDATACOPY
000021ce: RETURNDATASIZE
000021cf: PUSH0
000021d0: REVERT
000021d1: JUMPDEST
000021d2: POP
000021d3: POP
000021d4: POP
000021d5: POP
000021d6: PUSH1 0x40
000021d8: MLOAD
000021d9: RETURNDATASIZE
000021da: PUSH1 0x1f
000021dc: NOT
000021dd: PUSH1 0x1f
000021df: DUP3
000021e0: ADD
000021e1: AND
000021e2: DUP3
000021e3: ADD
000021e4: DUP1
000021e5: PUSH1 0x40
000021e7: MSTORE
000021e8: POP
000021e9: DUP2
000021ea: ADD
000021eb: SWAP1
000021ec: PUSH2 0x21f5
000021ef: SWAP2
000021f0: SWAP1
000021f1: PUSH2 0x3ddb
000021f4: JUMP
000021f5: JUMPDEST
000021f6: SWAP1
000021f7: POP
000021f8: DUP2
000021f9: PUSH0
000021fa: SUB
000021fb: PUSH2 0x2227
000021fe: JUMPI
000021ff: PUSH2 0x220e
00002202: DUP5
00002203: DUP8
00002204: PUSH2 0x0138
00002207: PUSH1 0x01
00002209: DUP6
0000220a: PUSH2 0x3e33
0000220d: JUMP
0000220e: JUMPDEST
0000220f: DUP7
00002210: ISZERO
00002211: PUSH2 0x2222
00002214: JUMPI
00002215: PUSH2 0x221f
00002218: PUSH1 0x01
0000221a: DUP9
0000221b: PUSH2 0x3e33
0000221e: JUMP
0000221f: JUMPDEST
00002220: SWAP7
00002221: POP
00002222: JUMPDEST
00002223: PUSH2 0x2236
00002226: JUMP
00002227: JUMPDEST
00002228: PUSH2 0x2236
0000222b: DUP5
0000222c: DUP8
0000222d: PUSH2 0x0138
00002230: DUP6
00002231: DUP6
00002232: PUSH2 0x3e33
00002235: JUMP
00002236: JUMPDEST
00002237: POP
00002238: JUMPDEST
00002239: PUSH1 0x40
0000223b: MLOAD
0000223c: PUSH4 0x70a08231
00002241: PUSH1 0xe0
00002243: SHL
00002244: DUP2
00002245: MSTORE
00002246: PUSH1 0x01
00002248: PUSH1 0x01
0000224a: PUSH1 0xa0
0000224c: SHL
0000224d: SUB
0000224e: DUP7
0000224f: DUP2
00002250: AND
00002251: PUSH1 0x04
00002253: DUP4
00002254: ADD
00002255: MSTORE
00002256: DUP8
00002257: SWAP2
00002258: DUP5
00002259: SWAP2
0000225a: DUP7
0000225b: AND
0000225c: SWAP1
0000225d: PUSH4 0x70a08231
00002262: SWAP1
00002263: PUSH1 0x24
00002265: ADD
00002266: PUSH1 0x20
00002268: PUSH1 0x40
0000226a: MLOAD
0000226b: DUP1
0000226c: DUP4
0000226d: SUB
0000226e: DUP2
0000226f: DUP7
00002270: GAS
00002271: STATICCALL
00002272: ISZERO
00002273: DUP1
00002274: ISZERO
00002275: PUSH2 0x2280
00002278: JUMPI
00002279: RETURNDATASIZE
0000227a: PUSH0
0000227b: PUSH0
0000227c: RETURNDATACOPY
0000227d: RETURNDATASIZE
0000227e: PUSH0
0000227f: REVERT
00002280: JUMPDEST
00002281: POP
00002282: POP
00002283: POP
00002284: POP
00002285: PUSH1 0x40
00002287: MLOAD
00002288: RETURNDATASIZE
00002289: PUSH1 0x1f
0000228b: NOT
0000228c: PUSH1 0x1f
0000228e: DUP3
0000228f: ADD
00002290: AND
00002291: DUP3
00002292: ADD
00002293: DUP1
00002294: PUSH1 0x40
00002296: MSTORE
00002297: POP
00002298: DUP2
00002299: ADD
0000229a: SWAP1
0000229b: PUSH2 0x22a4
0000229e: SWAP2
0000229f: SWAP1
000022a0: PUSH2 0x3ddb
000022a3: JUMP
000022a4: JUMPDEST
000022a5: PUSH2 0x22ae
000022a8: SWAP2
000022a9: SWAP1
000022aa: PUSH2 0x3e33
000022ad: JUMP
000022ae: JUMPDEST
000022af: LT
000022b0: ISZERO
000022b1: PUSH2 0x22cc
000022b4: JUMPI
000022b5: PUSH1 0x40
000022b7: MLOAD
000022b8: PUSH3 0x461bcd
000022bc: PUSH1 0xe5
000022be: SHL
000022bf: DUP2
000022c0: MSTORE
000022c1: PUSH1 0x04
000022c3: ADD
000022c4: PUSH2 0x035a
000022c7: SWAP1
000022c8: PUSH2 0x3e4c
000022cb: JUMP
000022cc: JUMPDEST
000022cd: PUSH1 0x40
000022cf: MLOAD
000022d0: COINBASE
000022d1: SWAP1
000022d2: DUP11
000022d3: SWAP1
000022d4: PUSH0
000022d5: DUP2
000022d6: DUP2
000022d7: DUP2
000022d8: DUP6
000022d9: DUP8
000022da: GAS
000022db: CALL
000022dc: SWAP3
000022dd: POP
000022de: POP
000022df: POP
000022e0: RETURNDATASIZE
000022e1: DUP1
000022e2: PUSH0
000022e3: DUP2
000022e4: EQ
000022e5: PUSH2 0x2309
000022e8: JUMPI
000022e9: PUSH1 0x40
000022eb: MLOAD
000022ec: SWAP2
000022ed: POP
000022ee: PUSH1 0x1f
000022f0: NOT
000022f1: PUSH1 0x3f
000022f3: RETURNDATASIZE
000022f4: ADD
000022f5: AND
000022f6: DUP3
000022f7: ADD
000022f8: PUSH1 0x40
000022fa: MSTORE
000022fb: RETURNDATASIZE
000022fc: DUP3
000022fd: MSTORE
000022fe: RETURNDATASIZE
000022ff: PUSH0
00002300: PUSH1 0x20
00002302: DUP5
00002303: ADD
00002304: RETURNDATACOPY
00002305: PUSH2 0x230e
00002308: JUMP
00002309: JUMPDEST
0000230a: PUSH1 0x60
0000230c: SWAP2
0000230d: POP
0000230e: JUMPDEST
0000230f: POP
00002310: POP
00002311: POP
00002312: POP
00002313: POP
00002314: POP
00002315: POP
00002316: POP
00002317: POP
00002318: POP
00002319: POP
0000231a: POP
0000231b: JUMP
0000231c: JUMPDEST
0000231d: PUSH0
0000231e: MLOAD
0000231f: PUSH1 0x20
00002321: PUSH2 0x3f6c
00002324: PUSH0
00002325: CODECOPY
00002326: PUSH0
00002327: MLOAD
00002328: SWAP1
00002329: PUSH0
0000232a: MSTORE
0000232b: CALLER
0000232c: EQ
0000232d: DUP1
0000232e: PUSH2 0x2345
00002331: JUMPI
00002332: POP
00002333: CALLER
00002334: PUSH0
00002335: SWAP1
00002336: DUP2
00002337: MSTORE
00002338: PUSH1 0x20
0000233a: DUP2
0000233b: SWAP1
0000233c: MSTORE
0000233d: PUSH1 0x40
0000233f: SWAP1
00002340: KECCAK256
00002341: SLOAD
00002342: PUSH1 0xff
00002344: AND
00002345: JUMPDEST
00002346: PUSH2 0x2361
00002349: JUMPI
0000234a: PUSH1 0x40
0000234c: MLOAD
0000234d: PUSH3 0x461bcd
00002351: PUSH1 0xe5
00002353: SHL
00002354: DUP2
00002355: MSTORE
00002356: PUSH1 0x04
00002358: ADD
00002359: PUSH2 0x035a
0000235c: SWAP1
0000235d: PUSH2 0x3ce1
00002360: JUMP
00002361: JUMPDEST
00002362: PUSH1 0x01
00002364: PUSH1 0x01
00002366: PUSH1 0xa0
00002368: SHL
00002369: SUB
0000236a: AND
0000236b: PUSH0
0000236c: SWAP1
0000236d: DUP2
0000236e: MSTORE
0000236f: PUSH1 0x20
00002371: DUP2
00002372: SWAP1
00002373: MSTORE
00002374: PUSH1 0x40
00002376: SWAP1
00002377: KECCAK256
00002378: DUP1
00002379: SLOAD
0000237a: PUSH1 0xff
0000237c: NOT
0000237d: AND
0000237e: PUSH1 0x01
00002380: OR
00002381: SWAP1
00002382: SSTORE
00002383: JUMP
00002384: JUMPDEST
00002385: PUSH0
00002386: MLOAD
00002387: PUSH1 0x20
00002389: PUSH2 0x3f6c
0000238c: PUSH0
0000238d: CODECOPY
0000238e: PUSH0
0000238f: MLOAD
00002390: SWAP1
00002391: PUSH0
00002392: MSTORE
00002393: CALLER
00002394: EQ
00002395: DUP1
00002396: PUSH2 0x23ad
00002399: JUMPI
0000239a: POP
0000239b: CALLER
0000239c: PUSH0
0000239d: SWAP1
0000239e: DUP2
0000239f: MSTORE
000023a0: PUSH1 0x20
000023a2: DUP2
000023a3: SWAP1
000023a4: MSTORE
000023a5: PUSH1 0x40
000023a7: SWAP1
000023a8: KECCAK256
000023a9: SLOAD
000023aa: PUSH1 0xff
000023ac: AND
000023ad: JUMPDEST
000023ae: PUSH2 0x23c9
000023b1: JUMPI
000023b2: PUSH1 0x40
000023b4: MLOAD
000023b5: PUSH3 0x461bcd
000023b9: PUSH1 0xe5
000023bb: SHL
000023bc: DUP2
000023bd: MSTORE
000023be: PUSH1 0x04
000023c0: ADD
000023c1: PUSH2 0x035a
000023c4: SWAP1
000023c5: PUSH2 0x3ce1
000023c8: JUMP
000023c9: JUMPDEST
000023ca: DUP5
000023cb: NUMBER
000023cc: GT
000023cd: ISZERO
000023ce: PUSH2 0x23e9
000023d1: JUMPI
000023d2: PUSH1 0x40
000023d4: MLOAD
000023d5: PUSH3 0x461bcd
000023d9: PUSH1 0xe5
000023db: SHL
000023dc: DUP2
000023dd: MSTORE
000023de: PUSH1 0x04
000023e0: ADD
000023e1: PUSH2 0x035a
000023e4: SWAP1
000023e5: PUSH2 0x3d10
000023e8: JUMP
000023e9: JUMPDEST
000023ea: PUSH0
000023eb: PUSH0
000023ec: PUSH0
000023ed: PUSH1 0x01
000023ef: PUSH1 0xff
000023f1: SHL
000023f2: DUP5
000023f3: AND
000023f4: PUSH0
000023f5: SUB
000023f6: PUSH2 0x25ec
000023f9: JUMPI
000023fa: DUP6
000023fb: PUSH1 0x01
000023fd: PUSH1 0x01
000023ff: PUSH1 0xa0
00002401: SHL
00002402: SUB
00002403: AND
00002404: PUSH4 0xd21220a7
00002409: PUSH1 0x40
0000240b: MLOAD
0000240c: DUP2
0000240d: PUSH4 0xffffffff
00002412: AND
00002413: PUSH1 0xe0
00002415: SHL
00002416: DUP2
00002417: MSTORE
00002418: PUSH1 0x04
0000241a: ADD
0000241b: PUSH1 0x20
0000241d: PUSH1 0x40
0000241f: MLOAD
00002420: DUP1
00002421: DUP4
00002422: SUB
00002423: DUP2
00002424: DUP7
00002425: GAS
00002426: STATICCALL
00002427: ISZERO
00002428: DUP1
00002429: ISZERO
0000242a: PUSH2 0x2435
0000242d: JUMPI
0000242e: RETURNDATASIZE
0000242f: PUSH0
00002430: PUSH0
00002431: RETURNDATACOPY
00002432: RETURNDATASIZE
00002433: PUSH0
00002434: REVERT
00002435: JUMPDEST
00002436: POP
00002437: POP
00002438: POP
00002439: POP
0000243a: PUSH1 0x40
0000243c: MLOAD
0000243d: RETURNDATASIZE
0000243e: PUSH1 0x1f
00002440: NOT
00002441: PUSH1 0x1f
00002443: DUP3
00002444: ADD
00002445: AND
00002446: DUP3
00002447: ADD
00002448: DUP1
00002449: PUSH1 0x40
0000244b: MSTORE
0000244c: POP
0000244d: DUP2
0000244e: ADD
0000244f: SWAP1
00002450: PUSH2 0x2459
00002453: SWAP2
00002454: SWAP1
00002455: PUSH2 0x3da1
00002458: JUMP
00002459: JUMPDEST
0000245a: PUSH1 0x40
0000245c: MLOAD
0000245d: PUSH4 0x70a08231
00002462: PUSH1 0xe0
00002464: SHL
00002465: DUP2
00002466: MSTORE
00002467: PUSH1 0x01
00002469: PUSH1 0x01
0000246b: PUSH1 0xa0
0000246d: SHL
0000246e: SUB
0000246f: DUP7
00002470: DUP2
00002471: AND
00002472: PUSH1 0x04
00002474: DUP4
00002475: ADD
00002476: MSTORE
00002477: SWAP2
00002478: SWAP5
00002479: POP
0000247a: SWAP1
0000247b: DUP5
0000247c: AND
0000247d: SWAP1
0000247e: PUSH4 0x70a08231
00002483: SWAP1
00002484: PUSH1 0x24
00002486: ADD
00002487: PUSH1 0x20
00002489: PUSH1 0x40
0000248b: MLOAD
0000248c: DUP1
0000248d: DUP4
0000248e: SUB
0000248f: DUP2
00002490: DUP7
00002491: GAS
00002492: STATICCALL
00002493: ISZERO
00002494: DUP1
00002495: ISZERO
00002496: PUSH2 0x24a1
00002499: JUMPI
0000249a: RETURNDATASIZE
0000249b: PUSH0
0000249c: PUSH0
0000249d: RETURNDATACOPY
0000249e: RETURNDATASIZE
0000249f: PUSH0
000024a0: REVERT
000024a1: JUMPDEST
000024a2: POP
000024a3: POP
000024a4: POP
000024a5: POP
000024a6: PUSH1 0x40
000024a8: MLOAD
000024a9: RETURNDATASIZE
000024aa: PUSH1 0x1f
000024ac: NOT
000024ad: PUSH1 0x1f
000024af: DUP3
000024b0: ADD
000024b1: AND
000024b2: DUP3
000024b3: ADD
000024b4: DUP1
000024b5: PUSH1 0x40
000024b7: MSTORE
000024b8: POP
000024b9: DUP2
000024ba: ADD
000024bb: SWAP1
000024bc: PUSH2 0x24c5
000024bf: SWAP2
000024c0: SWAP1
000024c1: PUSH2 0x3ddb
000024c4: JUMP
000024c5: JUMPDEST
000024c6: SWAP2
000024c7: POP
000024c8: PUSH1 0x01
000024ca: PUSH1 0xfe
000024cc: SHL
000024cd: DUP5
000024ce: AND
000024cf: ISZERO
000024d0: PUSH2 0x253c
000024d3: JUMPI
000024d4: PUSH1 0x40
000024d6: MLOAD
000024d7: PUSH4 0x70a08231
000024dc: PUSH1 0xe0
000024de: SHL
000024df: DUP2
000024e0: MSTORE
000024e1: ADDRESS
000024e2: PUSH1 0x04
000024e4: DUP3
000024e5: ADD
000024e6: MSTORE
000024e7: PUSH1 0x01
000024e9: PUSH1 0x01
000024eb: PUSH1 0xa0
000024ed: SHL
000024ee: SUB
000024ef: DUP5
000024f0: AND
000024f1: SWAP1
000024f2: PUSH4 0x70a08231
000024f7: SWAP1
000024f8: PUSH1 0x24
000024fa: ADD
000024fb: PUSH1 0x20
000024fd: PUSH1 0x40
000024ff: MLOAD
00002500: DUP1
00002501: DUP4
00002502: SUB
00002503: DUP2
00002504: DUP7
00002505: GAS
00002506: STATICCALL
00002507: ISZERO
00002508: DUP1
00002509: ISZERO
0000250a: PUSH2 0x2515
0000250d: JUMPI
0000250e: RETURNDATASIZE
0000250f: PUSH0
00002510: PUSH0
00002511: RETURNDATACOPY
00002512: RETURNDATASIZE
00002513: PUSH0
00002514: REVERT
00002515: JUMPDEST
00002516: POP
00002517: POP
00002518: POP
00002519: POP
0000251a: PUSH1 0x40
0000251c: MLOAD
0000251d: RETURNDATASIZE
0000251e: PUSH1 0x1f
00002520: NOT
00002521: PUSH1 0x1f
00002523: DUP3
00002524: ADD
00002525: AND
00002526: DUP3
00002527: ADD
00002528: DUP1
00002529: PUSH1 0x40
0000252b: MSTORE
0000252c: POP
0000252d: DUP2
0000252e: ADD
0000252f: SWAP1
00002530: PUSH2 0x2539
00002533: SWAP2
00002534: SWAP1
00002535: PUSH2 0x3ddb
00002538: JUMP
00002539: JUMPDEST
0000253a: SWAP1
0000253b: POP
0000253c: JUMPDEST
0000253d: DUP6
0000253e: PUSH1 0x01
00002540: PUSH1 0x01
00002542: PUSH1 0xa0
00002544: SHL
00002545: SUB
00002546: AND
00002547: PUSH4 0x128acb08
0000254c: PUSH0
0000254d: PUSH1 0x01
0000254f: PUSH1 0xfe
00002551: SHL
00002552: DUP8
00002553: AND
00002554: GT
00002555: PUSH2 0x255e
00002558: JUMPI
00002559: DUP6
0000255a: PUSH2 0x2560
0000255d: JUMP
0000255e: JUMPDEST
0000255f: ADDRESS
00002560: JUMPDEST
00002561: PUSH1 0x40
00002563: DUP1
00002564: MLOAD
00002565: ADDRESS
00002566: PUSH1 0x20
00002568: DUP3
00002569: ADD
0000256a: MSTORE
0000256b: PUSH1 0x01
0000256d: SWAP2
0000256e: DUP13
0000256f: SWAP2
00002570: PUSH5 0x01000276a4
00002576: SWAP2
00002577: ADD
00002578: PUSH1 0x40
0000257a: MLOAD
0000257b: PUSH1 0x20
0000257d: DUP2
0000257e: DUP4
0000257f: SUB
00002580: SUB
00002581: DUP2
00002582: MSTORE
00002583: SWAP1
00002584: PUSH1 0x40
00002586: MSTORE
00002587: PUSH1 0x40
00002589: MLOAD
0000258a: DUP7
0000258b: PUSH4 0xffffffff
00002590: AND
00002591: PUSH1 0xe0
00002593: SHL
00002594: DUP2
00002595: MSTORE
00002596: PUSH1 0x04
00002598: ADD
00002599: PUSH2 0x25a6
0000259c: SWAP6
0000259d: SWAP5
0000259e: SWAP4
0000259f: SWAP3
000025a0: SWAP2
000025a1: SWAP1
000025a2: PUSH2 0x3e77
000025a5: JUMP
000025a6: JUMPDEST
000025a7: PUSH1 0x40
000025a9: DUP1
000025aa: MLOAD
000025ab: DUP1
000025ac: DUP4
000025ad: SUB
000025ae: DUP2
000025af: PUSH0
000025b0: DUP8
000025b1: GAS
000025b2: CALL
000025b3: ISZERO
000025b4: DUP1
000025b5: ISZERO
000025b6: PUSH2 0x25c1
000025b9: JUMPI
000025ba: RETURNDATASIZE
000025bb: PUSH0
000025bc: PUSH0
000025bd: RETURNDATACOPY
000025be: RETURNDATASIZE
000025bf: PUSH0
000025c0: REVERT
000025c1: JUMPDEST
000025c2: POP
000025c3: POP
000025c4: POP
000025c5: POP
000025c6: PUSH1 0x40
000025c8: MLOAD
000025c9: RETURNDATASIZE
000025ca: PUSH1 0x1f
000025cc: NOT
000025cd: PUSH1 0x1f
000025cf: DUP3
000025d0: ADD
000025d1: AND
000025d2: DUP3
000025d3: ADD
000025d4: DUP1
000025d5: PUSH1 0x40
000025d7: MSTORE
000025d8: POP
000025d9: DUP2
000025da: ADD
000025db: SWAP1
000025dc: PUSH2 0x25e5
000025df: SWAP2
000025e0: SWAP1
000025e1: PUSH2 0x3eb1
000025e4: JUMP
000025e5: JUMPDEST
000025e6: POP
000025e7: POP
000025e8: PUSH2 0x27e9
000025eb: JUMP
000025ec: JUMPDEST
000025ed: DUP6
000025ee: PUSH1 0x01
000025f0: PUSH1 0x01
000025f2: PUSH1 0xa0
000025f4: SHL
000025f5: SUB
000025f6: AND
000025f7: PUSH4 0x0dfe1681
000025fc: PUSH1 0x40
000025fe: MLOAD
000025ff: DUP2
00002600: PUSH4 0xffffffff
00002605: AND
00002606: PUSH1 0xe0
00002608: SHL
00002609: DUP2
0000260a: MSTORE
0000260b: PUSH1 0x04
0000260d: ADD
0000260e: PUSH1 0x20
00002610: PUSH1 0x40
00002612: MLOAD
00002613: DUP1
00002614: DUP4
00002615: SUB
00002616: DUP2
00002617: DUP7
00002618: GAS
00002619: STATICCALL
0000261a: ISZERO
0000261b: DUP1
0000261c: ISZERO
0000261d: PUSH2 0x2628
00002620: JUMPI
00002621: RETURNDATASIZE
00002622: PUSH0
00002623: PUSH0
00002624: RETURNDATACOPY
00002625: RETURNDATASIZE
00002626: PUSH0
00002627: REVERT
00002628: JUMPDEST
00002629: POP
0000262a: POP
0000262b: POP
0000262c: POP
0000262d: PUSH1 0x40
0000262f: MLOAD
00002630: RETURNDATASIZE
00002631: PUSH1 0x1f
00002633: NOT
00002634: PUSH1 0x1f
00002636: DUP3
00002637: ADD
00002638: AND
00002639: DUP3
0000263a: ADD
0000263b: DUP1
0000263c: PUSH1 0x40
0000263e: MSTORE
0000263f: POP
00002640: DUP2
00002641: ADD
00002642: SWAP1
00002643: PUSH2 0x264c
00002646: SWAP2
00002647: SWAP1
00002648: PUSH2 0x3da1
0000264b: JUMP
0000264c: JUMPDEST
0000264d: PUSH1 0x40
0000264f: MLOAD
00002650: PUSH4 0x70a08231
00002655: PUSH1 0xe0
00002657: SHL
00002658: DUP2
00002659: MSTORE
0000265a: PUSH1 0x01
0000265c: PUSH1 0x01
0000265e: PUSH1 0xa0
00002660: SHL
00002661: SUB
00002662: DUP7
00002663: DUP2
00002664: AND
00002665: PUSH1 0x04
00002667: DUP4
00002668: ADD
00002669: MSTORE
0000266a: SWAP2
0000266b: SWAP5
0000266c: POP
0000266d: SWAP1
0000266e: DUP5
0000266f: AND
00002670: SWAP1
00002671: PUSH4 0x70a08231
00002676: SWAP1
00002677: PUSH1 0x24
00002679: ADD
0000267a: PUSH1 0x20
0000267c: PUSH1 0x40
0000267e: MLOAD
0000267f: DUP1
00002680: DUP4
00002681: SUB
00002682: DUP2
00002683: DUP7
00002684: GAS
00002685: STATICCALL
00002686: ISZERO
00002687: DUP1
00002688: ISZERO
00002689: PUSH2 0x2694
0000268c: JUMPI
0000268d: RETURNDATASIZE
0000268e: PUSH0
0000268f: PUSH0
00002690: RETURNDATACOPY
00002691: RETURNDATASIZE
00002692: PUSH0
00002693: REVERT
00002694: JUMPDEST
00002695: POP
00002696: POP
00002697: POP
00002698: POP
00002699: PUSH1 0x40
0000269b: MLOAD
0000269c: RETURNDATASIZE
0000269d: PUSH1 0x1f
0000269f: NOT
000026a0: PUSH1 0x1f
000026a2: DUP3
000026a3: ADD
000026a4: AND
000026a5: DUP3
000026a6: ADD
000026a7: DUP1
000026a8: PUSH1 0x40
000026aa: MSTORE
000026ab: POP
000026ac: DUP2
000026ad: ADD
000026ae: SWAP1
000026af: PUSH2 0x26b8
000026b2: SWAP2
000026b3: SWAP1
000026b4: PUSH2 0x3ddb
000026b7: JUMP
000026b8: JUMPDEST
000026b9: SWAP2
000026ba: POP
000026bb: PUSH1 0x01
000026bd: PUSH1 0xfe
000026bf: SHL
000026c0: DUP5
000026c1: AND
000026c2: ISZERO
000026c3: PUSH2 0x272f
000026c6: JUMPI
000026c7: PUSH1 0x40
000026c9: MLOAD
000026ca: PUSH4 0x70a08231
000026cf: PUSH1 0xe0
000026d1: SHL
000026d2: DUP2
000026d3: MSTORE
000026d4: ADDRESS
000026d5: PUSH1 0x04
000026d7: DUP3
000026d8: ADD
000026d9: MSTORE
000026da: PUSH1 0x01
000026dc: PUSH1 0x01
000026de: PUSH1 0xa0
000026e0: SHL
000026e1: SUB
000026e2: DUP5
000026e3: AND
000026e4: SWAP1
000026e5: PUSH4 0x70a08231
000026ea: SWAP1
000026eb: PUSH1 0x24
000026ed: ADD
000026ee: PUSH1 0x20
000026f0: PUSH1 0x40
000026f2: MLOAD
000026f3: DUP1
000026f4: DUP4
000026f5: SUB
000026f6: DUP2
000026f7: DUP7
000026f8: GAS
000026f9: STATICCALL
000026fa: ISZERO
000026fb: DUP1
000026fc: ISZERO
000026fd: PUSH2 0x2708
00002700: JUMPI
00002701: RETURNDATASIZE
00002702: PUSH0
00002703: PUSH0
00002704: RETURNDATACOPY
00002705: RETURNDATASIZE
00002706: PUSH0
00002707: REVERT
00002708: JUMPDEST
00002709: POP
0000270a: POP
0000270b: POP
0000270c: POP
0000270d: PUSH1 0x40
0000270f: MLOAD
00002710: RETURNDATASIZE
00002711: PUSH1 0x1f
00002713: NOT
00002714: PUSH1 0x1f
00002716: DUP3
00002717: ADD
00002718: AND
00002719: DUP3
0000271a: ADD
0000271b: DUP1
0000271c: PUSH1 0x40
0000271e: MSTORE
0000271f: POP
00002720: DUP2
00002721: ADD
00002722: SWAP1
00002723: PUSH2 0x272c
00002726: SWAP2
00002727: SWAP1
00002728: PUSH2 0x3ddb
0000272b: JUMP
0000272c: JUMPDEST
0000272d: SWAP1
0000272e: POP
0000272f: JUMPDEST
00002730: DUP6
00002731: PUSH1 0x01
00002733: PUSH1 0x01
00002735: PUSH1 0xa0
00002737: SHL
00002738: SUB
00002739: AND
0000273a: PUSH4 0x128acb08
0000273f: PUSH0
00002740: PUSH1 0x01
00002742: PUSH1 0xfe
00002744: SHL
00002745: DUP8
00002746: AND
00002747: GT
00002748: PUSH2 0x2751
0000274b: JUMPI
0000274c: DUP6
0000274d: PUSH2 0x2753
00002750: JUMP
00002751: JUMPDEST
00002752: ADDRESS
00002753: JUMPDEST
00002754: PUSH1 0x40
00002756: DUP1
00002757: MLOAD
00002758: ADDRESS
00002759: PUSH1 0x20
0000275b: DUP3
0000275c: ADD
0000275d: MSTORE
0000275e: PUSH0
0000275f: SWAP2
00002760: DUP13
00002761: SWAP2
00002762: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25
00002777: SWAP2
00002778: ADD
00002779: PUSH1 0x40
0000277b: MLOAD
0000277c: PUSH1 0x20
0000277e: DUP2
0000277f: DUP4
00002780: SUB
00002781: SUB
00002782: DUP2
00002783: MSTORE
00002784: SWAP1
00002785: PUSH1 0x40
00002787: MSTORE
00002788: PUSH1 0x40
0000278a: MLOAD
0000278b: DUP7
0000278c: PUSH4 0xffffffff
00002791: AND
00002792: PUSH1 0xe0
00002794: SHL
00002795: DUP2
00002796: MSTORE
00002797: PUSH1 0x04
00002799: ADD
0000279a: PUSH2 0x27a7
0000279d: SWAP6
0000279e: SWAP5
0000279f: SWAP4
000027a0: SWAP3
000027a1: SWAP2
000027a2: SWAP1
000027a3: PUSH2 0x3e77
000027a6: JUMP
000027a7: JUMPDEST
000027a8: PUSH1 0x40
000027aa: DUP1
000027ab: MLOAD
000027ac: DUP1
000027ad: DUP4
000027ae: SUB
000027af: DUP2
000027b0: PUSH0
000027b1: DUP8
000027b2: GAS
000027b3: CALL
000027b4: ISZERO
000027b5: DUP1
000027b6: ISZERO
000027b7: PUSH2 0x27c2
000027ba: JUMPI
000027bb: RETURNDATASIZE
000027bc: PUSH0
000027bd: PUSH0
000027be: RETURNDATACOPY
000027bf: RETURNDATASIZE
000027c0: PUSH0
000027c1: REVERT
000027c2: JUMPDEST
000027c3: POP
000027c4: POP
000027c5: POP
000027c6: POP
000027c7: PUSH1 0x40
000027c9: MLOAD
000027ca: RETURNDATASIZE
000027cb: PUSH1 0x1f
000027cd: NOT
000027ce: PUSH1 0x1f
000027d0: DUP3
000027d1: ADD
000027d2: AND
000027d3: DUP3
000027d4: ADD
000027d5: DUP1
000027d6: PUSH1 0x40
000027d8: MSTORE
000027d9: POP
000027da: DUP2
000027db: ADD
000027dc: SWAP1
000027dd: PUSH2 0x27e6
000027e0: SWAP2
000027e1: SWAP1
000027e2: PUSH2 0x3eb1
000027e5: JUMP
000027e6: JUMPDEST
000027e7: POP
000027e8: POP
000027e9: JUMPDEST
000027ea: PUSH1 0x01
000027ec: PUSH1 0xfe
000027ee: SHL
000027ef: DUP5
000027f0: AND
000027f1: ISZERO
000027f2: PUSH2 0x2899
000027f5: JUMPI
000027f6: PUSH1 0x40
000027f8: MLOAD
000027f9: PUSH4 0x70a08231
000027fe: PUSH1 0xe0
00002800: SHL
00002801: DUP2
00002802: MSTORE
00002803: ADDRESS
00002804: PUSH1 0x04
00002806: DUP3
00002807: ADD
00002808: MSTORE
00002809: PUSH0
0000280a: SWAP1
0000280b: PUSH1 0x01
0000280d: PUSH1 0x01
0000280f: PUSH1 0xa0
00002811: SHL
00002812: SUB
00002813: DUP6
00002814: AND
00002815: SWAP1
00002816: PUSH4 0x70a08231
0000281b: SWAP1
0000281c: PUSH1 0x24
0000281e: ADD
0000281f: PUSH1 0x20
00002821: PUSH1 0x40
00002823: MLOAD
00002824: DUP1
00002825: DUP4
00002826: SUB
00002827: DUP2
00002828: DUP7
00002829: GAS
0000282a: STATICCALL
0000282b: ISZERO
0000282c: DUP1
0000282d: ISZERO
0000282e: PUSH2 0x2839
00002831: JUMPI
00002832: RETURNDATASIZE
00002833: PUSH0
00002834: PUSH0
00002835: RETURNDATACOPY
00002836: RETURNDATASIZE
00002837: PUSH0
00002838: REVERT
00002839: JUMPDEST
0000283a: POP
0000283b: POP
0000283c: POP
0000283d: POP
0000283e: PUSH1 0x40
00002840: MLOAD
00002841: RETURNDATASIZE
00002842: PUSH1 0x1f
00002844: NOT
00002845: PUSH1 0x1f
00002847: DUP3
00002848: ADD
00002849: AND
0000284a: DUP3
0000284b: ADD
0000284c: DUP1
0000284d: PUSH1 0x40
0000284f: MSTORE
00002850: POP
00002851: DUP2
00002852: ADD
00002853: SWAP1
00002854: PUSH2 0x285d
00002857: SWAP2
00002858: SWAP1
00002859: PUSH2 0x3ddb
0000285c: JUMP
0000285d: JUMPDEST
0000285e: SWAP1
0000285f: POP
00002860: DUP2
00002861: PUSH0
00002862: SUB
00002863: PUSH2 0x2888
00002866: JUMPI
00002867: PUSH2 0x2876
0000286a: DUP5
0000286b: DUP7
0000286c: PUSH2 0x0138
0000286f: PUSH1 0x01
00002871: DUP6
00002872: PUSH2 0x3e33
00002875: JUMP
00002876: JUMPDEST
00002877: PUSH2 0x2881
0000287a: PUSH1 0x01
0000287c: DUP8
0000287d: PUSH2 0x3e33
00002880: JUMP
00002881: JUMPDEST
00002882: SWAP6
00002883: POP
00002884: PUSH2 0x2897
00002887: JUMP
00002888: JUMPDEST
00002889: PUSH2 0x2897
0000288c: DUP5
0000288d: DUP7
0000288e: PUSH2 0x0138
00002891: DUP6
00002892: DUP6
00002893: PUSH2 0x3e33
00002896: JUMP
00002897: JUMPDEST
00002898: POP
00002899: JUMPDEST
0000289a: PUSH1 0x40
0000289c: MLOAD
0000289d: PUSH4 0x70a08231
000028a2: PUSH1 0xe0
000028a4: SHL
000028a5: DUP2
000028a6: MSTORE
000028a7: PUSH1 0x01
000028a9: PUSH1 0x01
000028ab: PUSH1 0xa0
000028ad: SHL
000028ae: SUB
000028af: DUP6
000028b0: DUP2
000028b1: AND
000028b2: PUSH1 0x04
000028b4: DUP4
000028b5: ADD
000028b6: MSTORE
000028b7: DUP7
000028b8: SWAP2
000028b9: DUP5
000028ba: SWAP2
000028bb: DUP7
000028bc: AND
000028bd: SWAP1
000028be: PUSH4 0x70a08231
000028c3: SWAP1
000028c4: PUSH1 0x24
000028c6: ADD
000028c7: PUSH1 0x20
000028c9: PUSH1 0x40
000028cb: MLOAD
000028cc: DUP1
000028cd: DUP4
000028ce: SUB
000028cf: DUP2
000028d0: DUP7
000028d1: GAS
000028d2: STATICCALL
000028d3: ISZERO
000028d4: DUP1
000028d5: ISZERO
000028d6: PUSH2 0x28e1
000028d9: JUMPI
000028da: RETURNDATASIZE
000028db: PUSH0
000028dc: PUSH0
000028dd: RETURNDATACOPY
000028de: RETURNDATASIZE
000028df: PUSH0
000028e0: REVERT
000028e1: JUMPDEST
000028e2: POP
000028e3: POP
000028e4: POP
000028e5: POP
000028e6: PUSH1 0x40
000028e8: MLOAD
000028e9: RETURNDATASIZE
000028ea: PUSH1 0x1f
000028ec: NOT
000028ed: PUSH1 0x1f
000028ef: DUP3
000028f0: ADD
000028f1: AND
000028f2: DUP3
000028f3: ADD
000028f4: DUP1
000028f5: PUSH1 0x40
000028f7: MSTORE
000028f8: POP
000028f9: DUP2
000028fa: ADD
000028fb: SWAP1
000028fc: PUSH2 0x2905
000028ff: SWAP2
00002900: SWAP1
00002901: PUSH2 0x3ddb
00002904: JUMP
00002905: JUMPDEST
00002906: PUSH2 0x290f
00002909: SWAP2
0000290a: SWAP1
0000290b: PUSH2 0x3e33
0000290e: JUMP
0000290f: JUMPDEST
00002910: LT
00002911: ISZERO
00002912: PUSH2 0x292d
00002915: JUMPI
00002916: PUSH1 0x40
00002918: MLOAD
00002919: PUSH3 0x461bcd
0000291d: PUSH1 0xe5
0000291f: SHL
00002920: DUP2
00002921: MSTORE
00002922: PUSH1 0x04
00002924: ADD
00002925: PUSH2 0x035a
00002928: SWAP1
00002929: PUSH2 0x3e4c
0000292c: JUMP
0000292d: JUMPDEST
0000292e: PUSH1 0x40
00002930: MLOAD
00002931: COINBASE
00002932: SWAP1
00002933: CALLVALUE
00002934: SWAP1
00002935: PUSH0
00002936: DUP2
00002937: DUP2
00002938: DUP2
00002939: DUP6
0000293a: DUP8
0000293b: GAS
0000293c: CALL
0000293d: SWAP3
0000293e: POP
0000293f: POP
00002940: POP
00002941: RETURNDATASIZE
00002942: DUP1
00002943: PUSH0
00002944: DUP2
00002945: EQ
00002946: PUSH2 0x08ff
00002949: JUMPI
0000294a: PUSH1 0x40
0000294c: MLOAD
0000294d: SWAP2
0000294e: POP
0000294f: PUSH1 0x1f
00002951: NOT
00002952: PUSH1 0x3f
00002954: RETURNDATASIZE
00002955: ADD
00002956: AND
00002957: DUP3
00002958: ADD
00002959: PUSH1 0x40
0000295b: MSTORE
0000295c: RETURNDATASIZE
0000295d: DUP3
0000295e: MSTORE
0000295f: RETURNDATASIZE
00002960: PUSH0
00002961: PUSH1 0x20
00002963: DUP5
00002964: ADD
00002965: RETURNDATACOPY
00002966: PUSH2 0x08ff
00002969: JUMP
0000296a: JUMPDEST
0000296b: PUSH0
0000296c: MLOAD
0000296d: PUSH1 0x20
0000296f: PUSH2 0x3f6c
00002972: PUSH0
00002973: CODECOPY
00002974: PUSH0
00002975: MLOAD
00002976: SWAP1
00002977: PUSH0
00002978: MSTORE
00002979: CALLER
0000297a: EQ
0000297b: DUP1
0000297c: PUSH2 0x2993
0000297f: JUMPI
00002980: POP
00002981: CALLER
00002982: PUSH0
00002983: SWAP1
00002984: DUP2
00002985: MSTORE
00002986: PUSH1 0x20
00002988: DUP2
00002989: SWAP1
0000298a: MSTORE
0000298b: PUSH1 0x40
0000298d: SWAP1
0000298e: KECCAK256
0000298f: SLOAD
00002990: PUSH1 0xff
00002992: AND
00002993: JUMPDEST
00002994: PUSH2 0x29af
00002997: JUMPI
00002998: PUSH1 0x40
0000299a: MLOAD
0000299b: PUSH3 0x461bcd
0000299f: PUSH1 0xe5
000029a1: SHL
000029a2: DUP2
000029a3: MSTORE
000029a4: PUSH1 0x04
000029a6: ADD
000029a7: PUSH2 0x035a
000029aa: SWAP1
000029ab: PUSH2 0x3ce1
000029ae: JUMP
000029af: JUMPDEST
000029b0: PUSH1 0x01
000029b2: PUSH1 0x34
000029b4: PUSH1 0xa3
000029b6: NOT
000029b7: CALLDATASIZE
000029b8: ADD
000029b9: MOD
000029ba: ISZERO
000029bb: PUSH2 0x29f9
000029be: JUMPI
000029bf: PUSH1 0x40
000029c1: MLOAD
000029c2: PUSH3 0x461bcd
000029c6: PUSH1 0xe5
000029c8: SHL
000029c9: DUP2
000029ca: MSTORE
000029cb: PUSH1 0x20
000029cd: PUSH1 0x04
000029cf: DUP3
000029d0: ADD
000029d1: MSTORE
000029d2: PUSH1 0x13
000029d4: PUSH1 0x24
000029d6: DUP3
000029d7: ADD
000029d8: MSTORE
000029d9: PUSH19 0x092dcecc2d8d2c840c8c2e8c240d8cadccee8d
000029ed: PUSH1 0x6b
000029ef: SHL
000029f0: PUSH1 0x44
000029f2: DUP3
000029f3: ADD
000029f4: MSTORE
000029f5: PUSH1 0x64
000029f7: DUP2
000029f8: REVERT
000029f9: JUMPDEST
000029fa: PUSH1 0xa4
000029fc: JUMPDEST
000029fd: DUP2
000029fe: CALLDATASIZE
000029ff: DUP3
00002a00: LT
00002a01: AND
00002a02: ISZERO
00002a03: PUSH2 0x2a40
00002a06: JUMPI
00002a07: PUSH0
00002a08: MLOAD
00002a09: PUSH1 0x20
00002a0b: PUSH2 0x3f4c
00002a0e: PUSH0
00002a0f: CODECOPY
00002a10: PUSH0
00002a11: MLOAD
00002a12: SWAP1
00002a13: PUSH0
00002a14: MSTORE
00002a15: DUP2
00002a16: PUSH1 0x14
00002a18: ADD
00002a19: CALLDATALOAD
00002a1a: XOR
00002a1b: PUSH0
00002a1c: MLOAD
00002a1d: PUSH1 0x20
00002a1f: PUSH2 0x3f2c
00002a22: PUSH0
00002a23: CODECOPY
00002a24: PUSH0
00002a25: MLOAD
00002a26: SWAP1
00002a27: PUSH0
00002a28: MSTORE
00002a29: DUP3
00002a2a: CALLDATALOAD
00002a2b: PUSH1 0x60
00002a2d: SHR
00002a2e: XOR
00002a2f: BALANCE
00002a30: EQ
00002a31: PUSH2 0x2a38
00002a34: JUMPI
00002a35: PUSH0
00002a36: SWAP2
00002a37: POP
00002a38: JUMPDEST
00002a39: PUSH1 0x34
00002a3b: ADD
00002a3c: PUSH2 0x29fc
00002a3f: JUMP
00002a40: JUMPDEST
00002a41: POP
00002a42: DUP1
00002a43: ISZERO
00002a44: PUSH2 0x2a49
00002a47: JUMPI
00002a48: STOP
00002a49: JUMPDEST
00002a4a: PUSH2 0x2a56
00002a4d: DUP7
00002a4e: DUP7
00002a4f: DUP7
00002a50: DUP7
00002a51: DUP7
00002a52: PUSH2 0x0fe8
00002a55: JUMP
00002a56: JUMPDEST
00002a57: POP
00002a58: POP
00002a59: POP
00002a5a: POP
00002a5b: POP
00002a5c: POP
00002a5d: JUMP
00002a5e: JUMPDEST
00002a5f: PUSH0
00002a60: MLOAD
00002a61: PUSH1 0x20
00002a63: PUSH2 0x3f6c
00002a66: PUSH0
00002a67: CODECOPY
00002a68: PUSH0
00002a69: MLOAD
00002a6a: SWAP1
00002a6b: PUSH0
00002a6c: MSTORE
00002a6d: CALLER
00002a6e: EQ
00002a6f: DUP1
00002a70: PUSH2 0x2a87
00002a73: JUMPI
00002a74: POP
00002a75: CALLER
00002a76: PUSH0
00002a77: SWAP1
00002a78: DUP2
00002a79: MSTORE
00002a7a: PUSH1 0x20
00002a7c: DUP2
00002a7d: SWAP1
00002a7e: MSTORE
00002a7f: PUSH1 0x40
00002a81: SWAP1
00002a82: KECCAK256
00002a83: SLOAD
00002a84: PUSH1 0xff
00002a86: AND
00002a87: JUMPDEST
00002a88: PUSH2 0x2aa3
00002a8b: JUMPI
00002a8c: PUSH1 0x40
00002a8e: MLOAD
00002a8f: PUSH3 0x461bcd
00002a93: PUSH1 0xe5
00002a95: SHL
00002a96: DUP2
00002a97: MSTORE
00002a98: PUSH1 0x04
00002a9a: ADD
00002a9b: PUSH2 0x035a
00002a9e: SWAP1
00002a9f: PUSH2 0x3ce1
00002aa2: JUMP
00002aa3: JUMPDEST
00002aa4: DUP6
00002aa5: NUMBER
00002aa6: GT
00002aa7: ISZERO
00002aa8: PUSH2 0x2ac3
00002aab: JUMPI
00002aac: PUSH1 0x40
00002aae: MLOAD
00002aaf: PUSH3 0x461bcd
00002ab3: PUSH1 0xe5
00002ab5: SHL
00002ab6: DUP2
00002ab7: MSTORE
00002ab8: PUSH1 0x04
00002aba: ADD
00002abb: PUSH2 0x035a
00002abe: SWAP1
00002abf: PUSH2 0x3d10
00002ac2: JUMP
00002ac3: JUMPDEST
00002ac4: PUSH0
00002ac5: PUSH0
00002ac6: SWAP1
00002ac7: POP
00002ac8: PUSH0
00002ac9: PUSH0
00002aca: SWAP1
00002acb: POP
00002acc: PUSH0
00002acd: PUSH0
00002ace: DUP7
00002acf: PUSH1 0x01
00002ad1: PUSH1 0x01
00002ad3: PUSH1 0xa0
00002ad5: SHL
00002ad6: SUB
00002ad7: AND
00002ad8: PUSH4 0x0902f1ac
00002add: PUSH1 0x40
00002adf: MLOAD
00002ae0: DUP2
00002ae1: PUSH4 0xffffffff
00002ae6: AND
00002ae7: PUSH1 0xe0
00002ae9: SHL
00002aea: DUP2
00002aeb: MSTORE
00002aec: PUSH1 0x04
00002aee: ADD
00002aef: PUSH1 0x60
00002af1: PUSH1 0x40
00002af3: MLOAD
00002af4: DUP1
00002af5: DUP4
00002af6: SUB
00002af7: DUP2
00002af8: DUP7
00002af9: GAS
00002afa: STATICCALL
00002afb: ISZERO
00002afc: DUP1
00002afd: ISZERO
00002afe: PUSH2 0x2b09
00002b01: JUMPI
00002b02: RETURNDATASIZE
00002b03: PUSH0
00002b04: PUSH0
00002b05: RETURNDATACOPY
00002b06: RETURNDATASIZE
00002b07: PUSH0
00002b08: REVERT
00002b09: JUMPDEST
00002b0a: POP
00002b0b: POP
00002b0c: POP
00002b0d: POP
00002b0e: PUSH1 0x40
00002b10: MLOAD
00002b11: RETURNDATASIZE
00002b12: PUSH1 0x1f
00002b14: NOT
00002b15: PUSH1 0x1f
00002b17: DUP3
00002b18: ADD
00002b19: AND
00002b1a: DUP3
00002b1b: ADD
00002b1c: DUP1
00002b1d: PUSH1 0x40
00002b1f: MSTORE
00002b20: POP
00002b21: DUP2
00002b22: ADD
00002b23: SWAP1
00002b24: PUSH2 0x2b2d
00002b27: SWAP2
00002b28: SWAP1
00002b29: PUSH2 0x3d55
00002b2c: JUMP
00002b2d: JUMPDEST
00002b2e: POP
00002b2f: SWAP2
00002b30: POP
00002b31: SWAP2
00002b32: POP
00002b33: PUSH0
00002b34: PUSH1 0x01
00002b36: PUSH1 0xff
00002b38: SHL
00002b39: DUP7
00002b3a: AND
00002b3b: PUSH0
00002b3c: SUB
00002b3d: PUSH2 0x2bc6
00002b40: JUMPI
00002b41: PUSH2 0x2b5d
00002b44: DUP11
00002b45: DUP5
00002b46: PUSH1 0x01
00002b48: PUSH1 0x01
00002b4a: PUSH1 0x70
00002b4c: SHL
00002b4d: SUB
00002b4e: AND
00002b4f: DUP5
00002b50: PUSH1 0x01
00002b52: PUSH1 0x01
00002b54: PUSH1 0x70
00002b56: SHL
00002b57: SUB
00002b58: AND
00002b59: PUSH2 0x38cc
00002b5c: JUMP
00002b5d: JUMPDEST
00002b5e: SWAP4
00002b5f: POP
00002b60: DUP8
00002b61: PUSH1 0x01
00002b63: PUSH1 0x01
00002b65: PUSH1 0xa0
00002b67: SHL
00002b68: SUB
00002b69: AND
00002b6a: PUSH4 0xd21220a7
00002b6f: PUSH1 0x40
00002b71: MLOAD
00002b72: DUP2
00002b73: PUSH4 0xffffffff
00002b78: AND
00002b79: PUSH1 0xe0
00002b7b: SHL
00002b7c: DUP2
00002b7d: MSTORE
00002b7e: PUSH1 0x04
00002b80: ADD
00002b81: PUSH1 0x20
00002b83: PUSH1 0x40
00002b85: MLOAD
00002b86: DUP1
00002b87: DUP4
00002b88: SUB
00002b89: DUP2
00002b8a: DUP7
00002b8b: GAS
00002b8c: STATICCALL
00002b8d: ISZERO
00002b8e: DUP1
00002b8f: ISZERO
00002b90: PUSH2 0x2b9b
00002b93: JUMPI
00002b94: RETURNDATASIZE
00002b95: PUSH0
00002b96: PUSH0
00002b97: RETURNDATACOPY
00002b98: RETURNDATASIZE
00002b99: PUSH0
00002b9a: REVERT
00002b9b: JUMPDEST
00002b9c: POP
00002b9d: POP
00002b9e: POP
00002b9f: POP
00002ba0: PUSH1 0x40
00002ba2: MLOAD
00002ba3: RETURNDATASIZE
00002ba4: PUSH1 0x1f
00002ba6: NOT
00002ba7: PUSH1 0x1f
00002ba9: DUP3
00002baa: ADD
00002bab: AND
00002bac: DUP3
00002bad: ADD
00002bae: DUP1
00002baf: PUSH1 0x40
00002bb1: MSTORE
00002bb2: POP
00002bb3: DUP2
00002bb4: ADD
00002bb5: SWAP1
00002bb6: PUSH2 0x2bbf
00002bb9: SWAP2
00002bba: SWAP1
00002bbb: PUSH2 0x3da1
00002bbe: JUMP
00002bbf: JUMPDEST
00002bc0: SWAP1
00002bc1: POP
00002bc2: PUSH2 0x2c48
00002bc5: JUMP
00002bc6: JUMPDEST
00002bc7: PUSH2 0x2be3
00002bca: DUP11
00002bcb: DUP4
00002bcc: PUSH1 0x01
00002bce: PUSH1 0x01
00002bd0: PUSH1 0x70
00002bd2: SHL
00002bd3: SUB
00002bd4: AND
00002bd5: DUP6
00002bd6: PUSH1 0x01
00002bd8: PUSH1 0x01
00002bda: PUSH1 0x70
00002bdc: SHL
00002bdd: SUB
00002bde: AND
00002bdf: PUSH2 0x38cc
00002be2: JUMP
00002be3: JUMPDEST
00002be4: SWAP5
00002be5: POP
00002be6: DUP8
00002be7: PUSH1 0x01
00002be9: PUSH1 0x01
00002beb: PUSH1 0xa0
00002bed: SHL
00002bee: SUB
00002bef: AND
00002bf0: PUSH4 0x0dfe1681
00002bf5: PUSH1 0x40
00002bf7: MLOAD
00002bf8: DUP2
00002bf9: PUSH4 0xffffffff
00002bfe: AND
00002bff: PUSH1 0xe0
00002c01: SHL
00002c02: DUP2
00002c03: MSTORE
00002c04: PUSH1 0x04
00002c06: ADD
00002c07: PUSH1 0x20
00002c09: PUSH1 0x40
00002c0b: MLOAD
00002c0c: DUP1
00002c0d: DUP4
00002c0e: SUB
00002c0f: DUP2
00002c10: DUP7
00002c11: GAS
00002c12: STATICCALL
00002c13: ISZERO
00002c14: DUP1
00002c15: ISZERO
00002c16: PUSH2 0x2c21
00002c19: JUMPI
00002c1a: RETURNDATASIZE
00002c1b: PUSH0
00002c1c: PUSH0
00002c1d: RETURNDATACOPY
00002c1e: RETURNDATASIZE
00002c1f: PUSH0
00002c20: REVERT
00002c21: JUMPDEST
00002c22: POP
00002c23: POP
00002c24: POP
00002c25: POP
00002c26: PUSH1 0x40
00002c28: MLOAD
00002c29: RETURNDATASIZE
00002c2a: PUSH1 0x1f
00002c2c: NOT
00002c2d: PUSH1 0x1f
00002c2f: DUP3
00002c30: ADD
00002c31: AND
00002c32: DUP3
00002c33: ADD
00002c34: DUP1
00002c35: PUSH1 0x40
00002c37: MSTORE
00002c38: POP
00002c39: DUP2
00002c3a: ADD
00002c3b: SWAP1
00002c3c: PUSH2 0x2c45
00002c3f: SWAP2
00002c40: SWAP1
00002c41: PUSH2 0x3da1
00002c44: JUMP
00002c45: JUMPDEST
00002c46: SWAP1
00002c47: POP
00002c48: JUMPDEST
00002c49: PUSH1 0x40
00002c4b: MLOAD
00002c4c: PUSH4 0xa9059cbb
00002c51: PUSH1 0xe0
00002c53: SHL
00002c54: DUP2
00002c55: MSTORE
00002c56: DUP9
00002c57: PUSH1 0x04
00002c59: DUP3
00002c5a: ADD
00002c5b: MSTORE
00002c5c: DUP11
00002c5d: PUSH1 0x24
00002c5f: DUP3
00002c60: ADD
00002c61: MSTORE
00002c62: PUSH0
00002c63: PUSH0
00002c64: PUSH1 0x44
00002c66: DUP4
00002c67: PUSH0
00002c68: DUP15
00002c69: GAS
00002c6a: CALL
00002c6b: POP
00002c6c: POP
00002c6d: PUSH1 0x40
00002c6f: MLOAD
00002c70: PUSH4 0x70a08231
00002c75: PUSH1 0xe0
00002c77: SHL
00002c78: DUP2
00002c79: MSTORE
00002c7a: PUSH1 0x01
00002c7c: PUSH1 0x01
00002c7e: PUSH1 0xa0
00002c80: SHL
00002c81: SUB
00002c82: DUP8
00002c83: DUP2
00002c84: AND
00002c85: PUSH1 0x04
00002c87: DUP4
00002c88: ADD
00002c89: MSTORE
00002c8a: PUSH0
00002c8b: SWAP2
00002c8c: SWAP1
00002c8d: DUP4
00002c8e: AND
00002c8f: SWAP1
00002c90: PUSH4 0x70a08231
00002c95: SWAP1
00002c96: PUSH1 0x24
00002c98: ADD
00002c99: PUSH1 0x20
00002c9b: PUSH1 0x40
00002c9d: MLOAD
00002c9e: DUP1
00002c9f: DUP4
00002ca0: SUB
00002ca1: DUP2
00002ca2: DUP7
00002ca3: GAS
00002ca4: STATICCALL
00002ca5: ISZERO
00002ca6: DUP1
00002ca7: ISZERO
00002ca8: PUSH2 0x2cb3
00002cab: JUMPI
00002cac: RETURNDATASIZE
00002cad: PUSH0
00002cae: PUSH0
00002caf: RETURNDATACOPY
00002cb0: RETURNDATASIZE
00002cb1: PUSH0
00002cb2: REVERT
00002cb3: JUMPDEST
00002cb4: POP
00002cb5: POP
00002cb6: POP
00002cb7: POP
00002cb8: PUSH1 0x40
00002cba: MLOAD
00002cbb: RETURNDATASIZE
00002cbc: PUSH1 0x1f
00002cbe: NOT
00002cbf: PUSH1 0x1f
00002cc1: DUP3
00002cc2: ADD
00002cc3: AND
00002cc4: DUP3
00002cc5: ADD
00002cc6: DUP1
00002cc7: PUSH1 0x40
00002cc9: MSTORE
00002cca: POP
00002ccb: DUP2
00002ccc: ADD
00002ccd: SWAP1
00002cce: PUSH2 0x2cd7
00002cd1: SWAP2
00002cd2: SWAP1
00002cd3: PUSH2 0x3ddb
00002cd6: JUMP
00002cd7: JUMPDEST
00002cd8: SWAP1
00002cd9: POP
00002cda: PUSH0
00002cdb: PUSH1 0x01
00002cdd: PUSH1 0xfe
00002cdf: SHL
00002ce0: DUP9
00002ce1: AND
00002ce2: ISZERO
00002ce3: PUSH2 0x2d4f
00002ce6: JUMPI
00002ce7: PUSH1 0x40
00002ce9: MLOAD
00002cea: PUSH4 0x70a08231
00002cef: PUSH1 0xe0
00002cf1: SHL
00002cf2: DUP2
00002cf3: MSTORE
00002cf4: ADDRESS
00002cf5: PUSH1 0x04
00002cf7: DUP3
00002cf8: ADD
00002cf9: MSTORE
00002cfa: PUSH1 0x01
00002cfc: PUSH1 0x01
00002cfe: PUSH1 0xa0
00002d00: SHL
00002d01: SUB
00002d02: DUP5
00002d03: AND
00002d04: SWAP1
00002d05: PUSH4 0x70a08231
00002d0a: SWAP1
00002d0b: PUSH1 0x24
00002d0d: ADD
00002d0e: PUSH1 0x20
00002d10: PUSH1 0x40
00002d12: MLOAD
00002d13: DUP1
00002d14: DUP4
00002d15: SUB
00002d16: DUP2
00002d17: DUP7
00002d18: GAS
00002d19: STATICCALL
00002d1a: ISZERO
00002d1b: DUP1
00002d1c: ISZERO
00002d1d: PUSH2 0x2d28
00002d20: JUMPI
00002d21: RETURNDATASIZE
00002d22: PUSH0
00002d23: PUSH0
00002d24: RETURNDATACOPY
00002d25: RETURNDATASIZE
00002d26: PUSH0
00002d27: REVERT
00002d28: JUMPDEST
00002d29: POP
00002d2a: POP
00002d2b: POP
00002d2c: POP
00002d2d: PUSH1 0x40
00002d2f: MLOAD
00002d30: RETURNDATASIZE
00002d31: PUSH1 0x1f
00002d33: NOT
00002d34: PUSH1 0x1f
00002d36: DUP3
00002d37: ADD
00002d38: AND
00002d39: DUP3
00002d3a: ADD
00002d3b: DUP1
00002d3c: PUSH1 0x40
00002d3e: MSTORE
00002d3f: POP
00002d40: DUP2
00002d41: ADD
00002d42: SWAP1
00002d43: PUSH2 0x2d4c
00002d46: SWAP2
00002d47: SWAP1
00002d48: PUSH2 0x3ddb
00002d4b: JUMP
00002d4c: JUMPDEST
00002d4d: SWAP1
00002d4e: POP
00002d4f: JUMPDEST
00002d50: DUP10
00002d51: PUSH1 0x01
00002d53: PUSH1 0x01
00002d55: PUSH1 0xa0
00002d57: SHL
00002d58: SUB
00002d59: AND
00002d5a: PUSH4 0x022c0d9f
00002d5f: DUP9
00002d60: DUP9
00002d61: PUSH0
00002d62: PUSH1 0x01
00002d64: PUSH1 0xfe
00002d66: SHL
00002d67: DUP14
00002d68: AND
00002d69: GT
00002d6a: PUSH2 0x2d73
00002d6d: JUMPI
00002d6e: DUP12
00002d6f: PUSH2 0x2d75
00002d72: JUMP
00002d73: JUMPDEST
00002d74: ADDRESS
00002d75: JUMPDEST
00002d76: PUSH1 0x40
00002d78: MLOAD
00002d79: DUP5
00002d7a: PUSH4 0xffffffff
00002d7f: AND
00002d80: PUSH1 0xe0
00002d82: SHL
00002d83: DUP2
00002d84: MSTORE
00002d85: PUSH1 0x04
00002d87: ADD
00002d88: PUSH2 0x2d93
00002d8b: SWAP4
00002d8c: SWAP3
00002d8d: SWAP2
00002d8e: SWAP1
00002d8f: PUSH2 0x3df2
00002d92: JUMP
00002d93: JUMPDEST
00002d94: PUSH0
00002d95: PUSH1 0x40
00002d97: MLOAD
00002d98: DUP1
00002d99: DUP4
00002d9a: SUB
00002d9b: DUP2
00002d9c: PUSH0
00002d9d: DUP8
00002d9e: DUP1
00002d9f: EXTCODESIZE
00002da0: ISZERO
00002da1: DUP1
00002da2: ISZERO
00002da3: PUSH2 0x2daa
00002da6: JUMPI
00002da7: PUSH0
00002da8: PUSH0
00002da9: REVERT
00002daa: JUMPDEST
00002dab: POP
00002dac: GAS
00002dad: CALL
00002dae: ISZERO
00002daf: DUP1
00002db0: ISZERO
00002db1: PUSH2 0x2dbc
00002db4: JUMPI
00002db5: RETURNDATASIZE
00002db6: PUSH0
00002db7: PUSH0
00002db8: RETURNDATACOPY
00002db9: RETURNDATASIZE
00002dba: PUSH0
00002dbb: REVERT
00002dbc: JUMPDEST
00002dbd: POP
00002dbe: POP
00002dbf: POP
00002dc0: POP
00002dc1: PUSH1 0x01
00002dc3: PUSH1 0xfe
00002dc5: SHL
00002dc6: DUP9
00002dc7: AND
00002dc8: ISZERO
00002dc9: PUSH2 0x2e77
00002dcc: JUMPI
00002dcd: PUSH1 0x40
00002dcf: MLOAD
00002dd0: PUSH4 0x70a08231
00002dd5: PUSH1 0xe0
00002dd7: SHL
00002dd8: DUP2
00002dd9: MSTORE
00002dda: ADDRESS
00002ddb: PUSH1 0x04
00002ddd: DUP3
00002dde: ADD
00002ddf: MSTORE
00002de0: PUSH0
00002de1: SWAP1
00002de2: PUSH1 0x01
00002de4: PUSH1 0x01
00002de6: PUSH1 0xa0
00002de8: SHL
00002de9: SUB
00002dea: DUP6
00002deb: AND
00002dec: SWAP1
00002ded: PUSH4 0x70a08231
00002df2: SWAP1
00002df3: PUSH1 0x24
00002df5: ADD
00002df6: PUSH1 0x20
00002df8: PUSH1 0x40
00002dfa: MLOAD
00002dfb: DUP1
00002dfc: DUP4
00002dfd: SUB
00002dfe: DUP2
00002dff: DUP7
00002e00: GAS
00002e01: STATICCALL
00002e02: ISZERO
00002e03: DUP1
00002e04: ISZERO
00002e05: PUSH2 0x2e10
00002e08: JUMPI
00002e09: RETURNDATASIZE
00002e0a: PUSH0
00002e0b: PUSH0
00002e0c: RETURNDATACOPY
00002e0d: RETURNDATASIZE
00002e0e: PUSH0
00002e0f: REVERT
00002e10: JUMPDEST
00002e11: POP
00002e12: POP
00002e13: POP
00002e14: POP
00002e15: PUSH1 0x40
00002e17: MLOAD
00002e18: RETURNDATASIZE
00002e19: PUSH1 0x1f
00002e1b: NOT
00002e1c: PUSH1 0x1f
00002e1e: DUP3
00002e1f: ADD
00002e20: AND
00002e21: DUP3
00002e22: ADD
00002e23: DUP1
00002e24: PUSH1 0x40
00002e26: MSTORE
00002e27: POP
00002e28: DUP2
00002e29: ADD
00002e2a: SWAP1
00002e2b: PUSH2 0x2e34
00002e2e: SWAP2
00002e2f: SWAP1
00002e30: PUSH2 0x3ddb
00002e33: JUMP
00002e34: JUMPDEST
00002e35: SWAP1
00002e36: POP
00002e37: DUP2
00002e38: PUSH0
00002e39: SUB
00002e3a: PUSH2 0x2e66
00002e3d: JUMPI
00002e3e: PUSH2 0x2e4d
00002e41: DUP5
00002e42: DUP11
00002e43: PUSH2 0x0138
00002e46: PUSH1 0x01
00002e48: DUP6
00002e49: PUSH2 0x3e33
00002e4c: JUMP
00002e4d: JUMPDEST
00002e4e: DUP10
00002e4f: ISZERO
00002e50: PUSH2 0x2e61
00002e53: JUMPI
00002e54: PUSH2 0x2e5e
00002e57: PUSH1 0x01
00002e59: DUP12
00002e5a: PUSH2 0x3e33
00002e5d: JUMP
00002e5e: JUMPDEST
00002e5f: SWAP10
00002e60: POP
00002e61: JUMPDEST
00002e62: PUSH2 0x2e75
00002e65: JUMP
00002e66: JUMPDEST
00002e67: PUSH2 0x2e75
00002e6a: DUP5
00002e6b: DUP11
00002e6c: PUSH2 0x0138
00002e6f: DUP6
00002e70: DUP6
00002e71: PUSH2 0x3e33
00002e74: JUMP
00002e75: JUMPDEST
00002e76: POP
00002e77: JUMPDEST
00002e78: PUSH1 0x40
00002e7a: MLOAD
00002e7b: PUSH4 0x70a08231
00002e80: PUSH1 0xe0
00002e82: SHL
00002e83: DUP2
00002e84: MSTORE
00002e85: PUSH1 0x01
00002e87: PUSH1 0x01
00002e89: PUSH1 0xa0
00002e8b: SHL
00002e8c: SUB
00002e8d: DUP10
00002e8e: DUP2
00002e8f: AND
00002e90: PUSH1 0x04
00002e92: DUP4
00002e93: ADD
00002e94: MSTORE
00002e95: DUP11
00002e96: SWAP2
00002e97: DUP5
00002e98: SWAP2
00002e99: DUP7
00002e9a: AND
00002e9b: SWAP1
00002e9c: PUSH4 0x70a08231
00002ea1: SWAP1
00002ea2: PUSH1 0x24
00002ea4: ADD
00002ea5: PUSH1 0x20
00002ea7: PUSH1 0x40
00002ea9: MLOAD
00002eaa: DUP1
00002eab: DUP4
00002eac: SUB
00002ead: DUP2
00002eae: DUP7
00002eaf: GAS
00002eb0: STATICCALL
00002eb1: ISZERO
00002eb2: DUP1
00002eb3: ISZERO
00002eb4: PUSH2 0x2ebf
00002eb7: JUMPI
00002eb8: RETURNDATASIZE
00002eb9: PUSH0
00002eba: PUSH0
00002ebb: RETURNDATACOPY
00002ebc: RETURNDATASIZE
00002ebd: PUSH0
00002ebe: REVERT
00002ebf: JUMPDEST
00002ec0: POP
00002ec1: POP
00002ec2: POP
00002ec3: POP
00002ec4: PUSH1 0x40
00002ec6: MLOAD
00002ec7: RETURNDATASIZE
00002ec8: PUSH1 0x1f
00002eca: NOT
00002ecb: PUSH1 0x1f
00002ecd: DUP3
00002ece: ADD
00002ecf: AND
00002ed0: DUP3
00002ed1: ADD
00002ed2: DUP1
00002ed3: PUSH1 0x40
00002ed5: MSTORE
00002ed6: POP
00002ed7: DUP2
00002ed8: ADD
00002ed9: SWAP1
00002eda: PUSH2 0x2ee3
00002edd: SWAP2
00002ede: SWAP1
00002edf: PUSH2 0x3ddb
00002ee2: JUMP
00002ee3: JUMPDEST
00002ee4: PUSH2 0x2eed
00002ee7: SWAP2
00002ee8: SWAP1
00002ee9: PUSH2 0x3e33
00002eec: JUMP
00002eed: JUMPDEST
00002eee: LT
00002eef: ISZERO
00002ef0: PUSH2 0x2f0b
00002ef3: JUMPI
00002ef4: PUSH1 0x40
00002ef6: MLOAD
00002ef7: PUSH3 0x461bcd
00002efb: PUSH1 0xe5
00002efd: SHL
00002efe: DUP2
00002eff: MSTORE
00002f00: PUSH1 0x04
00002f02: ADD
00002f03: PUSH2 0x035a
00002f06: SWAP1
00002f07: PUSH2 0x3e4c
00002f0a: JUMP
00002f0b: JUMPDEST
00002f0c: POP
00002f0d: POP
00002f0e: POP
00002f0f: POP
00002f10: POP
00002f11: POP
00002f12: POP
00002f13: POP
00002f14: POP
00002f15: POP
00002f16: POP
00002f17: POP
00002f18: POP
00002f19: JUMP
00002f1a: JUMPDEST
00002f1b: PUSH0
00002f1c: MLOAD
00002f1d: PUSH1 0x20
00002f1f: PUSH2 0x3f6c
00002f22: PUSH0
00002f23: CODECOPY
00002f24: PUSH0
00002f25: MLOAD
00002f26: SWAP1
00002f27: PUSH0
00002f28: MSTORE
00002f29: CALLER
00002f2a: EQ
00002f2b: DUP1
00002f2c: PUSH2 0x2f43
00002f2f: JUMPI
00002f30: POP
00002f31: CALLER
00002f32: PUSH0
00002f33: SWAP1
00002f34: DUP2
00002f35: MSTORE
00002f36: PUSH1 0x20
00002f38: DUP2
00002f39: SWAP1
00002f3a: MSTORE
00002f3b: PUSH1 0x40
00002f3d: SWAP1
00002f3e: KECCAK256
00002f3f: SLOAD
00002f40: PUSH1 0xff
00002f42: AND
00002f43: JUMPDEST
00002f44: PUSH2 0x2f5f
00002f47: JUMPI
00002f48: PUSH1 0x40
00002f4a: MLOAD
00002f4b: PUSH3 0x461bcd
00002f4f: PUSH1 0xe5
00002f51: SHL
00002f52: DUP2
00002f53: MSTORE
00002f54: PUSH1 0x04
00002f56: ADD
00002f57: PUSH2 0x035a
00002f5a: SWAP1
00002f5b: PUSH2 0x3ce1
00002f5e: JUMP
00002f5f: JUMPDEST
00002f60: PUSH1 0x01
00002f62: PUSH1 0x34
00002f64: PUSH1 0x83
00002f66: NOT
00002f67: CALLDATASIZE
00002f68: ADD
00002f69: MOD
00002f6a: ISZERO
00002f6b: PUSH2 0x2fa9
00002f6e: JUMPI
00002f6f: PUSH1 0x40
00002f71: MLOAD
00002f72: PUSH3 0x461bcd
00002f76: PUSH1 0xe5
00002f78: SHL
00002f79: DUP2
00002f7a: MSTORE
00002f7b: PUSH1 0x20
00002f7d: PUSH1 0x04
00002f7f: DUP3
00002f80: ADD
00002f81: MSTORE
00002f82: PUSH1 0x13
00002f84: PUSH1 0x24
00002f86: DUP3
00002f87: ADD
00002f88: MSTORE
00002f89: PUSH19 0x092dcecc2d8d2c840c8c2e8c240d8cadccee8d
00002f9d: PUSH1 0x6b
00002f9f: SHL
00002fa0: PUSH1 0x44
00002fa2: DUP3
00002fa3: ADD
00002fa4: MSTORE
00002fa5: PUSH1 0x64
00002fa7: DUP2
00002fa8: REVERT
00002fa9: JUMPDEST
00002faa: PUSH1 0x84
00002fac: JUMPDEST
00002fad: DUP2
00002fae: CALLDATASIZE
00002faf: DUP3
00002fb0: LT
00002fb1: AND
00002fb2: ISZERO
00002fb3: PUSH2 0x2ff0
00002fb6: JUMPI
00002fb7: PUSH0
00002fb8: MLOAD
00002fb9: PUSH1 0x20
00002fbb: PUSH2 0x3f4c
00002fbe: PUSH0
00002fbf: CODECOPY
00002fc0: PUSH0
00002fc1: MLOAD
00002fc2: SWAP1
00002fc3: PUSH0
00002fc4: MSTORE
00002fc5: DUP2
00002fc6: PUSH1 0x14
00002fc8: ADD
00002fc9: CALLDATALOAD
00002fca: XOR
00002fcb: PUSH0
00002fcc: MLOAD
00002fcd: PUSH1 0x20
00002fcf: PUSH2 0x3f2c
00002fd2: PUSH0
00002fd3: CODECOPY
00002fd4: PUSH0
00002fd5: MLOAD
00002fd6: SWAP1
00002fd7: PUSH0
00002fd8: MSTORE
00002fd9: DUP3
00002fda: CALLDATALOAD
00002fdb: PUSH1 0x60
00002fdd: SHR
00002fde: XOR
00002fdf: BALANCE
00002fe0: EQ
00002fe1: PUSH2 0x2fe8
00002fe4: JUMPI
00002fe5: PUSH0
00002fe6: SWAP2
00002fe7: POP
00002fe8: JUMPDEST
00002fe9: PUSH1 0x34
00002feb: ADD
00002fec: PUSH2 0x2fac
00002fef: JUMP
00002ff0: JUMPDEST
00002ff1: POP
00002ff2: DUP1
00002ff3: ISZERO
00002ff4: PUSH2 0x300b
00002ff7: JUMPI
00002ff8: PUSH0
00002ff9: PUSH0
00002ffa: PUSH0
00002ffb: PUSH0
00002ffc: CALLVALUE
00002ffd: CALLER
00002ffe: PUSH0
00002fff: CALL
00003000: PUSH2 0x013d
00003003: JUMPI
00003004: RETURNDATASIZE
00003005: PUSH0
00003006: PUSH0
00003007: RETURNDATACOPY
00003008: RETURNDATASIZE
00003009: PUSH0
0000300a: REVERT
0000300b: JUMPDEST
0000300c: PUSH2 0x0fe1
0000300f: DUP6
00003010: DUP6
00003011: DUP6
00003012: DUP6
00003013: PUSH2 0x0395
00003016: JUMP
00003017: JUMPDEST
00003018: PUSH1 0x60
0000301a: PUSH0
0000301b: MLOAD
0000301c: PUSH1 0x20
0000301e: PUSH2 0x3f6c
00003021: PUSH0
00003022: CODECOPY
00003023: PUSH0
00003024: MLOAD
00003025: SWAP1
00003026: PUSH0
00003027: MSTORE
00003028: CALLER
00003029: EQ
0000302a: DUP1
0000302b: PUSH2 0x3042
0000302e: JUMPI
0000302f: POP
00003030: CALLER
00003031: PUSH0
00003032: SWAP1
00003033: DUP2
00003034: MSTORE
00003035: PUSH1 0x20
00003037: DUP2
00003038: SWAP1
00003039: MSTORE
0000303a: PUSH1 0x40
0000303c: SWAP1
0000303d: KECCAK256
0000303e: SLOAD
0000303f: PUSH1 0xff
00003041: AND
00003042: JUMPDEST
00003043: PUSH2 0x305e
00003046: JUMPI
00003047: PUSH1 0x40
00003049: MLOAD
0000304a: PUSH3 0x461bcd
0000304e: PUSH1 0xe5
00003050: SHL
00003051: DUP2
00003052: MSTORE
00003053: PUSH1 0x04
00003055: ADD
00003056: PUSH2 0x035a
00003059: SWAP1
0000305a: PUSH2 0x3ce1
0000305d: JUMP
0000305e: JUMPDEST
0000305f: PUSH0
00003060: PUSH0
00003061: DUP6
00003062: PUSH1 0x01
00003064: PUSH1 0x01
00003066: PUSH1 0xa0
00003068: SHL
00003069: SUB
0000306a: AND
0000306b: CALLVALUE
0000306c: DUP7
0000306d: DUP7
0000306e: PUSH1 0x40
00003070: MLOAD
00003071: PUSH2 0x307b
00003074: SWAP3
00003075: SWAP2
00003076: SWAP1
00003077: PUSH2 0x3ed3
0000307a: JUMP
0000307b: JUMPDEST
0000307c: PUSH0
0000307d: PUSH1 0x40
0000307f: MLOAD
00003080: DUP1
00003081: DUP4
00003082: SUB
00003083: DUP2
00003084: DUP6
00003085: DUP8
00003086: GAS
00003087: CALL
00003088: SWAP3
00003089: POP
0000308a: POP
0000308b: POP
0000308c: RETURNDATASIZE
0000308d: DUP1
0000308e: PUSH0
0000308f: DUP2
00003090: EQ
00003091: PUSH2 0x30b5
00003094: JUMPI
00003095: PUSH1 0x40
00003097: MLOAD
00003098: SWAP2
00003099: POP
0000309a: PUSH1 0x1f
0000309c: NOT
0000309d: PUSH1 0x3f
0000309f: RETURNDATASIZE
000030a0: ADD
000030a1: AND
000030a2: DUP3
000030a3: ADD
000030a4: PUSH1 0x40
000030a6: MSTORE
000030a7: RETURNDATASIZE
000030a8: DUP3
000030a9: MSTORE
000030aa: RETURNDATASIZE
000030ab: PUSH0
000030ac: PUSH1 0x20
000030ae: DUP5
000030af: ADD
000030b0: RETURNDATACOPY
000030b1: PUSH2 0x30ba
000030b4: JUMP
000030b5: JUMPDEST
000030b6: PUSH1 0x60
000030b8: SWAP2
000030b9: POP
000030ba: JUMPDEST
000030bb: POP
000030bc: SWAP2
000030bd: POP
000030be: SWAP2
000030bf: POP
000030c0: DUP2
000030c1: PUSH2 0x310c
000030c4: JUMPI
000030c5: PUSH1 0x40
000030c7: MLOAD
000030c8: PUSH3 0x461bcd
000030cc: PUSH1 0xe5
000030ce: SHL
000030cf: DUP2
000030d0: MSTORE
000030d1: PUSH1 0x20
000030d3: PUSH1 0x04
000030d5: DUP3
000030d6: ADD
000030d7: MSTORE
000030d8: PUSH1 0x1c
000030da: PUSH1 0x24
000030dc: DUP3
000030dd: ADD
000030de: MSTORE
000030df: PUSH32 0x7472616e73706172656e7443616c6c3a2063616c6c206661696c656400000000
00003100: PUSH1 0x44
00003102: DUP3
00003103: ADD
00003104: MSTORE
00003105: PUSH1 0x64
00003107: ADD
00003108: PUSH2 0x035a
0000310b: JUMP
0000310c: JUMPDEST
0000310d: SWAP6
0000310e: SWAP5
0000310f: POP
00003110: POP
00003111: POP
00003112: POP
00003113: POP
00003114: JUMP
00003115: JUMPDEST
00003116: PUSH0
00003117: MLOAD
00003118: PUSH1 0x20
0000311a: PUSH2 0x3f6c
0000311d: PUSH0
0000311e: CODECOPY
0000311f: PUSH0
00003120: MLOAD
00003121: SWAP1
00003122: PUSH0
00003123: MSTORE
00003124: CALLER
00003125: EQ
00003126: DUP1
00003127: PUSH2 0x313e
0000312a: JUMPI
0000312b: POP
0000312c: CALLER
0000312d: PUSH0
0000312e: SWAP1
0000312f: DUP2
00003130: MSTORE
00003131: PUSH1 0x20
00003133: DUP2
00003134: SWAP1
00003135: MSTORE
00003136: PUSH1 0x40
00003138: SWAP1
00003139: KECCAK256
0000313a: SLOAD
0000313b: PUSH1 0xff
0000313d: AND
0000313e: JUMPDEST
0000313f: PUSH2 0x315a
00003142: JUMPI
00003143: PUSH1 0x40
00003145: MLOAD
00003146: PUSH3 0x461bcd
0000314a: PUSH1 0xe5
0000314c: SHL
0000314d: DUP2
0000314e: MSTORE
0000314f: PUSH1 0x04
00003151: ADD
00003152: PUSH2 0x035a
00003155: SWAP1
00003156: PUSH2 0x3ce1
00003159: JUMP
0000315a: JUMPDEST
0000315b: PUSH1 0x01
0000315d: PUSH1 0x34
0000315f: PUSH1 0xc3
00003161: NOT
00003162: CALLDATASIZE
00003163: ADD
00003164: MOD
00003165: ISZERO
00003166: PUSH2 0x31a4
00003169: JUMPI
0000316a: PUSH1 0x40
0000316c: MLOAD
0000316d: PUSH3 0x461bcd
00003171: PUSH1 0xe5
00003173: SHL
00003174: DUP2
00003175: MSTORE
00003176: PUSH1 0x20
00003178: PUSH1 0x04
0000317a: DUP3
0000317b: ADD
0000317c: MSTORE
0000317d: PUSH1 0x13
0000317f: PUSH1 0x24
00003181: DUP3
00003182: ADD
00003183: MSTORE
00003184: PUSH19 0x092dcecc2d8d2c840c8c2e8c240d8cadccee8d
00003198: PUSH1 0x6b
0000319a: SHL
0000319b: PUSH1 0x44
0000319d: DUP3
0000319e: ADD
0000319f: MSTORE
000031a0: PUSH1 0x64
000031a2: DUP2
000031a3: REVERT
000031a4: JUMPDEST
000031a5: PUSH1 0xc4
000031a7: JUMPDEST
000031a8: DUP2
000031a9: CALLDATASIZE
000031aa: DUP3
000031ab: LT
000031ac: AND
000031ad: ISZERO
000031ae: PUSH2 0x31eb
000031b1: JUMPI
000031b2: PUSH0
000031b3: MLOAD
000031b4: PUSH1 0x20
000031b6: PUSH2 0x3f4c
000031b9: PUSH0
000031ba: CODECOPY
000031bb: PUSH0
000031bc: MLOAD
000031bd: SWAP1
000031be: PUSH0
000031bf: MSTORE
000031c0: DUP2
000031c1: PUSH1 0x14
000031c3: ADD
000031c4: CALLDATALOAD
000031c5: XOR
000031c6: PUSH0
000031c7: MLOAD
000031c8: PUSH1 0x20
000031ca: PUSH2 0x3f2c
000031cd: PUSH0
000031ce: CODECOPY
000031cf: PUSH0
000031d0: MLOAD
000031d1: SWAP1
000031d2: PUSH0
000031d3: MSTORE
000031d4: DUP3
000031d5: CALLDATALOAD
000031d6: PUSH1 0x60
000031d8: SHR
000031d9: XOR
000031da: BALANCE
000031db: EQ
000031dc: PUSH2 0x31e3
000031df: JUMPI
000031e0: PUSH0
000031e1: SWAP2
000031e2: POP
000031e3: JUMPDEST
000031e4: PUSH1 0x34
000031e6: ADD
000031e7: PUSH2 0x31a7
000031ea: JUMP
000031eb: JUMPDEST
000031ec: POP
000031ed: DUP1
000031ee: ISZERO
000031ef: PUSH2 0x31f4
000031f2: JUMPI
000031f3: STOP
000031f4: JUMPDEST
000031f5: PUSH2 0x1bb7
000031f8: DUP8
000031f9: DUP8
000031fa: DUP8
000031fb: DUP8
000031fc: DUP8
000031fd: DUP8
000031fe: PUSH2 0x2a5e
00003201: JUMP
00003202: JUMPDEST
00003203: PUSH0
00003204: MLOAD
00003205: PUSH1 0x20
00003207: PUSH2 0x3f6c
0000320a: PUSH0
0000320b: CODECOPY
0000320c: PUSH0
0000320d: MLOAD
0000320e: SWAP1
0000320f: PUSH0
00003210: MSTORE
00003211: CALLER
00003212: EQ
00003213: DUP1
00003214: PUSH2 0x322b
00003217: JUMPI
00003218: POP
00003219: CALLER
0000321a: PUSH0
0000321b: SWAP1
0000321c: DUP2
0000321d: MSTORE
0000321e: PUSH1 0x20
00003220: DUP2
00003221: SWAP1
00003222: MSTORE
00003223: PUSH1 0x40
00003225: SWAP1
00003226: KECCAK256
00003227: SLOAD
00003228: PUSH1 0xff
0000322a: AND
0000322b: JUMPDEST
0000322c: PUSH2 0x3247
0000322f: JUMPI
00003230: PUSH1 0x40
00003232: MLOAD
00003233: PUSH3 0x461bcd
00003237: PUSH1 0xe5
00003239: SHL
0000323a: DUP2
0000323b: MSTORE
0000323c: PUSH1 0x04
0000323e: ADD
0000323f: PUSH2 0x035a
00003242: SWAP1
00003243: PUSH2 0x3ce1
00003246: JUMP
00003247: JUMPDEST
00003248: DUP6
00003249: NUMBER
0000324a: GT
0000324b: ISZERO
0000324c: PUSH2 0x3267
0000324f: JUMPI
00003250: PUSH1 0x40
00003252: MLOAD
00003253: PUSH3 0x461bcd
00003257: PUSH1 0xe5
00003259: SHL
0000325a: DUP2
0000325b: MSTORE
0000325c: PUSH1 0x04
0000325e: ADD
0000325f: PUSH2 0x035a
00003262: SWAP1
00003263: PUSH2 0x3d10
00003266: JUMP
00003267: JUMPDEST
00003268: PUSH0
00003269: PUSH0
0000326a: SWAP1
0000326b: POP
0000326c: PUSH0
0000326d: PUSH0
0000326e: SWAP1
0000326f: POP
00003270: PUSH0
00003271: PUSH0
00003272: DUP7
00003273: PUSH1 0x01
00003275: PUSH1 0x01
00003277: PUSH1 0xa0
00003279: SHL
0000327a: SUB
0000327b: AND
0000327c: PUSH4 0x0902f1ac
00003281: PUSH1 0x40
00003283: MLOAD
00003284: DUP2
00003285: PUSH4 0xffffffff
0000328a: AND
0000328b: PUSH1 0xe0
0000328d: SHL
0000328e: DUP2
0000328f: MSTORE
00003290: PUSH1 0x04
00003292: ADD
00003293: PUSH1 0x60
00003295: PUSH1 0x40
00003297: MLOAD
00003298: DUP1
00003299: DUP4
0000329a: SUB
0000329b: DUP2
0000329c: DUP7
0000329d: GAS
0000329e: STATICCALL
0000329f: ISZERO
000032a0: DUP1
000032a1: ISZERO
000032a2: PUSH2 0x32ad
000032a5: JUMPI
000032a6: RETURNDATASIZE
000032a7: PUSH0
000032a8: PUSH0
000032a9: RETURNDATACOPY
000032aa: RETURNDATASIZE
000032ab: PUSH0
000032ac: REVERT
000032ad: JUMPDEST
000032ae: POP
000032af: POP
000032b0: POP
000032b1: POP
000032b2: PUSH1 0x40
000032b4: MLOAD
000032b5: RETURNDATASIZE
000032b6: PUSH1 0x1f
000032b8: NOT
000032b9: PUSH1 0x1f
000032bb: DUP3
000032bc: ADD
000032bd: AND
000032be: DUP3
000032bf: ADD
000032c0: DUP1
000032c1: PUSH1 0x40
000032c3: MSTORE
000032c4: POP
000032c5: DUP2
000032c6: ADD
000032c7: SWAP1
000032c8: PUSH2 0x32d1
000032cb: SWAP2
000032cc: SWAP1
000032cd: PUSH2 0x3d55
000032d0: JUMP
000032d1: JUMPDEST
000032d2: POP
000032d3: SWAP2
000032d4: POP
000032d5: SWAP2
000032d6: POP
000032d7: PUSH0
000032d8: PUSH1 0x01
000032da: PUSH1 0xff
000032dc: SHL
000032dd: DUP7
000032de: AND
000032df: PUSH0
000032e0: SUB
000032e1: PUSH2 0x336a
000032e4: JUMPI
000032e5: PUSH2 0x3301
000032e8: DUP11
000032e9: DUP5
000032ea: PUSH1 0x01
000032ec: PUSH1 0x01
000032ee: PUSH1 0x70
000032f0: SHL
000032f1: SUB
000032f2: AND
000032f3: DUP5
000032f4: PUSH1 0x01
000032f6: PUSH1 0x01
000032f8: PUSH1 0x70
000032fa: SHL
000032fb: SUB
000032fc: AND
000032fd: PUSH2 0x38cc
00003300: JUMP
00003301: JUMPDEST
00003302: SWAP4
00003303: POP
00003304: DUP8
00003305: PUSH1 0x01
00003307: PUSH1 0x01
00003309: PUSH1 0xa0
0000330b: SHL
0000330c: SUB
0000330d: AND
0000330e: PUSH4 0xd21220a7
00003313: PUSH1 0x40
00003315: MLOAD
00003316: DUP2
00003317: PUSH4 0xffffffff
0000331c: AND
0000331d: PUSH1 0xe0
0000331f: SHL
00003320: DUP2
00003321: MSTORE
00003322: PUSH1 0x04
00003324: ADD
00003325: PUSH1 0x20
00003327: PUSH1 0x40
00003329: MLOAD
0000332a: DUP1
0000332b: DUP4
0000332c: SUB
0000332d: DUP2
0000332e: DUP7
0000332f: GAS
00003330: STATICCALL
00003331: ISZERO
00003332: DUP1
00003333: ISZERO
00003334: PUSH2 0x333f
00003337: JUMPI
00003338: RETURNDATASIZE
00003339: PUSH0
0000333a: PUSH0
0000333b: RETURNDATACOPY
0000333c: RETURNDATASIZE
0000333d: PUSH0
0000333e: REVERT
0000333f: JUMPDEST
00003340: POP
00003341: POP
00003342: POP
00003343: POP
00003344: PUSH1 0x40
00003346: MLOAD
00003347: RETURNDATASIZE
00003348: PUSH1 0x1f
0000334a: NOT
0000334b: PUSH1 0x1f
0000334d: DUP3
0000334e: ADD
0000334f: AND
00003350: DUP3
00003351: ADD
00003352: DUP1
00003353: PUSH1 0x40
00003355: MSTORE
00003356: POP
00003357: DUP2
00003358: ADD
00003359: SWAP1
0000335a: PUSH2 0x3363
0000335d: SWAP2
0000335e: SWAP1
0000335f: PUSH2 0x3da1
00003362: JUMP
00003363: JUMPDEST
00003364: SWAP1
00003365: POP
00003366: PUSH2 0x33ec
00003369: JUMP
0000336a: JUMPDEST
0000336b: PUSH2 0x3387
0000336e: DUP11
0000336f: DUP4
00003370: PUSH1 0x01
00003372: PUSH1 0x01
00003374: PUSH1 0x70
00003376: SHL
00003377: SUB
00003378: AND
00003379: DUP6
0000337a: PUSH1 0x01
0000337c: PUSH1 0x01
0000337e: PUSH1 0x70
00003380: SHL
00003381: SUB
00003382: AND
00003383: PUSH2 0x38cc
00003386: JUMP
00003387: JUMPDEST
00003388: SWAP5
00003389: POP
0000338a: DUP8
0000338b: PUSH1 0x01
0000338d: PUSH1 0x01
0000338f: PUSH1 0xa0
00003391: SHL
00003392: SUB
00003393: AND
00003394: PUSH4 0x0dfe1681
00003399: PUSH1 0x40
0000339b: MLOAD
0000339c: DUP2
0000339d: PUSH4 0xffffffff
000033a2: AND
000033a3: PUSH1 0xe0
000033a5: SHL
000033a6: DUP2
000033a7: MSTORE
000033a8: PUSH1 0x04
000033aa: ADD
000033ab: PUSH1 0x20
000033ad: PUSH1 0x40
000033af: MLOAD
000033b0: DUP1
000033b1: DUP4
000033b2: SUB
000033b3: DUP2
000033b4: DUP7
000033b5: GAS
000033b6: STATICCALL
000033b7: ISZERO
000033b8: DUP1
000033b9: ISZERO
000033ba: PUSH2 0x33c5
000033bd: JUMPI
000033be: RETURNDATASIZE
000033bf: PUSH0
000033c0: PUSH0
000033c1: RETURNDATACOPY
000033c2: RETURNDATASIZE
000033c3: PUSH0
000033c4: REVERT
000033c5: JUMPDEST
000033c6: POP
000033c7: POP
000033c8: POP
000033c9: POP
000033ca: PUSH1 0x40
000033cc: MLOAD
000033cd: RETURNDATASIZE
000033ce: PUSH1 0x1f
000033d0: NOT
000033d1: PUSH1 0x1f
000033d3: DUP3
000033d4: ADD
000033d5: AND
000033d6: DUP3
000033d7: ADD
000033d8: DUP1
000033d9: PUSH1 0x40
000033db: MSTORE
000033dc: POP
000033dd: DUP2
000033de: ADD
000033df: SWAP1
000033e0: PUSH2 0x33e9
000033e3: SWAP2
000033e4: SWAP1
000033e5: PUSH2 0x3da1
000033e8: JUMP
000033e9: JUMPDEST
000033ea: SWAP1
000033eb: POP
000033ec: JUMPDEST
000033ed: PUSH1 0x40
000033ef: MLOAD
000033f0: PUSH4 0xa9059cbb
000033f5: PUSH1 0xe0
000033f7: SHL
000033f8: DUP2
000033f9: MSTORE
000033fa: DUP9
000033fb: PUSH1 0x04
000033fd: DUP3
000033fe: ADD
000033ff: MSTORE
00003400: DUP11
00003401: PUSH1 0x24
00003403: DUP3
00003404: ADD
00003405: MSTORE
00003406: PUSH0
00003407: PUSH0
00003408: PUSH1 0x44
0000340a: DUP4
0000340b: PUSH0
0000340c: DUP15
0000340d: GAS
0000340e: CALL
0000340f: POP
00003410: POP
00003411: PUSH1 0x40
00003413: MLOAD
00003414: PUSH4 0x70a08231
00003419: PUSH1 0xe0
0000341b: SHL
0000341c: DUP2
0000341d: MSTORE
0000341e: PUSH1 0x01
00003420: PUSH1 0x01
00003422: PUSH1 0xa0
00003424: SHL
00003425: SUB
00003426: DUP8
00003427: DUP2
00003428: AND
00003429: PUSH1 0x04
0000342b: DUP4
0000342c: ADD
0000342d: MSTORE
0000342e: PUSH0
0000342f: SWAP2
00003430: SWAP1
00003431: DUP4
00003432: AND
00003433: SWAP1
00003434: PUSH4 0x70a08231
00003439: SWAP1
0000343a: PUSH1 0x24
0000343c: ADD
0000343d: PUSH1 0x20
0000343f: PUSH1 0x40
00003441: MLOAD
00003442: DUP1
00003443: DUP4
00003444: SUB
00003445: DUP2
00003446: DUP7
00003447: GAS
00003448: STATICCALL
00003449: ISZERO
0000344a: DUP1
0000344b: ISZERO
0000344c: PUSH2 0x3457
0000344f: JUMPI
00003450: RETURNDATASIZE
00003451: PUSH0
00003452: PUSH0
00003453: RETURNDATACOPY
00003454: RETURNDATASIZE
00003455: PUSH0
00003456: REVERT
00003457: JUMPDEST
00003458: POP
00003459: POP
0000345a: POP
0000345b: POP
0000345c: PUSH1 0x40
0000345e: MLOAD
0000345f: RETURNDATASIZE
00003460: PUSH1 0x1f
00003462: NOT
00003463: PUSH1 0x1f
00003465: DUP3
00003466: ADD
00003467: AND
00003468: DUP3
00003469: ADD
0000346a: DUP1
0000346b: PUSH1 0x40
0000346d: MSTORE
0000346e: POP
0000346f: DUP2
00003470: ADD
00003471: SWAP1
00003472: PUSH2 0x347b
00003475: SWAP2
00003476: SWAP1
00003477: PUSH2 0x3ddb
0000347a: JUMP
0000347b: JUMPDEST
0000347c: SWAP1
0000347d: POP
0000347e: PUSH0
0000347f: PUSH1 0x01
00003481: PUSH1 0xfe
00003483: SHL
00003484: DUP9
00003485: AND
00003486: ISZERO
00003487: PUSH2 0x34f3
0000348a: JUMPI
0000348b: PUSH1 0x40
0000348d: MLOAD
0000348e: PUSH4 0x70a08231
00003493: PUSH1 0xe0
00003495: SHL
00003496: DUP2
00003497: MSTORE
00003498: ADDRESS
00003499: PUSH1 0x04
0000349b: DUP3
0000349c: ADD
0000349d: MSTORE
0000349e: PUSH1 0x01
000034a0: PUSH1 0x01
000034a2: PUSH1 0xa0
000034a4: SHL
000034a5: SUB
000034a6: DUP5
000034a7: AND
000034a8: SWAP1
000034a9: PUSH4 0x70a08231
000034ae: SWAP1
000034af: PUSH1 0x24
000034b1: ADD
000034b2: PUSH1 0x20
000034b4: PUSH1 0x40
000034b6: MLOAD
000034b7: DUP1
000034b8: DUP4
000034b9: SUB
000034ba: DUP2
000034bb: DUP7
000034bc: GAS
000034bd: STATICCALL
000034be: ISZERO
000034bf: DUP1
000034c0: ISZERO
000034c1: PUSH2 0x34cc
000034c4: JUMPI
000034c5: RETURNDATASIZE
000034c6: PUSH0
000034c7: PUSH0
000034c8: RETURNDATACOPY
000034c9: RETURNDATASIZE
000034ca: PUSH0
000034cb: REVERT
000034cc: JUMPDEST
000034cd: POP
000034ce: POP
000034cf: POP
000034d0: POP
000034d1: PUSH1 0x40
000034d3: MLOAD
000034d4: RETURNDATASIZE
000034d5: PUSH1 0x1f
000034d7: NOT
000034d8: PUSH1 0x1f
000034da: DUP3
000034db: ADD
000034dc: AND
000034dd: DUP3
000034de: ADD
000034df: DUP1
000034e0: PUSH1 0x40
000034e2: MSTORE
000034e3: POP
000034e4: DUP2
000034e5: ADD
000034e6: SWAP1
000034e7: PUSH2 0x34f0
000034ea: SWAP2
000034eb: SWAP1
000034ec: PUSH2 0x3ddb
000034ef: JUMP
000034f0: JUMPDEST
000034f1: SWAP1
000034f2: POP
000034f3: JUMPDEST
000034f4: DUP10
000034f5: PUSH1 0x01
000034f7: PUSH1 0x01
000034f9: PUSH1 0xa0
000034fb: SHL
000034fc: SUB
000034fd: AND
000034fe: PUSH4 0x022c0d9f
00003503: DUP9
00003504: DUP9
00003505: PUSH0
00003506: PUSH1 0x01
00003508: PUSH1 0xfe
0000350a: SHL
0000350b: DUP14
0000350c: AND
0000350d: GT
0000350e: PUSH2 0x3517
00003511: JUMPI
00003512: DUP12
00003513: PUSH2 0x3519
00003516: JUMP
00003517: JUMPDEST
00003518: ADDRESS
00003519: JUMPDEST
0000351a: PUSH1 0x40
0000351c: MLOAD
0000351d: DUP5
0000351e: PUSH4 0xffffffff
00003523: AND
00003524: PUSH1 0xe0
00003526: SHL
00003527: DUP2
00003528: MSTORE
00003529: PUSH1 0x04
0000352b: ADD
0000352c: PUSH2 0x3537
0000352f: SWAP4
00003530: SWAP3
00003531: SWAP2
00003532: SWAP1
00003533: PUSH2 0x3df2
00003536: JUMP
00003537: JUMPDEST
00003538: PUSH0
00003539: PUSH1 0x40
0000353b: MLOAD
0000353c: DUP1
0000353d: DUP4
0000353e: SUB
0000353f: DUP2
00003540: PUSH0
00003541: DUP8
00003542: DUP1
00003543: EXTCODESIZE
00003544: ISZERO
00003545: DUP1
00003546: ISZERO
00003547: PUSH2 0x354e
0000354a: JUMPI
0000354b: PUSH0
0000354c: PUSH0
0000354d: REVERT
0000354e: JUMPDEST
0000354f: POP
00003550: GAS
00003551: CALL
00003552: ISZERO
00003553: DUP1
00003554: ISZERO
00003555: PUSH2 0x3560
00003558: JUMPI
00003559: RETURNDATASIZE
0000355a: PUSH0
0000355b: PUSH0
0000355c: RETURNDATACOPY
0000355d: RETURNDATASIZE
0000355e: PUSH0
0000355f: REVERT
00003560: JUMPDEST
00003561: POP
00003562: POP
00003563: POP
00003564: POP
00003565: PUSH1 0x01
00003567: PUSH1 0xfe
00003569: SHL
0000356a: DUP9
0000356b: AND
0000356c: ISZERO
0000356d: PUSH2 0x361b
00003570: JUMPI
00003571: PUSH1 0x40
00003573: MLOAD
00003574: PUSH4 0x70a08231
00003579: PUSH1 0xe0
0000357b: SHL
0000357c: DUP2
0000357d: MSTORE
0000357e: ADDRESS
0000357f: PUSH1 0x04
00003581: DUP3
00003582: ADD
00003583: MSTORE
00003584: PUSH0
00003585: SWAP1
00003586: PUSH1 0x01
00003588: PUSH1 0x01
0000358a: PUSH1 0xa0
0000358c: SHL
0000358d: SUB
0000358e: DUP6
0000358f: AND
00003590: SWAP1
00003591: PUSH4 0x70a08231
00003596: SWAP1
00003597: PUSH1 0x24
00003599: ADD
0000359a: PUSH1 0x20
0000359c: PUSH1 0x40
0000359e: MLOAD
0000359f: DUP1
000035a0: DUP4
000035a1: SUB
000035a2: DUP2
000035a3: DUP7
000035a4: GAS
000035a5: STATICCALL
000035a6: ISZERO
000035a7: DUP1
000035a8: ISZERO
000035a9: PUSH2 0x35b4
000035ac: JUMPI
000035ad: RETURNDATASIZE
000035ae: PUSH0
000035af: PUSH0
000035b0: RETURNDATACOPY
000035b1: RETURNDATASIZE
000035b2: PUSH0
000035b3: REVERT
000035b4: JUMPDEST
000035b5: POP
000035b6: POP
000035b7: POP
000035b8: POP
000035b9: PUSH1 0x40
000035bb: MLOAD
000035bc: RETURNDATASIZE
000035bd: PUSH1 0x1f
000035bf: NOT
000035c0: PUSH1 0x1f
000035c2: DUP3
000035c3: ADD
000035c4: AND
000035c5: DUP3
000035c6: ADD
000035c7: DUP1
000035c8: PUSH1 0x40
000035ca: MSTORE
000035cb: POP
000035cc: DUP2
000035cd: ADD
000035ce: SWAP1
000035cf: PUSH2 0x35d8
000035d2: SWAP2
000035d3: SWAP1
000035d4: PUSH2 0x3ddb
000035d7: JUMP
000035d8: JUMPDEST
000035d9: SWAP1
000035da: POP
000035db: DUP2
000035dc: PUSH0
000035dd: SUB
000035de: PUSH2 0x360a
000035e1: JUMPI
000035e2: PUSH2 0x35f1
000035e5: DUP5
000035e6: DUP11
000035e7: PUSH2 0x0138
000035ea: PUSH1 0x01
000035ec: DUP6
000035ed: PUSH2 0x3e33
000035f0: JUMP
000035f1: JUMPDEST
000035f2: DUP10
000035f3: ISZERO
000035f4: PUSH2 0x3605
000035f7: JUMPI
000035f8: PUSH2 0x3602
000035fb: PUSH1 0x01
000035fd: DUP12
000035fe: PUSH2 0x3e33
00003601: JUMP
00003602: JUMPDEST
00003603: SWAP10
00003604: POP
00003605: JUMPDEST
00003606: PUSH2 0x3619
00003609: JUMP
0000360a: JUMPDEST
0000360b: PUSH2 0x3619
0000360e: DUP5
0000360f: DUP11
00003610: PUSH2 0x0138
00003613: DUP6
00003614: DUP6
00003615: PUSH2 0x3e33
00003618: JUMP
00003619: JUMPDEST
0000361a: POP
0000361b: JUMPDEST
0000361c: PUSH1 0x40
0000361e: MLOAD
0000361f: PUSH4 0x70a08231
00003624: PUSH1 0xe0
00003626: SHL
00003627: DUP2
00003628: MSTORE
00003629: PUSH1 0x01
0000362b: PUSH1 0x01
0000362d: PUSH1 0xa0
0000362f: SHL
00003630: SUB
00003631: DUP10
00003632: DUP2
00003633: AND
00003634: PUSH1 0x04
00003636: DUP4
00003637: ADD
00003638: MSTORE
00003639: DUP11
0000363a: SWAP2
0000363b: DUP5
0000363c: SWAP2
0000363d: DUP7
0000363e: AND
0000363f: SWAP1
00003640: PUSH4 0x70a08231
00003645: SWAP1
00003646: PUSH1 0x24
00003648: ADD
00003649: PUSH1 0x20
0000364b: PUSH1 0x40
0000364d: MLOAD
0000364e: DUP1
0000364f: DUP4
00003650: SUB
00003651: DUP2
00003652: DUP7
00003653: GAS
00003654: STATICCALL
00003655: ISZERO
00003656: DUP1
00003657: ISZERO
00003658: PUSH2 0x3663
0000365b: JUMPI
0000365c: RETURNDATASIZE
0000365d: PUSH0
0000365e: PUSH0
0000365f: RETURNDATACOPY
00003660: RETURNDATASIZE
00003661: PUSH0
00003662: REVERT
00003663: JUMPDEST
00003664: POP
00003665: POP
00003666: POP
00003667: POP
00003668: PUSH1 0x40
0000366a: MLOAD
0000366b: RETURNDATASIZE
0000366c: PUSH1 0x1f
0000366e: NOT
0000366f: PUSH1 0x1f
00003671: DUP3
00003672: ADD
00003673: AND
00003674: DUP3
00003675: ADD
00003676: DUP1
00003677: PUSH1 0x40
00003679: MSTORE
0000367a: POP
0000367b: DUP2
0000367c: ADD
0000367d: SWAP1
0000367e: PUSH2 0x3687
00003681: SWAP2
00003682: SWAP1
00003683: PUSH2 0x3ddb
00003686: JUMP
00003687: JUMPDEST
00003688: PUSH2 0x3691
0000368b: SWAP2
0000368c: SWAP1
0000368d: PUSH2 0x3e33
00003690: JUMP
00003691: JUMPDEST
00003692: LT
00003693: ISZERO
00003694: PUSH2 0x36af
00003697: JUMPI
00003698: PUSH1 0x40
0000369a: MLOAD
0000369b: PUSH3 0x461bcd
0000369f: PUSH1 0xe5
000036a1: SHL
000036a2: DUP2
000036a3: MSTORE
000036a4: PUSH1 0x04
000036a6: ADD
000036a7: PUSH2 0x035a
000036aa: SWAP1
000036ab: PUSH2 0x3e4c
000036ae: JUMP
000036af: JUMPDEST
000036b0: COINBASE
000036b1: PUSH1 0x01
000036b3: PUSH1 0x01
000036b5: PUSH1 0xa0
000036b7: SHL
000036b8: SUB
000036b9: AND
000036ba: CALLVALUE
000036bb: PUSH1 0x40
000036bd: MLOAD
000036be: PUSH2 0x0e93
000036c1: JUMP
000036c2: JUMPDEST
000036c3: PUSH0
000036c4: MLOAD
000036c5: PUSH1 0x20
000036c7: PUSH2 0x3f6c
000036ca: PUSH0
000036cb: CODECOPY
000036cc: PUSH0
000036cd: MLOAD
000036ce: SWAP1
000036cf: PUSH0
000036d0: MSTORE
000036d1: ORIGIN
000036d2: EQ
000036d3: DUP1
000036d4: PUSH2 0x36eb
000036d7: JUMPI
000036d8: POP
000036d9: ORIGIN
000036da: PUSH0
000036db: SWAP1
000036dc: DUP2
000036dd: MSTORE
000036de: PUSH1 0x20
000036e0: DUP2
000036e1: SWAP1
000036e2: MSTORE
000036e3: PUSH1 0x40
000036e5: SWAP1
000036e6: KECCAK256
000036e7: SLOAD
000036e8: PUSH1 0xff
000036ea: AND
000036eb: JUMPDEST
000036ec: PUSH2 0x3707
000036ef: JUMPI
000036f0: PUSH1 0x40
000036f2: MLOAD
000036f3: PUSH3 0x461bcd
000036f7: PUSH1 0xe5
000036f9: SHL
000036fa: DUP2
000036fb: MSTORE
000036fc: PUSH1 0x04
000036fe: ADD
000036ff: PUSH2 0x035a
00003702: SWAP1
00003703: PUSH2 0x3ce1
00003706: JUMP
00003707: JUMPDEST
00003708: PUSH2 0x3746
0000370b: JUMP
0000370c: JUMPDEST
0000370d: RETURNDATASIZE
0000370e: PUSH0
0000370f: PUSH0
00003710: RETURNDATACOPY
00003711: RETURNDATASIZE
00003712: PUSH0
00003713: REVERT
00003714: JUMPDEST
00003715: DUP1
00003716: PUSH2 0x3721
00003719: JUMPI
0000371a: PUSH2 0x3721
0000371d: PUSH2 0x370c
00003720: JUMP
00003721: JUMPDEST
00003722: PUSH1 0x01
00003724: PUSH0
00003725: MLOAD
00003726: EQ
00003727: PUSH1 0x1f
00003729: RETURNDATASIZE
0000372a: GT
0000372b: AND
0000372c: RETURNDATASIZE
0000372d: ISZERO
0000372e: OR
0000372f: DUP1
00003730: PUSH2 0x3742
00003733: JUMPI
00003734: PUSH4 0x3c9fd939
00003739: PUSH1 0xe2
0000373b: SHL
0000373c: PUSH0
0000373d: MSTORE
0000373e: PUSH1 0x04
00003740: PUSH0
00003741: REVERT
00003742: JUMPDEST
00003743: POP
00003744: POP
00003745: JUMP
00003746: JUMPDEST
00003747: PUSH1 0x40
00003749: MLOAD
0000374a: PUSH1 0x15
0000374c: DUP2
0000374d: ADD
0000374e: PUSH20 0x0dfe1681d21220a7ddca3f43a9059cbb23b872dd
00003763: PUSH1 0x60
00003765: SHL
00003766: DUP3
00003767: MSTORE
00003768: PUSH1 0x20
0000376a: DUP2
0000376b: PUSH1 0x04
0000376d: DUP5
0000376e: CALLER
0000376f: GAS
00003770: STATICCALL
00003771: PUSH2 0x377c
00003774: JUMPI
00003775: PUSH2 0x377c
00003778: PUSH2 0x370c
0000377b: JUMP
0000377c: JUMPDEST
0000377d: PUSH1 0x20
0000377f: DUP1
00003780: DUP3
00003781: ADD
00003782: PUSH1 0x04
00003784: DUP1
00003785: DUP6
00003786: ADD
00003787: CALLER
00003788: GAS
00003789: STATICCALL
0000378a: PUSH2 0x3795
0000378d: JUMPI
0000378e: PUSH2 0x3795
00003791: PUSH2 0x370c
00003794: JUMP
00003795: JUMPDEST
00003796: PUSH1 0x20
00003798: PUSH1 0x40
0000379a: DUP3
0000379b: ADD
0000379c: PUSH1 0x04
0000379e: PUSH1 0x08
000037a0: DUP6
000037a1: ADD
000037a2: CALLER
000037a3: GAS
000037a4: STATICCALL
000037a5: PUSH2 0x37b0
000037a8: JUMPI
000037a9: PUSH2 0x37b0
000037ac: PUSH2 0x370c
000037af: JUMP
000037b0: JUMPDEST
000037b1: PUSH0
000037b2: PUSH0
000037b3: PUSH0
000037b4: DUP9
000037b5: SGT
000037b6: PUSH1 0x01
000037b8: DUP2
000037b9: EQ
000037ba: PUSH2 0x37cc
000037bd: JUMPI
000037be: PUSH1 0x20
000037c0: DUP5
000037c1: ADD
000037c2: MLOAD
000037c3: SWAP3
000037c4: POP
000037c5: DUP8
000037c6: SWAP2
000037c7: POP
000037c8: PUSH2 0x37d4
000037cb: JUMP
000037cc: JUMPDEST
000037cd: DUP4
000037ce: MLOAD
000037cf: SWAP3
000037d0: POP
000037d1: DUP9
000037d2: SWAP2
000037d3: POP
000037d4: JUMPDEST
000037d5: POP
000037d6: PUSH32 0xff1f98431c8ad98523631ae4a59f267346ea31f9840000000000000000000000
000037f7: DUP5
000037f8: MSTORE
000037f9: PUSH1 0x60
000037fb: DUP4
000037fc: KECCAK256
000037fd: DUP4
000037fe: MSTORE
000037ff: PUSH32 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
00003820: PUSH1 0x20
00003822: DUP5
00003823: ADD
00003824: MSTORE
00003825: PUSH1 0x01
00003827: PUSH1 0x01
00003829: PUSH1 0xa0
0000382b: SHL
0000382c: SUB
0000382d: PUSH1 0x55
0000382f: DUP6
00003830: KECCAK256
00003831: AND
00003832: SWAP3
00003833: POP
00003834: CALLER
00003835: DUP4
00003836: XOR
00003837: ISZERO
00003838: PUSH2 0x384a
0000383b: JUMPI
0000383c: PUSH4 0x59601391
00003841: PUSH1 0xe1
00003843: SHL
00003844: PUSH0
00003845: MSTORE
00003846: PUSH1 0x04
00003848: PUSH0
00003849: REVERT
0000384a: JUMPDEST
0000384b: PUSH1 0x84
0000384d: CALLDATALOAD
0000384e: SWAP3
0000384f: POP
00003850: PUSH20 0x0dfe1681d21220a7ddca3f43a9059cbb23b872dd
00003865: PUSH1 0x60
00003867: SHL
00003868: DUP5
00003869: MSTORE
0000386a: ADDRESS
0000386b: DUP4
0000386c: EQ
0000386d: PUSH1 0x01
0000386f: DUP2
00003870: EQ
00003871: PUSH2 0x38a0
00003874: JUMPI
00003875: DUP4
00003876: PUSH1 0x14
00003878: DUP7
00003879: ADD
0000387a: MSTORE
0000387b: CALLER
0000387c: PUSH1 0x34
0000387e: DUP7
0000387f: ADD
00003880: MSTORE
00003881: DUP2
00003882: PUSH1 0x54
00003884: DUP7
00003885: ADD
00003886: MSTORE
00003887: PUSH2 0x389b
0000388a: PUSH1 0x20
0000388c: PUSH0
0000388d: PUSH1 0x64
0000388f: PUSH1 0x10
00003891: DUP10
00003892: ADD
00003893: PUSH0
00003894: DUP9
00003895: GAS
00003896: CALL
00003897: PUSH2 0x3714
0000389a: JUMP
0000389b: JUMPDEST
0000389c: PUSH2 0x38c1
0000389f: JUMP
000038a0: JUMPDEST
000038a1: CALLER
000038a2: PUSH1 0x10
000038a4: DUP7
000038a5: ADD
000038a6: MSTORE
000038a7: DUP2
000038a8: PUSH1 0x30
000038aa: DUP7
000038ab: ADD
000038ac: MSTORE
000038ad: PUSH2 0x38c1
000038b0: PUSH1 0x20
000038b2: PUSH0
000038b3: PUSH1 0x44
000038b5: PUSH1 0x0c
000038b7: DUP10
000038b8: ADD
000038b9: PUSH0
000038ba: DUP9
000038bb: GAS
000038bc: CALL
000038bd: PUSH2 0x3714
000038c0: JUMP
000038c1: JUMPDEST
000038c2: POP
000038c3: POP
000038c4: POP
000038c5: POP
000038c6: POP
000038c7: POP
000038c8: POP
000038c9: POP
000038ca: POP
000038cb: JUMP
000038cc: JUMPDEST
000038cd: PUSH0
000038ce: PUSH0
000038cf: DUP5
000038d0: GT
000038d1: PUSH2 0x3928
000038d4: JUMPI
000038d5: PUSH1 0x40
000038d7: MLOAD
000038d8: PUSH3 0x461bcd
000038dc: PUSH1 0xe5
000038de: SHL
000038df: DUP2
000038e0: MSTORE
000038e1: PUSH1 0x20
000038e3: PUSH1 0x04
000038e5: DUP3
000038e6: ADD
000038e7: MSTORE
000038e8: PUSH1 0x24
000038ea: DUP1
000038eb: DUP3
000038ec: ADD
000038ed: MSTORE
000038ee: PUSH32 0x556e697377617056323a20494e53554646494349454e545f494e5055545f414d
0000390f: PUSH1 0x44
00003911: DUP3
00003912: ADD
00003913: MSTORE
00003914: PUSH4 0x13d55395
00003919: PUSH1 0xe2
0000391b: SHL
0000391c: PUSH1 0x64
0000391e: DUP3
0000391f: ADD
00003920: MSTORE
00003921: PUSH1 0x84
00003923: ADD
00003924: PUSH2 0x035a
00003927: JUMP
00003928: JUMPDEST
00003929: PUSH0
0000392a: DUP4
0000392b: GT
0000392c: DUP1
0000392d: ISZERO
0000392e: PUSH2 0x3936
00003931: JUMPI
00003932: POP
00003933: PUSH0
00003934: DUP3
00003935: GT
00003936: JUMPDEST
00003937: PUSH2 0x398c
0000393a: JUMPI
0000393b: PUSH1 0x40
0000393d: MLOAD
0000393e: PUSH3 0x461bcd
00003942: PUSH1 0xe5
00003944: SHL
00003945: DUP2
00003946: MSTORE
00003947: PUSH1 0x20
00003949: PUSH1 0x04
0000394b: DUP3
0000394c: ADD
0000394d: MSTORE
0000394e: PUSH1 0x21
00003950: PUSH1 0x24
00003952: DUP3
00003953: ADD
00003954: MSTORE
00003955: PUSH32 0x556e697377617056323a20494e53554646494349454e545f4c49515549444954
00003976: PUSH1 0x44
00003978: DUP3
00003979: ADD
0000397a: MSTORE
0000397b: PUSH1 0x59
0000397d: PUSH1 0xf8
0000397f: SHL
00003980: PUSH1 0x64
00003982: DUP3
00003983: ADD
00003984: MSTORE
00003985: PUSH1 0x84
00003987: ADD
00003988: PUSH2 0x035a
0000398b: JUMP
0000398c: JUMPDEST
0000398d: PUSH0
0000398e: PUSH2 0x3999
00003991: DUP6
00003992: PUSH2 0x03e5
00003995: PUSH2 0x3ee2
00003998: JUMP
00003999: JUMPDEST
0000399a: SWAP1
0000399b: POP
0000399c: PUSH0
0000399d: PUSH2 0x39a6
000039a0: DUP5
000039a1: DUP4
000039a2: PUSH2 0x3ee2
000039a5: JUMP
000039a6: JUMPDEST
000039a7: SWAP1
000039a8: POP
000039a9: PUSH0
000039aa: DUP3
000039ab: PUSH2 0x39b6
000039ae: DUP8
000039af: PUSH2 0x03e8
000039b2: PUSH2 0x3ee2
000039b5: JUMP
000039b6: JUMPDEST
000039b7: PUSH2 0x39c0
000039ba: SWAP2
000039bb: SWAP1
000039bc: PUSH2 0x3ef9
000039bf: JUMP
000039c0: JUMPDEST
000039c1: SWAP1
000039c2: POP
000039c3: PUSH2 0x39cc
000039c6: DUP2
000039c7: DUP4
000039c8: PUSH2 0x3f0c
000039cb: JUMP
000039cc: JUMPDEST
000039cd: SWAP8
000039ce: SWAP7
000039cf: POP
000039d0: POP
000039d1: POP
000039d2: POP
000039d3: POP
000039d4: POP
000039d5: POP
000039d6: JUMP
000039d7: JUMPDEST
000039d8: PUSH0
000039d9: PUSH1 0x01
000039db: PUSH1 0x01
000039dd: PUSH1 0xff
000039df: SHL
000039e0: SUB
000039e1: DUP3
000039e2: GT
000039e3: ISZERO
000039e4: PUSH2 0x3a40
000039e7: JUMPI
000039e8: PUSH1 0x40
000039ea: MLOAD
000039eb: PUSH3 0x461bcd
000039ef: PUSH1 0xe5
000039f1: SHL
000039f2: DUP2
000039f3: MSTORE
000039f4: PUSH1 0x20
000039f6: PUSH1 0x04
000039f8: DUP3
000039f9: ADD
000039fa: MSTORE
000039fb: PUSH1 0x28
000039fd: PUSH1 0x24
000039ff: DUP3
00003a00: ADD
00003a01: MSTORE
00003a02: PUSH32 0x53616665436173743a2076616c756520646f65736e27742066697420696e2061
00003a23: PUSH1 0x44
00003a25: DUP3
00003a26: ADD
00003a27: MSTORE
00003a28: PUSH8 0x371034b73a191a9b
00003a31: PUSH1 0xc1
00003a33: SHL
00003a34: PUSH1 0x64
00003a36: DUP3
00003a37: ADD
00003a38: MSTORE
00003a39: PUSH1 0x84
00003a3b: ADD
00003a3c: PUSH2 0x035a
00003a3f: JUMP
00003a40: JUMPDEST
00003a41: POP
00003a42: SWAP1
00003a43: JUMP
00003a44: JUMPDEST
00003a45: PUSH1 0x01
00003a47: PUSH1 0x01
00003a49: PUSH1 0xa0
00003a4b: SHL
00003a4c: SUB
00003a4d: DUP2
00003a4e: AND
00003a4f: DUP2
00003a50: EQ
00003a51: PUSH2 0x3a58
00003a54: JUMPI
00003a55: PUSH0
00003a56: PUSH0
00003a57: REVERT
00003a58: JUMPDEST
00003a59: POP
00003a5a: JUMP
00003a5b: JUMPDEST
00003a5c: PUSH0
00003a5d: PUSH0
00003a5e: PUSH0
00003a5f: PUSH1 0x60
00003a61: DUP5
00003a62: DUP7
00003a63: SUB
00003a64: SLT
00003a65: ISZERO
00003a66: PUSH2 0x3a6d
00003a69: JUMPI
00003a6a: PUSH0
00003a6b: PUSH0
00003a6c: REVERT
00003a6d: JUMPDEST
00003a6e: DUP4
00003a6f: CALLDATALOAD
00003a70: PUSH2 0x3a78
00003a73: DUP2
00003a74: PUSH2 0x3a44
00003a77: JUMP
00003a78: JUMPDEST
00003a79: SWAP3
00003a7a: POP
00003a7b: PUSH1 0x20
00003a7d: DUP5
00003a7e: ADD
00003a7f: CALLDATALOAD
00003a80: PUSH2 0x3a88
00003a83: DUP2
00003a84: PUSH2 0x3a44
00003a87: JUMP
00003a88: JUMPDEST
00003a89: SWAP3
00003a8a: SWAP6
00003a8b: SWAP3
00003a8c: SWAP5
00003a8d: POP
00003a8e: POP
00003a8f: POP
00003a90: PUSH1 0x40
00003a92: SWAP2
00003a93: SWAP1
00003a94: SWAP2
00003a95: ADD
00003a96: CALLDATALOAD
00003a97: SWAP1
00003a98: JUMP
00003a99: JUMPDEST
00003a9a: PUSH0
00003a9b: PUSH0
00003a9c: PUSH0
00003a9d: PUSH0
00003a9e: PUSH1 0x80
00003aa0: DUP6
00003aa1: DUP8
00003aa2: SUB
00003aa3: SLT
00003aa4: ISZERO
00003aa5: PUSH2 0x3aac
00003aa8: JUMPI
00003aa9: PUSH0
00003aaa: PUSH0
00003aab: REVERT
00003aac: JUMPDEST
00003aad: DUP5
00003aae: CALLDATALOAD
00003aaf: SWAP4
00003ab0: POP
00003ab1: PUSH1 0x20
00003ab3: DUP6
00003ab4: ADD
00003ab5: CALLDATALOAD
00003ab6: PUSH2 0x3abe
00003ab9: DUP2
00003aba: PUSH2 0x3a44
00003abd: JUMP
00003abe: JUMPDEST
00003abf: SWAP4
00003ac0: SWAP7
00003ac1: SWAP4
00003ac2: SWAP6
00003ac3: POP
00003ac4: POP
00003ac5: POP
00003ac6: POP
00003ac7: PUSH1 0x40
00003ac9: DUP3
00003aca: ADD
00003acb: CALLDATALOAD
00003acc: SWAP2
00003acd: PUSH1 0x60
00003acf: ADD
00003ad0: CALLDATALOAD
00003ad1: SWAP1
00003ad2: JUMP
00003ad3: JUMPDEST
00003ad4: PUSH0
00003ad5: PUSH0
00003ad6: PUSH0
00003ad7: PUSH0
00003ad8: PUSH0
00003ad9: PUSH1 0xa0
00003adb: DUP7
00003adc: DUP9
00003add: SUB
00003ade: SLT
00003adf: ISZERO
00003ae0: PUSH2 0x3ae7
00003ae3: JUMPI
00003ae4: PUSH0
00003ae5: PUSH0
00003ae6: REVERT
00003ae7: JUMPDEST
00003ae8: DUP6
00003ae9: CALLDATALOAD
00003aea: SWAP5
00003aeb: POP
00003aec: PUSH1 0x20
00003aee: DUP7
00003aef: ADD
00003af0: CALLDATALOAD
00003af1: SWAP4
00003af2: POP
00003af3: PUSH1 0x40
00003af5: DUP7
00003af6: ADD
00003af7: CALLDATALOAD
00003af8: PUSH2 0x3b00
00003afb: DUP2
00003afc: PUSH2 0x3a44
00003aff: JUMP
00003b00: JUMPDEST
00003b01: SWAP5
00003b02: SWAP8
00003b03: SWAP4
00003b04: SWAP7
00003b05: POP
00003b06: SWAP4
00003b07: SWAP5
00003b08: PUSH1 0x60
00003b0a: DUP2
00003b0b: ADD
00003b0c: CALLDATALOAD
00003b0d: SWAP5
00003b0e: POP
00003b0f: PUSH1 0x80
00003b11: ADD
00003b12: CALLDATALOAD
00003b13: SWAP3
00003b14: SWAP2
00003b15: POP
00003b16: POP
00003b17: JUMP
00003b18: JUMPDEST
00003b19: PUSH0
00003b1a: PUSH0
00003b1b: PUSH1 0x40
00003b1d: DUP4
00003b1e: DUP6
00003b1f: SUB
00003b20: SLT
00003b21: ISZERO
00003b22: PUSH2 0x3b29
00003b25: JUMPI
00003b26: PUSH0
00003b27: PUSH0
00003b28: REVERT
00003b29: JUMPDEST
00003b2a: DUP3
00003b2b: CALLDATALOAD
00003b2c: PUSH2 0x3b34
00003b2f: DUP2
00003b30: PUSH2 0x3a44
00003b33: JUMP
00003b34: JUMPDEST
00003b35: SWAP5
00003b36: PUSH1 0x20
00003b38: SWAP4
00003b39: SWAP1
00003b3a: SWAP4
00003b3b: ADD
00003b3c: CALLDATALOAD
00003b3d: SWAP4
00003b3e: POP
00003b3f: POP
00003b40: POP
00003b41: JUMP
00003b42: JUMPDEST
00003b43: PUSH0
00003b44: PUSH1 0x20
00003b46: DUP3
00003b47: DUP5
00003b48: SUB
00003b49: SLT
00003b4a: ISZERO
00003b4b: PUSH2 0x3b52
00003b4e: JUMPI
00003b4f: PUSH0
00003b50: PUSH0
00003b51: REVERT
00003b52: JUMPDEST
00003b53: DUP2
00003b54: CALLDATALOAD
00003b55: PUSH2 0x3b5d
00003b58: DUP2
00003b59: PUSH2 0x3a44
00003b5c: JUMP
00003b5d: JUMPDEST
00003b5e: SWAP4
00003b5f: SWAP3
00003b60: POP
00003b61: POP
00003b62: POP
00003b63: JUMP
00003b64: JUMPDEST
00003b65: PUSH0
00003b66: PUSH0
00003b67: PUSH0
00003b68: PUSH0
00003b69: PUSH0
00003b6a: PUSH0
00003b6b: PUSH1 0xc0
00003b6d: DUP8
00003b6e: DUP10
00003b6f: SUB
00003b70: SLT
00003b71: ISZERO
00003b72: PUSH2 0x3b79
00003b75: JUMPI
00003b76: PUSH0
00003b77: PUSH0
00003b78: REVERT
00003b79: JUMPDEST
00003b7a: DUP7
00003b7b: CALLDATALOAD
00003b7c: SWAP6
00003b7d: POP
00003b7e: PUSH1 0x20
00003b80: DUP8
00003b81: ADD
00003b82: CALLDATALOAD
00003b83: SWAP5
00003b84: POP
00003b85: PUSH1 0x40
00003b87: DUP8
00003b88: ADD
00003b89: CALLDATALOAD
00003b8a: PUSH2 0x3b92
00003b8d: DUP2
00003b8e: PUSH2 0x3a44
00003b91: JUMP
00003b92: JUMPDEST
00003b93: SWAP4
00003b94: POP
00003b95: PUSH1 0x60
00003b97: DUP8
00003b98: ADD
00003b99: CALLDATALOAD
00003b9a: PUSH2 0x3ba2
00003b9d: DUP2
00003b9e: PUSH2 0x3a44
00003ba1: JUMP
00003ba2: JUMPDEST
00003ba3: SWAP6
00003ba4: SWAP9
00003ba5: SWAP5
00003ba6: SWAP8
00003ba7: POP
00003ba8: SWAP3
00003ba9: SWAP6
00003baa: PUSH1 0x80
00003bac: DUP2
00003bad: ADD
00003bae: CALLDATALOAD
00003baf: SWAP5
00003bb0: PUSH1 0xa0
00003bb2: SWAP1
00003bb3: SWAP2
00003bb4: ADD
00003bb5: CALLDATALOAD
00003bb6: SWAP4
00003bb7: POP
00003bb8: SWAP2
00003bb9: POP
00003bba: POP
00003bbb: JUMP
00003bbc: JUMPDEST
00003bbd: PUSH0
00003bbe: PUSH0
00003bbf: DUP4
00003bc0: PUSH1 0x1f
00003bc2: DUP5
00003bc3: ADD
00003bc4: SLT
00003bc5: PUSH2 0x3bcc
00003bc8: JUMPI
00003bc9: PUSH0
00003bca: PUSH0
00003bcb: REVERT
00003bcc: JUMPDEST
00003bcd: POP
00003bce: DUP2
00003bcf: CALLDATALOAD
00003bd0: PUSH8 0xffffffffffffffff
00003bd9: DUP2
00003bda: GT
00003bdb: ISZERO
00003bdc: PUSH2 0x3be3
00003bdf: JUMPI
00003be0: PUSH0
00003be1: PUSH0
00003be2: REVERT
00003be3: JUMPDEST
00003be4: PUSH1 0x20
00003be6: DUP4
00003be7: ADD
00003be8: SWAP2
00003be9: POP
00003bea: DUP4
00003beb: PUSH1 0x20
00003bed: DUP3
00003bee: DUP6
00003bef: ADD
00003bf0: ADD
00003bf1: GT
00003bf2: ISZERO
00003bf3: PUSH2 0x3bfa
00003bf6: JUMPI
00003bf7: PUSH0
00003bf8: PUSH0
00003bf9: REVERT
00003bfa: JUMPDEST
00003bfb: SWAP3
00003bfc: POP
00003bfd: SWAP3
00003bfe: SWAP1
00003bff: POP
00003c00: JUMP
00003c01: JUMPDEST
00003c02: PUSH0
00003c03: PUSH0
00003c04: PUSH0
00003c05: PUSH1 0x40
00003c07: DUP5
00003c08: DUP7
00003c09: SUB
00003c0a: SLT
00003c0b: ISZERO
00003c0c: PUSH2 0x3c13
00003c0f: JUMPI
00003c10: PUSH0
00003c11: PUSH0
00003c12: REVERT
00003c13: JUMPDEST
00003c14: DUP4
00003c15: CALLDATALOAD
00003c16: PUSH2 0x3c1e
00003c19: DUP2
00003c1a: PUSH2 0x3a44
00003c1d: JUMP
00003c1e: JUMPDEST
00003c1f: SWAP3
00003c20: POP
00003c21: PUSH1 0x20
00003c23: DUP5
00003c24: ADD
00003c25: CALLDATALOAD
00003c26: PUSH8 0xffffffffffffffff
00003c2f: DUP2
00003c30: GT
00003c31: ISZERO
00003c32: PUSH2 0x3c39
00003c35: JUMPI
00003c36: PUSH0
00003c37: PUSH0
00003c38: REVERT
00003c39: JUMPDEST
00003c3a: PUSH2 0x3c45
00003c3d: DUP7
00003c3e: DUP3
00003c3f: DUP8
00003c40: ADD
00003c41: PUSH2 0x3bbc
00003c44: JUMP
00003c45: JUMPDEST
00003c46: SWAP5
00003c47: SWAP8
00003c48: SWAP1
00003c49: SWAP7
00003c4a: POP
00003c4b: SWAP4
00003c4c: SWAP5
00003c4d: POP
00003c4e: POP
00003c4f: POP
00003c50: POP
00003c51: JUMP
00003c52: JUMPDEST
00003c53: PUSH0
00003c54: DUP2
00003c55: MLOAD
00003c56: DUP1
00003c57: DUP5
00003c58: MSTORE
00003c59: DUP1
00003c5a: PUSH1 0x20
00003c5c: DUP5
00003c5d: ADD
00003c5e: PUSH1 0x20
00003c60: DUP7
00003c61: ADD
00003c62: MCOPY
00003c63: PUSH0
00003c64: PUSH1 0x20
00003c66: DUP3
00003c67: DUP7
00003c68: ADD
00003c69: ADD
00003c6a: MSTORE
00003c6b: PUSH1 0x20
00003c6d: PUSH1 0x1f
00003c6f: NOT
00003c70: PUSH1 0x1f
00003c72: DUP4
00003c73: ADD
00003c74: AND
00003c75: DUP6
00003c76: ADD
00003c77: ADD
00003c78: SWAP2
00003c79: POP
00003c7a: POP
00003c7b: SWAP3
00003c7c: SWAP2
00003c7d: POP
00003c7e: POP
00003c7f: JUMP
00003c80: JUMPDEST
00003c81: PUSH1 0x20
00003c83: DUP2
00003c84: MSTORE
00003c85: PUSH0
00003c86: PUSH2 0x3b5d
00003c89: PUSH1 0x20
00003c8b: DUP4
00003c8c: ADD
00003c8d: DUP5
00003c8e: PUSH2 0x3c52
00003c91: JUMP
00003c92: JUMPDEST
00003c93: PUSH0
00003c94: PUSH0
00003c95: PUSH0
00003c96: PUSH0
00003c97: PUSH1 0x60
00003c99: DUP6
00003c9a: DUP8
00003c9b: SUB
00003c9c: SLT
00003c9d: ISZERO
00003c9e: PUSH2 0x3ca5
00003ca1: JUMPI
00003ca2: PUSH0
00003ca3: PUSH0
00003ca4: REVERT
00003ca5: JUMPDEST
00003ca6: DUP5
00003ca7: CALLDATALOAD
00003ca8: SWAP4
00003ca9: POP
00003caa: PUSH1 0x20
00003cac: DUP6
00003cad: ADD
00003cae: CALLDATALOAD
00003caf: SWAP3
00003cb0: POP
00003cb1: PUSH1 0x40
00003cb3: DUP6
00003cb4: ADD
00003cb5: CALLDATALOAD
00003cb6: PUSH8 0xffffffffffffffff
00003cbf: DUP2
00003cc0: GT
00003cc1: ISZERO
00003cc2: PUSH2 0x3cc9
00003cc5: JUMPI
00003cc6: PUSH0
00003cc7: PUSH0
00003cc8: REVERT
00003cc9: JUMPDEST
00003cca: PUSH2 0x3cd5
00003ccd: DUP8
00003cce: DUP3
00003ccf: DUP9
00003cd0: ADD
00003cd1: PUSH2 0x3bbc
00003cd4: JUMP
00003cd5: JUMPDEST
00003cd6: SWAP6
00003cd7: SWAP9
00003cd8: SWAP5
00003cd9: SWAP8
00003cda: POP
00003cdb: SWAP6
00003cdc: POP
00003cdd: POP
00003cde: POP
00003cdf: POP
00003ce0: JUMP
00003ce1: JUMPDEST
00003ce2: PUSH1 0x20
00003ce4: DUP1
00003ce5: DUP3
00003ce6: MSTORE
00003ce7: PUSH1 0x15
00003ce9: SWAP1
00003cea: DUP3
00003ceb: ADD
00003cec: MSTORE
00003ced: PUSH21 0x10d85b1b195c881a5cc81b9bdd08185b1b1bddd959
00003d03: PUSH1 0x5a
00003d05: SHL
00003d06: PUSH1 0x40
00003d08: DUP3
00003d09: ADD
00003d0a: MSTORE
00003d0b: PUSH1 0x60
00003d0d: ADD
00003d0e: SWAP1
00003d0f: JUMP
00003d10: JUMPDEST
00003d11: PUSH1 0x20
00003d13: DUP1
00003d14: DUP3
00003d15: MSTORE
00003d16: PUSH1 0x10
00003d18: SWAP1
00003d19: DUP3
00003d1a: ADD
00003d1b: MSTORE
00003d1c: PUSH16 0x189b1bd8dac8195e1c1a5c9e481a1a5d
00003d2d: PUSH1 0x82
00003d2f: SHL
00003d30: PUSH1 0x40
00003d32: DUP3
00003d33: ADD
00003d34: MSTORE
00003d35: PUSH1 0x60
00003d37: ADD
00003d38: SWAP1
00003d39: JUMP
00003d3a: JUMPDEST
00003d3b: DUP1
00003d3c: MLOAD
00003d3d: PUSH1 0x01
00003d3f: PUSH1 0x01
00003d41: PUSH1 0x70
00003d43: SHL
00003d44: SUB
00003d45: DUP2
00003d46: AND
00003d47: DUP2
00003d48: EQ
00003d49: PUSH2 0x3d50
00003d4c: JUMPI
00003d4d: PUSH0
00003d4e: PUSH0
00003d4f: REVERT
00003d50: JUMPDEST
00003d51: SWAP2
00003d52: SWAP1
00003d53: POP
00003d54: JUMP
00003d55: JUMPDEST
00003d56: PUSH0
00003d57: PUSH0
00003d58: PUSH0
00003d59: PUSH1 0x60
00003d5b: DUP5
00003d5c: DUP7
00003d5d: SUB
00003d5e: SLT
00003d5f: ISZERO
00003d60: PUSH2 0x3d67
00003d63: JUMPI
00003d64: PUSH0
00003d65: PUSH0
00003d66: REVERT
00003d67: JUMPDEST
00003d68: PUSH2 0x3d70
00003d6b: DUP5
00003d6c: PUSH2 0x3d3a
00003d6f: JUMP
00003d70: JUMPDEST
00003d71: SWAP3
00003d72: POP
00003d73: PUSH2 0x3d7e
00003d76: PUSH1 0x20
00003d78: DUP6
00003d79: ADD
00003d7a: PUSH2 0x3d3a
00003d7d: JUMP
00003d7e: JUMPDEST
00003d7f: SWAP2
00003d80: POP
00003d81: PUSH1 0x40
00003d83: DUP5
00003d84: ADD
00003d85: MLOAD
00003d86: PUSH4 0xffffffff
00003d8b: DUP2
00003d8c: AND
00003d8d: DUP2
00003d8e: EQ
00003d8f: PUSH2 0x3d96
00003d92: JUMPI
00003d93: PUSH0
00003d94: PUSH0
00003d95: REVERT
00003d96: JUMPDEST
00003d97: DUP1
00003d98: SWAP2
00003d99: POP
00003d9a: POP
00003d9b: SWAP3
00003d9c: POP
00003d9d: SWAP3
00003d9e: POP
00003d9f: SWAP3
00003da0: JUMP
00003da1: JUMPDEST
00003da2: PUSH0
00003da3: PUSH1 0x20
00003da5: DUP3
00003da6: DUP5
00003da7: SUB
00003da8: SLT
00003da9: ISZERO
00003daa: PUSH2 0x3db1
00003dad: JUMPI
00003dae: PUSH0
00003daf: PUSH0
00003db0: REVERT
00003db1: JUMPDEST
00003db2: DUP2
00003db3: MLOAD
00003db4: PUSH2 0x3b5d
00003db7: DUP2
00003db8: PUSH2 0x3a44
00003dbb: JUMP
00003dbc: JUMPDEST
00003dbd: PUSH0
00003dbe: PUSH1 0x20
00003dc0: DUP3
00003dc1: DUP5
00003dc2: SUB
00003dc3: SLT
00003dc4: ISZERO
00003dc5: PUSH2 0x3dcc
00003dc8: JUMPI
00003dc9: PUSH0
00003dca: PUSH0
00003dcb: REVERT
00003dcc: JUMPDEST
00003dcd: DUP2
00003dce: MLOAD
00003dcf: DUP1
00003dd0: ISZERO
00003dd1: ISZERO
00003dd2: DUP2
00003dd3: EQ
00003dd4: PUSH2 0x3b5d
00003dd7: JUMPI
00003dd8: PUSH0
00003dd9: PUSH0
00003dda: REVERT
00003ddb: JUMPDEST
00003ddc: PUSH0
00003ddd: PUSH1 0x20
00003ddf: DUP3
00003de0: DUP5
00003de1: SUB
00003de2: SLT
00003de3: ISZERO
00003de4: PUSH2 0x3deb
00003de7: JUMPI
00003de8: PUSH0
00003de9: PUSH0
00003dea: REVERT
00003deb: JUMPDEST
00003dec: POP
00003ded: MLOAD
00003dee: SWAP2
00003def: SWAP1
00003df0: POP
00003df1: JUMP
00003df2: JUMPDEST
00003df3: SWAP3
00003df4: DUP4
00003df5: MSTORE
00003df6: PUSH1 0x20
00003df8: DUP4
00003df9: ADD
00003dfa: SWAP2
00003dfb: SWAP1
00003dfc: SWAP2
00003dfd: MSTORE
00003dfe: PUSH1 0x01
00003e00: PUSH1 0x01
00003e02: PUSH1 0xa0
00003e04: SHL
00003e05: SUB
00003e06: AND
00003e07: PUSH1 0x40
00003e09: DUP3
00003e0a: ADD
00003e0b: MSTORE
00003e0c: PUSH1 0x80
00003e0e: PUSH1 0x60
00003e10: DUP3
00003e11: ADD
00003e12: DUP2
00003e13: SWAP1
00003e14: MSTORE
00003e15: PUSH0
00003e16: SWAP1
00003e17: DUP3
00003e18: ADD
00003e19: MSTORE
00003e1a: PUSH1 0xa0
00003e1c: ADD
00003e1d: SWAP1
00003e1e: JUMP
00003e1f: JUMPDEST
00003e20: PUSH4 0x4e487b71
00003e25: PUSH1 0xe0
00003e27: SHL
00003e28: PUSH0
00003e29: MSTORE
00003e2a: PUSH1 0x11
00003e2c: PUSH1 0x04
00003e2e: MSTORE
00003e2f: PUSH1 0x24
00003e31: PUSH0
00003e32: REVERT
00003e33: JUMPDEST
00003e34: DUP2
00003e35: DUP2
00003e36: SUB
00003e37: DUP2
00003e38: DUP2
00003e39: GT
00003e3a: ISZERO
00003e3b: PUSH2 0x3e46
00003e3e: JUMPI
00003e3f: PUSH2 0x3e46
00003e42: PUSH2 0x3e1f
00003e45: JUMP
00003e46: JUMPDEST
00003e47: SWAP3
00003e48: SWAP2
00003e49: POP
00003e4a: POP
00003e4b: JUMP
00003e4c: JUMPDEST
00003e4d: PUSH1 0x20
00003e4f: DUP1
00003e50: DUP3
00003e51: MSTORE
00003e52: PUSH1 0x11
00003e54: SWAP1
00003e55: DUP3
00003e56: ADD
00003e57: MSTORE
00003e58: PUSH17 0x14db1a5c1c1859d948195e18d959591959
00003e6a: PUSH1 0x7a
00003e6c: SHL
00003e6d: PUSH1 0x40
00003e6f: DUP3
00003e70: ADD
00003e71: MSTORE
00003e72: PUSH1 0x60
00003e74: ADD
00003e75: SWAP1
00003e76: JUMP
00003e77: JUMPDEST
00003e78: PUSH1 0x01
00003e7a: PUSH1 0x01
00003e7c: PUSH1 0xa0
00003e7e: SHL
00003e7f: SUB
00003e80: DUP7
00003e81: DUP2
00003e82: AND
00003e83: DUP3
00003e84: MSTORE
00003e85: DUP6
00003e86: ISZERO
00003e87: ISZERO
00003e88: PUSH1 0x20
00003e8a: DUP4
00003e8b: ADD
00003e8c: MSTORE
00003e8d: PUSH1 0x40
00003e8f: DUP3
00003e90: ADD
00003e91: DUP6
00003e92: SWAP1
00003e93: MSTORE
00003e94: DUP4
00003e95: AND
00003e96: PUSH1 0x60
00003e98: DUP3
00003e99: ADD
00003e9a: MSTORE
00003e9b: PUSH1 0xa0
00003e9d: PUSH1 0x80
00003e9f: DUP3
00003ea0: ADD
00003ea1: DUP2
00003ea2: SWAP1
00003ea3: MSTORE
00003ea4: PUSH0
00003ea5: SWAP1
00003ea6: PUSH2 0x39cc
00003ea9: SWAP1
00003eaa: DUP4
00003eab: ADD
00003eac: DUP5
00003ead: PUSH2 0x3c52
00003eb0: JUMP
00003eb1: JUMPDEST
00003eb2: PUSH0
00003eb3: PUSH0
00003eb4: PUSH1 0x40
00003eb6: DUP4
00003eb7: DUP6
00003eb8: SUB
00003eb9: SLT
00003eba: ISZERO
00003ebb: PUSH2 0x3ec2
00003ebe: JUMPI
00003ebf: PUSH0
00003ec0: PUSH0
00003ec1: REVERT
00003ec2: JUMPDEST
00003ec3: POP
00003ec4: POP
00003ec5: DUP1
00003ec6: MLOAD
00003ec7: PUSH1 0x20
00003ec9: SWAP1
00003eca: SWAP2
00003ecb: ADD
00003ecc: MLOAD
00003ecd: SWAP1
00003ece: SWAP3
00003ecf: SWAP1
00003ed0: SWAP2
00003ed1: POP
00003ed2: JUMP
00003ed3: JUMPDEST
00003ed4: DUP2
00003ed5: DUP4
00003ed6: DUP3
00003ed7: CALLDATACOPY
00003ed8: PUSH0
00003ed9: SWAP2
00003eda: ADD
00003edb: SWAP1
00003edc: DUP2
00003edd: MSTORE
00003ede: SWAP2
00003edf: SWAP1
00003ee0: POP
00003ee1: JUMP
00003ee2: JUMPDEST
00003ee3: DUP1
00003ee4: DUP3
00003ee5: MUL
00003ee6: DUP2
00003ee7: ISZERO
00003ee8: DUP3
00003ee9: DUP3
00003eea: DIV
00003eeb: DUP5
00003eec: EQ
00003eed: OR
00003eee: PUSH2 0x3e46
00003ef1: JUMPI
00003ef2: PUSH2 0x3e46
00003ef5: PUSH2 0x3e1f
00003ef8: JUMP
00003ef9: JUMPDEST
00003efa: DUP1
00003efb: DUP3
00003efc: ADD
00003efd: DUP1
00003efe: DUP3
00003eff: GT
00003f00: ISZERO
00003f01: PUSH2 0x3e46
00003f04: JUMPI
00003f05: PUSH2 0x3e46
00003f08: PUSH2 0x3e1f
00003f0b: JUMP
00003f0c: JUMPDEST
00003f0d: PUSH0
00003f0e: DUP3
00003f0f: PUSH2 0x3f26
00003f12: JUMPI
00003f13: PUSH4 0x4e487b71
00003f18: PUSH1 0xe0
00003f1a: SHL
00003f1b: PUSH0
00003f1c: MSTORE
00003f1d: PUSH1 0x12
00003f1f: PUSH1 0x04
00003f21: MSTORE
00003f22: PUSH1 0x24
00003f24: PUSH0
00003f25: REVERT
00003f26: JUMPDEST
00003f27: POP
00003f28: DIV
00003f29: SWAP1
00003f2a: JUMP
00003f2b: INVALID
00003f2c: OR
00003f2d: UNKNOWN(0x25)
00003f2e: UNKNOWN(0xC6)
00003f2f: SWAP5
00003f30: PUSH19 0xb0d35be4e865c78e45538ce31f51e1c4f30990
00003f44: DUP16
00003f45: SWAP7
00003f46: SWAP13
00003f47: UNKNOWN(0xCB)
00003f48: DUP10
00003f49: MSIZE
00003f4a: RETURNDATACOPY
00003f4b: ISZERO
00003f4c: PUSH29 0x96ed2c20512d7b7221b71f3608be92d18a5dadfc18b3b0dce63e83e07e
00003f6a: PUSH20 0xb800000000000000000000000054620b9a8a2c43
00003f7f: UNKNOWN(0xAA)
00003f80: DUP15
00003f81: UNKNOWN(0xD0)
00003f82: UNKNOWN(0x28)
00003f83: GASLIMIT
00003f84: EXP
00003f85: PUSH29 0xe656a9c69feba2646970667358221220413fe934988e8c081892a8f94b
00003fa3: UNKNOWN(0xDB)
00003fa4: UNKNOWN(0x4B)
00003fa5: PUSH29

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xc34684eb",
            "selector": "0xc34684eb",
            "calldata_variants": [
                "0xc34684eb",
                "0xc34684eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7c41ef9",
            "selector": "0xd7c41ef9",
            "calldata_variants": [
                "0xd7c41ef9",
                "0xd7c41ef90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea60efed",
            "selector": "0xea60efed",
            "calldata_variants": [
                "0xea60efed",
                "0xea60efed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf0a2003e",
            "selector": "0xf0a2003e",
            "calldata_variants": [
                "0xf0a2003e",
                "0xf0a2003e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa461e33",
            "selector": "0xfa461e33",
            "calldata_variants": [
                "0xfa461e33",
                "0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x613a7b48",
            "selector": "0x613a7b48",
            "calldata_variants": [
                "0x613a7b48",
                "0x613a7b480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b334154",
            "selector": "0x7b334154",
            "calldata_variants": [
                "0x7b334154",
                "0x7b3341540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f64784f",
            "selector": "0x7f64784f",
            "calldata_variants": [
                "0x7f64784f",
                "0x7f64784f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 805,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 933,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 2332,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 3828,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 4088,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 5554,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 7120,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 7353,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 9004,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 9108,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 10618,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 10862,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12074,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12329,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12581,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12818,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 14034,
            "type": "tx_origin_used"
        },
        {
            "pc": 14033,
            "type": "tx_origin_used"
        },
        {
            "pc": 14041,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x2a5a8f57d6e002570fa770d84e6a1e1b8508a9a4a73a51d38c57e066f9478b3c
call_targets: 0x22cb7c436decc35542c8599c7f0b6a0b7c609371
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x2a5a8f57d6e002570fa770d84e6a1e1b8508a9a4a73a51d38c57e066f9478b3c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x22cb7c436decc35542c8599c7f0b6a0b7c609371"
    ],
    "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": "0xc34684eb",
            "selector": "0xc34684eb",
            "calldata_variants": [
                "0xc34684eb",
                "0xc34684eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7c41ef9",
            "selector": "0xd7c41ef9",
            "calldata_variants": [
                "0xd7c41ef9",
                "0xd7c41ef90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea60efed",
            "selector": "0xea60efed",
            "calldata_variants": [
                "0xea60efed",
                "0xea60efed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf0a2003e",
            "selector": "0xf0a2003e",
            "calldata_variants": [
                "0xf0a2003e",
                "0xf0a2003e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa461e33",
            "selector": "0xfa461e33",
            "calldata_variants": [
                "0xfa461e33",
                "0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x613a7b48",
            "selector": "0x613a7b48",
            "calldata_variants": [
                "0x613a7b48",
                "0x613a7b480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b334154",
            "selector": "0x7b334154",
            "calldata_variants": [
                "0x7b334154",
                "0x7b3341540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f64784f",
            "selector": "0x7f64784f",
            "calldata_variants": [
                "0x7f64784f",
                "0x7f64784f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 910,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1442,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1580,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 30,
    "guards_detected": [
        {
            "pc": 805,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 933,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 2332,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 3828,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 4088,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 5554,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 7120,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 7353,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 9004,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 9108,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 10618,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 10862,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12074,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12329,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12581,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12818,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 14034,
            "type": "tx_origin_used"
        },
        {
            "pc": 14033,
            "type": "tx_origin_used"
        },
        {
            "pc": 14041,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 28
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x2a5a8f57d6e002570fa770d84e6a1e1b8508a9a4a73a51d38c57e066f9478b3c
call_targets: 0x22cb7c436decc35542c8599c7f0b6a0b7c609371
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x2a5a8f57d6e002570fa770d84e6a1e1b8508a9a4a73a51d38c57e066f9478b3c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x22cb7c436decc35542c8599c7f0b6a0b7c609371"
    ],
    "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": "0xc34684eb",
            "selector": "0xc34684eb",
            "calldata_variants": [
                "0xc34684eb",
                "0xc34684eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7c41ef9",
            "selector": "0xd7c41ef9",
            "calldata_variants": [
                "0xd7c41ef9",
                "0xd7c41ef90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea60efed",
            "selector": "0xea60efed",
            "calldata_variants": [
                "0xea60efed",
                "0xea60efed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf0a2003e",
            "selector": "0xf0a2003e",
            "calldata_variants": [
                "0xf0a2003e",
                "0xf0a2003e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa461e33",
            "selector": "0xfa461e33",
            "calldata_variants": [
                "0xfa461e33",
                "0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x613a7b48",
            "selector": "0x613a7b48",
            "calldata_variants": [
                "0x613a7b48",
                "0x613a7b480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b334154",
            "selector": "0x7b334154",
            "calldata_variants": [
                "0x7b334154",
                "0x7b3341540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f64784f",
            "selector": "0x7f64784f",
            "calldata_variants": [
                "0x7f64784f",
                "0x7f64784f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 910,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1442,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1580,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 28,
    "guards_detected": [
        {
            "pc": 805,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 933,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 2332,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 3828,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 4088,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 5554,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 7120,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 7353,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 9004,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 9108,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 10618,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 10862,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12074,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12329,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12581,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 12818,
            "type": "msg_sender_eq_const",
            "value": 0
        },
        {
            "pc": 14034,
            "type": "tx_origin_used"
        },
        {
            "pc": 14033,
            "type": "tx_origin_used"
        },
        {
            "pc": 14041,
            "type": "tx_origin_used"
        }
    ]
}
low other codex Unchecked ERC20 transfer return value (silent failures possible) 65 no
view
evidence_json
{
    "evidence": "Line 5 contains a low\u2011level CALL to selector `a9059cbb` followed immediately by POPs with no `ISZERO`/returndata checks, e.g., `...63a9059cbb...5af1 50505050...` (CALL result is discarded).",
    "locations": [
        "BYTECODE_BUNDLE.txt:5"
    ],
    "recommendation": "Use a safe ERC20 wrapper that requires `success` and verifies return data (`returndata.length == 0 || abi.decode(returndata, bool)`), and revert on failure for all token transfers.",
    "exploit_scenario": "A malicious or non\u2011standard ERC20 can return false or revert on `transfer` while the low\u2011level CALL result is ignored. The function can continue as if the transfer succeeded, leading to incorrect assumptions about token movement or silent failures in downstream logic."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 8
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 93
}