0x6080604052348015600f57600080fd5b506106f78061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4f1622c14610030575b600080fd5b61004361003e3660046104b7565b610059565b60405161005091906105cc565b60405180910390f35b606060008086516001600160401b03811115610077576100776103cc565b6040519080825280602002602001820160405280156100d557816020015b6100c2604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816100955790505b50925073b27308f9f90d607463bb33ea1bebb41c27ce5ab660005b88518110156103c057816001600160a01b031663f7729d4389838151811061011a5761011a610631565b602002602001015189848151811061013457610134610631565b60200260200101518c858151811061014e5761014e610631565b60200260200101516001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015610193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b79190610647565b8a86815181106101c9576101c9610631565b602002602001015160006040518663ffffffff1660e01b81526004016101f3959493929190610673565b6020604051808303816000875af1158015610212573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023691906106a8565b9350816001600160a01b031663f7729d4388838151811061025957610259610631565b60200260200101518a848151811061027357610273610631565b60200260200101518c858151811061028d5761028d610631565b60200260200101516001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f69190610647565b8860006040518663ffffffff1660e01b8152600401610319959493929190610673565b6020604051808303816000875af1158015610338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035c91906106a8565b925060405180606001604052808a838151811061037b5761037b610631565b60200260200101516001600160a01b03168152602001858152602001848152508582815181106103ad576103ad610631565b60209081029190910101526001016100f0565b50505050949350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561040a5761040a6103cc565b604052919050565b60006001600160401b0382111561042b5761042b6103cc565b5060051b60200190565b600082601f83011261044657600080fd5b813561045961045482610412565b6103e2565b8082825260208201915060208360051b86010192508583111561047b57600080fd5b602085015b838110156104ad5780356001600160a01b038116811461049f57600080fd5b835260209283019201610480565b5095945050505050565b600080600080608085870312156104cd57600080fd5b84356001600160401b038111156104e357600080fd5b6104ef87828801610435565b94505060208501356001600160401b0381111561050b57600080fd5b61051787828801610435565b93505060408501356001600160401b0381111561053357600080fd5b61053f87828801610435565b92505060608501356001600160401b0381111561055b57600080fd5b8501601f8101871361056c57600080fd5b803561057a61045482610412565b8082825260208201915060208360051b85010192508983111561059c57600080fd5b6020840193505b828410156105be5783358252602093840193909101906105a3565b969995985093965050505050565b602080825282518282018190526000918401906040840190835b8181101561062657835180516001600160a01b031684526020808201518186015260409182015191850191909152909301926060909201916001016105e6565b509095945050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561065957600080fd5b815162ffffff8116811461066c57600080fd5b9392505050565b6001600160a01b039586168152938516602085015262ffffff9290921660408401526060830152909116608082015260a00190565b6000602082840312156106ba57600080fd5b505191905056fea2646970667358221220cda029c7024adca1ccde676145e7ea7c5ce3030071d2b3f6e3844509bc4e167e64736f6c634300081b0033