0x60c0604052348015600e575f80fd5b5073ba12222222228d8ba445958a75a0704d566bf2c873ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805160a051610e4461007b5f395f50505f818160a401526101380152610e445ff3fe60806040526004361061002c575f3560e01c8063069420f814610037578063f04f27071461005f57610033565b3661003357005b5f80fd5b348015610042575f80fd5b5061005d600480360381019061005891906106c8565b61007b565b005b61007960048036038101906100749190610793565b610136565b005b5f838383604051602001610091939291906108e5565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c38449e308888856040518563ffffffff1660e01b81526004016101019493929190610adb565b5f604051808303815f87803b158015610118575f80fd5b505af115801561012a573d5f803e3d5ffd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bb90610bb3565b60405180910390fd5b5f805f838060200190518101906101db9190610c8e565b9250925092505f5b87518110156102d3575f868281518110610200576101ff610cfa565b5b602002602001015188838151811061021b5761021a610cfa565b5b602002602001015161022d9190610d54565b905088828151811061024257610241610cfa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610284929190610d87565b6020604051808303815f875af11580156102a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c49190610de3565b505080806001019150506101e3565b505f4790505f811115610325573373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610323573d5f803e3d5ffd5b505b5050505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61038a82610344565b810181811067ffffffffffffffff821117156103a9576103a8610354565b5b80604052505050565b5f6103bb61032f565b90506103c78282610381565b919050565b5f67ffffffffffffffff8211156103e6576103e5610354565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610424826103fb565b9050919050565b5f6104358261041a565b9050919050565b6104458161042b565b811461044f575f80fd5b50565b5f813590506104608161043c565b92915050565b5f610478610473846103cc565b6103b2565b9050808382526020820190506020840283018581111561049b5761049a6103f7565b5b835b818110156104c457806104b08882610452565b84526020840193505060208101905061049d565b5050509392505050565b5f82601f8301126104e2576104e1610340565b5b81356104f2848260208601610466565b91505092915050565b5f67ffffffffffffffff82111561051557610514610354565b5b602082029050602081019050919050565b5f819050919050565b61053881610526565b8114610542575f80fd5b50565b5f813590506105538161052f565b92915050565b5f61056b610566846104fb565b6103b2565b9050808382526020820190506020840283018581111561058e5761058d6103f7565b5b835b818110156105b757806105a38882610545565b845260208401935050602081019050610590565b5050509392505050565b5f82601f8301126105d5576105d4610340565b5b81356105e5848260208601610559565b91505092915050565b6105f78161041a565b8114610601575f80fd5b50565b5f81359050610612816105ee565b92915050565b5f80fd5b5f67ffffffffffffffff82111561063657610635610354565b5b61063f82610344565b9050602081019050919050565b828183375f83830152505050565b5f61066c6106678461061c565b6103b2565b90508281526020810184848401111561068857610687610618565b5b61069384828561064c565b509392505050565b5f82601f8301126106af576106ae610340565b5b81356106bf84826020860161065a565b91505092915050565b5f805f805f60a086880312156106e1576106e0610338565b5b5f86013567ffffffffffffffff8111156106fe576106fd61033c565b5b61070a888289016104ce565b955050602086013567ffffffffffffffff81111561072b5761072a61033c565b5b610737888289016105c1565b945050604061074888828901610604565b935050606086013567ffffffffffffffff8111156107695761076861033c565b5b6107758882890161069b565b925050608061078688828901610545565b9150509295509295909350565b5f805f80608085870312156107ab576107aa610338565b5b5f85013567ffffffffffffffff8111156107c8576107c761033c565b5b6107d4878288016104ce565b945050602085013567ffffffffffffffff8111156107f5576107f461033c565b5b610801878288016105c1565b935050604085013567ffffffffffffffff8111156108225761082161033c565b5b61082e878288016105c1565b925050606085013567ffffffffffffffff81111561084f5761084e61033c565b5b61085b8782880161069b565b91505092959194509250565b6108708161041a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6108a882610876565b6108b28185610880565b93506108c2818560208601610890565b6108cb81610344565b840191505092915050565b6108df81610526565b82525050565b5f6060820190506108f85f830186610867565b818103602083015261090a818561089e565b905061091960408301846108d6565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b5f61096d610968610963846103fb565b61094a565b6103fb565b9050919050565b5f61097e82610953565b9050919050565b5f61098f82610974565b9050919050565b61099f81610985565b82525050565b5f6109b08383610996565b60208301905092915050565b5f602082019050919050565b5f6109d282610921565b6109dc818561092b565b93506109e78361093b565b805f5b83811015610a175781516109fe88826109a5565b9750610a09836109bc565b9250506001810190506109ea565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610a5681610526565b82525050565b5f610a678383610a4d565b60208301905092915050565b5f602082019050919050565b5f610a8982610a24565b610a938185610a2e565b9350610a9e83610a3e565b805f5b83811015610ace578151610ab58882610a5c565b9750610ac083610a73565b925050600181019050610aa1565b5085935050505092915050565b5f608082019050610aee5f830187610867565b8181036020830152610b0081866109c8565b90508181036040830152610b148185610a7f565b90508181036060830152610b28818461089e565b905095945050505050565b5f82825260208201905092915050565b7f4f6e6c79207661756c742063616e2063616c6c20746869732066756e6374696f5f8201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f610b9d602183610b33565b9150610ba882610b43565b604082019050919050565b5f6020820190508181035f830152610bca81610b91565b9050919050565b5f610bdb826103fb565b9050919050565b610beb81610bd1565b8114610bf5575f80fd5b50565b5f81519050610c0681610be2565b92915050565b5f610c1e610c198461061c565b6103b2565b905082815260208101848484011115610c3a57610c39610618565b5b610c45848285610890565b509392505050565b5f82601f830112610c6157610c60610340565b5b8151610c71848260208601610c0c565b91505092915050565b5f81519050610c888161052f565b92915050565b5f805f60608486031215610ca557610ca4610338565b5b5f610cb286828701610bf8565b935050602084015167ffffffffffffffff811115610cd357610cd261033c565b5b610cdf86828701610c4d565b9250506040610cf086828701610c7a565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d5e82610526565b9150610d6983610526565b9250828201905080821115610d8157610d80610d27565b5b92915050565b5f604082019050610d9a5f830185610867565b610da760208301846108d6565b9392505050565b5f8115159050919050565b610dc281610dae565b8114610dcc575f80fd5b50565b5f81519050610ddd81610db9565b92915050565b5f60208284031215610df857610df7610338565b5b5f610e0584828501610dcf565b9150509291505056fea2646970667358221220a2f219341fc4974f7aea10ceac33939c4b5d3a35350f403ee056eafd593da85564736f6c634300081a0033