0x608060405234801561001057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bef806100616000396000f3fe6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b146100f2578063a87430ba1461011d578063b4acfe1c1461015b578063d0e30db01461018457610070565b806312065fe0146100755780631a47767b146100a05780632e1a7d4d146100c9575b600080fd5b34801561008157600080fd5b5061008a61018e565b6040516100979190610711565b60405180910390f35b3480156100ac57600080fd5b506100c760048036038101906100c2919061078f565b6101dc565b005b3480156100d557600080fd5b506100f060048036038101906100eb91906107e8565b6102cf565b005b3480156100fe57600080fd5b506101076104a0565b6040516101149190610824565b60405180910390f35b34801561012957600080fd5b50610144600480360381019061013f919061078f565b6104c6565b60405161015292919061085a565b60405180910390f35b34801561016757600080fd5b50610182600480360381019061017d919061078f565b6104f7565b005b61018c6105ea565b005b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000015491505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461026c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026390610906565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160006101000a81548160ff0219169083151502179055505050565b60008111610312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030990610998565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff166103a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039c90610a04565b60405180910390fd5b80600001548211156103ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e390610a70565b60405180910390fd5b818160000160008282546104009190610abf565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561044d573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65836040516104949190610711565b60405180910390a25050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16905082565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057e90610906565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018160010160006101000a81548160ff0219169083151502179055505050565b6000341161062d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062490610b65565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050348160000160008282546106839190610b85565b9250508190555060018160010160006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516106ed9190610711565b60405180910390a250565b6000819050919050565b61070b816106f8565b82525050565b60006020820190506107266000830184610702565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061075c82610731565b9050919050565b61076c81610751565b811461077757600080fd5b50565b60008135905061078981610763565b92915050565b6000602082840312156107a5576107a461072c565b5b60006107b38482850161077a565b91505092915050565b6107c5816106f8565b81146107d057600080fd5b50565b6000813590506107e2816107bc565b92915050565b6000602082840312156107fe576107fd61072c565b5b600061080c848285016107d3565b91505092915050565b61081e81610751565b82525050565b60006020820190506108396000830184610815565b92915050565b60008115159050919050565b6108548161083f565b82525050565b600060408201905061086f6000830185610702565b61087c602083018461084b565b9392505050565b600082825260208201905092915050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e000000000000000000000000000000000000602082015250565b60006108f0602e83610883565b91506108fb82610894565b604082019050919050565b6000602082019050818103600083015261091f816108e3565b9050919050565b7f5769746864726177616c20616d6f756e74206d7573742062652067726561746560008201527f72207468616e207a65726f000000000000000000000000000000000000000000602082015250565b6000610982602b83610883565b915061098d82610926565b604082019050919050565b600060208201905081810360008301526109b181610975565b9050919050565b7f55736572206973206e6f74206163746976650000000000000000000000000000600082015250565b60006109ee601283610883565b91506109f9826109b8565b602082019050919050565b60006020820190508181036000830152610a1d816109e1565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000610a5a601483610883565b9150610a6582610a24565b602082019050919050565b60006020820190508181036000830152610a8981610a4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610aca826106f8565b9150610ad5836106f8565b9250828203905081811115610aed57610aec610a90565b5b92915050565b7f4465706f73697420616d6f756e74206d7573742062652067726561746572207460008201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b6000610b4f602883610883565b9150610b5a82610af3565b604082019050919050565b60006020820190508181036000830152610b7e81610b42565b9050919050565b6000610b90826106f8565b9150610b9b836106f8565b9250828201905080821115610bb357610bb2610a90565b5b9291505056fea264697066735822122088cff3210aed6037b482823a822a8314498523958767171a21fcf3555dbbf11564736f6c63430008120033