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

Analysis Run

214e9e7c-7d46-4b18-968f-335f407b9ed8

complete
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 6:38 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
Untrusted CALL target/value reachable
crit 0 high 0 proxy context implementation known
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
30723 report.consolidate complete 1 / 1 3 months ago
75334 artifact.fetch complete 1 / 3 1 week ago
75335 tool.cast_disasm complete 1 / 3 1 week ago
75336 analysis.bundle complete 1 / 3 1 week ago
75337 capability.graph complete 1 / 3 1 week ago
75338 detector.run complete 1 / 3 1 week ago
75339 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes
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
Identified one access-control issue: the initializer is publicly callable and only gated by an isInitialized flag.
View stderr
[codex:496117] OpenAI Codex v0.77.0 (research preview)
[codex:496117] --------
[codex:496117] workdir: /tmp/codex-multi-e4t8z5gl
[codex:496117] model: gpt-5.2-codex
[codex:496117] provider: openai
[codex:496117] approval: never
[codex:496117] sandbox: read-only
[codex:496117] reasoning effort: xhigh
[codex:496117] reasoning summaries: auto
[codex:496117] session id: 019b7085-a966-7893-8533-ef014322dd50
[codex:496117] --------
[codex:496117] user
[codex:496117] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:496117] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:496117] 
[codex:496117] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:496117] 
[codex:496117] Output MUST be valid JSON matching the provided schema.
[codex:496117] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:496117] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:496117] 
[codex:496117] Output constraints (IMPORTANT):
[codex:496117] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:496117] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:496117] mcp startup: no servers
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Reading the bundle file**
[codex:496117] exec
[codex:496117] /bin/bash -lc 'cat /tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt' in /tmp/codex-multi-e4t8z5gl succeeded in 7ms:
[codex:496117] Runtime bytecode bundle for best-effort auditing.
[codex:496117] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:496117] 
[codex:496117] FILE: runtime_bytecode.hex
[codex:496117] 0x6080604052600436106101c95763ffffffff60e060020a6000350416631dcea42781146101ce57806321d800ec146101ff578063232a2c1d1461022b5780632b92490e146102715780632bd0bb0514610292578063392e53cd146102bc5780633dd95d1b146102d15780633e6968b6146102e95780633f0a9f65146102fe578063437764df1461031357806343b37dd31461035d578063452f3ce0146103725780634fb3fef71461038757806351c764e01461039f57806367eeba0c146103e457806369ffa08a146103f95780637ce3489b146102d15780637fd6f15c14610420578063879ce676146104355780638aa1949a1461044d5780638d068043146104625780638da5cb5b14610477578063994390891461048c578063997b8c2d146104a15780639a454b99146104ee5780639cb7595a14610503578063a2a6ca2714610544578063acf5c6891461055c578063b20d30a914610574578063bf1fe4201461058c578063c0567656146105a4578063c6f6f216146105bc578063df0ad3de146105d4578063df25f3f0146105e9578063ea9f4968146105fe578063f20151e114610616578063f2fde38b1461062e578063f968adbe1461064f578063fe173b9714610664575b600080fd5b3480156101da57600080fd5b506101e3610679565b60408051600160a060020a039092168252519081900360200190f35b34801561020b57600080fd5b50610217600435610737565b604080519115158252519081900360200190f35b34801561023757600080fd5b5061026f6024600480358281019290820135918135808301929082013591604435808301929082013591606435918201910135610800565b005b34801561027d57600080fd5b5061026f600160a060020a03600435166109ba565b34801561029e57600080fd5b506102aa6004356109e2565b60408051918252519081900360200190f35b3480156102c857600080fd5b50610217610a9f565b3480156102dd57600080fd5b5061026f600435610b57565b3480156102f557600080fd5b506102aa610bda565b34801561030a57600080fd5b506102aa610be3565b34801561031f57600080fd5b50610328610c97565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b34801561036957600080fd5b506102aa610d3a565b34801561037e57600080fd5b506101e3610dad565b34801561039357600080fd5b506102aa600435610e21565b3480156103ab57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4351661010435610e9c565b3480156103f057600080fd5b506102aa610ebd565b34801561040557600080fd5b5061026f600160a060020a0360043581169060243516610f30565b34801561042c57600080fd5b506102aa610f7a565b34801561044157600080fd5b50610217600435610fed565b34801561045957600080fd5b506102aa611037565b34801561046e57600080fd5b506102aa6110aa565b34801561048357600080fd5b506101e3611122565b34801561049857600080fd5b506101e3611196565b3480156104ad57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4358116906101043590610124351661120a565b3480156104fa57600080fd5b506102aa611235565b34801561050f57600080fd5b506105186112a8565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561055057600080fd5b5061026f6004356112b2565b34801561056857600080fd5b5061026f6004356113a9565b34801561058057600080fd5b5061026f6004356114b8565b34801561059857600080fd5b5061026f6004356115ba565b3480156105b057600080fd5b506102aa6004356116c9565b3480156105c857600080fd5b5061026f600435611706565b3480156105e057600080fd5b506101e36117a7565b3480156105f557600080fd5b506102aa6117e7565b34801561060a57600080fd5b5061021760043561185a565b34801561062257600080fd5b5061026f6004356118aa565b34801561063a57600080fd5b5061026f600160a060020a036004351661194b565b34801561065b57600080fd5b506102aa611985565b34801561067057600080fd5b506102aa6119f8565b60006002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106106ee5780518252601f1990920191602091820191016106cf565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a0316949350505050565b6000600460008360405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106107bc5780518252601f19909201916020918201910161079d565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b6000806000806108d886868080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b80806020026020016040519081016040528093929190818152602001838360200280828437506108d394506111969350505050565b611a6b565b61091186868080601f01602080910402602001604051908101604052809392919081815260200183838082843750611cd8945050505050565b92965090945092509050600160a060020a038116301461093057600080fd5b61093982610737565b1561094357600080fd5b61094e826001611d1e565b6109588484611df0565b151561096357600080fd5b60408051600160a060020a03861681526020810185905280820184905290517f4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf3299181900360600190a1505050505050505050505050565b6109c2611122565b600160a060020a031633146109d657600080fd5b6109df81611f0a565b50565b60008060008360405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610a5e5780518252601f199092019160209182019101610a3f565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b60006004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310610b145780518252601f199092019160209182019101610af5565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff16949350505050565b610b5f611122565b600160a060020a03163314610b7357600080fd5b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6465707265636174656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b62015180420490565b600080600060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b60208310610c575780518252601f199092019160209182019101610c38565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054949350505050565b600060405160200180807f6572632d746f2d6572632d636f72650000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b60208310610d085780518252601f199092019160209182019101610ce9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905090565b600080600060405160200180807f657865637574696f6e4461696c794c696d697400000000000000000000000000815250601301905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006002600060405160200180807f66616c6c6261636b526563697069656e740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610a5e5780518252601f199092019160209182019101610a3f565b6000610eaf8a8a8a8a8a8a8a8a8a611ffc565b9a9950505050505050505050565b600080600060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b610f386117a7565b600160a060020a03163314610f4c57600080fd5b610f54610679565b600160a060020a0383811691161415610f6c57600080fd5b610f768282612690565b5050565b600080600060405160200180807f66656550657263656e7400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60008061101083611004610fff610bda565b610e21565b9063ffffffff61284c16565b90508061101b610d3a565b10158015611030575061102c611037565b8311155b9392505050565b600080600060405160200180807f657865637574696f6e4d61785065725478000000000000000000000000000000815250601101905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006110b4611196565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d602081101561111b57600080fd5b5051905090565b60006002600060405160200180807f6f776e65720000000000000000000000000000000000000000000000000000008152506005019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60006002600060405160200180807f76616c696461746f72436f6e74726163740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b600061121582611f0a565b6112268b8b8b8b8b8b8b8b8b610e9c565b9b9a5050505050505050505050565b600080600060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6002806000909192565b6112ba611122565b600160a060020a031633146112ce57600080fd5b6112d6610ebd565b811080156112ea57506112e7611985565b81105b15156112f557600080fd5b8060008060405160200180807f6d696e506572547800000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106113685780518252601f199092019160209182019101611349565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000209390935550505050565b6113b1611122565b600160a060020a031633146113c557600080fd5b600081116113d257600080fd5b8060008060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b602083106114455780518252601f199092019160209182019101611426565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb9350918290030190a150565b6114c0611122565b600160a060020a031633146114d457600080fd5b8060008060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106115475780518252601f199092019160209182019101611528565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9350918290030190a150565b6115c2611122565b600160a060020a031633146115d657600080fd5b600081116115e357600080fd5b8060008060405160200180807f676173507269636500000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106116565780518252601f199092019160209182019101611637565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e9350918290030190a150565b60006127106110306116f9826116ed6116e0610f7a565b879063ffffffff61285b16565b9063ffffffff61288616565b849063ffffffff61289d16565b61170e611122565b600160a060020a0316331461172257600080fd5b61172a610ebd565b811061173557600080fd5b8060008060405160200180807f6d617850657254780000000000000000000000000000000000000000000000008152506008019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b600030600160a060020a031663025313a26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b600080600060405160200180807f6d696e5065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806118718361100461186c610bda565b6109e2565b90508061187c610ebd565b10158015611891575061188d611985565b8311155b801561103057506118a06117e7565b9092101592915050565b6118b2611122565b600160a060020a031633146118c657600080fd5b6118ce610d3a565b81106118d957600080fd5b8060008060405160200180807f657865637574696f6e4d617850657254780000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b611953611122565b600160a060020a0316331461196757600080fd5b600160a060020a038116151561197c57600080fd5b6109df816128af565b600080600060405160200180807f6d61785065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b600080600060405160200180807f6761735072696365000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806060600080611a7c8a61296d565b1515611a8757600080fd5b85600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ac557600080fd5b505af1158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b50518951909550851115611b0257600080fd5b611b0b8a612981565b935084604051908082528060200260200182016040528015611b37578160200160208202803883390190505b509250600091505b84821015611ccc576001848a84815181101515611b5857fe5b906020019060200201518a85815181101515611b7057fe5b906020019060200201518a86815181101515611b8857fe5b60209081029091018101516040805160008082528185018084529790975260ff9095168582015260608501939093526080840152905160a0808401949293601f19830193908390039091019190865af1158015611be9573d6000803e3d6000fd5b50505060206040510351905085600160a060020a031663facd743b826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b505050506040513d6020811015611c7a57600080fd5b50511515611c8757600080fd5b611c918382612b46565b15611c9b57600080fd5b808383815181101515611caa57fe5b600160a060020a03909216602092830290910190910152600190910190611b3f565b50505050505050505050565b600080600080611ce78561296d565b1515611cf257600080fd5b600160a060020a0360148601511693506034850151925060548501519150606885015190509193509193565b80600460008460405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310611da25780518252601f199092019160209182019101611d83565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b600080611dfd8484612b9f565b1515611efe57611e0b610dad565b9050600160a060020a0381161515611eaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f66616c6c6261636b20726563697069656e7420776173206e6f7420617373696760448201527f6e65640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611eb48184612b9f565b5080600160a060020a031684600160a060020a03167f4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe60405160405180910390a360019150611f03565b600191505b5092915050565b600160a060020a0381161515611f1f57600080fd5b806002600060405160200180807f66616c6c6261636b526563697069656e7400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b60208310611f935780518252601f199092019160209182019101611f74565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03959095169490941790935550505050565b6000612006610a9f565b1561201057600080fd5b600160a060020a038a161580159061202c575061202c8a612c80565b151561203757600080fd5b87151561204357600080fd5b6000871161205057600080fd5b84841061205c57600080fd5b600160a060020a038316151561207157600080fd5b61271082106120e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c6964206665652070657263656e7400000000000000000000000000604482015290519081900360640190fd5b896002600060405160200180807f76616c696461746f72436f6e747261637400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b602083106121555780518252601f199092019160209182019101612136565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039590951694909417909355506121c691508a9050612c88565b4360008060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b602083106122395780518252601f19909201916020918201910161221a565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000818401528151601a818303018152603a9091019182905280518c949384939182918401908083835b602083106122e35780518252601f1990920191602091820191016122c4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6761735072696365000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518b949384939182918401908083835b6020831061238d5780518252601f19909201916020918201910161236e565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6d61785065725478000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518a949384939182918401908083835b602083106124375780518252601f199092019160209182019101612418565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4461696c794c696d6974000000000000000000000000008184015281516013818303018152603390910191829052805189949384939182918401908083835b602083106124e15780518252601f1990920191602091820191016124c2565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4d617850657254780000000000000000000000000000008184015281516011818303018152603190910191829052805188949384939182918401908083835b6020831061258b5780518252601f19909201916020918201910161256c565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f66656550657263656e7400000000000000000000000000000000000000000000818401528151600a818303018152602a90910191829052805186949384939182918401908083835b602083106126355780518252601f199092019160209182019101612616565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555061267e91508490506128af565b6126886001612d22565b610eaf610a9f565b60008061269b6117a7565b600160a060020a031633146126af57600080fd5b600160a060020a03831615156126c457600080fd5b600160a060020a038416151561271057604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561270a573d6000803e3d6000fd5b50612846565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561277457600080fd5b505af1158015612788573d6000803e3d6000fd5b505050506040513d602081101561279e57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561280f57600080fd5b505af1158015612823573d6000803e3d6000fd5b505050506040513d602081101561283957600080fd5b5051151561284657600080fd5b50505050565b60008282018381101561103057fe5b60008083151561286e5760009150611f03565b5082820282848281151561287e57fe5b041461103057fe5b600080828481151561289457fe5b04949350505050565b6000828211156128a957fe5b50900390565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06128d8611122565b60408051600160a060020a03928316815291841660208301528051918290030190a1806002600060405160200180807f6f776e6572000000000000000000000000000000000000000000000000000000815250600501905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b6000612977612de3565b8251149050919050565b604080518082018252601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602080830191825283518085018552600381527f313034000000000000000000000000000000000000000000000000000000000081830152935183516000959385938593899391019182918083835b60208310612a1d5780518252601f1990920191602091820191016129fe565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310612a655780518252601f199092019160209182019101612a46565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310612aad5780518252601f199092019160209182019101612a8e565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612b125780518252601f199092019160209182019101612af3565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b6000805b8351811015612b955782600160a060020a03168482815181101515612b6b57fe5b90602001906020020151600160a060020a03161415612b8d5760019150611f03565b600101612b4a565b5060009392505050565b600080612baa610679565b600160a060020a031660405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060e060020a900485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303816000875af1925050509050801515612c4e5760009150611f03565b3d8015612c625760208114612c6c57600080fd5b6000199150612c78565b60206000803e60005191505b509392505050565b6000903b1190565b600160a060020a03811615801590612ca45750612ca481612c80565b1515612caf57600080fd5b806002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b806004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310612d965780518252601f199092019160209182019101612d77565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550505050565b6068905600a165627a7a7230582053ea074de130c12a3075f5c8c5d625ca406daecb629d00f5d7b83e1ae040982a0029
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing runtime bytecode for vulnerabilities**
[codex:496117] 
[codex:496117] I'm inspecting the runtime bytecode for patterns indicating ownership, initialization, and storage usage, focusing on potential security issues like unprotected initialize functions or access control flaws. I’m connecting function selectors to known behavior and looking for concrete evidence of vulnerabilities before flagging anything.
[codex:496117] exec
[codex:496117] /bin/bash -lc 'nl -ba /tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt' in /tmp/codex-multi-e4t8z5gl succeeded in 6ms:
[codex:496117]      1	Runtime bytecode bundle for best-effort auditing.
[codex:496117]      2	Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:496117]      3	
[codex:496117]      4	FILE: runtime_bytecode.hex
[codex:496117]      5	0x6080604052600436106101c95763ffffffff60e060020a6000350416631dcea42781146101ce57806321d800ec146101ff578063232a2c1d1461022b5780632b92490e146102715780632bd0bb0514610292578063392e53cd146102bc5780633dd95d1b146102d15780633e6968b6146102e95780633f0a9f65146102fe578063437764df1461031357806343b37dd31461035d578063452f3ce0146103725780634fb3fef71461038757806351c764e01461039f57806367eeba0c146103e457806369ffa08a146103f95780637ce3489b146102d15780637fd6f15c14610420578063879ce676146104355780638aa1949a1461044d5780638d068043146104625780638da5cb5b14610477578063994390891461048c578063997b8c2d146104a15780639a454b99146104ee5780639cb7595a14610503578063a2a6ca2714610544578063acf5c6891461055c578063b20d30a914610574578063bf1fe4201461058c578063c0567656146105a4578063c6f6f216146105bc578063df0ad3de146105d4578063df25f3f0146105e9578063ea9f4968146105fe578063f20151e114610616578063f2fde38b1461062e578063f968adbe1461064f578063fe173b9714610664575b600080fd5b3480156101da57600080fd5b506101e3610679565b60408051600160a060020a039092168252519081900360200190f35b34801561020b57600080fd5b50610217600435610737565b604080519115158252519081900360200190f35b34801561023757600080fd5b5061026f6024600480358281019290820135918135808301929082013591604435808301929082013591606435918201910135610800565b005b34801561027d57600080fd5b5061026f600160a060020a03600435166109ba565b34801561029e57600080fd5b506102aa6004356109e2565b60408051918252519081900360200190f35b3480156102c857600080fd5b50610217610a9f565b3480156102dd57600080fd5b5061026f600435610b57565b3480156102f557600080fd5b506102aa610bda565b34801561030a57600080fd5b506102aa610be3565b34801561031f57600080fd5b50610328610c97565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b34801561036957600080fd5b506102aa610d3a565b34801561037e57600080fd5b506101e3610dad565b34801561039357600080fd5b506102aa600435610e21565b3480156103ab57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4351661010435610e9c565b3480156103f057600080fd5b506102aa610ebd565b34801561040557600080fd5b5061026f600160a060020a0360043581169060243516610f30565b34801561042c57600080fd5b506102aa610f7a565b34801561044157600080fd5b50610217600435610fed565b34801561045957600080fd5b506102aa611037565b34801561046e57600080fd5b506102aa6110aa565b34801561048357600080fd5b506101e3611122565b34801561049857600080fd5b506101e3611196565b3480156104ad57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4358116906101043590610124351661120a565b3480156104fa57600080fd5b506102aa611235565b34801561050f57600080fd5b506105186112a8565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561055057600080fd5b5061026f6004356112b2565b34801561056857600080fd5b5061026f6004356113a9565b34801561058057600080fd5b5061026f6004356114b8565b34801561059857600080fd5b5061026f6004356115ba565b3480156105b057600080fd5b506102aa6004356116c9565b3480156105c857600080fd5b5061026f600435611706565b3480156105e057600080fd5b506101e36117a7565b3480156105f557600080fd5b506102aa6117e7565b34801561060a57600080fd5b5061021760043561185a565b34801561062257600080fd5b5061026f6004356118aa565b34801561063a57600080fd5b5061026f600160a060020a036004351661194b565b34801561065b57600080fd5b506102aa611985565b34801561067057600080fd5b506102aa6119f8565b60006002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106106ee5780518252601f1990920191602091820191016106cf565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a0316949350505050565b6000600460008360405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106107bc5780518252601f19909201916020918201910161079d565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b6000806000806108d886868080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b80806020026020016040519081016040528093929190818152602001838360200280828437506108d394506111969350505050565b611a6b565b61091186868080601f01602080910402602001604051908101604052809392919081815260200183838082843750611cd8945050505050565b92965090945092509050600160a060020a038116301461093057600080fd5b61093982610737565b1561094357600080fd5b61094e826001611d1e565b6109588484611df0565b151561096357600080fd5b60408051600160a060020a03861681526020810185905280820184905290517f4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf3299181900360600190a1505050505050505050505050565b6109c2611122565b600160a060020a031633146109d657600080fd5b6109df81611f0a565b50565b60008060008360405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610a5e5780518252601f199092019160209182019101610a3f565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b60006004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310610b145780518252601f199092019160209182019101610af5565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff16949350505050565b610b5f611122565b600160a060020a03163314610b7357600080fd5b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6465707265636174656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b62015180420490565b600080600060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b60208310610c575780518252601f199092019160209182019101610c38565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054949350505050565b600060405160200180807f6572632d746f2d6572632d636f72650000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b60208310610d085780518252601f199092019160209182019101610ce9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905090565b600080600060405160200180807f657865637574696f6e4461696c794c696d697400000000000000000000000000815250601301905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006002600060405160200180807f66616c6c6261636b526563697069656e740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610a5e5780518252601f199092019160209182019101610a3f565b6000610eaf8a8a8a8a8a8a8a8a8a611ffc565b9a9950505050505050505050565b600080600060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b610f386117a7565b600160a060020a03163314610f4c57600080fd5b610f54610679565b600160a060020a0383811691161415610f6c57600080fd5b610f768282612690565b5050565b600080600060405160200180807f66656550657263656e7400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60008061101083611004610fff610bda565b610e21565b9063ffffffff61284c16565b90508061101b610d3a565b10158015611030575061102c611037565b8311155b9392505050565b600080600060405160200180807f657865637574696f6e4d61785065725478000000000000000000000000000000815250601101905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006110b4611196565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d602081101561111b57600080fd5b5051905090565b60006002600060405160200180807f6f776e65720000000000000000000000000000000000000000000000000000008152506005019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60006002600060405160200180807f76616c696461746f72436f6e74726163740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b600061121582611f0a565b6112268b8b8b8b8b8b8b8b8b610e9c565b9b9a5050505050505050505050565b600080600060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6002806000909192565b6112ba611122565b600160a060020a031633146112ce57600080fd5b6112d6610ebd565b811080156112ea57506112e7611985565b81105b15156112f557600080fd5b8060008060405160200180807f6d696e506572547800000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106113685780518252601f199092019160209182019101611349565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000209390935550505050565b6113b1611122565b600160a060020a031633146113c557600080fd5b600081116113d257600080fd5b8060008060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b602083106114455780518252601f199092019160209182019101611426565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb9350918290030190a150565b6114c0611122565b600160a060020a031633146114d457600080fd5b8060008060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106115475780518252601f199092019160209182019101611528565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9350918290030190a150565b6115c2611122565b600160a060020a031633146115d657600080fd5b600081116115e357600080fd5b8060008060405160200180807f676173507269636500000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106116565780518252601f199092019160209182019101611637565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e9350918290030190a150565b60006127106110306116f9826116ed6116e0610f7a565b879063ffffffff61285b16565b9063ffffffff61288616565b849063ffffffff61289d16565b61170e611122565b600160a060020a0316331461172257600080fd5b61172a610ebd565b811061173557600080fd5b8060008060405160200180807f6d617850657254780000000000000000000000000000000000000000000000008152506008019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b600030600160a060020a031663025313a26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b600080600060405160200180807f6d696e5065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806118718361100461186c610bda565b6109e2565b90508061187c610ebd565b10158015611891575061188d611985565b8311155b801561103057506118a06117e7565b9092101592915050565b6118b2611122565b600160a060020a031633146118c657600080fd5b6118ce610d3a565b81106118d957600080fd5b8060008060405160200180807f657865637574696f6e4d617850657254780000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b611953611122565b600160a060020a0316331461196757600080fd5b600160a060020a038116151561197c57600080fd5b6109df816128af565b600080600060405160200180807f6d61785065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b600080600060405160200180807f6761735072696365000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806060600080611a7c8a61296d565b1515611a8757600080fd5b85600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ac557600080fd5b505af1158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b50518951909550851115611b0257600080fd5b611b0b8a612981565b935084604051908082528060200260200182016040528015611b37578160200160208202803883390190505b509250600091505b84821015611ccc576001848a84815181101515611b5857fe5b906020019060200201518a85815181101515611b7057fe5b906020019060200201518a86815181101515611b8857fe5b60209081029091018101516040805160008082528185018084529790975260ff9095168582015260608501939093526080840152905160a0808401949293601f19830193908390039091019190865af1158015611be9573d6000803e3d6000fd5b50505060206040510351905085600160a060020a031663facd743b826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b505050506040513d6020811015611c7a57600080fd5b50511515611c8757600080fd5b611c918382612b46565b15611c9b57600080fd5b808383815181101515611caa57fe5b600160a060020a03909216602092830290910190910152600190910190611b3f565b50505050505050505050565b600080600080611ce78561296d565b1515611cf257600080fd5b600160a060020a0360148601511693506034850151925060548501519150606885015190509193509193565b80600460008460405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310611da25780518252601f199092019160209182019101611d83565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b600080611dfd8484612b9f565b1515611efe57611e0b610dad565b9050600160a060020a0381161515611eaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f66616c6c6261636b20726563697069656e7420776173206e6f7420617373696760448201527f6e65640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611eb48184612b9f565b5080600160a060020a031684600160a060020a03167f4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe60405160405180910390a360019150611f03565b600191505b5092915050565b600160a060020a0381161515611f1f57600080fd5b806002600060405160200180807f66616c6c6261636b526563697069656e7400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b60208310611f935780518252601f199092019160209182019101611f74565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03959095169490941790935550505050565b6000612006610a9f565b1561201057600080fd5b600160a060020a038a161580159061202c575061202c8a612c80565b151561203757600080fd5b87151561204357600080fd5b6000871161205057600080fd5b84841061205c57600080fd5b600160a060020a038316151561207157600080fd5b61271082106120e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c6964206665652070657263656e7400000000000000000000000000604482015290519081900360640190fd5b896002600060405160200180807f76616c696461746f72436f6e747261637400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b602083106121555780518252601f199092019160209182019101612136565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039590951694909417909355506121c691508a9050612c88565b4360008060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b602083106122395780518252601f19909201916020918201910161221a565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000818401528151601a818303018152603a9091019182905280518c949384939182918401908083835b602083106122e35780518252601f1990920191602091820191016122c4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6761735072696365000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518b949384939182918401908083835b6020831061238d5780518252601f19909201916020918201910161236e565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6d61785065725478000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518a949384939182918401908083835b602083106124375780518252601f199092019160209182019101612418565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4461696c794c696d6974000000000000000000000000008184015281516013818303018152603390910191829052805189949384939182918401908083835b602083106124e15780518252601f1990920191602091820191016124c2565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4d617850657254780000000000000000000000000000008184015281516011818303018152603190910191829052805188949384939182918401908083835b6020831061258b5780518252601f19909201916020918201910161256c565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f66656550657263656e7400000000000000000000000000000000000000000000818401528151600a818303018152602a90910191829052805186949384939182918401908083835b602083106126355780518252601f199092019160209182019101612616565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555061267e91508490506128af565b6126886001612d22565b610eaf610a9f565b60008061269b6117a7565b600160a060020a031633146126af57600080fd5b600160a060020a03831615156126c457600080fd5b600160a060020a038416151561271057604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561270a573d6000803e3d6000fd5b50612846565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561277457600080fd5b505af1158015612788573d6000803e3d6000fd5b505050506040513d602081101561279e57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561280f57600080fd5b505af1158015612823573d6000803e3d6000fd5b505050506040513d602081101561283957600080fd5b5051151561284657600080fd5b50505050565b60008282018381101561103057fe5b60008083151561286e5760009150611f03565b5082820282848281151561287e57fe5b041461103057fe5b600080828481151561289457fe5b04949350505050565b6000828211156128a957fe5b50900390565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06128d8611122565b60408051600160a060020a03928316815291841660208301528051918290030190a1806002600060405160200180807f6f776e6572000000000000000000000000000000000000000000000000000000815250600501905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b6000612977612de3565b8251149050919050565b604080518082018252601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602080830191825283518085018552600381527f313034000000000000000000000000000000000000000000000000000000000081830152935183516000959385938593899391019182918083835b60208310612a1d5780518252601f1990920191602091820191016129fe565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310612a655780518252601f199092019160209182019101612a46565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310612aad5780518252601f199092019160209182019101612a8e565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612b125780518252601f199092019160209182019101612af3565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b6000805b8351811015612b955782600160a060020a03168482815181101515612b6b57fe5b90602001906020020151600160a060020a03161415612b8d5760019150611f03565b600101612b4a565b5060009392505050565b600080612baa610679565b600160a060020a031660405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060e060020a900485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303816000875af1925050509050801515612c4e5760009150611f03565b3d8015612c625760208114612c6c57600080fd5b6000199150612c78565b60206000803e60005191505b509392505050565b6000903b1190565b600160a060020a03811615801590612ca45750612ca481612c80565b1515612caf57600080fd5b806002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b806004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310612d965780518252601f199092019160209182019101612d77565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550505050565b6068905600a165627a7a7230582053ea074de130c12a3075f5c8c5d625ca406daecb629d00f5d7b83e1ae040982a0029
[codex:496117] 
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing bytecode for security weaknesses**
[codex:496117] thinking
[codex:496117] **Evaluating function call order and access control**
[codex:496117] 
[codex:496117] I'm reviewing how the contract marks messages as relayed before executing external calls, which reduces reentrancy risk. I’m also mapping function selectors to names and checking owner access on setters like validatorContract. It looks like most setters have owner checks, and the initializer sets critical state only once. I’m scanning for any externally callable functions that can set critical flags like relayedMessages without restriction, as that could cause issues.
[codex:496117] exec
[codex:496117] /bin/bash -lc 'rg -n "611d1e" /tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt' in /tmp/codex-multi-e4t8z5gl succeeded in 15ms:
[codex:496117] 5:0x6080604052600436106101c95763ffffffff60e060020a6000350416631dcea42781146101ce57806321d800ec146101ff578063232a2c1d1461022b5780632b92490e146102715780632bd0bb0514610292578063392e53cd146102bc5780633dd95d1b146102d15780633e6968b6146102e95780633f0a9f65146102fe578063437764df1461031357806343b37dd31461035d578063452f3ce0146103725780634fb3fef71461038757806351c764e01461039f57806367eeba0c146103e457806369ffa08a146103f95780637ce3489b146102d15780637fd6f15c14610420578063879ce676146104355780638aa1949a1461044d5780638d068043146104625780638da5cb5b14610477578063994390891461048c578063997b8c2d146104a15780639a454b99146104ee5780639cb7595a14610503578063a2a6ca2714610544578063acf5c6891461055c578063b20d30a914610574578063bf1fe4201461058c578063c0567656146105a4578063c6f6f216146105bc578063df0ad3de146105d4578063df25f3f0146105e9578063ea9f4968146105fe578063f20151e114610616578063f2fde38b1461062e578063f968adbe1461064f578063fe173b9714610664575b600080fd5b3480156101da57600080fd5b506101e3610679565b60408051600160a060020a039092168252519081900360200190f35b34801561020b57600080fd5b50610217600435610737565b604080519115158252519081900360200190f35b34801561023757600080fd5b5061026f6024600480358281019290820135918135808301929082013591604435808301929082013591606435918201910135610800565b005b34801561027d57600080fd5b5061026f600160a060020a03600435166109ba565b34801561029e57600080fd5b506102aa6004356109e2565b60408051918252519081900360200190f35b3480156102c857600080fd5b50610217610a9f565b3480156102dd57600080fd5b5061026f600435610b57565b3480156102f557600080fd5b506102aa610bda565b34801561030a57600080fd5b506102aa610be3565b34801561031f57600080fd5b50610328610c97565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b34801561036957600080fd5b506102aa610d3a565b34801561037e57600080fd5b506101e3610dad565b34801561039357600080fd5b506102aa600435610e21565b3480156103ab57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4351661010435610e9c565b3480156103f057600080fd5b506102aa610ebd565b34801561040557600080fd5b5061026f600160a060020a0360043581169060243516610f30565b34801561042c57600080fd5b506102aa610f7a565b34801561044157600080fd5b50610217600435610fed565b34801561045957600080fd5b506102aa611037565b34801561046e57600080fd5b506102aa6110aa565b34801561048357600080fd5b506101e3611122565b34801561049857600080fd5b506101e3611196565b3480156104ad57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4358116906101043590610124351661120a565b3480156104fa57600080fd5b506102aa611235565b34801561050f57600080fd5b506105186112a8565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561055057600080fd5b5061026f6004356112b2565b34801561056857600080fd5b5061026f6004356113a9565b34801561058057600080fd5b5061026f6004356114b8565b34801561059857600080fd5b5061026f6004356115ba565b3480156105b057600080fd5b506102aa6004356116c9565b3480156105c857600080fd5b5061026f600435611706565b3480156105e057600080fd5b506101e36117a7565b3480156105f557600080fd5b506102aa6117e7565b34801561060a57600080fd5b5061021760043561185a565b34801561062257600080fd5b5061026f6004356118aa565b34801561063a57600080fd5b5061026f600160a060020a036004351661194b565b34801561065b57600080fd5b506102aa611985565b34801561067057600080fd5b506102aa6119f8565b60006002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106106ee5780518252601f1990920191602091820191016106cf565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a0316949350505050565b6000600460008360405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106107bc5780518252601f19909201916020918201910161079d565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b6000806000806108d886868080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b80806020026020016040519081016040528093929190818152602001838360200280828437506108d394506111969350505050565b611a6b565b61091186868080601f01602080910402602001604051908101604052809392919081815260200183838082843750611cd8945050505050565b92965090945092509050600160a060020a038116301461093057600080fd5b61093982610737565b1561094357600080fd5b61094e826001611d1e565b6109588484611df0565b151561096357600080fd5b60408051600160a060020a03861681526020810185905280820184905290517f4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf3299181900360600190a1505050505050505050505050565b6109c2611122565b600160a060020a031633146109d657600080fd5b6109df81611f0a565b50565b60008060008360405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610a5e5780518252601f199092019160209182019101610a3f565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b60006004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310610b145780518252601f199092019160209182019101610af5565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff16949350505050565b610b5f611122565b600160a060020a03163314610b7357600080fd5b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6465707265636174656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b62015180420490565b600080600060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b60208310610c575780518252601f199092019160209182019101610c38565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054949350505050565b600060405160200180807f6572632d746f2d6572632d636f72650000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b60208310610d085780518252601f199092019160209182019101610ce9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905090565b600080600060405160200180807f657865637574696f6e4461696c794c696d697400000000000000000000000000815250601301905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006002600060405160200180807f66616c6c6261636b526563697069656e740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610a5e5780518252601f199092019160209182019101610a3f565b6000610eaf8a8a8a8a8a8a8a8a8a611ffc565b9a9950505050505050505050565b600080600060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b610f386117a7565b600160a060020a03163314610f4c57600080fd5b610f54610679565b600160a060020a0383811691161415610f6c57600080fd5b610f768282612690565b5050565b600080600060405160200180807f66656550657263656e7400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60008061101083611004610fff610bda565b610e21565b9063ffffffff61284c16565b90508061101b610d3a565b10158015611030575061102c611037565b8311155b9392505050565b600080600060405160200180807f657865637574696f6e4d61785065725478000000000000000000000000000000815250601101905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006110b4611196565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d602081101561111b57600080fd5b5051905090565b60006002600060405160200180807f6f776e65720000000000000000000000000000000000000000000000000000008152506005019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60006002600060405160200180807f76616c696461746f72436f6e74726163740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b600061121582611f0a565b6112268b8b8b8b8b8b8b8b8b610e9c565b9b9a5050505050505050505050565b600080600060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6002806000909192565b6112ba611122565b600160a060020a031633146112ce57600080fd5b6112d6610ebd565b811080156112ea57506112e7611985565b81105b15156112f557600080fd5b8060008060405160200180807f6d696e506572547800000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106113685780518252601f199092019160209182019101611349565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000209390935550505050565b6113b1611122565b600160a060020a031633146113c557600080fd5b600081116113d257600080fd5b8060008060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b602083106114455780518252601f199092019160209182019101611426565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb9350918290030190a150565b6114c0611122565b600160a060020a031633146114d457600080fd5b8060008060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106115475780518252601f199092019160209182019101611528565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9350918290030190a150565b6115c2611122565b600160a060020a031633146115d657600080fd5b600081116115e357600080fd5b8060008060405160200180807f676173507269636500000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106116565780518252601f199092019160209182019101611637565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e9350918290030190a150565b60006127106110306116f9826116ed6116e0610f7a565b879063ffffffff61285b16565b9063ffffffff61288616565b849063ffffffff61289d16565b61170e611122565b600160a060020a0316331461172257600080fd5b61172a610ebd565b811061173557600080fd5b8060008060405160200180807f6d617850657254780000000000000000000000000000000000000000000000008152506008019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b600030600160a060020a031663025313a26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b600080600060405160200180807f6d696e5065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806118718361100461186c610bda565b6109e2565b90508061187c610ebd565b10158015611891575061188d611985565b8311155b801561103057506118a06117e7565b9092101592915050565b6118b2611122565b600160a060020a031633146118c657600080fd5b6118ce610d3a565b81106118d957600080fd5b8060008060405160200180807f657865637574696f6e4d617850657254780000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b611953611122565b600160a060020a0316331461196757600080fd5b600160a060020a038116151561197c57600080fd5b6109df816128af565b600080600060405160200180807f6d61785065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b600080600060405160200180807f6761735072696365000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806060600080611a7c8a61296d565b1515611a8757600080fd5b85600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ac557600080fd5b505af1158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b50518951909550851115611b0257600080fd5b611b0b8a612981565b935084604051908082528060200260200182016040528015611b37578160200160208202803883390190505b509250600091505b84821015611ccc576001848a84815181101515611b5857fe5b906020019060200201518a85815181101515611b7057fe5b906020019060200201518a86815181101515611b8857fe5b60209081029091018101516040805160008082528185018084529790975260ff9095168582015260608501939093526080840152905160a0808401949293601f19830193908390039091019190865af1158015611be9573d6000803e3d6000fd5b50505060206040510351905085600160a060020a031663facd743b826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b505050506040513d6020811015611c7a57600080fd5b50511515611c8757600080fd5b611c918382612b46565b15611c9b57600080fd5b808383815181101515611caa57fe5b600160a060020a03909216602092830290910190910152600190910190611b3f565b50505050505050505050565b600080600080611ce78561296d565b1515611cf257600080fd5b600160a060020a0360148601511693506034850151925060548501519150606885015190509193509193565b80600460008460405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310611da25780518252601f199092019160209182019101611d83565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b600080611dfd8484612b9f565b1515611efe57611e0b610dad565b9050600160a060020a0381161515611eaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f66616c6c6261636b20726563697069656e7420776173206e6f7420617373696760448201527f6e65640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611eb48184612b9f565b5080600160a060020a031684600160a060020a03167f4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe60405160405180910390a360019150611f03565b600191505b5092915050565b600160a060020a0381161515611f1f57600080fd5b806002600060405160200180807f66616c6c6261636b526563697069656e7400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b60208310611f935780518252601f199092019160209182019101611f74565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03959095169490941790935550505050565b6000612006610a9f565b1561201057600080fd5b600160a060020a038a161580159061202c575061202c8a612c80565b151561203757600080fd5b87151561204357600080fd5b6000871161205057600080fd5b84841061205c57600080fd5b600160a060020a038316151561207157600080fd5b61271082106120e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c6964206665652070657263656e7400000000000000000000000000604482015290519081900360640190fd5b896002600060405160200180807f76616c696461746f72436f6e747261637400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b602083106121555780518252601f199092019160209182019101612136565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039590951694909417909355506121c691508a9050612c88565b4360008060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b602083106122395780518252601f19909201916020918201910161221a565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000818401528151601a818303018152603a9091019182905280518c949384939182918401908083835b602083106122e35780518252601f1990920191602091820191016122c4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6761735072696365000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518b949384939182918401908083835b6020831061238d5780518252601f19909201916020918201910161236e565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6d61785065725478000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518a949384939182918401908083835b602083106124375780518252601f199092019160209182019101612418565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4461696c794c696d6974000000000000000000000000008184015281516013818303018152603390910191829052805189949384939182918401908083835b602083106124e15780518252601f1990920191602091820191016124c2565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4d617850657254780000000000000000000000000000008184015281516011818303018152603190910191829052805188949384939182918401908083835b6020831061258b5780518252601f19909201916020918201910161256c565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f66656550657263656e7400000000000000000000000000000000000000000000818401528151600a818303018152602a90910191829052805186949384939182918401908083835b602083106126355780518252601f199092019160209182019101612616565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555061267e91508490506128af565b6126886001612d22565b610eaf610a9f565b60008061269b6117a7565b600160a060020a031633146126af57600080fd5b600160a060020a03831615156126c457600080fd5b600160a060020a038416151561271057604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561270a573d6000803e3d6000fd5b50612846565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561277457600080fd5b505af1158015612788573d6000803e3d6000fd5b505050506040513d602081101561279e57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561280f57600080fd5b505af1158015612823573d6000803e3d6000fd5b505050506040513d602081101561283957600080fd5b5051151561284657600080fd5b50505050565b60008282018381101561103057fe5b60008083151561286e5760009150611f03565b5082820282848281151561287e57fe5b041461103057fe5b600080828481151561289457fe5b04949350505050565b6000828211156128a957fe5b50900390565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06128d8611122565b60408051600160a060020a03928316815291841660208301528051918290030190a1806002600060405160200180807f6f776e6572000000000000000000000000000000000000000000000000000000815250600501905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b6000612977612de3565b8251149050919050565b604080518082018252601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602080830191825283518085018552600381527f313034000000000000000000000000000000000000000000000000000000000081830152935183516000959385938593899391019182918083835b60208310612a1d5780518252601f1990920191602091820191016129fe565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310612a655780518252601f199092019160209182019101612a46565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310612aad5780518252601f199092019160209182019101612a8e565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612b125780518252601f199092019160209182019101612af3565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b6000805b8351811015612b955782600160a060020a03168482815181101515612b6b57fe5b90602001906020020151600160a060020a03161415612b8d5760019150611f03565b600101612b4a565b5060009392505050565b600080612baa610679565b600160a060020a031660405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060e060020a900485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303816000875af1925050509050801515612c4e5760009150611f03565b3d8015612c625760208114612c6c57600080fd5b6000199150612c78565b60206000803e60005191505b509392505050565b6000903b1190565b600160a060020a03811615801590612ca45750612ca481612c80565b1515612caf57600080fd5b806002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b806004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310612d965780518252601f199092019160209182019101612d77565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550505050565b6068905600a165627a7a7230582053ea074de130c12a3075f5c8c5d625ca406daecb629d00f5d7b83e1ae040982a0029
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing contract bytecode for vulnerabilities**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] from collections import Counter
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] with open(path) as f:
[codex:496117]     data=f.read()
[codex:496117] # extract hex after 0x
[codex:496117] m=re.search(r'0x([0-9a-fA-F]+)', data)
[codex:496117] hexstr=m.group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] # disassemble minimally
[codex:496117] opcnt=Counter()
[codex:496117] positions=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117]     op=code[i]
[codex:496117]     opcnt[op]+=1
[codex:496117]     positions.append((i,op))
[codex:496117]     i+=1
[codex:496117]     if 0x60 <= op <= 0x7f:  # PUSH1..PUSH32
[codex:496117]         n=op-0x5f
[codex:496117]         i+=n
[codex:496117] 
[codex:496117] # map names for key opcodes
[codex:496117] names={0xf4:'DELEGATECALL',0xf2:'CALLCODE',0xff:'SELFDESTRUCT',0xf1:'CALL',0xf0:'CREATE',0xf5:'CREATE2',0x32:'ORIGIN'}
[codex:496117] for op,name in names.items():
[codex:496117]     print(name, 'count', opcnt.get(op,0))
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 29ms:
[codex:496117] DELEGATECALL count 0
[codex:496117] CALLCODE count 0
[codex:496117] SELFDESTRUCT count 0
[codex:496117] CALL count 8
[codex:496117] CREATE count 0
[codex:496117] CREATE2 count 0
[codex:496117] ORIGIN count 0
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Planning CALL opcode analysis**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] with open(path) as f:
[codex:496117]     data=f.read()
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] # minimal opcode names
[codex:496117] opnames={
[codex:496117]     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:496117]     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:496117]     0x20:'SHA3',
[codex:496117]     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:496117]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',
[codex:496117]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:496117]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:496117] }
[codex:496117] 
[codex:496117] # build list of instructions with pc
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117]     op=code[i]
[codex:496117]     name=opnames.get(op, 'UNKNOWN')
[codex:496117]     arg=b''
[codex:496117]     pc=i
[codex:496117]     i+=1
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f
[codex:496117]         arg=code[i:i+n]
[codex:496117]         i+=n
[codex:496117]         name=f'PUSH{n}'
[codex:496117]     instr.append((pc,op,name,arg))
[codex:496117] 
[codex:496117] # find CALLs
[codex:496117] call_idxs=[idx for idx,(_,op,_,_) in enumerate(instr) if op==0xf1]
[codex:496117] for idx in call_idxs:
[codex:496117]     start=max(0, idx-6)
[codex:496117]     end=min(len(instr), idx+6)
[codex:496117]     print('--- CALL at pc', instr[idx][0])
[codex:496117]     for j in range(start,end):
[codex:496117]         pc,op,name,arg=instr[j]
[codex:496117]         if name.startswith('PUSH'):
[codex:496117]             print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117]         else:
[codex:496117]             print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 28ms:
[codex:496117] --- CALL at pc 4340
[codex:496117] 10ed: PUSH1 0x00
[codex:496117] 10ef: UNKNOWN
[codex:496117] 10f0: REVERT
[codex:496117] 10f1: JUMPDEST
[codex:496117] 10f2: POP
[codex:496117] 10f3: GAS
[codex:496117] 10f4: CALL
[codex:496117] 10f5: ISZERO
[codex:496117] 10f6: UNKNOWN
[codex:496117] 10f7: ISZERO
[codex:496117] 10f8: PUSH2 0x1105
[codex:496117] 10fb: JUMPI
[codex:496117] --- CALL at pc 6856
[codex:496117] 1ac1: PUSH1 0x00
[codex:496117] 1ac3: UNKNOWN
[codex:496117] 1ac4: REVERT
[codex:496117] 1ac5: JUMPDEST
[codex:496117] 1ac6: POP
[codex:496117] 1ac7: GAS
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Enhancing disassembler opcode coverage**
[codex:496117] 
[codex:496117] I’m reviewing how the disassembler currently misses DUP, SWAP, LOG, and some other opcodes causing unknowns; since many call instructions seem to check return values via a common pattern, I want to clarify if any calls skip that by inspecting those in unknown contexts more closely. To do that, I need to expand the disassembler to decode the missing opcodes so I can interpret those sections fully.
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] opnames={
[codex:496117]     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:496117]     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:496117]     0x20:'SHA3',
[codex:496117]     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:496117]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',
[codex:496117]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:496117]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:496117]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:496117] }
[codex:496117] # DUP1..DUP16
[codex:496117] for i in range(1,17):
[codex:496117]     opnames[0x7f+i]=f'DUP{i}'
[codex:496117] # SWAP1..SWAP16
[codex:496117] for i in range(1,17):
[codex:496117]     opnames[0x8f+i]=f'SWAP{i}'
[codex:496117] 
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117]     op=code[i]; pc=i; i+=1
[codex:496117]     name=opnames.get(op, 'UNKNOWN')
[codex:496117]     arg=b''
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f
[codex:496117]         arg=code[i:i+n]
[codex:496117]         i+=n
[codex:496117]         name=f'PUSH{n}'
[codex:496117]     instr.append((pc,op,name,arg))
[codex:496117] 
[codex:496117] # find CALLs and print extended context
[codex:496117] call_idxs=[idx for idx,(_,op,_,_) in enumerate(instr) if op==0xf1]
[codex:496117] for idx in call_idxs:
[codex:496117]     start=max(0, idx-10)
[codex:496117]     end=min(len(instr), idx+10)
[codex:496117]     print('--- CALL at pc', instr[idx][0])
[codex:496117]     for j in range(start,end):
[codex:496117]         pc,op,name,arg=instr[j]
[codex:496117]         if name.startswith('PUSH'):
[codex:496117]             print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117]         else:
[codex:496117]             print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 29ms:
[codex:496117] --- CALL at pc 4340
[codex:496117] 10e7: DUP1
[codex:496117] 10e8: ISZERO
[codex:496117] 10e9: PUSH2 0x10f1
[codex:496117] 10ec: JUMPI
[codex:496117] 10ed: PUSH1 0x00
[codex:496117] 10ef: DUP1
[codex:496117] 10f0: REVERT
[codex:496117] 10f1: JUMPDEST
[codex:496117] 10f2: POP
[codex:496117] 10f3: GAS
[codex:496117] 10f4: CALL
[codex:496117] 10f5: ISZERO
[codex:496117] 10f6: DUP1
[codex:496117] 10f7: ISZERO
[codex:496117] 10f8: PUSH2 0x1105
[codex:496117] 10fb: JUMPI
[codex:496117] 10fc: RETURNDATASIZE
[codex:496117] 10fd: PUSH1 0x00
[codex:496117] 10ff: DUP1
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing unprotected initializer risk**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] # simple disasm
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117]     op=code[i]; pc=i; i+=1
[codex:496117]     arg=b''
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f
[codex:496117]         arg=code[i:i+n]
[codex:496117]         i+=n
[codex:496117]     instr.append((pc,op,arg))
[codex:496117] 
[codex:496117] # find selector patterns in first part (until first JUMPDEST after dispatcher?)
[codex:496117] # We'll scan first 0x300 bytes.
[codex:496117] selectors=[]
[codex:496117] for idx,(pc,op,arg) in enumerate(instr):
[codex:496117]     if pc>0x300: break
[codex:496117]     if op==0x63: # PUSH4
[codex:496117]         sel=arg.hex()
[codex:496117]         # look ahead for EQ then PUSH2 dest
[codex:496117]         if idx+2 < len(instr):
[codex:496117]             # pattern: PUSH4, EQ(0x14), PUSH2
[codex:496117]             # sometimes DUP1 etc; we check next few instructions
[codex:496117]             for j in range(idx+1, idx+6):
[codex:496117]                 if j>=len(instr): break
[codex:496117]                 if instr[j][1]==0x14: # EQ
[codex:496117]                     # find next PUSH2
[codex:496117]                     for k in range(j+1, j+6):
[codex:496117]                         if k>=len(instr): break
[codex:496117]                         if instr[k][1]==0x61: # PUSH2
[codex:496117]                             dest=int.from_bytes(instr[k][2], 'big')
[codex:496117]                             selectors.append((sel, dest, pc))
[codex:496117]                             break
[codex:496117]                     break
[codex:496117] 
[codex:496117] # print unique selectors
[codex:496117] seen=set()
[codex:496117] for sel,dest,pc in selectors:
[codex:496117]     if (sel,dest) in seen: continue
[codex:496117]     seen.add((sel,dest))
[codex:496117]     print(f'selector 0x{sel} -> dest 0x{dest:04x} (pc {pc:04x})')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 28ms:
[codex:496117] selector 0x1dcea427 -> dest 0x01ce (pc 001c)
[codex:496117] selector 0x21d800ec -> dest 0x01ff (pc 0028)
[codex:496117] selector 0x232a2c1d -> dest 0x022b (pc 0033)
[codex:496117] selector 0x2b92490e -> dest 0x0271 (pc 003e)
[codex:496117] selector 0x2bd0bb05 -> dest 0x0292 (pc 0049)
[codex:496117] selector 0x392e53cd -> dest 0x02bc (pc 0054)
[codex:496117] selector 0x3dd95d1b -> dest 0x02d1 (pc 005f)
[codex:496117] selector 0x3e6968b6 -> dest 0x02e9 (pc 006a)
[codex:496117] selector 0x3f0a9f65 -> dest 0x02fe (pc 0075)
[codex:496117] selector 0x437764df -> dest 0x0313 (pc 0080)
[codex:496117] selector 0x43b37dd3 -> dest 0x035d (pc 008b)
[codex:496117] selector 0x452f3ce0 -> dest 0x0372 (pc 0096)
[codex:496117] selector 0x4fb3fef7 -> dest 0x0387 (pc 00a1)
[codex:496117] selector 0x51c764e0 -> dest 0x039f (pc 00ac)
[codex:496117] selector 0x67eeba0c -> dest 0x03e4 (pc 00b7)
[codex:496117] selector 0x69ffa08a -> dest 0x03f9 (pc 00c2)
[codex:496117] selector 0x7ce3489b -> dest 0x02d1 (pc 00cd)
[codex:496117] selector 0x7fd6f15c -> dest 0x0420 (pc 00d8)
[codex:496117] selector 0x879ce676 -> dest 0x0435 (pc 00e3)
[codex:496117] selector 0x8aa1949a -> dest 0x044d (pc 00ee)
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing potential initializer functions**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] # disasm helper
[codex:496117] opnames={
[codex:496117]     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:496117]     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:496117]     0x20:'SHA3',
[codex:496117]     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:496117]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',
[codex:496117]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:496117]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:496117]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:496117] }
[codex:496117] for i in range(1,17):
[codex:496117]     opnames[0x7f+i]=f'DUP{i}'
[codex:496117] for i in range(1,17):
[codex:496117]     opnames[0x8f+i]=f'SWAP{i}'
[codex:496117] 
[codex:496117] # build instruction list with pc mapping
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117]     pc=i
[codex:496117]     op=code[i]; i+=1
[codex:496117]     arg=b''
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f
[codex:496117]         arg=code[i:i+n]; i+=n
[codex:496117]     name=opnames.get(op,'UNKNOWN')
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         name=f'PUSH{len(arg)}'
[codex:496117]     instr.append((pc,op,name,arg))
[codex:496117] 
[codex:496117] # map pc to index
[codex:496117] pc_to_idx={pc:idx for idx,(pc,_,_,_) in enumerate(instr)}
[codex:496117] 
[codex:496117] # dump function at dest
[codex:496117] for dest in [0x0503,0x04a1,0x04ee,0x05fe]:
[codex:496117]     print('\\nFunction at 0x%04x'%dest)
[codex:496117]     idx=pc_to_idx.get(dest)
[codex:496117]     if idx is None:
[codex:496117]         print('not found'); continue
[codex:496117]     for j in range(idx, min(idx+60, len(instr))):
[codex:496117]         pc,op,name,arg=instr[j]
[codex:496117]         if name.startswith('PUSH'):
[codex:496117]             print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117]         else:
[codex:496117]             print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 31ms:
[codex:496117] 
[codex:496117] Function at 0x0503
[codex:496117] 0503: JUMPDEST
[codex:496117] 0504: CALLVALUE
[codex:496117] 0505: DUP1
[codex:496117] 0506: ISZERO
[codex:496117] 0507: PUSH2 0x050f
[codex:496117] 050a: JUMPI
[codex:496117] 050b: PUSH1 0x00
[codex:496117] 050d: DUP1
[codex:496117] 050e: REVERT
[codex:496117] 050f: JUMPDEST
[codex:496117] 0510: POP
[codex:496117] 0511: PUSH2 0x0518
[codex:496117] 0514: PUSH2 0x12a8
[codex:496117] 0517: JUMP
[codex:496117] 0518: JUMPDEST
[codex:496117] 0519: PUSH1 0x40
[codex:496117] 051b: DUP1
[codex:496117] 051c: MLOAD
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing function dispatch and return patterns**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] # disasm helper
[codex:496117] opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:496117] for i in range(1,17): opnames[0x7f+i]=f'DUP{i}'
[codex:496117] for i in range(1,17): opnames[0x8f+i]=f'SWAP{i}'
[codex:496117] 
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117]     pc=i; op=code[i]; i+=1; arg=b''
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117]     name=opnames.get(op,'UNKNOWN')
[codex:496117]     if 0x60 <= op <= 0x7f: name=f'PUSH{len(arg)}'
[codex:496117]     instr.append((pc,op,name,arg))
[codex:496117] 
[codex:496117] pc_to_idx={pc:idx for idx,(pc,_,_,_) in enumerate(instr)}
[codex:496117] 
[codex:496117] def dump(dest, count=40):
[codex:496117]     idx=pc_to_idx[dest]
[codex:496117]     for j in range(idx, idx+count):
[codex:496117]         pc,op,name,arg=instr[j]
[codex:496117]         if name.startswith('PUSH'):
[codex:496117]             print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117]         else:
[codex:496117]             print(f'{pc:04x}: {name}')
[codex:496117] 
[codex:496117] print('Function at 0x0217')
[codex:496117] dump(0x0217, 30)
[codex:496117] print('\\nFunction at 0x026f')
[codex:496117] dump(0x026f, 20)
[codex:496117] print('\\nFunction at 0x02aa')
[codex:496117] dump(0x02aa, 20)
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 34ms:
[codex:496117] Function at 0x0217
[codex:496117] 0217: JUMPDEST
[codex:496117] 0218: PUSH1 0x40
[codex:496117] 021a: DUP1
[codex:496117] 021b: MLOAD
[codex:496117] 021c: SWAP2
[codex:496117] 021d: ISZERO
[codex:496117] 021e: ISZERO
[codex:496117] 021f: DUP3
[codex:496117] 0220: MSTORE
[codex:496117] 0221: MLOAD
[codex:496117] 0222: SWAP1
[codex:496117] 0223: DUP2
[codex:496117] 0224: SWAP1
[codex:496117] 0225: SUB
[codex:496117] 0226: PUSH1 0x20
[codex:496117] 0228: ADD
[codex:496117] 0229: SWAP1
[codex:496117] 022a: RETURN
[codex:496117] 022b: JUMPDEST
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing return wrappers and initializer functions**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] # disasm to get push2 values and following jump
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117]     pc=i; op=code[i]; i+=1; arg=b''
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117]     instr.append((pc,op,arg))
[codex:496117] 
[codex:496117] # find occurrences of PUSH2 0x2006 followed by JUMP
[codex:496117] for idx,(pc,op,arg) in enumerate(instr[:-1]):
[codex:496117]     if op==0x61 and arg==b'\\x20\\x06':
[codex:496117]         # look ahead a couple instructions for JUMP
[codex:496117]         seq=instr[idx:idx+4]
[codex:496117]         if any(x[1]==0x56 for x in seq):
[codex:496117]             print(f'PUSH2 0x2006 at pc {pc:04x}, followed by', [(hex(p),op) for p,op,_ in seq])
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 27ms:
[codex:496117] PUSH2 0x2006 at pc 1fff, followed by [('0x1fff', 97), ('0x2002', 97), ('0x2005', 86), ('0x2006', 91)]
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing jump targets and function calls**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117]     pc=i; op=code[i]; i+=1; arg=b''
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117]     instr.append((pc,op,arg))
[codex:496117] 
[codex:496117] # find push2 0x1fff
[codex:496117] for idx,(pc,op,arg) in enumerate(instr[:-1]):
[codex:496117]     if op==0x61 and arg==b'\\x1f\\xff':
[codex:496117]         seq=instr[idx:idx+4]
[codex:496117]         if any(x[1]==0x56 for x in seq):
[codex:496117]             print(f'PUSH2 0x1fff at pc {pc:04x}, seq', [(hex(p),op) for p,op,_ in seq])
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 29ms:
[codex:496117] 
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing jump destinations near 0x1fff**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] # disasm helper
[codex:496117] opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:496117] for i in range(1,17): opnames[0x7f+i]=f'DUP{i}'
[codex:496117] for i in range(1,17): opnames[0x8f+i]=f'SWAP{i}'
[codex:496117] 
[codex:496117] # disasm to list
[codex:496117] instr=[]; i=0
[codex:496117] while i < len(code):
[codex:496117]     pc=i; op=code[i]; i+=1; arg=b''
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117]     name=opnames.get(op,'UNKNOWN')
[codex:496117]     if 0x60 <= op <= 0x7f: name=f'PUSH{len(arg)}'
[codex:496117]     instr.append((pc,op,name,arg))
[codex:496117] 
[codex:496117] # dump around pc 0x1fe0
[codex:496117] start=0x1fe0; end=0x2050
[codex:496117] # find index for start
[codex:496117] pc_to_idx={pc:idx for idx,(pc,_,_,_) in enumerate(instr)}
[codex:496117] idx=pc_to_idx.get(start)
[codex:496117] if idx is None:
[codex:496117]     # find closest
[codex:496117]     pcs=[pc for pc,_,_,_ in instr]
[codex:496117]     idx=max(i for i,pc in enumerate(pcs) if pc<=start)
[codex:496117] 
[codex:496117] for j in range(idx, len(instr)):
[codex:496117]     pc,op,name,arg=instr[j]
[codex:496117]     if pc>end: break
[codex:496117]     if name.startswith('PUSH'):
[codex:496117]         print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117]     else:
[codex:496117]         print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 35ms:
[codex:496117] 1fcd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:496117] 1fe2: NOT
[codex:496117] 1fe3: AND
[codex:496117] 1fe4: PUSH1 0x01
[codex:496117] 1fe6: PUSH1 0xa0
[codex:496117] 1fe8: PUSH1 0x02
[codex:496117] 1fea: EXP
[codex:496117] 1feb: SUB
[codex:496117] 1fec: SWAP6
[codex:496117] 1fed: SWAP1
[codex:496117] 1fee: SWAP6
[codex:496117] 1fef: AND
[codex:496117] 1ff0: SWAP5
[codex:496117] 1ff1: SWAP1
[codex:496117] 1ff2: SWAP5
[codex:496117] 1ff3: OR
[codex:496117] 1ff4: SWAP1
[codex:496117] 1ff5: SWAP4
[codex:496117] 1ff6: SSTORE
[codex:496117] 1ff7: POP
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing initializer jump destinations**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] instr=[]; i=0
[codex:496117] while i < len(code):
[codex:496117]     pc=i; op=code[i]; i+=1; arg=b''
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117]     instr.append((pc,op,arg))
[codex:496117] 
[codex:496117] for idx,(pc,op,arg) in enumerate(instr[:-1]):
[codex:496117]     if op==0x61 and arg==b'\\x1f\\xfc':
[codex:496117]         seq=instr[idx:idx+4]
[codex:496117]         if any(x[1]==0x56 for x in seq):
[codex:496117]             print(f'PUSH2 0x1ffc at pc {pc:04x}, seq', [(hex(p),op) for p,op,_ in seq])
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 34ms:
[codex:496117] PUSH2 0x1ffc at pc 0eab, seq [('0xeab', 97), ('0xeae', 86), ('0xeaf', 91), ('0xeb0', 154)]
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing function call relationships**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] 
[codex:496117] # disasm helper
[codex:496117] opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:496117] for i in range(1,17): opnames[0x7f+i]=f'DUP{i}'
[codex:496117] for i in range(1,17): opnames[0x8f+i]=f'SWAP{i}'
[codex:496117] 
[codex:496117] instr=[]; i=0
[codex:496117] while i < len(code):
[codex:496117]     pc=i; op=code[i]; i+=1; arg=b''
[codex:496117]     if 0x60 <= op <= 0x7f:
[codex:496117]         n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117]     name=opnames.get(op,'UNKNOWN')
[codex:496117]     if 0x60 <= op <= 0x7f: name=f'PUSH{len(arg)}'
[codex:496117]     instr.append((pc,op,name,arg))
[codex:496117] 
[codex:496117] # dump around pc 0x0e90-0x0ec0
[codex:496117] start=0x0e90; end=0x0ec0
[codex:496117] for pc,op,name,arg in instr:
[codex:496117]     if pc<start: continue
[codex:496117]     if pc>end: break
[codex:496117]     if name.startswith('PUSH'):
[codex:496117]         print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117]     else:
[codex:496117]         print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 31ms:
[codex:496117] 0e90: SWAP2
[codex:496117] 0e91: PUSH1 0x20
[codex:496117] 0e93: SWAP2
[codex:496117] 0e94: DUP3
[codex:496117] 0e95: ADD
[codex:496117] 0e96: SWAP2
[codex:496117] 0e97: ADD
[codex:496117] 0e98: PUSH2 0x0a3f
[codex:496117] 0e9b: JUMP
[codex:496117] 0e9c: JUMPDEST
[codex:496117] 0e9d: PUSH1 0x00
[codex:496117] 0e9f: PUSH2 0x0eaf
[codex:496117] 0ea2: DUP11
[codex:496117] 0ea3: DUP11
[codex:496117] 0ea4: DUP11
[codex:496117] 0ea5: DUP11
[codex:496117] 0ea6: DUP11
[codex:496117] 0ea7: DUP11
[codex:496117] 0ea8: DUP11
[codex:496117] 0ea9: DUP11
[codex:496117] 
[codex:496117] thinking
[codex:496117] **Analyzing unprotected initializer vulnerability**
[codex:496117] codex
[codex:496117] {"no_findings":false,"summary":"Identified one access-control issue: the initializer is publicly callable and only gated by an isInitialized flag.","findings":[{"severity":"medium","category":"auth","title":"Initializer is publicly callable (only guarded by isInitialized flag)","exploit_scenario":"If the contract is deployed but not initialized in the same transaction, any external account can call the initializer once to set critical parameters (owner/validator/token/limits) and take administrative control, potentially misconfiguring or redirecting bridge behavior.","recommendation":"Ensure initialization is executed during deployment (same tx) or add explicit access control to the initializer. For proxy patterns, call the initializer immediately and consider disabling initializers on the implementation contract.","evidence":"Selector 0x51c764e0 routes to internal 0x0e9c which jumps to 0x1ffc. At 0x1ffc the code only checks isInitialized via 0x0a9f (ISZERO/JUMPI) and proceeds without any CALLER/owner check before setting storage, including the \"isInitialized\" key (see the \"isInitialized\" storage write near the end of the bytecode).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
[codex:496117] tokens used
[codex:496117] 86,873
[codex:496117] {"no_findings":false,"summary":"Identified one access-control issue: the initializer is publicly callable and only gated by an isInitialized flag.","findings":[{"severity":"medium","category":"auth","title":"Initializer is publicly callable (only guarded by isInitialized flag)","exploit_scenario":"If the contract is deployed but not initialized in the same transaction, any external account can call the initializer once to set critical parameters (owner/validator/token/limits) and take administrative control, potentially misconfiguring or redirecting bridge behavior.","recommendation":"Ensure initialization is executed during deployment (same tx) or add explicit access control to the initializer. For proxy patterns, call the initializer immediately and consider disabling initializers on the implementation contract.","evidence":"Selector 0x51c764e0 routes to internal 0x0e9c which jumps to 0x1ffc. At 0x1ffc the code only checks isInitialized via 0x0a9f (ISZERO/JUMPI) and proceeds without any CALLER/owner check before setting storage, including the \"isInitialized\" key (see the \"isInitialized\" storage write near the end of the bytecode).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T18:38:41.243636+00:00",
        "returncode": 0
    },
    "summary": "Identified one access-control issue: the initializer is publicly callable and only gated by an isInitialized flag.",
    "raw_final": {
        "summary": "Identified one access-control issue: the initializer is publicly callable and only gated by an isInitialized flag.",
        "findings": [
            {
                "title": "Initializer is publicly callable (only guarded by isInitialized flag)",
                "category": "auth",
                "evidence": "Selector 0x51c764e0 routes to internal 0x0e9c which jumps to 0x1ffc. At 0x1ffc the code only checks isInitialized via 0x0a9f (ISZERO/JUMPI) and proceeds without any CALLER/owner check before setting storage, including the \"isInitialized\" key (see the \"isInitialized\" storage write near the end of the bytecode).",
                "severity": "medium",
                "locations": [
                    "BYTECODE_BUNDLE.txt:5"
                ],
                "recommendation": "Ensure initialization is executed during deployment (same tx) or add explicit access control to the initializer. For proxy patterns, call the initializer immediately and consider disabling initializers on the implementation contract.",
                "exploit_scenario": "If the contract is deployed but not initialized in the same transaction, any external account can call the initializer once to set critical parameters (owner/validator/token/limits) and take administrative control, potentially misconfiguring or redirecting bridge behavior."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
8
EXT*/BALANCE
8
Total opcodes
7687
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01c9
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH1 0xe0
00000014: PUSH1 0x02
00000016: EXP
00000017: PUSH1 0x00
00000019: CALLDATALOAD
0000001a: DIV
0000001b: AND
0000001c: PUSH4 0x1dcea427
00000021: DUP2
00000022: EQ
00000023: PUSH2 0x01ce
00000026: JUMPI
00000027: DUP1
00000028: PUSH4 0x21d800ec
0000002d: EQ
0000002e: PUSH2 0x01ff
00000031: JUMPI
00000032: DUP1
00000033: PUSH4 0x232a2c1d
00000038: EQ
00000039: PUSH2 0x022b
0000003c: JUMPI
0000003d: DUP1
0000003e: PUSH4 0x2b92490e
00000043: EQ
00000044: PUSH2 0x0271
00000047: JUMPI
00000048: DUP1
00000049: PUSH4 0x2bd0bb05
0000004e: EQ
0000004f: PUSH2 0x0292
00000052: JUMPI
00000053: DUP1
00000054: PUSH4 0x392e53cd
00000059: EQ
0000005a: PUSH2 0x02bc
0000005d: JUMPI
0000005e: DUP1
0000005f: PUSH4 0x3dd95d1b
00000064: EQ
00000065: PUSH2 0x02d1
00000068: JUMPI
00000069: DUP1
0000006a: PUSH4 0x3e6968b6
0000006f: EQ
00000070: PUSH2 0x02e9
00000073: JUMPI
00000074: DUP1
00000075: PUSH4 0x3f0a9f65
0000007a: EQ
0000007b: PUSH2 0x02fe
0000007e: JUMPI
0000007f: DUP1
00000080: PUSH4 0x437764df
00000085: EQ
00000086: PUSH2 0x0313
00000089: JUMPI
0000008a: DUP1
0000008b: PUSH4 0x43b37dd3
00000090: EQ
00000091: PUSH2 0x035d
00000094: JUMPI
00000095: DUP1
00000096: PUSH4 0x452f3ce0
0000009b: EQ
0000009c: PUSH2 0x0372
0000009f: JUMPI
000000a0: DUP1
000000a1: PUSH4 0x4fb3fef7
000000a6: EQ
000000a7: PUSH2 0x0387
000000aa: JUMPI
000000ab: DUP1
000000ac: PUSH4 0x51c764e0
000000b1: EQ
000000b2: PUSH2 0x039f
000000b5: JUMPI
000000b6: DUP1
000000b7: PUSH4 0x67eeba0c
000000bc: EQ
000000bd: PUSH2 0x03e4
000000c0: JUMPI
000000c1: DUP1
000000c2: PUSH4 0x69ffa08a
000000c7: EQ
000000c8: PUSH2 0x03f9
000000cb: JUMPI
000000cc: DUP1
000000cd: PUSH4 0x7ce3489b
000000d2: EQ
000000d3: PUSH2 0x02d1
000000d6: JUMPI
000000d7: DUP1
000000d8: PUSH4 0x7fd6f15c
000000dd: EQ
000000de: PUSH2 0x0420
000000e1: JUMPI
000000e2: DUP1
000000e3: PUSH4 0x879ce676
000000e8: EQ
000000e9: PUSH2 0x0435
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0x8aa1949a
000000f3: EQ
000000f4: PUSH2 0x044d
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0x8d068043
000000fe: EQ
000000ff: PUSH2 0x0462
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0x8da5cb5b
00000109: EQ
0000010a: PUSH2 0x0477
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x99439089
00000114: EQ
00000115: PUSH2 0x048c
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x997b8c2d
0000011f: EQ
00000120: PUSH2 0x04a1
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x9a454b99
0000012a: EQ
0000012b: PUSH2 0x04ee
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x9cb7595a
00000135: EQ
00000136: PUSH2 0x0503
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0xa2a6ca27
00000140: EQ
00000141: PUSH2 0x0544
00000144: JUMPI
00000145: DUP1
00000146: PUSH4 0xacf5c689
0000014b: EQ
0000014c: PUSH2 0x055c
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0xb20d30a9
00000156: EQ
00000157: PUSH2 0x0574
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0xbf1fe420
00000161: EQ
00000162: PUSH2 0x058c
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0xc0567656
0000016c: EQ
0000016d: PUSH2 0x05a4
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0xc6f6f216
00000177: EQ
00000178: PUSH2 0x05bc
0000017b: JUMPI
0000017c: DUP1
0000017d: PUSH4 0xdf0ad3de
00000182: EQ
00000183: PUSH2 0x05d4
00000186: JUMPI
00000187: DUP1
00000188: PUSH4 0xdf25f3f0
0000018d: EQ
0000018e: PUSH2 0x05e9
00000191: JUMPI
00000192: DUP1
00000193: PUSH4 0xea9f4968
00000198: EQ
00000199: PUSH2 0x05fe
0000019c: JUMPI
0000019d: DUP1
0000019e: PUSH4 0xf20151e1
000001a3: EQ
000001a4: PUSH2 0x0616
000001a7: JUMPI
000001a8: DUP1
000001a9: PUSH4 0xf2fde38b
000001ae: EQ
000001af: PUSH2 0x062e
000001b2: JUMPI
000001b3: DUP1
000001b4: PUSH4 0xf968adbe
000001b9: EQ
000001ba: PUSH2 0x064f
000001bd: JUMPI
000001be: DUP1
000001bf: PUSH4 0xfe173b97
000001c4: EQ
000001c5: PUSH2 0x0664
000001c8: JUMPI
000001c9: JUMPDEST
000001ca: PUSH1 0x00
000001cc: DUP1
000001cd: REVERT
000001ce: JUMPDEST
000001cf: CALLVALUE
000001d0: DUP1
000001d1: ISZERO
000001d2: PUSH2 0x01da
000001d5: JUMPI
000001d6: PUSH1 0x00
000001d8: DUP1
000001d9: REVERT
000001da: JUMPDEST
000001db: POP
000001dc: PUSH2 0x01e3
000001df: PUSH2 0x0679
000001e2: JUMP
000001e3: JUMPDEST
000001e4: PUSH1 0x40
000001e6: DUP1
000001e7: MLOAD
000001e8: PUSH1 0x01
000001ea: PUSH1 0xa0
000001ec: PUSH1 0x02
000001ee: EXP
000001ef: SUB
000001f0: SWAP1
000001f1: SWAP3
000001f2: AND
000001f3: DUP3
000001f4: MSTORE
000001f5: MLOAD
000001f6: SWAP1
000001f7: DUP2
000001f8: SWAP1
000001f9: SUB
000001fa: PUSH1 0x20
000001fc: ADD
000001fd: SWAP1
000001fe: RETURN
000001ff: JUMPDEST
00000200: CALLVALUE
00000201: DUP1
00000202: ISZERO
00000203: PUSH2 0x020b
00000206: JUMPI
00000207: PUSH1 0x00
00000209: DUP1
0000020a: REVERT
0000020b: JUMPDEST
0000020c: POP
0000020d: PUSH2 0x0217
00000210: PUSH1 0x04
00000212: CALLDATALOAD
00000213: PUSH2 0x0737
00000216: JUMP
00000217: JUMPDEST
00000218: PUSH1 0x40
0000021a: DUP1
0000021b: MLOAD
0000021c: SWAP2
0000021d: ISZERO
0000021e: ISZERO
0000021f: DUP3
00000220: MSTORE
00000221: MLOAD
00000222: SWAP1
00000223: DUP2
00000224: SWAP1
00000225: SUB
00000226: PUSH1 0x20
00000228: ADD
00000229: SWAP1
0000022a: RETURN
0000022b: JUMPDEST
0000022c: CALLVALUE
0000022d: DUP1
0000022e: ISZERO
0000022f: PUSH2 0x0237
00000232: JUMPI
00000233: PUSH1 0x00
00000235: DUP1
00000236: REVERT
00000237: JUMPDEST
00000238: POP
00000239: PUSH2 0x026f
0000023c: PUSH1 0x24
0000023e: PUSH1 0x04
00000240: DUP1
00000241: CALLDATALOAD
00000242: DUP3
00000243: DUP2
00000244: ADD
00000245: SWAP3
00000246: SWAP1
00000247: DUP3
00000248: ADD
00000249: CALLDATALOAD
0000024a: SWAP2
0000024b: DUP2
0000024c: CALLDATALOAD
0000024d: DUP1
0000024e: DUP4
0000024f: ADD
00000250: SWAP3
00000251: SWAP1
00000252: DUP3
00000253: ADD
00000254: CALLDATALOAD
00000255: SWAP2
00000256: PUSH1 0x44
00000258: CALLDATALOAD
00000259: DUP1
0000025a: DUP4
0000025b: ADD
0000025c: SWAP3
0000025d: SWAP1
0000025e: DUP3
0000025f: ADD
00000260: CALLDATALOAD
00000261: SWAP2
00000262: PUSH1 0x64
00000264: CALLDATALOAD
00000265: SWAP2
00000266: DUP3
00000267: ADD
00000268: SWAP2
00000269: ADD
0000026a: CALLDATALOAD
0000026b: PUSH2 0x0800
0000026e: JUMP
0000026f: JUMPDEST
00000270: STOP
00000271: JUMPDEST
00000272: CALLVALUE
00000273: DUP1
00000274: ISZERO
00000275: PUSH2 0x027d
00000278: JUMPI
00000279: PUSH1 0x00
0000027b: DUP1
0000027c: REVERT
0000027d: JUMPDEST
0000027e: POP
0000027f: PUSH2 0x026f
00000282: PUSH1 0x01
00000284: PUSH1 0xa0
00000286: PUSH1 0x02
00000288: EXP
00000289: SUB
0000028a: PUSH1 0x04
0000028c: CALLDATALOAD
0000028d: AND
0000028e: PUSH2 0x09ba
00000291: JUMP
00000292: JUMPDEST
00000293: CALLVALUE
00000294: DUP1
00000295: ISZERO
00000296: PUSH2 0x029e
00000299: JUMPI
0000029a: PUSH1 0x00
0000029c: DUP1
0000029d: REVERT
0000029e: JUMPDEST
0000029f: POP
000002a0: PUSH2 0x02aa
000002a3: PUSH1 0x04
000002a5: CALLDATALOAD
000002a6: PUSH2 0x09e2
000002a9: JUMP
000002aa: JUMPDEST
000002ab: PUSH1 0x40
000002ad: DUP1
000002ae: MLOAD
000002af: SWAP2
000002b0: DUP3
000002b1: MSTORE
000002b2: MLOAD
000002b3: SWAP1
000002b4: DUP2
000002b5: SWAP1
000002b6: SUB
000002b7: PUSH1 0x20
000002b9: ADD
000002ba: SWAP1
000002bb: RETURN
000002bc: JUMPDEST
000002bd: CALLVALUE
000002be: DUP1
000002bf: ISZERO
000002c0: PUSH2 0x02c8
000002c3: JUMPI
000002c4: PUSH1 0x00
000002c6: DUP1
000002c7: REVERT
000002c8: JUMPDEST
000002c9: POP
000002ca: PUSH2 0x0217
000002cd: PUSH2 0x0a9f
000002d0: JUMP
000002d1: JUMPDEST
000002d2: CALLVALUE
000002d3: DUP1
000002d4: ISZERO
000002d5: PUSH2 0x02dd
000002d8: JUMPI
000002d9: PUSH1 0x00
000002db: DUP1
000002dc: REVERT
000002dd: JUMPDEST
000002de: POP
000002df: PUSH2 0x026f
000002e2: PUSH1 0x04
000002e4: CALLDATALOAD
000002e5: PUSH2 0x0b57
000002e8: JUMP
000002e9: JUMPDEST
000002ea: CALLVALUE
000002eb: DUP1
000002ec: ISZERO
000002ed: PUSH2 0x02f5
000002f0: JUMPI
000002f1: PUSH1 0x00
000002f3: DUP1
000002f4: REVERT
000002f5: JUMPDEST
000002f6: POP
000002f7: PUSH2 0x02aa
000002fa: PUSH2 0x0bda
000002fd: JUMP
000002fe: JUMPDEST
000002ff: CALLVALUE
00000300: DUP1
00000301: ISZERO
00000302: PUSH2 0x030a
00000305: JUMPI
00000306: PUSH1 0x00
00000308: DUP1
00000309: REVERT
0000030a: JUMPDEST
0000030b: POP
0000030c: PUSH2 0x02aa
0000030f: PUSH2 0x0be3
00000312: JUMP
00000313: JUMPDEST
00000314: CALLVALUE
00000315: DUP1
00000316: ISZERO
00000317: PUSH2 0x031f
0000031a: JUMPI
0000031b: PUSH1 0x00
0000031d: DUP1
0000031e: REVERT
0000031f: JUMPDEST
00000320: POP
00000321: PUSH2 0x0328
00000324: PUSH2 0x0c97
00000327: JUMP
00000328: JUMPDEST
00000329: PUSH1 0x40
0000032b: DUP1
0000032c: MLOAD
0000032d: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000034e: SWAP1
0000034f: SWAP3
00000350: AND
00000351: DUP3
00000352: MSTORE
00000353: MLOAD
00000354: SWAP1
00000355: DUP2
00000356: SWAP1
00000357: SUB
00000358: PUSH1 0x20
0000035a: ADD
0000035b: SWAP1
0000035c: RETURN
0000035d: JUMPDEST
0000035e: CALLVALUE
0000035f: DUP1
00000360: ISZERO
00000361: PUSH2 0x0369
00000364: JUMPI
00000365: PUSH1 0x00
00000367: DUP1
00000368: REVERT
00000369: JUMPDEST
0000036a: POP
0000036b: PUSH2 0x02aa
0000036e: PUSH2 0x0d3a
00000371: JUMP
00000372: JUMPDEST
00000373: CALLVALUE
00000374: DUP1
00000375: ISZERO
00000376: PUSH2 0x037e
00000379: JUMPI
0000037a: PUSH1 0x00
0000037c: DUP1
0000037d: REVERT
0000037e: JUMPDEST
0000037f: POP
00000380: PUSH2 0x01e3
00000383: PUSH2 0x0dad
00000386: JUMP
00000387: JUMPDEST
00000388: CALLVALUE
00000389: DUP1
0000038a: ISZERO
0000038b: PUSH2 0x0393
0000038e: JUMPI
0000038f: PUSH1 0x00
00000391: DUP1
00000392: REVERT
00000393: JUMPDEST
00000394: POP
00000395: PUSH2 0x02aa
00000398: PUSH1 0x04
0000039a: CALLDATALOAD
0000039b: PUSH2 0x0e21
0000039e: JUMP
0000039f: JUMPDEST
000003a0: CALLVALUE
000003a1: DUP1
000003a2: ISZERO
000003a3: PUSH2 0x03ab
000003a6: JUMPI
000003a7: PUSH1 0x00
000003a9: DUP1
000003aa: REVERT
000003ab: JUMPDEST
000003ac: POP
000003ad: PUSH2 0x0217
000003b0: PUSH1 0x01
000003b2: PUSH1 0xa0
000003b4: PUSH1 0x02
000003b6: EXP
000003b7: SUB
000003b8: PUSH1 0x04
000003ba: CALLDATALOAD
000003bb: DUP2
000003bc: AND
000003bd: SWAP1
000003be: PUSH1 0x24
000003c0: CALLDATALOAD
000003c1: DUP2
000003c2: AND
000003c3: SWAP1
000003c4: PUSH1 0x44
000003c6: CALLDATALOAD
000003c7: SWAP1
000003c8: PUSH1 0x64
000003ca: CALLDATALOAD
000003cb: SWAP1
000003cc: PUSH1 0x84
000003ce: CALLDATALOAD
000003cf: SWAP1
000003d0: PUSH1 0xa4
000003d2: CALLDATALOAD
000003d3: SWAP1
000003d4: PUSH1 0xc4
000003d6: CALLDATALOAD
000003d7: SWAP1
000003d8: PUSH1 0xe4
000003da: CALLDATALOAD
000003db: AND
000003dc: PUSH2 0x0104
000003df: CALLDATALOAD
000003e0: PUSH2 0x0e9c
000003e3: JUMP
000003e4: JUMPDEST
000003e5: CALLVALUE
000003e6: DUP1
000003e7: ISZERO
000003e8: PUSH2 0x03f0
000003eb: JUMPI
000003ec: PUSH1 0x00
000003ee: DUP1
000003ef: REVERT
000003f0: JUMPDEST
000003f1: POP
000003f2: PUSH2 0x02aa
000003f5: PUSH2 0x0ebd
000003f8: JUMP
000003f9: JUMPDEST
000003fa: CALLVALUE
000003fb: DUP1
000003fc: ISZERO
000003fd: PUSH2 0x0405
00000400: JUMPI
00000401: PUSH1 0x00
00000403: DUP1
00000404: REVERT
00000405: JUMPDEST
00000406: POP
00000407: PUSH2 0x026f
0000040a: PUSH1 0x01
0000040c: PUSH1 0xa0
0000040e: PUSH1 0x02
00000410: EXP
00000411: SUB
00000412: PUSH1 0x04
00000414: CALLDATALOAD
00000415: DUP2
00000416: AND
00000417: SWAP1
00000418: PUSH1 0x24
0000041a: CALLDATALOAD
0000041b: AND
0000041c: PUSH2 0x0f30
0000041f: JUMP
00000420: JUMPDEST
00000421: CALLVALUE
00000422: DUP1
00000423: ISZERO
00000424: PUSH2 0x042c
00000427: JUMPI
00000428: PUSH1 0x00
0000042a: DUP1
0000042b: REVERT
0000042c: JUMPDEST
0000042d: POP
0000042e: PUSH2 0x02aa
00000431: PUSH2 0x0f7a
00000434: JUMP
00000435: JUMPDEST
00000436: CALLVALUE
00000437: DUP1
00000438: ISZERO
00000439: PUSH2 0x0441
0000043c: JUMPI
0000043d: PUSH1 0x00
0000043f: DUP1
00000440: REVERT
00000441: JUMPDEST
00000442: POP
00000443: PUSH2 0x0217
00000446: PUSH1 0x04
00000448: CALLDATALOAD
00000449: PUSH2 0x0fed
0000044c: JUMP
0000044d: JUMPDEST
0000044e: CALLVALUE
0000044f: DUP1
00000450: ISZERO
00000451: PUSH2 0x0459
00000454: JUMPI
00000455: PUSH1 0x00
00000457: DUP1
00000458: REVERT
00000459: JUMPDEST
0000045a: POP
0000045b: PUSH2 0x02aa
0000045e: PUSH2 0x1037
00000461: JUMP
00000462: JUMPDEST
00000463: CALLVALUE
00000464: DUP1
00000465: ISZERO
00000466: PUSH2 0x046e
00000469: JUMPI
0000046a: PUSH1 0x00
0000046c: DUP1
0000046d: REVERT
0000046e: JUMPDEST
0000046f: POP
00000470: PUSH2 0x02aa
00000473: PUSH2 0x10aa
00000476: JUMP
00000477: JUMPDEST
00000478: CALLVALUE
00000479: DUP1
0000047a: ISZERO
0000047b: PUSH2 0x0483
0000047e: JUMPI
0000047f: PUSH1 0x00
00000481: DUP1
00000482: REVERT
00000483: JUMPDEST
00000484: POP
00000485: PUSH2 0x01e3
00000488: PUSH2 0x1122
0000048b: JUMP
0000048c: JUMPDEST
0000048d: CALLVALUE
0000048e: DUP1
0000048f: ISZERO
00000490: PUSH2 0x0498
00000493: JUMPI
00000494: PUSH1 0x00
00000496: DUP1
00000497: REVERT
00000498: JUMPDEST
00000499: POP
0000049a: PUSH2 0x01e3
0000049d: PUSH2 0x1196
000004a0: JUMP
000004a1: JUMPDEST
000004a2: CALLVALUE
000004a3: DUP1
000004a4: ISZERO
000004a5: PUSH2 0x04ad
000004a8: JUMPI
000004a9: PUSH1 0x00
000004ab: DUP1
000004ac: REVERT
000004ad: JUMPDEST
000004ae: POP
000004af: PUSH2 0x0217
000004b2: PUSH1 0x01
000004b4: PUSH1 0xa0
000004b6: PUSH1 0x02
000004b8: EXP
000004b9: SUB
000004ba: PUSH1 0x04
000004bc: CALLDATALOAD
000004bd: DUP2
000004be: AND
000004bf: SWAP1
000004c0: PUSH1 0x24
000004c2: CALLDATALOAD
000004c3: DUP2
000004c4: AND
000004c5: SWAP1
000004c6: PUSH1 0x44
000004c8: CALLDATALOAD
000004c9: SWAP1
000004ca: PUSH1 0x64
000004cc: CALLDATALOAD
000004cd: SWAP1
000004ce: PUSH1 0x84
000004d0: CALLDATALOAD
000004d1: SWAP1
000004d2: PUSH1 0xa4
000004d4: CALLDATALOAD
000004d5: SWAP1
000004d6: PUSH1 0xc4
000004d8: CALLDATALOAD
000004d9: SWAP1
000004da: PUSH1 0xe4
000004dc: CALLDATALOAD
000004dd: DUP2
000004de: AND
000004df: SWAP1
000004e0: PUSH2 0x0104
000004e3: CALLDATALOAD
000004e4: SWAP1
000004e5: PUSH2 0x0124
000004e8: CALLDATALOAD
000004e9: AND
000004ea: PUSH2 0x120a
000004ed: JUMP
000004ee: JUMPDEST
000004ef: CALLVALUE
000004f0: DUP1
000004f1: ISZERO
000004f2: PUSH2 0x04fa
000004f5: JUMPI
000004f6: PUSH1 0x00
000004f8: DUP1
000004f9: REVERT
000004fa: JUMPDEST
000004fb: POP
000004fc: PUSH2 0x02aa
000004ff: PUSH2 0x1235
00000502: JUMP
00000503: JUMPDEST
00000504: CALLVALUE
00000505: DUP1
00000506: ISZERO
00000507: PUSH2 0x050f
0000050a: JUMPI
0000050b: PUSH1 0x00
0000050d: DUP1
0000050e: REVERT
0000050f: JUMPDEST
00000510: POP
00000511: PUSH2 0x0518
00000514: PUSH2 0x12a8
00000517: JUMP
00000518: JUMPDEST
00000519: PUSH1 0x40
0000051b: DUP1
0000051c: MLOAD
0000051d: PUSH8 0xffffffffffffffff
00000526: SWAP5
00000527: DUP6
00000528: AND
00000529: DUP2
0000052a: MSTORE
0000052b: SWAP3
0000052c: DUP5
0000052d: AND
0000052e: PUSH1 0x20
00000530: DUP5
00000531: ADD
00000532: MSTORE
00000533: SWAP3
00000534: AND
00000535: DUP2
00000536: DUP4
00000537: ADD
00000538: MSTORE
00000539: SWAP1
0000053a: MLOAD
0000053b: SWAP1
0000053c: DUP2
0000053d: SWAP1
0000053e: SUB
0000053f: PUSH1 0x60
00000541: ADD
00000542: SWAP1
00000543: RETURN
00000544: JUMPDEST
00000545: CALLVALUE
00000546: DUP1
00000547: ISZERO
00000548: PUSH2 0x0550
0000054b: JUMPI
0000054c: PUSH1 0x00
0000054e: DUP1
0000054f: REVERT
00000550: JUMPDEST
00000551: POP
00000552: PUSH2 0x026f
00000555: PUSH1 0x04
00000557: CALLDATALOAD
00000558: PUSH2 0x12b2
0000055b: JUMP
0000055c: JUMPDEST
0000055d: CALLVALUE
0000055e: DUP1
0000055f: ISZERO
00000560: PUSH2 0x0568
00000563: JUMPI
00000564: PUSH1 0x00
00000566: DUP1
00000567: REVERT
00000568: JUMPDEST
00000569: POP
0000056a: PUSH2 0x026f
0000056d: PUSH1 0x04
0000056f: CALLDATALOAD
00000570: PUSH2 0x13a9
00000573: JUMP
00000574: JUMPDEST
00000575: CALLVALUE
00000576: DUP1
00000577: ISZERO
00000578: PUSH2 0x0580
0000057b: JUMPI
0000057c: PUSH1 0x00
0000057e: DUP1
0000057f: REVERT
00000580: JUMPDEST
00000581: POP
00000582: PUSH2 0x026f
00000585: PUSH1 0x04
00000587: CALLDATALOAD
00000588: PUSH2 0x14b8
0000058b: JUMP
0000058c: JUMPDEST
0000058d: CALLVALUE
0000058e: DUP1
0000058f: ISZERO
00000590: PUSH2 0x0598
00000593: JUMPI
00000594: PUSH1 0x00
00000596: DUP1
00000597: REVERT
00000598: JUMPDEST
00000599: POP
0000059a: PUSH2 0x026f
0000059d: PUSH1 0x04
0000059f: CALLDATALOAD
000005a0: PUSH2 0x15ba
000005a3: JUMP
000005a4: JUMPDEST
000005a5: CALLVALUE
000005a6: DUP1
000005a7: ISZERO
000005a8: PUSH2 0x05b0
000005ab: JUMPI
000005ac: PUSH1 0x00
000005ae: DUP1
000005af: REVERT
000005b0: JUMPDEST
000005b1: POP
000005b2: PUSH2 0x02aa
000005b5: PUSH1 0x04
000005b7: CALLDATALOAD
000005b8: PUSH2 0x16c9
000005bb: JUMP
000005bc: JUMPDEST
000005bd: CALLVALUE
000005be: DUP1
000005bf: ISZERO
000005c0: PUSH2 0x05c8
000005c3: JUMPI
000005c4: PUSH1 0x00
000005c6: DUP1
000005c7: REVERT
000005c8: JUMPDEST
000005c9: POP
000005ca: PUSH2 0x026f
000005cd: PUSH1 0x04
000005cf: CALLDATALOAD
000005d0: PUSH2 0x1706
000005d3: JUMP
000005d4: JUMPDEST
000005d5: CALLVALUE
000005d6: DUP1
000005d7: ISZERO
000005d8: PUSH2 0x05e0
000005db: JUMPI
000005dc: PUSH1 0x00
000005de: DUP1
000005df: REVERT
000005e0: JUMPDEST
000005e1: POP
000005e2: PUSH2 0x01e3
000005e5: PUSH2 0x17a7
000005e8: JUMP
000005e9: JUMPDEST
000005ea: CALLVALUE
000005eb: DUP1
000005ec: ISZERO
000005ed: PUSH2 0x05f5
000005f0: JUMPI
000005f1: PUSH1 0x00
000005f3: DUP1
000005f4: REVERT
000005f5: JUMPDEST
000005f6: POP
000005f7: PUSH2 0x02aa
000005fa: PUSH2 0x17e7
000005fd: JUMP
000005fe: JUMPDEST
000005ff: CALLVALUE
00000600: DUP1
00000601: ISZERO
00000602: PUSH2 0x060a
00000605: JUMPI
00000606: PUSH1 0x00
00000608: DUP1
00000609: REVERT
0000060a: JUMPDEST
0000060b: POP
0000060c: PUSH2 0x0217
0000060f: PUSH1 0x04
00000611: CALLDATALOAD
00000612: PUSH2 0x185a
00000615: JUMP
00000616: JUMPDEST
00000617: CALLVALUE
00000618: DUP1
00000619: ISZERO
0000061a: PUSH2 0x0622
0000061d: JUMPI
0000061e: PUSH1 0x00
00000620: DUP1
00000621: REVERT
00000622: JUMPDEST
00000623: POP
00000624: PUSH2 0x026f
00000627: PUSH1 0x04
00000629: CALLDATALOAD
0000062a: PUSH2 0x18aa
0000062d: JUMP
0000062e: JUMPDEST
0000062f: CALLVALUE
00000630: DUP1
00000631: ISZERO
00000632: PUSH2 0x063a
00000635: JUMPI
00000636: PUSH1 0x00
00000638: DUP1
00000639: REVERT
0000063a: JUMPDEST
0000063b: POP
0000063c: PUSH2 0x026f
0000063f: PUSH1 0x01
00000641: PUSH1 0xa0
00000643: PUSH1 0x02
00000645: EXP
00000646: SUB
00000647: PUSH1 0x04
00000649: CALLDATALOAD
0000064a: AND
0000064b: PUSH2 0x194b
0000064e: JUMP
0000064f: JUMPDEST
00000650: CALLVALUE
00000651: DUP1
00000652: ISZERO
00000653: PUSH2 0x065b
00000656: JUMPI
00000657: PUSH1 0x00
00000659: DUP1
0000065a: REVERT
0000065b: JUMPDEST
0000065c: POP
0000065d: PUSH2 0x02aa
00000660: PUSH2 0x1985
00000663: JUMP
00000664: JUMPDEST
00000665: CALLVALUE
00000666: DUP1
00000667: ISZERO
00000668: PUSH2 0x0670
0000066b: JUMPI
0000066c: PUSH1 0x00
0000066e: DUP1
0000066f: REVERT
00000670: JUMPDEST
00000671: POP
00000672: PUSH2 0x02aa
00000675: PUSH2 0x19f8
00000678: JUMP
00000679: JUMPDEST
0000067a: PUSH1 0x00
0000067c: PUSH1 0x02
0000067e: PUSH1 0x00
00000680: PUSH1 0x40
00000682: MLOAD
00000683: PUSH1 0x20
00000685: ADD
00000686: DUP1
00000687: DUP1
00000688: PUSH32 0x6572633230746f6b656e00000000000000000000000000000000000000000000
000006a9: DUP2
000006aa: MSTORE
000006ab: POP
000006ac: PUSH1 0x0a
000006ae: ADD
000006af: SWAP1
000006b0: POP
000006b1: PUSH1 0x40
000006b3: MLOAD
000006b4: PUSH1 0x20
000006b6: DUP2
000006b7: DUP4
000006b8: SUB
000006b9: SUB
000006ba: DUP2
000006bb: MSTORE
000006bc: SWAP1
000006bd: PUSH1 0x40
000006bf: MSTORE
000006c0: PUSH1 0x40
000006c2: MLOAD
000006c3: DUP1
000006c4: DUP3
000006c5: DUP1
000006c6: MLOAD
000006c7: SWAP1
000006c8: PUSH1 0x20
000006ca: ADD
000006cb: SWAP1
000006cc: DUP1
000006cd: DUP4
000006ce: DUP4
000006cf: JUMPDEST
000006d0: PUSH1 0x20
000006d2: DUP4
000006d3: LT
000006d4: PUSH2 0x06ee
000006d7: JUMPI
000006d8: DUP1
000006d9: MLOAD
000006da: DUP3
000006db: MSTORE
000006dc: PUSH1 0x1f
000006de: NOT
000006df: SWAP1
000006e0: SWAP3
000006e1: ADD
000006e2: SWAP2
000006e3: PUSH1 0x20
000006e5: SWAP2
000006e6: DUP3
000006e7: ADD
000006e8: SWAP2
000006e9: ADD
000006ea: PUSH2 0x06cf
000006ed: JUMP
000006ee: JUMPDEST
000006ef: MLOAD
000006f0: DUP2
000006f1: MLOAD
000006f2: PUSH1 0x20
000006f4: SWAP4
000006f5: DUP5
000006f6: SUB
000006f7: PUSH2 0x0100
000006fa: EXP
000006fb: PUSH1 0x00
000006fd: NOT
000006fe: ADD
000006ff: DUP1
00000700: NOT
00000701: SWAP1
00000702: SWAP3
00000703: AND
00000704: SWAP2
00000705: AND
00000706: OR
00000707: SWAP1
00000708: MSTORE
00000709: PUSH1 0x40
0000070b: DUP1
0000070c: MLOAD
0000070d: SWAP3
0000070e: SWAP1
0000070f: SWAP5
00000710: ADD
00000711: DUP3
00000712: SWAP1
00000713: SUB
00000714: SWAP1
00000715: SWAP2
00000716: KECCAK256
00000717: DUP7
00000718: MSTORE
00000719: DUP6
0000071a: ADD
0000071b: SWAP6
0000071c: SWAP1
0000071d: SWAP6
0000071e: MSTORE
0000071f: SWAP3
00000720: SWAP1
00000721: SWAP3
00000722: ADD
00000723: PUSH1 0x00
00000725: KECCAK256
00000726: SLOAD
00000727: PUSH1 0x01
00000729: PUSH1 0xa0
0000072b: PUSH1 0x02
0000072d: EXP
0000072e: SUB
0000072f: AND
00000730: SWAP5
00000731: SWAP4
00000732: POP
00000733: POP
00000734: POP
00000735: POP
00000736: JUMP
00000737: JUMPDEST
00000738: PUSH1 0x00
0000073a: PUSH1 0x04
0000073c: PUSH1 0x00
0000073e: DUP4
0000073f: PUSH1 0x40
00000741: MLOAD
00000742: PUSH1 0x20
00000744: ADD
00000745: DUP1
00000746: DUP1
00000747: PUSH32 0x72656c617965644d657373616765730000000000000000000000000000000000
00000768: DUP2
00000769: MSTORE
0000076a: POP
0000076b: PUSH1 0x0f
0000076d: ADD
0000076e: DUP3
0000076f: PUSH1 0x00
00000771: NOT
00000772: AND
00000773: PUSH1 0x00
00000775: NOT
00000776: AND
00000777: DUP2
00000778: MSTORE
00000779: PUSH1 0x20
0000077b: ADD
0000077c: SWAP2
0000077d: POP
0000077e: POP
0000077f: PUSH1 0x40
00000781: MLOAD
00000782: PUSH1 0x20
00000784: DUP2
00000785: DUP4
00000786: SUB
00000787: SUB
00000788: DUP2
00000789: MSTORE
0000078a: SWAP1
0000078b: PUSH1 0x40
0000078d: MSTORE
0000078e: PUSH1 0x40
00000790: MLOAD
00000791: DUP1
00000792: DUP3
00000793: DUP1
00000794: MLOAD
00000795: SWAP1
00000796: PUSH1 0x20
00000798: ADD
00000799: SWAP1
0000079a: DUP1
0000079b: DUP4
0000079c: DUP4
0000079d: JUMPDEST
0000079e: PUSH1 0x20
000007a0: DUP4
000007a1: LT
000007a2: PUSH2 0x07bc
000007a5: JUMPI
000007a6: DUP1
000007a7: MLOAD
000007a8: DUP3
000007a9: MSTORE
000007aa: PUSH1 0x1f
000007ac: NOT
000007ad: SWAP1
000007ae: SWAP3
000007af: ADD
000007b0: SWAP2
000007b1: PUSH1 0x20
000007b3: SWAP2
000007b4: DUP3
000007b5: ADD
000007b6: SWAP2
000007b7: ADD
000007b8: PUSH2 0x079d
000007bb: JUMP
000007bc: JUMPDEST
000007bd: MLOAD
000007be: DUP2
000007bf: MLOAD
000007c0: PUSH1 0x20
000007c2: SWAP4
000007c3: DUP5
000007c4: SUB
000007c5: PUSH2 0x0100
000007c8: EXP
000007c9: PUSH1 0x00
000007cb: NOT
000007cc: ADD
000007cd: DUP1
000007ce: NOT
000007cf: SWAP1
000007d0: SWAP3
000007d1: AND
000007d2: SWAP2
000007d3: AND
000007d4: OR
000007d5: SWAP1
000007d6: MSTORE
000007d7: PUSH1 0x40
000007d9: DUP1
000007da: MLOAD
000007db: SWAP3
000007dc: SWAP1
000007dd: SWAP5
000007de: ADD
000007df: DUP3
000007e0: SWAP1
000007e1: SUB
000007e2: SWAP1
000007e3: SWAP2
000007e4: KECCAK256
000007e5: DUP7
000007e6: MSTORE
000007e7: DUP6
000007e8: ADD
000007e9: SWAP6
000007ea: SWAP1
000007eb: SWAP6
000007ec: MSTORE
000007ed: SWAP3
000007ee: SWAP1
000007ef: SWAP3
000007f0: ADD
000007f1: PUSH1 0x00
000007f3: KECCAK256
000007f4: SLOAD
000007f5: PUSH1 0xff
000007f7: AND
000007f8: SWAP6
000007f9: SWAP5
000007fa: POP
000007fb: POP
000007fc: POP
000007fd: POP
000007fe: POP
000007ff: JUMP
00000800: JUMPDEST
00000801: PUSH1 0x00
00000803: DUP1
00000804: PUSH1 0x00
00000806: DUP1
00000807: PUSH2 0x08d8
0000080a: DUP7
0000080b: DUP7
0000080c: DUP1
0000080d: DUP1
0000080e: PUSH1 0x1f
00000810: ADD
00000811: PUSH1 0x20
00000813: DUP1
00000814: SWAP2
00000815: DIV
00000816: MUL
00000817: PUSH1 0x20
00000819: ADD
0000081a: PUSH1 0x40
0000081c: MLOAD
0000081d: SWAP1
0000081e: DUP2
0000081f: ADD
00000820: PUSH1 0x40
00000822: MSTORE
00000823: DUP1
00000824: SWAP4
00000825: SWAP3
00000826: SWAP2
00000827: SWAP1
00000828: DUP2
00000829: DUP2
0000082a: MSTORE
0000082b: PUSH1 0x20
0000082d: ADD
0000082e: DUP4
0000082f: DUP4
00000830: DUP1
00000831: DUP3
00000832: DUP5
00000833: CALLDATACOPY
00000834: DUP3
00000835: ADD
00000836: SWAP2
00000837: POP
00000838: POP
00000839: POP
0000083a: POP
0000083b: POP
0000083c: POP
0000083d: DUP14
0000083e: DUP14
0000083f: DUP1
00000840: DUP1
00000841: PUSH1 0x20
00000843: MUL
00000844: PUSH1 0x20
00000846: ADD
00000847: PUSH1 0x40
00000849: MLOAD
0000084a: SWAP1
0000084b: DUP2
0000084c: ADD
0000084d: PUSH1 0x40
0000084f: MSTORE
00000850: DUP1
00000851: SWAP4
00000852: SWAP3
00000853: SWAP2
00000854: SWAP1
00000855: DUP2
00000856: DUP2
00000857: MSTORE
00000858: PUSH1 0x20
0000085a: ADD
0000085b: DUP4
0000085c: DUP4
0000085d: PUSH1 0x20
0000085f: MUL
00000860: DUP1
00000861: DUP3
00000862: DUP5
00000863: CALLDATACOPY
00000864: DUP3
00000865: ADD
00000866: SWAP2
00000867: POP
00000868: POP
00000869: POP
0000086a: POP
0000086b: POP
0000086c: POP
0000086d: DUP13
0000086e: DUP13
0000086f: DUP1
00000870: DUP1
00000871: PUSH1 0x20
00000873: MUL
00000874: PUSH1 0x20
00000876: ADD
00000877: PUSH1 0x40
00000879: MLOAD
0000087a: SWAP1
0000087b: DUP2
0000087c: ADD
0000087d: PUSH1 0x40
0000087f: MSTORE
00000880: DUP1
00000881: SWAP4
00000882: SWAP3
00000883: SWAP2
00000884: SWAP1
00000885: DUP2
00000886: DUP2
00000887: MSTORE
00000888: PUSH1 0x20
0000088a: ADD
0000088b: DUP4
0000088c: DUP4
0000088d: PUSH1 0x20
0000088f: MUL
00000890: DUP1
00000891: DUP3
00000892: DUP5
00000893: CALLDATACOPY
00000894: DUP3
00000895: ADD
00000896: SWAP2
00000897: POP
00000898: POP
00000899: POP
0000089a: POP
0000089b: POP
0000089c: POP
0000089d: DUP12
0000089e: DUP12
0000089f: DUP1
000008a0: DUP1
000008a1: PUSH1 0x20
000008a3: MUL
000008a4: PUSH1 0x20
000008a6: ADD
000008a7: PUSH1 0x40
000008a9: MLOAD
000008aa: SWAP1
000008ab: DUP2
000008ac: ADD
000008ad: PUSH1 0x40
000008af: MSTORE
000008b0: DUP1
000008b1: SWAP4
000008b2: SWAP3
000008b3: SWAP2
000008b4: SWAP1
000008b5: DUP2
000008b6: DUP2
000008b7: MSTORE
000008b8: PUSH1 0x20
000008ba: ADD
000008bb: DUP4
000008bc: DUP4
000008bd: PUSH1 0x20
000008bf: MUL
000008c0: DUP1
000008c1: DUP3
000008c2: DUP5
000008c3: CALLDATACOPY
000008c4: POP
000008c5: PUSH2 0x08d3
000008c8: SWAP5
000008c9: POP
000008ca: PUSH2 0x1196
000008cd: SWAP4
000008ce: POP
000008cf: POP
000008d0: POP
000008d1: POP
000008d2: JUMP
000008d3: JUMPDEST
000008d4: PUSH2 0x1a6b
000008d7: JUMP
000008d8: JUMPDEST
000008d9: PUSH2 0x0911
000008dc: DUP7
000008dd: DUP7
000008de: DUP1
000008df: DUP1
000008e0: PUSH1 0x1f
000008e2: ADD
000008e3: PUSH1 0x20
000008e5: DUP1
000008e6: SWAP2
000008e7: DIV
000008e8: MUL
000008e9: PUSH1 0x20
000008eb: ADD
000008ec: PUSH1 0x40
000008ee: MLOAD
000008ef: SWAP1
000008f0: DUP2
000008f1: ADD
000008f2: PUSH1 0x40
000008f4: MSTORE
000008f5: DUP1
000008f6: SWAP4
000008f7: SWAP3
000008f8: SWAP2
000008f9: SWAP1
000008fa: DUP2
000008fb: DUP2
000008fc: MSTORE
000008fd: PUSH1 0x20
000008ff: ADD
00000900: DUP4
00000901: DUP4
00000902: DUP1
00000903: DUP3
00000904: DUP5
00000905: CALLDATACOPY
00000906: POP
00000907: PUSH2 0x1cd8
0000090a: SWAP5
0000090b: POP
0000090c: POP
0000090d: POP
0000090e: POP
0000090f: POP
00000910: JUMP
00000911: JUMPDEST
00000912: SWAP3
00000913: SWAP7
00000914: POP
00000915: SWAP1
00000916: SWAP5
00000917: POP
00000918: SWAP3
00000919: POP
0000091a: SWAP1
0000091b: POP
0000091c: PUSH1 0x01
0000091e: PUSH1 0xa0
00000920: PUSH1 0x02
00000922: EXP
00000923: SUB
00000924: DUP2
00000925: AND
00000926: ADDRESS
00000927: EQ
00000928: PUSH2 0x0930
0000092b: JUMPI
0000092c: PUSH1 0x00
0000092e: DUP1
0000092f: REVERT
00000930: JUMPDEST
00000931: PUSH2 0x0939
00000934: DUP3
00000935: PUSH2 0x0737
00000938: JUMP
00000939: JUMPDEST
0000093a: ISZERO
0000093b: PUSH2 0x0943
0000093e: JUMPI
0000093f: PUSH1 0x00
00000941: DUP1
00000942: REVERT
00000943: JUMPDEST
00000944: PUSH2 0x094e
00000947: DUP3
00000948: PUSH1 0x01
0000094a: PUSH2 0x1d1e
0000094d: JUMP
0000094e: JUMPDEST
0000094f: PUSH2 0x0958
00000952: DUP5
00000953: DUP5
00000954: PUSH2 0x1df0
00000957: JUMP
00000958: JUMPDEST
00000959: ISZERO
0000095a: ISZERO
0000095b: PUSH2 0x0963
0000095e: JUMPI
0000095f: PUSH1 0x00
00000961: DUP1
00000962: REVERT
00000963: JUMPDEST
00000964: PUSH1 0x40
00000966: DUP1
00000967: MLOAD
00000968: PUSH1 0x01
0000096a: PUSH1 0xa0
0000096c: PUSH1 0x02
0000096e: EXP
0000096f: SUB
00000970: DUP7
00000971: AND
00000972: DUP2
00000973: MSTORE
00000974: PUSH1 0x20
00000976: DUP2
00000977: ADD
00000978: DUP6
00000979: SWAP1
0000097a: MSTORE
0000097b: DUP1
0000097c: DUP3
0000097d: ADD
0000097e: DUP5
0000097f: SWAP1
00000980: MSTORE
00000981: SWAP1
00000982: MLOAD
00000983: PUSH32 0x4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf329
000009a4: SWAP2
000009a5: DUP2
000009a6: SWAP1
000009a7: SUB
000009a8: PUSH1 0x60
000009aa: ADD
000009ab: SWAP1
000009ac: LOG1
000009ad: POP
000009ae: POP
000009af: POP
000009b0: POP
000009b1: POP
000009b2: POP
000009b3: POP
000009b4: POP
000009b5: POP
000009b6: POP
000009b7: POP
000009b8: POP
000009b9: JUMP
000009ba: JUMPDEST
000009bb: PUSH2 0x09c2
000009be: PUSH2 0x1122
000009c1: JUMP
000009c2: JUMPDEST
000009c3: PUSH1 0x01
000009c5: PUSH1 0xa0
000009c7: PUSH1 0x02
000009c9: EXP
000009ca: SUB
000009cb: AND
000009cc: CALLER
000009cd: EQ
000009ce: PUSH2 0x09d6
000009d1: JUMPI
000009d2: PUSH1 0x00
000009d4: DUP1
000009d5: REVERT
000009d6: JUMPDEST
000009d7: PUSH2 0x09df
000009da: DUP2
000009db: PUSH2 0x1f0a
000009de: JUMP
000009df: JUMPDEST
000009e0: POP
000009e1: JUMP
000009e2: JUMPDEST
000009e3: PUSH1 0x00
000009e5: DUP1
000009e6: PUSH1 0x00
000009e8: DUP4
000009e9: PUSH1 0x40
000009eb: MLOAD
000009ec: PUSH1 0x20
000009ee: ADD
000009ef: DUP1
000009f0: DUP1
000009f1: PUSH32 0x746f74616c5370656e7450657244617900000000000000000000000000000000
00000a12: DUP2
00000a13: MSTORE
00000a14: POP
00000a15: PUSH1 0x10
00000a17: ADD
00000a18: DUP3
00000a19: DUP2
00000a1a: MSTORE
00000a1b: PUSH1 0x20
00000a1d: ADD
00000a1e: SWAP2
00000a1f: POP
00000a20: POP
00000a21: PUSH1 0x40
00000a23: MLOAD
00000a24: PUSH1 0x20
00000a26: DUP2
00000a27: DUP4
00000a28: SUB
00000a29: SUB
00000a2a: DUP2
00000a2b: MSTORE
00000a2c: SWAP1
00000a2d: PUSH1 0x40
00000a2f: MSTORE
00000a30: PUSH1 0x40
00000a32: MLOAD
00000a33: DUP1
00000a34: DUP3
00000a35: DUP1
00000a36: MLOAD
00000a37: SWAP1
00000a38: PUSH1 0x20
00000a3a: ADD
00000a3b: SWAP1
00000a3c: DUP1
00000a3d: DUP4
00000a3e: DUP4
00000a3f: JUMPDEST
00000a40: PUSH1 0x20
00000a42: DUP4
00000a43: LT
00000a44: PUSH2 0x0a5e
00000a47: JUMPI
00000a48: DUP1
00000a49: MLOAD
00000a4a: DUP3
00000a4b: MSTORE
00000a4c: PUSH1 0x1f
00000a4e: NOT
00000a4f: SWAP1
00000a50: SWAP3
00000a51: ADD
00000a52: SWAP2
00000a53: PUSH1 0x20
00000a55: SWAP2
00000a56: DUP3
00000a57: ADD
00000a58: SWAP2
00000a59: ADD
00000a5a: PUSH2 0x0a3f
00000a5d: JUMP
00000a5e: JUMPDEST
00000a5f: MLOAD
00000a60: DUP2
00000a61: MLOAD
00000a62: PUSH1 0x20
00000a64: SWAP4
00000a65: DUP5
00000a66: SUB
00000a67: PUSH2 0x0100
00000a6a: EXP
00000a6b: PUSH1 0x00
00000a6d: NOT
00000a6e: ADD
00000a6f: DUP1
00000a70: NOT
00000a71: SWAP1
00000a72: SWAP3
00000a73: AND
00000a74: SWAP2
00000a75: AND
00000a76: OR
00000a77: SWAP1
00000a78: MSTORE
00000a79: PUSH1 0x40
00000a7b: DUP1
00000a7c: MLOAD
00000a7d: SWAP3
00000a7e: SWAP1
00000a7f: SWAP5
00000a80: ADD
00000a81: DUP3
00000a82: SWAP1
00000a83: SUB
00000a84: SWAP1
00000a85: SWAP2
00000a86: KECCAK256
00000a87: DUP7
00000a88: MSTORE
00000a89: DUP6
00000a8a: ADD
00000a8b: SWAP6
00000a8c: SWAP1
00000a8d: SWAP6
00000a8e: MSTORE
00000a8f: SWAP3
00000a90: SWAP1
00000a91: SWAP3
00000a92: ADD
00000a93: PUSH1 0x00
00000a95: KECCAK256
00000a96: SLOAD
00000a97: SWAP6
00000a98: SWAP5
00000a99: POP
00000a9a: POP
00000a9b: POP
00000a9c: POP
00000a9d: POP
00000a9e: JUMP
00000a9f: JUMPDEST
00000aa0: PUSH1 0x00
00000aa2: PUSH1 0x04
00000aa4: PUSH1 0x00
00000aa6: PUSH1 0x40
00000aa8: MLOAD
00000aa9: PUSH1 0x20
00000aab: ADD
00000aac: DUP1
00000aad: DUP1
00000aae: PUSH32 0x6973496e697469616c697a656400000000000000000000000000000000000000
00000acf: DUP2
00000ad0: MSTORE
00000ad1: POP
00000ad2: PUSH1 0x0d
00000ad4: ADD
00000ad5: SWAP1
00000ad6: POP
00000ad7: PUSH1 0x40
00000ad9: MLOAD
00000ada: PUSH1 0x20
00000adc: DUP2
00000add: DUP4
00000ade: SUB
00000adf: SUB
00000ae0: DUP2
00000ae1: MSTORE
00000ae2: SWAP1
00000ae3: PUSH1 0x40
00000ae5: MSTORE
00000ae6: PUSH1 0x40
00000ae8: MLOAD
00000ae9: DUP1
00000aea: DUP3
00000aeb: DUP1
00000aec: MLOAD
00000aed: SWAP1
00000aee: PUSH1 0x20
00000af0: ADD
00000af1: SWAP1
00000af2: DUP1
00000af3: DUP4
00000af4: DUP4
00000af5: JUMPDEST
00000af6: PUSH1 0x20
00000af8: DUP4
00000af9: LT
00000afa: PUSH2 0x0b14
00000afd: JUMPI
00000afe: DUP1
00000aff: MLOAD
00000b00: DUP3
00000b01: MSTORE
00000b02: PUSH1 0x1f
00000b04: NOT
00000b05: SWAP1
00000b06: SWAP3
00000b07: ADD
00000b08: SWAP2
00000b09: PUSH1 0x20
00000b0b: SWAP2
00000b0c: DUP3
00000b0d: ADD
00000b0e: SWAP2
00000b0f: ADD
00000b10: PUSH2 0x0af5
00000b13: JUMP
00000b14: JUMPDEST
00000b15: MLOAD
00000b16: DUP2
00000b17: MLOAD
00000b18: PUSH1 0x20
00000b1a: SWAP4
00000b1b: DUP5
00000b1c: SUB
00000b1d: PUSH2 0x0100
00000b20: EXP
00000b21: PUSH1 0x00
00000b23: NOT
00000b24: ADD
00000b25: DUP1
00000b26: NOT
00000b27: SWAP1
00000b28: SWAP3
00000b29: AND
00000b2a: SWAP2
00000b2b: AND
00000b2c: OR
00000b2d: SWAP1
00000b2e: MSTORE
00000b2f: PUSH1 0x40
00000b31: DUP1
00000b32: MLOAD
00000b33: SWAP3
00000b34: SWAP1
00000b35: SWAP5
00000b36: ADD
00000b37: DUP3
00000b38: SWAP1
00000b39: SUB
00000b3a: SWAP1
00000b3b: SWAP2
00000b3c: KECCAK256
00000b3d: DUP7
00000b3e: MSTORE
00000b3f: DUP6
00000b40: ADD
00000b41: SWAP6
00000b42: SWAP1
00000b43: SWAP6
00000b44: MSTORE
00000b45: SWAP3
00000b46: SWAP1
00000b47: SWAP3
00000b48: ADD
00000b49: PUSH1 0x00
00000b4b: KECCAK256
00000b4c: SLOAD
00000b4d: PUSH1 0xff
00000b4f: AND
00000b50: SWAP5
00000b51: SWAP4
00000b52: POP
00000b53: POP
00000b54: POP
00000b55: POP
00000b56: JUMP
00000b57: JUMPDEST
00000b58: PUSH2 0x0b5f
00000b5b: PUSH2 0x1122
00000b5e: JUMP
00000b5f: JUMPDEST
00000b60: PUSH1 0x01
00000b62: PUSH1 0xa0
00000b64: PUSH1 0x02
00000b66: EXP
00000b67: SUB
00000b68: AND
00000b69: CALLER
00000b6a: EQ
00000b6b: PUSH2 0x0b73
00000b6e: JUMPI
00000b6f: PUSH1 0x00
00000b71: DUP1
00000b72: REVERT
00000b73: JUMPDEST
00000b74: PUSH1 0x40
00000b76: DUP1
00000b77: MLOAD
00000b78: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000b99: DUP2
00000b9a: MSTORE
00000b9b: PUSH1 0x20
00000b9d: PUSH1 0x04
00000b9f: DUP3
00000ba0: ADD
00000ba1: MSTORE
00000ba2: PUSH1 0x0a
00000ba4: PUSH1 0x24
00000ba6: DUP3
00000ba7: ADD
00000ba8: MSTORE
00000ba9: PUSH32 0x6465707265636174656400000000000000000000000000000000000000000000
00000bca: PUSH1 0x44
00000bcc: DUP3
00000bcd: ADD
00000bce: MSTORE
00000bcf: SWAP1
00000bd0: MLOAD
00000bd1: SWAP1
00000bd2: DUP2
00000bd3: SWAP1
00000bd4: SUB
00000bd5: PUSH1 0x64
00000bd7: ADD
00000bd8: SWAP1
00000bd9: REVERT
00000bda: JUMPDEST
00000bdb: PUSH3 0x015180
00000bdf: TIMESTAMP
00000be0: DIV
00000be1: SWAP1
00000be2: JUMP
00000be3: JUMPDEST
00000be4: PUSH1 0x00
00000be6: DUP1
00000be7: PUSH1 0x00
00000be9: PUSH1 0x40
00000beb: MLOAD
00000bec: PUSH1 0x20
00000bee: ADD
00000bef: DUP1
00000bf0: DUP1
00000bf1: PUSH32 0x7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000
00000c12: DUP2
00000c13: MSTORE
00000c14: POP
00000c15: PUSH1 0x1a
00000c17: ADD
00000c18: SWAP1
00000c19: POP
00000c1a: PUSH1 0x40
00000c1c: MLOAD
00000c1d: PUSH1 0x20
00000c1f: DUP2
00000c20: DUP4
00000c21: SUB
00000c22: SUB
00000c23: DUP2
00000c24: MSTORE
00000c25: SWAP1
00000c26: PUSH1 0x40
00000c28: MSTORE
00000c29: PUSH1 0x40
00000c2b: MLOAD
00000c2c: DUP1
00000c2d: DUP3
00000c2e: DUP1
00000c2f: MLOAD
00000c30: SWAP1
00000c31: PUSH1 0x20
00000c33: ADD
00000c34: SWAP1
00000c35: DUP1
00000c36: DUP4
00000c37: DUP4
00000c38: JUMPDEST
00000c39: PUSH1 0x20
00000c3b: DUP4
00000c3c: LT
00000c3d: PUSH2 0x0c57
00000c40: JUMPI
00000c41: DUP1
00000c42: MLOAD
00000c43: DUP3
00000c44: MSTORE
00000c45: PUSH1 0x1f
00000c47: NOT
00000c48: SWAP1
00000c49: SWAP3
00000c4a: ADD
00000c4b: SWAP2
00000c4c: PUSH1 0x20
00000c4e: SWAP2
00000c4f: DUP3
00000c50: ADD
00000c51: SWAP2
00000c52: ADD
00000c53: PUSH2 0x0c38
00000c56: JUMP
00000c57: JUMPDEST
00000c58: MLOAD
00000c59: DUP2
00000c5a: MLOAD
00000c5b: PUSH1 0x20
00000c5d: SWAP4
00000c5e: DUP5
00000c5f: SUB
00000c60: PUSH2 0x0100
00000c63: EXP
00000c64: PUSH1 0x00
00000c66: NOT
00000c67: ADD
00000c68: DUP1
00000c69: NOT
00000c6a: SWAP1
00000c6b: SWAP3
00000c6c: AND
00000c6d: SWAP2
00000c6e: AND
00000c6f: OR
00000c70: SWAP1
00000c71: MSTORE
00000c72: PUSH1 0x40
00000c74: DUP1
00000c75: MLOAD
00000c76: SWAP3
00000c77: SWAP1
00000c78: SWAP5
00000c79: ADD
00000c7a: DUP3
00000c7b: SWAP1
00000c7c: SUB
00000c7d: SWAP1
00000c7e: SWAP2
00000c7f: KECCAK256
00000c80: DUP7
00000c81: MSTORE
00000c82: DUP6
00000c83: ADD
00000c84: SWAP6
00000c85: SWAP1
00000c86: SWAP6
00000c87: MSTORE
00000c88: SWAP3
00000c89: SWAP1
00000c8a: SWAP3
00000c8b: ADD
00000c8c: PUSH1 0x00
00000c8e: KECCAK256
00000c8f: SLOAD
00000c90: SWAP5
00000c91: SWAP4
00000c92: POP
00000c93: POP
00000c94: POP
00000c95: POP
00000c96: JUMP
00000c97: JUMPDEST
00000c98: PUSH1 0x00
00000c9a: PUSH1 0x40
00000c9c: MLOAD
00000c9d: PUSH1 0x20
00000c9f: ADD
00000ca0: DUP1
00000ca1: DUP1
00000ca2: PUSH32 0x6572632d746f2d6572632d636f72650000000000000000000000000000000000
00000cc3: DUP2
00000cc4: MSTORE
00000cc5: POP
00000cc6: PUSH1 0x0f
00000cc8: ADD
00000cc9: SWAP1
00000cca: POP
00000ccb: PUSH1 0x40
00000ccd: MLOAD
00000cce: PUSH1 0x20
00000cd0: DUP2
00000cd1: DUP4
00000cd2: SUB
00000cd3: SUB
00000cd4: DUP2
00000cd5: MSTORE
00000cd6: SWAP1
00000cd7: PUSH1 0x40
00000cd9: MSTORE
00000cda: PUSH1 0x40
00000cdc: MLOAD
00000cdd: DUP1
00000cde: DUP3
00000cdf: DUP1
00000ce0: MLOAD
00000ce1: SWAP1
00000ce2: PUSH1 0x20
00000ce4: ADD
00000ce5: SWAP1
00000ce6: DUP1
00000ce7: DUP4
00000ce8: DUP4
00000ce9: JUMPDEST
00000cea: PUSH1 0x20
00000cec: DUP4
00000ced: LT
00000cee: PUSH2 0x0d08
00000cf1: JUMPI
00000cf2: DUP1
00000cf3: MLOAD
00000cf4: DUP3
00000cf5: MSTORE
00000cf6: PUSH1 0x1f
00000cf8: NOT
00000cf9: SWAP1
00000cfa: SWAP3
00000cfb: ADD
00000cfc: SWAP2
00000cfd: PUSH1 0x20
00000cff: SWAP2
00000d00: DUP3
00000d01: ADD
00000d02: SWAP2
00000d03: ADD
00000d04: PUSH2 0x0ce9
00000d07: JUMP
00000d08: JUMPDEST
00000d09: PUSH1 0x01
00000d0b: DUP4
00000d0c: PUSH1 0x20
00000d0e: SUB
00000d0f: PUSH2 0x0100
00000d12: EXP
00000d13: SUB
00000d14: DUP1
00000d15: NOT
00000d16: DUP3
00000d17: MLOAD
00000d18: AND
00000d19: DUP2
00000d1a: DUP5
00000d1b: MLOAD
00000d1c: AND
00000d1d: DUP1
00000d1e: DUP3
00000d1f: OR
00000d20: DUP6
00000d21: MSTORE
00000d22: POP
00000d23: POP
00000d24: POP
00000d25: POP
00000d26: POP
00000d27: POP
00000d28: SWAP1
00000d29: POP
00000d2a: ADD
00000d2b: SWAP2
00000d2c: POP
00000d2d: POP
00000d2e: PUSH1 0x40
00000d30: MLOAD
00000d31: DUP1
00000d32: SWAP2
00000d33: SUB
00000d34: SWAP1
00000d35: KECCAK256
00000d36: SWAP1
00000d37: POP
00000d38: SWAP1
00000d39: JUMP
00000d3a: JUMPDEST
00000d3b: PUSH1 0x00
00000d3d: DUP1
00000d3e: PUSH1 0x00
00000d40: PUSH1 0x40
00000d42: MLOAD
00000d43: PUSH1 0x20
00000d45: ADD
00000d46: DUP1
00000d47: DUP1
00000d48: PUSH32 0x657865637574696f6e4461696c794c696d697400000000000000000000000000
00000d69: DUP2
00000d6a: MSTORE
00000d6b: POP
00000d6c: PUSH1 0x13
00000d6e: ADD
00000d6f: SWAP1
00000d70: POP
00000d71: PUSH1 0x40
00000d73: MLOAD
00000d74: PUSH1 0x20
00000d76: DUP2
00000d77: DUP4
00000d78: SUB
00000d79: SUB
00000d7a: DUP2
00000d7b: MSTORE
00000d7c: SWAP1
00000d7d: PUSH1 0x40
00000d7f: MSTORE
00000d80: PUSH1 0x40
00000d82: MLOAD
00000d83: DUP1
00000d84: DUP3
00000d85: DUP1
00000d86: MLOAD
00000d87: SWAP1
00000d88: PUSH1 0x20
00000d8a: ADD
00000d8b: SWAP1
00000d8c: DUP1
00000d8d: DUP4
00000d8e: DUP4
00000d8f: PUSH1 0x20
00000d91: DUP4
00000d92: LT
00000d93: PUSH2 0x0c57
00000d96: JUMPI
00000d97: DUP1
00000d98: MLOAD
00000d99: DUP3
00000d9a: MSTORE
00000d9b: PUSH1 0x1f
00000d9d: NOT
00000d9e: SWAP1
00000d9f: SWAP3
00000da0: ADD
00000da1: SWAP2
00000da2: PUSH1 0x20
00000da4: SWAP2
00000da5: DUP3
00000da6: ADD
00000da7: SWAP2
00000da8: ADD
00000da9: PUSH2 0x0c38
00000dac: JUMP
00000dad: JUMPDEST
00000dae: PUSH1 0x00
00000db0: PUSH1 0x02
00000db2: PUSH1 0x00
00000db4: PUSH1 0x40
00000db6: MLOAD
00000db7: PUSH1 0x20
00000db9: ADD
00000dba: DUP1
00000dbb: DUP1
00000dbc: PUSH32 0x66616c6c6261636b526563697069656e74000000000000000000000000000000
00000ddd: DUP2
00000dde: MSTORE
00000ddf: POP
00000de0: PUSH1 0x11
00000de2: ADD
00000de3: SWAP1
00000de4: POP
00000de5: PUSH1 0x40
00000de7: MLOAD
00000de8: PUSH1 0x20
00000dea: DUP2
00000deb: DUP4
00000dec: SUB
00000ded: SUB
00000dee: DUP2
00000def: MSTORE
00000df0: SWAP1
00000df1: PUSH1 0x40
00000df3: MSTORE
00000df4: PUSH1 0x40
00000df6: MLOAD
00000df7: DUP1
00000df8: DUP3
00000df9: DUP1
00000dfa: MLOAD
00000dfb: SWAP1
00000dfc: PUSH1 0x20
00000dfe: ADD
00000dff: SWAP1
00000e00: DUP1
00000e01: DUP4
00000e02: DUP4
00000e03: PUSH1 0x20
00000e05: DUP4
00000e06: LT
00000e07: PUSH2 0x06ee
00000e0a: JUMPI
00000e0b: DUP1
00000e0c: MLOAD
00000e0d: DUP3
00000e0e: MSTORE
00000e0f: PUSH1 0x1f
00000e11: NOT
00000e12: SWAP1
00000e13: SWAP3
00000e14: ADD
00000e15: SWAP2
00000e16: PUSH1 0x20
00000e18: SWAP2
00000e19: DUP3
00000e1a: ADD
00000e1b: SWAP2
00000e1c: ADD
00000e1d: PUSH2 0x06cf
00000e20: JUMP
00000e21: JUMPDEST
00000e22: PUSH1 0x00
00000e24: DUP1
00000e25: PUSH1 0x00
00000e27: DUP4
00000e28: PUSH1 0x40
00000e2a: MLOAD
00000e2b: PUSH1 0x20
00000e2d: ADD
00000e2e: DUP1
00000e2f: DUP1
00000e30: PUSH32 0x746f74616c457865637574656450657244617900000000000000000000000000
00000e51: DUP2
00000e52: MSTORE
00000e53: POP
00000e54: PUSH1 0x13
00000e56: ADD
00000e57: DUP3
00000e58: DUP2
00000e59: MSTORE
00000e5a: PUSH1 0x20
00000e5c: ADD
00000e5d: SWAP2
00000e5e: POP
00000e5f: POP
00000e60: PUSH1 0x40
00000e62: MLOAD
00000e63: PUSH1 0x20
00000e65: DUP2
00000e66: DUP4
00000e67: SUB
00000e68: SUB
00000e69: DUP2
00000e6a: MSTORE
00000e6b: SWAP1
00000e6c: PUSH1 0x40
00000e6e: MSTORE
00000e6f: PUSH1 0x40
00000e71: MLOAD
00000e72: DUP1
00000e73: DUP3
00000e74: DUP1
00000e75: MLOAD
00000e76: SWAP1
00000e77: PUSH1 0x20
00000e79: ADD
00000e7a: SWAP1
00000e7b: DUP1
00000e7c: DUP4
00000e7d: DUP4
00000e7e: PUSH1 0x20
00000e80: DUP4
00000e81: LT
00000e82: PUSH2 0x0a5e
00000e85: JUMPI
00000e86: DUP1
00000e87: MLOAD
00000e88: DUP3
00000e89: MSTORE
00000e8a: PUSH1 0x1f
00000e8c: NOT
00000e8d: SWAP1
00000e8e: SWAP3
00000e8f: ADD
00000e90: SWAP2
00000e91: PUSH1 0x20
00000e93: SWAP2
00000e94: DUP3
00000e95: ADD
00000e96: SWAP2
00000e97: ADD
00000e98: PUSH2 0x0a3f
00000e9b: JUMP
00000e9c: JUMPDEST
00000e9d: PUSH1 0x00
00000e9f: PUSH2 0x0eaf
00000ea2: DUP11
00000ea3: DUP11
00000ea4: DUP11
00000ea5: DUP11
00000ea6: DUP11
00000ea7: DUP11
00000ea8: DUP11
00000ea9: DUP11
00000eaa: DUP11
00000eab: PUSH2 0x1ffc
00000eae: JUMP
00000eaf: JUMPDEST
00000eb0: SWAP11
00000eb1: SWAP10
00000eb2: POP
00000eb3: POP
00000eb4: POP
00000eb5: POP
00000eb6: POP
00000eb7: POP
00000eb8: POP
00000eb9: POP
00000eba: POP
00000ebb: POP
00000ebc: JUMP
00000ebd: JUMPDEST
00000ebe: PUSH1 0x00
00000ec0: DUP1
00000ec1: PUSH1 0x00
00000ec3: PUSH1 0x40
00000ec5: MLOAD
00000ec6: PUSH1 0x20
00000ec8: ADD
00000ec9: DUP1
00000eca: DUP1
00000ecb: PUSH32 0x6461696c794c696d697400000000000000000000000000000000000000000000
00000eec: DUP2
00000eed: MSTORE
00000eee: POP
00000eef: PUSH1 0x0a
00000ef1: ADD
00000ef2: SWAP1
00000ef3: POP
00000ef4: PUSH1 0x40
00000ef6: MLOAD
00000ef7: PUSH1 0x20
00000ef9: DUP2
00000efa: DUP4
00000efb: SUB
00000efc: SUB
00000efd: DUP2
00000efe: MSTORE
00000eff: SWAP1
00000f00: PUSH1 0x40
00000f02: MSTORE
00000f03: PUSH1 0x40
00000f05: MLOAD
00000f06: DUP1
00000f07: DUP3
00000f08: DUP1
00000f09: MLOAD
00000f0a: SWAP1
00000f0b: PUSH1 0x20
00000f0d: ADD
00000f0e: SWAP1
00000f0f: DUP1
00000f10: DUP4
00000f11: DUP4
00000f12: PUSH1 0x20
00000f14: DUP4
00000f15: LT
00000f16: PUSH2 0x0c57
00000f19: JUMPI
00000f1a: DUP1
00000f1b: MLOAD
00000f1c: DUP3
00000f1d: MSTORE
00000f1e: PUSH1 0x1f
00000f20: NOT
00000f21: SWAP1
00000f22: SWAP3
00000f23: ADD
00000f24: SWAP2
00000f25: PUSH1 0x20
00000f27: SWAP2
00000f28: DUP3
00000f29: ADD
00000f2a: SWAP2
00000f2b: ADD
00000f2c: PUSH2 0x0c38
00000f2f: JUMP
00000f30: JUMPDEST
00000f31: PUSH2 0x0f38
00000f34: PUSH2 0x17a7
00000f37: JUMP
00000f38: JUMPDEST
00000f39: PUSH1 0x01
00000f3b: PUSH1 0xa0
00000f3d: PUSH1 0x02
00000f3f: EXP
00000f40: SUB
00000f41: AND
00000f42: CALLER
00000f43: EQ
00000f44: PUSH2 0x0f4c
00000f47: JUMPI
00000f48: PUSH1 0x00
00000f4a: DUP1
00000f4b: REVERT
00000f4c: JUMPDEST
00000f4d: PUSH2 0x0f54
00000f50: PUSH2 0x0679
00000f53: JUMP
00000f54: JUMPDEST
00000f55: PUSH1 0x01
00000f57: PUSH1 0xa0
00000f59: PUSH1 0x02
00000f5b: EXP
00000f5c: SUB
00000f5d: DUP4
00000f5e: DUP2
00000f5f: AND
00000f60: SWAP2
00000f61: AND
00000f62: EQ
00000f63: ISZERO
00000f64: PUSH2 0x0f6c
00000f67: JUMPI
00000f68: PUSH1 0x00
00000f6a: DUP1
00000f6b: REVERT
00000f6c: JUMPDEST
00000f6d: PUSH2 0x0f76
00000f70: DUP3
00000f71: DUP3
00000f72: PUSH2 0x2690
00000f75: JUMP
00000f76: JUMPDEST
00000f77: POP
00000f78: POP
00000f79: JUMP
00000f7a: JUMPDEST
00000f7b: PUSH1 0x00
00000f7d: DUP1
00000f7e: PUSH1 0x00
00000f80: PUSH1 0x40
00000f82: MLOAD
00000f83: PUSH1 0x20
00000f85: ADD
00000f86: DUP1
00000f87: DUP1
00000f88: PUSH32 0x66656550657263656e7400000000000000000000000000000000000000000000
00000fa9: DUP2
00000faa: MSTORE
00000fab: POP
00000fac: PUSH1 0x0a
00000fae: ADD
00000faf: SWAP1
00000fb0: POP
00000fb1: PUSH1 0x40
00000fb3: MLOAD
00000fb4: PUSH1 0x20
00000fb6: DUP2
00000fb7: DUP4
00000fb8: SUB
00000fb9: SUB
00000fba: DUP2
00000fbb: MSTORE
00000fbc: SWAP1
00000fbd: PUSH1 0x40
00000fbf: MSTORE
00000fc0: PUSH1 0x40
00000fc2: MLOAD
00000fc3: DUP1
00000fc4: DUP3
00000fc5: DUP1
00000fc6: MLOAD
00000fc7: SWAP1
00000fc8: PUSH1 0x20
00000fca: ADD
00000fcb: SWAP1
00000fcc: DUP1
00000fcd: DUP4
00000fce: DUP4
00000fcf: PUSH1 0x20
00000fd1: DUP4
00000fd2: LT
00000fd3: PUSH2 0x0c57
00000fd6: JUMPI
00000fd7: DUP1
00000fd8: MLOAD
00000fd9: DUP3
00000fda: MSTORE
00000fdb: PUSH1 0x1f
00000fdd: NOT
00000fde: SWAP1
00000fdf: SWAP3
00000fe0: ADD
00000fe1: SWAP2
00000fe2: PUSH1 0x20
00000fe4: SWAP2
00000fe5: DUP3
00000fe6: ADD
00000fe7: SWAP2
00000fe8: ADD
00000fe9: PUSH2 0x0c38
00000fec: JUMP
00000fed: JUMPDEST
00000fee: PUSH1 0x00
00000ff0: DUP1
00000ff1: PUSH2 0x1010
00000ff4: DUP4
00000ff5: PUSH2 0x1004
00000ff8: PUSH2 0x0fff
00000ffb: PUSH2 0x0bda
00000ffe: JUMP
00000fff: JUMPDEST
00001000: PUSH2 0x0e21
00001003: JUMP
00001004: JUMPDEST
00001005: SWAP1
00001006: PUSH4 0xffffffff
0000100b: PUSH2 0x284c
0000100e: AND
0000100f: JUMP
00001010: JUMPDEST
00001011: SWAP1
00001012: POP
00001013: DUP1
00001014: PUSH2 0x101b
00001017: PUSH2 0x0d3a
0000101a: JUMP
0000101b: JUMPDEST
0000101c: LT
0000101d: ISZERO
0000101e: DUP1
0000101f: ISZERO
00001020: PUSH2 0x1030
00001023: JUMPI
00001024: POP
00001025: PUSH2 0x102c
00001028: PUSH2 0x1037
0000102b: JUMP
0000102c: JUMPDEST
0000102d: DUP4
0000102e: GT
0000102f: ISZERO
00001030: JUMPDEST
00001031: SWAP4
00001032: SWAP3
00001033: POP
00001034: POP
00001035: POP
00001036: JUMP
00001037: JUMPDEST
00001038: PUSH1 0x00
0000103a: DUP1
0000103b: PUSH1 0x00
0000103d: PUSH1 0x40
0000103f: MLOAD
00001040: PUSH1 0x20
00001042: ADD
00001043: DUP1
00001044: DUP1
00001045: PUSH32 0x657865637574696f6e4d61785065725478000000000000000000000000000000
00001066: DUP2
00001067: MSTORE
00001068: POP
00001069: PUSH1 0x11
0000106b: ADD
0000106c: SWAP1
0000106d: POP
0000106e: PUSH1 0x40
00001070: MLOAD
00001071: PUSH1 0x20
00001073: DUP2
00001074: DUP4
00001075: SUB
00001076: SUB
00001077: DUP2
00001078: MSTORE
00001079: SWAP1
0000107a: PUSH1 0x40
0000107c: MSTORE
0000107d: PUSH1 0x40
0000107f: MLOAD
00001080: DUP1
00001081: DUP3
00001082: DUP1
00001083: MLOAD
00001084: SWAP1
00001085: PUSH1 0x20
00001087: ADD
00001088: SWAP1
00001089: DUP1
0000108a: DUP4
0000108b: DUP4
0000108c: PUSH1 0x20
0000108e: DUP4
0000108f: LT
00001090: PUSH2 0x0c57
00001093: JUMPI
00001094: DUP1
00001095: MLOAD
00001096: DUP3
00001097: MSTORE
00001098: PUSH1 0x1f
0000109a: NOT
0000109b: SWAP1
0000109c: SWAP3
0000109d: ADD
0000109e: SWAP2
0000109f: PUSH1 0x20
000010a1: SWAP2
000010a2: DUP3
000010a3: ADD
000010a4: SWAP2
000010a5: ADD
000010a6: PUSH2 0x0c38
000010a9: JUMP
000010aa: JUMPDEST
000010ab: PUSH1 0x00
000010ad: PUSH2 0x10b4
000010b0: PUSH2 0x1196
000010b3: JUMP
000010b4: JUMPDEST
000010b5: PUSH1 0x01
000010b7: PUSH1 0xa0
000010b9: PUSH1 0x02
000010bb: EXP
000010bc: SUB
000010bd: AND
000010be: PUSH4 0x8d068043
000010c3: PUSH1 0x40
000010c5: MLOAD
000010c6: DUP2
000010c7: PUSH4 0xffffffff
000010cc: AND
000010cd: PUSH1 0xe0
000010cf: PUSH1 0x02
000010d1: EXP
000010d2: MUL
000010d3: DUP2
000010d4: MSTORE
000010d5: PUSH1 0x04
000010d7: ADD
000010d8: PUSH1 0x20
000010da: PUSH1 0x40
000010dc: MLOAD
000010dd: DUP1
000010de: DUP4
000010df: SUB
000010e0: DUP2
000010e1: PUSH1 0x00
000010e3: DUP8
000010e4: DUP1
000010e5: EXTCODESIZE
000010e6: ISZERO
000010e7: DUP1
000010e8: ISZERO
000010e9: PUSH2 0x10f1
000010ec: JUMPI
000010ed: PUSH1 0x00
000010ef: DUP1
000010f0: REVERT
000010f1: JUMPDEST
000010f2: POP
000010f3: GAS
000010f4: CALL
000010f5: ISZERO
000010f6: DUP1
000010f7: ISZERO
000010f8: PUSH2 0x1105
000010fb: JUMPI
000010fc: RETURNDATASIZE
000010fd: PUSH1 0x00
000010ff: DUP1
00001100: RETURNDATACOPY
00001101: RETURNDATASIZE
00001102: PUSH1 0x00
00001104: REVERT
00001105: JUMPDEST
00001106: POP
00001107: POP
00001108: POP
00001109: POP
0000110a: PUSH1 0x40
0000110c: MLOAD
0000110d: RETURNDATASIZE
0000110e: PUSH1 0x20
00001110: DUP2
00001111: LT
00001112: ISZERO
00001113: PUSH2 0x111b
00001116: JUMPI
00001117: PUSH1 0x00
00001119: DUP1
0000111a: REVERT
0000111b: JUMPDEST
0000111c: POP
0000111d: MLOAD
0000111e: SWAP1
0000111f: POP
00001120: SWAP1
00001121: JUMP
00001122: JUMPDEST
00001123: PUSH1 0x00
00001125: PUSH1 0x02
00001127: PUSH1 0x00
00001129: PUSH1 0x40
0000112b: MLOAD
0000112c: PUSH1 0x20
0000112e: ADD
0000112f: DUP1
00001130: DUP1
00001131: PUSH32 0x6f776e6572000000000000000000000000000000000000000000000000000000
00001152: DUP2
00001153: MSTORE
00001154: POP
00001155: PUSH1 0x05
00001157: ADD
00001158: SWAP1
00001159: POP
0000115a: PUSH1 0x40
0000115c: MLOAD
0000115d: PUSH1 0x20
0000115f: DUP2
00001160: DUP4
00001161: SUB
00001162: SUB
00001163: DUP2
00001164: MSTORE
00001165: SWAP1
00001166: PUSH1 0x40
00001168: MSTORE
00001169: PUSH1 0x40
0000116b: MLOAD
0000116c: DUP1
0000116d: DUP3
0000116e: DUP1
0000116f: MLOAD
00001170: SWAP1
00001171: PUSH1 0x20
00001173: ADD
00001174: SWAP1
00001175: DUP1
00001176: DUP4
00001177: DUP4
00001178: PUSH1 0x20
0000117a: DUP4
0000117b: LT
0000117c: PUSH2 0x06ee
0000117f: JUMPI
00001180: DUP1
00001181: MLOAD
00001182: DUP3
00001183: MSTORE
00001184: PUSH1 0x1f
00001186: NOT
00001187: SWAP1
00001188: SWAP3
00001189: ADD
0000118a: SWAP2
0000118b: PUSH1 0x20
0000118d: SWAP2
0000118e: DUP3
0000118f: ADD
00001190: SWAP2
00001191: ADD
00001192: PUSH2 0x06cf
00001195: JUMP
00001196: JUMPDEST
00001197: PUSH1 0x00
00001199: PUSH1 0x02
0000119b: PUSH1 0x00
0000119d: PUSH1 0x40
0000119f: MLOAD
000011a0: PUSH1 0x20
000011a2: ADD
000011a3: DUP1
000011a4: DUP1
000011a5: PUSH32 0x76616c696461746f72436f6e7472616374000000000000000000000000000000
000011c6: DUP2
000011c7: MSTORE
000011c8: POP
000011c9: PUSH1 0x11
000011cb: ADD
000011cc: SWAP1
000011cd: POP
000011ce: PUSH1 0x40
000011d0: MLOAD
000011d1: PUSH1 0x20
000011d3: DUP2
000011d4: DUP4
000011d5: SUB
000011d6: SUB
000011d7: DUP2
000011d8: MSTORE
000011d9: SWAP1
000011da: PUSH1 0x40
000011dc: MSTORE
000011dd: PUSH1 0x40
000011df: MLOAD
000011e0: DUP1
000011e1: DUP3
000011e2: DUP1
000011e3: MLOAD
000011e4: SWAP1
000011e5: PUSH1 0x20
000011e7: ADD
000011e8: SWAP1
000011e9: DUP1
000011ea: DUP4
000011eb: DUP4
000011ec: PUSH1 0x20
000011ee: DUP4
000011ef: LT
000011f0: PUSH2 0x06ee
000011f3: JUMPI
000011f4: DUP1
000011f5: MLOAD
000011f6: DUP3
000011f7: MSTORE
000011f8: PUSH1 0x1f
000011fa: NOT
000011fb: SWAP1
000011fc: SWAP3
000011fd: ADD
000011fe: SWAP2
000011ff: PUSH1 0x20
00001201: SWAP2
00001202: DUP3
00001203: ADD
00001204: SWAP2
00001205: ADD
00001206: PUSH2 0x06cf
00001209: JUMP
0000120a: JUMPDEST
0000120b: PUSH1 0x00
0000120d: PUSH2 0x1215
00001210: DUP3
00001211: PUSH2 0x1f0a
00001214: JUMP
00001215: JUMPDEST
00001216: PUSH2 0x1226
00001219: DUP12
0000121a: DUP12
0000121b: DUP12
0000121c: DUP12
0000121d: DUP12
0000121e: DUP12
0000121f: DUP12
00001220: DUP12
00001221: DUP12
00001222: PUSH2 0x0e9c
00001225: JUMP
00001226: JUMPDEST
00001227: SWAP12
00001228: SWAP11
00001229: POP
0000122a: POP
0000122b: POP
0000122c: POP
0000122d: POP
0000122e: POP
0000122f: POP
00001230: POP
00001231: POP
00001232: POP
00001233: POP
00001234: JUMP
00001235: JUMPDEST
00001236: PUSH1 0x00
00001238: DUP1
00001239: PUSH1 0x00
0000123b: PUSH1 0x40
0000123d: MLOAD
0000123e: PUSH1 0x20
00001240: ADD
00001241: DUP1
00001242: DUP1
00001243: PUSH32 0x6465706c6f7965644174426c6f636b0000000000000000000000000000000000
00001264: DUP2
00001265: MSTORE
00001266: POP
00001267: PUSH1 0x0f
00001269: ADD
0000126a: SWAP1
0000126b: POP
0000126c: PUSH1 0x40
0000126e: MLOAD
0000126f: PUSH1 0x20
00001271: DUP2
00001272: DUP4
00001273: SUB
00001274: SUB
00001275: DUP2
00001276: MSTORE
00001277: SWAP1
00001278: PUSH1 0x40
0000127a: MSTORE
0000127b: PUSH1 0x40
0000127d: MLOAD
0000127e: DUP1
0000127f: DUP3
00001280: DUP1
00001281: MLOAD
00001282: SWAP1
00001283: PUSH1 0x20
00001285: ADD
00001286: SWAP1
00001287: DUP1
00001288: DUP4
00001289: DUP4
0000128a: PUSH1 0x20
0000128c: DUP4
0000128d: LT
0000128e: PUSH2 0x0c57
00001291: JUMPI
00001292: DUP1
00001293: MLOAD
00001294: DUP3
00001295: MSTORE
00001296: PUSH1 0x1f
00001298: NOT
00001299: SWAP1
0000129a: SWAP3
0000129b: ADD
0000129c: SWAP2
0000129d: PUSH1 0x20
0000129f: SWAP2
000012a0: DUP3
000012a1: ADD
000012a2: SWAP2
000012a3: ADD
000012a4: PUSH2 0x0c38
000012a7: JUMP
000012a8: JUMPDEST
000012a9: PUSH1 0x02
000012ab: DUP1
000012ac: PUSH1 0x00
000012ae: SWAP1
000012af: SWAP2
000012b0: SWAP3
000012b1: JUMP
000012b2: JUMPDEST
000012b3: PUSH2 0x12ba
000012b6: PUSH2 0x1122
000012b9: JUMP
000012ba: JUMPDEST
000012bb: PUSH1 0x01
000012bd: PUSH1 0xa0
000012bf: PUSH1 0x02
000012c1: EXP
000012c2: SUB
000012c3: AND
000012c4: CALLER
000012c5: EQ
000012c6: PUSH2 0x12ce
000012c9: JUMPI
000012ca: PUSH1 0x00
000012cc: DUP1
000012cd: REVERT
000012ce: JUMPDEST
000012cf: PUSH2 0x12d6
000012d2: PUSH2 0x0ebd
000012d5: JUMP
000012d6: JUMPDEST
000012d7: DUP2
000012d8: LT
000012d9: DUP1
000012da: ISZERO
000012db: PUSH2 0x12ea
000012de: JUMPI
000012df: POP
000012e0: PUSH2 0x12e7
000012e3: PUSH2 0x1985
000012e6: JUMP
000012e7: JUMPDEST
000012e8: DUP2
000012e9: LT
000012ea: JUMPDEST
000012eb: ISZERO
000012ec: ISZERO
000012ed: PUSH2 0x12f5
000012f0: JUMPI
000012f1: PUSH1 0x00
000012f3: DUP1
000012f4: REVERT
000012f5: JUMPDEST
000012f6: DUP1
000012f7: PUSH1 0x00
000012f9: DUP1
000012fa: PUSH1 0x40
000012fc: MLOAD
000012fd: PUSH1 0x20
000012ff: ADD
00001300: DUP1
00001301: DUP1
00001302: PUSH32 0x6d696e5065725478000000000000000000000000000000000000000000000000
00001323: DUP2
00001324: MSTORE
00001325: POP
00001326: PUSH1 0x08
00001328: ADD
00001329: SWAP1
0000132a: POP
0000132b: PUSH1 0x40
0000132d: MLOAD
0000132e: PUSH1 0x20
00001330: DUP2
00001331: DUP4
00001332: SUB
00001333: SUB
00001334: DUP2
00001335: MSTORE
00001336: SWAP1
00001337: PUSH1 0x40
00001339: MSTORE
0000133a: PUSH1 0x40
0000133c: MLOAD
0000133d: DUP1
0000133e: DUP3
0000133f: DUP1
00001340: MLOAD
00001341: SWAP1
00001342: PUSH1 0x20
00001344: ADD
00001345: SWAP1
00001346: DUP1
00001347: DUP4
00001348: DUP4
00001349: JUMPDEST
0000134a: PUSH1 0x20
0000134c: DUP4
0000134d: LT
0000134e: PUSH2 0x1368
00001351: JUMPI
00001352: DUP1
00001353: MLOAD
00001354: DUP3
00001355: MSTORE
00001356: PUSH1 0x1f
00001358: NOT
00001359: SWAP1
0000135a: SWAP3
0000135b: ADD
0000135c: SWAP2
0000135d: PUSH1 0x20
0000135f: SWAP2
00001360: DUP3
00001361: ADD
00001362: SWAP2
00001363: ADD
00001364: PUSH2 0x1349
00001367: JUMP
00001368: JUMPDEST
00001369: MLOAD
0000136a: DUP2
0000136b: MLOAD
0000136c: PUSH1 0x20
0000136e: SWAP4
0000136f: DUP5
00001370: SUB
00001371: PUSH2 0x0100
00001374: EXP
00001375: PUSH1 0x00
00001377: NOT
00001378: ADD
00001379: DUP1
0000137a: NOT
0000137b: SWAP1
0000137c: SWAP3
0000137d: AND
0000137e: SWAP2
0000137f: AND
00001380: OR
00001381: SWAP1
00001382: MSTORE
00001383: PUSH1 0x40
00001385: DUP1
00001386: MLOAD
00001387: SWAP3
00001388: SWAP1
00001389: SWAP5
0000138a: ADD
0000138b: DUP3
0000138c: SWAP1
0000138d: SUB
0000138e: SWAP1
0000138f: SWAP2
00001390: KECCAK256
00001391: DUP7
00001392: MSTORE
00001393: DUP6
00001394: ADD
00001395: SWAP6
00001396: SWAP1
00001397: SWAP6
00001398: MSTORE
00001399: SWAP3
0000139a: SWAP1
0000139b: SWAP3
0000139c: ADD
0000139d: PUSH1 0x00
0000139f: KECCAK256
000013a0: SWAP4
000013a1: SWAP1
000013a2: SWAP4
000013a3: SSTORE
000013a4: POP
000013a5: POP
000013a6: POP
000013a7: POP
000013a8: JUMP
000013a9: JUMPDEST
000013aa: PUSH2 0x13b1
000013ad: PUSH2 0x1122
000013b0: JUMP
000013b1: JUMPDEST
000013b2: PUSH1 0x01
000013b4: PUSH1 0xa0
000013b6: PUSH1 0x02
000013b8: EXP
000013b9: SUB
000013ba: AND
000013bb: CALLER
000013bc: EQ
000013bd: PUSH2 0x13c5
000013c0: JUMPI
000013c1: PUSH1 0x00
000013c3: DUP1
000013c4: REVERT
000013c5: JUMPDEST
000013c6: PUSH1 0x00
000013c8: DUP2
000013c9: GT
000013ca: PUSH2 0x13d2
000013cd: JUMPI
000013ce: PUSH1 0x00
000013d0: DUP1
000013d1: REVERT
000013d2: JUMPDEST
000013d3: DUP1
000013d4: PUSH1 0x00
000013d6: DUP1
000013d7: PUSH1 0x40
000013d9: MLOAD
000013da: PUSH1 0x20
000013dc: ADD
000013dd: DUP1
000013de: DUP1
000013df: PUSH32 0x7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000
00001400: DUP2
00001401: MSTORE
00001402: POP
00001403: PUSH1 0x1a
00001405: ADD
00001406: SWAP1
00001407: POP
00001408: PUSH1 0x40
0000140a: MLOAD
0000140b: PUSH1 0x20
0000140d: DUP2
0000140e: DUP4
0000140f: SUB
00001410: SUB
00001411: DUP2
00001412: MSTORE
00001413: SWAP1
00001414: PUSH1 0x40
00001416: MSTORE
00001417: PUSH1 0x40
00001419: MLOAD
0000141a: DUP1
0000141b: DUP3
0000141c: DUP1
0000141d: MLOAD
0000141e: SWAP1
0000141f: PUSH1 0x20
00001421: ADD
00001422: SWAP1
00001423: DUP1
00001424: DUP4
00001425: DUP4
00001426: JUMPDEST
00001427: PUSH1 0x20
00001429: DUP4
0000142a: LT
0000142b: PUSH2 0x1445
0000142e: JUMPI
0000142f: DUP1
00001430: MLOAD
00001431: DUP3
00001432: MSTORE
00001433: PUSH1 0x1f
00001435: NOT
00001436: SWAP1
00001437: SWAP3
00001438: ADD
00001439: SWAP2
0000143a: PUSH1 0x20
0000143c: SWAP2
0000143d: DUP3
0000143e: ADD
0000143f: SWAP2
00001440: ADD
00001441: PUSH2 0x1426
00001444: JUMP
00001445: JUMPDEST
00001446: MLOAD
00001447: DUP2
00001448: MLOAD
00001449: PUSH1 0x00
0000144b: NOT
0000144c: PUSH1 0x20
0000144e: SWAP5
0000144f: DUP6
00001450: SUB
00001451: PUSH2 0x0100
00001454: EXP
00001455: ADD
00001456: SWAP1
00001457: DUP2
00001458: AND
00001459: SWAP1
0000145a: NOT
0000145b: SWAP2
0000145c: SWAP1
0000145d: SWAP2
0000145e: AND
0000145f: OR
00001460: SWAP1
00001461: MSTORE
00001462: PUSH1 0x40
00001464: DUP1
00001465: MLOAD
00001466: SWAP5
00001467: SWAP1
00001468: SWAP3
00001469: ADD
0000146a: DUP5
0000146b: SWAP1
0000146c: SUB
0000146d: SWAP1
0000146e: SWAP4
0000146f: KECCAK256
00001470: DUP7
00001471: MSTORE
00001472: DUP6
00001473: DUP4
00001474: ADD
00001475: SWAP7
00001476: SWAP1
00001477: SWAP7
00001478: MSTORE
00001479: POP
0000147a: SWAP3
0000147b: DUP5
0000147c: ADD
0000147d: PUSH1 0x00
0000147f: KECCAK256
00001480: SWAP5
00001481: SWAP1
00001482: SWAP5
00001483: SSTORE
00001484: POP
00001485: DUP2
00001486: MLOAD
00001487: DUP5
00001488: DUP2
00001489: MSTORE
0000148a: SWAP2
0000148b: MLOAD
0000148c: PUSH32 0x4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb
000014ad: SWAP4
000014ae: POP
000014af: SWAP2
000014b0: DUP3
000014b1: SWAP1
000014b2: SUB
000014b3: ADD
000014b4: SWAP1
000014b5: LOG1
000014b6: POP
000014b7: JUMP
000014b8: JUMPDEST
000014b9: PUSH2 0x14c0
000014bc: PUSH2 0x1122
000014bf: JUMP
000014c0: JUMPDEST
000014c1: PUSH1 0x01
000014c3: PUSH1 0xa0
000014c5: PUSH1 0x02
000014c7: EXP
000014c8: SUB
000014c9: AND
000014ca: CALLER
000014cb: EQ
000014cc: PUSH2 0x14d4
000014cf: JUMPI
000014d0: PUSH1 0x00
000014d2: DUP1
000014d3: REVERT
000014d4: JUMPDEST
000014d5: DUP1
000014d6: PUSH1 0x00
000014d8: DUP1
000014d9: PUSH1 0x40
000014db: MLOAD
000014dc: PUSH1 0x20
000014de: ADD
000014df: DUP1
000014e0: DUP1
000014e1: PUSH32 0x6461696c794c696d697400000000000000000000000000000000000000000000
00001502: DUP2
00001503: MSTORE
00001504: POP
00001505: PUSH1 0x0a
00001507: ADD
00001508: SWAP1
00001509: POP
0000150a: PUSH1 0x40
0000150c: MLOAD
0000150d: PUSH1 0x20
0000150f: DUP2
00001510: DUP4
00001511: SUB
00001512: SUB
00001513: DUP2
00001514: MSTORE
00001515: SWAP1
00001516: PUSH1 0x40
00001518: MSTORE
00001519: PUSH1 0x40
0000151b: MLOAD
0000151c: DUP1
0000151d: DUP3
0000151e: DUP1
0000151f: MLOAD
00001520: SWAP1
00001521: PUSH1 0x20
00001523: ADD
00001524: SWAP1
00001525: DUP1
00001526: DUP4
00001527: DUP4
00001528: JUMPDEST
00001529: PUSH1 0x20
0000152b: DUP4
0000152c: LT
0000152d: PUSH2 0x1547
00001530: JUMPI
00001531: DUP1
00001532: MLOAD
00001533: DUP3
00001534: MSTORE
00001535: PUSH1 0x1f
00001537: NOT
00001538: SWAP1
00001539: SWAP3
0000153a: ADD
0000153b: SWAP2
0000153c: PUSH1 0x20
0000153e: SWAP2
0000153f: DUP3
00001540: ADD
00001541: SWAP2
00001542: ADD
00001543: PUSH2 0x1528
00001546: JUMP
00001547: JUMPDEST
00001548: MLOAD
00001549: DUP2
0000154a: MLOAD
0000154b: PUSH1 0x00
0000154d: NOT
0000154e: PUSH1 0x20
00001550: SWAP5
00001551: DUP6
00001552: SUB
00001553: PUSH2 0x0100
00001556: EXP
00001557: ADD
00001558: SWAP1
00001559: DUP2
0000155a: AND
0000155b: SWAP1
0000155c: NOT
0000155d: SWAP2
0000155e: SWAP1
0000155f: SWAP2
00001560: AND
00001561: OR
00001562: SWAP1
00001563: MSTORE
00001564: PUSH1 0x40
00001566: DUP1
00001567: MLOAD
00001568: SWAP5
00001569: SWAP1
0000156a: SWAP3
0000156b: ADD
0000156c: DUP5
0000156d: SWAP1
0000156e: SUB
0000156f: SWAP1
00001570: SWAP4
00001571: KECCAK256
00001572: DUP7
00001573: MSTORE
00001574: DUP6
00001575: DUP4
00001576: ADD
00001577: SWAP7
00001578: SWAP1
00001579: SWAP7
0000157a: MSTORE
0000157b: POP
0000157c: SWAP3
0000157d: DUP5
0000157e: ADD
0000157f: PUSH1 0x00
00001581: KECCAK256
00001582: SWAP5
00001583: SWAP1
00001584: SWAP5
00001585: SSTORE
00001586: POP
00001587: DUP2
00001588: MLOAD
00001589: DUP5
0000158a: DUP2
0000158b: MSTORE
0000158c: SWAP2
0000158d: MLOAD
0000158e: PUSH32 0xad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c
000015af: SWAP4
000015b0: POP
000015b1: SWAP2
000015b2: DUP3
000015b3: SWAP1
000015b4: SUB
000015b5: ADD
000015b6: SWAP1
000015b7: LOG1
000015b8: POP
000015b9: JUMP
000015ba: JUMPDEST
000015bb: PUSH2 0x15c2
000015be: PUSH2 0x1122
000015c1: JUMP
000015c2: JUMPDEST
000015c3: PUSH1 0x01
000015c5: PUSH1 0xa0
000015c7: PUSH1 0x02
000015c9: EXP
000015ca: SUB
000015cb: AND
000015cc: CALLER
000015cd: EQ
000015ce: PUSH2 0x15d6
000015d1: JUMPI
000015d2: PUSH1 0x00
000015d4: DUP1
000015d5: REVERT
000015d6: JUMPDEST
000015d7: PUSH1 0x00
000015d9: DUP2
000015da: GT
000015db: PUSH2 0x15e3
000015de: JUMPI
000015df: PUSH1 0x00
000015e1: DUP1
000015e2: REVERT
000015e3: JUMPDEST
000015e4: DUP1
000015e5: PUSH1 0x00
000015e7: DUP1
000015e8: PUSH1 0x40
000015ea: MLOAD
000015eb: PUSH1 0x20
000015ed: ADD
000015ee: DUP1
000015ef: DUP1
000015f0: PUSH32 0x6761735072696365000000000000000000000000000000000000000000000000
00001611: DUP2
00001612: MSTORE
00001613: POP
00001614: PUSH1 0x08
00001616: ADD
00001617: SWAP1
00001618: POP
00001619: PUSH1 0x40
0000161b: MLOAD
0000161c: PUSH1 0x20
0000161e: DUP2
0000161f: DUP4
00001620: SUB
00001621: SUB
00001622: DUP2
00001623: MSTORE
00001624: SWAP1
00001625: PUSH1 0x40
00001627: MSTORE
00001628: PUSH1 0x40
0000162a: MLOAD
0000162b: DUP1
0000162c: DUP3
0000162d: DUP1
0000162e: MLOAD
0000162f: SWAP1
00001630: PUSH1 0x20
00001632: ADD
00001633: SWAP1
00001634: DUP1
00001635: DUP4
00001636: DUP4
00001637: JUMPDEST
00001638: PUSH1 0x20
0000163a: DUP4
0000163b: LT
0000163c: PUSH2 0x1656
0000163f: JUMPI
00001640: DUP1
00001641: MLOAD
00001642: DUP3
00001643: MSTORE
00001644: PUSH1 0x1f
00001646: NOT
00001647: SWAP1
00001648: SWAP3
00001649: ADD
0000164a: SWAP2
0000164b: PUSH1 0x20
0000164d: SWAP2
0000164e: DUP3
0000164f: ADD
00001650: SWAP2
00001651: ADD
00001652: PUSH2 0x1637
00001655: JUMP
00001656: JUMPDEST
00001657: MLOAD
00001658: DUP2
00001659: MLOAD
0000165a: PUSH1 0x00
0000165c: NOT
0000165d: PUSH1 0x20
0000165f: SWAP5
00001660: DUP6
00001661: SUB
00001662: PUSH2 0x0100
00001665: EXP
00001666: ADD
00001667: SWAP1
00001668: DUP2
00001669: AND
0000166a: SWAP1
0000166b: NOT
0000166c: SWAP2
0000166d: SWAP1
0000166e: SWAP2
0000166f: AND
00001670: OR
00001671: SWAP1
00001672: MSTORE
00001673: PUSH1 0x40
00001675: DUP1
00001676: MLOAD
00001677: SWAP5
00001678: SWAP1
00001679: SWAP3
0000167a: ADD
0000167b: DUP5
0000167c: SWAP1
0000167d: SUB
0000167e: SWAP1
0000167f: SWAP4
00001680: KECCAK256
00001681: DUP7
00001682: MSTORE
00001683: DUP6
00001684: DUP4
00001685: ADD
00001686: SWAP7
00001687: SWAP1
00001688: SWAP7
00001689: MSTORE
0000168a: POP
0000168b: SWAP3
0000168c: DUP5
0000168d: ADD
0000168e: PUSH1 0x00
00001690: KECCAK256
00001691: SWAP5
00001692: SWAP1
00001693: SWAP5
00001694: SSTORE
00001695: POP
00001696: DUP2
00001697: MLOAD
00001698: DUP5
00001699: DUP2
0000169a: MSTORE
0000169b: SWAP2
0000169c: MLOAD
0000169d: PUSH32 0x52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e
000016be: SWAP4
000016bf: POP
000016c0: SWAP2
000016c1: DUP3
000016c2: SWAP1
000016c3: SUB
000016c4: ADD
000016c5: SWAP1
000016c6: LOG1
000016c7: POP
000016c8: JUMP
000016c9: JUMPDEST
000016ca: PUSH1 0x00
000016cc: PUSH2 0x2710
000016cf: PUSH2 0x1030
000016d2: PUSH2 0x16f9
000016d5: DUP3
000016d6: PUSH2 0x16ed
000016d9: PUSH2 0x16e0
000016dc: PUSH2 0x0f7a
000016df: JUMP
000016e0: JUMPDEST
000016e1: DUP8
000016e2: SWAP1
000016e3: PUSH4 0xffffffff
000016e8: PUSH2 0x285b
000016eb: AND
000016ec: JUMP
000016ed: JUMPDEST
000016ee: SWAP1
000016ef: PUSH4 0xffffffff
000016f4: PUSH2 0x2886
000016f7: AND
000016f8: JUMP
000016f9: JUMPDEST
000016fa: DUP5
000016fb: SWAP1
000016fc: PUSH4 0xffffffff
00001701: PUSH2 0x289d
00001704: AND
00001705: JUMP
00001706: JUMPDEST
00001707: PUSH2 0x170e
0000170a: PUSH2 0x1122
0000170d: JUMP
0000170e: JUMPDEST
0000170f: PUSH1 0x01
00001711: PUSH1 0xa0
00001713: PUSH1 0x02
00001715: EXP
00001716: SUB
00001717: AND
00001718: CALLER
00001719: EQ
0000171a: PUSH2 0x1722
0000171d: JUMPI
0000171e: PUSH1 0x00
00001720: DUP1
00001721: REVERT
00001722: JUMPDEST
00001723: PUSH2 0x172a
00001726: PUSH2 0x0ebd
00001729: JUMP
0000172a: JUMPDEST
0000172b: DUP2
0000172c: LT
0000172d: PUSH2 0x1735
00001730: JUMPI
00001731: PUSH1 0x00
00001733: DUP1
00001734: REVERT
00001735: JUMPDEST
00001736: DUP1
00001737: PUSH1 0x00
00001739: DUP1
0000173a: PUSH1 0x40
0000173c: MLOAD
0000173d: PUSH1 0x20
0000173f: ADD
00001740: DUP1
00001741: DUP1
00001742: PUSH32 0x6d61785065725478000000000000000000000000000000000000000000000000
00001763: DUP2
00001764: MSTORE
00001765: POP
00001766: PUSH1 0x08
00001768: ADD
00001769: SWAP1
0000176a: POP
0000176b: PUSH1 0x40
0000176d: MLOAD
0000176e: PUSH1 0x20
00001770: DUP2
00001771: DUP4
00001772: SUB
00001773: SUB
00001774: DUP2
00001775: MSTORE
00001776: SWAP1
00001777: PUSH1 0x40
00001779: MSTORE
0000177a: PUSH1 0x40
0000177c: MLOAD
0000177d: DUP1
0000177e: DUP3
0000177f: DUP1
00001780: MLOAD
00001781: SWAP1
00001782: PUSH1 0x20
00001784: ADD
00001785: SWAP1
00001786: DUP1
00001787: DUP4
00001788: DUP4
00001789: PUSH1 0x20
0000178b: DUP4
0000178c: LT
0000178d: PUSH2 0x1368
00001790: JUMPI
00001791: DUP1
00001792: MLOAD
00001793: DUP3
00001794: MSTORE
00001795: PUSH1 0x1f
00001797: NOT
00001798: SWAP1
00001799: SWAP3
0000179a: ADD
0000179b: SWAP2
0000179c: PUSH1 0x20
0000179e: SWAP2
0000179f: DUP3
000017a0: ADD
000017a1: SWAP2
000017a2: ADD
000017a3: PUSH2 0x1349
000017a6: JUMP
000017a7: JUMPDEST
000017a8: PUSH1 0x00
000017aa: ADDRESS
000017ab: PUSH1 0x01
000017ad: PUSH1 0xa0
000017af: PUSH1 0x02
000017b1: EXP
000017b2: SUB
000017b3: AND
000017b4: PUSH4 0x025313a2
000017b9: PUSH1 0x40
000017bb: MLOAD
000017bc: DUP2
000017bd: PUSH4 0xffffffff
000017c2: AND
000017c3: PUSH1 0xe0
000017c5: PUSH1 0x02
000017c7: EXP
000017c8: MUL
000017c9: DUP2
000017ca: MSTORE
000017cb: PUSH1 0x04
000017cd: ADD
000017ce: PUSH1 0x20
000017d0: PUSH1 0x40
000017d2: MLOAD
000017d3: DUP1
000017d4: DUP4
000017d5: SUB
000017d6: DUP2
000017d7: PUSH1 0x00
000017d9: DUP8
000017da: DUP1
000017db: EXTCODESIZE
000017dc: ISZERO
000017dd: DUP1
000017de: ISZERO
000017df: PUSH2 0x10f1
000017e2: JUMPI
000017e3: PUSH1 0x00
000017e5: DUP1
000017e6: REVERT
000017e7: JUMPDEST
000017e8: PUSH1 0x00
000017ea: DUP1
000017eb: PUSH1 0x00
000017ed: PUSH1 0x40
000017ef: MLOAD
000017f0: PUSH1 0x20
000017f2: ADD
000017f3: DUP1
000017f4: DUP1
000017f5: PUSH32 0x6d696e5065725478000000000000000000000000000000000000000000000000
00001816: DUP2
00001817: MSTORE
00001818: POP
00001819: PUSH1 0x08
0000181b: ADD
0000181c: SWAP1
0000181d: POP
0000181e: PUSH1 0x40
00001820: MLOAD
00001821: PUSH1 0x20
00001823: DUP2
00001824: DUP4
00001825: SUB
00001826: SUB
00001827: DUP2
00001828: MSTORE
00001829: SWAP1
0000182a: PUSH1 0x40
0000182c: MSTORE
0000182d: PUSH1 0x40
0000182f: MLOAD
00001830: DUP1
00001831: DUP3
00001832: DUP1
00001833: MLOAD
00001834: SWAP1
00001835: PUSH1 0x20
00001837: ADD
00001838: SWAP1
00001839: DUP1
0000183a: DUP4
0000183b: DUP4
0000183c: PUSH1 0x20
0000183e: DUP4
0000183f: LT
00001840: PUSH2 0x0c57
00001843: JUMPI
00001844: DUP1
00001845: MLOAD
00001846: DUP3
00001847: MSTORE
00001848: PUSH1 0x1f
0000184a: NOT
0000184b: SWAP1
0000184c: SWAP3
0000184d: ADD
0000184e: SWAP2
0000184f: PUSH1 0x20
00001851: SWAP2
00001852: DUP3
00001853: ADD
00001854: SWAP2
00001855: ADD
00001856: PUSH2 0x0c38
00001859: JUMP
0000185a: JUMPDEST
0000185b: PUSH1 0x00
0000185d: DUP1
0000185e: PUSH2 0x1871
00001861: DUP4
00001862: PUSH2 0x1004
00001865: PUSH2 0x186c
00001868: PUSH2 0x0bda
0000186b: JUMP
0000186c: JUMPDEST
0000186d: PUSH2 0x09e2
00001870: JUMP
00001871: JUMPDEST
00001872: SWAP1
00001873: POP
00001874: DUP1
00001875: PUSH2 0x187c
00001878: PUSH2 0x0ebd
0000187b: JUMP
0000187c: JUMPDEST
0000187d: LT
0000187e: ISZERO
0000187f: DUP1
00001880: ISZERO
00001881: PUSH2 0x1891
00001884: JUMPI
00001885: POP
00001886: PUSH2 0x188d
00001889: PUSH2 0x1985
0000188c: JUMP
0000188d: JUMPDEST
0000188e: DUP4
0000188f: GT
00001890: ISZERO
00001891: JUMPDEST
00001892: DUP1
00001893: ISZERO
00001894: PUSH2 0x1030
00001897: JUMPI
00001898: POP
00001899: PUSH2 0x18a0
0000189c: PUSH2 0x17e7
0000189f: JUMP
000018a0: JUMPDEST
000018a1: SWAP1
000018a2: SWAP3
000018a3: LT
000018a4: ISZERO
000018a5: SWAP3
000018a6: SWAP2
000018a7: POP
000018a8: POP
000018a9: JUMP
000018aa: JUMPDEST
000018ab: PUSH2 0x18b2
000018ae: PUSH2 0x1122
000018b1: JUMP
000018b2: JUMPDEST
000018b3: PUSH1 0x01
000018b5: PUSH1 0xa0
000018b7: PUSH1 0x02
000018b9: EXP
000018ba: SUB
000018bb: AND
000018bc: CALLER
000018bd: EQ
000018be: PUSH2 0x18c6
000018c1: JUMPI
000018c2: PUSH1 0x00
000018c4: DUP1
000018c5: REVERT
000018c6: JUMPDEST
000018c7: PUSH2 0x18ce
000018ca: PUSH2 0x0d3a
000018cd: JUMP
000018ce: JUMPDEST
000018cf: DUP2
000018d0: LT
000018d1: PUSH2 0x18d9
000018d4: JUMPI
000018d5: PUSH1 0x00
000018d7: DUP1
000018d8: REVERT
000018d9: JUMPDEST
000018da: DUP1
000018db: PUSH1 0x00
000018dd: DUP1
000018de: PUSH1 0x40
000018e0: MLOAD
000018e1: PUSH1 0x20
000018e3: ADD
000018e4: DUP1
000018e5: DUP1
000018e6: PUSH32 0x657865637574696f6e4d61785065725478000000000000000000000000000000
00001907: DUP2
00001908: MSTORE
00001909: POP
0000190a: PUSH1 0x11
0000190c: ADD
0000190d: SWAP1
0000190e: POP
0000190f: PUSH1 0x40
00001911: MLOAD
00001912: PUSH1 0x20
00001914: DUP2
00001915: DUP4
00001916: SUB
00001917: SUB
00001918: DUP2
00001919: MSTORE
0000191a: SWAP1
0000191b: PUSH1 0x40
0000191d: MSTORE
0000191e: PUSH1 0x40
00001920: MLOAD
00001921: DUP1
00001922: DUP3
00001923: DUP1
00001924: MLOAD
00001925: SWAP1
00001926: PUSH1 0x20
00001928: ADD
00001929: SWAP1
0000192a: DUP1
0000192b: DUP4
0000192c: DUP4
0000192d: PUSH1 0x20
0000192f: DUP4
00001930: LT
00001931: PUSH2 0x1368
00001934: JUMPI
00001935: DUP1
00001936: MLOAD
00001937: DUP3
00001938: MSTORE
00001939: PUSH1 0x1f
0000193b: NOT
0000193c: SWAP1
0000193d: SWAP3
0000193e: ADD
0000193f: SWAP2
00001940: PUSH1 0x20
00001942: SWAP2
00001943: DUP3
00001944: ADD
00001945: SWAP2
00001946: ADD
00001947: PUSH2 0x1349
0000194a: JUMP
0000194b: JUMPDEST
0000194c: PUSH2 0x1953
0000194f: PUSH2 0x1122
00001952: JUMP
00001953: JUMPDEST
00001954: PUSH1 0x01
00001956: PUSH1 0xa0
00001958: PUSH1 0x02
0000195a: EXP
0000195b: SUB
0000195c: AND
0000195d: CALLER
0000195e: EQ
0000195f: PUSH2 0x1967
00001962: JUMPI
00001963: PUSH1 0x00
00001965: DUP1
00001966: REVERT
00001967: JUMPDEST
00001968: PUSH1 0x01
0000196a: PUSH1 0xa0
0000196c: PUSH1 0x02
0000196e: EXP
0000196f: SUB
00001970: DUP2
00001971: AND
00001972: ISZERO
00001973: ISZERO
00001974: PUSH2 0x197c
00001977: JUMPI
00001978: PUSH1 0x00
0000197a: DUP1
0000197b: REVERT
0000197c: JUMPDEST
0000197d: PUSH2 0x09df
00001980: DUP2
00001981: PUSH2 0x28af
00001984: JUMP
00001985: JUMPDEST
00001986: PUSH1 0x00
00001988: DUP1
00001989: PUSH1 0x00
0000198b: PUSH1 0x40
0000198d: MLOAD
0000198e: PUSH1 0x20
00001990: ADD
00001991: DUP1
00001992: DUP1
00001993: PUSH32 0x6d61785065725478000000000000000000000000000000000000000000000000
000019b4: DUP2
000019b5: MSTORE
000019b6: POP
000019b7: PUSH1 0x08
000019b9: ADD
000019ba: SWAP1
000019bb: POP
000019bc: PUSH1 0x40
000019be: MLOAD
000019bf: PUSH1 0x20
000019c1: DUP2
000019c2: DUP4
000019c3: SUB
000019c4: SUB
000019c5: DUP2
000019c6: MSTORE
000019c7: SWAP1
000019c8: PUSH1 0x40
000019ca: MSTORE
000019cb: PUSH1 0x40
000019cd: MLOAD
000019ce: DUP1
000019cf: DUP3
000019d0: DUP1
000019d1: MLOAD
000019d2: SWAP1
000019d3: PUSH1 0x20
000019d5: ADD
000019d6: SWAP1
000019d7: DUP1
000019d8: DUP4
000019d9: DUP4
000019da: PUSH1 0x20
000019dc: DUP4
000019dd: LT
000019de: PUSH2 0x0c57
000019e1: JUMPI
000019e2: DUP1
000019e3: MLOAD
000019e4: DUP3
000019e5: MSTORE
000019e6: PUSH1 0x1f
000019e8: NOT
000019e9: SWAP1
000019ea: SWAP3
000019eb: ADD
000019ec: SWAP2
000019ed: PUSH1 0x20
000019ef: SWAP2
000019f0: DUP3
000019f1: ADD
000019f2: SWAP2
000019f3: ADD
000019f4: PUSH2 0x0c38
000019f7: JUMP
000019f8: JUMPDEST
000019f9: PUSH1 0x00
000019fb: DUP1
000019fc: PUSH1 0x00
000019fe: PUSH1 0x40
00001a00: MLOAD
00001a01: PUSH1 0x20
00001a03: ADD
00001a04: DUP1
00001a05: DUP1
00001a06: PUSH32 0x6761735072696365000000000000000000000000000000000000000000000000
00001a27: DUP2
00001a28: MSTORE
00001a29: POP
00001a2a: PUSH1 0x08
00001a2c: ADD
00001a2d: SWAP1
00001a2e: POP
00001a2f: PUSH1 0x40
00001a31: MLOAD
00001a32: PUSH1 0x20
00001a34: DUP2
00001a35: DUP4
00001a36: SUB
00001a37: SUB
00001a38: DUP2
00001a39: MSTORE
00001a3a: SWAP1
00001a3b: PUSH1 0x40
00001a3d: MSTORE
00001a3e: PUSH1 0x40
00001a40: MLOAD
00001a41: DUP1
00001a42: DUP3
00001a43: DUP1
00001a44: MLOAD
00001a45: SWAP1
00001a46: PUSH1 0x20
00001a48: ADD
00001a49: SWAP1
00001a4a: DUP1
00001a4b: DUP4
00001a4c: DUP4
00001a4d: PUSH1 0x20
00001a4f: DUP4
00001a50: LT
00001a51: PUSH2 0x0c57
00001a54: JUMPI
00001a55: DUP1
00001a56: MLOAD
00001a57: DUP3
00001a58: MSTORE
00001a59: PUSH1 0x1f
00001a5b: NOT
00001a5c: SWAP1
00001a5d: SWAP3
00001a5e: ADD
00001a5f: SWAP2
00001a60: PUSH1 0x20
00001a62: SWAP2
00001a63: DUP3
00001a64: ADD
00001a65: SWAP2
00001a66: ADD
00001a67: PUSH2 0x0c38
00001a6a: JUMP
00001a6b: JUMPDEST
00001a6c: PUSH1 0x00
00001a6e: DUP1
00001a6f: PUSH1 0x60
00001a71: PUSH1 0x00
00001a73: DUP1
00001a74: PUSH2 0x1a7c
00001a77: DUP11
00001a78: PUSH2 0x296d
00001a7b: JUMP
00001a7c: JUMPDEST
00001a7d: ISZERO
00001a7e: ISZERO
00001a7f: PUSH2 0x1a87
00001a82: JUMPI
00001a83: PUSH1 0x00
00001a85: DUP1
00001a86: REVERT
00001a87: JUMPDEST
00001a88: DUP6
00001a89: PUSH1 0x01
00001a8b: PUSH1 0xa0
00001a8d: PUSH1 0x02
00001a8f: EXP
00001a90: SUB
00001a91: AND
00001a92: PUSH4 0x8d068043
00001a97: PUSH1 0x40
00001a99: MLOAD
00001a9a: DUP2
00001a9b: PUSH4 0xffffffff
00001aa0: AND
00001aa1: PUSH1 0xe0
00001aa3: PUSH1 0x02
00001aa5: EXP
00001aa6: MUL
00001aa7: DUP2
00001aa8: MSTORE
00001aa9: PUSH1 0x04
00001aab: ADD
00001aac: PUSH1 0x20
00001aae: PUSH1 0x40
00001ab0: MLOAD
00001ab1: DUP1
00001ab2: DUP4
00001ab3: SUB
00001ab4: DUP2
00001ab5: PUSH1 0x00
00001ab7: DUP8
00001ab8: DUP1
00001ab9: EXTCODESIZE
00001aba: ISZERO
00001abb: DUP1
00001abc: ISZERO
00001abd: PUSH2 0x1ac5
00001ac0: JUMPI
00001ac1: PUSH1 0x00
00001ac3: DUP1
00001ac4: REVERT
00001ac5: JUMPDEST
00001ac6: POP
00001ac7: GAS
00001ac8: CALL
00001ac9: ISZERO
00001aca: DUP1
00001acb: ISZERO
00001acc: PUSH2 0x1ad9
00001acf: JUMPI
00001ad0: RETURNDATASIZE
00001ad1: PUSH1 0x00
00001ad3: DUP1
00001ad4: RETURNDATACOPY
00001ad5: RETURNDATASIZE
00001ad6: PUSH1 0x00
00001ad8: REVERT
00001ad9: JUMPDEST
00001ada: POP
00001adb: POP
00001adc: POP
00001add: POP
00001ade: PUSH1 0x40
00001ae0: MLOAD
00001ae1: RETURNDATASIZE
00001ae2: PUSH1 0x20
00001ae4: DUP2
00001ae5: LT
00001ae6: ISZERO
00001ae7: PUSH2 0x1aef
00001aea: JUMPI
00001aeb: PUSH1 0x00
00001aed: DUP1
00001aee: REVERT
00001aef: JUMPDEST
00001af0: POP
00001af1: MLOAD
00001af2: DUP10
00001af3: MLOAD
00001af4: SWAP1
00001af5: SWAP6
00001af6: POP
00001af7: DUP6
00001af8: GT
00001af9: ISZERO
00001afa: PUSH2 0x1b02
00001afd: JUMPI
00001afe: PUSH1 0x00
00001b00: DUP1
00001b01: REVERT
00001b02: JUMPDEST
00001b03: PUSH2 0x1b0b
00001b06: DUP11
00001b07: PUSH2 0x2981
00001b0a: JUMP
00001b0b: JUMPDEST
00001b0c: SWAP4
00001b0d: POP
00001b0e: DUP5
00001b0f: PUSH1 0x40
00001b11: MLOAD
00001b12: SWAP1
00001b13: DUP1
00001b14: DUP3
00001b15: MSTORE
00001b16: DUP1
00001b17: PUSH1 0x20
00001b19: MUL
00001b1a: PUSH1 0x20
00001b1c: ADD
00001b1d: DUP3
00001b1e: ADD
00001b1f: PUSH1 0x40
00001b21: MSTORE
00001b22: DUP1
00001b23: ISZERO
00001b24: PUSH2 0x1b37
00001b27: JUMPI
00001b28: DUP2
00001b29: PUSH1 0x20
00001b2b: ADD
00001b2c: PUSH1 0x20
00001b2e: DUP3
00001b2f: MUL
00001b30: DUP1
00001b31: CODESIZE
00001b32: DUP4
00001b33: CODECOPY
00001b34: ADD
00001b35: SWAP1
00001b36: POP
00001b37: JUMPDEST
00001b38: POP
00001b39: SWAP3
00001b3a: POP
00001b3b: PUSH1 0x00
00001b3d: SWAP2
00001b3e: POP
00001b3f: JUMPDEST
00001b40: DUP5
00001b41: DUP3
00001b42: LT
00001b43: ISZERO
00001b44: PUSH2 0x1ccc
00001b47: JUMPI
00001b48: PUSH1 0x01
00001b4a: DUP5
00001b4b: DUP11
00001b4c: DUP5
00001b4d: DUP2
00001b4e: MLOAD
00001b4f: DUP2
00001b50: LT
00001b51: ISZERO
00001b52: ISZERO
00001b53: PUSH2 0x1b58
00001b56: JUMPI
00001b57: INVALID
00001b58: JUMPDEST
00001b59: SWAP1
00001b5a: PUSH1 0x20
00001b5c: ADD
00001b5d: SWAP1
00001b5e: PUSH1 0x20
00001b60: MUL
00001b61: ADD
00001b62: MLOAD
00001b63: DUP11
00001b64: DUP6
00001b65: DUP2
00001b66: MLOAD
00001b67: DUP2
00001b68: LT
00001b69: ISZERO
00001b6a: ISZERO
00001b6b: PUSH2 0x1b70
00001b6e: JUMPI
00001b6f: INVALID
00001b70: JUMPDEST
00001b71: SWAP1
00001b72: PUSH1 0x20
00001b74: ADD
00001b75: SWAP1
00001b76: PUSH1 0x20
00001b78: MUL
00001b79: ADD
00001b7a: MLOAD
00001b7b: DUP11
00001b7c: DUP7
00001b7d: DUP2
00001b7e: MLOAD
00001b7f: DUP2
00001b80: LT
00001b81: ISZERO
00001b82: ISZERO
00001b83: PUSH2 0x1b88
00001b86: JUMPI
00001b87: INVALID
00001b88: JUMPDEST
00001b89: PUSH1 0x20
00001b8b: SWAP1
00001b8c: DUP2
00001b8d: MUL
00001b8e: SWAP1
00001b8f: SWAP2
00001b90: ADD
00001b91: DUP2
00001b92: ADD
00001b93: MLOAD
00001b94: PUSH1 0x40
00001b96: DUP1
00001b97: MLOAD
00001b98: PUSH1 0x00
00001b9a: DUP1
00001b9b: DUP3
00001b9c: MSTORE
00001b9d: DUP2
00001b9e: DUP6
00001b9f: ADD
00001ba0: DUP1
00001ba1: DUP5
00001ba2: MSTORE
00001ba3: SWAP8
00001ba4: SWAP1
00001ba5: SWAP8
00001ba6: MSTORE
00001ba7: PUSH1 0xff
00001ba9: SWAP1
00001baa: SWAP6
00001bab: AND
00001bac: DUP6
00001bad: DUP3
00001bae: ADD
00001baf: MSTORE
00001bb0: PUSH1 0x60
00001bb2: DUP6
00001bb3: ADD
00001bb4: SWAP4
00001bb5: SWAP1
00001bb6: SWAP4
00001bb7: MSTORE
00001bb8: PUSH1 0x80
00001bba: DUP5
00001bbb: ADD
00001bbc: MSTORE
00001bbd: SWAP1
00001bbe: MLOAD
00001bbf: PUSH1 0xa0
00001bc1: DUP1
00001bc2: DUP5
00001bc3: ADD
00001bc4: SWAP5
00001bc5: SWAP3
00001bc6: SWAP4
00001bc7: PUSH1 0x1f
00001bc9: NOT
00001bca: DUP4
00001bcb: ADD
00001bcc: SWAP4
00001bcd: SWAP1
00001bce: DUP4
00001bcf: SWAP1
00001bd0: SUB
00001bd1: SWAP1
00001bd2: SWAP2
00001bd3: ADD
00001bd4: SWAP2
00001bd5: SWAP1
00001bd6: DUP7
00001bd7: GAS
00001bd8: CALL
00001bd9: ISZERO
00001bda: DUP1
00001bdb: ISZERO
00001bdc: PUSH2 0x1be9
00001bdf: JUMPI
00001be0: RETURNDATASIZE
00001be1: PUSH1 0x00
00001be3: DUP1
00001be4: RETURNDATACOPY
00001be5: RETURNDATASIZE
00001be6: PUSH1 0x00
00001be8: REVERT
00001be9: JUMPDEST
00001bea: POP
00001beb: POP
00001bec: POP
00001bed: PUSH1 0x20
00001bef: PUSH1 0x40
00001bf1: MLOAD
00001bf2: SUB
00001bf3: MLOAD
00001bf4: SWAP1
00001bf5: POP
00001bf6: DUP6
00001bf7: PUSH1 0x01
00001bf9: PUSH1 0xa0
00001bfb: PUSH1 0x02
00001bfd: EXP
00001bfe: SUB
00001bff: AND
00001c00: PUSH4 0xfacd743b
00001c05: DUP3
00001c06: PUSH1 0x40
00001c08: MLOAD
00001c09: DUP3
00001c0a: PUSH4 0xffffffff
00001c0f: AND
00001c10: PUSH1 0xe0
00001c12: PUSH1 0x02
00001c14: EXP
00001c15: MUL
00001c16: DUP2
00001c17: MSTORE
00001c18: PUSH1 0x04
00001c1a: ADD
00001c1b: DUP1
00001c1c: DUP3
00001c1d: PUSH1 0x01
00001c1f: PUSH1 0xa0
00001c21: PUSH1 0x02
00001c23: EXP
00001c24: SUB
00001c25: AND
00001c26: PUSH1 0x01
00001c28: PUSH1 0xa0
00001c2a: PUSH1 0x02
00001c2c: EXP
00001c2d: SUB
00001c2e: AND
00001c2f: DUP2
00001c30: MSTORE
00001c31: PUSH1 0x20
00001c33: ADD
00001c34: SWAP2
00001c35: POP
00001c36: POP
00001c37: PUSH1 0x20
00001c39: PUSH1 0x40
00001c3b: MLOAD
00001c3c: DUP1
00001c3d: DUP4
00001c3e: SUB
00001c3f: DUP2
00001c40: PUSH1 0x00
00001c42: DUP8
00001c43: DUP1
00001c44: EXTCODESIZE
00001c45: ISZERO
00001c46: DUP1
00001c47: ISZERO
00001c48: PUSH2 0x1c50
00001c4b: JUMPI
00001c4c: PUSH1 0x00
00001c4e: DUP1
00001c4f: REVERT
00001c50: JUMPDEST
00001c51: POP
00001c52: GAS
00001c53: CALL
00001c54: ISZERO
00001c55: DUP1
00001c56: ISZERO
00001c57: PUSH2 0x1c64
00001c5a: JUMPI
00001c5b: RETURNDATASIZE
00001c5c: PUSH1 0x00
00001c5e: DUP1
00001c5f: RETURNDATACOPY
00001c60: RETURNDATASIZE
00001c61: PUSH1 0x00
00001c63: REVERT
00001c64: JUMPDEST
00001c65: POP
00001c66: POP
00001c67: POP
00001c68: POP
00001c69: PUSH1 0x40
00001c6b: MLOAD
00001c6c: RETURNDATASIZE
00001c6d: PUSH1 0x20
00001c6f: DUP2
00001c70: LT
00001c71: ISZERO
00001c72: PUSH2 0x1c7a
00001c75: JUMPI
00001c76: PUSH1 0x00
00001c78: DUP1
00001c79: REVERT
00001c7a: JUMPDEST
00001c7b: POP
00001c7c: MLOAD
00001c7d: ISZERO
00001c7e: ISZERO
00001c7f: PUSH2 0x1c87
00001c82: JUMPI
00001c83: PUSH1 0x00
00001c85: DUP1
00001c86: REVERT
00001c87: JUMPDEST
00001c88: PUSH2 0x1c91
00001c8b: DUP4
00001c8c: DUP3
00001c8d: PUSH2 0x2b46
00001c90: JUMP
00001c91: JUMPDEST
00001c92: ISZERO
00001c93: PUSH2 0x1c9b
00001c96: JUMPI
00001c97: PUSH1 0x00
00001c99: DUP1
00001c9a: REVERT
00001c9b: JUMPDEST
00001c9c: DUP1
00001c9d: DUP4
00001c9e: DUP4
00001c9f: DUP2
00001ca0: MLOAD
00001ca1: DUP2
00001ca2: LT
00001ca3: ISZERO
00001ca4: ISZERO
00001ca5: PUSH2 0x1caa
00001ca8: JUMPI
00001ca9: INVALID
00001caa: JUMPDEST
00001cab: PUSH1 0x01
00001cad: PUSH1 0xa0
00001caf: PUSH1 0x02
00001cb1: EXP
00001cb2: SUB
00001cb3: SWAP1
00001cb4: SWAP3
00001cb5: AND
00001cb6: PUSH1 0x20
00001cb8: SWAP3
00001cb9: DUP4
00001cba: MUL
00001cbb: SWAP1
00001cbc: SWAP2
00001cbd: ADD
00001cbe: SWAP1
00001cbf: SWAP2
00001cc0: ADD
00001cc1: MSTORE
00001cc2: PUSH1 0x01
00001cc4: SWAP1
00001cc5: SWAP2
00001cc6: ADD
00001cc7: SWAP1
00001cc8: PUSH2 0x1b3f
00001ccb: JUMP
00001ccc: JUMPDEST
00001ccd: POP
00001cce: POP
00001ccf: POP
00001cd0: POP
00001cd1: POP
00001cd2: POP
00001cd3: POP
00001cd4: POP
00001cd5: POP
00001cd6: POP
00001cd7: JUMP
00001cd8: JUMPDEST
00001cd9: PUSH1 0x00
00001cdb: DUP1
00001cdc: PUSH1 0x00
00001cde: DUP1
00001cdf: PUSH2 0x1ce7
00001ce2: DUP6
00001ce3: PUSH2 0x296d
00001ce6: JUMP
00001ce7: JUMPDEST
00001ce8: ISZERO
00001ce9: ISZERO
00001cea: PUSH2 0x1cf2
00001ced: JUMPI
00001cee: PUSH1 0x00
00001cf0: DUP1
00001cf1: REVERT
00001cf2: JUMPDEST
00001cf3: PUSH1 0x01
00001cf5: PUSH1 0xa0
00001cf7: PUSH1 0x02
00001cf9: EXP
00001cfa: SUB
00001cfb: PUSH1 0x14
00001cfd: DUP7
00001cfe: ADD
00001cff: MLOAD
00001d00: AND
00001d01: SWAP4
00001d02: POP
00001d03: PUSH1 0x34
00001d05: DUP6
00001d06: ADD
00001d07: MLOAD
00001d08: SWAP3
00001d09: POP
00001d0a: PUSH1 0x54
00001d0c: DUP6
00001d0d: ADD
00001d0e: MLOAD
00001d0f: SWAP2
00001d10: POP
00001d11: PUSH1 0x68
00001d13: DUP6
00001d14: ADD
00001d15: MLOAD
00001d16: SWAP1
00001d17: POP
00001d18: SWAP2
00001d19: SWAP4
00001d1a: POP
00001d1b: SWAP2
00001d1c: SWAP4
00001d1d: JUMP
00001d1e: JUMPDEST
00001d1f: DUP1
00001d20: PUSH1 0x04
00001d22: PUSH1 0x00
00001d24: DUP5
00001d25: PUSH1 0x40
00001d27: MLOAD
00001d28: PUSH1 0x20
00001d2a: ADD
00001d2b: DUP1
00001d2c: DUP1
00001d2d: PUSH32 0x72656c617965644d657373616765730000000000000000000000000000000000
00001d4e: DUP2
00001d4f: MSTORE
00001d50: POP
00001d51: PUSH1 0x0f
00001d53: ADD
00001d54: DUP3
00001d55: PUSH1 0x00
00001d57: NOT
00001d58: AND
00001d59: PUSH1 0x00
00001d5b: NOT
00001d5c: AND
00001d5d: DUP2
00001d5e: MSTORE
00001d5f: PUSH1 0x20
00001d61: ADD
00001d62: SWAP2
00001d63: POP
00001d64: POP
00001d65: PUSH1 0x40
00001d67: MLOAD
00001d68: PUSH1 0x20
00001d6a: DUP2
00001d6b: DUP4
00001d6c: SUB
00001d6d: SUB
00001d6e: DUP2
00001d6f: MSTORE
00001d70: SWAP1
00001d71: PUSH1 0x40
00001d73: MSTORE
00001d74: PUSH1 0x40
00001d76: MLOAD
00001d77: DUP1
00001d78: DUP3
00001d79: DUP1
00001d7a: MLOAD
00001d7b: SWAP1
00001d7c: PUSH1 0x20
00001d7e: ADD
00001d7f: SWAP1
00001d80: DUP1
00001d81: DUP4
00001d82: DUP4
00001d83: JUMPDEST
00001d84: PUSH1 0x20
00001d86: DUP4
00001d87: LT
00001d88: PUSH2 0x1da2
00001d8b: JUMPI
00001d8c: DUP1
00001d8d: MLOAD
00001d8e: DUP3
00001d8f: MSTORE
00001d90: PUSH1 0x1f
00001d92: NOT
00001d93: SWAP1
00001d94: SWAP3
00001d95: ADD
00001d96: SWAP2
00001d97: PUSH1 0x20
00001d99: SWAP2
00001d9a: DUP3
00001d9b: ADD
00001d9c: SWAP2
00001d9d: ADD
00001d9e: PUSH2 0x1d83
00001da1: JUMP
00001da2: JUMPDEST
00001da3: MLOAD
00001da4: DUP2
00001da5: MLOAD
00001da6: PUSH1 0x20
00001da8: SWAP4
00001da9: DUP5
00001daa: SUB
00001dab: PUSH2 0x0100
00001dae: EXP
00001daf: PUSH1 0x00
00001db1: NOT
00001db2: ADD
00001db3: DUP1
00001db4: NOT
00001db5: SWAP1
00001db6: SWAP3
00001db7: AND
00001db8: SWAP2
00001db9: AND
00001dba: OR
00001dbb: SWAP1
00001dbc: MSTORE
00001dbd: PUSH1 0x40
00001dbf: DUP1
00001dc0: MLOAD
00001dc1: SWAP3
00001dc2: SWAP1
00001dc3: SWAP5
00001dc4: ADD
00001dc5: DUP3
00001dc6: SWAP1
00001dc7: SUB
00001dc8: SWAP1
00001dc9: SWAP2
00001dca: KECCAK256
00001dcb: DUP7
00001dcc: MSTORE
00001dcd: DUP6
00001dce: ADD
00001dcf: SWAP6
00001dd0: SWAP1
00001dd1: SWAP6
00001dd2: MSTORE
00001dd3: SWAP3
00001dd4: SWAP1
00001dd5: SWAP3
00001dd6: ADD
00001dd7: PUSH1 0x00
00001dd9: KECCAK256
00001dda: DUP1
00001ddb: SLOAD
00001ddc: PUSH1 0xff
00001dde: NOT
00001ddf: AND
00001de0: SWAP5
00001de1: ISZERO
00001de2: ISZERO
00001de3: SWAP5
00001de4: SWAP1
00001de5: SWAP5
00001de6: OR
00001de7: SWAP1
00001de8: SWAP4
00001de9: SSTORE
00001dea: POP
00001deb: POP
00001dec: POP
00001ded: POP
00001dee: POP
00001def: JUMP
00001df0: JUMPDEST
00001df1: PUSH1 0x00
00001df3: DUP1
00001df4: PUSH2 0x1dfd
00001df7: DUP5
00001df8: DUP5
00001df9: PUSH2 0x2b9f
00001dfc: JUMP
00001dfd: JUMPDEST
00001dfe: ISZERO
00001dff: ISZERO
00001e00: PUSH2 0x1efe
00001e03: JUMPI
00001e04: PUSH2 0x1e0b
00001e07: PUSH2 0x0dad
00001e0a: JUMP
00001e0b: JUMPDEST
00001e0c: SWAP1
00001e0d: POP
00001e0e: PUSH1 0x01
00001e10: PUSH1 0xa0
00001e12: PUSH1 0x02
00001e14: EXP
00001e15: SUB
00001e16: DUP2
00001e17: AND
00001e18: ISZERO
00001e19: ISZERO
00001e1a: PUSH2 0x1eaa
00001e1d: JUMPI
00001e1e: PUSH1 0x40
00001e20: DUP1
00001e21: MLOAD
00001e22: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001e43: DUP2
00001e44: MSTORE
00001e45: PUSH1 0x20
00001e47: PUSH1 0x04
00001e49: DUP3
00001e4a: ADD
00001e4b: MSTORE
00001e4c: PUSH1 0x23
00001e4e: PUSH1 0x24
00001e50: DUP3
00001e51: ADD
00001e52: MSTORE
00001e53: PUSH32 0x66616c6c6261636b20726563697069656e7420776173206e6f74206173736967
00001e74: PUSH1 0x44
00001e76: DUP3
00001e77: ADD
00001e78: MSTORE
00001e79: PUSH32 0x6e65640000000000000000000000000000000000000000000000000000000000
00001e9a: PUSH1 0x64
00001e9c: DUP3
00001e9d: ADD
00001e9e: MSTORE
00001e9f: SWAP1
00001ea0: MLOAD
00001ea1: SWAP1
00001ea2: DUP2
00001ea3: SWAP1
00001ea4: SUB
00001ea5: PUSH1 0x84
00001ea7: ADD
00001ea8: SWAP1
00001ea9: REVERT
00001eaa: JUMPDEST
00001eab: PUSH2 0x1eb4
00001eae: DUP2
00001eaf: DUP5
00001eb0: PUSH2 0x2b9f
00001eb3: JUMP
00001eb4: JUMPDEST
00001eb5: POP
00001eb6: DUP1
00001eb7: PUSH1 0x01
00001eb9: PUSH1 0xa0
00001ebb: PUSH1 0x02
00001ebd: EXP
00001ebe: SUB
00001ebf: AND
00001ec0: DUP5
00001ec1: PUSH1 0x01
00001ec3: PUSH1 0xa0
00001ec5: PUSH1 0x02
00001ec7: EXP
00001ec8: SUB
00001ec9: AND
00001eca: PUSH32 0x4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe
00001eeb: PUSH1 0x40
00001eed: MLOAD
00001eee: PUSH1 0x40
00001ef0: MLOAD
00001ef1: DUP1
00001ef2: SWAP2
00001ef3: SUB
00001ef4: SWAP1
00001ef5: LOG3
00001ef6: PUSH1 0x01
00001ef8: SWAP2
00001ef9: POP
00001efa: PUSH2 0x1f03
00001efd: JUMP
00001efe: JUMPDEST
00001eff: PUSH1 0x01
00001f01: SWAP2
00001f02: POP
00001f03: JUMPDEST
00001f04: POP
00001f05: SWAP3
00001f06: SWAP2
00001f07: POP
00001f08: POP
00001f09: JUMP
00001f0a: JUMPDEST
00001f0b: PUSH1 0x01
00001f0d: PUSH1 0xa0
00001f0f: PUSH1 0x02
00001f11: EXP
00001f12: SUB
00001f13: DUP2
00001f14: AND
00001f15: ISZERO
00001f16: ISZERO
00001f17: PUSH2 0x1f1f
00001f1a: JUMPI
00001f1b: PUSH1 0x00
00001f1d: DUP1
00001f1e: REVERT
00001f1f: JUMPDEST
00001f20: DUP1
00001f21: PUSH1 0x02
00001f23: PUSH1 0x00
00001f25: PUSH1 0x40
00001f27: MLOAD
00001f28: PUSH1 0x20
00001f2a: ADD
00001f2b: DUP1
00001f2c: DUP1
00001f2d: PUSH32 0x66616c6c6261636b526563697069656e74000000000000000000000000000000
00001f4e: DUP2
00001f4f: MSTORE
00001f50: POP
00001f51: PUSH1 0x11
00001f53: ADD
00001f54: SWAP1
00001f55: POP
00001f56: PUSH1 0x40
00001f58: MLOAD
00001f59: PUSH1 0x20
00001f5b: DUP2
00001f5c: DUP4
00001f5d: SUB
00001f5e: SUB
00001f5f: DUP2
00001f60: MSTORE
00001f61: SWAP1
00001f62: PUSH1 0x40
00001f64: MSTORE
00001f65: PUSH1 0x40
00001f67: MLOAD
00001f68: DUP1
00001f69: DUP3
00001f6a: DUP1
00001f6b: MLOAD
00001f6c: SWAP1
00001f6d: PUSH1 0x20
00001f6f: ADD
00001f70: SWAP1
00001f71: DUP1
00001f72: DUP4
00001f73: DUP4
00001f74: JUMPDEST
00001f75: PUSH1 0x20
00001f77: DUP4
00001f78: LT
00001f79: PUSH2 0x1f93
00001f7c: JUMPI
00001f7d: DUP1
00001f7e: MLOAD
00001f7f: DUP3
00001f80: MSTORE
00001f81: PUSH1 0x1f
00001f83: NOT
00001f84: SWAP1
00001f85: SWAP3
00001f86: ADD
00001f87: SWAP2
00001f88: PUSH1 0x20
00001f8a: SWAP2
00001f8b: DUP3
00001f8c: ADD
00001f8d: SWAP2
00001f8e: ADD
00001f8f: PUSH2 0x1f74
00001f92: JUMP
00001f93: JUMPDEST
00001f94: MLOAD
00001f95: DUP2
00001f96: MLOAD
00001f97: PUSH1 0x20
00001f99: SWAP4
00001f9a: DUP5
00001f9b: SUB
00001f9c: PUSH2 0x0100
00001f9f: EXP
00001fa0: PUSH1 0x00
00001fa2: NOT
00001fa3: ADD
00001fa4: DUP1
00001fa5: NOT
00001fa6: SWAP1
00001fa7: SWAP3
00001fa8: AND
00001fa9: SWAP2
00001faa: AND
00001fab: OR
00001fac: SWAP1
00001fad: MSTORE
00001fae: PUSH1 0x40
00001fb0: DUP1
00001fb1: MLOAD
00001fb2: SWAP3
00001fb3: SWAP1
00001fb4: SWAP5
00001fb5: ADD
00001fb6: DUP3
00001fb7: SWAP1
00001fb8: SUB
00001fb9: SWAP1
00001fba: SWAP2
00001fbb: KECCAK256
00001fbc: DUP7
00001fbd: MSTORE
00001fbe: DUP6
00001fbf: ADD
00001fc0: SWAP6
00001fc1: SWAP1
00001fc2: SWAP6
00001fc3: MSTORE
00001fc4: SWAP3
00001fc5: SWAP1
00001fc6: SWAP3
00001fc7: ADD
00001fc8: PUSH1 0x00
00001fca: KECCAK256
00001fcb: DUP1
00001fcc: SLOAD
00001fcd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fe2: NOT
00001fe3: AND
00001fe4: PUSH1 0x01
00001fe6: PUSH1 0xa0
00001fe8: PUSH1 0x02
00001fea: EXP
00001feb: SUB
00001fec: SWAP6
00001fed: SWAP1
00001fee: SWAP6
00001fef: AND
00001ff0: SWAP5
00001ff1: SWAP1
00001ff2: SWAP5
00001ff3: OR
00001ff4: SWAP1
00001ff5: SWAP4
00001ff6: SSTORE
00001ff7: POP
00001ff8: POP
00001ff9: POP
00001ffa: POP
00001ffb: JUMP
00001ffc: JUMPDEST
00001ffd: PUSH1 0x00
00001fff: PUSH2 0x2006
00002002: PUSH2 0x0a9f
00002005: JUMP
00002006: JUMPDEST
00002007: ISZERO
00002008: PUSH2 0x2010
0000200b: JUMPI
0000200c: PUSH1 0x00
0000200e: DUP1
0000200f: REVERT
00002010: JUMPDEST
00002011: PUSH1 0x01
00002013: PUSH1 0xa0
00002015: PUSH1 0x02
00002017: EXP
00002018: SUB
00002019: DUP11
0000201a: AND
0000201b: ISZERO
0000201c: DUP1
0000201d: ISZERO
0000201e: SWAP1
0000201f: PUSH2 0x202c
00002022: JUMPI
00002023: POP
00002024: PUSH2 0x202c
00002027: DUP11
00002028: PUSH2 0x2c80
0000202b: JUMP
0000202c: JUMPDEST
0000202d: ISZERO
0000202e: ISZERO
0000202f: PUSH2 0x2037
00002032: JUMPI
00002033: PUSH1 0x00
00002035: DUP1
00002036: REVERT
00002037: JUMPDEST
00002038: DUP8
00002039: ISZERO
0000203a: ISZERO
0000203b: PUSH2 0x2043
0000203e: JUMPI
0000203f: PUSH1 0x00
00002041: DUP1
00002042: REVERT
00002043: JUMPDEST
00002044: PUSH1 0x00
00002046: DUP8
00002047: GT
00002048: PUSH2 0x2050
0000204b: JUMPI
0000204c: PUSH1 0x00
0000204e: DUP1
0000204f: REVERT
00002050: JUMPDEST
00002051: DUP5
00002052: DUP5
00002053: LT
00002054: PUSH2 0x205c
00002057: JUMPI
00002058: PUSH1 0x00
0000205a: DUP1
0000205b: REVERT
0000205c: JUMPDEST
0000205d: PUSH1 0x01
0000205f: PUSH1 0xa0
00002061: PUSH1 0x02
00002063: EXP
00002064: SUB
00002065: DUP4
00002066: AND
00002067: ISZERO
00002068: ISZERO
00002069: PUSH2 0x2071
0000206c: JUMPI
0000206d: PUSH1 0x00
0000206f: DUP1
00002070: REVERT
00002071: JUMPDEST
00002072: PUSH2 0x2710
00002075: DUP3
00002076: LT
00002077: PUSH2 0x20e1
0000207a: JUMPI
0000207b: PUSH1 0x40
0000207d: DUP1
0000207e: MLOAD
0000207f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000020a0: DUP2
000020a1: MSTORE
000020a2: PUSH1 0x20
000020a4: PUSH1 0x04
000020a6: DUP3
000020a7: ADD
000020a8: MSTORE
000020a9: PUSH1 0x13
000020ab: PUSH1 0x24
000020ad: DUP3
000020ae: ADD
000020af: MSTORE
000020b0: PUSH32 0x496e76616c6964206665652070657263656e7400000000000000000000000000
000020d1: PUSH1 0x44
000020d3: DUP3
000020d4: ADD
000020d5: MSTORE
000020d6: SWAP1
000020d7: MLOAD
000020d8: SWAP1
000020d9: DUP2
000020da: SWAP1
000020db: SUB
000020dc: PUSH1 0x64
000020de: ADD
000020df: SWAP1
000020e0: REVERT
000020e1: JUMPDEST
000020e2: DUP10
000020e3: PUSH1 0x02
000020e5: PUSH1 0x00
000020e7: PUSH1 0x40
000020e9: MLOAD
000020ea: PUSH1 0x20
000020ec: ADD
000020ed: DUP1
000020ee: DUP1
000020ef: PUSH32 0x76616c696461746f72436f6e7472616374000000000000000000000000000000
00002110: DUP2
00002111: MSTORE
00002112: POP
00002113: PUSH1 0x11
00002115: ADD
00002116: SWAP1
00002117: POP
00002118: PUSH1 0x40
0000211a: MLOAD
0000211b: PUSH1 0x20
0000211d: DUP2
0000211e: DUP4
0000211f: SUB
00002120: SUB
00002121: DUP2
00002122: MSTORE
00002123: SWAP1
00002124: PUSH1 0x40
00002126: MSTORE
00002127: PUSH1 0x40
00002129: MLOAD
0000212a: DUP1
0000212b: DUP3
0000212c: DUP1
0000212d: MLOAD
0000212e: SWAP1
0000212f: PUSH1 0x20
00002131: ADD
00002132: SWAP1
00002133: DUP1
00002134: DUP4
00002135: DUP4
00002136: JUMPDEST
00002137: PUSH1 0x20
00002139: DUP4
0000213a: LT
0000213b: PUSH2 0x2155
0000213e: JUMPI
0000213f: DUP1
00002140: MLOAD
00002141: DUP3
00002142: MSTORE
00002143: PUSH1 0x1f
00002145: NOT
00002146: SWAP1
00002147: SWAP3
00002148: ADD
00002149: SWAP2
0000214a: PUSH1 0x20
0000214c: SWAP2
0000214d: DUP3
0000214e: ADD
0000214f: SWAP2
00002150: ADD
00002151: PUSH2 0x2136
00002154: JUMP
00002155: JUMPDEST
00002156: MLOAD
00002157: DUP2
00002158: MLOAD
00002159: PUSH1 0x20
0000215b: SWAP4
0000215c: DUP5
0000215d: SUB
0000215e: PUSH2 0x0100
00002161: EXP
00002162: PUSH1 0x00
00002164: NOT
00002165: ADD
00002166: DUP1
00002167: NOT
00002168: SWAP1
00002169: SWAP3
0000216a: AND
0000216b: SWAP2
0000216c: AND
0000216d: OR
0000216e: SWAP1
0000216f: MSTORE
00002170: PUSH1 0x40
00002172: DUP1
00002173: MLOAD
00002174: SWAP3
00002175: SWAP1
00002176: SWAP5
00002177: ADD
00002178: DUP3
00002179: SWAP1
0000217a: SUB
0000217b: SWAP1
0000217c: SWAP2
0000217d: KECCAK256
0000217e: DUP7
0000217f: MSTORE
00002180: DUP6
00002181: ADD
00002182: SWAP6
00002183: SWAP1
00002184: SWAP6
00002185: MSTORE
00002186: SWAP3
00002187: SWAP1
00002188: SWAP3
00002189: ADD
0000218a: PUSH1 0x00
0000218c: KECCAK256
0000218d: DUP1
0000218e: SLOAD
0000218f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021a4: NOT
000021a5: AND
000021a6: PUSH1 0x01
000021a8: PUSH1 0xa0
000021aa: PUSH1 0x02
000021ac: EXP
000021ad: SUB
000021ae: SWAP6
000021af: SWAP1
000021b0: SWAP6
000021b1: AND
000021b2: SWAP5
000021b3: SWAP1
000021b4: SWAP5
000021b5: OR
000021b6: SWAP1
000021b7: SWAP4
000021b8: SSTORE
000021b9: POP
000021ba: PUSH2 0x21c6
000021bd: SWAP2
000021be: POP
000021bf: DUP11
000021c0: SWAP1
000021c1: POP
000021c2: PUSH2 0x2c88
000021c5: JUMP
000021c6: JUMPDEST
000021c7: NUMBER
000021c8: PUSH1 0x00
000021ca: DUP1
000021cb: PUSH1 0x40
000021cd: MLOAD
000021ce: PUSH1 0x20
000021d0: ADD
000021d1: DUP1
000021d2: DUP1
000021d3: PUSH32 0x6465706c6f7965644174426c6f636b0000000000000000000000000000000000
000021f4: DUP2
000021f5: MSTORE
000021f6: POP
000021f7: PUSH1 0x0f
000021f9: ADD
000021fa: SWAP1
000021fb: POP
000021fc: PUSH1 0x40
000021fe: MLOAD
000021ff: PUSH1 0x20
00002201: DUP2
00002202: DUP4
00002203: SUB
00002204: SUB
00002205: DUP2
00002206: MSTORE
00002207: SWAP1
00002208: PUSH1 0x40
0000220a: MSTORE
0000220b: PUSH1 0x40
0000220d: MLOAD
0000220e: DUP1
0000220f: DUP3
00002210: DUP1
00002211: MLOAD
00002212: SWAP1
00002213: PUSH1 0x20
00002215: ADD
00002216: SWAP1
00002217: DUP1
00002218: DUP4
00002219: DUP4
0000221a: JUMPDEST
0000221b: PUSH1 0x20
0000221d: DUP4
0000221e: LT
0000221f: PUSH2 0x2239
00002222: JUMPI
00002223: DUP1
00002224: MLOAD
00002225: DUP3
00002226: MSTORE
00002227: PUSH1 0x1f
00002229: NOT
0000222a: SWAP1
0000222b: SWAP3
0000222c: ADD
0000222d: SWAP2
0000222e: PUSH1 0x20
00002230: SWAP2
00002231: DUP3
00002232: ADD
00002233: SWAP2
00002234: ADD
00002235: PUSH2 0x221a
00002238: JUMP
00002239: JUMPDEST
0000223a: MLOAD
0000223b: DUP2
0000223c: MLOAD
0000223d: PUSH1 0x20
0000223f: SWAP4
00002240: DUP5
00002241: SUB
00002242: PUSH2 0x0100
00002245: EXP
00002246: PUSH1 0x00
00002248: NOT
00002249: ADD
0000224a: DUP1
0000224b: NOT
0000224c: SWAP1
0000224d: SWAP3
0000224e: AND
0000224f: SWAP2
00002250: AND
00002251: OR
00002252: SWAP1
00002253: MSTORE
00002254: PUSH1 0x40
00002256: DUP1
00002257: MLOAD
00002258: SWAP3
00002259: SWAP1
0000225a: SWAP5
0000225b: ADD
0000225c: DUP3
0000225d: SWAP1
0000225e: SUB
0000225f: SWAP1
00002260: SWAP2
00002261: KECCAK256
00002262: DUP7
00002263: MSTORE
00002264: DUP6
00002265: DUP2
00002266: ADD
00002267: SWAP7
00002268: SWAP1
00002269: SWAP7
0000226a: MSTORE
0000226b: POP
0000226c: SWAP3
0000226d: DUP4
0000226e: ADD
0000226f: PUSH1 0x00
00002271: SWAP1
00002272: DUP2
00002273: KECCAK256
00002274: SWAP6
00002275: SWAP1
00002276: SWAP6
00002277: SSTORE
00002278: POP
00002279: POP
0000227a: DUP1
0000227b: MLOAD
0000227c: PUSH32 0x7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000
0000229d: DUP2
0000229e: DUP5
0000229f: ADD
000022a0: MSTORE
000022a1: DUP2
000022a2: MLOAD
000022a3: PUSH1 0x1a
000022a5: DUP2
000022a6: DUP4
000022a7: SUB
000022a8: ADD
000022a9: DUP2
000022aa: MSTORE
000022ab: PUSH1 0x3a
000022ad: SWAP1
000022ae: SWAP2
000022af: ADD
000022b0: SWAP2
000022b1: DUP3
000022b2: SWAP1
000022b3: MSTORE
000022b4: DUP1
000022b5: MLOAD
000022b6: DUP13
000022b7: SWAP5
000022b8: SWAP4
000022b9: DUP5
000022ba: SWAP4
000022bb: SWAP2
000022bc: DUP3
000022bd: SWAP2
000022be: DUP5
000022bf: ADD
000022c0: SWAP1
000022c1: DUP1
000022c2: DUP4
000022c3: DUP4
000022c4: JUMPDEST
000022c5: PUSH1 0x20
000022c7: DUP4
000022c8: LT
000022c9: PUSH2 0x22e3
000022cc: JUMPI
000022cd: DUP1
000022ce: MLOAD
000022cf: DUP3
000022d0: MSTORE
000022d1: PUSH1 0x1f
000022d3: NOT
000022d4: SWAP1
000022d5: SWAP3
000022d6: ADD
000022d7: SWAP2
000022d8: PUSH1 0x20
000022da: SWAP2
000022db: DUP3
000022dc: ADD
000022dd: SWAP2
000022de: ADD
000022df: PUSH2 0x22c4
000022e2: JUMP
000022e3: JUMPDEST
000022e4: MLOAD
000022e5: DUP2
000022e6: MLOAD
000022e7: PUSH1 0x20
000022e9: SWAP4
000022ea: DUP5
000022eb: SUB
000022ec: PUSH2 0x0100
000022ef: EXP
000022f0: PUSH1 0x00
000022f2: NOT
000022f3: ADD
000022f4: DUP1
000022f5: NOT
000022f6: SWAP1
000022f7: SWAP3
000022f8: AND
000022f9: SWAP2
000022fa: AND
000022fb: OR
000022fc: SWAP1
000022fd: MSTORE
000022fe: PUSH1 0x40
00002300: DUP1
00002301: MLOAD
00002302: SWAP3
00002303: SWAP1
00002304: SWAP5
00002305: ADD
00002306: DUP3
00002307: SWAP1
00002308: SUB
00002309: SWAP1
0000230a: SWAP2
0000230b: KECCAK256
0000230c: DUP7
0000230d: MSTORE
0000230e: DUP6
0000230f: DUP2
00002310: ADD
00002311: SWAP7
00002312: SWAP1
00002313: SWAP7
00002314: MSTORE
00002315: POP
00002316: SWAP3
00002317: DUP4
00002318: ADD
00002319: PUSH1 0x00
0000231b: SWAP1
0000231c: DUP2
0000231d: KECCAK256
0000231e: SWAP6
0000231f: SWAP1
00002320: SWAP6
00002321: SSTORE
00002322: POP
00002323: POP
00002324: DUP1
00002325: MLOAD
00002326: PUSH32 0x6761735072696365000000000000000000000000000000000000000000000000
00002347: DUP2
00002348: DUP5
00002349: ADD
0000234a: MSTORE
0000234b: DUP2
0000234c: MLOAD
0000234d: PUSH1 0x08
0000234f: DUP2
00002350: DUP4
00002351: SUB
00002352: ADD
00002353: DUP2
00002354: MSTORE
00002355: PUSH1 0x28
00002357: SWAP1
00002358: SWAP2
00002359: ADD
0000235a: SWAP2
0000235b: DUP3
0000235c: SWAP1
0000235d: MSTORE
0000235e: DUP1
0000235f: MLOAD
00002360: DUP12
00002361: SWAP5
00002362: SWAP4
00002363: DUP5
00002364: SWAP4
00002365: SWAP2
00002366: DUP3
00002367: SWAP2
00002368: DUP5
00002369: ADD
0000236a: SWAP1
0000236b: DUP1
0000236c: DUP4
0000236d: DUP4
0000236e: JUMPDEST
0000236f: PUSH1 0x20
00002371: DUP4
00002372: LT
00002373: PUSH2 0x238d
00002376: JUMPI
00002377: DUP1
00002378: MLOAD
00002379: DUP3
0000237a: MSTORE
0000237b: PUSH1 0x1f
0000237d: NOT
0000237e: SWAP1
0000237f: SWAP3
00002380: ADD
00002381: SWAP2
00002382: PUSH1 0x20
00002384: SWAP2
00002385: DUP3
00002386: ADD
00002387: SWAP2
00002388: ADD
00002389: PUSH2 0x236e
0000238c: JUMP
0000238d: JUMPDEST
0000238e: MLOAD
0000238f: DUP2
00002390: MLOAD
00002391: PUSH1 0x20
00002393: SWAP4
00002394: DUP5
00002395: SUB
00002396: PUSH2 0x0100
00002399: EXP
0000239a: PUSH1 0x00
0000239c: NOT
0000239d: ADD
0000239e: DUP1
0000239f: NOT
000023a0: SWAP1
000023a1: SWAP3
000023a2: AND
000023a3: SWAP2
000023a4: AND
000023a5: OR
000023a6: SWAP1
000023a7: MSTORE
000023a8: PUSH1 0x40
000023aa: DUP1
000023ab: MLOAD
000023ac: SWAP3
000023ad: SWAP1
000023ae: SWAP5
000023af: ADD
000023b0: DUP3
000023b1: SWAP1
000023b2: SUB
000023b3: SWAP1
000023b4: SWAP2
000023b5: KECCAK256
000023b6: DUP7
000023b7: MSTORE
000023b8: DUP6
000023b9: DUP2
000023ba: ADD
000023bb: SWAP7
000023bc: SWAP1
000023bd: SWAP7
000023be: MSTORE
000023bf: POP
000023c0: SWAP3
000023c1: DUP4
000023c2: ADD
000023c3: PUSH1 0x00
000023c5: SWAP1
000023c6: DUP2
000023c7: KECCAK256
000023c8: SWAP6
000023c9: SWAP1
000023ca: SWAP6
000023cb: SSTORE
000023cc: POP
000023cd: POP
000023ce: DUP1
000023cf: MLOAD
000023d0: PUSH32 0x6d61785065725478000000000000000000000000000000000000000000000000
000023f1: DUP2
000023f2: DUP5
000023f3: ADD
000023f4: MSTORE
000023f5: DUP2
000023f6: MLOAD
000023f7: PUSH1 0x08
000023f9: DUP2
000023fa: DUP4
000023fb: SUB
000023fc: ADD
000023fd: DUP2
000023fe: MSTORE
000023ff: PUSH1 0x28
00002401: SWAP1
00002402: SWAP2
00002403: ADD
00002404: SWAP2
00002405: DUP3
00002406: SWAP1
00002407: MSTORE
00002408: DUP1
00002409: MLOAD
0000240a: DUP11
0000240b: SWAP5
0000240c: SWAP4
0000240d: DUP5
0000240e: SWAP4
0000240f: SWAP2
00002410: DUP3
00002411: SWAP2
00002412: DUP5
00002413: ADD
00002414: SWAP1
00002415: DUP1
00002416: DUP4
00002417: DUP4
00002418: JUMPDEST
00002419: PUSH1 0x20
0000241b: DUP4
0000241c: LT
0000241d: PUSH2 0x2437
00002420: JUMPI
00002421: DUP1
00002422: MLOAD
00002423: DUP3
00002424: MSTORE
00002425: PUSH1 0x1f
00002427: NOT
00002428: SWAP1
00002429: SWAP3
0000242a: ADD
0000242b: SWAP2
0000242c: PUSH1 0x20
0000242e: SWAP2
0000242f: DUP3
00002430: ADD
00002431: SWAP2
00002432: ADD
00002433: PUSH2 0x2418
00002436: JUMP
00002437: JUMPDEST
00002438: MLOAD
00002439: DUP2
0000243a: MLOAD
0000243b: PUSH1 0x20
0000243d: SWAP4
0000243e: DUP5
0000243f: SUB
00002440: PUSH2 0x0100
00002443: EXP
00002444: PUSH1 0x00
00002446: NOT
00002447: ADD
00002448: DUP1
00002449: NOT
0000244a: SWAP1
0000244b: SWAP3
0000244c: AND
0000244d: SWAP2
0000244e: AND
0000244f: OR
00002450: SWAP1
00002451: MSTORE
00002452: PUSH1 0x40
00002454: DUP1
00002455: MLOAD
00002456: SWAP3
00002457: SWAP1
00002458: SWAP5
00002459: ADD
0000245a: DUP3
0000245b: SWAP1
0000245c: SUB
0000245d: SWAP1
0000245e: SWAP2
0000245f: KECCAK256
00002460: DUP7
00002461: MSTORE
00002462: DUP6
00002463: DUP2
00002464: ADD
00002465: SWAP7
00002466: SWAP1
00002467: SWAP7
00002468: MSTORE
00002469: POP
0000246a: SWAP3
0000246b: DUP4
0000246c: ADD
0000246d: PUSH1 0x00
0000246f: SWAP1
00002470: DUP2
00002471: KECCAK256
00002472: SWAP6
00002473: SWAP1
00002474: SWAP6
00002475: SSTORE
00002476: POP
00002477: POP
00002478: DUP1
00002479: MLOAD
0000247a: PUSH32 0x657865637574696f6e4461696c794c696d697400000000000000000000000000
0000249b: DUP2
0000249c: DUP5
0000249d: ADD
0000249e: MSTORE
0000249f: DUP2
000024a0: MLOAD
000024a1: PUSH1 0x13
000024a3: DUP2
000024a4: DUP4
000024a5: SUB
000024a6: ADD
000024a7: DUP2
000024a8: MSTORE
000024a9: PUSH1 0x33
000024ab: SWAP1
000024ac: SWAP2
000024ad: ADD
000024ae: SWAP2
000024af: DUP3
000024b0: SWAP1
000024b1: MSTORE
000024b2: DUP1
000024b3: MLOAD
000024b4: DUP10
000024b5: SWAP5
000024b6: SWAP4
000024b7: DUP5
000024b8: SWAP4
000024b9: SWAP2
000024ba: DUP3
000024bb: SWAP2
000024bc: DUP5
000024bd: ADD
000024be: SWAP1
000024bf: DUP1
000024c0: DUP4
000024c1: DUP4
000024c2: JUMPDEST
000024c3: PUSH1 0x20
000024c5: DUP4
000024c6: LT
000024c7: PUSH2 0x24e1
000024ca: JUMPI
000024cb: DUP1
000024cc: MLOAD
000024cd: DUP3
000024ce: MSTORE
000024cf: PUSH1 0x1f
000024d1: NOT
000024d2: SWAP1
000024d3: SWAP3
000024d4: ADD
000024d5: SWAP2
000024d6: PUSH1 0x20
000024d8: SWAP2
000024d9: DUP3
000024da: ADD
000024db: SWAP2
000024dc: ADD
000024dd: PUSH2 0x24c2
000024e0: JUMP
000024e1: JUMPDEST
000024e2: MLOAD
000024e3: DUP2
000024e4: MLOAD
000024e5: PUSH1 0x20
000024e7: SWAP4
000024e8: DUP5
000024e9: SUB
000024ea: PUSH2 0x0100
000024ed: EXP
000024ee: PUSH1 0x00
000024f0: NOT
000024f1: ADD
000024f2: DUP1
000024f3: NOT
000024f4: SWAP1
000024f5: SWAP3
000024f6: AND
000024f7: SWAP2
000024f8: AND
000024f9: OR
000024fa: SWAP1
000024fb: MSTORE
000024fc: PUSH1 0x40
000024fe: DUP1
000024ff: MLOAD
00002500: SWAP3
00002501: SWAP1
00002502: SWAP5
00002503: ADD
00002504: DUP3
00002505: SWAP1
00002506: SUB
00002507: SWAP1
00002508: SWAP2
00002509: KECCAK256
0000250a: DUP7
0000250b: MSTORE
0000250c: DUP6
0000250d: DUP2
0000250e: ADD
0000250f: SWAP7
00002510: SWAP1
00002511: SWAP7
00002512: MSTORE
00002513: POP
00002514: SWAP3
00002515: DUP4
00002516: ADD
00002517: PUSH1 0x00
00002519: SWAP1
0000251a: DUP2
0000251b: KECCAK256
0000251c: SWAP6
0000251d: SWAP1
0000251e: SWAP6
0000251f: SSTORE
00002520: POP
00002521: POP
00002522: DUP1
00002523: MLOAD
00002524: PUSH32 0x657865637574696f6e4d61785065725478000000000000000000000000000000
00002545: DUP2
00002546: DUP5
00002547: ADD
00002548: MSTORE
00002549: DUP2
0000254a: MLOAD
0000254b: PUSH1 0x11
0000254d: DUP2
0000254e: DUP4
0000254f: SUB
00002550: ADD
00002551: DUP2
00002552: MSTORE
00002553: PUSH1 0x31
00002555: SWAP1
00002556: SWAP2
00002557: ADD
00002558: SWAP2
00002559: DUP3
0000255a: SWAP1
0000255b: MSTORE
0000255c: DUP1
0000255d: MLOAD
0000255e: DUP9
0000255f: SWAP5
00002560: SWAP4
00002561: DUP5
00002562: SWAP4
00002563: SWAP2
00002564: DUP3
00002565: SWAP2
00002566: DUP5
00002567: ADD
00002568: SWAP1
00002569: DUP1
0000256a: DUP4
0000256b: DUP4
0000256c: JUMPDEST
0000256d: PUSH1 0x20
0000256f: DUP4
00002570: LT
00002571: PUSH2 0x258b
00002574: JUMPI
00002575: DUP1
00002576: MLOAD
00002577: DUP3
00002578: MSTORE
00002579: PUSH1 0x1f
0000257b: NOT
0000257c: SWAP1
0000257d: SWAP3
0000257e: ADD
0000257f: SWAP2
00002580: PUSH1 0x20
00002582: SWAP2
00002583: DUP3
00002584: ADD
00002585: SWAP2
00002586: ADD
00002587: PUSH2 0x256c
0000258a: JUMP
0000258b: JUMPDEST
0000258c: MLOAD
0000258d: DUP2
0000258e: MLOAD
0000258f: PUSH1 0x20
00002591: SWAP4
00002592: DUP5
00002593: SUB
00002594: PUSH2 0x0100
00002597: EXP
00002598: PUSH1 0x00
0000259a: NOT
0000259b: ADD
0000259c: DUP1
0000259d: NOT
0000259e: SWAP1
0000259f: SWAP3
000025a0: AND
000025a1: SWAP2
000025a2: AND
000025a3: OR
000025a4: SWAP1
000025a5: MSTORE
000025a6: PUSH1 0x40
000025a8: DUP1
000025a9: MLOAD
000025aa: SWAP3
000025ab: SWAP1
000025ac: SWAP5
000025ad: ADD
000025ae: DUP3
000025af: SWAP1
000025b0: SUB
000025b1: SWAP1
000025b2: SWAP2
000025b3: KECCAK256
000025b4: DUP7
000025b5: MSTORE
000025b6: DUP6
000025b7: DUP2
000025b8: ADD
000025b9: SWAP7
000025ba: SWAP1
000025bb: SWAP7
000025bc: MSTORE
000025bd: POP
000025be: SWAP3
000025bf: DUP4
000025c0: ADD
000025c1: PUSH1 0x00
000025c3: SWAP1
000025c4: DUP2
000025c5: KECCAK256
000025c6: SWAP6
000025c7: SWAP1
000025c8: SWAP6
000025c9: SSTORE
000025ca: POP
000025cb: POP
000025cc: DUP1
000025cd: MLOAD
000025ce: PUSH32 0x66656550657263656e7400000000000000000000000000000000000000000000
000025ef: DUP2
000025f0: DUP5
000025f1: ADD
000025f2: MSTORE
000025f3: DUP2
000025f4: MLOAD
000025f5: PUSH1 0x0a
000025f7: DUP2
000025f8: DUP4
000025f9: SUB
000025fa: ADD
000025fb: DUP2
000025fc: MSTORE
000025fd: PUSH1 0x2a
000025ff: SWAP1
00002600: SWAP2
00002601: ADD
00002602: SWAP2
00002603: DUP3
00002604: SWAP1
00002605: MSTORE
00002606: DUP1
00002607: MLOAD
00002608: DUP7
00002609: SWAP5
0000260a: SWAP4
0000260b: DUP5
0000260c: SWAP4
0000260d: SWAP2
0000260e: DUP3
0000260f: SWAP2
00002610: DUP5
00002611: ADD
00002612: SWAP1
00002613: DUP1
00002614: DUP4
00002615: DUP4
00002616: JUMPDEST
00002617: PUSH1 0x20
00002619: DUP4
0000261a: LT
0000261b: PUSH2 0x2635
0000261e: JUMPI
0000261f: DUP1
00002620: MLOAD
00002621: DUP3
00002622: MSTORE
00002623: PUSH1 0x1f
00002625: NOT
00002626: SWAP1
00002627: SWAP3
00002628: ADD
00002629: SWAP2
0000262a: PUSH1 0x20
0000262c: SWAP2
0000262d: DUP3
0000262e: ADD
0000262f: SWAP2
00002630: ADD
00002631: PUSH2 0x2616
00002634: JUMP
00002635: JUMPDEST
00002636: MLOAD
00002637: DUP2
00002638: MLOAD
00002639: PUSH1 0x20
0000263b: SWAP4
0000263c: DUP5
0000263d: SUB
0000263e: PUSH2 0x0100
00002641: EXP
00002642: PUSH1 0x00
00002644: NOT
00002645: ADD
00002646: DUP1
00002647: NOT
00002648: SWAP1
00002649: SWAP3
0000264a: AND
0000264b: SWAP2
0000264c: AND
0000264d: OR
0000264e: SWAP1
0000264f: MSTORE
00002650: PUSH1 0x40
00002652: DUP1
00002653: MLOAD
00002654: SWAP3
00002655: SWAP1
00002656: SWAP5
00002657: ADD
00002658: DUP3
00002659: SWAP1
0000265a: SUB
0000265b: SWAP1
0000265c: SWAP2
0000265d: KECCAK256
0000265e: DUP7
0000265f: MSTORE
00002660: DUP6
00002661: ADD
00002662: SWAP6
00002663: SWAP1
00002664: SWAP6
00002665: MSTORE
00002666: SWAP3
00002667: SWAP1
00002668: SWAP3
00002669: ADD
0000266a: PUSH1 0x00
0000266c: KECCAK256
0000266d: SWAP4
0000266e: SWAP1
0000266f: SWAP4
00002670: SSTORE
00002671: POP
00002672: PUSH2 0x267e
00002675: SWAP2
00002676: POP
00002677: DUP5
00002678: SWAP1
00002679: POP
0000267a: PUSH2 0x28af
0000267d: JUMP
0000267e: JUMPDEST
0000267f: PUSH2 0x2688
00002682: PUSH1 0x01
00002684: PUSH2 0x2d22
00002687: JUMP
00002688: JUMPDEST
00002689: PUSH2 0x0eaf
0000268c: PUSH2 0x0a9f
0000268f: JUMP
00002690: JUMPDEST
00002691: PUSH1 0x00
00002693: DUP1
00002694: PUSH2 0x269b
00002697: PUSH2 0x17a7
0000269a: JUMP
0000269b: JUMPDEST
0000269c: PUSH1 0x01
0000269e: PUSH1 0xa0
000026a0: PUSH1 0x02
000026a2: EXP
000026a3: SUB
000026a4: AND
000026a5: CALLER
000026a6: EQ
000026a7: PUSH2 0x26af
000026aa: JUMPI
000026ab: PUSH1 0x00
000026ad: DUP1
000026ae: REVERT
000026af: JUMPDEST
000026b0: PUSH1 0x01
000026b2: PUSH1 0xa0
000026b4: PUSH1 0x02
000026b6: EXP
000026b7: SUB
000026b8: DUP4
000026b9: AND
000026ba: ISZERO
000026bb: ISZERO
000026bc: PUSH2 0x26c4
000026bf: JUMPI
000026c0: PUSH1 0x00
000026c2: DUP1
000026c3: REVERT
000026c4: JUMPDEST
000026c5: PUSH1 0x01
000026c7: PUSH1 0xa0
000026c9: PUSH1 0x02
000026cb: EXP
000026cc: SUB
000026cd: DUP5
000026ce: AND
000026cf: ISZERO
000026d0: ISZERO
000026d1: PUSH2 0x2710
000026d4: JUMPI
000026d5: PUSH1 0x40
000026d7: MLOAD
000026d8: PUSH1 0x01
000026da: PUSH1 0xa0
000026dc: PUSH1 0x02
000026de: EXP
000026df: SUB
000026e0: DUP5
000026e1: AND
000026e2: SWAP1
000026e3: ADDRESS
000026e4: BALANCE
000026e5: DUP1
000026e6: ISZERO
000026e7: PUSH2 0x08fc
000026ea: MUL
000026eb: SWAP2
000026ec: PUSH1 0x00
000026ee: DUP2
000026ef: DUP2
000026f0: DUP2
000026f1: DUP6
000026f2: DUP9
000026f3: DUP9
000026f4: CALL
000026f5: SWAP4
000026f6: POP
000026f7: POP
000026f8: POP
000026f9: POP
000026fa: ISZERO
000026fb: DUP1
000026fc: ISZERO
000026fd: PUSH2 0x270a
00002700: JUMPI
00002701: RETURNDATASIZE
00002702: PUSH1 0x00
00002704: DUP1
00002705: RETURNDATACOPY
00002706: RETURNDATASIZE
00002707: PUSH1 0x00
00002709: REVERT
0000270a: JUMPDEST
0000270b: POP
0000270c: PUSH2 0x2846
0000270f: JUMP
00002710: JUMPDEST
00002711: PUSH1 0x40
00002713: DUP1
00002714: MLOAD
00002715: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00002736: DUP2
00002737: MSTORE
00002738: ADDRESS
00002739: PUSH1 0x04
0000273b: DUP3
0000273c: ADD
0000273d: MSTORE
0000273e: SWAP1
0000273f: MLOAD
00002740: DUP6
00002741: SWAP4
00002742: POP
00002743: PUSH1 0x01
00002745: PUSH1 0xa0
00002747: PUSH1 0x02
00002749: EXP
0000274a: SUB
0000274b: DUP5
0000274c: AND
0000274d: SWAP2
0000274e: PUSH4 0x70a08231
00002753: SWAP2
00002754: PUSH1 0x24
00002756: DUP1
00002757: DUP4
00002758: ADD
00002759: SWAP3
0000275a: PUSH1 0x20
0000275c: SWAP3
0000275d: SWAP2
0000275e: SWAP1
0000275f: DUP3
00002760: SWAP1
00002761: SUB
00002762: ADD
00002763: DUP2
00002764: PUSH1 0x00
00002766: DUP8
00002767: DUP1
00002768: EXTCODESIZE
00002769: ISZERO
0000276a: DUP1
0000276b: ISZERO
0000276c: PUSH2 0x2774
0000276f: JUMPI
00002770: PUSH1 0x00
00002772: DUP1
00002773: REVERT
00002774: JUMPDEST
00002775: POP
00002776: GAS
00002777: CALL
00002778: ISZERO
00002779: DUP1
0000277a: ISZERO
0000277b: PUSH2 0x2788
0000277e: JUMPI
0000277f: RETURNDATASIZE
00002780: PUSH1 0x00
00002782: DUP1
00002783: RETURNDATACOPY
00002784: RETURNDATASIZE
00002785: PUSH1 0x00
00002787: REVERT
00002788: JUMPDEST
00002789: POP
0000278a: POP
0000278b: POP
0000278c: POP
0000278d: PUSH1 0x40
0000278f: MLOAD
00002790: RETURNDATASIZE
00002791: PUSH1 0x20
00002793: DUP2
00002794: LT
00002795: ISZERO
00002796: PUSH2 0x279e
00002799: JUMPI
0000279a: PUSH1 0x00
0000279c: DUP1
0000279d: REVERT
0000279e: JUMPDEST
0000279f: POP
000027a0: MLOAD
000027a1: PUSH1 0x40
000027a3: DUP1
000027a4: MLOAD
000027a5: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
000027c6: DUP2
000027c7: MSTORE
000027c8: PUSH1 0x01
000027ca: PUSH1 0xa0
000027cc: PUSH1 0x02
000027ce: EXP
000027cf: SUB
000027d0: DUP7
000027d1: DUP2
000027d2: AND
000027d3: PUSH1 0x04
000027d5: DUP4
000027d6: ADD
000027d7: MSTORE
000027d8: PUSH1 0x24
000027da: DUP3
000027db: ADD
000027dc: DUP5
000027dd: SWAP1
000027de: MSTORE
000027df: SWAP2
000027e0: MLOAD
000027e1: SWAP3
000027e2: SWAP4
000027e3: POP
000027e4: SWAP1
000027e5: DUP5
000027e6: AND
000027e7: SWAP2
000027e8: PUSH4 0xa9059cbb
000027ed: SWAP2
000027ee: PUSH1 0x44
000027f0: DUP1
000027f1: DUP3
000027f2: ADD
000027f3: SWAP3
000027f4: PUSH1 0x20
000027f6: SWAP3
000027f7: SWAP1
000027f8: SWAP2
000027f9: SWAP1
000027fa: DUP3
000027fb: SWAP1
000027fc: SUB
000027fd: ADD
000027fe: DUP2
000027ff: PUSH1 0x00
00002801: DUP8
00002802: DUP1
00002803: EXTCODESIZE
00002804: ISZERO
00002805: DUP1
00002806: ISZERO
00002807: PUSH2 0x280f
0000280a: JUMPI
0000280b: PUSH1 0x00
0000280d: DUP1
0000280e: REVERT
0000280f: JUMPDEST
00002810: POP
00002811: GAS
00002812: CALL
00002813: ISZERO
00002814: DUP1
00002815: ISZERO
00002816: PUSH2 0x2823
00002819: JUMPI
0000281a: RETURNDATASIZE
0000281b: PUSH1 0x00
0000281d: DUP1
0000281e: RETURNDATACOPY
0000281f: RETURNDATASIZE
00002820: PUSH1 0x00
00002822: REVERT
00002823: JUMPDEST
00002824: POP
00002825: POP
00002826: POP
00002827: POP
00002828: PUSH1 0x40
0000282a: MLOAD
0000282b: RETURNDATASIZE
0000282c: PUSH1 0x20
0000282e: DUP2
0000282f: LT
00002830: ISZERO
00002831: PUSH2 0x2839
00002834: JUMPI
00002835: PUSH1 0x00
00002837: DUP1
00002838: REVERT
00002839: JUMPDEST
0000283a: POP
0000283b: MLOAD
0000283c: ISZERO
0000283d: ISZERO
0000283e: PUSH2 0x2846
00002841: JUMPI
00002842: PUSH1 0x00
00002844: DUP1
00002845: REVERT
00002846: JUMPDEST
00002847: POP
00002848: POP
00002849: POP
0000284a: POP
0000284b: JUMP
0000284c: JUMPDEST
0000284d: PUSH1 0x00
0000284f: DUP3
00002850: DUP3
00002851: ADD
00002852: DUP4
00002853: DUP2
00002854: LT
00002855: ISZERO
00002856: PUSH2 0x1030
00002859: JUMPI
0000285a: INVALID
0000285b: JUMPDEST
0000285c: PUSH1 0x00
0000285e: DUP1
0000285f: DUP4
00002860: ISZERO
00002861: ISZERO
00002862: PUSH2 0x286e
00002865: JUMPI
00002866: PUSH1 0x00
00002868: SWAP2
00002869: POP
0000286a: PUSH2 0x1f03
0000286d: JUMP
0000286e: JUMPDEST
0000286f: POP
00002870: DUP3
00002871: DUP3
00002872: MUL
00002873: DUP3
00002874: DUP5
00002875: DUP3
00002876: DUP2
00002877: ISZERO
00002878: ISZERO
00002879: PUSH2 0x287e
0000287c: JUMPI
0000287d: INVALID
0000287e: JUMPDEST
0000287f: DIV
00002880: EQ
00002881: PUSH2 0x1030
00002884: JUMPI
00002885: INVALID
00002886: JUMPDEST
00002887: PUSH1 0x00
00002889: DUP1
0000288a: DUP3
0000288b: DUP5
0000288c: DUP2
0000288d: ISZERO
0000288e: ISZERO
0000288f: PUSH2 0x2894
00002892: JUMPI
00002893: INVALID
00002894: JUMPDEST
00002895: DIV
00002896: SWAP5
00002897: SWAP4
00002898: POP
00002899: POP
0000289a: POP
0000289b: POP
0000289c: JUMP
0000289d: JUMPDEST
0000289e: PUSH1 0x00
000028a0: DUP3
000028a1: DUP3
000028a2: GT
000028a3: ISZERO
000028a4: PUSH2 0x28a9
000028a7: JUMPI
000028a8: INVALID
000028a9: JUMPDEST
000028aa: POP
000028ab: SWAP1
000028ac: SUB
000028ad: SWAP1
000028ae: JUMP
000028af: JUMPDEST
000028b0: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000028d1: PUSH2 0x28d8
000028d4: PUSH2 0x1122
000028d7: JUMP
000028d8: JUMPDEST
000028d9: PUSH1 0x40
000028db: DUP1
000028dc: MLOAD
000028dd: PUSH1 0x01
000028df: PUSH1 0xa0
000028e1: PUSH1 0x02
000028e3: EXP
000028e4: SUB
000028e5: SWAP3
000028e6: DUP4
000028e7: AND
000028e8: DUP2
000028e9: MSTORE
000028ea: SWAP2
000028eb: DUP5
000028ec: AND
000028ed: PUSH1 0x20
000028ef: DUP4
000028f0: ADD
000028f1: MSTORE
000028f2: DUP1
000028f3: MLOAD
000028f4: SWAP2
000028f5: DUP3
000028f6: SWAP1
000028f7: SUB
000028f8: ADD
000028f9: SWAP1
000028fa: LOG1
000028fb: DUP1
000028fc: PUSH1 0x02
000028fe: PUSH1 0x00
00002900: PUSH1 0x40
00002902: MLOAD
00002903: PUSH1 0x20
00002905: ADD
00002906: DUP1
00002907: DUP1
00002908: PUSH32 0x6f776e6572000000000000000000000000000000000000000000000000000000
00002929: DUP2
0000292a: MSTORE
0000292b: POP
0000292c: PUSH1 0x05
0000292e: ADD
0000292f: SWAP1
00002930: POP
00002931: PUSH1 0x40
00002933: MLOAD
00002934: PUSH1 0x20
00002936: DUP2
00002937: DUP4
00002938: SUB
00002939: SUB
0000293a: DUP2
0000293b: MSTORE
0000293c: SWAP1
0000293d: PUSH1 0x40
0000293f: MSTORE
00002940: PUSH1 0x40
00002942: MLOAD
00002943: DUP1
00002944: DUP3
00002945: DUP1
00002946: MLOAD
00002947: SWAP1
00002948: PUSH1 0x20
0000294a: ADD
0000294b: SWAP1
0000294c: DUP1
0000294d: DUP4
0000294e: DUP4
0000294f: PUSH1 0x20
00002951: DUP4
00002952: LT
00002953: PUSH2 0x1f93
00002956: JUMPI
00002957: DUP1
00002958: MLOAD
00002959: DUP3
0000295a: MSTORE
0000295b: PUSH1 0x1f
0000295d: NOT
0000295e: SWAP1
0000295f: SWAP3
00002960: ADD
00002961: SWAP2
00002962: PUSH1 0x20
00002964: SWAP2
00002965: DUP3
00002966: ADD
00002967: SWAP2
00002968: ADD
00002969: PUSH2 0x1f74
0000296c: JUMP
0000296d: JUMPDEST
0000296e: PUSH1 0x00
00002970: PUSH2 0x2977
00002973: PUSH2 0x2de3
00002976: JUMP
00002977: JUMPDEST
00002978: DUP3
00002979: MLOAD
0000297a: EQ
0000297b: SWAP1
0000297c: POP
0000297d: SWAP2
0000297e: SWAP1
0000297f: POP
00002980: JUMP
00002981: JUMPDEST
00002982: PUSH1 0x40
00002984: DUP1
00002985: MLOAD
00002986: DUP1
00002987: DUP3
00002988: ADD
00002989: DUP3
0000298a: MSTORE
0000298b: PUSH1 0x1a
0000298d: DUP2
0000298e: MSTORE
0000298f: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000
000029b0: PUSH1 0x20
000029b2: DUP1
000029b3: DUP4
000029b4: ADD
000029b5: SWAP2
000029b6: DUP3
000029b7: MSTORE
000029b8: DUP4
000029b9: MLOAD
000029ba: DUP1
000029bb: DUP6
000029bc: ADD
000029bd: DUP6
000029be: MSTORE
000029bf: PUSH1 0x03
000029c1: DUP2
000029c2: MSTORE
000029c3: PUSH32 0x3130340000000000000000000000000000000000000000000000000000000000
000029e4: DUP2
000029e5: DUP4
000029e6: ADD
000029e7: MSTORE
000029e8: SWAP4
000029e9: MLOAD
000029ea: DUP4
000029eb: MLOAD
000029ec: PUSH1 0x00
000029ee: SWAP6
000029ef: SWAP4
000029f0: DUP6
000029f1: SWAP4
000029f2: DUP6
000029f3: SWAP4
000029f4: DUP10
000029f5: SWAP4
000029f6: SWAP2
000029f7: ADD
000029f8: SWAP2
000029f9: DUP3
000029fa: SWAP2
000029fb: DUP1
000029fc: DUP4
000029fd: DUP4
000029fe: JUMPDEST
000029ff: PUSH1 0x20
00002a01: DUP4
00002a02: LT
00002a03: PUSH2 0x2a1d
00002a06: JUMPI
00002a07: DUP1
00002a08: MLOAD
00002a09: DUP3
00002a0a: MSTORE
00002a0b: PUSH1 0x1f
00002a0d: NOT
00002a0e: SWAP1
00002a0f: SWAP3
00002a10: ADD
00002a11: SWAP2
00002a12: PUSH1 0x20
00002a14: SWAP2
00002a15: DUP3
00002a16: ADD
00002a17: SWAP2
00002a18: ADD
00002a19: PUSH2 0x29fe
00002a1c: JUMP
00002a1d: JUMPDEST
00002a1e: MLOAD
00002a1f: DUP2
00002a20: MLOAD
00002a21: PUSH1 0x20
00002a23: SWAP4
00002a24: DUP5
00002a25: SUB
00002a26: PUSH2 0x0100
00002a29: EXP
00002a2a: PUSH1 0x00
00002a2c: NOT
00002a2d: ADD
00002a2e: DUP1
00002a2f: NOT
00002a30: SWAP1
00002a31: SWAP3
00002a32: AND
00002a33: SWAP2
00002a34: AND
00002a35: OR
00002a36: SWAP1
00002a37: MSTORE
00002a38: DUP7
00002a39: MLOAD
00002a3a: SWAP2
00002a3b: SWAP1
00002a3c: SWAP4
00002a3d: ADD
00002a3e: SWAP3
00002a3f: DUP7
00002a40: ADD
00002a41: SWAP2
00002a42: POP
00002a43: DUP1
00002a44: DUP4
00002a45: DUP4
00002a46: JUMPDEST
00002a47: PUSH1 0x20
00002a49: DUP4
00002a4a: LT
00002a4b: PUSH2 0x2a65
00002a4e: JUMPI
00002a4f: DUP1
00002a50: MLOAD
00002a51: DUP3
00002a52: MSTORE
00002a53: PUSH1 0x1f
00002a55: NOT
00002a56: SWAP1
00002a57: SWAP3
00002a58: ADD
00002a59: SWAP2
00002a5a: PUSH1 0x20
00002a5c: SWAP2
00002a5d: DUP3
00002a5e: ADD
00002a5f: SWAP2
00002a60: ADD
00002a61: PUSH2 0x2a46
00002a64: JUMP
00002a65: JUMPDEST
00002a66: MLOAD
00002a67: DUP2
00002a68: MLOAD
00002a69: PUSH1 0x20
00002a6b: SWAP4
00002a6c: DUP5
00002a6d: SUB
00002a6e: PUSH2 0x0100
00002a71: EXP
00002a72: PUSH1 0x00
00002a74: NOT
00002a75: ADD
00002a76: DUP1
00002a77: NOT
00002a78: SWAP1
00002a79: SWAP3
00002a7a: AND
00002a7b: SWAP2
00002a7c: AND
00002a7d: OR
00002a7e: SWAP1
00002a7f: MSTORE
00002a80: DUP6
00002a81: MLOAD
00002a82: SWAP2
00002a83: SWAP1
00002a84: SWAP4
00002a85: ADD
00002a86: SWAP3
00002a87: DUP6
00002a88: ADD
00002a89: SWAP2
00002a8a: POP
00002a8b: DUP1
00002a8c: DUP4
00002a8d: DUP4
00002a8e: JUMPDEST
00002a8f: PUSH1 0x20
00002a91: DUP4
00002a92: LT
00002a93: PUSH2 0x2aad
00002a96: JUMPI
00002a97: DUP1
00002a98: MLOAD
00002a99: DUP3
00002a9a: MSTORE
00002a9b: PUSH1 0x1f
00002a9d: NOT
00002a9e: SWAP1
00002a9f: SWAP3
00002aa0: ADD
00002aa1: SWAP2
00002aa2: PUSH1 0x20
00002aa4: SWAP2
00002aa5: DUP3
00002aa6: ADD
00002aa7: SWAP2
00002aa8: ADD
00002aa9: PUSH2 0x2a8e
00002aac: JUMP
00002aad: JUMPDEST
00002aae: PUSH1 0x01
00002ab0: DUP4
00002ab1: PUSH1 0x20
00002ab3: SUB
00002ab4: PUSH2 0x0100
00002ab7: EXP
00002ab8: SUB
00002ab9: DUP1
00002aba: NOT
00002abb: DUP3
00002abc: MLOAD
00002abd: AND
00002abe: DUP2
00002abf: DUP5
00002ac0: MLOAD
00002ac1: AND
00002ac2: DUP1
00002ac3: DUP3
00002ac4: OR
00002ac5: DUP6
00002ac6: MSTORE
00002ac7: POP
00002ac8: POP
00002ac9: POP
00002aca: POP
00002acb: POP
00002acc: POP
00002acd: SWAP1
00002ace: POP
00002acf: ADD
00002ad0: SWAP4
00002ad1: POP
00002ad2: POP
00002ad3: POP
00002ad4: POP
00002ad5: PUSH1 0x40
00002ad7: MLOAD
00002ad8: PUSH1 0x20
00002ada: DUP2
00002adb: DUP4
00002adc: SUB
00002add: SUB
00002ade: DUP2
00002adf: MSTORE
00002ae0: SWAP1
00002ae1: PUSH1 0x40
00002ae3: MSTORE
00002ae4: PUSH1 0x40
00002ae6: MLOAD
00002ae7: DUP1
00002ae8: DUP3
00002ae9: DUP1
00002aea: MLOAD
00002aeb: SWAP1
00002aec: PUSH1 0x20
00002aee: ADD
00002aef: SWAP1
00002af0: DUP1
00002af1: DUP4
00002af2: DUP4
00002af3: JUMPDEST
00002af4: PUSH1 0x20
00002af6: DUP4
00002af7: LT
00002af8: PUSH2 0x2b12
00002afb: JUMPI
00002afc: DUP1
00002afd: MLOAD
00002afe: DUP3
00002aff: MSTORE
00002b00: PUSH1 0x1f
00002b02: NOT
00002b03: SWAP1
00002b04: SWAP3
00002b05: ADD
00002b06: SWAP2
00002b07: PUSH1 0x20
00002b09: SWAP2
00002b0a: DUP3
00002b0b: ADD
00002b0c: SWAP2
00002b0d: ADD
00002b0e: PUSH2 0x2af3
00002b11: JUMP
00002b12: JUMPDEST
00002b13: MLOAD
00002b14: DUP2
00002b15: MLOAD
00002b16: PUSH1 0x20
00002b18: SWAP4
00002b19: SWAP1
00002b1a: SWAP4
00002b1b: SUB
00002b1c: PUSH2 0x0100
00002b1f: EXP
00002b20: PUSH1 0x00
00002b22: NOT
00002b23: ADD
00002b24: DUP1
00002b25: NOT
00002b26: SWAP1
00002b27: SWAP2
00002b28: AND
00002b29: SWAP3
00002b2a: AND
00002b2b: SWAP2
00002b2c: SWAP1
00002b2d: SWAP2
00002b2e: OR
00002b2f: SWAP1
00002b30: MSTORE
00002b31: PUSH1 0x40
00002b33: MLOAD
00002b34: SWAP3
00002b35: ADD
00002b36: DUP3
00002b37: SWAP1
00002b38: SUB
00002b39: SWAP1
00002b3a: SWAP2
00002b3b: KECCAK256
00002b3c: SWAP8
00002b3d: SWAP7
00002b3e: POP
00002b3f: POP
00002b40: POP
00002b41: POP
00002b42: POP
00002b43: POP
00002b44: POP
00002b45: JUMP
00002b46: JUMPDEST
00002b47: PUSH1 0x00
00002b49: DUP1
00002b4a: JUMPDEST
00002b4b: DUP4
00002b4c: MLOAD
00002b4d: DUP2
00002b4e: LT
00002b4f: ISZERO
00002b50: PUSH2 0x2b95
00002b53: JUMPI
00002b54: DUP3
00002b55: PUSH1 0x01
00002b57: PUSH1 0xa0
00002b59: PUSH1 0x02
00002b5b: EXP
00002b5c: SUB
00002b5d: AND
00002b5e: DUP5
00002b5f: DUP3
00002b60: DUP2
00002b61: MLOAD
00002b62: DUP2
00002b63: LT
00002b64: ISZERO
00002b65: ISZERO
00002b66: PUSH2 0x2b6b
00002b69: JUMPI
00002b6a: INVALID
00002b6b: JUMPDEST
00002b6c: SWAP1
00002b6d: PUSH1 0x20
00002b6f: ADD
00002b70: SWAP1
00002b71: PUSH1 0x20
00002b73: MUL
00002b74: ADD
00002b75: MLOAD
00002b76: PUSH1 0x01
00002b78: PUSH1 0xa0
00002b7a: PUSH1 0x02
00002b7c: EXP
00002b7d: SUB
00002b7e: AND
00002b7f: EQ
00002b80: ISZERO
00002b81: PUSH2 0x2b8d
00002b84: JUMPI
00002b85: PUSH1 0x01
00002b87: SWAP2
00002b88: POP
00002b89: PUSH2 0x1f03
00002b8c: JUMP
00002b8d: JUMPDEST
00002b8e: PUSH1 0x01
00002b90: ADD
00002b91: PUSH2 0x2b4a
00002b94: JUMP
00002b95: JUMPDEST
00002b96: POP
00002b97: PUSH1 0x00
00002b99: SWAP4
00002b9a: SWAP3
00002b9b: POP
00002b9c: POP
00002b9d: POP
00002b9e: JUMP
00002b9f: JUMPDEST
00002ba0: PUSH1 0x00
00002ba2: DUP1
00002ba3: PUSH2 0x2baa
00002ba6: PUSH2 0x0679
00002ba9: JUMP
00002baa: JUMPDEST
00002bab: PUSH1 0x01
00002bad: PUSH1 0xa0
00002baf: PUSH1 0x02
00002bb1: EXP
00002bb2: SUB
00002bb3: AND
00002bb4: PUSH1 0x40
00002bb6: MLOAD
00002bb7: DUP1
00002bb8: DUP1
00002bb9: PUSH32 0x7472616e7366657228616464726573732c75696e743235362900000000000000
00002bda: DUP2
00002bdb: MSTORE
00002bdc: POP
00002bdd: PUSH1 0x19
00002bdf: ADD
00002be0: SWAP1
00002be1: POP
00002be2: PUSH1 0x40
00002be4: MLOAD
00002be5: DUP1
00002be6: SWAP2
00002be7: SUB
00002be8: SWAP1
00002be9: KECCAK256
00002bea: PUSH1 0xe0
00002bec: PUSH1 0x02
00002bee: EXP
00002bef: SWAP1
00002bf0: DIV
00002bf1: DUP6
00002bf2: DUP6
00002bf3: PUSH1 0x40
00002bf5: MLOAD
00002bf6: DUP4
00002bf7: PUSH4 0xffffffff
00002bfc: AND
00002bfd: PUSH1 0xe0
00002bff: PUSH1 0x02
00002c01: EXP
00002c02: MUL
00002c03: DUP2
00002c04: MSTORE
00002c05: PUSH1 0x04
00002c07: ADD
00002c08: DUP1
00002c09: DUP4
00002c0a: PUSH1 0x01
00002c0c: PUSH1 0xa0
00002c0e: PUSH1 0x02
00002c10: EXP
00002c11: SUB
00002c12: AND
00002c13: PUSH1 0x01
00002c15: PUSH1 0xa0
00002c17: PUSH1 0x02
00002c19: EXP
00002c1a: SUB
00002c1b: AND
00002c1c: DUP2
00002c1d: MSTORE
00002c1e: PUSH1 0x20
00002c20: ADD
00002c21: DUP3
00002c22: DUP2
00002c23: MSTORE
00002c24: PUSH1 0x20
00002c26: ADD
00002c27: SWAP3
00002c28: POP
00002c29: POP
00002c2a: POP
00002c2b: PUSH1 0x00
00002c2d: PUSH1 0x40
00002c2f: MLOAD
00002c30: DUP1
00002c31: DUP4
00002c32: SUB
00002c33: DUP2
00002c34: PUSH1 0x00
00002c36: DUP8
00002c37: GAS
00002c38: CALL
00002c39: SWAP3
00002c3a: POP
00002c3b: POP
00002c3c: POP
00002c3d: SWAP1
00002c3e: POP
00002c3f: DUP1
00002c40: ISZERO
00002c41: ISZERO
00002c42: PUSH2 0x2c4e
00002c45: JUMPI
00002c46: PUSH1 0x00
00002c48: SWAP2
00002c49: POP
00002c4a: PUSH2 0x1f03
00002c4d: JUMP
00002c4e: JUMPDEST
00002c4f: RETURNDATASIZE
00002c50: DUP1
00002c51: ISZERO
00002c52: PUSH2 0x2c62
00002c55: JUMPI
00002c56: PUSH1 0x20
00002c58: DUP2
00002c59: EQ
00002c5a: PUSH2 0x2c6c
00002c5d: JUMPI
00002c5e: PUSH1 0x00
00002c60: DUP1
00002c61: REVERT
00002c62: JUMPDEST
00002c63: PUSH1 0x00
00002c65: NOT
00002c66: SWAP2
00002c67: POP
00002c68: PUSH2 0x2c78
00002c6b: JUMP
00002c6c: JUMPDEST
00002c6d: PUSH1 0x20
00002c6f: PUSH1 0x00
00002c71: DUP1
00002c72: RETURNDATACOPY
00002c73: PUSH1 0x00
00002c75: MLOAD
00002c76: SWAP2
00002c77: POP
00002c78: JUMPDEST
00002c79: POP
00002c7a: SWAP4
00002c7b: SWAP3
00002c7c: POP
00002c7d: POP
00002c7e: POP
00002c7f: JUMP
00002c80: JUMPDEST
00002c81: PUSH1 0x00
00002c83: SWAP1
00002c84: EXTCODESIZE
00002c85: GT
00002c86: SWAP1
00002c87: JUMP
00002c88: JUMPDEST
00002c89: PUSH1 0x01
00002c8b: PUSH1 0xa0
00002c8d: PUSH1 0x02
00002c8f: EXP
00002c90: SUB
00002c91: DUP2
00002c92: AND
00002c93: ISZERO
00002c94: DUP1
00002c95: ISZERO
00002c96: SWAP1
00002c97: PUSH2 0x2ca4
00002c9a: JUMPI
00002c9b: POP
00002c9c: PUSH2 0x2ca4
00002c9f: DUP2
00002ca0: PUSH2 0x2c80
00002ca3: JUMP
00002ca4: JUMPDEST
00002ca5: ISZERO
00002ca6: ISZERO
00002ca7: PUSH2 0x2caf
00002caa: JUMPI
00002cab: PUSH1 0x00
00002cad: DUP1
00002cae: REVERT
00002caf: JUMPDEST
00002cb0: DUP1
00002cb1: PUSH1 0x02
00002cb3: PUSH1 0x00
00002cb5: PUSH1 0x40
00002cb7: MLOAD
00002cb8: PUSH1 0x20
00002cba: ADD
00002cbb: DUP1
00002cbc: DUP1
00002cbd: PUSH32 0x6572633230746f6b656e00000000000000000000000000000000000000000000
00002cde: DUP2
00002cdf: MSTORE
00002ce0: POP
00002ce1: PUSH1 0x0a
00002ce3: ADD
00002ce4: SWAP1
00002ce5: POP
00002ce6: PUSH1 0x40
00002ce8: MLOAD
00002ce9: PUSH1 0x20
00002ceb: DUP2
00002cec: DUP4
00002ced: SUB
00002cee: SUB
00002cef: DUP2
00002cf0: MSTORE
00002cf1: SWAP1
00002cf2: PUSH1 0x40
00002cf4: MSTORE
00002cf5: PUSH1 0x40
00002cf7: MLOAD
00002cf8: DUP1
00002cf9: DUP3
00002cfa: DUP1
00002cfb: MLOAD
00002cfc: SWAP1
00002cfd: PUSH1 0x20
00002cff: ADD
00002d00: SWAP1
00002d01: DUP1
00002d02: DUP4
00002d03: DUP4
00002d04: PUSH1 0x20
00002d06: DUP4
00002d07: LT
00002d08: PUSH2 0x1f93
00002d0b: JUMPI
00002d0c: DUP1
00002d0d: MLOAD
00002d0e: DUP3
00002d0f: MSTORE
00002d10: PUSH1 0x1f
00002d12: NOT
00002d13: SWAP1
00002d14: SWAP3
00002d15: ADD
00002d16: SWAP2
00002d17: PUSH1 0x20
00002d19: SWAP2
00002d1a: DUP3
00002d1b: ADD
00002d1c: SWAP2
00002d1d: ADD
00002d1e: PUSH2 0x1f74
00002d21: JUMP
00002d22: JUMPDEST
00002d23: DUP1
00002d24: PUSH1 0x04
00002d26: PUSH1 0x00
00002d28: PUSH1 0x40
00002d2a: MLOAD
00002d2b: PUSH1 0x20
00002d2d: ADD
00002d2e: DUP1
00002d2f: DUP1
00002d30: PUSH32 0x6973496e697469616c697a656400000000000000000000000000000000000000
00002d51: DUP2
00002d52: MSTORE
00002d53: POP
00002d54: PUSH1 0x0d
00002d56: ADD
00002d57: SWAP1
00002d58: POP
00002d59: PUSH1 0x40
00002d5b: MLOAD
00002d5c: PUSH1 0x20
00002d5e: DUP2
00002d5f: DUP4
00002d60: SUB
00002d61: SUB
00002d62: DUP2
00002d63: MSTORE
00002d64: SWAP1
00002d65: PUSH1 0x40
00002d67: MSTORE
00002d68: PUSH1 0x40
00002d6a: MLOAD
00002d6b: DUP1
00002d6c: DUP3
00002d6d: DUP1
00002d6e: MLOAD
00002d6f: SWAP1
00002d70: PUSH1 0x20
00002d72: ADD
00002d73: SWAP1
00002d74: DUP1
00002d75: DUP4
00002d76: DUP4
00002d77: JUMPDEST
00002d78: PUSH1 0x20
00002d7a: DUP4
00002d7b: LT
00002d7c: PUSH2 0x2d96
00002d7f: JUMPI
00002d80: DUP1
00002d81: MLOAD
00002d82: DUP3
00002d83: MSTORE
00002d84: PUSH1 0x1f
00002d86: NOT
00002d87: SWAP1
00002d88: SWAP3
00002d89: ADD
00002d8a: SWAP2
00002d8b: PUSH1 0x20
00002d8d: SWAP2
00002d8e: DUP3
00002d8f: ADD
00002d90: SWAP2
00002d91: ADD
00002d92: PUSH2 0x2d77
00002d95: JUMP
00002d96: JUMPDEST
00002d97: MLOAD
00002d98: DUP2
00002d99: MLOAD
00002d9a: PUSH1 0x20
00002d9c: SWAP4
00002d9d: DUP5
00002d9e: SUB
00002d9f: PUSH2 0x0100
00002da2: EXP
00002da3: PUSH1 0x00
00002da5: NOT
00002da6: ADD
00002da7: DUP1
00002da8: NOT
00002da9: SWAP1
00002daa: SWAP3
00002dab: AND
00002dac: SWAP2
00002dad: AND
00002dae: OR
00002daf: SWAP1
00002db0: MSTORE
00002db1: PUSH1 0x40
00002db3: DUP1
00002db4: MLOAD
00002db5: SWAP3
00002db6: SWAP1
00002db7: SWAP5
00002db8: ADD
00002db9: DUP3
00002dba: SWAP1
00002dbb: SUB
00002dbc: SWAP1
00002dbd: SWAP2
00002dbe: KECCAK256
00002dbf: DUP7
00002dc0: MSTORE
00002dc1: DUP6
00002dc2: ADD
00002dc3: SWAP6
00002dc4: SWAP1
00002dc5: SWAP6
00002dc6: MSTORE
00002dc7: SWAP3
00002dc8: SWAP1
00002dc9: SWAP3
00002dca: ADD
00002dcb: PUSH1 0x00
00002dcd: KECCAK256
00002dce: DUP1
00002dcf: SLOAD
00002dd0: PUSH1 0xff
00002dd2: NOT
00002dd3: AND
00002dd4: SWAP5
00002dd5: ISZERO
00002dd6: ISZERO
00002dd7: SWAP5
00002dd8: SWAP1
00002dd9: SWAP5
00002dda: OR
00002ddb: SWAP1
00002ddc: SWAP4
00002ddd: SSTORE
00002dde: POP
00002ddf: POP
00002de0: POP
00002de1: POP
00002de2: JUMP
00002de3: JUMPDEST
00002de4: PUSH1 0x68
00002de6: SWAP1
00002de7: JUMP
00002de8: STOP
00002de9: LOG1
00002dea: PUSH6 0x627a7a723058
00002df1: KECCAK256
00002df2: MSTORE8
00002df3: UNKNOWN(0xEA)
00002df4: SMOD
00002df5: UNKNOWN(0x4D)
00002df6: UNKNOWN(0xE1)
00002df7: ADDRESS
00002df8: UNKNOWN(0xC1)
00002df9: UNKNOWN(0x2A)
00002dfa: ADDRESS
00002dfb: PUSH22 0xf5c8c5d625ca406daecb629d00f5d7b83e1ae040982a
00002e12: STOP
00002e13: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xa588597cfd462ab27aba4b2735ff937f650de1c7f7e7f72968aa810ddda76ffa
call_targets: 0xb95193fba71b82b245cb3456d1dd2c15ee779e01
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa588597cfd462ab27aba4b2735ff937f650de1c7f7e7f72968aa810ddda76ffa",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb95193fba71b82b245cb3456d1dd2c15ee779e01"
    ],
    "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": "0x1dcea427",
            "selector": "0x1dcea427",
            "calldata_variants": [
                "0x1dcea427",
                "0x1dcea4270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x21d800ec",
            "selector": "0x21d800ec",
            "calldata_variants": [
                "0x21d800ec",
                "0x21d800ec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x232a2c1d",
            "selector": "0x232a2c1d",
            "calldata_variants": [
                "0x232a2c1d",
                "0x232a2c1d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2b92490e",
            "selector": "0x2b92490e",
            "calldata_variants": [
                "0x2b92490e",
                "0x2b92490e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2bd0bb05",
            "selector": "0x2bd0bb05",
            "calldata_variants": [
                "0x2bd0bb05",
                "0x2bd0bb050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x392e53cd",
            "selector": "0x392e53cd",
            "calldata_variants": [
                "0x392e53cd",
                "0x392e53cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3dd95d1b",
            "selector": "0x3dd95d1b",
            "calldata_variants": [
                "0x3dd95d1b",
                "0x3dd95d1b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3e6968b6",
            "selector": "0x3e6968b6",
            "calldata_variants": [
                "0x3e6968b6",
                "0x3e6968b60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4340,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6856,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7128,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 8,
    "guards_detected": [],
    "untrusted_call_count": 8
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xa588597cfd462ab27aba4b2735ff937f650de1c7f7e7f72968aa810ddda76ffa
call_targets: 0xb95193fba71b82b245cb3456d1dd2c15ee779e01
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa588597cfd462ab27aba4b2735ff937f650de1c7f7e7f72968aa810ddda76ffa",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb95193fba71b82b245cb3456d1dd2c15ee779e01"
    ],
    "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": "0x1dcea427",
            "selector": "0x1dcea427",
            "calldata_variants": [
                "0x1dcea427",
                "0x1dcea4270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x21d800ec",
            "selector": "0x21d800ec",
            "calldata_variants": [
                "0x21d800ec",
                "0x21d800ec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x232a2c1d",
            "selector": "0x232a2c1d",
            "calldata_variants": [
                "0x232a2c1d",
                "0x232a2c1d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2b92490e",
            "selector": "0x2b92490e",
            "calldata_variants": [
                "0x2b92490e",
                "0x2b92490e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2bd0bb05",
            "selector": "0x2bd0bb05",
            "calldata_variants": [
                "0x2bd0bb05",
                "0x2bd0bb050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x392e53cd",
            "selector": "0x392e53cd",
            "calldata_variants": [
                "0x392e53cd",
                "0x392e53cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3dd95d1b",
            "selector": "0x3dd95d1b",
            "calldata_variants": [
                "0x3dd95d1b",
                "0x3dd95d1b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3e6968b6",
            "selector": "0x3e6968b6",
            "calldata_variants": [
                "0x3e6968b6",
                "0x3e6968b60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4340,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6856,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7128,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 8,
    "guards_detected": []
}
medium auth codex Initializer is publicly callable (only guarded by isInitialized flag) 75 no
view
evidence_json
{
    "evidence": "Selector 0x51c764e0 routes to internal 0x0e9c which jumps to 0x1ffc. At 0x1ffc the code only checks isInitialized via 0x0a9f (ISZERO/JUMPI) and proceeds without any CALLER/owner check before setting storage, including the \"isInitialized\" key (see the \"isInitialized\" storage write near the end of the bytecode).",
    "locations": [
        "BYTECODE_BUNDLE.txt:5"
    ],
    "recommendation": "Ensure initialization is executed during deployment (same tx) or add explicit access control to the initializer. For proxy patterns, call the initializer immediately and consider disabling initializers on the implementation contract.",
    "exploit_scenario": "If the contract is deployed but not initialized in the same transaction, any external account can call the initializer once to set critical parameters (owner/validator/token/limits) and take administrative control, potentially misconfiguring or redirecting bridge behavior."
}
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
}