0x608060405234801561000f575f80fd5b50610acb8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c806342a260491461002d575b5f80fd5b61004061003b3660046106d2565b610059565b60405161005094939291906107ca565b60405180910390f35b606080606080855167ffffffffffffffff811115610079576100796105eb565b6040519080825280602002602001820160405280156100a2578160200160208202803683370190505b509350855167ffffffffffffffff8111156100bf576100bf6105eb565b6040519080825280602002602001820160405280156100e8578160200160208202803683370190505b509250855167ffffffffffffffff811115610105576101056105eb565b60405190808252806020026020018201604052801561012e578160200160208202803683370190505b509150855167ffffffffffffffff81111561014b5761014b6105eb565b604051908082528060200260200182016040528015610174578160200160208202803683370190505b5090505f5b86518110156103805785818151811061019457610194610874565b60200260200101515f03610258576101c48782815181106101b7576101b7610874565b602002602001015161038a565b836001600160a01b031693508885815181106101e2576101e2610874565b602002602001018886815181106101fb576101fb610874565b6020026020010188878151811061021457610214610874565b6020026020010188888151811061022d5761022d610874565b600295860b60209182029290920101529390920b9092526001600160801b039092169091525261036e565b85818151811061026a5761026a610874565b602002602001015160010361029b576101c487828151811061028e5761028e610874565b60200260200101516104cf565b8581815181106102ad576102ad610874565b602002602001015160020361036e576102de8782815181106102d1576102d1610874565b6020026020010151610537565b836001600160a01b031693508885815181106102fc576102fc610874565b6020026020010188868151811061031557610315610874565b6020026020010188878151811061032e5761032e610874565b6020026020010188888151811061034757610347610874565b600295860b60209182029290920101529390920b9092526001600160801b03909216909152525b8061037881610888565b915050610179565b5092959194509250565b5f805f805f859050806001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156103ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f291906108e2565b505060408051630d34328160e11b81529051959a50939750506001600160a01b03851693631a686502936004808201945060209350908290030181865afa15801561043f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610463919061096c565b9350806001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c59190610999565b9150509193509193565b5f805f805f859050806001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610513573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f291906109b2565b5f805f805f859050806001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160c060405180830381865afa15801561057b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059f9190610a23565b505060408051630d34328160e11b81529051949950929650506001600160a01b03841692631a6865029260048082019350602092918290030181865afa15801561043f573d5f803e3d5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610628576106286105eb565b604052919050565b5f67ffffffffffffffff821115610649576106496105eb565b5060051b60200190565b6001600160a01b0381168114610667575f80fd5b50565b5f82601f830112610679575f80fd5b8135602061068e61068983610630565b6105ff565b82815260059290921b840181019181810190868411156106ac575f80fd5b8286015b848110156106c757803583529183019183016106b0565b509695505050505050565b5f80604083850312156106e3575f80fd5b823567ffffffffffffffff808211156106fa575f80fd5b818501915085601f83011261070d575f80fd5b8135602061071d61068983610630565b82815260059290921b8401810191818101908984111561073b575f80fd5b948201945b8386101561076257853561075381610653565b82529482019490820190610740565b96505086013592505080821115610777575f80fd5b506107848582860161066a565b9150509250929050565b5f8151808452602080850194508084015f5b838110156107bf57815160020b875295820195908201906001016107a0565b509495945050505050565b608080825285519082018190525f9060209060a0840190828901845b82811015610802578151845292840192908401906001016107e6565b505050838103828501528651808252878301918301905f5b8181101561083f5783516001600160801b03168352928401929184019160010161081a565b50508481036040860152610853818861078e565b925050508281036060840152610869818561078e565b979650505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f600182016108a557634e487b7160e01b5f52601160045260245ffd5b5060010190565b8051600281900b81146108bd575f80fd5b919050565b805161ffff811681146108bd575f80fd5b805180151581146108bd575f80fd5b5f805f805f805f60e0888a0312156108f8575f80fd5b875161090381610653565b9650610911602089016108ac565b955061091f604089016108c2565b945061092d606089016108c2565b935061093b608089016108c2565b925060a088015160ff81168114610950575f80fd5b915061095e60c089016108d3565b905092959891949750929550565b5f6020828403121561097c575f80fd5b81516001600160801b0381168114610992575f80fd5b9392505050565b5f602082840312156109a9575f80fd5b610992826108ac565b5f805f805f805f60e0888a0312156109c8575f80fd5b87516109d381610653565b96506109e1602089016108ac565b95506109ef604089016108c2565b94506109fd606089016108c2565b9350610a0b608089016108c2565b925060a088015163ffffffff81168114610950575f80fd5b5f805f805f8060c08789031215610a38575f80fd5b8651610a4381610653565b9550610a51602088016108ac565b9450610a5f604088016108c2565b9350610a6d606088016108c2565b9250610a7b608088016108c2565b9150610a8960a088016108d3565b9050929550929550929556fea2646970667358221220dca23280203bb720b4fda362bfbf50c1d486d0fc8d1e7420e5fc6d80924c08be64736f6c63430008140033