0x608060405234801561001057600080fd5b50610870806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632a86567a1461004657806344f1c8c31461007057806350daf97814610091575b600080fd5b610059610054366004610436565b6100a6565b604051610067929190610495565b60405180910390f35b61008361007e3660046104fa565b61010e565b604051908152602001610067565b6100a461009f366004610546565b6101db565b005b60006060806100b785870187610616565b60405191945091506100d690889060019084908890429060240161070e565b60408051601f198184030181529190526020810180516001600160e01b0316635c11d79560e01b179052929792965091945050505050565b6000808061011e84860186610616565b915091506000826001600160a01b031663d06ca61f88846040518363ffffffff1660e01b815260040161015292919061074d565b60006040518083038186803b15801561016a57600080fd5b505afa15801561017e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101a6919081019061076e565b905080600182516101b791906107ff565b815181106101c7576101c7610824565b602002602001015193505050509392505050565b60006101e982840184610616565b91505060018151116102545760405162461bcd60e51b815260206004820152602960248201527f76616c6964617465446174613a2070617468206d7573742062652067726561746044820152686572207468616e203160b81b60648201526084015b60405180910390fd5b6005815111156102a65760405162461bcd60e51b815260206004820152601c60248201527f76616c6964617465446174613a207061746820746f6f206c6172676500000000604482015260640161024b565b846001600160a01b0316816000815181106102c3576102c3610824565b60200260200101516001600160a01b0316146103365760405162461bcd60e51b815260206004820152602c60248201527f76616c6964617465446174613a2070617468206d75737420737461727420776960448201526b746820746f6b656e46726f6d60a01b606482015260840161024b565b836001600160a01b0316816001835161034f91906107ff565b8151811061035f5761035f610824565b60200260200101516001600160a01b0316146103ce5760405162461bcd60e51b815260206004820152602860248201527f76616c6964617465446174613a2070617468206d75737420656e64207769746860448201526720746f6b656e546f60c01b606482015260840161024b565b5050505050565b60008083601f8401126103e757600080fd5b50813567ffffffffffffffff8111156103ff57600080fd5b60208301915083602082850101111561041757600080fd5b9250929050565b6001600160a01b038116811461043357600080fd5b50565b6000806000806060858703121561044c57600080fd5b84359350602085013567ffffffffffffffff81111561046a57600080fd5b610476878288016103d5565b909450925050604085013561048a8161041e565b939692955090935050565b60018060a01b038316815260006020604081840152835180604085015260005b818110156104d1578581018301518582016060015282016104b5565b818111156104e3576000606083870101525b50601f01601f191692909201606001949350505050565b60008060006040848603121561050f57600080fd5b83359250602084013567ffffffffffffffff81111561052d57600080fd5b610539868287016103d5565b9497909650939450505050565b6000806000806060858703121561055c57600080fd5b84356105678161041e565b935060208501356105778161041e565b9250604085013567ffffffffffffffff81111561059357600080fd5b61059f878288016103d5565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156105ea576105ea6105ab565b604052919050565b600067ffffffffffffffff82111561060c5761060c6105ab565b5060051b60200190565b6000806040838503121561062957600080fd5b82356106348161041e565b915060208381013567ffffffffffffffff81111561065157600080fd5b8401601f8101861361066257600080fd5b8035610675610670826105f2565b6105c1565b81815260059190911b8201830190838101908883111561069457600080fd5b928401925b828410156106bb5783356106ac8161041e565b82529284019290840190610699565b80955050505050509250929050565b600081518084526020808501945080840160005b838110156107035781516001600160a01b0316875295820195908201906001016106de565b509495945050505050565b85815260ff8516602082015260a06040820152600061073060a08301866106ca565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061076660408301846106ca565b949350505050565b6000602080838503121561078157600080fd5b825167ffffffffffffffff81111561079857600080fd5b8301601f810185136107a957600080fd5b80516107b7610670826105f2565b81815260059190911b820183019083810190878311156107d657600080fd5b928401925b828410156107f4578351825292840192908401906107db565b979650505050505050565b60008282101561081f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fdfea264697066735822122057f6a50a906a92cd3f3222bd52d90ebfa47372f9efa690a35dd3a808bbfeec7864736f6c63430008090033