wemix-logo
WEMIX3.0 Testnet Explorer

Address

0xc53cf9b9711c65889013b70fbebd5c8806f5219d
Contract Name
N/A
Optimization Enabled
No
Compiler Version
N/A
EVM Version
N/A
License
N/A
Audited
No
Contract Security Audit
No contract security audit has been submitted
Submit Audit
Contract Creation Code
0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635c975abb11610104578063a38807f2116100a2578063ddca3f4311610071578063ddca3f431461084d578063f30583991461086d578063f30dba9314610875578063f637731d146108f7576101cf565b8063a38807f2146107c3578063c45a01551461081e578063d0c93a7c14610826578063d21220a714610845576101cf565b80638456cb59116100de5780638456cb591461063b57806385b6672914610643578063883bdbfd14610680578063a34123a714610789576101cf565b80635c975abb146105ef57806370cf754a1461060b5780638206a4d114610613576101cf565b80633c8a7d8d11610171578063490e6cbc1161014b578063490e6cbc146104995780634f1eb3d814610525578063514ea4bf146105765780635339c296146105cf576101cf565b80633c8a7d8d146103d55780633f4ba83a14610477578063461413191461047f576101cf565b80631ad8b03b116101ad5780631ad8b03b146102cb578063252c09d71461030257806332148f67146103595780633850c7bd1461037c576101cf565b80630dfe1681146101d4578063128acb08146101f85780631a686502146102a7575b600080fd5b6101dc61091d565b604080516001600160a01b039092168252519081900360200190f35b61028e600480360360a081101561020e57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561024f57600080fd5b82018360208201111561026157600080fd5b8035906020019184600183028401116401000000008311171561028357600080fd5b509092509050610941565b6040805192835260208301919091528051918290030190f35b6102af6122af565b604080516001600160801b039092168252519081900360200190f35b6102d36122be565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b61031f6004803603602081101561031857600080fd5b50356122d8565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b61037a6004803603602081101561036f57600080fd5b503561ffff1661231f565b005b61038461251c565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61028e600480360360a08110156103eb57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561043857600080fd5b82018360208201111561044a57600080fd5b8035906020019184600183028401116401000000008311171561046c57600080fd5b50909250905061256c565b61037a612d1d565b610487612dc0565b60408051918252519081900360200190f35b61037a600480360360808110156104af57600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104e657600080fd5b8201836020820111156104f857600080fd5b8035906020019184600183028401116401000000008311171561051a57600080fd5b509092509050612dc6565b6102d3600480360360a081101561053b57600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b03606082013581169160800135166138b8565b6105936004803603602081101561058c57600080fd5b5035613f2e565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b610487600480360360208110156105e557600080fd5b503560010b613f6b565b6105f7613f7d565b604080519115158252519081900360200190f35b6102af613f86565b61037a6004803603604081101561062957600080fd5b5060ff81358116916020013516613faa565b61037a6140bc565b6102d36004803603606081101561065957600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661415d565b6106f06004803603602081101561069657600080fd5b8101906020810181356401000000008111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460208302840111640100000000831117156106e557600080fd5b50909250905061452f565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561073457818101518382015260200161071c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561077357818101518382015260200161075b565b5050505090500194505050505060405180910390f35b61028e6004803603606081101561079f57600080fd5b508035600290810b91602081013590910b90604001356001600160801b03166145bf565b6107ed600480360360408110156107d957600080fd5b508035600290810b9160200135900b614aee565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101dc614ce7565b61082e614d0b565b6040805160029290920b8252519081900360200190f35b6101dc614d2f565b610855614d53565b6040805162ffffff9092168252519081900360200190f35b610487614d77565b6108956004803603602081101561088b57600080fd5b503560020b614d7d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b61037a6004803603602081101561090d57600080fd5b50356001600160a01b0316614ded565b7f0000000000000000000000004af286b2bf66ae46da121ffeb46c2a3bbe05dd9781565b60008061094c61502c565b60408051634d8c928d60e11b815233600482015290516001600160a01b037f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d1691639b19251a916024808301926020929190829003018186803b1580156109b257600080fd5b505afa1580156109c6573d6000803e3d6000fd5b505050506040513d60208110156109dc57600080fd5b505115611691577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3c57600080fd5b505afa158015610a50573d6000803e3d6000fd5b505050506040513d6020811015610a6657600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b158015610ab057600080fd5b505afa158015610ac4573d6000803e3d6000fd5b505050506040513d6020811015610ada57600080fd5b505115610ae657600080fd5b85610b1d576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526001546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c08201819052610bd6576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610c215780600001516001600160a01b0316866001600160a01b0316118015610c1c575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610c53565b80600001516001600160a01b0316866001600160a01b0316108015610c5357506401000276a36001600160a01b038716115b610c8a576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6001805460ff60f01b191690556040805160c08101909152600090808a610cbc5760048460a0015160ff16901c610ccf565b60108460a0015160ff1681610ccd57fe5b065b60ff1681526005546001600160801b03166020820152604001610cf0615061565b63ffffffff168152602001600060060b815260200160006001600160a01b0316815260200160001515815250905060006040518060e001604052808a81526020016000815260200184600001516001600160a01b03168152602001846020015160020b81526020018b610d6557600354610d69565b6002545b815260006020808301919091528401516001600160801b031660409091015260608101519091505b815115801590610db75750886001600160a01b031682604001516001600160a01b031614155b1561118457610dc4617c88565b60408301516001600160a01b031681526060830151610e07906007907f000000000000000000000000000000000000000000000000000000000000000a8f615065565b15156040830152600290810b810b60208301819052620d89e719910b1215610e3857620d89e7196020820152610e57565b6020810151620d89e860029190910b1315610e5757620d89e860208201525b610e6481602001516151a7565b6001600160a01b031660608201526040830151610ef5908d610e9e578b6001600160a01b031683606001516001600160a01b031611610eb8565b8b6001600160a01b031683606001516001600160a01b0316105b610ec6578260600151610ec8565b8b5b60c086015186517f00000000000000000000000000000000000000000000000000000000000001f46154d9565b60c085015260a084015260808301526001600160a01b0316604084015260008b1315610f5a57610f2e8160c001518260800151016156cb565b835103835260a0810151610f5090610f45906156cb565b6020850151906156e1565b6020840152610f95565b610f678160a001516156cb565b835101835260c08101516080820151610f8f91610f8491016156cb565b6020850151906156fd565b60208401525b835160ff1615610fdb576000846000015160ff168260c0015181610fb557fe5b60c0840180519290910491829003905260a0850180519091016001600160801b03169052505b60c08301516001600160801b03161561101a5761100e8160c00151600160801b8560c001516001600160801b0316615713565b60808401805190910190525b80606001516001600160a01b031683604001516001600160a01b031614156111435780604001511561111a578360a001516110a457611082846040015160008760200151886040015188602001518a6060015160096157c3909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b60006110f082602001518e6110bb576002546110c1565b85608001515b8f6110d05786608001516110d4565b6003545b608089015160608a015160408b01516006959493929190615957565b90508c156110fc576000035b61110a8460c0015182615a2a565b6001600160801b031660c0850152505b8b611129578060200151611132565b60018160200151035b600290810b900b606084015261117e565b80600001516001600160a01b031683604001516001600160a01b03161461117e576111718360400151615ae0565b600290810b900b60608401525b50610d91565b836020015160020b826060015160020b14611252576000806111d286604001518660400151886020015188602001518a606001518b608001516009615e0c909695949392919063ffffffff16565b604086015160608701516001805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b9390931692909202919091176001600160a01b0319166001600160a01b03909116179055506112779050565b6040820151600180546001600160a01b0319166001600160a01b039092169190911790555b8160c001516001600160801b031683602001516001600160801b0316146112bd5760c0820151600580546001600160801b0319166001600160801b039092169190911790555b8a1561130d57608082015160025560a08201516001600160801b0316156113085760a0820151600480546001600160801b031981166001600160801b03918216909301169190911790555b611353565b608082015160035560a08201516001600160801b0316156113535760a0820151600480546001600160801b03808216600160801b92839004821690940116029190911790555b8a151560008b131461136d57602082015182518b0361137a565b81600001518a0382602001515b90965094508a156114b35760008512156113bc576113bc7f000000000000000000000000ae81b9ffcde5ab7673dd4b2f5c648a5579430b178d87600003615fc3565b60006113c6616111565b9050336001600160a01b0316635aec26c988888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b5050505061146a616111565b611474828961624a565b11156114ad576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b506115dd565b60008612156114ea576114ea7f0000000000000000000000004af286b2bf66ae46da121ffeb46c2a3bbe05dd978d88600003615fc3565b60006114f461625a565b9050336001600160a01b0316635aec26c988888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561157857600080fd5b505af115801561158c573d6000803e3d6000fd5b5050505061159861625a565b6115a2828861624a565b11156115db576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b8b6001600160a01b0316336001600160a01b03167f27d8cf6ecbb2b757e058a041b3c2fead1533ea4706d934a94df356146f542c23888886604001518760c0015188606001518860405180878152602001868152602001856001600160a01b03168152602001846001600160801b031681526020018360020b81526020018260020b8152602001965050505050505060405180910390a350506001805460ff60f01b1916600160f01b179055506122a49050565b611699613f7d565b6122a4577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b1580156116f657600080fd5b505afa15801561170a573d6000803e3d6000fd5b505050506040513d602081101561172057600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b15801561176a57600080fd5b505afa15801561177e573d6000803e3d6000fd5b505050506040513d602081101561179457600080fd5b5051156117a057600080fd5b856117d7576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526001546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c08201819052611890576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b876118db5780600001516001600160a01b0316866001600160a01b03161180156118d6575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b61190d565b80600001516001600160a01b0316866001600160a01b031610801561190d57506401000276a36001600160a01b038716115b611944576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6001805460ff60f01b191690556040805160c08101909152600090808a6119765760048460a0015160ff16901c611989565b60108460a0015160ff168161198757fe5b065b60ff1681526005546001600160801b031660208201526040016119aa615061565b63ffffffff168152602001600060060b815260200160006001600160a01b0316815260200160001515815250905060006040518060e001604052808a81526020016000815260200184600001516001600160a01b03168152602001846020015160020b81526020018b611a1f57600354611a23565b6002545b815260006020808301919091528401516001600160801b031660409091015260608101519091505b815115801590611a715750886001600160a01b031682604001516001600160a01b031614155b15611d9c57611a7e617c88565b60408301516001600160a01b031681526060830151611ac1906007907f000000000000000000000000000000000000000000000000000000000000000a8f615065565b15156040830152600290810b810b60208301819052620d89e719910b1215611af257620d89e7196020820152611b11565b6020810151620d89e860029190910b1315611b1157620d89e860208201525b611b1e81602001516151a7565b6001600160a01b031660608201526040830151611b58908d610e9e578b6001600160a01b031683606001516001600160a01b031611610eb8565b60c085015260a084015260808301526001600160a01b0316604084015260008b1315611bb257611b918160c001518260800151016156cb565b835103835260a0810151611ba890610f45906156cb565b6020840152611be2565b611bbf8160a001516156cb565b835101835260c08101516080820151611bdc91610f8491016156cb565b60208401525b835160ff1615611c28576000846000015160ff168260c0015181611c0257fe5b60c0840180519290910491829003905260a0850180519091016001600160801b03169052505b60c08301516001600160801b031615611c6757611c5b8160c00151600160801b8560c001516001600160801b0316615713565b60808401805190910190525b80606001516001600160a01b031683604001516001600160a01b03161415611d5b57806040015115611d32578360a00151611cf157611ccf846040015160008760200151886040015188602001518a6060015160096157c3909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000611d0882602001518e6110bb576002546110c1565b90508c15611d14576000035b611d228460c0015182615a2a565b6001600160801b031660c0850152505b8b611d41578060200151611d4a565b60018160200151035b600290810b900b6060840152611d96565b80600001516001600160a01b031683604001516001600160a01b031614611d9657611d898360400151615ae0565b600290810b900b60608401525b50611a4b565b836020015160020b826060015160020b14611e6a57600080611dea86604001518660400151886020015188602001518a606001518b608001516009615e0c909695949392919063ffffffff16565b604086015160608701516001805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b9390931692909202919091176001600160a01b0319166001600160a01b0390911617905550611e8f9050565b6040820151600180546001600160a01b0319166001600160a01b039092169190911790555b8160c001516001600160801b031683602001516001600160801b031614611ed55760c0820151600580546001600160801b0319166001600160801b039092169190911790555b8a15611f2557608082015160025560a08201516001600160801b031615611f205760a0820151600480546001600160801b031981166001600160801b03918216909301169190911790555b611f6b565b608082015160035560a08201516001600160801b031615611f6b5760a0820151600480546001600160801b03808216600160801b92839004821690940116029190911790555b8a151560008b1314611f8557602082015182518b03611f92565b81600001518a0382602001515b90965094508a156120cb576000851215611fd457611fd47f000000000000000000000000ae81b9ffcde5ab7673dd4b2f5c648a5579430b178d87600003615fc3565b6000611fde616111565b9050336001600160a01b0316635aec26c988888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561206257600080fd5b505af1158015612076573d6000803e3d6000fd5b50505050612082616111565b61208c828961624a565b11156120c5576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b506121f5565b6000861215612102576121027f0000000000000000000000004af286b2bf66ae46da121ffeb46c2a3bbe05dd978d88600003615fc3565b600061210c61625a565b9050336001600160a01b0316635aec26c988888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561219057600080fd5b505af11580156121a4573d6000803e3d6000fd5b505050506121b061625a565b6121ba828861624a565b11156121f3576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b8b6001600160a01b0316336001600160a01b03167f27d8cf6ecbb2b757e058a041b3c2fead1533ea4706d934a94df356146f542c23888886604001518760c0015188606001518860405180878152602001868152602001856001600160a01b03168152602001846001600160801b031681526020018360020b81526020018260020b8152602001965050505050505060405180910390a350506001805460ff60f01b1916600160f01b17905550505b965096945050505050565b6005546001600160801b031681565b6004546001600160801b0380821691600160801b90041682565b60098162ffffff81106122ea57600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600154600160f01b900460ff16612363576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6001805460ff60f01b1916905561237861502c565b7f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b1580156123d157600080fd5b505afa1580156123e5573d6000803e3d6000fd5b505050506040513d60208110156123fb57600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b15801561244557600080fd5b505afa158015612459573d6000803e3d6000fd5b505050506040513d602081101561246f57600080fd5b50511561247b57600080fd5b600154600160d81b900461ffff166000612497600983856162f2565b6001805461ffff808416600160d81b810261ffff60d81b1990931692909217909255919250831614612504576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506001805460ff60f01b1916600160f01b17905550565b6001546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b6001546000908190600160f01b900460ff166125b5576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6001805460ff60f01b1916905560408051634d8c928d60e11b815233600482015290516001600160a01b037f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d1691639b19251a916024808301926020929190829003018186803b15801561262857600080fd5b505afa15801561263c573d6000803e3d6000fd5b505050506040513d602081101561265257600080fd5b5051156129ac577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b1580156126b257600080fd5b505afa1580156126c6573d6000803e3d6000fd5b505050506040513d60208110156126dc57600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b15801561272657600080fd5b505afa15801561273a573d6000803e3d6000fd5b505050506040513d602081101561275057600080fd5b50511561275c57600080fd5b6000856001600160801b03161161277257600080fd5b6000806127c060405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016127b68a6001600160801b0316616396565b600f0b90526163a7565b925092505081935080925060008060008611156127e2576127df616111565b91505b84156127f3576127f061625a565b90505b336001600160a01b0316630a7215dd87878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561287557600080fd5b505af1158015612889573d6000803e3d6000fd5b5050505060008611156128e05761289e616111565b6128a8838861624a565b11156128e0576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b8415612930576128ee61625a565b6128f8828761624a565b1115612930576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450505050612cfd565b6129b4613f7d565b612cfd577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b158015612a1157600080fd5b505afa158015612a25573d6000803e3d6000fd5b505050506040513d6020811015612a3b57600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b158015612a8557600080fd5b505afa158015612a99573d6000803e3d6000fd5b505050506040513d6020811015612aaf57600080fd5b505115612abb57600080fd5b6000856001600160801b031611612ad157600080fd5b600080612b1560405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016127b68a6001600160801b0316616396565b92509250508193508092506000806000861115612b3757612b34616111565b91505b8415612b4857612b4561625a565b90505b336001600160a01b0316630a7215dd87878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015612bca57600080fd5b505af1158015612bde573d6000803e3d6000fd5b505050506000861115612c3557612bf3616111565b612bfd838861624a565b1115612c35576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b8415612c8557612c4361625a565b612c4d828761624a565b1115612c85576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a4505050505b6001805460ff60f01b1916600160f01b1790559097909650945050505050565b7f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b0316630f41e0d26040518163ffffffff1660e01b815260040160206040518083038186803b158015612d7657600080fd5b505afa158015612d8a573d6000803e3d6000fd5b505050506040513d6020811015612da057600080fd5b50516001600160a01b03163314612db657600080fd5b612dbe6165e7565b565b60035481565b600154600160f01b900460ff16612e0a576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6001805460ff60f01b19169055612e1f61502c565b60408051634d8c928d60e11b815233600482015290516001600160a01b037f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d1691639b19251a916024808301926020929190829003018186803b158015612e8557600080fd5b505afa158015612e99573d6000803e3d6000fd5b505050506040513d6020811015612eaf57600080fd5b5051156133a6577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b158015612f0f57600080fd5b505afa158015612f23573d6000803e3d6000fd5b505050506040513d6020811015612f3957600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b158015612f8357600080fd5b505afa158015612f97573d6000803e3d6000fd5b505050506040513d6020811015612fad57600080fd5b505115612fb957600080fd5b6005546001600160801b031680612ffb576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b6000613030867f00000000000000000000000000000000000000000000000000000000000001f462ffffff16620f4240616690565b90506000613067867f00000000000000000000000000000000000000000000000000000000000001f462ffffff16620f4240616690565b90506000613073616111565b9050600061307f61625a565b905088156130b2576130b27f0000000000000000000000004af286b2bf66ae46da121ffeb46c2a3bbe05dd978b8b615fc3565b87156130e3576130e37f000000000000000000000000ae81b9ffcde5ab7673dd4b2f5c648a5579430b178b8a615fc3565b336001600160a01b031663f6b07e3085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561316557600080fd5b505af1158015613179573d6000803e3d6000fd5b505050506000613187616111565b9050600061319361625a565b9050816131a0858861624a565b11156131d8576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b806131e3848761624a565b111561321b576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b83820383820381156132aa57600154600160e81b9004600f166000811561324e578160ff16848161324857fe5b04613251565b60005b90506001600160801b0381161561328457600480546001600160801b038082168401166001600160801b03199091161790555b61329e818503600160801b8d6001600160801b0316615713565b60028054909101905550505b801561333557600154600160e81b900460041c600f16600081156132da578160ff1683816132d457fe5b046132dd565b60005b90506001600160801b0381161561330f57600480546001600160801b03600160801b8083048216850182160291161790555b613329818403600160801b8d6001600160801b0316615713565b60038054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350505050505050505061389e565b6133ae613f7d565b61389e577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b15801561340b57600080fd5b505afa15801561341f573d6000803e3d6000fd5b505050506040513d602081101561343557600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b15801561347f57600080fd5b505afa158015613493573d6000803e3d6000fd5b505050506040513d60208110156134a957600080fd5b5051156134b557600080fd5b6005546001600160801b0316806134f7576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b600061352c867f00000000000000000000000000000000000000000000000000000000000001f462ffffff16620f4240616690565b90506000613563867f00000000000000000000000000000000000000000000000000000000000001f462ffffff16620f4240616690565b9050600061356f616111565b9050600061357b61625a565b905088156135ae576135ae7f0000000000000000000000004af286b2bf66ae46da121ffeb46c2a3bbe05dd978b8b615fc3565b87156135df576135df7f000000000000000000000000ae81b9ffcde5ab7673dd4b2f5c648a5579430b178b8a615fc3565b336001600160a01b031663f6b07e3085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561366157600080fd5b505af1158015613675573d6000803e3d6000fd5b505050506000613683616111565b9050600061368f61625a565b90508161369c858861624a565b11156136d4576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b806136df848761624a565b1115613717576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b83820383820381156137a657600154600160e81b9004600f166000811561374a578160ff16848161374457fe5b0461374d565b60005b90506001600160801b0381161561378057600480546001600160801b038082168401166001600160801b03199091161790555b61379a818503600160801b8d6001600160801b0316615713565b60028054909101905550505b801561383157600154600160e81b900460041c600f16600081156137d6578160ff1683816137d057fe5b046137d9565b60005b90506001600160801b0381161561380b57600480546001600160801b03600160801b8083048216850182160291161790555b613825818403600160801b8d6001600160801b0316615713565b60038054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050505050505050505b50506001805460ff60f01b1916600160f01b179055505050565b6001546000908190600160f01b900460ff16613901576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6001805460ff60f01b1916905560408051634d8c928d60e11b815233600482015290516001600160a01b037f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d1691639b19251a916024808301926020929190829003018186803b15801561397457600080fd5b505afa158015613988573d6000803e3d6000fd5b505050506040513d602081101561399e57600080fd5b505115613c56577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b1580156139fe57600080fd5b505afa158015613a12573d6000803e3d6000fd5b505050506040513d6020811015613a2857600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b158015613a7257600080fd5b505afa158015613a86573d6000803e3d6000fd5b505050506040513d6020811015613a9c57600080fd5b505115613aa857600080fd5b6000613ab760083389896166ca565b60038101549091506001600160801b0390811690861611613ad85784613ae7565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611613b0f5783613b25565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615613b8a576003810180546001600160801b031981166001600160801b03918216869003821617909155613b8a907f0000000000000000000000004af286b2bf66ae46da121ffeb46c2a3bbe05dd97908a908616615fc3565b6001600160801b03821615613bf0576003810180546001600160801b03600160801b808304821686900382160291811691909117909155613bf0907f000000000000000000000000ae81b9ffcde5ab7673dd4b2f5c648a5579430b17908a908516615fc3565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a450613f0f565b613c5e613f7d565b613f0f577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b158015613cbb57600080fd5b505afa158015613ccf573d6000803e3d6000fd5b505050506040513d6020811015613ce557600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b158015613d2f57600080fd5b505afa158015613d43573d6000803e3d6000fd5b505050506040513d6020811015613d5957600080fd5b505115613d6557600080fd5b6000613d7460083389896166ca565b60038101549091506001600160801b0390811690861611613d955784613da4565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611613dcc5783613de2565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615613e47576003810180546001600160801b031981166001600160801b03918216869003821617909155613e47907f0000000000000000000000004af286b2bf66ae46da121ffeb46c2a3bbe05dd97908a908616615fc3565b6001600160801b03821615613ead576003810180546001600160801b03600160801b808304821686900382160291811691909117909155613ead907f000000000000000000000000ae81b9ffcde5ab7673dd4b2f5c648a5579430b17908a908516615fc3565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4505b6001805460ff60f01b1916600160f01b17905590969095509350505050565b60086020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60076020526000908152604090205481565b60005460ff1690565b7f0000000000000000000000000000000000005e8b2285f864419ac400be90719681565b600154600160f01b900460ff16613fee576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6001805460ff60f01b1916905560408051636999b37760e01b815290516001600160a01b037f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d1691636999b377916004808301926020929190829003018186803b15801561405b57600080fd5b505afa15801561406f573d6000803e3d6000fd5b505050506040513d602081101561408557600080fd5b50516001600160a01b0316331461409b57600080fd5b6140a5828261672e565b50506001805460ff60f01b1916600160f01b179055565b7f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b0316630f41e0d26040518163ffffffff1660e01b815260040160206040518083038186803b15801561411557600080fd5b505afa158015614129573d6000803e3d6000fd5b505050506040513d602081101561413f57600080fd5b50516001600160a01b0316331461415557600080fd5b612dbe616829565b6001546000908190600160f01b900460ff166141a6576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6001805460ff60f01b1916905560408051636999b37760e01b815290516001600160a01b037f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d1691636999b377916004808301926020929190829003018186803b15801561421357600080fd5b505afa158015614227573d6000803e3d6000fd5b505050506040513d602081101561423d57600080fd5b50516001600160a01b0316331461425357600080fd5b7f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b1580156142ac57600080fd5b505afa1580156142c0573d6000803e3d6000fd5b505050506040513d60208110156142d657600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b15801561432057600080fd5b505afa158015614334573d6000803e3d6000fd5b505050506040513d602081101561434a57600080fd5b50511561435657600080fd5b6004546001600160801b0390811690851611614372578361437f565b6004546001600160801b03165b6004549092506001600160801b03600160801b9091048116908416116143a557826143b9565b600454600160801b90046001600160801b03165b90506001600160801b0382161561443a576004546001600160801b03838116911614156143e857600019909101905b600480546001600160801b031981166001600160801b0391821685900382161790915561443a907f0000000000000000000000004af286b2bf66ae46da121ffeb46c2a3bbe05dd979087908516615fc3565b6001600160801b038116156144c0576004546001600160801b03828116600160801b90920416141561446b57600019015b600480546001600160801b03600160801b8083048216859003821602918116919091179091556144c0907f000000000000000000000000ae81b9ffcde5ab7673dd4b2f5c648a5579430b179087908416615fc3565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36001805460ff60f01b1916600160f01b1790559094909350915050565b60608061453a61502c565b6145b4614545615061565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600154600554600995949350600160a01b820460020b925061ffff600160b81b83048116926001600160801b0390921691600160c81b9004166168b9565b915091509250929050565b6001546000908190600160f01b900460ff16614608576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6001805460ff60f01b1916905560408051634d8c928d60e11b815233600482015290516001600160a01b037f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d1691639b19251a916024808301926020929190829003018186803b15801561467b57600080fd5b505afa15801561468f573d6000803e3d6000fd5b505050506040513d60208110156146a557600080fd5b5051156148c1577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b15801561470557600080fd5b505afa158015614719573d6000803e3d6000fd5b505050506040513d602081101561472f57600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b15801561477957600080fd5b505afa15801561478d573d6000803e3d6000fd5b505050506040513d60208110156147a357600080fd5b5051156147af57600080fd5b60008060006148026040518060800160405280336001600160a01b031681526020018a60020b81526020018960020b81526020016147f5896001600160801b0316616396565b600003600f0b90526163a7565b92509250925081600003945080600003935060008511806148235750600084115b15614862576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a4505050614ad1565b6148c9613f7d565b614ad1577f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d6001600160a01b031663a7b23b396040518163ffffffff1660e01b815260040160206040518083038186803b15801561492657600080fd5b505afa15801561493a573d6000803e3d6000fd5b505050506040513d602081101561495057600080fd5b505160408051633371bfff60e01b815233600482015290516001600160a01b0390921691633371bfff91602480820192602092909190829003018186803b15801561499a57600080fd5b505afa1580156149ae573d6000803e3d6000fd5b505050506040513d60208110156149c457600080fd5b5051156149d057600080fd5b6000806000614a166040518060800160405280336001600160a01b031681526020018a60020b81526020018960020b81526020016147f5896001600160801b0316616396565b9250925092508160000394508060000393506000851180614a375750600084115b15614a76576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a45050505b6001805460ff60f01b1916600160f01b1790559094909350915050565b6000806000614afb61502c565b614b058585616a13565b600285810b810b600090815260066020819052604080832088850b90940b8352822060038401549182900b9367010000000000000083046001600160a01b0316928492600160d81b820463ffffffff16928492909190600160f81b900460ff1680614b6f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff1680614bb457600080fd5b50506040805160e0810182526001546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b12159050614c5d57509390940396509003935090039050614ce0565b8a60020b816020015160020b1215614cd1576000614c79615061565b6020830151604084015160055460608601519394506000938493614caf936009938893879392916001600160801b0316906157c3565b9a9003989098039b505094909603929092039650909103039250614ce0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000cc87b1c449648a5cb087a3108d2abc9f0282692d81565b7f000000000000000000000000000000000000000000000000000000000000000a81565b7f000000000000000000000000ae81b9ffcde5ab7673dd4b2f5c648a5579430b1781565b7f00000000000000000000000000000000000000000000000000000000000001f481565b60025481565b60066020819052600091825260409091208054600182015460028301546003909301546001600160801b03831694600160801b909304600f0b93919281900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6001546001600160a01b03161580614e1a5750614e08616111565b158015614e1a5750614e1861625a565b155b614e50576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000614e5b82615ae0565b9050600080614e73614e6b615061565b600990616adc565b6040805160e0810182526001600160a01b038816808252600288810b60208401819052600094840185905261ffff878116606086018190529087166080860181905260a0860196909652600160c09095018590528454600160f01b6001600160a01b031990911690941762ffffff60a01b1916600160a01b62ffffff9390940b9290921692909202177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909302929092177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff169190911790559092509050614f7360058061672e565b604080516001600160a01b0386168152600285900b602082015281517f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c95929181900390910190a150505050565b60008082600281900b620d89e71981614fd557fe5b05029050600083600281900b620d89e881614fec57fe5b0502905060008460020b83830360020b8161500357fe5b0560010190508062ffffff166001600160801b0380168161502057fe5b0493505050505b919050565b306001600160a01b037f000000000000000000000000c53cf9b9711c65889013b70fbebd5c8806f5219d1614612dbe57600080fd5b4290565b60008060008460020b8660020b8161507957fe5b05905060008660020b1280156150a057508460020b8660020b8161509957fe5b0760020b15155b156150aa57600019015b831561511f576000806150bc83616b28565b600182810b810b600090815260208d9052604090205460ff83169190911b8001600019019081168015159750929450909250908561510157888360ff16860302615114565b8861510b82616b3a565b840360ff168603025b96505050505061519d565b60008061512e83600101616b28565b91509150600060018260ff166001901b031990506000818b60008660010b60010b815260200190815260200160002054169050806000141595508561518057888360ff0360ff16866001010102615196565b888361518b83616bda565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b126151be578260020b6151c6565b8260020b6000035b9050620d89e8811115615204576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b60006001821661521857600160801b61522a565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561525e576ffff97272373d413259a46990580e213a0260801c5b600482161561527d576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561529c576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156152bb576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156152da576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156152f9576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615615318576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615615338576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615615358576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615615378576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615615398576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156153b8576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156153d8576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156153f8576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615615418576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615615439576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615615459576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615615478576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615615495576b048a170391f7dc42444e8fa20260801c5b60008460020b13156154b05780600019816154ac57fe5b0490505b6401000000008106156154c45760016154c7565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a16101581871280159061555e5760006155128989620f42400362ffffff16620f4240615713565b90508261552b576155268c8c8c6001616cc4565b615538565b6155388b8d8c6001616d3f565b9550858110615549578a9650615558565b6155558c8b8386616dfc565b96505b506155a8565b81615575576155708b8b8b6000616d3f565b615582565b6155828a8c8b6000616cc4565b9350838860000310615596578995506155a8565b6155a58b8a8a60000385616e48565b95505b6001600160a01b038a811690871614821561560b578080156155c75750815b6155dd576155d8878d8c6001616d3f565b6155df565b855b95508080156155ec575081155b615602576155fd878d8c6000616cc4565b615604565b845b9450615655565b8080156156155750815b61562b576156268c888c6001616cc4565b61562d565b855b955080801561563a575081155b6156505761564b8c888c6000616d3f565b615652565b845b94505b8115801561566557508860000385115b15615671578860000394505b81801561569057508a6001600160a01b0316876001600160a01b031614155b1561569f5785890393506156bc565b6156b9868962ffffff168a620f42400362ffffff16616690565b93505b50505095509550955095915050565b6000600160ff1b82106156dd57600080fd5b5090565b808203828113156000831215146156f757600080fd5b92915050565b818101828112156000831215146156f757600080fd5b6000808060001985870986860292508281109083900303905080615749576000841161573e57600080fd5b5082900490506157bc565b80841161575557600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff871661586b576000898661ffff1662ffffff81106157e557fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461585757615854818a8988616e94565b90505b80602001518160400151925092505061594b565b8688036000806158808c8c858c8c8c8c616f44565b91509150816000015163ffffffff168363ffffffff1614156158b257816020015182604001519450945050505061594b565b805163ffffffff848116911614156158da57806020015181604001519450945050505061594b565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b8161590857fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b0316028161593a57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b1215615a8f57826001600160801b03168260000384039150816001600160801b031610615a8a576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6156f7565b826001600160801b03168284019150816001600160801b031610156156f7576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b03831610801590615b1c575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b615b51576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110615bf257607f810383901c9150615bfc565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14615dfd57886001600160a01b0316615de1826151a7565b6001600160a01b03161115615df65781615df8565b805b615dff565b815b9998505050505050505050565b6000806000898961ffff1662ffffff8110615e2357fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415615e93578885925092505061594b565b8461ffff168461ffff16118015615eb457506001850361ffff168961ffff16145b15615ec157839150615ec5565b8491505b8161ffff168960010161ffff1681615ed957fe5b069250615ee881898989616e94565b8a8461ffff1662ffffff8110615efa57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b6020831061603f5780518252601f199092019160209182019101616020565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146160a1576040519150601f19603f3d011682016040523d82523d6000602084013e6160a6565b606091505b50915091508180156160d45750805115806160d457508080602001905160208110156160d157600080fd5b50515b61610a576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f0000000000000000000000004af286b2bf66ae46da121ffeb46c2a3bbe05dd971693919290918291908083835b602083106161aa5780518252601f19909201916020918201910161618b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811461620a576040519150601f19603f3d011682016040523d82523d6000602084013e61620f565b606091505b509150915081801561622357506020815110155b61622c57600080fd5b80806020019051602081101561624157600080fd5b50519250505090565b808201828110156156f757600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000ae81b9ffcde5ab7673dd4b2f5c648a5579430b17169391929091829190808383602083106161aa5780518252601f19909201916020918201910161618b565b6000808361ffff1611616330576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff16116163465750816157bc565b825b8261ffff168161ffff16101561638d576001858261ffff1662ffffff811061636c57fe5b01805463ffffffff191663ffffffff92909216919091179055600101616348565b50909392505050565b80600f81900b811461502757600080fd5b60008060006163b461502c565b6163c684602001518560400151616a13565b6040805160e0810182526001546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461646a9491939092909190617143565b93508460600151600f0b6000146165df57846020015160020b816020015160020b12156164bf576164b86164a186602001516151a7565b6164ae87604001516151a7565b87606001516172f8565b92506165df565b846040015160020b816020015160020b12156165b55760055460408201516001600160801b0390911690616511906164f5615061565b6020850151606086015160808701516009949392918791615e0c565b6001805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b9390921692909202179055815160408701516165619190616557906151a7565b88606001516172f8565b935061657f61657387602001516151a7565b8351606089015161733c565b925061658f818760600151615a2a565b600580546001600160801b0319166001600160801b0392909216919091179055506165df565b6165dc6165c586602001516151a7565b6165d287604001516151a7565b876060015161733c565b91505b509193909250565b6165ef613f7d565b616640576040805162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61667361736b565b604080516001600160a01b039092168252519081900360200190a1565b600061669d848484615713565b9050600082806166a957fe5b84860911156157bc5760001981106166c057600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60ff82161580616751575060048260ff16101580156167515750600a8260ff1611155b801561677b575060ff8116158061677b575060048160ff161015801561677b5750600a8160ff1611155b61678457600080fd5b60018054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a1505050565b616831613f7d565b15616883576040805162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861667361736b565b60608060008361ffff16116168f9576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561691157600080fd5b5060405190808252806020026020018201604052801561693b578160200160208202803683370190505b509150865167ffffffffffffffff8111801561695657600080fd5b50604051908082528060200260200182016040528015616980578160200160208202803683370190505b50905060005b8751811015616a06576169b18a8a8a84815181106169a057fe5b60200260200101518a8a8a8a6157c3565b8483815181106169bd57fe5b602002602001018484815181106169d057fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050616986565b5097509795505050505050565b8060020b8260020b12616a53576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215616a96576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315616ad8576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b6000808211616b4857600080fd5b600160801b8210616b5b57608091821c91015b680100000000000000008210616b7357604091821c91015b6401000000008210616b8757602091821c91015b620100008210616b9957601091821c91015b6101008210616baa57600891821c91015b60108210616bba57600491821c91015b60048210616bca57600291821c91015b6002821061502757600101919050565b6000808211616be857600080fd5b5060ff6001600160801b03821615616c0357607f1901616c0b565b608082901c91505b67ffffffffffffffff821615616c2457603f1901616c2c565b604082901c91505b63ffffffff821615616c4157601f1901616c49565b602082901c91505b61ffff821615616c5c57600f1901616c64565b601082901c91505b60ff821615616c765760071901616c7e565b600882901c91505b600f821615616c905760031901616c98565b600482901c91505b6003821615616caa5760011901616cb2565b600282901c91505b60018216156150275760001901919050565b6000836001600160a01b0316856001600160a01b03161115616ce4579293925b81616d1157616d0c836001600160801b03168686036001600160a01b0316600160601b615713565b616d34565b616d34836001600160801b03168686036001600160a01b0316600160601b616690565b90505b949350505050565b6000836001600160a01b0316856001600160a01b03161115616d5f579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b038686038116908716616d9b57600080fd5b83616dcb57866001600160a01b0316616dbe8383896001600160a01b0316615713565b81616dc557fe5b04616df1565b616df1616de28383896001600160a01b0316616690565b886001600160a01b031661736f565b979650505050505050565b600080856001600160a01b031611616e1357600080fd5b6000846001600160801b031611616e2957600080fd5b81616e3b57616d0c858585600161737a565b616d34858585600161745b565b600080856001600160a01b031611616e5f57600080fd5b6000846001600160801b031611616e7557600080fd5b81616e8757616d0c858585600061745b565b616d34858585600061737a565b616e9c617cc4565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b031611616ef0576001616ef2565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b1681616f1d57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b616f4c617cc4565b616f54617cc4565b888561ffff1662ffffff8110616f6657fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff16151560608201529250616fcb90899089617550565b15617003578663ffffffff16826000015163ffffffff161415616fed5761594b565b81616ffa83898988616e94565b9150915061594b565b888361ffff168660010161ffff168161701857fe5b0661ffff1662ffffff811061702957fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082018190529092506170e057604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b6170ef88836000015189617550565b617126576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b6171338989898887617613565b9150915097509795505050505050565b600061715260088787876166ca565b60025460035491925090600080600f87900b15617298576000617173615061565b60015460055491925060009182916171bd9160099186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b9004166157c3565b90925090506171f760068d8b8d8b8b87898b60007f0000000000000000000000000000000000005e8b2285f864419ac400be9071966177b5565b945061722e60068c8b8d8b8b87898b60017f0000000000000000000000000000000000005e8b2285f864419ac400be9071966177b5565b935084156172625761726260078d7f000000000000000000000000000000000000000000000000000000000000000a61799f565b83156172945761729460078c7f000000000000000000000000000000000000000000000000000000000000000a61799f565b5050505b6000806172aa60068c8c8b8a8a617a05565b90925090506172bb878a8484617ab1565b600089600f0b12156172e95783156172d8576172d860068c617c46565b82156172e9576172e960068b617c46565b50505050505095945050505050565b60008082600f0b1261731e576173196173148585856001616d3f565b6156cb565b616d37565b6173316173148585856000036000616d3f565b600003949350505050565b60008082600f0b12617358576173196173148585856001616cc4565b6173316173148585856000036000616cc4565b3390565b808204910615150190565b600081156173ed5760006001600160a01b038411156173b0576173ab84600160601b876001600160801b0316615713565b6173c8565b6001600160801b038516606085901b816173c657fe5b045b90506173e56173e06001600160a01b0388168361624a565b617c72565b915050616d37565b60006001600160a01b0384111561741b5761741684600160601b876001600160801b0316616690565b617432565b617432606085901b6001600160801b03871661736f565b905080866001600160a01b03161161744957600080fd5b6001600160a01b038616039050616d37565b600082617469575083616d37565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215617509576001600160a01b038616848102908582816174a957fe5b0414156174da578181018281106174d8576174ce83896001600160a01b031683616690565b9350505050616d37565b505b617500826174fb878a6001600160a01b031686816174f457fe5b049061624a565b61736f565b92505050616d37565b6001600160a01b0386168481029085828161752057fe5b0414801561752d57508082115b61753657600080fd5b8082036174ce6173e0846001600160a01b038b1684616690565b60008363ffffffff168363ffffffff161115801561757a57508363ffffffff168263ffffffff1611155b15617596578163ffffffff168363ffffffff16111590506157bc565b60008463ffffffff168463ffffffff16116175be578363ffffffff16640100000000016175c6565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff16116175f7578363ffffffff16640100000000016175ff565b8363ffffffff165b64ffffffffff169091111595945050505050565b61761b617cc4565b617623617cc4565b60008361ffff168560010161ffff168161763957fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff8716828161766657fe5b0662ffffff811061767357fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082018190529095506176de57806001019250617651565b898661ffff1682600101816176ef57fe5b0662ffffff81106176fc57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201528551909450600090617767908b908b617550565b905080801561778057506177808a8a8760000151617550565b1561778b57506177a8565b8061779b576001820392506177a2565b8160010193505b50617651565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b0316826177e0828d615a2a565b9050846001600160801b0316816001600160801b0316111561782e576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b038281161590821615811415945015617904578c60020b8e60020b136178d457600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b0382161783558561794d5782546179489061794390600160801b9004600f90810b810b908f900b6156fd565b616396565b61796e565b825461796e9061794390600160801b9004600f90810b810b908f900b6156e1565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b816179ae57fe5b0760020b156179bc57600080fd5b6000806179d78360020b8560020b816179d157fe5b05616b28565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b12617a4b57505060018201546002830154617a5e565b8360010154880391508360020154870390505b6000808b60020b8b60020b1215617a8057505060018301546002840154617a93565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b617b505781516001600160801b0316617b48576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b508051617b5f565b8151617b5c9086615a2a565b90505b6000617b838360200151860384600001516001600160801b0316600160801b615713565b90506000617ba98460400151860385600001516001600160801b0316600160801b615713565b905086600f0b600014617bd05787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b038216151580617bfe57506000816001600160801b0316115b15617c3c576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b038116811461502757600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a