0 txs
0 calls
constructor
constructor()
functions
admin
viewfunction admin() view returns (address)
aggregatorInterface
viewfunction aggregatorInterface() view returns (address)
applySanctions
viewfunction applySanctions() view returns (bool)
baseDecimals
viewfunction baseDecimals() view returns (uint256)
bnbBuyHelper
viewfunction bnbBuyHelper(uint256 amount) view returns (uint256 bnbAmount)
calculatePrice
viewfunction calculatePrice(uint256 _amount) view returns (uint256)
checkPoint
viewfunction checkPoint() view returns (uint256)
currentStep
viewfunction currentStep() view returns (uint256)
dynamicTimeFlag
viewfunction dynamicTimeFlag() view returns (bool)
endTime
viewfunction endTime() view returns (uint256)
getLatestPrice
viewfunction getLatestPrice() view returns (uint256)
maxTokensToBuy
viewfunction maxTokensToBuy() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
paymentWallet
viewfunction paymentWallet() view returns (address)
percentages
viewfunction percentages(uint256) view returns (uint256)
prevCheckpoints
viewfunction prevCheckpoints(uint256) view returns (uint256)
remainingTokensTracker
viewfunction remainingTokensTracker(uint256) view returns (uint256)
roundDetails
viewfunction roundDetails(uint256 _no) view returns (uint256[])
rounds
viewfunction rounds(uint256, uint256) view returns (uint256)
sanctionsList
viewfunction sanctionsList() view returns (address)
startTime
viewfunction startTime() view returns (uint256)
timeConstant
viewfunction timeConstant() view returns (uint256)
totalTokensSold
viewfunction totalTokensSold() view returns (uint256)
trackRemainingTokens
viewfunction trackRemainingTokens() view returns (uint256[])
USDCInterface
viewfunction USDCInterface() view returns (address)
usdRaised
viewfunction usdRaised() view returns (uint256)
usdtBuyHelper
viewfunction usdtBuyHelper(uint256 amount) view returns (uint256 usdPrice)
USDTInterface
viewfunction USDTInterface() view returns (address)
userDeposits
viewfunction userDeposits(address) view returns (uint256)
wallets
viewfunction wallets(uint256) view returns (address)
buyWithBNB
payablefunction buyWithBNB(uint256 amount) payable returns (bool)
buyWithUSDC
nonpayablefunction buyWithUSDC(uint256 amount) returns (bool)
buyWithUSDT
nonpayablefunction buyWithUSDT(uint256 amount) returns (bool)
changeMaxTokensToBuy
nonpayablefunction changeMaxTokensToBuy(uint256 _maxTokensToBuy)
changePaymentWallet
nonpayablefunction changePaymentWallet(address _newPaymentWallet)
changeRoundsData
nonpayablefunction changeRoundsData(uint256[][3] _rounds)
changeSaleTimes
nonpayablefunction changeSaleTimes(uint256 _startTime, uint256 _endTime)
incrementCurrentStep
nonpayablefunction incrementCurrentStep()
initialize
nonpayablefunction initialize(address _oracle, address _usdt, address _usdc, uint256 _startTime, uint256 _endTime, uint256[][3] _rounds, uint256 _maxTokensToBuy, address _paymentWallet, bool _dynamicTimeFlag, uint256 _timeConstant)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address _admin)
setCurrentStep
nonpayablefunction setCurrentStep(uint256 _step, uint256 _checkpoint)
setDynamicTimeFlag
nonpayablefunction setDynamicTimeFlag(bool _dynamicTimeFlag)
setRemainingTokensArray
nonpayablefunction setRemainingTokensArray(uint256[] _unsoldTokens)
setSanctions
nonpayablefunction setSanctions(address _sanctionContract, bool _applySanction)
setSplits
nonpayablefunction setSplits(address[] _wallets, uint256[] _percentages)
setTimeConstant
nonpayablefunction setTimeConstant(uint256 _timeConstant)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
Initialized
event Initialized(uint8 version)
MaxTokensUpdated
event MaxTokensUpdated(uint256 prevValue, uint256 newValue, uint256 timestamp)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
SaleTimeSet
event SaleTimeSet(uint256 _start, uint256 _end, uint256 timestamp)
SaleTimeUpdated
event SaleTimeUpdated(bytes32 indexed key, uint256 prevValue, uint256 newValue, uint256 timestamp)
TokensBought
event TokensBought(address indexed user, uint256 indexed tokensBought, address indexed purchaseToken, uint256 amountPaid, uint256 usdEq, uint256 timestamp)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b8062000063575062000050306200013d60201b6200274f1760201c565b15801562000063575060005460ff166001145b620000cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000ef576000805461ff0019166101001790555b801562000136576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b506200014c565b6001600160a01b03163b151590565b613ae0806200015c6000396000f3fe6080604052600436106102e45760003560e01c80638da5cb5b11610190578063c8adff01116100dc578063eadd94ec11610095578063f597573f1161006f578063f597573f1461086f578063f607556a1461088f578063f851a440146108af578063f8858386146108cf57600080fd5b8063eadd94ec14610819578063ec571c6a1461082f578063f2fde38b1461084f57600080fd5b8063c8adff011461076e578063cad0055614610783578063cff805ab146107a3578063e19648db146107b9578063e32204dd146107d9578063e6da9213146107f957600080fd5b8063ae10426511610149578063c23326f311610123578063c23326f3146106fb578063c3333dfb1461071b578063c49cc6451461072e578063c4d5db571461074e57600080fd5b8063ae1042651461068e578063aeccf735146106ae578063ba166a39146106ce57600080fd5b80638da5cb5b146105e55780638e15f473146106035780639a89c1fb146106185780639cfa0f7c14610638578063a6d42e4e1461064e578063a7c601601461066e57600080fd5b80633f4ba83a1161024f57806363e4087911610208578063715018a6116101e2578063715018a61461058557806378e979251461059a5780637ad71f72146105b05780638456cb59146105d057600080fd5b806363e4087914610530578063641046f414610550578063704b6c021461056557600080fd5b80633f4ba83a146104a157806343568eae146104b65780635bc34f71146104cc5780635c975abb146104e25780635ddc5688146104fa57806363b201171461051a57600080fd5b8063278c278b116102a1578063278c278b146103f45780632c73304d146104145780632dc358e81461043457806330e74f08146104545780633197cbb61461047557806333f761781461048b57600080fd5b80630a200fc7146102e95780630ba36dcd1461030b5780630dc9c8381461034b5780631fa2bc921461036b57806323a8f1c01461039c57806325312e54146103bc575b600080fd5b3480156102f557600080fd5b5061030961030436600461328f565b6108ef565b005b34801561031757600080fd5b506103386103263660046132c8565b60dd6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561035757600080fd5b506103096103663660046132e3565b610915565b34801561037757600080fd5b5060da5461038c90600160a01b900460ff1681565b6040519015158152602001610342565b3480156103a857600080fd5b506103096103b7366004613305565b610af6565b3480156103c857600080fd5b5060df546103dc906001600160a01b031681565b6040516001600160a01b039091168152602001610342565b34801561040057600080fd5b5061030961040f366004613305565b610b03565b34801561042057600080fd5b5061030961042f36600461331e565b610ba6565b34801561044057600080fd5b5061030961044f36600461342b565b610bee565b34801561046057600080fd5b5060de5461038c90600160a01b900460ff1681565b34801561048157600080fd5b5061033860cb5481565b34801561049757600080fd5b5061033860cc5481565b3480156104ad57600080fd5b50610309610cb6565b3480156104c257600080fd5b5061033860d15481565b3480156104d857600080fd5b5061033860ce5481565b3480156104ee57600080fd5b5060975460ff1661038c565b34801561050657600080fd5b50610309610515366004613468565b610cc8565b34801561052657600080fd5b5061033860c95481565b34801561053c57600080fd5b5061033861054b366004613305565b610ec3565b34801561055c57600080fd5b50610309610ed4565b34801561057157600080fd5b506103096105803660046132c8565b611099565b34801561059157600080fd5b506103096110c3565b3480156105a657600080fd5b5061033860ca5481565b3480156105bc57600080fd5b506103dc6105cb366004613305565b6110d5565b3480156105dc57600080fd5b506103096110ff565b3480156105f157600080fd5b506065546001600160a01b03166103dc565b34801561060f57600080fd5b5061033861110f565b34801561062457600080fd5b506103096106333660046132e3565b6111af565b34801561064457600080fd5b5061033860cd5481565b34801561065a57600080fd5b506103096106693660046135b6565b6111c2565b34801561067a57600080fd5b5061038c610689366004613305565b6111d7565b34801561069a57600080fd5b506103386106a9366004613305565b611644565b3480156106ba57600080fd5b5061038c6106c9366004613305565b61197a565b3480156106da57600080fd5b506106ee6106e9366004613305565b611d87565b60405161034291906135eb565b34801561070757600080fd5b50610338610716366004613305565b611df3565b61038c610729366004613305565b611e14565b34801561073a57600080fd5b5060dc546103dc906001600160a01b031681565b34801561075a57600080fd5b50610338610769366004613305565b61223b565b34801561077a57600080fd5b506106ee61226f565b34801561078f57600080fd5b5061030961079e3660046132c8565b6122c7565b3480156107af57600080fd5b5061033860cf5481565b3480156107c557600080fd5b506103386107d4366004613305565b612340565b3480156107e557600080fd5b5060d9546103dc906001600160a01b031681565b34801561080557600080fd5b506103386108143660046132e3565b612350565b34801561082557600080fd5b5061033860d05481565b34801561083b57600080fd5b5060de546103dc906001600160a01b031681565b34801561085b57600080fd5b5061030961086a3660046132c8565b612384565b34801561087b57600080fd5b5060db546103dc906001600160a01b031681565b34801561089b57600080fd5b506103096108aa36600461362f565b6123fd565b3480156108bb57600080fd5b5060da546103dc906001600160a01b031681565b3480156108db57600080fd5b506103386108ea366004613305565b61273f565b6108f761275e565b60da8054911515600160a01b0260ff60a01b19909216919091179055565b61091d61275e565b600082118061092c5750600081115b6109725760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420706172616d657465727360701b60448201526064015b60405180910390fd5b8115610a575760ca5442106109c05760405162461bcd60e51b815260206004820152601460248201527314d85b1948185b1c9958591e481cdd185c9d195960621b6044820152606401610969565b814210610a035760405162461bcd60e51b815260206004820152601160248201527014d85b19481d1a5b59481a5b881c185cdd607a1b6044820152606401610969565b60ca8054908390556040805182815260208101859052428183015290516414d510549560da1b917fddd2ed237e6993c9380182683f2c8bec486aaaa429528852cd74dbdb96cea0b2919081900360600190a2505b8015610af25760ca548111610aa05760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420656e6454696d6560881b6044820152606401610969565b60cb8054908290556040805182815260208101849052428183015290516211539160ea1b917fddd2ed237e6993c9380182683f2c8bec486aaaa429528852cd74dbdb96cea0b2919081900360600190a2505b5050565b610afe61275e565b60d155565b610b0b61275e565b60008111610b5b5760405162461bcd60e51b815260206004820152601c60248201527f5a65726f206d617820746f6b656e7320746f206275792076616c7565000000006044820152606401610969565b60cd8054908290556040805182815260208101849052428183015290517f76f9e5e1f6af6a9f180708b77a5c99210fbf19b91f1f194f3918c262b8edf77c9181900360600190a15050565b610bae61275e565b6001600160a01b038216610bc157600080fd5b60de8054911515600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b60da546001600160a01b0316331480610c1157506065546001600160a01b031633145b610c595760405162461bcd60e51b815260206004820152601960248201527831b0b63632b9103737ba1030b236b4b71037b91037bbb732b960391b6044820152606401610969565b610c6560d6600061319a565b60005b8151811015610af25760d6828281518110610c8557610c856136ec565b6020908102919091018101518254600181018455600093845291909220015580610cae81613718565b915050610c68565b610cbe61275e565b610cc66127b8565b565b610cd061275e565b8051825114610d155760405162461bcd60e51b81526020600482015260116024820152704d69736d6174636865642061727261797360781b6044820152606401610969565b610d2160d8600061319a565b610d2d60d7600061319a565b6000805b8351811015610e6b576000838281518110610d4e57610d4e6136ec565b602002602001015111610dad5760405162461bcd60e51b815260206004820152602160248201527f50657263656e74616765206d7573742062652067726561746572207468616e206044820152600360fc1b6064820152608401610969565b828181518110610dbf57610dbf6136ec565b602002602001015182610dd29190613733565b915060d8848281518110610de857610de86136ec565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055825160d790849083908110610e3a57610e3a6136ec565b6020908102919091018101518254600181018455600093845291909220015580610e6381613718565b915050610d31565b5080620186a014610ebe5760405162461bcd60e51b815260206004820152601f60248201527f546f74616c2070657263656e74616765206d75737420657175616c20313030006044820152606401610969565b505050565b6000610ece82611644565b92915050565b60da546001600160a01b0316331480610ef757506065546001600160a01b031633145b610f3f5760405162461bcd60e51b815260206004820152601960248201527831b0b63632b9103737ba1030b236b4b71037b91037bbb732b960391b6044820152606401610969565b60cf5460d580546001810182556000919091527f51858de9989bf7441865ebdadbf7382c8838edbf830f5d86a9a51ac773676dd6015560da54600160a01b900460ff1615610f8f57610f8f61280a565b60d260000160ce5481548110610fa757610fa76136ec565b906000526020600020015460cf5410156110825760ce546110105760c95460d69060d260000160ce5481548110610fe057610fe06136ec565b9060005260206000200154610ff5919061374b565b8154600181018355600092835260209092209091015561105a565b60cf5460d69060d260000160ce548154811061102e5761102e6136ec565b9060005260206000200154611043919061374b565b815460018101835560009283526020909220909101555b60d260000160ce5481548110611072576110726136ec565b60009182526020909120015460cf555b60ce805490600061109283613718565b9190505550565b6110a161275e565b60da80546001600160a01b0319166001600160a01b0392909216919091179055565b6110cb61275e565b610cc6600061287a565b60d881815481106110e557600080fd5b6000918252602090912001546001600160a01b0316905081565b61110761275e565b610cc66128cc565b60008060dc60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561116057600080fd5b505afa158015611174573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611198919061377c565b505050915050806402540be400610ece91906137cc565b6111b761275e565b60ce9190915560cf55565b6111ca61275e565b610af260d28260036131b8565b60008160ca5442101580156111ee575060cb544211155b61120a5760405162461bcd60e51b815260040161096990613851565b6000811161122a5760405162461bcd60e51b815260040161096990613888565b3360de54600160a01b900460ff16156112d75760de5460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b15801561128257600080fd5b505afa158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba91906138b5565b156112d75760405162461bcd60e51b8152600401610969906138d2565b6112df612909565b60006112ea85611644565b90508460c960008282546112fe9190613733565b909155505060cf5415611323578460cf600082825461131d9190613733565b90915550505b600060cf5460c954116113385760cf5461133c565b60c9545b905060d260000160ce5481548110611356576113566136ec565b9060005260206000200154811180611390575060d260020160ce5481548110611381576113816136ec565b90600052602060002001544210155b156114ca5760d260020160ce54815481106113ad576113ad6136ec565b906000526020600020015442106113f0578560d260000160ce54815481106113d7576113d76136ec565b90600052602060002001546113ec9190613733565b60cf555b60da54600160a01b900460ff161561140a5761140a61280a565b600060d2810160ce5481548110611423576114236136ec565b9060005260206000200154821161147257868260d260000160ce548154811061144e5761144e6136ec565b9060005260206000200154611463919061374b565b61146d919061374b565b611475565b60005b60d680546001818101835560009283527fe767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd90910183905560ce805493945090929091906114c3908490613733565b9091555050505b60cc546114d79087613907565b33600090815260dd6020526040812080549091906114f6908490613733565b925050819055508160d0600082825461150f9190613733565b909155505060db546000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b15801561156e57600080fd5b505afa158015611582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a69190613926565b9050808311156115c85760405162461bcd60e51b81526004016109699061393f565b6115d18361294f565b60db546001600160a01b031687335b6001600160a01b03167f4d8aead3491b7eba4b5c7a65fc17e493b9e63f9e433522fc5f6a85a168fc9d3686874260405161162d939291909283526020830191909152604082015260600190565b60405180910390a4600195505050505b5050919050565b600080600060cf5460001461165b5760cf5461165f565b60c9545b905060cd548411156116b35760405162461bcd60e51b815260206004820181905260248201527f416d6f756e742065786365656473206d617820746f6b656e7320746f206275796044820152606401610969565b60d260000160ce54815481106116cb576116cb6136ec565b906000526020600020015481856116e29190613733565b1180611710575060d260020160ce5481548110611701576117016136ec565b90600052602060002001544210155b156119425760d2546117249060019061374b565b60ce54106117635760405162461bcd60e51b815260206004820152600c60248201526b57726f6e6720706172616d7360a01b6044820152606401610969565b60d260020160ce548154811061177b5761177b6136ec565b9060005260206000200154421061188e5760ce5460d29061179d906001613733565b815481106117ad576117ad6136ec565b90600052602060002001548460d26000600381106117cd576117cd6136ec565b0160ce54815481106117e1576117e16136ec565b90600052602060002001546117f69190613733565b11156118505760405162461bcd60e51b815260206004820152602360248201527f43616e74205075726368617365204d6f726520696e20696e646976696475616c604482015262040e8f60eb1b6064820152608401610969565b60ce5460d390611861906001613733565b81548110611871576118716136ec565b9060005260206000200154846118879190613907565b9150611973565b60008160d2820160ce54815481106118a8576118a86136ec565b90600052602060002001546118bd919061374b565b60ce5490915060d3906118d1906001613733565b815481106118e1576118e16136ec565b906000526020600020015481866118f8919061374b565b6119029190613907565b60d260010160ce548154811061191a5761191a6136ec565b9060005260206000200154826119309190613907565b61193a9190613733565b925050611973565b60d260010160ce548154811061195a5761195a6136ec565b9060005260206000200154846119709190613907565b91505b5092915050565b60008160ca544210158015611991575060cb544211155b6119ad5760405162461bcd60e51b815260040161096990613851565b600081116119cd5760405162461bcd60e51b815260040161096990613888565b3360de54600160a01b900460ff1615611a7a5760de5460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b158015611a2557600080fd5b505afa158015611a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5d91906138b5565b15611a7a5760405162461bcd60e51b8152600401610969906138d2565b611a82612909565b6000611a8d85611644565b90508460c96000828254611aa19190613733565b909155505060cf5415611ac6578460cf6000828254611ac09190613733565b90915550505b600060cf5460c95411611adb5760cf54611adf565b60c9545b905060d260000160ce5481548110611af957611af96136ec565b9060005260206000200154811180611b33575060d260020160ce5481548110611b2457611b246136ec565b90600052602060002001544210155b15611c6d5760d260020160ce5481548110611b5057611b506136ec565b90600052602060002001544210611b93578560d260000160ce5481548110611b7a57611b7a6136ec565b9060005260206000200154611b8f9190613733565b60cf555b60da54600160a01b900460ff1615611bad57611bad61280a565b600060d2810160ce5481548110611bc657611bc66136ec565b90600052602060002001548211611c1557868260d260000160ce5481548110611bf157611bf16136ec565b9060005260206000200154611c06919061374b565b611c10919061374b565b611c18565b60005b60d680546001818101835560009283527fe767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd90910183905560ce80549394509092909190611c66908490613733565b9091555050505b60cc54611c7a9087613907565b33600090815260dd602052604081208054909190611c99908490613733565b925050819055508160d06000828254611cb29190613733565b909155505060df546000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b158015611d1157600080fd5b505afa158015611d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d499190613926565b905080831115611d6b5760405162461bcd60e51b81526004016109699061393f565b611d7483612ca1565b60df546001600160a01b031687336115e0565b606060d28260038110611d9c57611d9c6136ec565b01805480602002602001604051908101604052809291908181526020018280548015611de757602002820191906000526020600020905b815481526020019060010190808311611dd3575b50505050509050919050565b60d68181548110611e0357600080fd5b600091825260209091200154905081565b60008160ca544210158015611e2b575060cb544211155b611e475760405162461bcd60e51b815260040161096990613851565b60008111611e675760405162461bcd60e51b815260040161096990613888565b3360de54600160a01b900460ff1615611f145760de5460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b158015611ebf57600080fd5b505afa158015611ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef791906138b5565b15611f145760405162461bcd60e51b8152600401610969906138d2565b611f1c612909565b611f24612e5b565b6000611f2f85611644565b90506000611f3b61110f565b60cc54611f489084613907565b611f529190613980565b905080341015611f935760405162461bcd60e51b815260206004820152600c60248201526b13195cdcc81c185e5b595b9d60a21b6044820152606401610969565b6000611f9f823461374b565b90508660c96000828254611fb39190613733565b909155505060cf5415611fd8578660cf6000828254611fd29190613733565b90915550505b600060cf5460c95411611fed5760cf54611ff1565b60c9545b905060d260000160ce548154811061200b5761200b6136ec565b9060005260206000200154811180612045575060d260020160ce5481548110612036576120366136ec565b90600052602060002001544210155b1561217f5760d260020160ce5481548110612062576120626136ec565b906000526020600020015442106120a5578760d260000160ce548154811061208c5761208c6136ec565b90600052602060002001546120a19190613733565b60cf555b60da54600160a01b900460ff16156120bf576120bf61280a565b600060d2810160ce54815481106120d8576120d86136ec565b9060005260206000200154821161212757888260d260000160ce5481548110612103576121036136ec565b9060005260206000200154612118919061374b565b612122919061374b565b61212a565b60005b60d680546001818101835560009283527fe767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd90910183905560ce80549394509092909190612178908490613733565b9091555050505b60cc5461218c9089613907565b33600090815260dd6020526040812080549091906121ab908490613733565b925050819055508360d060008282546121c49190613733565b909155506121d3905083612eb5565b81156121e3576121e33383612feb565b6040805184815260208101869052428183015290516000918a9133917f4d8aead3491b7eba4b5c7a65fc17e493b9e63f9e433522fc5f6a85a168fc9d36919081900360600190a4600196505050505061163d60018055565b60008061224783611644565b905061225161110f565b60cc5461225e9083613907565b6122689190613980565b9392505050565b606060d68054806020026020016040519081016040528092919081815260200182805480156122bd57602002820191906000526020600020905b8154815260200190600101908083116122a9575b5050505050905090565b6122cf61275e565b6001600160a01b03811661231e5760405162461bcd60e51b8152602060048201526016602482015275616464726573732063616e6e6f74206265207a65726f60501b6044820152606401610969565b60d980546001600160a01b0319166001600160a01b0392909216919091179055565b60d58181548110611e0357600080fd5b60d2826003811061236057600080fd5b01818154811061236f57600080fd5b90600052602060002001600091509150505481565b61238c61275e565b6001600160a01b0381166123f15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610969565b6123fa8161287a565b50565b600054610100900460ff161580801561241d5750600054600160ff909116105b806124375750303b158015612437575060005460ff166001145b61249a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610969565b6000805460ff1916600117905580156124bd576000805461ff0019166101001790555b6001600160a01b038b166125135760405162461bcd60e51b815260206004820152601760248201527f5a65726f2061676772656761746f7220616464726573730000000000000000006044820152606401610969565b6001600160a01b038a1661255d5760405162461bcd60e51b81526020600482015260116024820152705a65726f2055534454206164647265737360781b6044820152606401610969565b6001600160a01b0389166125a75760405162461bcd60e51b81526020600482015260116024820152705a65726f2055534443206164647265737360781b6044820152606401610969565b42881180156125b557508787115b6125f05760405162461bcd60e51b815260206004820152600c60248201526b496e76616c69642074696d6560a01b6044820152606401610969565b6125f86130c7565b6126006130fa565b61260861312a565b670de0b6b3a764000060cc5560dc80546001600160a01b03808e166001600160a01b03199283161790925560db80548d841690831617905560df8054928c169290911691909117905560ca88905560cb87905561266860d28760036131b8565b5060cd85905560d980546001600160a01b0319166001600160a01b03861617905560da805460ff60a01b1916600160a01b8515150217905560d182905560ca5460cb5460408051928352602083019190915242908201527f23f6ad8232d75562dd1c6b37dfc895af6bfc1ecd0fb3b88722c6a5e6b4dc9a209060600160405180910390a18015612732576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b60d78181548110611e0357600080fd5b6001600160a01b03163b151590565b6065546001600160a01b03163314610cc65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610969565b6127c0613151565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60005b60ce5460d45461281d919061374b565b8110156123fa5760d1546128319082613907565b61283b9042613733565b60ce5460d49061284c908490613733565b8154811061285c5761285c6136ec565b6000918252602090912001558061287281613718565b91505061280d565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6128d4612909565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586127ed3390565b60975460ff1615610cc65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610969565b60d854612a465760d9546001600160a01b031661297e5760405162461bcd60e51b8152600401610969906139a2565b60db546000906001600160a01b0316335b60d9546040516129ae92916001600160a01b03169086906024016139d2565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516129e391906139f6565b6000604051808303816000865af19150503d8060008114612a20576040519150601f19603f3d011682016040523d82523d6000602084013e612a25565b606091505b5050905080610af25760405162461bcd60e51b815260040161096990613a31565b6000805b60d854811015612b94576000620186a060d78381548110612a6d57612a6d6136ec565b906000526020600020015485612a839190613907565b612a8d9190613980565b60db549091506000906001600160a01b03163360d88581548110612ab357612ab36136ec565b600091825260209091200154604051612adb92916001600160a01b03169086906024016139d2565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251612b1091906139f6565b6000604051808303816000865af19150503d8060008114612b4d576040519150601f19603f3d011682016040523d82523d6000602084013e612b52565b606091505b5050905080612b735760405162461bcd60e51b815260040161096990613a31565b612b7d8285613733565b935050508080612b8c90613718565b915050612a4a565b506000612ba1828461374b565b1115610af25760db546000906001600160a01b0316335b60d88054612bc89060019061374b565b81548110612bd857612bd86136ec565b6000918252602090912001546001600160a01b0316612bf7858761374b565b604051602401612c09939291906139d2565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251612c3e91906139f6565b6000604051808303816000865af19150503d8060008114612c7b576040519150601f19603f3d011682016040523d82523d6000602084013e612c80565b606091505b5050905080610ebe5760405162461bcd60e51b815260040161096990613a31565b60d854612ce55760d9546001600160a01b0316612cd05760405162461bcd60e51b8152600401610969906139a2565b60df546000906001600160a01b03163361298f565b6000805b60d854811015612e33576000620186a060d78381548110612d0c57612d0c6136ec565b906000526020600020015485612d229190613907565b612d2c9190613980565b60df549091506000906001600160a01b03163360d88581548110612d5257612d526136ec565b600091825260209091200154604051612d7a92916001600160a01b03169086906024016139d2565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251612daf91906139f6565b6000604051808303816000865af19150503d8060008114612dec576040519150601f19603f3d011682016040523d82523d6000602084013e612df1565b606091505b5050905080612e125760405162461bcd60e51b815260040161096990613a31565b612e1c8285613733565b935050508080612e2b90613718565b915050612ce9565b506000612e40828461374b565b1115610af25760df546000906001600160a01b031633612bb8565b60026001541415612eae5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610969565b6002600155565b60d854612efa5760d9546001600160a01b0316612ee45760405162461bcd60e51b8152600401610969906139a2565b60d9546123fa906001600160a01b031682612feb565b6000805b60d854811015612f94576000620186a060d78381548110612f2157612f216136ec565b906000526020600020015485612f379190613907565b612f419190613980565b9050612f7460d88381548110612f5957612f596136ec565b6000918252602090912001546001600160a01b031682612feb565b612f7e8184613733565b9250508080612f8c90613718565b915050612efe565b506000612fa1828461374b565b1115610af25760d88054610af29190612fbc9060019061374b565b81548110612fcc57612fcc6136ec565b6000918252602090912001546001600160a01b0316612feb838561374b565b804710156130295760405162461bcd60e51b815260206004820152600b60248201526a4c6f772062616c616e636560a81b6044820152606401610969565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613076576040519150601f19603f3d011682016040523d82523d6000602084013e61307b565b606091505b5050905080610ebe5760405162461bcd60e51b81526020600482015260126024820152711093908814185e5b595b9d0819985a5b195960721b6044820152606401610969565b60018055565b600054610100900460ff166130ee5760405162461bcd60e51b815260040161096990613a5f565b6097805460ff19169055565b600054610100900460ff166131215760405162461bcd60e51b815260040161096990613a5f565b610cc63361287a565b600054610100900460ff166130c15760405162461bcd60e51b815260040161096990613a5f565b60975460ff16610cc65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610969565b50805460008255906000526020600020908101906123fa9190613208565b82600381019282156131f8579160200282015b828111156131f857825180516131e891849160209091019061321d565b50916020019190600101906131cb565b50613204929150613264565b5090565b5b808211156132045760008155600101613209565b828054828255906000526020600020908101928215613258579160200282015b8281111561325857825182559160200191906001019061323d565b50613204929150613208565b80821115613204576000613278828261319a565b50600101613264565b80151581146123fa57600080fd5b6000602082840312156132a157600080fd5b813561226881613281565b80356001600160a01b03811681146132c357600080fd5b919050565b6000602082840312156132da57600080fd5b612268826132ac565b600080604083850312156132f657600080fd5b50508035926020909101359150565b60006020828403121561331757600080fd5b5035919050565b6000806040838503121561333157600080fd5b61333a836132ac565b9150602083013561334a81613281565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561339457613394613355565b604052919050565b600067ffffffffffffffff8211156133b6576133b6613355565b5060051b60200190565b600082601f8301126133d157600080fd5b813560206133e66133e18361339c565b61336b565b82815260059290921b8401810191818101908684111561340557600080fd5b8286015b848110156134205780358352918301918301613409565b509695505050505050565b60006020828403121561343d57600080fd5b813567ffffffffffffffff81111561345457600080fd5b613460848285016133c0565b949350505050565b6000806040838503121561347b57600080fd5b823567ffffffffffffffff8082111561349357600080fd5b818501915085601f8301126134a757600080fd5b813560206134b76133e18361339c565b82815260059290921b840181019181810190898411156134d657600080fd5b948201945b838610156134fb576134ec866132ac565b825294820194908201906134db565b9650508601359250508082111561351157600080fd5b5061351e858286016133c0565b9150509250929050565b600082601f83011261353957600080fd5b6040516060810167ffffffffffffffff828210818311171561355d5761355d613355565b81604052829150606085018681111561357557600080fd5b855b818110156135aa5780358381111561358f5760008081fd5b61359b89828a016133c0565b85525060209384019301613577565b50929695505050505050565b6000602082840312156135c857600080fd5b813567ffffffffffffffff8111156135df57600080fd5b61346084828501613528565b6020808252825182820181905260009190848201906040850190845b8181101561362357835183529284019291840191600101613607565b50909695505050505050565b6000806000806000806000806000806101408b8d03121561364f57600080fd5b6136588b6132ac565b995061366660208c016132ac565b985061367460408c016132ac565b975060608b0135965060808b0135955060a08b013567ffffffffffffffff81111561369e57600080fd5b6136aa8d828e01613528565b95505060c08b013593506136c060e08c016132ac565b92506101008b01356136d181613281565b809250506101208b013590509295989b9194979a5092959850565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561372c5761372c613702565b5060010190565b6000821982111561374657613746613702565b500190565b60008282101561375d5761375d613702565b500390565b805169ffffffffffffffffffff811681146132c357600080fd5b600080600080600060a0868803121561379457600080fd5b61379d86613762565b94506020860151935060408601519250606086015191506137c060808701613762565b90509295509295909350565b60006001600160ff1b03818413828413808216868404861116156137f2576137f2613702565b600160ff1b600087128281168783058912161561381157613811613702565b6000871292508782058712848416161561382d5761382d613702565b8785058712818416161561384357613843613702565b505050929093029392505050565b60208082526017908201527f496e76616c69642074696d6520666f7220627579696e67000000000000000000604082015260600190565b602080825260139082015272125b9d985b1a59081cd85b1948185b5bdd5b9d606a1b604082015260600190565b6000602082840312156138c757600080fd5b815161226881613281565b6020808252818101527f416464726573732070726573656e7420696e2073616e6374696f6e206c697374604082015260600190565b600081600019048311821515161561392157613921613702565b500290565b60006020828403121561393857600080fd5b5051919050565b60208082526021908201527f4d616b65207375726520746f2061646420656e6f75676820616c6c6f77616e636040820152606560f81b606082015260800190565b60008261399d57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526016908201527514185e5b595b9d081dd85b1b195d081b9bdd081cd95d60521b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000825160005b81811015613a1757602081860181015185830152016139fd565b81811115613a26576000828501525b509190910192915050565b602080825260149082015273151bdad95b881c185e5b595b9d0819985a5b195960621b604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220c7084072b5d9310c87e4e08f6ff87877274cc2e655286d6a01198a7872e33f5d64736f6c63430008090033