0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bf2806100745f395ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c80633b111c25146100645780638da5cb5b14610080578063a8b477d91461009e578063c9551fda146100ce578063d9616d85146100fe578063f2fde38b1461012e575b5f5ffd5b61007e600480360381019061007991906105ee565b61014a565b005b6100886102f4565b604051610095919061063b565b60405180910390f35b6100b860048036038101906100b39190610689565b610319565b6040516100c59190610724565b60405180910390f35b6100e860048036038101906100e39190610744565b610358565b6040516100f5919061063b565b60405180910390f35b610118600480360381019061011391906108c0565b6103d1565b6040516101259190610724565b60405180910390f35b61014860048036038101906101439190610907565b610410565b005b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101af9061097c565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016101e291906109a9565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161026c9190610a06565b5f6040518083038185875af1925050503d805f81146102a6576040519150601f19603f3d011682016040523d82523d5f602084013e6102ab565b606091505b50509050806102ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e690610a66565b60405180910390fd5b505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600781526020017f53756363657373000000000000000000000000000000000000000000000000008152509050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036103c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103be90610ace565b60405180910390fd5b5f90509392505050565b60606040518060400160405280600781526020017f53756363657373000000000000000000000000000000000000000000000000008152509050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049690610b36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361050d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050490610b9e565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61058a82610561565b9050919050565b61059a81610580565b81146105a4575f5ffd5b50565b5f813590506105b581610591565b92915050565b5f819050919050565b6105cd816105bb565b81146105d7575f5ffd5b50565b5f813590506105e8816105c4565b92915050565b5f5f6040838503121561060457610603610559565b5b5f610611858286016105a7565b9250506020610622858286016105da565b9150509250929050565b61063581610580565b82525050565b5f60208201905061064e5f83018461062c565b92915050565b5f8115159050919050565b61066881610654565b8114610672575f5ffd5b50565b5f813590506106838161065f565b92915050565b5f6020828403121561069e5761069d610559565b5b5f6106ab84828501610675565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6106f6826106b4565b61070081856106be565b93506107108185602086016106ce565b610719816106dc565b840191505092915050565b5f6020820190508181035f83015261073c81846106ec565b905092915050565b5f5f5f6060848603121561075b5761075a610559565b5b5f610768868287016105da565b935050602061077986828701610675565b925050604061078a868287016105a7565b9150509250925092565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107d2826106dc565b810181811067ffffffffffffffff821117156107f1576107f061079c565b5b80604052505050565b5f610803610550565b905061080f82826107c9565b919050565b5f67ffffffffffffffff82111561082e5761082d61079c565b5b610837826106dc565b9050602081019050919050565b828183375f83830152505050565b5f61086461085f84610814565b6107fa565b9050828152602081018484840111156108805761087f610798565b5b61088b848285610844565b509392505050565b5f82601f8301126108a7576108a6610794565b5b81356108b7848260208601610852565b91505092915050565b5f602082840312156108d5576108d4610559565b5b5f82013567ffffffffffffffff8111156108f2576108f161055d565b5b6108fe84828501610893565b91505092915050565b5f6020828403121561091c5761091b610559565b5b5f610929848285016105a7565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f6109666018836106be565b915061097182610932565b602082019050919050565b5f6020820190508181035f8301526109938161095a565b9050919050565b6109a3816105bb565b82525050565b5f6020820190506109bc5f83018461099a565b92915050565b5f81519050919050565b5f81905092915050565b5f6109e0826109c2565b6109ea81856109cc565b93506109fa8185602086016106ce565b80840191505092915050565b5f610a1182846109d6565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610a50601d836106be565b9150610a5b82610a1c565b602082019050919050565b5f6020820190508181035f830152610a7d81610a44565b9050919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f610ab8600f836106be565b9150610ac382610a84565b602082019050919050565b5f6020820190508181035f830152610ae581610aac565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610b206017836106be565b9150610b2b82610aec565b602082019050919050565b5f6020820190508181035f830152610b4d81610b14565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610b88601d836106be565b9150610b9382610b54565b602082019050919050565b5f6020820190508181035f830152610bb581610b7c565b905091905056fea26469706673582212208ce643e6897895af0bfd1b767a41d31440aebdcdce94216bf0dbd3007f03d5b364736f6c634300081c0033