0 txs
1 call
constructor
No constructor.
functions
allowRefund
viewfunction allowRefund() view returns (bool)
allTiers
viewfunction allTiers(uint256) view returns (uint256 blpAmount, uint256 ticketSize, uint256 allocation, uint256 feePercent, uint256 purchasedTokens)
customRaises
viewfunction customRaises(address) view returns (uint256)
customTiers
viewfunction customTiers(address) view returns (uint256)
dealCreator
viewfunction dealCreator() view returns (address)
dealVesting
viewfunction dealVesting() view returns (address)
decimals
viewfunction decimals() view returns (uint256)
distributedTokens
viewfunction distributedTokens() view returns (uint256)
finishTimestamp
viewfunction finishTimestamp() view returns (uint256)
getCustomTierIndex
viewfunction getCustomTierIndex(address _user) view returns (bool success, uint256 tierIndex)
getTiersLength
viewfunction getTiersLength() view returns (uint256)
getTokenAmount
viewfunction getTokenAmount(uint256 _paymentAmount) view returns (uint256)
isAdmin
viewfunction isAdmin(address) view returns (bool)
locker
viewfunction locker() view returns (address)
maxDistributedTokenAmount
viewfunction maxDistributedTokenAmount() view returns (uint256)
minimumRaise
viewfunction minimumRaise() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
paymentToken
viewfunction paymentToken() view returns (address)
rewardToken
viewfunction rewardToken() view returns (address)
specialTiersFeePercent
viewfunction specialTiersFeePercent() view returns (uint256)
startClaimTimestamp
viewfunction startClaimTimestamp() view returns (uint256)
startTimestamp
viewfunction startTimestamp() view returns (uint256)
tokenPrice
viewfunction tokenPrice() view returns (uint256)
tokensForDistribution
viewfunction tokensForDistribution() view returns (uint256)
totalRaise
viewfunction totalRaise() view returns (uint256)
userInfo
viewfunction userInfo(address) view returns (uint256 debt, uint256 total, uint256 totalPayment)
verifier
viewfunction verifier() view returns (address)
version
purefunction version() pure returns (uint256)
vestingCreator
viewfunction vestingCreator() view returns (address)
vestingPercent
viewfunction vestingPercent() view returns (uint256)
__Deal_init
nonpayablefunction __Deal_init(address _verifier, address _locker, address _vestingCreator, tuple _dealInit, uint256 _decimalsRewardToken, address _dealCreator)
__DealBase_init
nonpayablefunction __DealBase_init(address _verifier, address _locker, address _paymentToken, uint256 _tokenPrice, uint256 _startTimestamp, uint256 _finishTimestamp, uint256 _startClaimTimestamp, uint256 _minimumRaise, uint256 _maxDistributedTokenAmount, bool _allowRefund, address _dealCreator)
addCustomAllocations
nonpayablefunction addCustomAllocations(address[] _users, uint256[] _tiers, uint256[] _raises)
addCustomTiers
nonpayablefunction addCustomTiers(address[] _users, uint256[] _tiers)
addTier
nonpayablefunction addTier(uint256 _blpAmount, uint256 _ticketSize, uint256 _allocation, uint256 _feePercent)
claim
nonpayablefunction claim()
claimFor
nonpayablefunction claimFor(address[] _addresses)
createVestingContract
nonpayablefunction createVestingContract(uint256 _percent, uint256 _start, uint256 _interval, uint256 _duration)
pause
nonpayablefunction pause()
pay
payablefunction pay(uint256 _amount, bytes _signature) payable
refund
nonpayablefunction refund()
removeCustomAllocations
nonpayablefunction removeCustomAllocations(address[] _users)
removeCustomTiers
nonpayablefunction removeCustomTiers(address[] _users)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdminPermission
nonpayablefunction setAdminPermission(address _user, bool _permission)
setRewardToken
nonpayablefunction setRewardToken(address _rewardToken, bool _checkDecimals)
setRewardToken
nonpayablefunction setRewardToken(address _rewardToken)
setSpecialTiersFeePercent
nonpayablefunction setSpecialTiersFeePercent(uint256 _specialTiersFeePercent)
setTime
nonpayablefunction setTime(uint256 _startTimestamp, uint256 _finishTimestamp, uint256 _startClaimTimestamp)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateMaxDistributedTokenAmount
nonpayablefunction updateMaxDistributedTokenAmount(uint256 _amount)
updateTier
nonpayablefunction updateTier(uint256 _index, uint256 _blpAmount, uint256 _ticketSize, uint256 _allocation, uint256 _feePercent)
updateVestingPercent
nonpayablefunction updateVestingPercent(uint256 _percent)
withdrawFunds
nonpayablefunction withdrawFunds()
withdrawNotSoldTokens
nonpayablefunction withdrawNotSoldTokens(bool _emergency)
events
EmergencyWithdrawn
event EmergencyWithdrawn(uint256 amount)
FundsWithdrawn
event FundsWithdrawn(uint256 amount)
MaxDistributedTokenAmountUpdated
event MaxDistributedTokenAmountUpdated(uint256 amount)
NotSoldWithdrawn
event NotSoldWithdrawn(uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Refund
event Refund(address indexed holder, uint256 amount)
SetAdminPermission
event SetAdminPermission(address indexed admin, bool permission)
SetRewardToken
event SetRewardToken(address indexed rewardToken)
TimeUpdated
event TimeUpdated(uint256 startTimestamp, uint256 finishTimestamp, uint256 startClaimTimestamp)
TokensDebt
event TokensDebt(address indexed holder, uint256 payAmount, uint256 tokenAmount)
TokensWithdrawn
event TokensWithdrawn(address indexed holder, uint256 amount)
Unpaused
event Unpaused(address account)
VestingPercentUpdated
event VestingPercentUpdated(uint256 vestingPercent)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50614281806100206000396000f3fe6080604052600436106103755760003560e01c80637f6486a8116101d1578063d1e5587e11610102578063f1531f32116100a0578063fb66fb4d1161006f578063fb66fb4d1461092e578063fcc1cef61461094e578063ff35658f1461096e578063ffb2d35d1461098e57610375565b8063f1531f32146108c4578063f2fde38b146108d9578063f7c618c1146108f9578063fa218e4c1461090e57610375565b8063e0ee43a2116100dc578063e0ee43a214610865578063e4cc55611461087a578063e6fd48bc1461088f578063eeb44c25146108a457610375565b8063d1e5587e1461080a578063d60f8f3f1461081f578063d7b96d4e1461085057610375565b806397588d931161016f578063b2efafad11610149578063b2efafad1461078a578063b38aab9d146107aa578063b72091c7146107ca578063c2507ac1146107ea57610375565b806397588d93146107355780639a017e7c146107555780639c3d362e1461076a57610375565b8063878cead1116101ab578063878cead1146106cb5780638aee8127146106eb5780638da5cb5b1461070b5780638e75b1311461072057610375565b80637f6486a8146106815780637ff9b596146106a15780638456cb59146106b657610375565b80633f4ba83a116102ab57806354fd4d50116102495780635c975abb116102235780635c975abb14610622578063715018a61461063757806375f3974b1461064c5780637b94c18e1461066c57610375565b806354fd4d50146105e3578063586360ce146105f8578063590e1ae31461060d57610375565b806343d7d3211161028557806343d7d321146105845780634b1a4c0c146105995780634e71d92d146105ae578063529a855b146105c357610375565b80633f4ba83a146105215780633fea362d14610536578063419c8e651461055657610375565b80633013ce29116103185780633463d0ab116102f25780633463d0ab146104c45780633996dc8f146104e45780633aeb6c71146104f95780633edd10c51461050e57610375565b80633013ce291461046d578063313ce567146104825780633400ec3a146104a457610375565b806324600fc31161035457806324600fc3146103f657806324d7806c1461040b578063258a4628146104385780632b7ac3f31461045857610375565b80627f041a1461037a5780631959a0021461039c5780632020db47146103d4575b600080fd5b34801561038657600080fd5b5061039a61039536600461345b565b6109a3565b005b3480156103a857600080fd5b506103bc6103b7366004613357565b610ac5565b6040516103cb9392919061417c565b60405180910390f35b3480156103e057600080fd5b506103e9610ae6565b6040516103cb91906138e9565b34801561040257600080fd5b5061039a610af5565b34801561041757600080fd5b5061042b610426366004613357565b610cdf565b6040516103cb919061398d565b34801561044457600080fd5b5061039a6104533660046134df565b610cf4565b34801561046457600080fd5b506103e9610ff1565b34801561047957600080fd5b506103e9611000565b34801561048e57600080fd5b5061049761100f565b6040516103cb9190614165565b3480156104b057600080fd5b5061039a6104bf366004613603565b611015565b3480156104d057600080fd5b5061039a6104df3660046133fa565b6111bb565b3480156104f057600080fd5b50610497611287565b34801561050557600080fd5b5061049761128d565b61039a61051c36600461372e565b611293565b34801561052d57600080fd5b5061039a611710565b34801561054257600080fd5b5061039a610551366004613556565b611763565b34801561056257600080fd5b50610576610571366004613357565b61189b565b6040516103cb929190613998565b34801561059057600080fd5b506104976118d8565b3480156105a557600080fd5b506104976118de565b3480156105ba57600080fd5b5061039a6118e4565b3480156105cf57600080fd5b5061039a6105de3660046136fe565b611912565b3480156105ef57600080fd5b50610497611960565b34801561060457600080fd5b50610497611965565b34801561061957600080fd5b5061039a61196b565b34801561062e57600080fd5b5061042b611ade565b34801561064357600080fd5b5061039a611ae7565b34801561065857600080fd5b5061039a61066736600461338f565b611b70565b34801561067857600080fd5b50610497611c0f565b34801561068d57600080fd5b5061039a61069c3660046137c3565b611c15565b3480156106ad57600080fd5b50610497611ca9565b3480156106c257600080fd5b5061039a611caf565b3480156106d757600080fd5b5061039a6106e63660046133c7565b611d00565b3480156106f757600080fd5b5061039a610706366004613357565b611d9f565b34801561071757600080fd5b506103e9611dad565b34801561072c57600080fd5b50610497611dbc565b34801561074157600080fd5b5061039a6107503660046137ee565b611dc2565b34801561076157600080fd5b506103e9611edb565b34801561077657600080fd5b5061039a6107853660046137ee565b611eea565b34801561079657600080fd5b5061039a6107a53660046136fe565b612034565b3480156107b657600080fd5b5061039a6107c53660046133c7565b61217c565b3480156107d657600080fd5b506104976107e5366004613357565b6121d1565b3480156107f657600080fd5b506104976108053660046136fe565b6121e3565b34801561081657600080fd5b50610497612209565b34801561082b57600080fd5b5061083f61083a3660046136fe565b61220f565b6040516103cb959493929190614192565b34801561085c57600080fd5b506103e961224d565b34801561087157600080fd5b5061049761225c565b34801561088657600080fd5b506103e9612262565b34801561089b57600080fd5b50610497612271565b3480156108b057600080fd5b506104976108bf366004613357565b612277565b3480156108d057600080fd5b50610497612289565b3480156108e557600080fd5b5061039a6108f4366004613357565b61228f565b34801561090557600080fd5b506103e9612350565b34801561091a57600080fd5b5061039a6109293660046133c7565b61235f565b34801561093a57600080fd5b5061039a610949366004613544565b6123ef565b34801561095a57600080fd5b5061039a6109693660046136fe565b61261f565b34801561097a57600080fd5b5061039a61098936600461381f565b612699565b34801561099a57600080fd5b5061042b61274c565b336109ac611dad565b6001600160a01b031614806109d057503360009081526065602052604090205460ff165b6109f55760405162461bcd60e51b81526004016109ec90613e35565b60405180910390fd5b82518251148015610a07575082518151145b610a235760405162461bcd60e51b81526004016109ec90613e09565b60005b8351811015610abf576000848281518110610a3d57fe5b602002602001015190506000610a706001868581518110610a5a57fe5b602002602001015161275590919063ffffffff16565b90506000848481518110610a8057fe5b6020908102919091018101516001600160a01b03909416600090815260da825260408082209490945560db909152919091209190915550600101610a26565b50505050565b60d96020526000908152604090208054600182015460029092015490919083565b60dd546001600160a01b031681565b610afd612781565b6001600160a01b0316610b0e611dad565b6001600160a01b031614610b345760405162461bcd60e51b81526004016109ec90613eff565b60026098541415610b575760405162461bcd60e51b81526004016109ec9061412e565b600260985560d254421015610b7e5760405162461bcd60e51b81526004016109ec90613ba5565b60d85460ff161580610ba1575060d85460ff168015610ba1575060d65460d45410155b610bbd5760405162461bcd60e51b81526004016109ec90613f34565b60ce546000906001600160a01b0316610c0657506040514790339082156108fc029083906000818181858888f19350505050158015610c00573d6000803e3d6000fd5b50610ca0565b60ce546040516370a0823160e01b81526001600160a01b03909116906370a0823190610c369030906004016138e9565b60206040518083038186803b158015610c4e57600080fd5b505afa158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c869190613716565b60ce54909150610ca0906001600160a01b03163383612785565b7f4a37b25aab49761ecf63117fe82b98d750917451133cf797507bc9fb5b96044a81604051610ccf9190614165565b60405180910390a1506001609855565b60656020526000908152604090205460ff1681565b610cfc612781565b6001600160a01b0316610d0d611dad565b6001600160a01b031614610d335760405162461bcd60e51b81526004016109ec90613eff565b60026098541415610d565760405162461bcd60e51b81526004016109ec9061412e565b60026098558015610e395760df546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610d929030906004016138e9565b60206040518083038186803b158015610daa57600080fd5b505afa158015610dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de29190613716565b60df54909150610dfc906001600160a01b03163383612785565b7ff639e28400db464cf64a55c42636df1b181f180f2ad8519cbcec893760e6e6b781604051610e2b9190614165565b60405180910390a150610fe9565b60d1544211610e5a5760405162461bcd60e51b81526004016109ec90613b17565b60d55460d75460df546040516370a0823160e01b8152600093610ef9939092610ef3926001600160a01b03909116906370a0823190610e9d9030906004016138e9565b60206040518083038186803b158015610eb557600080fd5b505afa158015610ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eed9190613716565b90612755565b906127db565b60d85490915060ff168015610f11575060d65460d454105b15610f995760df546040516370a0823160e01b81526001600160a01b03909116906370a0823190610f469030906004016138e9565b60206040518083038186803b158015610f5e57600080fd5b505afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f969190613716565b90505b60df54610fb0906001600160a01b03163383612785565b7fbce7c33bc3bf1bb5e55b3b1db71bb682916756e28abd95200251299059cf0fed81604051610fdf9190614165565b60405180910390a1505b506001609855565b60cb546001600160a01b031681565b60ce546001600160a01b031681565b60e05481565b600054610100900460ff168061102e575061102e612803565b8061103c575060005460ff16155b6110585760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff16158015611083576000805460ff1961ff0019909116610100171660011790555b60248311156110a45760405162461bcd60e51b81526004016109ec90613fbc565b6110d8878786600001518760200151886060015189608001518a60a001518b60c001518c60e001518d61010001518c611763565b60dd80546001600160a01b0319166001600160a01b038781169190911790915560e0849055604085015116156111a05760408481015160df80546001600160a01b0319166001600160a01b039092169182179055815163313ce56760e01b81529151909163313ce567916004808301926020929190829003018186803b15801561116157600080fd5b505afa158015611175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111999190613859565b60ff1660e0555b80156111b2576000805461ff00191690555b50505050505050565b336111c4611dad565b6001600160a01b031614806111e857503360009081526065602052604090205460ff165b6112045760405162461bcd60e51b81526004016109ec90613e35565b80518251146112255760405162461bcd60e51b81526004016109ec90613e09565b60005b825181101561128257600083828151811061123f57fe5b60200260200101519050600061125c6001858581518110610a5a57fe5b6001600160a01b03909216600090815260da602052604090209190915550600101611228565b505050565b60d45481565b60e15481565b600260985414156112b65760405162461bcd60e51b81526004016109ec9061412e565b600260985560d15442106112dc5760405162461bcd60e51b81526004016109ec90613d0f565b6112e4611ade565b156113015760405162461bcd60e51b81526004016109ec90613d5a565b600033306040516020016113169291906138a6565b60408051601f1981840301815290829052805160209091012060cb546312c572c160e11b83529092506001600160a01b03169063258ae5829061135f90849086906004016139a8565b60206040518083038186803b15801561137757600080fd5b505afa15801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113af91906134fb565b6113cb5760405162461bcd60e51b81526004016109ec90613ce4565b60ce546001600160a01b03166113ff573483146113fa5760405162461bcd60e51b81526004016109ec906140ff565b611417565b60ce54611417906001600160a01b0316333086612814565b60cc54604051637a570bf360e01b815260009182916001600160a01b0390911690637a570bf39061144e90339030906004016138fd565b604080518083038186803b15801561146557600080fd5b505afa158015611479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149d9190613517565b91509150816114ad5760006114af565b805b9050600060ca82815481106114c057fe5b6000918252602080832033845260db909152604083205460059092020192506114ea906064612755565b90506000611510606461150a84866001015461283590919063ffffffff16565b9061286f565b9050808811156115325760405162461bcd60e51b81526004016109ec90613d84565b60cc5460405163f3ea2c5d60e01b81526001600160a01b039091169063f3ea2c5d906115649033908890600401613917565b600060405180830381600087803b15801561157e57600080fd5b505af1158015611592573d6000803e3d6000fd5b5050505060006115a1896121e3565b60d5549091506115b19082612755565b60d581905560d35410156115d75760405162461bcd60e51b81526004016109ec90613edb565b60048401546115e69082612755565b600485015560d4546115f8908a612755565b60d45533600090815260d9602052604090206002810154611619908b612755565b6002820181905583101561163f5760405162461bcd60e51b81526004016109ec90613a40565b60cc546040516352a8aa1f60e01b81526001600160a01b03909116906352a8aa1f9061166f9033906004016138e9565b600060405180830381600087803b15801561168957600080fd5b505af115801561169d573d6000803e3d6000fd5b50505060018201546116b0915083612755565b600182015580546116c19083612755565b815560405133907fb55d4ca2fc644ca3f8cdc9c907826e24acd68d2b2d4d73f48b8f2378dbaedf5d906116f7908d90869061416e565b60405180910390a2505060016098555050505050505050565b33611719611dad565b6001600160a01b0316148061173d57503360009081526065602052604090205460ff165b6117595760405162461bcd60e51b81526004016109ec90613e35565b6117616128a1565b565b600054610100900460ff168061177c575061177c612803565b8061178a575060005460ff16155b6117a65760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff161580156117d1576000805460ff1961ff0019909116610100171660011790555b600089116117f15760405162461bcd60e51b81526004016109ec906139d4565b6117f961290f565b611801612999565b611809612a17565b60cc80546001600160a01b038085166001600160a01b03199283161790925560cb80548f841690831617905560cd80548e841690831617905560ce8054928d169290911691909117905560cf899055611863888888612a8d565b60d685905560d384905560d8805460ff1916841515179055801561188d576000805461ff00191690555b505050505050505050505050565b6001600160a01b038116600090815260da60205260408120548015159190826118c55760006118d0565b6118d08160016127db565b915050915091565b60d15481565b60d55481565b6118ec611ade565b156119095760405162461bcd60e51b81526004016109ec90613d5a565b61176133612abb565b3361191b611dad565b6001600160a01b0316148061193f57503360009081526065602052604090205460ff165b61195b5760405162461bcd60e51b81526004016109ec90613e35565b60dc55565b606a90565b60d75481565b611973611ade565b156119905760405162461bcd60e51b81526004016109ec90613d5a565b600260985414156119b35760405162461bcd60e51b81526004016109ec9061412e565b600260985560d2544210156119da5760405162461bcd60e51b81526004016109ec90613d2e565b60d85460ff1680156119ef575060d65460d454105b80611a03575060df546001600160a01b0316155b611a1f5760405162461bcd60e51b81526004016109ec90613bd0565b33600090815260d96020526040812060028101805492905560ce549091906001600160a01b0316611a7d57604051339082156108fc029083906000818181858888f19350505050158015611a77573d6000803e3d6000fd5b50611a94565b60ce54611a94906001600160a01b03163383612785565b336001600160a01b03167f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b82604051611acd9190614165565b60405180910390a250506001609855565b60665460ff1690565b611aef612781565b6001600160a01b0316611b00611dad565b6001600160a01b031614611b265760405162461bcd60e51b81526004016109ec90613eff565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b611b78612781565b6001600160a01b0316611b89611dad565b6001600160a01b031614611baf5760405162461bcd60e51b81526004016109ec90613eff565b6001600160a01b03821660008181526065602052604090819020805460ff1916841515179055517f0e7bea53cb2b3130dd1aac8d56b61cc8da7ebab0432e2d1622513523d848f2e790611c0390849061398d565b60405180910390a25050565b60ca5490565b33611c1e611dad565b6001600160a01b03161480611c4257503360009081526065602052604090205460ff165b611c5e5760405162461bcd60e51b81526004016109ec90613e35565b611c69838383612a8d565b7f7947ff7ad34168df17a1910afc9a795d2dd9270b96fa7aa00227c0e65cb34673838383604051611c9c9392919061417c565b60405180910390a1505050565b60cf5481565b33611cb8611dad565b6001600160a01b03161480611cdc57503360009081526065602052604090205460ff165b611cf85760405162461bcd60e51b81526004016109ec90613e35565b611761612c9a565b33611d09611dad565b6001600160a01b03161480611d2d57503360009081526065602052604090205460ff165b611d495760405162461bcd60e51b81526004016109ec90613e35565b60005b8151811015611d9b576000828281518110611d6357fe5b6020908102919091018101516001600160a01b0316600090815260da8252604080822082905560db9092529081205550600101611d4c565b5050565b611daa8160016123ef565b50565b6033546001600160a01b031690565b60d65481565b33611dcb611dad565b6001600160a01b03161480611def57503360009081526065602052604090205460ff165b611e0b5760405162461bcd60e51b81526004016109ec90613e35565b611e1484612cf5565b60dd546001600160a01b031663de32290830611e2e611dad565b60df546040516001600160e01b031960e086901b168152611e639392916001600160a01b031690899089908990600401613930565b602060405180830381600087803b158015611e7d57600080fd5b505af1158015611e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb59190613373565b60de80546001600160a01b0319166001600160a01b039290921691909117905550505050565b60cc546001600160a01b031681565b33611ef3611dad565b6001600160a01b03161480611f1757503360009081526065602052604090205460ff165b611f335760405162461bcd60e51b81526004016109ec90613e35565b6040805160a081018252858152602081018581529181018481526060820184815260006080840181815260ca8054600181018255925293517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160059092029182015593517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee285015590517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee3840155517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee4830155517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee590910155610abf612d6c565b3361203d611dad565b6001600160a01b0316148061206157503360009081526065602052604090205460ff165b61207d5760405162461bcd60e51b81526004016109ec90613e35565b60d154421061209e5760405162461bcd60e51b81526004016109ec90613d0f565b60d5548110156120c05760405162461bcd60e51b81526004016109ec90613f85565b60df546001600160a01b03161561213c5760d75460df546040516370a0823160e01b815260009261210d9290916001600160a01b03909116906370a0823190610e9d9030906004016138e9565b90508181101561213a5761213a333061212685856127db565b60df546001600160a01b0316929190612814565b505b60d38190556040517f4fce623c62cfa30a624de8651f6c7f10509a50fae8c019496e5bb139360a34e790612171908390614165565b60405180910390a150565b612184611ade565b156121a15760405162461bcd60e51b81526004016109ec90613d5a565b60005b8151811015611d9b576121c98282815181106121bc57fe5b6020026020010151612abb565b6001016121a4565b60db6020526000908152604090205481565b600061220360cf5461150a60e054600a0a8561283590919063ffffffff16565b92915050565b60d25481565b60ca818154811061221c57fe5b6000918252602090912060059091020180546001820154600283015460038401546004909401549294509092909185565b60cd546001600160a01b031681565b60d35481565b60de546001600160a01b031681565b60d05481565b60da6020526000908152604090205481565b60dc5481565b612297612781565b6001600160a01b03166122a8611dad565b6001600160a01b0316146122ce5760405162461bcd60e51b81526004016109ec90613eff565b6001600160a01b0381166122f45760405162461bcd60e51b81526004016109ec90613a9a565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b60df546001600160a01b031681565b33612368611dad565b6001600160a01b0316148061238c57503360009081526065602052604090205460ff165b6123a85760405162461bcd60e51b81526004016109ec90613e35565b60005b8151811015611d9b5760008282815181106123c257fe5b6020908102919091018101516001600160a01b0316600090815260da9091526040812055506001016123ab565b336123f8611dad565b6001600160a01b0316148061241c57503360009081526065602052604090205460ff165b6124385760405162461bcd60e51b81526004016109ec90613e35565b60df546001600160a01b0316156124615760405162461bcd60e51b81526004016109ec90613ae0565b60d25442106124825760405162461bcd60e51b81526004016109ec9061401f565b801561251c57816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156124c157600080fd5b505afa1580156124d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f99190613859565b60ff1660e0541461251c5760405162461bcd60e51b81526004016109ec90614056565b6040516370a0823160e01b81526000906001600160a01b038416906370a082319061254b9030906004016138e9565b60206040518083038186803b15801561256357600080fd5b505afa158015612577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259b9190613716565b905060d3548110156125d3576125d333306125c18460d3546127db90919063ffffffff16565b6001600160a01b038716929190612814565b60df80546001600160a01b0319166001600160a01b0385169081179091556040517f6f8c206ce9f10423f2b99164314c3e6e47f872d0d56a1c072c5e5bb4a9b9cd3690600090a2505050565b33612628611dad565b6001600160a01b0316148061264c57503360009081526065602052604090205460ff165b6126685760405162461bcd60e51b81526004016109ec90613e35565b60de546001600160a01b03166126905760405162461bcd60e51b81526004016109ec90613ead565b611daa81612cf5565b336126a2611dad565b6001600160a01b031614806126c657503360009081526065602052604090205460ff165b6126e25760405162461bcd60e51b81526004016109ec90613e35565b60ca5485106127035760405162461bcd60e51b81526004016109ec90613f5c565b600060ca868154811061271257fe5b600091825260209091206005909102018581556001810185905560028101849055600381018390559050612744612d6c565b505050505050565b60d85460ff1681565b60008282018381101561277a5760405162461bcd60e51b81526004016109ec90613b4e565b9392505050565b3390565b6112828363a9059cbb60e01b84846040516024016127a4929190613917565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612dda565b6000828211156127fd5760405162461bcd60e51b81526004016109ec90613bf9565b50900390565b600061280e30612e69565b15905090565b610abf846323b872dd60e01b8585856040516024016127a493929190613969565b60008261284457506000612203565b8282028284828161285157fe5b041461277a5760405162461bcd60e51b81526004016109ec90613e6c565b60008082116128905760405162461bcd60e51b81526004016109ec90613cad565b81838161289957fe5b049392505050565b6128a9611ade565b6128c55760405162461bcd60e51b81526004016109ec90613a6c565b6066805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6128f8612781565b60405161290591906138e9565b60405180910390a1565b600054610100900460ff16806129285750612928612803565b80612936575060005460ff16155b6129525760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff1615801561297d576000805460ff1961ff0019909116610100171660011790555b612985612e6f565b8015611daa576000805461ff001916905550565b600054610100900460ff16806129b257506129b2612803565b806129c0575060005460ff16155b6129dc5760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff16158015612a07576000805460ff1961ff0019909116610100171660011790555b612a0f612eed565b612985612f6e565b600054610100900460ff1680612a305750612a30612803565b80612a3e575060005460ff16155b612a5a5760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff16158015612a85576000805460ff1961ff0019909116610100171660011790555b612985612ffa565b81811015612aad5760405162461bcd60e51b81526004016109ec90613c76565b60d09290925560d15560d255565b60026098541415612ade5760405162461bcd60e51b81526004016109ec9061412e565b600260985560d254421015612b055760405162461bcd60e51b81526004016109ec90613ba5565b60d85460ff161580612b28575060d85460ff168015612b28575060d65460d45410155b612b445760405162461bcd60e51b81526004016109ec90613f34565b6001600160a01b038116600090815260d96020526040902080548015612c90576000825560d754612b759082612755565b60d75560e15415612c37576000612b9c606461150a60e1548561283590919063ffffffff16565b60de5460df54919250612bbc916001600160a01b03908116911683612785565b60de54604051636c3b0c5360e01b81526001600160a01b0390911690636c3b0c5390612bee9087908590600401613917565b600060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b50505050612c3381836127db90919063ffffffff16565b9150505b60df54612c4e906001600160a01b03168483612785565b826001600160a01b03167f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b82604051612c879190614165565b60405180910390a25b5050600160985550565b612ca2611ade565b15612cbf5760405162461bcd60e51b81526004016109ec90613d5a565b6066805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586128f8612781565b60d2544210612d165760405162461bcd60e51b81526004016109ec90613a15565b6064811115612d375760405162461bcd60e51b81526004016109ec906140d7565b60e18190556040517ffc3e01b89b24d1173ef422092ae7f9818b6199a911e4fbba9702ac316b0d4fa790612171908390614165565b60ca54600090815b81811015612db757612dad60ca8281548110612d8c57fe5b9060005260206000209060050201600201548461275590919063ffffffff16565b9250600101612d74565b5060d354821115611d9b5760405162461bcd60e51b81526004016109ec90613b85565b6060612e2f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166130819092919063ffffffff16565b8051909150156112825780806020019051810190612e4d91906134fb565b6112825760405162461bcd60e51b81526004016109ec9061408d565b3b151590565b600054610100900460ff1680612e885750612e88612803565b80612e96575060005460ff16155b612eb25760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff16158015612edd576000805460ff1961ff0019909116610100171660011790555b612ee5612eed565b612985613098565b600054610100900460ff1680612f065750612f06612803565b80612f14575060005460ff16155b612f305760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff16158015612985576000805460ff1961ff0019909116610100171660011790558015611daa576000805461ff001916905550565b600054610100900460ff1680612f875750612f87612803565b80612f95575060005460ff16155b612fb15760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff16158015612fdc576000805460ff1961ff0019909116610100171660011790555b6066805460ff191690558015611daa576000805461ff001916905550565b600054610100900460ff16806130135750613013612803565b80613021575060005460ff16155b61303d5760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff16158015613068576000805460ff1961ff0019909116610100171660011790555b60016098558015611daa576000805461ff001916905550565b60606130908484600085613172565b949350505050565b600054610100900460ff16806130b157506130b1612803565b806130bf575060005460ff16155b6130db5760405162461bcd60e51b81526004016109ec90613dbb565b600054610100900460ff16158015613106576000805460ff1961ff0019909116610100171660011790555b6000613110612781565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015611daa576000805461ff001916905550565b6060824710156131945760405162461bcd60e51b81526004016109ec90613c30565b61319d85612e69565b6131b95760405162461bcd60e51b81526004016109ec90613fe8565b60006060866001600160a01b031685876040516131d691906138cd565b60006040518083038185875af1925050503d8060008114613213576040519150601f19603f3d011682016040523d82523d6000602084013e613218565b606091505b5091509150613228828286613233565b979650505050505050565b6060831561324257508161277a565b8251156132525782518084602001fd5b8160405162461bcd60e51b81526004016109ec91906139c1565b803561220381614228565b600082601f830112613287578081fd5b813561329a613295826141dc565b6141b5565b8181529150602080830190848101818402860182018710156132bb57600080fd5b60005b848110156132e35781356132d181614228565b845292820192908201906001016132be565b505050505092915050565b600082601f8301126132fe578081fd5b813561330c613295826141dc565b81815291506020808301908481018184028601820187101561332d57600080fd5b60005b848110156132e357813584529282019290820190600101613330565b80356122038161423d565b600060208284031215613368578081fd5b813561277a81614228565b600060208284031215613384578081fd5b815161277a81614228565b600080604083850312156133a1578081fd5b82356133ac81614228565b915060208301356133bc8161423d565b809150509250929050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff8111156133ee578182fd5b61309084828501613277565b6000806040838503121561340c578182fd5b823567ffffffffffffffff80821115613423578384fd5b61342f86838701613277565b93506020850135915080821115613444578283fd5b50613451858286016132ee565b9150509250929050565b60008060006060848603121561346f578081fd5b833567ffffffffffffffff80821115613486578283fd5b61349287838801613277565b945060208601359150808211156134a7578283fd5b6134b3878388016132ee565b935060408601359150808211156134c8578283fd5b506134d5868287016132ee565b9150509250925092565b6000602082840312156134f0578081fd5b813561277a8161423d565b60006020828403121561350c578081fd5b815161277a8161423d565b60008060408385031215613529578182fd5b82516135348161423d565b6020939093015192949293505050565b600080604083850312156133a1578182fd5b60008060008060008060008060008060006101608c8e031215613577578889fd5b8b3561358281614228565b9a5060208c013561359281614228565b995060408c01356135a281614228565b985060608c0135975060808c0135965060a08c0135955060c08c0135945060e08c013593506101008c013592506101208c01356135de8161423d565b91506101408c01356135ef81614228565b809150509295989b509295989b9093969950565b6000806000806000808688036101c081121561361d578485fd5b873561362881614228565b9650602088013561363881614228565b9550604088013561364881614228565b9450610120605f19820181131561365d578384fd5b613666816141b5565b91506136758a60608b0161326c565b82526080890135602083015261368e8a60a08b0161326c565b604083015260c0890135606083015260e08901356080830152610100808a013560a0840152818a013560c08401526101408a013560e08401526136d58b6101608c0161334c565b9083015250925061018087013591506136f2886101a0890161326c565b90509295509295509295565b60006020828403121561370f578081fd5b5035919050565b600060208284031215613727578081fd5b5051919050565b60008060408385031215613740578182fd5b8235915060208084013567ffffffffffffffff8082111561375f578384fd5b818601915086601f830112613772578384fd5b813581811115613780578485fd5b613792601f8201601f191685016141b5565b915080825287848285010111156137a7578485fd5b8084840185840137810190920192909252919491935090915050565b6000806000606084860312156137d7578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215613803578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600060a08688031215613836578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561386a578081fd5b815160ff8116811461277a578182fd5b600081518084526138928160208601602086016141fc565b601f01601f19169290920160200192915050565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b600082516138df8184602087016141fc565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526060830152608082019290925260a081019190915260c00190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b9115158252602082015260400190565b600083825260406020830152613090604083018461387a565b60006020825261277a602083018461387a565b60208082526021908201527f4465616c426173653a20746f6b656e2070726963652063616e6e6f74206265206040820152600360fc1b606082015260800190565b60208082526011908201527010db185a5b481dd85cc81cdd185c9d1959607a1b604082015260600190565b602080825260129082015271457863656564207469636b65742073697a6560701b604082015260600190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526019908201527f52657761726420746f6b656e20686173206265656e2073657400000000000000604082015260600190565b60208082526017908201527f416c6c6f772061667465722066696e6973682074696d65000000000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260069082015265115e18d9595960d21b604082015260600190565b60208082526011908201527010db185a5b481b9bdd081cdd185c9d1959607a1b604082015260600190565b6020808252600f908201526e1499599d5b9908191a5cd8589b1959608a1b604082015260600190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252601e908201527f436c61696d206d757374206265206d6f7265207468616e2066696e6973680000604082015260600190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b602080825260119082015270494e56414c49445f5349474e415455524560781b604082015260600190565b602080825260059082015264115b99195960da1b604082015260600190565b6020808252601290820152711499599d5b99081b9bdd081cdd185c9d195960721b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526017908201527f4e6f7420636f7272656374207469636b65742073697a65000000000000000000604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b602080825260129082015271082e4ceeadacadce8e640dad2e6dac2e8c6d60731b604082015260600190565b6020808252601c908201527f4f6e6c79206f776e6572206f722061646d696e2063616e2063616c6c00000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526014908201527310dbdb9d1c9858dd081b9bdd0818dc99585d195960621b604082015260600190565b6020808252600a908201526913dd995c999a5b1b195960b21b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600e908201526d10db185a5b48191a5cd8589b195960921b604082015260600190565b6020808252600f908201526e092dcc6dee4e4cac6e840d2dcc8caf608b1b604082015260600190565b6020808252601e908201527f416d6f756e74203c20746f6b656e73466f72446973747269627574696f6e0000604082015260600190565b602080825260129082015271496e636f727265637420646563696d616c7360701b604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252601c908201527f436c61696d20706572696f6420616c7265616479207374617274656400000000604082015260600190565b6020808252601a908201527f556e737570706f7274656420746f6b656e20646563696d616c73000000000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252600e908201526d050657263656e74203c3d203130360941b604082015260600190565b6020808252601590820152740e6cadcc87440c2dadeeadce840dad2e6dac2e8c6d605b1b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b948552602085019390935260408401919091526060830152608082015260a00190565b60405181810167ffffffffffffffff811182821017156141d457600080fd5b604052919050565b600067ffffffffffffffff8211156141f2578081fd5b5060209081020190565b60005b838110156142175781810151838201526020016141ff565b83811115610abf5750506000910152565b6001600160a01b0381168114611daa57600080fd5b8015158114611daa57600080fdfea2646970667358221220f3026a5d5aad2bf5a7c8851faf4481763ccb4a2f288d91efbd06f1e4b5e567f664736f6c634300060c0033