0x60806040523480156200001157600080fd5b5060405162000fa338038062000fa38339818101604052810190620000379190620001d5565b620000576200004b6200009f60201b60201c565b620000a760201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000207565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200019d8262000170565b9050919050565b620001af8162000190565b8114620001bb57600080fd5b50565b600081519050620001cf81620001a4565b92915050565b600060208284031215620001ee57620001ed6200016b565b5b6000620001fe84828501620001be565b91505092915050565b610d8c80620002176000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806372310a4d1161005b57806372310a4d146100c45780638da5cb5b146100e0578063f2fde38b146100fe578063fc0c546a1461011a5761007d565b806356266e061461008257806366829b161461009e578063715018a6146100ba575b600080fd5b61009c6004803603810190610097919061088e565b610138565b005b6100b860048036038101906100b391906108ea565b610274565b005b6100c26102f9565b005b6100de60048036038101906100d991906109da565b61030d565b005b6100e8610471565b6040516100f59190610a61565b60405180910390f35b610118600480360381019061011391906108ea565b61049a565b005b61012261051d565b60405161012f9190610adb565b60405180910390f35b610140610543565b60005b825181101561026f57600073ffffffffffffffffffffffffffffffffffffffff1683828151811061017757610176610af6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361019f57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338584815181106101f1576101f0610af6565b5b6020026020010151856040518463ffffffff1660e01b815260040161021893929190610b34565b6020604051808303816000875af1158015610237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025b9190610ba3565b50808061026790610bff565b915050610143565b505050565b61027c610543565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102b557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610301610543565b61030b60006105c1565b565b610315610543565b805182511461032357600080fd5b60005b825181101561046c57600073ffffffffffffffffffffffffffffffffffffffff1683828151811061035a57610359610af6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361038257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338584815181106103d4576103d3610af6565b5b60200260200101518585815181106103ef576103ee610af6565b5b60200260200101516040518463ffffffff1660e01b815260040161041593929190610b34565b6020604051808303816000875af1158015610434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104589190610ba3565b50808061046490610bff565b915050610326565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104a2610543565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610cca565b60405180910390fd5b61051a816105c1565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61054b610685565b73ffffffffffffffffffffffffffffffffffffffff16610569610471565b73ffffffffffffffffffffffffffffffffffffffff16146105bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b690610d36565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6106ef826106a6565b810181811067ffffffffffffffff8211171561070e5761070d6106b7565b5b80604052505050565b600061072161068d565b905061072d82826106e6565b919050565b600067ffffffffffffffff82111561074d5761074c6106b7565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061078e82610763565b9050919050565b61079e81610783565b81146107a957600080fd5b50565b6000813590506107bb81610795565b92915050565b60006107d46107cf84610732565b610717565b905080838252602082019050602084028301858111156107f7576107f661075e565b5b835b81811015610820578061080c88826107ac565b8452602084019350506020810190506107f9565b5050509392505050565b600082601f83011261083f5761083e6106a1565b5b813561084f8482602086016107c1565b91505092915050565b6000819050919050565b61086b81610858565b811461087657600080fd5b50565b60008135905061088881610862565b92915050565b600080604083850312156108a5576108a4610697565b5b600083013567ffffffffffffffff8111156108c3576108c261069c565b5b6108cf8582860161082a565b92505060206108e085828601610879565b9150509250929050565b600060208284031215610900576108ff610697565b5b600061090e848285016107ac565b91505092915050565b600067ffffffffffffffff821115610932576109316106b7565b5b602082029050602081019050919050565b600061095661095184610917565b610717565b905080838252602082019050602084028301858111156109795761097861075e565b5b835b818110156109a2578061098e8882610879565b84526020840193505060208101905061097b565b5050509392505050565b600082601f8301126109c1576109c06106a1565b5b81356109d1848260208601610943565b91505092915050565b600080604083850312156109f1576109f0610697565b5b600083013567ffffffffffffffff811115610a0f57610a0e61069c565b5b610a1b8582860161082a565b925050602083013567ffffffffffffffff811115610a3c57610a3b61069c565b5b610a48858286016109ac565b9150509250929050565b610a5b81610783565b82525050565b6000602082019050610a766000830184610a52565b92915050565b6000819050919050565b6000610aa1610a9c610a9784610763565b610a7c565b610763565b9050919050565b6000610ab382610a86565b9050919050565b6000610ac582610aa8565b9050919050565b610ad581610aba565b82525050565b6000602082019050610af06000830184610acc565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b610b2e81610858565b82525050565b6000606082019050610b496000830186610a52565b610b566020830185610a52565b610b636040830184610b25565b949350505050565b60008115159050919050565b610b8081610b6b565b8114610b8b57600080fd5b50565b600081519050610b9d81610b77565b92915050565b600060208284031215610bb957610bb8610697565b5b6000610bc784828501610b8e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610c0a82610858565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c3c57610c3b610bd0565b5b600182019050919050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610cb4602683610c47565b9150610cbf82610c58565b604082019050919050565b60006020820190508181036000830152610ce381610ca7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610d20602083610c47565b9150610d2b82610cea565b602082019050919050565b60006020820190508181036000830152610d4f81610d13565b905091905056fea2646970667358221220fb3bd1e412786d2a5712b2a07dcb6919aea871345f3e837c27774821d9f72aca64736f6c634300081200330000000000000000000000007912ae983c2c3864bef81bc81b904c0f777b4d2f