0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c99806100745f395ff3fe608060405234801561000f575f5ffd5b5060043610610086575f3560e01c8063926048c011610059578063926048c01461012457806394d7fdb814610154578063daf239f814610184578063f2fde38b146101b457610086565b806304948fbb1461008a5780631f94e3c5146100ba5780633b111c25146100ea5780638da5cb5b14610106575b5f5ffd5b6100a4600480360381019061009f9190610592565b6101d0565b6040516100b191906105fc565b60405180910390f35b6100d460048036038101906100cf9190610784565b6101d9565b6040516100e1919061081b565b60405180910390f35b61010460048036038101906100ff919061085e565b6101e5565b005b61010e61038f565b60405161011b91906105fc565b60405180910390f35b61013e6004803603810190610139919061089c565b6103b4565b60405161014b91906108e9565b60405180910390f35b61016e60048036038101906101699190610902565b6103bf565b60405161017b91906109b2565b60405180910390f35b61019e600480360381019061019991906109d2565b610400565b6040516101ab919061081b565b60405180910390f35b6101ce60048036038101906101c99190610a3e565b61040c565b005b5f5f9050919050565b5f602a90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024a90610ab3565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16828360405160240161027d919061081b565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103079190610b15565b5f6040518083038185875af1925050503d805f8114610341576040519150601f19603f3d011682016040523d82523d5f602084013e610346565b606091505b505090508061038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038190610b75565b60405180910390fd5b505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6001905092915050565b60606040518060400160405280600781526020017f537563636573730000000000000000000000000000000000000000000000000081525090509392505050565b5f602a90509392505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461049b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049290610bdd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050090610c45565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f8115159050919050565b6105718161055d565b811461057b575f5ffd5b50565b5f8135905061058c81610568565b92915050565b5f602082840312156105a7576105a6610555565b5b5f6105b48482850161057e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105e6826105bd565b9050919050565b6105f6816105dc565b82525050565b5f60208201905061060f5f8301846105ed565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106638261061d565b810181811067ffffffffffffffff821117156106825761068161062d565b5b80604052505050565b5f61069461054c565b90506106a0828261065a565b919050565b5f67ffffffffffffffff8211156106bf576106be61062d565b5b6106c88261061d565b9050602081019050919050565b828183375f83830152505050565b5f6106f56106f0846106a5565b61068b565b90508281526020810184848401111561071157610710610619565b5b61071c8482856106d5565b509392505050565b5f82601f83011261073857610737610615565b5b81356107488482602086016106e3565b91505092915050565b5f819050919050565b61076381610751565b811461076d575f5ffd5b50565b5f8135905061077e8161075a565b92915050565b5f5f5f6060848603121561079b5761079a610555565b5b5f84013567ffffffffffffffff8111156107b8576107b7610559565b5b6107c486828701610724565b935050602084013567ffffffffffffffff8111156107e5576107e4610559565b5b6107f186828701610724565b925050604061080286828701610770565b9150509250925092565b61081581610751565b82525050565b5f60208201905061082e5f83018461080c565b92915050565b61083d816105dc565b8114610847575f5ffd5b50565b5f8135905061085881610834565b92915050565b5f5f6040838503121561087457610873610555565b5b5f6108818582860161084a565b925050602061089285828601610770565b9150509250929050565b5f5f604083850312156108b2576108b1610555565b5b5f6108bf85828601610770565b92505060206108d08582860161057e565b9150509250929050565b6108e38161055d565b82525050565b5f6020820190506108fc5f8301846108da565b92915050565b5f5f5f6060848603121561091957610918610555565b5b5f61092686828701610770565b93505060206109378682870161084a565b92505060406109488682870161057e565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61098482610952565b61098e818561095c565b935061099e81856020860161096c565b6109a78161061d565b840191505092915050565b5f6020820190508181035f8301526109ca818461097a565b905092915050565b5f5f5f606084860312156109e9576109e8610555565b5b5f84013567ffffffffffffffff811115610a0657610a05610559565b5b610a1286828701610724565b9350506020610a238682870161057e565b9250506040610a3486828701610770565b9150509250925092565b5f60208284031215610a5357610a52610555565b5b5f610a608482850161084a565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610a9d60188361095c565b9150610aa882610a69565b602082019050919050565b5f6020820190508181035f830152610aca81610a91565b9050919050565b5f81519050919050565b5f81905092915050565b5f610aef82610ad1565b610af98185610adb565b9350610b0981856020860161096c565b80840191505092915050565b5f610b208284610ae5565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610b5f601d8361095c565b9150610b6a82610b2b565b602082019050919050565b5f6020820190508181035f830152610b8c81610b53565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610bc760178361095c565b9150610bd282610b93565b602082019050919050565b5f6020820190508181035f830152610bf481610bbb565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610c2f601d8361095c565b9150610c3a82610bfb565b602082019050919050565b5f6020820190508181035f830152610c5c81610c23565b905091905056fea26469706673582212200579d65ef413891fa9be5565e4044859583d30ea4c9b77581495c6aead4b1b2264736f6c634300081c0033