0x6080604052600a6003553480156013575f80fd5b506108a7806100215f395ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80632e1a7d4d1461006457806345bc78ab146100805780637b0a47ee146100b0578063896bdac8146100ce578063a694fc3a146100fe578063c57a202c1461011a575b5f80fd5b61007e60048036038101906100799190610562565b61014a565b005b61009a600480360381019061009591906105e7565b6102f5565b6040516100a79190610621565b60405180910390f35b6100b8610309565b6040516100c59190610621565b60405180910390f35b6100e860048036038101906100e391906105e7565b61030f565b6040516100f59190610621565b60405180910390f35b61011860048036038101906101139190610562565b610324565b005b610134600480360381019061012f91906105e7565b610406565b6040516101419190610621565b60405180910390f35b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156101c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c090610694565b60405180910390fd5b6101d23361041b565b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461021d91906106df565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836102879190610712565b90811502906040515f60405180830381858888f193505050501580156102af573d5f803e3d5ffd5b505f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b5f602052805f5260405f205f915090505481565b60035481565b6002602052805f5260405f205f915090505481565b5f8111610366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035d906107b5565b60405180910390fd5b61036f3361041b565b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546103ba9190610712565b925050819055504260015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b6001602052805f5260405f205f915090505481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20544261046591906106df565b90505f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f63bbf81e0083600354846104bc91906107d3565b6104c691906107d3565b6104d09190610841565b90508060025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461051e9190610712565b9250508190555050505050565b5f80fd5b5f819050919050565b6105418161052f565b811461054b575f80fd5b50565b5f8135905061055c81610538565b92915050565b5f602082840312156105775761057661052b565b5b5f6105848482850161054e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105b68261058d565b9050919050565b6105c6816105ac565b81146105d0575f80fd5b50565b5f813590506105e1816105bd565b92915050565b5f602082840312156105fc576105fb61052b565b5b5f610609848285016105d3565b91505092915050565b61061b8161052f565b82525050565b5f6020820190506106345f830184610612565b92915050565b5f82825260208201905092915050565b7f496e73756666696369656e74207374616b65642062616c616e63652e000000005f82015250565b5f61067e601c8361063a565b91506106898261064a565b602082019050919050565b5f6020820190508181035f8301526106ab81610672565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106e98261052f565b91506106f48361052f565b925082820390508181111561070c5761070b6106b2565b5b92915050565b5f61071c8261052f565b91506107278361052f565b925082820190508082111561073f5761073e6106b2565b5b92915050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f61079f60218361063a565b91506107aa82610745565b604082019050919050565b5f6020820190508181035f8301526107cc81610793565b9050919050565b5f6107dd8261052f565b91506107e88361052f565b92508282026107f68161052f565b9150828204841483151761080d5761080c6106b2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61084b8261052f565b91506108568361052f565b92508261086657610865610814565b5b82820490509291505056fea264697066735822122004b0c258092f0c430c4095036ddf973eb7ff461ad5ad93aab8cae7c106428b7c64736f6c634300081a0033