0 txs
0 calls
constructor
No constructor.
functions
auction
viewfunction auction() view returns (address)
biswapNFT
viewfunction biswapNFT() view returns (address)
bswToken
viewfunction bswToken() view returns (address)
calcSwap
viewfunction calcSwap(address account, uint256 feeDistr, address input, address output, uint256 amountOut) view returns (tuple swapData)
cashbackPercent
viewfunction cashbackPercent(uint256) view returns (uint16 percent, uint128 monthlyLimit)
cashbackVolumeByMonth
viewfunction cashbackVolumeByMonth(uint256, uint256) view returns (uint256)
checkPairExist
viewfunction checkPairExist(address tokenA, address tokenB) view returns (bool)
collectiblesNFT
viewfunction collectiblesNFT() view returns (address)
currentPhase
viewfunction currentPhase() view returns (uint256)
currentPhaseRB
viewfunction currentPhaseRB() view returns (uint256)
defaultFeeDistribution
viewfunction defaultFeeDistribution() view returns (uint256)
factory
viewfunction factory() view returns (address)
getCurrentMonth
viewfunction getCurrentMonth() view returns (uint256 month)
getFeeDistribution
viewfunction getFeeDistribution(address account) view returns (uint256 feeDistr)
getQuantity
viewfunction getQuantity(address outputToken, uint256 outputAmount, address anchorToken) view returns (uint256)
getUserCashbackBalances
viewfunction getUserCashbackBalances(address user) view returns (uint256[] tokensId, uint256[] balances)
intermediateToken
viewfunction intermediateToken(address, address) view returns (address)
market
viewfunction market() view returns (address)
maxAccruedRBInPhase
viewfunction maxAccruedRBInPhase() view returns (uint256)
maxMiningAmount
viewfunction maxMiningAmount() view returns (uint256)
maxMiningInPhase
viewfunction maxMiningInPhase() view returns (uint256)
nonces
viewfunction nonces(address) view returns (uint256)
oldSwapFeeReward
viewfunction oldSwapFeeReward() view returns (address)
oracle
viewfunction oracle() view returns (address)
owner
viewfunction owner() view returns (address)
pairFor
purefunction pairFor(address tokenA, address tokenB) pure returns (address pair)
pairsList
viewfunction pairsList(uint256) view returns (address)
pairsListLength
viewfunction pairsListLength() view returns (uint256)
percentReward
viewfunction percentReward(address) view returns (uint256)
rbPercentAuction
viewfunction rbPercentAuction() view returns (uint256)
rbPercentMarket
viewfunction rbPercentMarket() view returns (uint256)
rbWagerOnSwap
viewfunction rbWagerOnSwap() view returns (uint256)
rewardBalance
viewfunction rewardBalance(address account) view returns (uint256)
rewardTokenBalance
viewfunction rewardTokenBalance(uint256 tokenId) view returns (uint256)
router
viewfunction router() view returns (address)
sortTokens
purefunction sortTokens(address tokenA, address tokenB) pure returns (address token0, address token1)
swapInfo
viewfunction swapInfo(address account, address[] path, uint256 amountIn) view returns (tuple _swapInfo)
targetRBToken
viewfunction targetRBToken() view returns (address)
targetToken
viewfunction targetToken() view returns (address)
totalAccruedRB
viewfunction totalAccruedRB() view returns (uint256)
totalMined
viewfunction totalMined() view returns (uint256)
tradeVolume
viewfunction tradeVolume(address, uint256) view returns (uint256)
USDT
viewfunction USDT() view returns (address)
userTradeVolume
viewfunction userTradeVolume(address user, uint256 firstDay, uint256 lastDay) view returns (uint256[] volumes)
accrueRBFromAuction
nonpayablefunction accrueRBFromAuction(address account, address fromToken, uint256 amount)
accrueRBFromMarket
nonpayablefunction accrueRBFromMarket(address account, address fromToken, uint256 amount)
delPairFromList
nonpayablefunction delPairFromList(address pair, uint256 pid)
initialize
nonpayablefunction initialize(address _router, address _bswToken, address _Oracle, address _biswapNFT, address _collectiblesNFT, address _targetToken, address _targetRBToken, tuple[] _cashbackPercent, address _market, address _auction)
renounceOwnership
nonpayablefunction renounceOwnership()
setAuction
nonpayablefunction setAuction(address _auction)
setCashbackPercent
nonpayablefunction setCashbackPercent(tuple[] newCashbackPercent)
setIntermediateToken
nonpayablefunction setIntermediateToken(tuple[] tokens)
setMarket
nonpayablefunction setMarket(address _market)
setOracle
nonpayablefunction setOracle(address _oracle)
setPairs
nonpayablefunction setPairs(uint256[] _percentReward, address[] _pair)
setPhase
nonpayablefunction setPhase(uint256 _newPhase) returns (bool)
setPhaseRB
nonpayablefunction setPhaseRB(uint256 _newPhase) returns (bool)
setRobiBoostReward
nonpayablefunction setRobiBoostReward(uint256 _rbWagerOnSwap, uint256 _percentMarket, uint256 _percentAuction)
setRouter
nonpayablefunction setRouter(address _router)
swap
nonpayablefunction swap(address account, address input, address output, uint256 amountOut) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint8 v, bytes32 r, bytes32 s) returns (bool)
withdrawCashback
nonpayablefunction withdrawCashback(uint8 v, bytes32 r, bytes32 s) returns (bool)
events
CashbackRewarded
event CashbackRewarded(uint256 tokenId, uint256 rewardAmount, uint256 currentMounth, uint256 accumulatedCashbackByMonth, uint256 balance)
Initialized
event Initialized(uint8 version)
IntermediateTokenNotAdded
event IntermediateTokenNotAdded((address output, address anchor, address intermediate))
IntermediateTokenSet
event IntermediateTokenSet((address output, address anchor, address intermediate)[])
NewAuction
event NewAuction(address)
NewBiswapNFT
event NewBiswapNFT(address)
NewCashbackPercent
event NewCashbackPercent((uint16 percent, uint128 monthlyLimit)[])
NewFactory
event NewFactory(address)
NewMarket
event NewMarket(address)
NewOracle
event NewOracle(address)
NewPhase
event NewPhase(uint256)
NewPhaseRB
event NewPhaseRB(uint256)
NewRouter
event NewRouter(address)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Rewarded
event Rewarded(address account, address input, address output, uint256 amount, uint256 quantity)
Withdraw
event Withdraw(address userAddress, uint256 amount)
WithdrawCashback
event WithdrawCashback(address user, uint256 amount, uint256[] tokensId)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b5061445a806100206000396000f3fe608060405234801561001057600080fd5b50600436106103c55760003560e01c80638d9a17ee116101ff578063c425df1a1161011a578063e1bd2db8116100ad578063f298c4441161007c578063f298c444146109a2578063f2fde38b146109b0578063f887ea40146109c3578063ff08753b146108bd57600080fd5b8063e1bd2db814610956578063e52287ea14610969578063e5fe08031461097c578063eca3a2e81461098f57600080fd5b8063cf0d8186116100e9578063cf0d818614610917578063d47870db14610920578063d5e3290314610933578063ddd1b67e1461094e57600080fd5b8063c425df1a146108bd578063c45a0155146108ce578063c54e44eb146108e9578063cdc9b9261461090457600080fd5b8063a9678a1811610192578063b9e816c711610161578063b9e816c714610864578063bfa87bed14610877578063c0d786551461088a578063c2181e711461089d57600080fd5b8063a9678a1814610822578063b10f16b614610835578063b8c6f5791461083e578063b8efd5761461085157600080fd5b806394f02b9c116101ce57806394f02b9c146107d657806396ed28f9146107e95780639b8f63c4146107fc578063a7ef67f61461080f57600080fd5b80638d9a17ee146107a05780638da5cb5b146107a95780638e190f08146107ba5780638e79c167146107c357600080fd5b8063544caa56116102ef578063715018a6116102825780637dc0d1d0116102515780637dc0d1d0146107525780637ecebe001461076557806380f55605146107855780638798df5b1461079857600080fd5b8063715018a6146106f95780637adbf973146107015780637af55afb146107145780637d9f6db51461073f57600080fd5b806362fb40f9116102be57806362fb40f91461068957806367b40cf7146106aa5780636a58f23f146106d35780636dcea85f146106e657600080fd5b8063544caa561461061a5780635556db651461064d578063608cc39b1461065657806362bdc32f1461067657600080fd5b8063327107f7116103675780634cb4a5d0116103365780634cb4a5d0146105555780634cb8984e146105c95780634d020c1f146105fe5780634e58b72e1461060757600080fd5b8063327107f7146104af5780633799f924146104c25780633a71b5b7146104d55780633bf186d01461054257600080fd5b8063199f4b37116103a3578063199f4b371461040d57806319c76dcc146104595780632cc82655146104615780632f2a95fe1461048457600080fd5b8063055ad42e146103ca5780631084f57b146103e657806313b1dc42146103fb575b600080fd5b6103d3609a5481565b6040519081526020015b60405180910390f35b6103f96103f4366004613809565b6109d6565b005b6103d36a52b7d2dcc80cd2e400000081565b61044161041b366004613835565b60a96020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020016103dd565b6103d3605a81565b61047461046f36600461386e565b610c87565b60405190151581526020016103dd565b6103d3610492366004613887565b60ab60209081526000928352604080842090915290825290205481565b60a154610441906001600160a01b031681565b6104746104d03660046138b8565b610cd3565b6104e86104e33660046138ed565b610f65565b6040516103dd9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301516001600160a01b03169082015260c0918201519181019190915260e00190565b60a354610441906001600160a01b031681565b61056861056336600461395e565b611317565b6040516103dd9190600061010082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6105dc6105d736600461386e565b6118a7565b6040805161ffff90931683526001600160801b039091166020830152016103dd565b6103d3609d5481565b61047461061536600461386e565b6118dc565b61062d610628366004613835565b61191b565b604080516001600160a01b039384168152929091166020830152016103dd565b6103d3609c5481565b610669610664366004613a40565b6119e9565b6040516103dd9190613a9b565b6103d3610684366004613ab5565b611b1c565b61069c610697366004613ab5565b611bac565b6040516103dd929190613ad2565b6103d36106b8366004613ab5565b6001600160a01b0316600090815260a8602052604090205490565b6104416106e136600461386e565b611dc1565b6103f96106f4366004613ab5565b611deb565b6103f9611e3b565b6103f961070f366004613ab5565b611e4f565b6103d3610722366004613809565b60aa60209081526000928352604080842090915290825290205481565b609954610441906001600160a01b031681565b60a454610441906001600160a01b031681565b6103d3610773366004613ab5565b60a76020526000908152604090205481565b609854610441906001600160a01b031681565b60ae546103d3565b6103d3609e5481565b6033546001600160a01b0316610441565b6103d3609f5481565b6103f96107d1366004613af7565b611f14565b6103f96107e4366004613b7d565b611f96565b6104416107f7366004613835565b612217565b60a254610441906001600160a01b031681565b6103d361081d366004613be9565b6122e3565b610474610830366004613c2b565b6124de565b6103d360a05481565b6103f961084c366004613ab5565b612904565b6103f961085f366004613af7565b612954565b610474610872366004613835565b6129bf565b60a654610441906001600160a01b031681565b6103f9610898366004613ab5565b6129ee565b6103d36108ab366004613ab5565b60ac6020526000908152604090205481565b6103d369010f0cf064dd5920000081565b61044173858e3312ed3a876947ea49d572a7c42de08af7ee81565b6104417355d398326f99059ff775485246999027b319795581565b6104746109123660046138b8565b612a81565b6103d3609b5481565b6103f961092e366004613cc1565b612ca7565b6104417304efd76283a70334c72bb4015e90d034b9f3d24581565b6103d3612ef6565b6103f9610964366004613da7565b612f0a565b6103f9610977366004613e1c565b6130ff565b6103f961098a366004613e48565b613115565b60a554610441906001600160a01b031681565b6103d36106b836600461386e565b6103f96109be366004613ab5565b613273565b609754610441906001600160a01b031681565b6109de6132ec565b600060ae805480602002602001604051908101604052809291908181526020018280548015610a3657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a18575b5050505050905080518210610a855760405162461bcd60e51b815260206004820152601060248201526f1c1a59081bdd5d081bd988189bdd5b9960821b60448201526064015b60405180910390fd5b6001600160a01b038316600081815260ac60205260408120558151829084908110610ab257610ab2613e8a565b60200260200101516001600160a01b031614610bd35760005b8151811015610bcd57836001600160a01b0316828281518110610af057610af0613e8a565b60200260200101516001600160a01b031603610bbb5760ae8054610b1690600190613eb6565b81548110610b2657610b26613e8a565b60009182526020909120015460ae80546001600160a01b039092169183908110610b5257610b52613e8a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060ae805480610b9157610b91613ecd565b600082815260209020810160001990810180546001600160a01b031916905501905550610c839050565b80610bc581613ee3565b915050610acb565b50610c81565b60ae8054610be390600190613eb6565b81548110610bf357610bf3613e8a565b60009182526020909120015460ae80546001600160a01b039092169184908110610c1f57610c1f613e8a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060ae805480610c5e57610c5e613ecd565b600082815260209020810160001990810180546001600160a01b03191690550190555b505b5050565b6000610c916132ec565b609a8290556040518281527f3ddd068e126dc13fed656e9c33548af7594200e2db12d151124afce59058e42e906020015b60405180910390a15060015b919050565b6000600260655403610d275760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a7c565b6002606555609c546a52b7d2dcc80cd2e400000011610d885760405162461bcd60e51b815260206004820152601f60248201527f537761704665655265776172643a204d696e656420616c6c20746f6b656e73006044820152606401610a7c565b600080610d9433611bac565b90925090506000805b8251811015610e215760a86000858381518110610dbc57610dbc613e8a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009055828181518110610dfa57610dfa613e8a565b602002602001015182610e0d9190613efc565b915080610e1981613ee3565b915050610d9d565b5069010f0cf064dd59200000609a54610e3a9190613f14565b81609c54610e489190613efc565b1115610e665760405162461bcd60e51b8152600401610a7c90613f33565b610e733382898989613346565b8015610f515780609c6000828254610e8b9190613efc565b909155505060a35460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f059190613f80565b15610f51577f119837b8684e25d2341956b1359f52a6927344e040ef1306fe534be4c2ac83ef338285604051610f3d93929190613fa2565b60405180910390a160019350505050610f59565b600093505050505b60016065559392505050565b610fae6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600081525090565b610fb88484612217565b6001600160a01b031660a08201819052600090815260ac602052604081205490819003610fe5575061130e565b8160a001516001600160a01b03166354cf2aeb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b9190613fdd565b63ffffffff1660c083015260a25461106f90859085906001600160a01b03166122e3565b608083015260a15460009061109090869086906001600160a01b03166122e3565b9050826080015160001480156110a4575080155b156110b057505061130e565b609e546110be906064613f14565b6110c9886064613eb6565b84608001516110d89190613f14565b6110e29190613ff8565b602084015260c08301516127109088908490611100906103e8613eb6565b60c087015161110f9086613f14565b6111199190613ff8565b6111239190613f14565b61112d9190613f14565b6111379190613ff8565b835260a654604051631ed7359160e31b81526001600160a01b038a81166004830152600092169063f6b9ac88906024016040805180830381865afa158015611183573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a7919061401a565b606086018290529150158015906111c657506001600160a01b0389163b155b1561130a57600060ad6111da60018461403f565b60ff16815481106111ed576111ed613e8a565b60009182526020918290206040805180820190915291015461ffff8116808352620100009091046001600160801b03169282019290925260c0870151909250612710919061123d906103e8613eb6565b60c088015161124c9087613f14565b6112569190613ff8565b6112609190613f14565b61126a9190613ff8565b60408087018290526020808401516060890151600090815260ab9092529181206001600160801b039092169291906112a0612ef6565b8152602001908152602001600020546112b99190613efc565b1115611308576060850151600090815260ab60205260408120906112db612ef6565b81526020019081526020016000205481602001516001600160801b03166113029190613eb6565b60408601525b505b5050505b95945050505050565b61135f60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6002835110156113b15760405162461bcd60e51b815260206004820152601d60248201527f46656552657761726448656c7065723a20494e56414c49445f504154480000006044820152606401610a7c565b6000835167ffffffffffffffff8111156113cd576113cd613948565b6040519080825280602002602001820160405280156113f6578160200160208202803683370190505b509050828160008151811061140d5761140d613e8a565b60209081029190910101526001606083015260008061142b87611b1c565b905060005b6001875161143e9190613eb6565b81101561175657600061148f88838151811061145c5761145c613e8a565b6020026020010151898460016114729190613efc565b8151811061148257611482613e8a565b6020026020010151612217565b90506000816001600160a01b03166354cf2aeb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190613fdd565b611501906103e8614062565b63ffffffff169050600080836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561154a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156e919061409e565b506001600160701b031691506001600160701b031691508a858151811061159757611597613e8a565b60200260200101516001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160a91906140e1565b6001600160a01b03161461161f578082611622565b81815b90925090506000859003611634578196505b61165988868151811061164957611649613e8a565b60200260200101518383866134df565b88611665876001613efc565b8151811061167557611675613e8a565b60200260200101818152505060006116f38d888e898151811061169a5761169a613e8a565b60200260200101518f8a60016116b09190613efc565b815181106116c0576116c0613e8a565b60200260200101518d8b60016116d69190613efc565b815181106116e6576116e6613e8a565b6020026020010151610f65565b905080602001518a60e00181815161170b9190613efc565b905250805160a08b018051611721908390613efc565b90525060608a018051859190611738908390613f14565b90525085945061174e9350849250613ee3915050565b915050611430565b50600186516117659190613eb6565b611771906103e86141e2565b60608501516117809087613f14565b61178a9190613ff8565b6117949086613eb6565b606085015285516117d79087906000906117b0576117b0613e8a565b602002602001015185606001517355d398326f99059ff775485246999027b31979556122e3565b608085015260a15460a085015161180c916001600160a01b0316907355d398326f99059ff775485246999027b31979556122e3565b60c08501528551839061182190600190613eb6565b8151811061183157611831613e8a565b602090810291909101015180855285906118509064e8d4a51000613f14565b61185a9190613ff8565b602085015260608401516000906118719087613eb6565b905061187d8184613efc565b61188c8264e8d4a51000613f14565b6118969190613ff8565b604086015250929695505050505050565b60ad81815481106118b757600080fd5b60009182526020909120015461ffff811691506201000090046001600160801b031682565b60006118e66132ec565b609b8290556040518281527f8bc2b77a367f8b514127177b07fe8a50a1dfd8b3dd493d7590ec63d83a454fd190602001610cc2565b600080826001600160a01b0316846001600160a01b0316036119755760405162461bcd60e51b81526020600482015260136024820152724944454e544943414c5f41444452455353455360681b6044820152606401610a7c565b826001600160a01b0316846001600160a01b031610611995578284611998565b83835b90925090506001600160a01b0382166119e25760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610a7c565b9250929050565b606082821015611a3b5760405162461bcd60e51b815260206004820152601d60248201527f6c61737420646179206d757374206265206567742066697273744461790000006044820152606401610a7c565b611a458383613eb6565b611a50906001613efc565b67ffffffffffffffff811115611a6857611a68613948565b604051908082528060200260200182016040528015611a91578160200160208202803683370190505b50905060005b611aa18484613eb6565b611aac906001613efc565b811015611b14576001600160a01b038516600090815260aa6020526040812090611ad68387613efc565b815260200190815260200160002054828281518110611af757611af7613e8a565b602090810291909101015280611b0c81613ee3565b915050611a97565b509392505050565b604051636b8dc51960e01b81526001600160a01b03821660048201526000907304efd76283a70334c72bb4015e90d034b9f3d24590636b8dc51990602401602060405180830381865afa158015611b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9b91906141ee565b611ba690605a613eb6565b92915050565b60a6546040516370a0823160e01b81526001600160a01b0383811660048301526060928392600092909116906370a0823190602401602060405180830381865afa158015611bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2291906141ee565b90508067ffffffffffffffff811115611c3d57611c3d613948565b604051908082528060200260200182016040528015611c66578160200160208202803683370190505b5092508067ffffffffffffffff811115611c8257611c82613948565b604051908082528060200260200182016040528015611cab578160200160208202803683370190505b50915060005b81811015611dba5760a654604051632f745c5960e01b81526001600160a01b0387811660048301526024820184905290911690632f745c5990604401602060405180830381865afa158015611d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2e91906141ee565b848281518110611d4057611d40613e8a565b60200260200101818152505060a86000858381518110611d6257611d62613e8a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054838281518110611d9d57611d9d613e8a565b602090810291909101015280611db281613ee3565b915050611cb1565b5050915091565b60ae8181548110611dd157600080fd5b6000918252602090912001546001600160a01b0316905081565b611df36132ec565b6001600160a01b038116611e195760405162461bcd60e51b8152600401610a7c90614207565b609880546001600160a01b0319166001600160a01b0392909216919091179055565b611e436132ec565b611e4d60006135d2565b565b611e576132ec565b6001600160a01b038116611ec05760405162461bcd60e51b815260206004820152602a60248201527f537761704d696e696e673a206e6577206f7261636c6520697320746865207a65604482015269726f206164647265737360b01b6064820152608401610a7c565b60a480546001600160a01b0319166001600160a01b0383169081179091556040519081527fb3eacd0e351fafdfefdec84e1cd19679b38dbcd63ea7c2c24da17fd2bc3b3c0e9060200160405180910390a150565b6098546001600160a01b03163314611f6e5760405162461bcd60e51b815260206004820152601a60248201527f537761704665655265776172643a206f6e6c79206d61726b65740000000000006044820152606401610a7c565b612710609f5482611f7f9190613f14565b611f899190613ff8565b9050610c81838383613624565b611f9e6132ec565b828114611fe35760405162461bcd60e51b81526020600482015260136024820152720aee4dedcce40c2e4e4c2f2e640d8cadccee8d606b1b6044820152606401610a7c565b60005b8181101561221057600083838381811061200257612002613e8a565b90506020020160208101906120179190613ab5565b6001600160a01b03160361206d5760405162461bcd60e51b815260206004820152601960248201527f5f7061697220697320746865207a65726f2061646472657373000000000000006044820152606401610a7c565b606485858381811061208157612081613e8a565b90506020020135111580156120ae575060008585838181106120a5576120a5613e8a565b90506020020135115b6120f15760405162461bcd60e51b815260206004820152601460248201527315dc9bdb99c81c195c98d95b9d081c995dd85c9960621b6044820152606401610a7c565b60ac600084848481811061210757612107613e8a565b905060200201602081019061211c9190613ab5565b6001600160a01b03166001600160a01b03168152602001908152602001600020546000036121a05760ae83838381811061215857612158613e8a565b905060200201602081019061216d9190613ab5565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b8484828181106121b2576121b2613e8a565b9050602002013560ac60008585858181106121cf576121cf613e8a565b90506020020160208101906121e49190613ab5565b6001600160a01b031681526020810191909152604001600020558061220881613ee3565b915050611fe6565b5050505050565b6000806000612226858561191b565b604080516bffffffffffffffffffffffff19606094851b81166020808401919091529390941b9093166034840152805180840360280181526048840182528051908301206001600160f81b031960688501527342c71989769d43b4a3f524eab953e216f0457bf760611b6069850152607d8401527ffea293c909d87cd4153593f077b76bb7e94340200f4ee84211ae8e4f9bd7ffdf609d808501919091528151808503909101815260bd9093019052815191012095945050505050565b6000806001600160a01b03808416908616036123005750826124d6565b6001600160a01b03808616600090815260a9602090815260408083208785168452909152902054168061233657600091506124d4565b856001600160a01b0316816001600160a01b0316036123d35760a454604051632321bc7960e21b81526001600160a01b03838116600483015260248201889052868116604483015290911690638c86f1e490606401602060405180830381865afa1580156123a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123cc91906141ee565b91506124d4565b60a454604051632321bc7960e21b81526001600160a01b0388811660048301526024820188905283811660448301526000921690638c86f1e490606401602060405180830381865afa15801561242d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245191906141ee565b60a454604051632321bc7960e21b81526001600160a01b038581166004830152602482018490528881166044830152929350911690638c86f1e490606401602060405180830381865afa1580156124ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d091906141ee565b9250505b505b949350505050565b6097546000906001600160a01b0316331461253b5760405162461bcd60e51b815260206004820152601a60248201527f537761704665655265776172643a206f6e6c7920726f757465720000000000006044820152606401610a7c565b60006125528661254a88611b1c565b878787610f65565b805190915015801561256657506020810151155b156125755760009150506124d6565b60008160200151118015612593575060a5546001600160a01b031615155b1561264e5769010f0cf064dd59200000609b546125b09190613f14565b8160200151609d546125c29190613efc565b1161264e578060200151609d60008282546125dd9190613efc565b909155505060a554602082015160405163fb35440760e01b81526001600160a01b038981166004830152602482019290925291169063fb35440790604401600060405180830381600087803b15801561263557600080fd5b505af1158015612649573d6000803e3d6000fd5b505050505b609c5460408201516126609082613efc565b6a52b7d2dcc80cd2e4000000106127ce5769010f0cf064dd59200000609a546126899190613f14565b60408301516126989083613efc565b116127ce576060820151158015906126b35750604082015115155b156127ce5760408083015160608401516001600160a01b0316600090815260a86020529182208054919290916126ea908490613efc565b90915550600090506126fa612ef6565b9050826040015160ab600085606001518152602001908152602001600020600083815260200190815260200160002060008282546127389190613efc565b9091555050606083018051604080860151600083815260ab602090815283822087835281528382205495516001600160a01b0316825260a890528290205491517fa643fc71b723368dedd522e050763f956c22ea39122171d231e5f4054f38fb24946127c494938792948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a1505b81516127da9082613efc565b6a52b7d2dcc80cd2e40000001061289f5769010f0cf064dd59200000609a546128039190613f14565b825161280f9083613efc565b1161289f5781516001600160a01b038816600090815260a860205260408120805490919061283e908490613efc565b90915550508151604080516001600160a01b038a811682528981166020830152881681830152606081018790526080810192909252517f4f2387711860ea50b6a0e4e7e3a1aadf0685d1c9261c203c2e6a48b2004fd9779181900360a00190a15b6080820151156128f75760808201516001600160a01b038816600090815260aa60205260408120906128d46201518042613ff8565b815260200190815260200160002060008282546128f19190613efc565b90915550505b5060019695505050505050565b61290c6132ec565b6001600160a01b0381166129325760405162461bcd60e51b8152600401610a7c90614207565b609980546001600160a01b0319166001600160a01b0392909216919091179055565b6099546001600160a01b031633146129ae5760405162461bcd60e51b815260206004820152601b60248201527f537761704665655265776172643a206f6e6c792061756374696f6e00000000006044820152606401610a7c565b61271060a05482611f7f9190613f14565b6000806129cc8484612217565b6001600160a01b0316600090815260ac60205260409020541515949350505050565b6129f66132ec565b6001600160a01b038116612a5f5760405162461bcd60e51b815260206004820152602a60248201527f537761704d696e696e673a206e657720726f7574657220697320746865207a65604482015269726f206164647265737360b01b6064820152608401610a7c565b609780546001600160a01b0319166001600160a01b0392909216919091179055565b6000600260655403612ad55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a7c565b6002606555609c546a52b7d2dcc80cd2e400000011612b365760405162461bcd60e51b815260206004820152601f60248201527f537761704665655265776172643a204d696e656420616c6c20746f6b656e73006044820152606401610a7c565b33600090815260a86020526040902054609a54612b5e9069010f0cf064dd5920000090613f14565b81609c54612b6c9190613efc565b1115612b8a5760405162461bcd60e51b8152600401610a7c90613f33565b612b973382878787613346565b8015612c975733600090815260a8602052604081208054839290612bbc908490613eb6565b9250508190555080609c6000828254612bd59190613efc565b909155505060a35460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015612c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4f9190613f80565b15612c975760408051338152602081018390527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364910160405180910390a16001915050610f59565b5050600160655550600092915050565b600054610100900460ff1615808015612cc75750600054600160ff909116105b80612ce15750303b158015612ce1575060005460ff166001145b612d445760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a7c565b6000805460ff191660011790558015612d67576000805461ff0019166101001790555b6001600160a01b038c1615801590612d8757506001600160a01b03871615155b8015612d9b57506001600160a01b03861615155b612de75760405162461bcd60e51b815260206004820152601760248201527f416464726573732063616e206e6f74206265207a65726f0000000000000000006044820152606401610a7c565b612def6136e6565b612df7613715565b609780546001600160a01b03199081166001600160a01b038f81169190911790925560a3805482168e841617905560a4805482168d841617905560a5805482168c841617905560a6805482168b841617905560a1805482168a841617905560a280548216898416179055609880548216868416179055609980549091169184169190911790556001609a819055609b556105dc609e556108ae609f81905560a055612ea28585613115565b8015612ee8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050505050565b6000612f0562278d0042613ff8565b905090565b612f126132ec565b60005b818110156130c157828282818110612f2f57612f2f613e8a565b9050606002016040016020810190612f479190613ab5565b6001600160a01b0316838383818110612f6257612f62613e8a565b9050606002016020016020810190612f7a9190613ab5565b6001600160a01b03161461306057828282818110612f9a57612f9a613e8a565b9050606002016040016020810190612fb29190613ab5565b60a96000858585818110612fc857612fc8613e8a565b612fde9260206060909202019081019150613ab5565b6001600160a01b03166001600160a01b03168152602001908152602001600020600085858581811061301257613012613e8a565b905060600201602001602081019061302a9190613ab5565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790556130af565b7facac34fece57682b89335aab9b4fd45c5498b22adfcb5091ba7ce732cfca184483838381811061309357613093613e8a565b9050606002016040516130a69190614298565b60405180910390a15b806130b981613ee3565b915050612f15565b507f21f6242bd4414111be953179ffe552d822be689c69fafe926b03f8c2e732251d82826040516130f39291906142a6565b60405180910390a15050565b6131076132ec565b609e92909255609f5560a055565b61311d6132ec565b60a660009054906101000a90046001600160a01b03166001600160a01b031663a49062d46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613170573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061319491906141ee565b81146131d55760405162461bcd60e51b815260206004820152601060248201526f57726f6e672061727261792073697a6560801b6044820152606401610a7c565b6131e160ad60006137a2565b60005b818110156132415760ad83838381811061320057613200613e8a565b8354600181018555600094855260209094206040909102929092019291909101905061322c828261430d565b5050808061323990613ee3565b9150506131e4565b507fc1b9d3f194576d60a39e743d0aa7b86179b7cffe3b809f493907e39849592c7682826040516130f3929190614373565b61327b6132ec565b6001600160a01b0381166132e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a7c565b6132e9816135d2565b50565b6033546001600160a01b03163314611e4d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a7c565b6001600160a01b038516600090815260a760205260408120805487918791908461336f83613ee3565b9091555060405160609390931b6bffffffffffffffffffffffff191660208401526034830191909152605482015260740160408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c0160408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015613454573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061348a5750866001600160a01b0316816001600160a01b0316145b6134d65760405162461bcd60e51b815260206004820181905260248201527f537761704665655265776172643a20494e56414c49445f5349474e41545552456044820152606401610a7c565b50505050505050565b60008085116135305760405162461bcd60e51b815260206004820152601960248201527f494e53554646494349454e545f494e5055545f414d4f554e54000000000000006044820152606401610a7c565b6000841180156135405750600083115b6135855760405162461bcd60e51b8152602060048201526016602482015275494e53554646494349454e545f4c495155494449545960501b6044820152606401610a7c565b60006135918387613f14565b9050600061359f8583613f14565b90506000826135b0886103e8613f14565b6135ba9190613efc565b90506135c68183613ff8565b98975050505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60a25460009061364090849084906001600160a01b03166122e3565b905080156136e05780609d546136569190613efc565b609d55609b546136719069010f0cf064dd5920000090613f14565b609d54116136e05760a55460405163fb35440760e01b81526001600160a01b038681166004830152602482018490529091169063fb35440790604401600060405180830381600087803b1580156136c757600080fd5b505af11580156136db573d6000803e3d6000fd5b505050505b50505050565b600054610100900460ff1661370d5760405162461bcd60e51b8152600401610a7c906143d9565b611e4d613744565b600054610100900460ff1661373c5760405162461bcd60e51b8152600401610a7c906143d9565b611e4d613772565b600054610100900460ff1661376b5760405162461bcd60e51b8152600401610a7c906143d9565b6001606555565b600054610100900460ff166137995760405162461bcd60e51b8152600401610a7c906143d9565b611e4d336135d2565b50805460008255906000526020600020908101906132e991905b808211156137e557805471ffffffffffffffffffffffffffffffffffff191681556001016137bc565b5090565b6001600160a01b03811681146132e957600080fd5b8035610cce816137e9565b6000806040838503121561381c57600080fd5b8235613827816137e9565b946020939093013593505050565b6000806040838503121561384857600080fd5b8235613853816137e9565b91506020830135613863816137e9565b809150509250929050565b60006020828403121561388057600080fd5b5035919050565b6000806040838503121561389a57600080fd5b50508035926020909101359150565b60ff811681146132e957600080fd5b6000806000606084860312156138cd57600080fd5b83356138d8816138a9565b95602085013595506040909401359392505050565b600080600080600060a0868803121561390557600080fd5b8535613910816137e9565b9450602086013593506040860135613927816137e9565b92506060860135613937816137e9565b949793965091946080013592915050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561397357600080fd5b833561397e816137e9565b925060208481013567ffffffffffffffff8082111561399c57600080fd5b818701915087601f8301126139b057600080fd5b8135818111156139c2576139c2613948565b8060051b604051601f19603f830116810181811085821117156139e7576139e7613948565b60405291825284820192508381018501918a831115613a0557600080fd5b938501935b82851015613a2a57613a1b856137fe565b84529385019392850192613a0a565b979a979950505050604095909501359450505050565b600080600060608486031215613a5557600080fd5b83356138d8816137e9565b600081518084526020808501945080840160005b83811015613a9057815187529582019590820190600101613a74565b509495945050505050565b602081526000613aae6020830184613a60565b9392505050565b600060208284031215613ac757600080fd5b8135613aae816137e9565b604081526000613ae56040830185613a60565b828103602084015261130e8185613a60565b600080600060608486031215613b0c57600080fd5b8335613b17816137e9565b92506020840135613b27816137e9565b929592945050506040919091013590565b60008083601f840112613b4a57600080fd5b50813567ffffffffffffffff811115613b6257600080fd5b6020830191508360208260051b85010111156119e257600080fd5b60008060008060408587031215613b9357600080fd5b843567ffffffffffffffff80821115613bab57600080fd5b613bb788838901613b38565b90965094506020870135915080821115613bd057600080fd5b50613bdd87828801613b38565b95989497509550505050565b600080600060608486031215613bfe57600080fd5b8335613c09816137e9565b9250602084013591506040840135613c20816137e9565b809150509250925092565b60008060008060808587031215613c4157600080fd5b8435613c4c816137e9565b93506020850135613c5c816137e9565b92506040850135613c6c816137e9565b9396929550929360600135925050565b60008083601f840112613c8e57600080fd5b50813567ffffffffffffffff811115613ca657600080fd5b6020830191508360208260061b85010111156119e257600080fd5b60008060008060008060008060008060006101408c8e031215613ce357600080fd5b8b35613cee816137e9565b9a5060208c0135613cfe816137e9565b995060408c0135613d0e816137e9565b985060608c0135613d1e816137e9565b975060808c0135613d2e816137e9565b9650613d3c60a08d016137fe565b9550613d4a60c08d016137fe565b945060e08c013567ffffffffffffffff811115613d6657600080fd5b613d728e828f01613c7c565b9095509350613d8690506101008d016137fe565b9150613d956101208d016137fe565b90509295989b509295989b9093969950565b60008060208385031215613dba57600080fd5b823567ffffffffffffffff80821115613dd257600080fd5b818501915085601f830112613de657600080fd5b813581811115613df557600080fd5b866020606083028501011115613e0a57600080fd5b60209290920196919550909350505050565b600080600060608486031215613e3157600080fd5b505081359360208301359350604090920135919050565b60008060208385031215613e5b57600080fd5b823567ffffffffffffffff811115613e7257600080fd5b613e7e85828601613c7c565b90969095509350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015613ec857613ec8613ea0565b500390565b634e487b7160e01b600052603160045260246000fd5b600060018201613ef557613ef5613ea0565b5060010190565b60008219821115613f0f57613f0f613ea0565b500190565b6000816000190483118215151615613f2e57613f2e613ea0565b500290565b6020808252602d908201527f537761704665655265776172643a204d696e656420616c6c20746f6b656e732060408201526c696e207468697320706861736560981b606082015260800190565b600060208284031215613f9257600080fd5b81518015158114613aae57600080fd5b60018060a01b038416815282602082015260606040820152600061130e6060830184613a60565b805163ffffffff81168114610cce57600080fd5b600060208284031215613fef57600080fd5b613aae82613fc9565b60008261401557634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561402d57600080fd5b825191506020830151613863816138a9565b600060ff821660ff84168082101561405957614059613ea0565b90039392505050565b600063ffffffff8381169083168181101561407f5761407f613ea0565b039392505050565b80516001600160701b0381168114610cce57600080fd5b6000806000606084860312156140b357600080fd5b6140bc84614087565b92506140ca60208501614087565b91506140d860408501613fc9565b90509250925092565b6000602082840312156140f357600080fd5b8151613aae816137e9565b600181815b8085111561413957816000190482111561411f5761411f613ea0565b8085161561412c57918102915b93841c9390800290614103565b509250929050565b60008261415057506001611ba6565b8161415d57506000611ba6565b8160018114614173576002811461417d57614199565b6001915050611ba6565b60ff84111561418e5761418e613ea0565b50506001821b611ba6565b5060208310610133831016604e8410600b84101617156141bc575081810a611ba6565b6141c683836140fe565b80600019048211156141da576141da613ea0565b029392505050565b6000613aae8383614141565b60006020828403121561420057600080fd5b5051919050565b60208082526025908201527f537761704665655265776172643a20616464726573732063616e6e6f74206265604082015264207a65726f60d81b606082015260800190565b8035614257816137e9565b6001600160a01b039081168352602082013590614273826137e9565b908116602084015260408201359061428a826137e9565b808216604085015250505050565b60608101611ba6828461424c565b6020808252810182905260008360408301825b858110156142de576142cb828461424c565b60609283019291909101906001016142b9565b5095945050505050565b61ffff811681146132e957600080fd5b6001600160801b03811681146132e957600080fd5b8135614318816142e8565b61ffff8116905081548161ffff1982161783556020840135614339816142f8565b71ffffffffffffffffffffffffffffffff00008160101b168371ffffffffffffffffffffffffffffffffffff198416171784555050505050565b6020808252818101839052600090604080840186845b878110156143cc57813561439c816142e8565b61ffff168352818501356143af816142f8565b6001600160801b0316838601529183019190830190600101614389565b5090979650505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea264697066735822122075ec73c492e68e7254d143364ba5f77a99b716572d5dbf3033d7ff3fd5fc93a864736f6c634300080f0033