0x608060405234801561001057600080fd5b506109e7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063b66cdbe711610066578063b66cdbe7146100ef578063bf89662d146100f7578063c76ea84c146100ff578063cd3fa76514610112578063d5f394881461012557600080fd5b80630ff07c271461009857806371f49727146100c75780639e3b197f146100dd578063ac4b7813146100e7575b600080fd5b60008051602061099283398151915254600160a01b900460ff1660405190151581526020015b60405180910390f35b6100cf61014a565b6040519081526020016100be565b6100e5610154565b005b6100cf610207565b6100cf610231565b6100cf61025b565b6100e561010d3660046108a9565b610265565b6100cf6101203660046108e5565b610273565b61012d610284565b6040516001600160a01b0390911681526020016100be565b905090565b60006101456102a5565b7fffcbf49e94a1ea697814835ba4527c9cb58fbe394c72d63516ab91cf55cf1a1f805460019060ff168181111561018d5761018d6108fe565b036101ea5760405162461bcd60e51b815260206004820152602260248201527f4c69625265656e7472616e637947756172643a207265656e7472616e742063616044820152611b1b60f21b60648201526084015b60405180910390fd5b805460ff191660011781556101fd6102c2565b805460ff19169055565b60006101457fb92d132bdc2ac11528b77d63f96d3418ae4f62e7cc6a37ed6fafcdb28d11a97f5490565b60006101457fb92d132bdc2ac11528b77d63f96d3418ae4f62e7cc6a37ed6fafcdb28d11a9805490565b6000610145610452565b61026f82826104a8565b5050565b600061027e82610685565b92915050565b6000610145600080516020610992833981519152546001600160a01b031690565b6000806000805160206109928339815191525b6001015492915050565b60006102e3600080516020610992833981519152546001600160a01b031690565b9050336001600160a01b0382161461034f5760405162461bcd60e51b815260206004820152602960248201527f4465706c6f796d656e74526566756e643a2063616c6c6572206e6f7420746865604482015268103232b83637bcb2b960b91b60648201526084016101e1565b6000610359610452565b9050600081116103b95760405162461bcd60e51b815260206004820152602560248201527f4465706c6f796d656e74526566756e643a206e6f7468696e6720746f20776974604482015264686472617760d81b60648201526084016101e1565b7fb92d132bdc2ac11528b77d63f96d3418ae4f62e7cc6a37ed6fafcdb28d11a98080546000805160206109928339815191529183916000906103fc90849061092a565b9091555050604080516001600160a01b0385168152602081018490527fe2e45efa97d1c98e5c5e26fb277228026be7d079c35690392c8550cdb5d11e6c910160405180910390a161044d838361075d565b505050565b600061047c7fb92d132bdc2ac11528b77d63f96d3418ae4f62e7cc6a37ed6fafcdb28d11a9805490565b7fb92d132bdc2ac11528b77d63f96d3418ae4f62e7cc6a37ed6fafcdb28d11a97f54610145919061093d565b6000821161050c5760405162461bcd60e51b815260206004820152602b60248201527f4465706c6f796d656e74526566756e643a204465706c6f796d656e742067617360448201526a02063616e277420626520360ac1b60648201526084016101e1565b6001600160a01b0381166105755760405162461bcd60e51b815260206004820152602a60248201527f4465706c6f796d656e74526566756e643a20496e76616c6964206465706c6f796044820152696572206164647265737360b01b60648201526084016101e1565b7fb92d132bdc2ac11528b77d63f96d3418ae4f62e7cc6a37ed6fafcdb28d11a97e5460008051602061099283398151915290156106125760405162461bcd60e51b815260206004820152603560248201527f4465706c6f796d656e74526566756e643a204465706c6f796d656e7420636f736044820152741d08185b1c9958591e481a5b9a5d1a585b1a5e9959605a1b60648201526084016101e1565b3a61061d8185610950565b600183015581546001600160a01b0319166001600160a01b03841690811783556040805186815260208101849052908101919091527f038b70077cb8e6efacdbf57dd2bc96d9343c98a95c5f367a1d8507aea44b47799060600160405180910390a150505050565b600080610690610767565b9050808311156106e25760405162461bcd60e51b815260206004820152601f60248201527f4465706c6f796d656e74526566756e643a20496e76616c696420756e6974730060448201526064016101e1565b60006106ec6102a5565b90506000826106fb8684610950565b610705919061096f565b905060006107317fb92d132bdc2ac11528b77d63f96d3418ae4f62e7cc6a37ed6fafcdb28d11a97f5490565b90508261073e828461092a565b116107495781610753565b610753818461093d565b9695505050505050565b61026f8282610790565b6000807f40338df7cff04acd245a1a746bdeb2b70c57e84caad2ebd10957a354472e90a36102b8565b804710156107e05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016101e1565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461082d576040519150601f19603f3d011682016040523d82523d6000602084013e610832565b606091505b505090508061044d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016101e1565b600080604083850312156108bc57600080fd5b8235915060208301356001600160a01b03811681146108da57600080fd5b809150509250929050565b6000602082840312156108f757600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561027e5761027e610914565b8181038181111561027e5761027e610914565b600081600019048311821515161561096a5761096a610914565b500290565b60008261098c57634e487b7160e01b600052601260045260246000fd5b50049056feb92d132bdc2ac11528b77d63f96d3418ae4f62e7cc6a37ed6fafcdb28d11a97da264697066735822122069a862deac3ef35c358629855a0243b5d31d318a9caed3b628a7efcf9df7f28464736f6c63430008100033