0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ca2806100745f395ff3fe608060405234801561000f575f5ffd5b506004361061007b575f3560e01c80633b111c25116100595780633b111c251461010f5780638da5cb5b1461012b578063d84a444114610149578063f2fde38b146101795761007b565b806301d33b191461007f5780630384ae51146100af5780631cd39f62146100df575b5f5ffd5b61009960048036038101906100949190610782565b610195565b6040516100a691906107fd565b60405180910390f35b6100c960048036038101906100c49190610849565b61020e565b6040516100d69190610883565b60405180910390f35b6100f960048036038101906100f4919061089c565b610218565b6040516101069190610943565b60405180910390f35b61012960048036038101906101249190610963565b610257565b005b610133610401565b60405161014091906107fd565b60405180910390f35b610163600480360381019061015e91906109a1565b610426565b6040516101709190610943565b60405180910390f35b610193600480360381019061018e91906109df565b610466565b005b5f5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fb90610a54565b60405180910390fd5b5f90509392505050565b5f602a9050919050565b60606040518060400160405280600781526020017f53756363657373000000000000000000000000000000000000000000000000008152509050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036102c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bc90610abc565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016102ef9190610883565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103799190610b1e565b5f6040518083038185875af1925050503d805f81146103b3576040519150601f19603f3d011682016040523d82523d5f602084013e6103b8565b606091505b50509050806103fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f390610b7e565b60405180910390fd5b505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600781526020017f5375636365737300000000000000000000000000000000000000000000000000815250905092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ec90610be6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055a90610c4e565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105e0826105b7565b9050919050565b6105f0816105d6565b81146105fa575f5ffd5b50565b5f8135905061060b816105e7565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61065f82610619565b810181811067ffffffffffffffff8211171561067e5761067d610629565b5b80604052505050565b5f6106906105a6565b905061069c8282610656565b919050565b5f67ffffffffffffffff8211156106bb576106ba610629565b5b6106c482610619565b9050602081019050919050565b828183375f83830152505050565b5f6106f16106ec846106a1565b610687565b90508281526020810184848401111561070d5761070c610615565b5b6107188482856106d1565b509392505050565b5f82601f83011261073457610733610611565b5b81356107448482602086016106df565b91505092915050565b5f8115159050919050565b6107618161074d565b811461076b575f5ffd5b50565b5f8135905061077c81610758565b92915050565b5f5f5f60608486031215610799576107986105af565b5b5f6107a6868287016105fd565b935050602084013567ffffffffffffffff8111156107c7576107c66105b3565b5b6107d386828701610720565b92505060406107e48682870161076e565b9150509250925092565b6107f7816105d6565b82525050565b5f6020820190506108105f8301846107ee565b92915050565b5f819050919050565b61082881610816565b8114610832575f5ffd5b50565b5f813590506108438161081f565b92915050565b5f6020828403121561085e5761085d6105af565b5b5f61086b84828501610835565b91505092915050565b61087d81610816565b82525050565b5f6020820190506108965f830184610874565b92915050565b5f602082840312156108b1576108b06105af565b5b5f82013567ffffffffffffffff8111156108ce576108cd6105b3565b5b6108da84828501610720565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610915826108e3565b61091f81856108ed565b935061092f8185602086016108fd565b61093881610619565b840191505092915050565b5f6020820190508181035f83015261095b818461090b565b905092915050565b5f5f60408385031215610979576109786105af565b5b5f610986858286016105fd565b925050602061099785828601610835565b9150509250929050565b5f5f604083850312156109b7576109b66105af565b5b5f6109c485828601610835565b92505060206109d585828601610835565b9150509250929050565b5f602082840312156109f4576109f36105af565b5b5f610a01848285016105fd565b91505092915050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f610a3e600f836108ed565b9150610a4982610a0a565b602082019050919050565b5f6020820190508181035f830152610a6b81610a32565b9050919050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610aa66018836108ed565b9150610ab182610a72565b602082019050919050565b5f6020820190508181035f830152610ad381610a9a565b9050919050565b5f81519050919050565b5f81905092915050565b5f610af882610ada565b610b028185610ae4565b9350610b128185602086016108fd565b80840191505092915050565b5f610b298284610aee565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610b68601d836108ed565b9150610b7382610b34565b602082019050919050565b5f6020820190508181035f830152610b9581610b5c565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610bd06017836108ed565b9150610bdb82610b9c565b602082019050919050565b5f6020820190508181035f830152610bfd81610bc4565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610c38601d836108ed565b9150610c4382610c04565b602082019050919050565b5f6020820190508181035f830152610c6581610c2c565b905091905056fea26469706673582212208ed5adc2efb59625bad839271e24631bf78c2a19e4f2a419f0b080f19c6d9c6364736f6c634300081c0033