608060405260125f806101000a81548160ff021916908360ff16021790555068056bc75e2d631000006001553480156035575f80fd5b5060015460025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610ff6806100875f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063313ce5671161006f578063313ce5671461017757806355b6ed5c146101955780636392a51f146101c557806395d89b41146101f5578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd1461011757806327e235e314610147575b5f80fd5b6100b3610273565b6040516100c09190610b56565b60405180910390f35b6100e360048036038101906100de9190610c07565b6102ac565b6040516100f09190610c5f565b60405180910390f35b610101610419565b60405161010e9190610c87565b60405180910390f35b610131600480360381019061012c9190610ca0565b610422565b60405161013e9190610c5f565b60405180910390f35b610161600480360381019061015c9190610cf0565b61079c565b60405161016e9190610c87565b60405180910390f35b61017f6107b1565b60405161018c9190610d36565b60405180910390f35b6101af60048036038101906101aa9190610d4f565b6107c1565b6040516101bc9190610c87565b60405180910390f35b6101df60048036038101906101da9190610cf0565b6107e1565b6040516101ec9190610c87565b60405180910390f35b6101fd610827565b60405161020a9190610b56565b60405180910390f35b61022d60048036038101906102289190610c07565b610860565b60405161023a9190610c5f565b60405180910390f35b61025d60048036038101906102589190610d4f565b610a64565b60405161026a9190610c87565b60405180910390f35b6040518060400160405280600881526020017f42696e20436f696e00000000000000000000000000000000000000000000000081525081565b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561032d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032490610dd7565b60405180910390fd5b8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104079190610c87565b60405180910390a36001905092915050565b5f600154905090565b5f8273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff1603610491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048890610e3f565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610ea7565b60405180910390fd5b5f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c790610f0f565b60405180910390fd5b8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461061c9190610f5a565b925050819055508260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461066f9190610f8d565b925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610790575f83826106aa9190610f5a565b90508060035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107869190610c87565b60405180910390a3505b60019150509392505050565b6002602052805f5260405f205f915090505481565b5f8054906101000a900460ff1681565b6003602052815f5260405f20602052805f5260405f205f91509150505481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6040518060400160405280600281526020017f424300000000000000000000000000000000000000000000000000000000000081525081565b5f8273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff16036108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690610e3f565b60405180910390fd5b8160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561094f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094690610ea7565b60405180910390fd5b8160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461099b9190610f5a565b925050819055508160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109ee9190610f8d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a529190610c87565b60405180910390a36001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610b2882610ae6565b610b328185610af0565b9350610b42818560208601610b00565b610b4b81610b0e565b840191505092915050565b5f6020820190508181035f830152610b6e8184610b1e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ba382610b7a565b9050919050565b610bb381610b99565b8114610bbd575f80fd5b50565b5f81359050610bce81610baa565b92915050565b5f819050919050565b610be681610bd4565b8114610bf0575f80fd5b50565b5f81359050610c0181610bdd565b92915050565b5f8060408385031215610c1d57610c1c610b76565b5b5f610c2a85828601610bc0565b9250506020610c3b85828601610bf3565b9150509250929050565b5f8115159050919050565b610c5981610c45565b82525050565b5f602082019050610c725f830184610c50565b92915050565b610c8181610bd4565b82525050565b5f602082019050610c9a5f830184610c78565b92915050565b5f805f60608486031215610cb757610cb6610b76565b5b5f610cc486828701610bc0565b9350506020610cd586828701610bc0565b9250506040610ce686828701610bf3565b9150509250925092565b5f60208284031215610d0557610d04610b76565b5b5f610d1284828501610bc0565b91505092915050565b5f60ff82169050919050565b610d3081610d1b565b82525050565b5f602082019050610d495f830184610d27565b92915050565b5f8060408385031215610d6557610d64610b76565b5b5f610d7285828601610bc0565b9250506020610d8385828601610bc0565b9150509250929050565b7f62616c616e636520627520676f752073686f75207175616e00000000000000005f82015250565b5f610dc1601883610af0565b9150610dcc82610d8d565b602082019050919050565b5f6020820190508181035f830152610dee81610db5565b9050919050565b7f7a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f610e29600c83610af0565b9150610e3482610df5565b602082019050919050565b5f6020820190508181035f830152610e5681610e1d565b9050919050565b7f696e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f610e91601483610af0565b9150610e9c82610e5d565b602082019050919050565b5f6020820190508181035f830152610ebe81610e85565b9050919050565b7f696e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f610ef9601683610af0565b9150610f0482610ec5565b602082019050919050565b5f6020820190508181035f830152610f2681610eed565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f6482610bd4565b9150610f6f83610bd4565b9250828203905081811115610f8757610f86610f2d565b5b92915050565b5f610f9782610bd4565b9150610fa283610bd4565b9250828201905080821115610fba57610fb9610f2d565b5b9291505056fea2646970667358221220be440a18fbc076fa45ee08267deb6beea0e6d7204735f9274e9b881985eba12e64736f6c634300081a0033