0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109f6806100745f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806330b4d1a3146100595780633b111c25146100895780635d19f2f0146100a55780638da5cb5b146100d5578063f2fde38b146100f3575b5f5ffd5b610073600480360381019061006e91906105b5565b61010f565b6040516100809190610627565b60405180910390f35b6100a3600480360381019061009e91906106c4565b61011a565b005b6100bf60048036038101906100ba9190610702565b6102c4565b6040516100cc919061073c565b60405180910390f35b6100dd6102ce565b6040516100ea9190610764565b60405180910390f35b61010d6004803603810190610108919061077d565b6102f3565b005b5f602a905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017f90610802565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016101b29190610627565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161023c9190610872565b5f6040518083038185875af1925050503d805f8114610276576040519150601f19603f3d011682016040523d82523d5f602084013e61027b565b606091505b50509050806102bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906108d2565b60405180910390fd5b505050565b5f60019050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103799061093a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e7906109a2565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f8115159050919050565b61045881610444565b8114610462575f5ffd5b50565b5f813590506104738161044f565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104c782610481565b810181811067ffffffffffffffff821117156104e6576104e5610491565b5b80604052505050565b5f6104f8610433565b905061050482826104be565b919050565b5f67ffffffffffffffff82111561052357610522610491565b5b61052c82610481565b9050602081019050919050565b828183375f83830152505050565b5f61055961055484610509565b6104ef565b9050828152602081018484840111156105755761057461047d565b5b610580848285610539565b509392505050565b5f82601f83011261059c5761059b610479565b5b81356105ac848260208601610547565b91505092915050565b5f5f604083850312156105cb576105ca61043c565b5b5f6105d885828601610465565b925050602083013567ffffffffffffffff8111156105f9576105f8610440565b5b61060585828601610588565b9150509250929050565b5f819050919050565b6106218161060f565b82525050565b5f60208201905061063a5f830184610618565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61066982610640565b9050919050565b6106798161065f565b8114610683575f5ffd5b50565b5f8135905061069481610670565b92915050565b6106a38161060f565b81146106ad575f5ffd5b50565b5f813590506106be8161069a565b92915050565b5f5f604083850312156106da576106d961043c565b5b5f6106e785828601610686565b92505060206106f8858286016106b0565b9150509250929050565b5f602082840312156107175761071661043c565b5b5f610724848285016106b0565b91505092915050565b61073681610444565b82525050565b5f60208201905061074f5f83018461072d565b92915050565b61075e8161065f565b82525050565b5f6020820190506107775f830184610755565b92915050565b5f602082840312156107925761079161043c565b5b5f61079f84828501610686565b91505092915050565b5f82825260208201905092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f6107ec6018836107a8565b91506107f7826107b8565b602082019050919050565b5f6020820190508181035f830152610819816107e0565b9050919050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61084c82610820565b610856818561082a565b9350610866818560208601610834565b80840191505092915050565b5f61087d8284610842565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f6108bc601d836107a8565b91506108c782610888565b602082019050919050565b5f6020820190508181035f8301526108e9816108b0565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f6109246017836107a8565b915061092f826108f0565b602082019050919050565b5f6020820190508181035f83015261095181610918565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f61098c601d836107a8565b915061099782610958565b602082019050919050565b5f6020820190508181035f8301526109b981610980565b905091905056fea2646970667358221220338a74da87ada82c6f08fb857d4b4f4692fa3b6ee3c9abe11239434f5108d33b64736f6c634300081c0033