0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cb4806100745f395ff3fe608060405234801561000f575f5ffd5b506004361061007b575f3560e01c8063878a90c211610059578063878a90c2146100fb5780638da5cb5b1461012b578063d1861b0514610149578063f2fde38b146101795761007b565b806333474f481461007f5780633b111c25146100af578063791ee6d7146100cb575b5f5ffd5b61009960048036038101906100949190610614565b610195565b6040516100a69190610673565b60405180910390f35b6100c960048036038101906100c491906106bf565b6101a1565b005b6100e560048036038101906100e091906106fd565b61034b565b6040516100f29190610673565b60405180910390f35b61011560048036038101906101109190610889565b610357565b6040516101229190610943565b60405180910390f35b610133610397565b6040516101409190610972565b60405180910390f35b610163600480360381019061015e919061098b565b6103bc565b6040516101709190610972565b60405180910390f35b610193600480360381019061018e91906109c9565b610434565b005b5f600190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161020690610a3e565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016102399190610a6b565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102c39190610ac8565b5f6040518083038185875af1925050503d805f81146102fd576040519150601f19603f3d011682016040523d82523d5f602084013e610302565b606091505b5050905080610346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033d90610b28565b60405180910390fd5b505050565b5f600190509392505050565b60606040518060400160405280600781526020017f5375636365737300000000000000000000000000000000000000000000000000815250905092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042290610b90565b60405180910390fd5b5f905092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ba90610bf8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052890610c60565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105ae82610585565b9050919050565b6105be816105a4565b81146105c8575f5ffd5b50565b5f813590506105d9816105b5565b92915050565b5f8115159050919050565b6105f3816105df565b81146105fd575f5ffd5b50565b5f8135905061060e816105ea565b92915050565b5f5f5f6060848603121561062b5761062a61057d565b5b5f610638868287016105cb565b935050602061064986828701610600565b925050604061065a868287016105cb565b9150509250925092565b61066d816105df565b82525050565b5f6020820190506106865f830184610664565b92915050565b5f819050919050565b61069e8161068c565b81146106a8575f5ffd5b50565b5f813590506106b981610695565b92915050565b5f5f604083850312156106d5576106d461057d565b5b5f6106e2858286016105cb565b92505060206106f3858286016106ab565b9150509250929050565b5f5f5f606084860312156107145761071361057d565b5b5f610721868287016105cb565b9350506020610732868287016105cb565b9250506040610743868287016106ab565b9150509250925092565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61079b82610755565b810181811067ffffffffffffffff821117156107ba576107b9610765565b5b80604052505050565b5f6107cc610574565b90506107d88282610792565b919050565b5f67ffffffffffffffff8211156107f7576107f6610765565b5b61080082610755565b9050602081019050919050565b828183375f83830152505050565b5f61082d610828846107dd565b6107c3565b90508281526020810184848401111561084957610848610751565b5b61085484828561080d565b509392505050565b5f82601f8301126108705761086f61074d565b5b813561088084826020860161081b565b91505092915050565b5f5f6040838503121561089f5761089e61057d565b5b5f6108ac858286016106ab565b925050602083013567ffffffffffffffff8111156108cd576108cc610581565b5b6108d98582860161085c565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610915826108e3565b61091f81856108ed565b935061092f8185602086016108fd565b61093881610755565b840191505092915050565b5f6020820190508181035f83015261095b818461090b565b905092915050565b61096c816105a4565b82525050565b5f6020820190506109855f830184610963565b92915050565b5f5f604083850312156109a1576109a061057d565b5b5f6109ae858286016106ab565b92505060206109bf858286016105cb565b9150509250929050565b5f602082840312156109de576109dd61057d565b5b5f6109eb848285016105cb565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610a286018836108ed565b9150610a33826109f4565b602082019050919050565b5f6020820190508181035f830152610a5581610a1c565b9050919050565b610a658161068c565b82525050565b5f602082019050610a7e5f830184610a5c565b92915050565b5f81519050919050565b5f81905092915050565b5f610aa282610a84565b610aac8185610a8e565b9350610abc8185602086016108fd565b80840191505092915050565b5f610ad38284610a98565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610b12601d836108ed565b9150610b1d82610ade565b602082019050919050565b5f6020820190508181035f830152610b3f81610b06565b9050919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f610b7a600f836108ed565b9150610b8582610b46565b602082019050919050565b5f6020820190508181035f830152610ba781610b6e565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610be26017836108ed565b9150610bed82610bae565b602082019050919050565b5f6020820190508181035f830152610c0f81610bd6565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610c4a601d836108ed565b9150610c5582610c16565b602082019050919050565b5f6020820190508181035f830152610c7781610c3e565b905091905056fea264697066735822122016e1dc092f989ec19808fabe4a7e34c2433d64bf32590c2c0f2f84fbfee5016864736f6c634300081c0033