0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cec806100745f395ff3fe608060405234801561000f575f5ffd5b5060043610610091575f3560e01c8063998f227411610064578063998f22741461012f578063c9a4a6b71461015f578063df60281c1461018f578063df6a15c9146101bf578063f2fde38b146101ef57610091565b806325be2268146100955780633b111c25146100c5578063645a57ef146100e15780638da5cb5b14610111575b5f5ffd5b6100af60048036038101906100aa9190610643565b61020b565b6040516100bc919061067d565b60405180910390f35b6100df60048036038101906100da9190610723565b610215565b005b6100fb60048036038101906100f69190610723565b6103bf565b60405161010891906107d1565b60405180910390f35b6101196103ff565b6040516101269190610800565b60405180910390f35b61014960048036038101906101449190610819565b610424565b6040516101569190610800565b60405180910390f35b61017960048036038101906101749190610995565b61049d565b6040516101869190610a10565b60405180910390f35b6101a960048036038101906101a49190610723565b6104a9565b6040516101b69190610a10565b60405180910390f35b6101d960048036038101906101d49190610643565b6104b4565b6040516101e69190610800565b60405180910390f35b61020960048036038101906102049190610a29565b6104bd565b005b5f60019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027a90610a9e565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016102ad9190610a10565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103379190610b00565b5f6040518083038185875af1925050503d805f8114610371576040519150601f19603f3d011682016040523d82523d5f602084013e610376565b606091505b50509050806103ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b190610b60565b60405180910390fd5b505050565b60606040518060400160405280600781526020017f5375636365737300000000000000000000000000000000000000000000000000815250905092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048a90610bc8565b60405180910390fd5b5f90509392505050565b5f602a90509392505050565b5f602a905092915050565b5f5f9050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461054c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054390610c30565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b190610c98565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f8115159050919050565b6106228161060e565b811461062c575f5ffd5b50565b5f8135905061063d81610619565b92915050565b5f6020828403121561065857610657610606565b5b5f6106658482850161062f565b91505092915050565b6106778161060e565b82525050565b5f6020820190506106905f83018461066e565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106bf82610696565b9050919050565b6106cf816106b5565b81146106d9575f5ffd5b50565b5f813590506106ea816106c6565b92915050565b5f819050919050565b610702816106f0565b811461070c575f5ffd5b50565b5f8135905061071d816106f9565b92915050565b5f5f6040838503121561073957610738610606565b5b5f610746858286016106dc565b92505060206107578582860161070f565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6107a382610761565b6107ad818561076b565b93506107bd81856020860161077b565b6107c681610789565b840191505092915050565b5f6020820190508181035f8301526107e98184610799565b905092915050565b6107fa816106b5565b82525050565b5f6020820190506108135f8301846107f1565b92915050565b5f5f5f606084860312156108305761082f610606565b5b5f61083d868287016106dc565b935050602061084e868287016106dc565b925050604061085f868287016106dc565b9150509250925092565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108a782610789565b810181811067ffffffffffffffff821117156108c6576108c5610871565b5b80604052505050565b5f6108d86105fd565b90506108e4828261089e565b919050565b5f67ffffffffffffffff82111561090357610902610871565b5b61090c82610789565b9050602081019050919050565b828183375f83830152505050565b5f610939610934846108e9565b6108cf565b9050828152602081018484840111156109555761095461086d565b5b610960848285610919565b509392505050565b5f82601f83011261097c5761097b610869565b5b813561098c848260208601610927565b91505092915050565b5f5f5f606084860312156109ac576109ab610606565b5b5f84013567ffffffffffffffff8111156109c9576109c861060a565b5b6109d586828701610968565b93505060206109e68682870161070f565b92505060406109f78682870161062f565b9150509250925092565b610a0a816106f0565b82525050565b5f602082019050610a235f830184610a01565b92915050565b5f60208284031215610a3e57610a3d610606565b5b5f610a4b848285016106dc565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610a8860188361076b565b9150610a9382610a54565b602082019050919050565b5f6020820190508181035f830152610ab581610a7c565b9050919050565b5f81519050919050565b5f81905092915050565b5f610ada82610abc565b610ae48185610ac6565b9350610af481856020860161077b565b80840191505092915050565b5f610b0b8284610ad0565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610b4a601d8361076b565b9150610b5582610b16565b602082019050919050565b5f6020820190508181035f830152610b7781610b3e565b9050919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f610bb2600f8361076b565b9150610bbd82610b7e565b602082019050919050565b5f6020820190508181035f830152610bdf81610ba6565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610c1a60178361076b565b9150610c2582610be6565b602082019050919050565b5f6020820190508181035f830152610c4781610c0e565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610c82601d8361076b565b9150610c8d82610c4e565b602082019050919050565b5f6020820190508181035f830152610caf81610c76565b905091905056fea26469706673582212201750f827f9eac7bccf6bde841576ff6f2fe2e07bbf80437bd386484d6ee10fc764736f6c634300081c0033