false
true
0

Contract Address Details

0x8Ffb16E18A34188Efef4ff3A9E08749968677836

Creator
0x9fc4e5–0d2e5f at 0x8a5b17–d09b13
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
25982370

Contract Creation Code

Verify & Publish
0x60e060405260016000556000196001553480156200001c57600080fd5b5060405162004c4538038062004c458339810160408190526200003f9162000079565b6001600160a01b03928316608052821660a0521660c052620000c3565b80516001600160a01b03811681146200007457600080fd5b919050565b6000806000606084860312156200008f57600080fd5b6200009a846200005c565b9250620000aa602085016200005c565b9150620000ba604085016200005c565b90509250925092565b60805160a05160c051614b0562000140600039600081816101e3015281816103d40152818161084801528181610a4701528181610b0c015281816113b3015281816114d40152818161202a0152818161208a015261215201526000818161030701528181610c2e0152612270015260006104540152614b056000f3fe6080604052600436106101c65760003560e01c8063ac9650d8116100f7578063df2ab5bb11610095578063f25801a711610064578063f25801a714610508578063f28c049814610528578063f2d5d56b1461053b578063f3995c671461054e57600080fd5b8063df2ab5bb146104af578063e0e189a0146104c2578063e90a182f146104d5578063efdeed8e146104e857600080fd5b8063c45a0155116100d1578063c45a015514610442578063c60696ec14610476578063d67d920a14610489578063d9da7f911461049c57600080fd5b8063ac9650d814610409578063c04b8d591461041c578063c2e3140a1461042f57600080fd5b80634659a494116101645780636a5ac18f1161013e5780636a5ac18f1461038f5780636eb38adc146103af5780638af3ac85146103c2578063a4a78f0c146103f657600080fd5b80634659a494146103565780635ae401dc1461036957806369bc35b21461037c57600080fd5b80631f0464d1116101a05780631f0464d1146102c25780633068c554146102e25780633119049a146102f5578063418652701461034e57600080fd5b80631679c792146102765780631764babc1461029c5780631c58db4f146102af57600080fd5b36610271573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461026f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e6f7420574e6174697665546f6b656e0000000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b610289610284366004613843565b610561565b6040519081526020015b60405180910390f35b6102896102aa366004613843565b6106c0565b61026f6102bd366004613867565b610846565b6102d56102d03660046138cc565b6108ca565b6040516102939190613986565b61026f6102f0366004613a28565b610954565b34801561030157600080fd5b506103297f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610293565b61026f610967565b61026f610364366004613a81565b610979565b6102d56103773660046138cc565b610a34565b61026f61038a366004613add565b610a40565b34801561039b57600080fd5b5061026f6103aa366004613b0d565b610b8c565b6102896103bd366004613843565b610d30565b3480156103ce57600080fd5b506103297f000000000000000000000000000000000000000000000000000000000000000081565b61026f610404366004613a81565b611083565b6102d5610417366004613b8d565b6110c1565b61028961042a366004613d04565b611228565b61026f61043d366004613a81565b61134a565b34801561044e57600080fd5b506103297f000000000000000000000000000000000000000000000000000000000000000081565b61026f610484366004613da8565b611368565b61026f610497366004613de7565b61158c565b61026f6104aa366004613867565b611598565b61026f6104bd366004613e20565b6115a5565b61026f6104d0366004613e57565b61162d565b61026f6104e3366004613eb6565b611793565b3480156104f457600080fd5b5061026f610503366004613fc0565b6117a2565b34801561051457600080fd5b5061026f6105233660046140b5565b61182b565b61028961053636600461410c565b6118b3565b61026f610549366004613eb6565b6119aa565b61026f61055c366004613a81565b6119b6565b6000816080013561057181611a33565b61064a60a08401356105896080860160608701614147565b61059a610100870160e08801614147565b60408051808201909152806105b260208a018a614147565b6105c260608b0160408c01614147565b6105d260408c0160208d01614147565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b8116602083015292841b83166034820152921b166048820152605c0160405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611a9d565b91508260c001358210156106ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6f206c6974746c65207265636569766564000000000000000000000000006044820152606401610266565b50919050565b600081608001356106d081611a33565b6107ac60a08401356106e86080860160608701614147565b6106f9610100870160e08801614147565b60405180604001604052808860200160208101906107179190614147565b61072760608b0160408c01614147565b61073460208c018c614147565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b8116602083015292841b83166034820152921b166048820152605c0160405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611c2d565b91508260c0013582111561081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f546f6f206d7563682072657175657374656400000000000000000000000000006044820152606401610266565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600155919050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108ae57600080fd5b505af11580156108c2573d6000803e3d6000fd5b505050505050565b606083806108d9600143614193565b4014610941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f426c6f636b6861736800000000000000000000000000000000000000000000006044820152606401610266565b61094b84846110c1565b95945050505050565b610961848433858561162d565b50505050565b4715610977576109773347611e5c565b565b6040517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101869052606481018590526001608482015260ff841660a482015260c4810183905260e4810182905273ffffffffffffffffffffffffffffffffffffffff871690638fcbaf0c90610104015b600060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b50505050505050505050565b60608361094181611a33565b6000610a6b7f0000000000000000000000000000000000000000000000000000000000000000611f40565b905082811015610ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496e73756666696369656e7420574e6174697665546f6b656e000000000000006044820152606401610266565b8015610b87576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b158015610b6557600080fd5b505af1158015610b79573d6000803e3d6000fd5b50505050610b878282611e5c565b505050565b6000841380610b9b5750600083135b610c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5a65726f206c69717569646974792073776170000000000000000000000000006044820152606401610266565b6000610c0f828401846141a6565b90506000806000610c238460000151611fd8565b925092509250610c557f0000000000000000000000000000000000000000000000000000000000000000838584612012565b5060008060008a13610c96578473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161089610cc7565b8273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b915091508115610ce657610ce18587602001513384612028565b610a28565b8551610cf190612202565b15610d16578551610d019061223a565b8652610d108133600089611c2d565b50610a28565b80600181905550829450610a288587602001513384612028565b60008160800135610d4081611a33565b6040805180820190915260009080610d5b6020870187614147565b610d6b6060880160408901614147565b610d7b6040890160208a01614147565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b8116602083015292841b83166034820152921b166048820152605c01604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529190528152336020909101529050600080610e0c6080870160608801614147565b73ffffffffffffffffffffffffffffffffffffffff1614610e3c57610e376080860160608701614147565b610e3e565b305b90506000610e526040870160208801614147565b73ffffffffffffffffffffffffffffffffffffffff16610e756020880188614147565b73ffffffffffffffffffffffffffffffffffffffff16109050600080610ec6610ea460608a0160408b01614147565b610eb160208b018b614147565b610ec160408c0160208d01614147565b612269565b73ffffffffffffffffffffffffffffffffffffffff16639e4e0227338686610ef18d60a001356122a7565b8d60e0016020810190610f049190614147565b73ffffffffffffffffffffffffffffffffffffffff1615610f37578d60e0016020810190610f329190614147565b610f6b565b88610f5b57610f32600173fffd8963efd1fc6a506488495d951d5263988d26614240565b610f6b6401000276a36001614274565b8b604051602001610f7c91906142a1565b6040516020818303038152906040526040518763ffffffff1660e01b8152600401610fac969594939291906142e9565b60408051808303816000875af1158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee9190614344565b9150915082610ffd5781610fff565b805b61100890614368565b96508760c00135871015611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6f206c6974746c65207265636569766564000000000000000000000000006044820152606401610266565b505050505050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6110ad876122bb565b10156108c2576108c2868686868686610979565b60606002600054036110ff576040517f771def8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026000558167ffffffffffffffff81111561111d5761111d613bcf565b60405190808252806020026020018201604052801561115057816020015b606081526020019060019003908161113b5790505b50905060005b8281101561121c5760008030868685818110611174576111746143a0565b905060200281019061118691906143cf565b604051611194929190614434565b600060405180830381855af49150503d80600081146111cf576040519150601f19603f3d011682016040523d82523d6000602084013e6111d4565b606091505b5091509150816111f45760008151116111ec57600080fd5b805181602001fd5b80848481518110611207576112076143a0565b60209081029190910101525050600101611156565b50600160005592915050565b6000816040015161123881611a33565b335b60006112498560000151612202565b90506112a2856060015182611262578660200151611264565b305b6000604051806040016040528061127e8b60000151612316565b81526020018773ffffffffffffffffffffffffffffffffffffffff16815250611a9d565b606086015280156112c25784513092506112bb9061223a565b85526112cf565b84606001519350506112d5565b5061123a565b8360800151831015611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6f206c6974746c65207265636569766564000000000000000000000000006044820152606401610266565b5050919050565b84611354876122bb565b10156108c2576108c28686868686866119b6565b600082118015611379575060648211155b61138257600080fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561140f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114339190614444565b90508481101561149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496e73756666696369656e7420574e6174697665546f6b656e000000000000006044820152606401610266565b8015611585576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b15801561152d57600080fd5b505af1158015611541573d6000803e3d6000fd5b5050505060006127108483611556919061445d565b61156091906144a3565b90508015611572576115728382611e5c565b6108c2856115808385614193565b611e5c565b5050505050565b610b8783338484611368565b6115a28133610a40565b50565b60006115b084611f40565b90508281101561161c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e00000000000000000000000000006044820152606401610266565b801561096157610961848383612333565b60008211801561163e575060648211155b61164757600080fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8716906370a0823190602401602060405180830381865afa1580156116b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d89190614444565b905084811015611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e00000000000000000000000000006044820152606401610266565b80156108c2576000612710611759858461445d565b61176391906144a3565b9050801561177657611776878483612333565b61178a87866117858486614193565b612333565b50505050505050565b61179e8282336115a5565b5050565b6000806117b086868561249c565b915091508360020b81836117c491906144b7565b126108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54440000000000000000000000000000000000000000000000000000000000006044820152606401610266565b60008061183885846126ee565b915091508360020b818361184c91906144b7565b12611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54440000000000000000000000000000000000000000000000000000000000006044820152606401610266565b600081604001356118c381611a33565b61193660608401356118db6040860160208701614147565b60408051808201909152600090806118f389806143cf565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525033602090910152611c2d565b506001549150826080013582111561081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f546f6f206d7563682072657175657374656400000000000000000000000000006044820152606401610266565b61179e82333084612a0a565b6040517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526064810185905260ff8416608482015260a4810183905260c4810182905273ffffffffffffffffffffffffffffffffffffffff87169063d505accf9060e4016109fa565b804211156115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c64000000000000000000000000006044820152606401610266565b600073ffffffffffffffffffffffffffffffffffffffff8416611abe573093505b6000806000611ad08560000151611fd8565b9194509250905073ffffffffffffffffffffffffffffffffffffffff80821690841610600080611b01858786612269565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b85611b278f6122a7565b73ffffffffffffffffffffffffffffffffffffffff8e1615611b49578d611b82565b87611b7257611b6d600173fffd8963efd1fc6a506488495d951d5263988d26614240565b611b82565b611b826401000276a36001614274565b8d604051602001611b9391906142a1565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611bc29594939291906144d7565b60408051808303816000875af1158015611be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c049190614344565b9150915082611c135781611c15565b805b611c1e90614368565b9b9a5050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8416611c4e573093505b6000806000611c608560000151611fd8565b9194509250905073ffffffffffffffffffffffffffffffffffffffff80841690821610600080611c91858588612269565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b85611cb78f6122a7565b611cc090614368565b73ffffffffffffffffffffffffffffffffffffffff8e1615611ce2578d611d1b565b87611d0b57611d06600173fffd8963efd1fc6a506488495d951d5263988d26614240565b611d1b565b611d1b6401000276a36001614274565b8d604051602001611d2c91906142a1565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611d5b9594939291906144d7565b60408051808303816000875af1158015611d79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9d9190614344565b91509150600083611db75781611db284614368565b611dc1565b82611dc183614368565b909850905073ffffffffffffffffffffffffffffffffffffffff8a16600003611e4d578b8114611e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4e6f742072656365697665642066756c6c20616d6f756e744f757400000000006044820152606401610266565b50505050505050949350505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8416908390604051611e939190614529565b60006040518083038185875af1925050503d8060008114611ed0576040519150601f19603f3d011682016040523d82523d6000602084013e611ed5565b606091505b5050905080610b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f53544500000000000000000000000000000000000000000000000000000000006044820152606401610266565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906024015b602060405180830381865afa158015611fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd29190614444565b92915050565b60008080611fe68482612b7b565b9250611ff3846014612b7b565b915061200a612003601480614545565b8590612b7b565b929491935050565b600061094b85612023868686612c04565b612c92565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120835750804710155b156121c9577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156120f057600080fd5b505af1158015612104573d6000803e3d6000fd5b50506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690527f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb925060440190506020604051808303816000875af115801561219f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c39190614568565b50610961565b3073ffffffffffffffffffffffffffffffffffffffff8416036121f6576121f1848383612333565b610961565b61096184848484612a0a565b600061220f601480614545565b601461221b8180614545565b6122259190614545565b61222f9190614545565b825110159050919050565b6060611fd261224a601480614545565b612255601480614545565b84516122619190614193565b849190612d1f565b600061229f7f000000000000000000000000000000000000000000000000000000000000000061229a868686612c04565b612e8b565b949350505050565b8060008112156122b657600080fd5b919050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015260009073ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e90604401611f91565b6060611fd2600060146123298180614545565b6122619190614545565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916123ca9190614529565b6000604051808303816000865af19150503d8060008114612407576040519150601f19603f3d011682016040523d82523d6000602084013e61240c565b606091505b50915091508180156124365750805115806124365750808060200190518101906124369190614568565b611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53540000000000000000000000000000000000000000000000000000000000006044820152606401610266565b60008083518551146124ad57600080fd5b6000855167ffffffffffffffff8111156124c9576124c9613bcf565b60405190808252806020026020018201604052801561250e57816020015b60408051808201909152600080825260208201528152602001906001900390816124e75790505b5090506000865167ffffffffffffffff81111561252d5761252d613bcf565b60405190808252806020026020018201604052801561257257816020015b604080518082019091526000808252602082015281526020019060019003908161254b5790505b50905060005b87518110156126c7576000806125a78a8481518110612599576125996143a0565b6020026020010151896126ee565b91509150818584815181106125be576125be6143a0565b60200260200101516000019060020b908160020b81525050808484815181106125e9576125e96143a0565b60200260200101516000019060020b908160020b81525050888381518110612613576126136143a0565b602002602001015185848151811061262d5761262d6143a0565b6020026020010151602001906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff1681525050888381518110612675576126756143a0565b602002602001015184848151811061268f5761268f6143a0565b6020908102919091018101516fffffffffffffffffffffffffffffffff909216910152508190506126bf81614583565b915050612578565b506126d1826130c0565b60020b93506126df816130c0565b60020b92505050935093915050565b6000806000806126fd866131ab565b90506000805b828110156129a15760008060006127198b611fd8565b925092509250600061272c838584612269565b90506000808c63ffffffff1660000361275857612748836131d0565b600291820b9350900b9050612852565b6127d08373ffffffffffffffffffffffffffffffffffffffff1663ef01df4f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ca91906145bb565b8e6134fc565b60020b91508273ffffffffffffffffffffffffffffffffffffffff1663e76c01e46040518163ffffffff1660e01b815260040160c060405180830381865afa158015612820573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284491906145fc565b50505060029190910b925050505b61285d60018a614193565b8703612899578373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161099506128a8565b6128a28e61223a565b9d508597505b600087158061294957508673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1610612919578673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610612949565b8473ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16105b9050801561296e5761295b838e614674565b9c50612967828d614674565b9b50612987565b612978838e6144b7565b9c50612984828d6144b7565b9b505b50505050505050808061299990614583565b915050612703565b5082612a00576129d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8661469c565b94506129fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8561469c565b93505b5050509250929050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691612aa99190614529565b6000604051808303816000865af19150503d8060008114612ae6576040519150601f19603f3d011682016040523d82523d6000602084013e612aeb565b606091505b5091509150818015612b15575080511580612b15575080806020019051810190612b159190614568565b6108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f53544600000000000000000000000000000000000000000000000000000000006044820152606401610266565b60008160140183511015612beb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e647300000000000000000000006044820152606401610266565b5001602001516c01000000000000000000000000900490565b60408051606081018252600080825260208201819052918101919091528173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161115612c59579091905b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015292169181019190915290565b6000612c9e8383612e8b565b90503373ffffffffffffffffffffffffffffffffffffffff821614611fd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642063616c6c6572206f662063616c6c6261636b0000000000006044820152606401610266565b60608182601f011015612d8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610266565b81830184511015612dfb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610266565b606082158015612e1a5760405191506000825260208201604052612e82565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612e53578051835260209283019201612e3b565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000816040015173ffffffffffffffffffffffffffffffffffffffff16826020015173ffffffffffffffffffffffffffffffffffffffff1610612f2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c6964206f72646572206f6620746f6b656e730000000000000000006044820152606401610266565b8151839073ffffffffffffffffffffffffffffffffffffffff1615612fa35782516020808501516040808701519051612f8f94930173ffffffffffffffffffffffffffffffffffffffff93841681529183166020830152909116604082015260600190565b604051602081830303815290604052612fed565b6020808401516040808601519051612fdd930173ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b6040516020818303038152906040525b805160209182012060405161308393927f4077c740f16098738baf4913de15a2910c03180026ab1075a69380801c8e5b4b91017fff00000000000000000000000000000000000000000000000000000000000000815260609390931b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660018401526015830191909152603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209392505050565b6000806000805b8451811015613177578481815181106130e2576130e26143a0565b602002602001015160200151600f0b858281518110613103576131036143a0565b60200260200101516000015160020b61311c919061469c565b6131269084614674565b925084818151811061313a5761313a6143a0565b6020026020010151602001516fffffffffffffffffffffffffffffffff16826131639190614545565b91508061316f81614583565b9150506130c7565b5061318281836146e8565b925060008212801561319c57506131998183614750565b15155b15611343578261094b81614764565b60006131b8601480614545565b601483516131c69190614193565b611fd291906144a3565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1663e76c01e46040518163ffffffff1660e01b815260040160c060405180830381865afa158015613221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324591906145fc565b5050604080517fef01df4f00000000000000000000000000000000000000000000000000000000815290519397506000945073ffffffffffffffffffffffffffffffffffffffff8a169363ef01df4f9350600480830193506020928290030181865afa1580156132b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132dd91906145bb565b90506132e88161373b565b9093509150428263ffffffff1614613302578394506134f4565b6040517f74eceae600000000000000000000000000000000000000000000000000000000815261ffff8416600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906374eceae69060240160e060405180830381865afa158015613373573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339791906147ee565b50506040517f74eceae60000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8a0161ffff8116600483015293965092945060009350839283925073ffffffffffffffffffffffffffffffffffffffff881691506374eceae69060240160e060405180830381865afa15801561343a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345e91906147ee565b50505050925092509250826134cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544e4900000000000000000000000000000000000000000000000000000000006044820152606401610266565b818703600381900b82870360060b816134ea576134ea614474565b059a505050505050505b505050915091565b60008163ffffffff1660000361356e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f506572696f64206973207a65726f0000000000000000000000000000000000006044820152606401610266565b60408051600280825260608201835260009260208301908036833701905050905082816000815181106135a3576135a36143a0565b602002602001019063ffffffff16908163ffffffff16815250506000816001815181106135d2576135d26143a0565b63ffffffff909216602092830291909101909101526040517f9d3a5241000000000000000000000000000000000000000000000000000000008152849060009073ffffffffffffffffffffffffffffffffffffffff831690639d3a52419061363e908690600401614876565b600060405180830381865afa15801561365b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526136a19190810190614922565b5090506000816000815181106136b9576136b96143a0565b6020026020010151826001815181106136d4576136d46143a0565b60200260200101516136e691906149e5565b90506136f863ffffffff871682614a2a565b945060008160060b12801561371e575061371863ffffffff871682614a9e565b60060b15155b15613731578461372d81614764565b9550505b5050505092915050565b600080613747836137bf565b91508273ffffffffffffffffffffffffffffffffffffffff1663f5985d356040518163ffffffff1660e01b8152600401602060405180830381865afa158015613794573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b89190614ac0565b9050915091565b60008173ffffffffffffffffffffffffffffffffffffffff16630786feb66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561380c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd29190614add565b600061010082840312156106ba57600080fd5b6000610100828403121561385657600080fd5b6138608383613830565b9392505050565b60006020828403121561387957600080fd5b5035919050565b60008083601f84011261389257600080fd5b50813567ffffffffffffffff8111156138aa57600080fd5b6020830191508360208260051b85010111156138c557600080fd5b9250929050565b6000806000604084860312156138e157600080fd5b83359250602084013567ffffffffffffffff8111156138ff57600080fd5b61390b86828701613880565b9497909650939450505050565b60005b8381101561393357818101518382015260200161391b565b50506000910152565b60008151808452613954816020860160208601613918565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156139f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526139e785835161393c565b945092850192908501906001016139ad565b5092979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146115a257600080fd5b60008060008060808587031215613a3e57600080fd5b8435613a4981613a06565b935060208501359250604085013591506060850135613a6781613a06565b939692955090935050565b60ff811681146115a257600080fd5b60008060008060008060c08789031215613a9a57600080fd5b8635613aa581613a06565b955060208701359450604087013593506060870135613ac381613a72565b9598949750929560808101359460a0909101359350915050565b60008060408385031215613af057600080fd5b823591506020830135613b0281613a06565b809150509250929050565b60008060008060608587031215613b2357600080fd5b8435935060208501359250604085013567ffffffffffffffff80821115613b4957600080fd5b818701915087601f830112613b5d57600080fd5b813581811115613b6c57600080fd5b886020828501011115613b7e57600080fd5b95989497505060200194505050565b60008060208385031215613ba057600080fd5b823567ffffffffffffffff811115613bb757600080fd5b613bc385828601613880565b90969095509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715613c2157613c21613bcf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613c6e57613c6e613bcf565b604052919050565b600082601f830112613c8757600080fd5b813567ffffffffffffffff811115613ca157613ca1613bcf565b613cd260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613c27565b818152846020838601011115613ce757600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215613d1657600080fd5b813567ffffffffffffffff80821115613d2e57600080fd5b9083019060a08286031215613d4257600080fd5b613d4a613bfe565b823582811115613d5957600080fd5b613d6587828601613c76565b82525060208301359150613d7882613a06565b81602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b60008060008060808587031215613dbe57600080fd5b843593506020850135613dd081613a06565b9250604085013591506060850135613a6781613a06565b600080600060608486031215613dfc57600080fd5b83359250602084013591506040840135613e1581613a06565b809150509250925092565b600080600060608486031215613e3557600080fd5b8335613e4081613a06565b9250602084013591506040840135613e1581613a06565b600080600080600060a08688031215613e6f57600080fd5b8535613e7a81613a06565b9450602086013593506040860135613e9181613a06565b9250606086013591506080860135613ea881613a06565b809150509295509295909350565b60008060408385031215613ec957600080fd5b8235613ed481613a06565b946020939093013593505050565b600067ffffffffffffffff821115613efc57613efc613bcf565b5060051b60200190565b600082601f830112613f1757600080fd5b81356020613f2c613f2783613ee2565b613c27565b82815260059290921b84018101918181019086841115613f4b57600080fd5b8286015b84811015613f855780356fffffffffffffffffffffffffffffffff81168114613f785760008081fd5b8352918301918301613f4f565b509695505050505050565b803562ffffff811681146122b657600080fd5b63ffffffff811681146115a257600080fd5b80356122b681613fa3565b60008060008060808587031215613fd657600080fd5b843567ffffffffffffffff80821115613fee57600080fd5b818701915087601f83011261400257600080fd5b81356020614012613f2783613ee2565b82815260059290921b8401810191818101908b84111561403157600080fd5b8286015b848110156140695780358681111561404d5760008081fd5b61405b8e86838b0101613c76565b845250918301918301614035565b509850508801359250508082111561408057600080fd5b5061408d87828801613f06565b93505061409c60408601613f90565b91506140aa60608601613fb5565b905092959194509250565b6000806000606084860312156140ca57600080fd5b833567ffffffffffffffff8111156140e157600080fd5b6140ed86828701613c76565b9350506140fc60208501613f90565b91506040840135613e1581613fa3565b60006020828403121561411e57600080fd5b813567ffffffffffffffff81111561413557600080fd5b820160a0818503121561386057600080fd5b60006020828403121561415957600080fd5b813561386081613a06565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115611fd257611fd2614164565b6000602082840312156141b857600080fd5b813567ffffffffffffffff808211156141d057600080fd5b90830190604082860312156141e457600080fd5b6040516040810181811083821117156141ff576141ff613bcf565b60405282358281111561421157600080fd5b61421d87828601613c76565b8252506020830135925061423083613a06565b6020810192909252509392505050565b73ffffffffffffffffffffffffffffffffffffffff82811682821603908082111561426d5761426d614164565b5092915050565b73ffffffffffffffffffffffffffffffffffffffff81811683821601908082111561426d5761426d614164565b6020815260008251604060208401526142bd606084018261393c565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152861515604084015285606084015280851660808401525060c060a083015261433860c083018461393c565b98975050505050505050565b6000806040838503121561435757600080fd5b505080516020909101519092909150565b60007f8000000000000000000000000000000000000000000000000000000000000000820361439957614399614164565b5060000390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261440457600080fd5b83018035915067ffffffffffffffff82111561441f57600080fd5b6020019150368190038213156138c557600080fd5b8183823760009101908152919050565b60006020828403121561445657600080fd5b5051919050565b8082028115828204841417611fd257611fd2614164565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826144b2576144b2614474565b500490565b818103600083128015838313168383128216171561426d5761426d614164565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261451e60a083018461393c565b979650505050505050565b6000825161453b818460208701613918565b9190910192915050565b80820180821115611fd257611fd2614164565b805180151581146122b657600080fd5b60006020828403121561457a57600080fd5b61386082614558565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145b4576145b4614164565b5060010190565b6000602082840312156145cd57600080fd5b815161386081613a06565b8051600281900b81146122b657600080fd5b805161ffff811681146122b657600080fd5b60008060008060008060c0878903121561461557600080fd5b865161462081613a06565b955061462e602088016145d8565b945061463c604088016145ea565b9350606087015161464c81613a72565b925061465a608088016145ea565b915061466860a08801614558565b90509295509295509295565b808201828112600083128015821682158216171561469457614694614164565b505092915050565b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156146d4576146d4614164565b8181058314821517611fd257611fd2614164565b6000826146f7576146f7614474565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561474b5761474b614164565b500590565b60008261475f5761475f614474565b500790565b60008160020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000810361479957614799614164565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b8051600681900b81146122b657600080fd5b80516affffffffffffffffffffff811681146122b657600080fd5b600080600080600080600060e0888a03121561480957600080fd5b61481288614558565b9650602088015161482281613fa3565b9550614830604089016147c1565b945061483e606089016147d3565b935061484c608089016145d8565b925061485a60a089016145d8565b915061486860c089016145ea565b905092959891949750929550565b6020808252825182820181905260009190848201906040850190845b818110156148b457835163ffffffff1683529284019291840191600101614892565b50909695505050505050565b600082601f8301126148d157600080fd5b815160206148e1613f2783613ee2565b82815260059290921b8401810191818101908684111561490057600080fd5b8286015b84811015613f8557614915816147d3565b8352918301918301614904565b6000806040838503121561493557600080fd5b825167ffffffffffffffff8082111561494d57600080fd5b818501915085601f83011261496157600080fd5b81516020614971613f2783613ee2565b82815260059290921b8401810191818101908984111561499057600080fd5b948201945b838610156149b5576149a6866147c1565b82529482019490820190614995565b918801519196509093505050808211156149ce57600080fd5b506149db858286016148c0565b9150509250929050565b600682810b9082900b037fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008112667fffffffffffff82131715611fd257611fd2614164565b60008160060b8360060b80614a4157614a41614474565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000083141615614a9557614a95614164565b90059392505050565b60008260060b80614ab157614ab1614474565b808360060b0791505092915050565b600060208284031215614ad257600080fd5b815161386081613fa3565b600060208284031215614aef57600080fd5b613860826145ea56fea164736f6c6343000814000a000000000000000000000000c89a7d1fdb9a29e87c69da7355298aa3cd4a2663000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2700000000000000000000000019fdaba2de0c39f4bf4f27185daea292534e916a

Deployed ByteCode

0x6080604052600436106101c65760003560e01c8063ac9650d8116100f7578063df2ab5bb11610095578063f25801a711610064578063f25801a714610508578063f28c049814610528578063f2d5d56b1461053b578063f3995c671461054e57600080fd5b8063df2ab5bb146104af578063e0e189a0146104c2578063e90a182f146104d5578063efdeed8e146104e857600080fd5b8063c45a0155116100d1578063c45a015514610442578063c60696ec14610476578063d67d920a14610489578063d9da7f911461049c57600080fd5b8063ac9650d814610409578063c04b8d591461041c578063c2e3140a1461042f57600080fd5b80634659a494116101645780636a5ac18f1161013e5780636a5ac18f1461038f5780636eb38adc146103af5780638af3ac85146103c2578063a4a78f0c146103f657600080fd5b80634659a494146103565780635ae401dc1461036957806369bc35b21461037c57600080fd5b80631f0464d1116101a05780631f0464d1146102c25780633068c554146102e25780633119049a146102f5578063418652701461034e57600080fd5b80631679c792146102765780631764babc1461029c5780631c58db4f146102af57600080fd5b36610271573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a27161461026f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e6f7420574e6174697665546f6b656e0000000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b610289610284366004613843565b610561565b6040519081526020015b60405180910390f35b6102896102aa366004613843565b6106c0565b61026f6102bd366004613867565b610846565b6102d56102d03660046138cc565b6108ca565b6040516102939190613986565b61026f6102f0366004613a28565b610954565b34801561030157600080fd5b506103297f00000000000000000000000019fdaba2de0c39f4bf4f27185daea292534e916a81565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610293565b61026f610967565b61026f610364366004613a81565b610979565b6102d56103773660046138cc565b610a34565b61026f61038a366004613add565b610a40565b34801561039b57600080fd5b5061026f6103aa366004613b0d565b610b8c565b6102896103bd366004613843565b610d30565b3480156103ce57600080fd5b506103297f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2781565b61026f610404366004613a81565b611083565b6102d5610417366004613b8d565b6110c1565b61028961042a366004613d04565b611228565b61026f61043d366004613a81565b61134a565b34801561044e57600080fd5b506103297f000000000000000000000000c89a7d1fdb9a29e87c69da7355298aa3cd4a266381565b61026f610484366004613da8565b611368565b61026f610497366004613de7565b61158c565b61026f6104aa366004613867565b611598565b61026f6104bd366004613e20565b6115a5565b61026f6104d0366004613e57565b61162d565b61026f6104e3366004613eb6565b611793565b3480156104f457600080fd5b5061026f610503366004613fc0565b6117a2565b34801561051457600080fd5b5061026f6105233660046140b5565b61182b565b61028961053636600461410c565b6118b3565b61026f610549366004613eb6565b6119aa565b61026f61055c366004613a81565b6119b6565b6000816080013561057181611a33565b61064a60a08401356105896080860160608701614147565b61059a610100870160e08801614147565b60408051808201909152806105b260208a018a614147565b6105c260608b0160408c01614147565b6105d260408c0160208d01614147565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b8116602083015292841b83166034820152921b166048820152605c0160405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611a9d565b91508260c001358210156106ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6f206c6974746c65207265636569766564000000000000000000000000006044820152606401610266565b50919050565b600081608001356106d081611a33565b6107ac60a08401356106e86080860160608701614147565b6106f9610100870160e08801614147565b60405180604001604052808860200160208101906107179190614147565b61072760608b0160408c01614147565b61073460208c018c614147565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b8116602083015292841b83166034820152921b166048820152605c0160405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611c2d565b91508260c0013582111561081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f546f6f206d7563682072657175657374656400000000000000000000000000006044820152606401610266565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600155919050565b7f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2773ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108ae57600080fd5b505af11580156108c2573d6000803e3d6000fd5b505050505050565b606083806108d9600143614193565b4014610941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f426c6f636b6861736800000000000000000000000000000000000000000000006044820152606401610266565b61094b84846110c1565b95945050505050565b610961848433858561162d565b50505050565b4715610977576109773347611e5c565b565b6040517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101869052606481018590526001608482015260ff841660a482015260c4810183905260e4810182905273ffffffffffffffffffffffffffffffffffffffff871690638fcbaf0c90610104015b600060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b50505050505050505050565b60608361094181611a33565b6000610a6b7f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a27611f40565b905082811015610ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496e73756666696369656e7420574e6174697665546f6b656e000000000000006044820152606401610266565b8015610b87576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2773ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b158015610b6557600080fd5b505af1158015610b79573d6000803e3d6000fd5b50505050610b878282611e5c565b505050565b6000841380610b9b5750600083135b610c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5a65726f206c69717569646974792073776170000000000000000000000000006044820152606401610266565b6000610c0f828401846141a6565b90506000806000610c238460000151611fd8565b925092509250610c557f00000000000000000000000019fdaba2de0c39f4bf4f27185daea292534e916a838584612012565b5060008060008a13610c96578473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161089610cc7565b8273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b915091508115610ce657610ce18587602001513384612028565b610a28565b8551610cf190612202565b15610d16578551610d019061223a565b8652610d108133600089611c2d565b50610a28565b80600181905550829450610a288587602001513384612028565b60008160800135610d4081611a33565b6040805180820190915260009080610d5b6020870187614147565b610d6b6060880160408901614147565b610d7b6040890160208a01614147565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b8116602083015292841b83166034820152921b166048820152605c01604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529190528152336020909101529050600080610e0c6080870160608801614147565b73ffffffffffffffffffffffffffffffffffffffff1614610e3c57610e376080860160608701614147565b610e3e565b305b90506000610e526040870160208801614147565b73ffffffffffffffffffffffffffffffffffffffff16610e756020880188614147565b73ffffffffffffffffffffffffffffffffffffffff16109050600080610ec6610ea460608a0160408b01614147565b610eb160208b018b614147565b610ec160408c0160208d01614147565b612269565b73ffffffffffffffffffffffffffffffffffffffff16639e4e0227338686610ef18d60a001356122a7565b8d60e0016020810190610f049190614147565b73ffffffffffffffffffffffffffffffffffffffff1615610f37578d60e0016020810190610f329190614147565b610f6b565b88610f5b57610f32600173fffd8963efd1fc6a506488495d951d5263988d26614240565b610f6b6401000276a36001614274565b8b604051602001610f7c91906142a1565b6040516020818303038152906040526040518763ffffffff1660e01b8152600401610fac969594939291906142e9565b60408051808303816000875af1158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee9190614344565b9150915082610ffd5781610fff565b805b61100890614368565b96508760c00135871015611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6f206c6974746c65207265636569766564000000000000000000000000006044820152606401610266565b505050505050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6110ad876122bb565b10156108c2576108c2868686868686610979565b60606002600054036110ff576040517f771def8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026000558167ffffffffffffffff81111561111d5761111d613bcf565b60405190808252806020026020018201604052801561115057816020015b606081526020019060019003908161113b5790505b50905060005b8281101561121c5760008030868685818110611174576111746143a0565b905060200281019061118691906143cf565b604051611194929190614434565b600060405180830381855af49150503d80600081146111cf576040519150601f19603f3d011682016040523d82523d6000602084013e6111d4565b606091505b5091509150816111f45760008151116111ec57600080fd5b805181602001fd5b80848481518110611207576112076143a0565b60209081029190910101525050600101611156565b50600160005592915050565b6000816040015161123881611a33565b335b60006112498560000151612202565b90506112a2856060015182611262578660200151611264565b305b6000604051806040016040528061127e8b60000151612316565b81526020018773ffffffffffffffffffffffffffffffffffffffff16815250611a9d565b606086015280156112c25784513092506112bb9061223a565b85526112cf565b84606001519350506112d5565b5061123a565b8360800151831015611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6f206c6974746c65207265636569766564000000000000000000000000006044820152606401610266565b5050919050565b84611354876122bb565b10156108c2576108c28686868686866119b6565b600082118015611379575060648211155b61138257600080fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2773ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561140f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114339190614444565b90508481101561149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496e73756666696369656e7420574e6174697665546f6b656e000000000000006044820152606401610266565b8015611585576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2773ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b15801561152d57600080fd5b505af1158015611541573d6000803e3d6000fd5b5050505060006127108483611556919061445d565b61156091906144a3565b90508015611572576115728382611e5c565b6108c2856115808385614193565b611e5c565b5050505050565b610b8783338484611368565b6115a28133610a40565b50565b60006115b084611f40565b90508281101561161c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e00000000000000000000000000006044820152606401610266565b801561096157610961848383612333565b60008211801561163e575060648211155b61164757600080fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8716906370a0823190602401602060405180830381865afa1580156116b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d89190614444565b905084811015611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e00000000000000000000000000006044820152606401610266565b80156108c2576000612710611759858461445d565b61176391906144a3565b9050801561177657611776878483612333565b61178a87866117858486614193565b612333565b50505050505050565b61179e8282336115a5565b5050565b6000806117b086868561249c565b915091508360020b81836117c491906144b7565b126108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54440000000000000000000000000000000000000000000000000000000000006044820152606401610266565b60008061183885846126ee565b915091508360020b818361184c91906144b7565b12611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54440000000000000000000000000000000000000000000000000000000000006044820152606401610266565b600081604001356118c381611a33565b61193660608401356118db6040860160208701614147565b60408051808201909152600090806118f389806143cf565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525033602090910152611c2d565b506001549150826080013582111561081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f546f6f206d7563682072657175657374656400000000000000000000000000006044820152606401610266565b61179e82333084612a0a565b6040517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526064810185905260ff8416608482015260a4810183905260c4810182905273ffffffffffffffffffffffffffffffffffffffff87169063d505accf9060e4016109fa565b804211156115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c64000000000000000000000000006044820152606401610266565b600073ffffffffffffffffffffffffffffffffffffffff8416611abe573093505b6000806000611ad08560000151611fd8565b9194509250905073ffffffffffffffffffffffffffffffffffffffff80821690841610600080611b01858786612269565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b85611b278f6122a7565b73ffffffffffffffffffffffffffffffffffffffff8e1615611b49578d611b82565b87611b7257611b6d600173fffd8963efd1fc6a506488495d951d5263988d26614240565b611b82565b611b826401000276a36001614274565b8d604051602001611b9391906142a1565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611bc29594939291906144d7565b60408051808303816000875af1158015611be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c049190614344565b9150915082611c135781611c15565b805b611c1e90614368565b9b9a5050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8416611c4e573093505b6000806000611c608560000151611fd8565b9194509250905073ffffffffffffffffffffffffffffffffffffffff80841690821610600080611c91858588612269565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b85611cb78f6122a7565b611cc090614368565b73ffffffffffffffffffffffffffffffffffffffff8e1615611ce2578d611d1b565b87611d0b57611d06600173fffd8963efd1fc6a506488495d951d5263988d26614240565b611d1b565b611d1b6401000276a36001614274565b8d604051602001611d2c91906142a1565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611d5b9594939291906144d7565b60408051808303816000875af1158015611d79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9d9190614344565b91509150600083611db75781611db284614368565b611dc1565b82611dc183614368565b909850905073ffffffffffffffffffffffffffffffffffffffff8a16600003611e4d578b8114611e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4e6f742072656365697665642066756c6c20616d6f756e744f757400000000006044820152606401610266565b50505050505050949350505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8416908390604051611e939190614529565b60006040518083038185875af1925050503d8060008114611ed0576040519150601f19603f3d011682016040523d82523d6000602084013e611ed5565b606091505b5050905080610b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f53544500000000000000000000000000000000000000000000000000000000006044820152606401610266565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906024015b602060405180830381865afa158015611fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd29190614444565b92915050565b60008080611fe68482612b7b565b9250611ff3846014612b7b565b915061200a612003601480614545565b8590612b7b565b929491935050565b600061094b85612023868686612c04565b612c92565b7f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120835750804710155b156121c9577f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2773ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156120f057600080fd5b505af1158015612104573d6000803e3d6000fd5b50506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690527f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2716935063a9059cbb925060440190506020604051808303816000875af115801561219f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c39190614568565b50610961565b3073ffffffffffffffffffffffffffffffffffffffff8416036121f6576121f1848383612333565b610961565b61096184848484612a0a565b600061220f601480614545565b601461221b8180614545565b6122259190614545565b61222f9190614545565b825110159050919050565b6060611fd261224a601480614545565b612255601480614545565b84516122619190614193565b849190612d1f565b600061229f7f00000000000000000000000019fdaba2de0c39f4bf4f27185daea292534e916a61229a868686612c04565b612e8b565b949350505050565b8060008112156122b657600080fd5b919050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015260009073ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e90604401611f91565b6060611fd2600060146123298180614545565b6122619190614545565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916123ca9190614529565b6000604051808303816000865af19150503d8060008114612407576040519150601f19603f3d011682016040523d82523d6000602084013e61240c565b606091505b50915091508180156124365750805115806124365750808060200190518101906124369190614568565b611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53540000000000000000000000000000000000000000000000000000000000006044820152606401610266565b60008083518551146124ad57600080fd5b6000855167ffffffffffffffff8111156124c9576124c9613bcf565b60405190808252806020026020018201604052801561250e57816020015b60408051808201909152600080825260208201528152602001906001900390816124e75790505b5090506000865167ffffffffffffffff81111561252d5761252d613bcf565b60405190808252806020026020018201604052801561257257816020015b604080518082019091526000808252602082015281526020019060019003908161254b5790505b50905060005b87518110156126c7576000806125a78a8481518110612599576125996143a0565b6020026020010151896126ee565b91509150818584815181106125be576125be6143a0565b60200260200101516000019060020b908160020b81525050808484815181106125e9576125e96143a0565b60200260200101516000019060020b908160020b81525050888381518110612613576126136143a0565b602002602001015185848151811061262d5761262d6143a0565b6020026020010151602001906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff1681525050888381518110612675576126756143a0565b602002602001015184848151811061268f5761268f6143a0565b6020908102919091018101516fffffffffffffffffffffffffffffffff909216910152508190506126bf81614583565b915050612578565b506126d1826130c0565b60020b93506126df816130c0565b60020b92505050935093915050565b6000806000806126fd866131ab565b90506000805b828110156129a15760008060006127198b611fd8565b925092509250600061272c838584612269565b90506000808c63ffffffff1660000361275857612748836131d0565b600291820b9350900b9050612852565b6127d08373ffffffffffffffffffffffffffffffffffffffff1663ef01df4f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ca91906145bb565b8e6134fc565b60020b91508273ffffffffffffffffffffffffffffffffffffffff1663e76c01e46040518163ffffffff1660e01b815260040160c060405180830381865afa158015612820573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284491906145fc565b50505060029190910b925050505b61285d60018a614193565b8703612899578373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161099506128a8565b6128a28e61223a565b9d508597505b600087158061294957508673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1610612919578673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610612949565b8473ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16105b9050801561296e5761295b838e614674565b9c50612967828d614674565b9b50612987565b612978838e6144b7565b9c50612984828d6144b7565b9b505b50505050505050808061299990614583565b915050612703565b5082612a00576129d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8661469c565b94506129fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8561469c565b93505b5050509250929050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691612aa99190614529565b6000604051808303816000865af19150503d8060008114612ae6576040519150601f19603f3d011682016040523d82523d6000602084013e612aeb565b606091505b5091509150818015612b15575080511580612b15575080806020019051810190612b159190614568565b6108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f53544600000000000000000000000000000000000000000000000000000000006044820152606401610266565b60008160140183511015612beb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e647300000000000000000000006044820152606401610266565b5001602001516c01000000000000000000000000900490565b60408051606081018252600080825260208201819052918101919091528173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161115612c59579091905b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015292169181019190915290565b6000612c9e8383612e8b565b90503373ffffffffffffffffffffffffffffffffffffffff821614611fd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642063616c6c6572206f662063616c6c6261636b0000000000006044820152606401610266565b60608182601f011015612d8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610266565b81830184511015612dfb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610266565b606082158015612e1a5760405191506000825260208201604052612e82565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612e53578051835260209283019201612e3b565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000816040015173ffffffffffffffffffffffffffffffffffffffff16826020015173ffffffffffffffffffffffffffffffffffffffff1610612f2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c6964206f72646572206f6620746f6b656e730000000000000000006044820152606401610266565b8151839073ffffffffffffffffffffffffffffffffffffffff1615612fa35782516020808501516040808701519051612f8f94930173ffffffffffffffffffffffffffffffffffffffff93841681529183166020830152909116604082015260600190565b604051602081830303815290604052612fed565b6020808401516040808601519051612fdd930173ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b6040516020818303038152906040525b805160209182012060405161308393927f4077c740f16098738baf4913de15a2910c03180026ab1075a69380801c8e5b4b91017fff00000000000000000000000000000000000000000000000000000000000000815260609390931b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660018401526015830191909152603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209392505050565b6000806000805b8451811015613177578481815181106130e2576130e26143a0565b602002602001015160200151600f0b858281518110613103576131036143a0565b60200260200101516000015160020b61311c919061469c565b6131269084614674565b925084818151811061313a5761313a6143a0565b6020026020010151602001516fffffffffffffffffffffffffffffffff16826131639190614545565b91508061316f81614583565b9150506130c7565b5061318281836146e8565b925060008212801561319c57506131998183614750565b15155b15611343578261094b81614764565b60006131b8601480614545565b601483516131c69190614193565b611fd291906144a3565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1663e76c01e46040518163ffffffff1660e01b815260040160c060405180830381865afa158015613221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324591906145fc565b5050604080517fef01df4f00000000000000000000000000000000000000000000000000000000815290519397506000945073ffffffffffffffffffffffffffffffffffffffff8a169363ef01df4f9350600480830193506020928290030181865afa1580156132b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132dd91906145bb565b90506132e88161373b565b9093509150428263ffffffff1614613302578394506134f4565b6040517f74eceae600000000000000000000000000000000000000000000000000000000815261ffff8416600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906374eceae69060240160e060405180830381865afa158015613373573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339791906147ee565b50506040517f74eceae60000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8a0161ffff8116600483015293965092945060009350839283925073ffffffffffffffffffffffffffffffffffffffff881691506374eceae69060240160e060405180830381865afa15801561343a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345e91906147ee565b50505050925092509250826134cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544e4900000000000000000000000000000000000000000000000000000000006044820152606401610266565b818703600381900b82870360060b816134ea576134ea614474565b059a505050505050505b505050915091565b60008163ffffffff1660000361356e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f506572696f64206973207a65726f0000000000000000000000000000000000006044820152606401610266565b60408051600280825260608201835260009260208301908036833701905050905082816000815181106135a3576135a36143a0565b602002602001019063ffffffff16908163ffffffff16815250506000816001815181106135d2576135d26143a0565b63ffffffff909216602092830291909101909101526040517f9d3a5241000000000000000000000000000000000000000000000000000000008152849060009073ffffffffffffffffffffffffffffffffffffffff831690639d3a52419061363e908690600401614876565b600060405180830381865afa15801561365b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526136a19190810190614922565b5090506000816000815181106136b9576136b96143a0565b6020026020010151826001815181106136d4576136d46143a0565b60200260200101516136e691906149e5565b90506136f863ffffffff871682614a2a565b945060008160060b12801561371e575061371863ffffffff871682614a9e565b60060b15155b15613731578461372d81614764565b9550505b5050505092915050565b600080613747836137bf565b91508273ffffffffffffffffffffffffffffffffffffffff1663f5985d356040518163ffffffff1660e01b8152600401602060405180830381865afa158015613794573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b89190614ac0565b9050915091565b60008173ffffffffffffffffffffffffffffffffffffffff16630786feb66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561380c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd29190614add565b600061010082840312156106ba57600080fd5b6000610100828403121561385657600080fd5b6138608383613830565b9392505050565b60006020828403121561387957600080fd5b5035919050565b60008083601f84011261389257600080fd5b50813567ffffffffffffffff8111156138aa57600080fd5b6020830191508360208260051b85010111156138c557600080fd5b9250929050565b6000806000604084860312156138e157600080fd5b83359250602084013567ffffffffffffffff8111156138ff57600080fd5b61390b86828701613880565b9497909650939450505050565b60005b8381101561393357818101518382015260200161391b565b50506000910152565b60008151808452613954816020860160208601613918565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156139f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526139e785835161393c565b945092850192908501906001016139ad565b5092979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146115a257600080fd5b60008060008060808587031215613a3e57600080fd5b8435613a4981613a06565b935060208501359250604085013591506060850135613a6781613a06565b939692955090935050565b60ff811681146115a257600080fd5b60008060008060008060c08789031215613a9a57600080fd5b8635613aa581613a06565b955060208701359450604087013593506060870135613ac381613a72565b9598949750929560808101359460a0909101359350915050565b60008060408385031215613af057600080fd5b823591506020830135613b0281613a06565b809150509250929050565b60008060008060608587031215613b2357600080fd5b8435935060208501359250604085013567ffffffffffffffff80821115613b4957600080fd5b818701915087601f830112613b5d57600080fd5b813581811115613b6c57600080fd5b886020828501011115613b7e57600080fd5b95989497505060200194505050565b60008060208385031215613ba057600080fd5b823567ffffffffffffffff811115613bb757600080fd5b613bc385828601613880565b90969095509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715613c2157613c21613bcf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613c6e57613c6e613bcf565b604052919050565b600082601f830112613c8757600080fd5b813567ffffffffffffffff811115613ca157613ca1613bcf565b613cd260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613c27565b818152846020838601011115613ce757600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215613d1657600080fd5b813567ffffffffffffffff80821115613d2e57600080fd5b9083019060a08286031215613d4257600080fd5b613d4a613bfe565b823582811115613d5957600080fd5b613d6587828601613c76565b82525060208301359150613d7882613a06565b81602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b60008060008060808587031215613dbe57600080fd5b843593506020850135613dd081613a06565b9250604085013591506060850135613a6781613a06565b600080600060608486031215613dfc57600080fd5b83359250602084013591506040840135613e1581613a06565b809150509250925092565b600080600060608486031215613e3557600080fd5b8335613e4081613a06565b9250602084013591506040840135613e1581613a06565b600080600080600060a08688031215613e6f57600080fd5b8535613e7a81613a06565b9450602086013593506040860135613e9181613a06565b9250606086013591506080860135613ea881613a06565b809150509295509295909350565b60008060408385031215613ec957600080fd5b8235613ed481613a06565b946020939093013593505050565b600067ffffffffffffffff821115613efc57613efc613bcf565b5060051b60200190565b600082601f830112613f1757600080fd5b81356020613f2c613f2783613ee2565b613c27565b82815260059290921b84018101918181019086841115613f4b57600080fd5b8286015b84811015613f855780356fffffffffffffffffffffffffffffffff81168114613f785760008081fd5b8352918301918301613f4f565b509695505050505050565b803562ffffff811681146122b657600080fd5b63ffffffff811681146115a257600080fd5b80356122b681613fa3565b60008060008060808587031215613fd657600080fd5b843567ffffffffffffffff80821115613fee57600080fd5b818701915087601f83011261400257600080fd5b81356020614012613f2783613ee2565b82815260059290921b8401810191818101908b84111561403157600080fd5b8286015b848110156140695780358681111561404d5760008081fd5b61405b8e86838b0101613c76565b845250918301918301614035565b509850508801359250508082111561408057600080fd5b5061408d87828801613f06565b93505061409c60408601613f90565b91506140aa60608601613fb5565b905092959194509250565b6000806000606084860312156140ca57600080fd5b833567ffffffffffffffff8111156140e157600080fd5b6140ed86828701613c76565b9350506140fc60208501613f90565b91506040840135613e1581613fa3565b60006020828403121561411e57600080fd5b813567ffffffffffffffff81111561413557600080fd5b820160a0818503121561386057600080fd5b60006020828403121561415957600080fd5b813561386081613a06565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115611fd257611fd2614164565b6000602082840312156141b857600080fd5b813567ffffffffffffffff808211156141d057600080fd5b90830190604082860312156141e457600080fd5b6040516040810181811083821117156141ff576141ff613bcf565b60405282358281111561421157600080fd5b61421d87828601613c76565b8252506020830135925061423083613a06565b6020810192909252509392505050565b73ffffffffffffffffffffffffffffffffffffffff82811682821603908082111561426d5761426d614164565b5092915050565b73ffffffffffffffffffffffffffffffffffffffff81811683821601908082111561426d5761426d614164565b6020815260008251604060208401526142bd606084018261393c565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152861515604084015285606084015280851660808401525060c060a083015261433860c083018461393c565b98975050505050505050565b6000806040838503121561435757600080fd5b505080516020909101519092909150565b60007f8000000000000000000000000000000000000000000000000000000000000000820361439957614399614164565b5060000390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261440457600080fd5b83018035915067ffffffffffffffff82111561441f57600080fd5b6020019150368190038213156138c557600080fd5b8183823760009101908152919050565b60006020828403121561445657600080fd5b5051919050565b8082028115828204841417611fd257611fd2614164565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826144b2576144b2614474565b500490565b818103600083128015838313168383128216171561426d5761426d614164565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261451e60a083018461393c565b979650505050505050565b6000825161453b818460208701613918565b9190910192915050565b80820180821115611fd257611fd2614164565b805180151581146122b657600080fd5b60006020828403121561457a57600080fd5b61386082614558565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145b4576145b4614164565b5060010190565b6000602082840312156145cd57600080fd5b815161386081613a06565b8051600281900b81146122b657600080fd5b805161ffff811681146122b657600080fd5b60008060008060008060c0878903121561461557600080fd5b865161462081613a06565b955061462e602088016145d8565b945061463c604088016145ea565b9350606087015161464c81613a72565b925061465a608088016145ea565b915061466860a08801614558565b90509295509295509295565b808201828112600083128015821682158216171561469457614694614164565b505092915050565b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156146d4576146d4614164565b8181058314821517611fd257611fd2614164565b6000826146f7576146f7614474565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561474b5761474b614164565b500590565b60008261475f5761475f614474565b500790565b60008160020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000810361479957614799614164565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b8051600681900b81146122b657600080fd5b80516affffffffffffffffffffff811681146122b657600080fd5b600080600080600080600060e0888a03121561480957600080fd5b61481288614558565b9650602088015161482281613fa3565b9550614830604089016147c1565b945061483e606089016147d3565b935061484c608089016145d8565b925061485a60a089016145d8565b915061486860c089016145ea565b905092959891949750929550565b6020808252825182820181905260009190848201906040850190845b818110156148b457835163ffffffff1683529284019291840191600101614892565b50909695505050505050565b600082601f8301126148d157600080fd5b815160206148e1613f2783613ee2565b82815260059290921b8401810191818101908684111561490057600080fd5b8286015b84811015613f8557614915816147d3565b8352918301918301614904565b6000806040838503121561493557600080fd5b825167ffffffffffffffff8082111561494d57600080fd5b818501915085601f83011261496157600080fd5b81516020614971613f2783613ee2565b82815260059290921b8401810191818101908984111561499057600080fd5b948201945b838610156149b5576149a6866147c1565b82529482019490820190614995565b918801519196509093505050808211156149ce57600080fd5b506149db858286016148c0565b9150509250929050565b600682810b9082900b037fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008112667fffffffffffff82131715611fd257611fd2614164565b60008160060b8360060b80614a4157614a41614474565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000083141615614a9557614a95614164565b90059392505050565b60008260060b80614ab157614ab1614474565b808360060b0791505092915050565b600060208284031215614ad257600080fd5b815161386081613fa3565b600060208284031215614aef57600080fd5b613860826145ea56fea164736f6c6343000814000a