0x60806040526040518060400160405280600681526020017f48656c6c6f2000000000000000000000000000000000000000000000000000008152506001908161004891906102c5565b50348015610054575f80fd5b50604051610ce8380380610ce8833981810160405281019061007691906104b4565b805f908161008491906102c5565b50506104fb565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061010657607f821691505b602082108103610119576101186100c2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261017b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610140565b6101858683610140565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101c96101c46101bf8461019d565b6101a6565b61019d565b9050919050565b5f819050919050565b6101e2836101af565b6101f66101ee826101d0565b84845461014c565b825550505050565b5f90565b61020a6101fe565b6102158184846101d9565b505050565b5b818110156102385761022d5f82610202565b60018101905061021b565b5050565b601f82111561027d5761024e8161011f565b61025784610131565b81016020851015610266578190505b61027a61027285610131565b83018261021a565b50505b505050565b5f82821c905092915050565b5f61029d5f1984600802610282565b1980831691505092915050565b5f6102b5838361028e565b9150826002028217905092915050565b6102ce8261008b565b67ffffffffffffffff8111156102e7576102e6610095565b5b6102f182546100ef565b6102fc82828561023c565b5f60209050601f83116001811461032d575f841561031b578287015190505b61032585826102aa565b86555061038c565b601f19841661033b8661011f565b5f5b828110156103625784890151825560018201915060208501945060208101905061033d565b8683101561037f578489015161037b601f89168261028e565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b6103c6826103ad565b810181811067ffffffffffffffff821117156103e5576103e4610095565b5b80604052505050565b5f6103f7610394565b905061040382826103bd565b919050565b5f67ffffffffffffffff82111561042257610421610095565b5b61042b826103ad565b9050602081019050919050565b8281835e5f83830152505050565b5f61045861045384610408565b6103ee565b905082815260208101848484011115610474576104736103a9565b5b61047f848285610438565b509392505050565b5f82601f83011261049b5761049a6103a5565b5b81516104ab848260208601610446565b91505092915050565b5f602082840312156104c9576104c861039d565b5b5f82015167ffffffffffffffff8111156104e6576104e56103a1565b5b6104f284828501610487565b91505092915050565b6107e0806105085f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806306fdde031461004e578063213686071461006c578063c47f00271461008a578063fe50cc72146100a6575b5f80fd5b6100566100c4565b6040516100639190610287565b60405180910390f35b61007461014f565b6040516100819190610287565b60405180910390f35b6100a4600480360381019061009f91906103e4565b6101db565b005b6100ae6101ed565b6040516100bb9190610287565b60405180910390f35b5f80546100d090610458565b80601f01602080910402602001604051908101604052809291908181526020018280546100fc90610458565b80156101475780601f1061011e57610100808354040283529160200191610147565b820191905f5260205f20905b81548152906001019060200180831161012a57829003601f168201915b505050505081565b6001805461015c90610458565b80601f016020809104026020016040519081016040528092919081815260200182805461018890610458565b80156101d35780601f106101aa576101008083540402835291602001916101d3565b820191905f5260205f20905b8154815290600101906020018083116101b657829003601f168201915b505050505081565b805f90816101e9919061062e565b5050565b606060015f604051602001610203929190610787565b604051602081830303815290604052905090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61025982610217565b6102638185610221565b9350610273818560208601610231565b61027c8161023f565b840191505092915050565b5f6020820190508181035f83015261029f818461024f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102f68261023f565b810181811067ffffffffffffffff82111715610315576103146102c0565b5b80604052505050565b5f6103276102a7565b905061033382826102ed565b919050565b5f67ffffffffffffffff821115610352576103516102c0565b5b61035b8261023f565b9050602081019050919050565b828183375f83830152505050565b5f61038861038384610338565b61031e565b9050828152602081018484840111156103a4576103a36102bc565b5b6103af848285610368565b509392505050565b5f82601f8301126103cb576103ca6102b8565b5b81356103db848260208601610376565b91505092915050565b5f602082840312156103f9576103f86102b0565b5b5f82013567ffffffffffffffff811115610416576104156102b4565b5b610422848285016103b7565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061046f57607f821691505b6020821081036104825761048161042b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104e47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a9565b6104ee86836104a9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61053261052d61052884610506565b61050f565b610506565b9050919050565b5f819050919050565b61054b83610518565b61055f61055782610539565b8484546104b5565b825550505050565b5f90565b610573610567565b61057e818484610542565b505050565b5b818110156105a1576105965f8261056b565b600181019050610584565b5050565b601f8211156105e6576105b781610488565b6105c08461049a565b810160208510156105cf578190505b6105e36105db8561049a565b830182610583565b50505b505050565b5f82821c905092915050565b5f6106065f19846008026105eb565b1980831691505092915050565b5f61061e83836105f7565b9150826002028217905092915050565b61063782610217565b67ffffffffffffffff8111156106505761064f6102c0565b5b61065a8254610458565b6106658282856105a5565b5f60209050601f831160018114610696575f8415610684578287015190505b61068e8582610613565b8655506106f5565b601f1984166106a486610488565b5f5b828110156106cb578489015182556001820191506020850194506020810190506106a6565b868310156106e857848901516106e4601f8916826105f7565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f815461071381610458565b61071d81866106fd565b9450600182165f8114610737576001811461074c5761077e565b60ff198316865281151582028601935061077e565b61075585610488565b5f5b8381101561077657815481890152600182019150602081019050610757565b838801955050505b50505092915050565b5f6107928285610707565b915061079e8284610707565b9150819050939250505056fea2646970667358221220597cbd7d83377c3660460e8bd796bb821ee378b359dc7eaf1c8f49c45f0fa30764736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004766f746500000000000000000000000000000000000000000000000000000000