0x608060405234801561000f575f80fd5b506107f28061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c806319d689211461002d575b5f80fd5b61004061003b3660046105f2565b610042565b005b610fff821661005260014361063f565b40610fff16146100c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f756e636c6500000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273b4c5355f35e0fc4a3dafc55f64319416e154fb1160048201525f9073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa15801561013f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101639190610658565b90505b600c83901d9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610229576040517fcc956f3f000000000000000000000000000000000000000000000000000000008152610fff8416600482015273f403c135812408bfbe8713b5a23a04b3d48aae319063cc956f3f906024016020604051808303815f875af11580156101ff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610223919061066f565b50610166565b604080516101608101825273d533a949740bb3306d119cc777fa900ba034cd52808252602080830182905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2838501525f6060808501829052608080860183905260a080870184905260c080880185905260e0808901869052610100808a01879052610120808b01889052610140808c018990528c519081018d5260028187019081526001958201869052938101949094526003918401829052830152815288518083018a52858152808701869052808a018690528085018690528084018690528187015288518083018a52858152808701869052808a01869052808501869052808401869052818a015288518083018a52858152808701869052808a018690528085018690528084018690528185015288519182018952848252948101849052808801849052918201839052818101929092529082015292517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273f0d4c12a5768d806021f80a262b4d39d26c58b8d9363c872a3c5939290916370a0823190602401602060405180830381865afa1580156103e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104079190610658565b6040805160a08101825273d533a949740bb3306d119cc777fa900ba034cd5281525f60208201819052818301819052606082018190526080820181905291517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b16815261049695949392919073b4c5355f35e0fc4a3dafc55f64319416e154fb11906004016106cd565b6020604051808303815f875af11580156104b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d69190610658565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273b4c5355f35e0fc4a3dafc55f64319416e154fb1160048201525f9073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa158015610553573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105779190610658565b905061058383836107a9565b8110156105ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f6c6573732e00000000000000000000000000000000000000000000000000000060448201526064016100ba565b50505050565b5f8060408385031215610603575f80fd5b50508035926020909101359150565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561065257610652610612565b92915050565b5f60208284031215610668575f80fd5b5051919050565b5f6020828403121561067f575f80fd5b8151801515811461068e575f80fd5b9392505050565b805f5b60058110156105ec57815173ffffffffffffffffffffffffffffffffffffffff16845260209384019390910190600101610698565b610580810181885f5b600b81101561070b57815173ffffffffffffffffffffffffffffffffffffffff168352602092830192909101906001016106d6565b5050506101608201875f5b60058082106107255750610762565b8251845f5b8381101561074857825182526020928301929091019060010161072a565b50505060a093909301925060209190910190600101610716565b50505085610480830152846104a08301526107816104c0830185610695565b73ffffffffffffffffffffffffffffffffffffffff8316610560830152979650505050505050565b808201808211156106525761065261061256fea2646970667358221220d7dade4099a217e96b4f6ce418badcc1ea93da5c21d571f53dbb2fde6061d79d64736f6c63430008150033