0x608060405234801561001057600080fd5b50604051610f20380380610f208339818101604052602081101561003357600080fd5b505160006100486001600160e01b0361011216565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b0381166100ed576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964206164647265737320626f6f6b000000000000000000000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055610116565b3390565b610dfb806101256000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063a2ae545a11610097578063ec7127b611610066578063ec7127b61461030b578063f2fde38b14610331578063f5887cdd14610357578063f9839d891461035f57610100565b8063a2ae545a1461025b578063a34626c414610281578063a6dfe83f146102a7578063ebd31e8e146102e557610100565b8063715018a6116100d3578063715018a6146101cb57806379df1e44146101d357806382d90ebf146101f95780638da5cb5b1461023757610100565b806311946b981461010557806315f73b011461013f578063401a83cf14610167578063708a0393146101a5575b600080fd5b61012b6004803603602081101561011b57600080fd5b50356001600160a01b0316610385565b604080519115158252519081900360200190f35b6101656004803603602081101561015557600080fd5b50356001600160a01b03166103a3565b005b61012b6004803603608081101561017d57600080fd5b506001600160a01b038135811691602081013582169160408201351690606001351515610444565b610165600480360360208110156101bb57600080fd5b50356001600160a01b03166104a0565b610165610544565b610165600480360360208110156101e957600080fd5b50356001600160a01b03166105e6565b6101656004803603608081101561020f57600080fd5b506001600160a01b038135811691602081013582169160408201351690606001351515610687565b61023f61085b565b604080516001600160a01b039092168252519081900360200190f35b61012b6004803603602081101561027157600080fd5b50356001600160a01b031661086a565b6101656004803603602081101561029757600080fd5b50356001600160a01b0316610888565b610165600480360360808110156102bd57600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135151561092c565b610165600480360360208110156102fb57600080fd5b50356001600160a01b0316610a28565b6101656004803603602081101561032157600080fd5b50356001600160a01b0316610ac9565b6101656004803603602081101561034757600080fd5b50356001600160a01b0316610bd5565b61023f610ccd565b61012b6004803603602081101561037557600080fd5b50356001600160a01b0316610cdc565b6001600160a01b031660009081526004602052604090205460ff1690565b6103ab610cfa565b6000546001600160a01b039081169116146103fb576040805162461bcd60e51b81526020600482018190526024820152600080516020610d58833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260036020526040808220805460ff19169055517f2e27eeed3fdce92fcbb383357973ca18ad411294e3cb4f9c07a8665aee9bcf189190a250565b604080516001600160a01b039586166020808301919091529486168183015292909416606083015215156080808301919091528351808303909101815260a0909101835280519082012060009081526002909152205460ff1690565b6104a8610cfa565b6000546001600160a01b039081169116146104f8576040805162461bcd60e51b81526020600482018190526024820152600080516020610d58833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260056020526040808220805460ff19166001179055517f9334f1cf560b8678d242a97ff8aa0f60f61c40b3b7e3bd1a1b6759bb0cec6b9e9190a250565b61054c610cfa565b6000546001600160a01b0390811691161461059c576040805162461bcd60e51b81526020600482018190526024820152600080516020610d58833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6105ee610cfa565b6000546001600160a01b0390811691161461063e576040805162461bcd60e51b81526020600482018190526024820152600080516020610d58833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260046020526040808220805460ff19169055517fdb9b6d848ff0a15fae4f0c0424b4bb6ddd97ac1d06b2d160ba86fc2832de58149190a250565b61068f610cfa565b6000546001600160a01b039081169116146106df576040805162461bcd60e51b81526020600482018190526024820152600080516020610d58833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526003602052604090205460ff166107365760405162461bcd60e51b8152600401808060200182810382526028815260200180610d786028913960400191505060405180910390fd5b8080156107545750816001600160a01b0316836001600160a01b0316145b806107795750801580156107795750836001600160a01b0316826001600160a01b0316145b6107b45760405162461bcd60e51b8152600401808060200182810382526033815260200180610d256033913960400191505060405180910390fd5b604080516001600160a01b0380871660208084018290528288168486018190529287166060850181905286151560808087018290528751808803909101815260a087018089528151918501919091206000818152600290955293889020805460ff1916600117905583905260c086015294519094937f0f70a67bc35edde2b5599b6d163651e02f760143df04f95b4ef233299531bf21919081900360e00190a45050505050565b6000546001600160a01b031690565b6001600160a01b031660009081526005602052604090205460ff1690565b610890610cfa565b6000546001600160a01b039081169116146108e0576040805162461bcd60e51b81526020600482018190526024820152600080516020610d58833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f38c11947f16670fa95ddb76444c21a13a0be4f0132d147eb6245c4b94ea889fa9190a250565b610934610cfa565b6000546001600160a01b03908116911614610984576040805162461bcd60e51b81526020600482018190526024820152600080516020610d58833981519152604482015290519081900360640190fd5b604080516001600160a01b0380871660208084018290528288168486018190529287166060850181905286151560808087018290528751808803909101815260a087018089528151918501919091206000818152600290955293889020805460ff1916905583905260c086015294519094937fa1ddf2a4744cc5c7c0dbe14996f16cb2d8564ef718f45625629e8a0497b9779a919081900360e00190a45050505050565b610a30610cfa565b6000546001600160a01b03908116911614610a80576040805162461bcd60e51b81526020600482018190526024820152600080516020610d58833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260056020526040808220805460ff19169055517f1b04f3cb09a85dced592e37ae08b2a135757683e30116221003f6620de94d4009190a250565b600160009054906101000a90046001600160a01b03166001600160a01b0316631ffaf0db6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1757600080fd5b505afa158015610b2b573d6000803e3d6000fd5b505050506040513d6020811015610b4157600080fd5b50516001600160a01b03163314610b895760405162461bcd60e51b8152600401808060200182810382526026815260200180610da06026913960400191505060405180910390fd5b6001600160a01b038116600081815260046020526040808220805460ff19166001179055517fafbb5b30329d7def9553a137626d5bc919fda8f5d1d1b5a64aa6123445b9415b9190a250565b610bdd610cfa565b6000546001600160a01b03908116911614610c2d576040805162461bcd60e51b81526020600482018190526024820152600080516020610d58833981519152604482015290519081900360640190fd5b6001600160a01b038116610c725760405162461bcd60e51b8152600401808060200182810382526026815260200180610cff6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b6001600160a01b031660009081526003602052604090205460ff1690565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737357686974656c6973743a204f6e6c7920616c6c6f772066756c6c7920636f6c6c61746572616c697a65642070726f64756374734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657257686974656c6973743a20436f6c6c61746572616c206973206e6f742077686974656c697374656457686974656c6973743a2053656e646572206973206e6f74204f746f6b656e466163746f7279a26469706673582212207d0b11a09580a9a302719e21f6d20c325a150cca395f8dd4353e6c9edbcb382664736f6c634300060a0033000000000000000000000000760800376b6587f2335db0ff435167f63a34282a