0 txs
870 calls
constructor
No constructor.
functions
BONUS_MULTIPLIER
viewfunction BONUS_MULTIPLIER() view returns (uint256)
BVault
viewfunction BVault() view returns (address)
BYD_POOL_ID
viewfunction BYD_POOL_ID() view returns (uint256)
BYD
viewfunction BYD() view returns (address)
BYDPerBlock
viewfunction BYDPerBlock() view returns (uint256)
devaddr
viewfunction devaddr() view returns (address)
DIVISOR
viewfunction DIVISOR() view returns (uint256)
eligiblity
viewfunction eligiblity(uint256) view returns (uint256 directSponser, uint256 bydStaked)
feeAddress
viewfunction feeAddress() view returns (address)
FIFTEEN_LEVEL_BOUNS
viewfunction FIFTEEN_LEVEL_BOUNS() view returns (uint256)
getEligiblity
viewfunction getEligiblity() view returns (tuple[])
getEqualientToken
purefunction getEqualientToken(uint256 _tokenIn, uint256 _tokenOut, uint256 _amount) pure returns (uint256)
getEthSignedMessageHash
purefunction getEthSignedMessageHash(bytes32 _messageHash) pure returns (bytes32)
getMessageHash
purefunction getMessageHash(address _to, uint256 _amount, uint256 _lastRewardBlock) pure returns (bytes32)
getMultiplier
purefunction getMultiplier(uint256 _from, uint256 _to) pure returns (uint256)
intervalBlock
viewfunction intervalBlock() view returns (uint256)
MASTER_TREASURY
viewfunction MASTER_TREASURY() view returns (address)
MATCHING_BONUS
viewfunction MATCHING_BONUS(uint256) view returns (uint256)
nonce
viewfunction nonce() view returns (uint256)
owner
viewfunction owner() view returns (address)
pooldata
viewfunction pooldata() view returns (tuple[])
poolInfo
viewfunction poolInfo(uint256) view returns (address lpToken, uint256 allocPoint, uint256 lastRewardBlock, uint16 depositFeeBP, bool emergencyWithdrawnable, bool onlyOwneraccess, uint256 minRewardPerBlock, uint256 maxRewardPerBlock)
poolLength
viewfunction poolLength() view returns (uint256)
RANKING_POOL
viewfunction RANKING_POOL() view returns (uint256)
recoverSigner
purefunction recoverSigner(bytes32 _ethSignedMessageHash, bytes _signature) pure returns (address)
splitSignature
purefunction splitSignature(bytes sig) pure returns (bytes32 r, bytes32 s, uint8 v)
startBlock
viewfunction startBlock() view returns (uint256)
TEN_LEVEL_BOUNS
viewfunction TEN_LEVEL_BOUNS() view returns (uint256)
totalAllocPoint
viewfunction totalAllocPoint() view returns (uint256)
userInfo
viewfunction userInfo(uint256, address) view returns (uint256 amount, uint256 rewardDebt, uint256 lastRewardBlock, uint256 lastWithdrawal)
verify
viewfunction verify(address _to, uint256 _amount, uint256 _lastRewardBlock, bytes signature) view returns (bool)
add
nonpayablefunction add(uint256 _allocPoint, address _lpToken, uint16 _depositFeeBP, bool _onlyOwners, uint256 _min, uint256 _max)
addBulkEligiblity
nonpayablefunction addBulkEligiblity(uint256[] _directs, uint256[] _staked)
addMatchingBonus
nonpayablefunction addMatchingBonus(uint256[] _percent)
changeTokenOwner
nonpayablefunction changeTokenOwner(address _addr)
claim
nonpayablefunction claim(uint256 _pid, uint256 _amount, bytes signature)
claimPendingCommission
nonpayablefunction claimPendingCommission(uint256 _amount, uint256 _choiceOf60, uint256 _choiceOf40, bytes signature)
deposit
nonpayablefunction deposit(uint256 _pid, uint256 _amount)
depositForUser
nonpayablefunction depositForUser(uint256 _pid, address _user, uint256 _amount)
dev
nonpayablefunction dev(address _devaddr)
editPercentages
nonpayablefunction editPercentages(uint256 _levelBonus, uint256 _topBonus, uint256 _rankPool)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(uint256 _pid)
initialize
nonpayablefunction initialize()
renounceOwnership
nonpayablefunction renounceOwnership()
set
nonpayablefunction set(uint256 _pid, uint256 _allocPoint, uint16 _depositFeeBP, bool _onlyOwners, uint256 _min, uint256 _max)
setBulkEligiblity
nonpayablefunction setBulkEligiblity(uint256[] _directs, uint256[] _staked)
setDivisor
nonpayablefunction setDivisor(uint256 _divisor)
setEligiblity
nonpayablefunction setEligiblity(uint256 _eid, uint256 _directs, uint256 _staked)
setEmergencyWithdrawnable
nonpayablefunction setEmergencyWithdrawnable(uint256 _pid, bool _allowed)
setEnvironment
nonpayablefunction setEnvironment(address _master_treasury, address _bydVault, address _byd, uint256 _byd_id)
setFeeAddress
nonpayablefunction setFeeAddress(address _feeAddress)
setFeeEnv
nonpayablefunction setFeeEnv(address _dev, address _fee)
setIntervalBlock
nonpayablefunction setIntervalBlock(uint256 _interval)
setMatchingBonus
nonpayablefunction setMatchingBonus(uint256 _level, uint256 _percent)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateEmissionRate
nonpayablefunction updateEmissionRate(uint256 _BYDPerBlock)
withdraw
nonpayablefunction withdraw(uint256 _pid, uint256 _amount, bytes signature)
withdrawSafe
nonpayablefunction withdrawSafe(address _addr, uint256 amount)
events
Commission
event Commission(address indexed _from, address indexed _to, address _token, uint256 _commission, string _type)
Deposit
event Deposit(address indexed user, uint256 indexed pid, uint256 amount)
EmergencyWithdraw
event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
StakingReward
event StakingReward(address indexed _user, uint256 _reward, uint256 _commission)
Withdraw
event Withdraw(address indexed user, uint256 indexed pid, uint256 amount)
errors
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60808060405234601557612e1e908161001b8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806302932c84146103b75780630326f66d146103b257806306669dc8146103ad578063081e3eda146103a85780630ba84cd2146103a35780630deea6081461039e5780630f809adb1461039957806314931783146103945780631526fe271461038f57806317caf6f11461038a578063189d451d146103855780633410fe6e14610380578063395626881461037b578063412753581461037657806341786168146103715780634433b0331461036c57806348cd4cb1146103675780635312ea8e146103625780635df04bd81461035d5780635eddd1571461035857806360c89484146103535780636d785d1c1461034e578063709f5ccc14610349578063715018a614610344578063744fb6ca1461033f5780637645ed811461033a5780637e6b6345146103355780638129fc1c146103305780638705fcd41461032b5780638aa28550146103265780638d88a90e146103215780638da5cb5b1461031c5780638dbb1e3a146103175780638f54be0e1461031257806390e16ba61461030d57806393f1a40b14610308578063946f8f101461030357806397aba7f9146102fe5780639f799d93146102f9578063a7bb5803146102f4578063aba364ce146102ef578063affed0e0146102ea578063b387ecd9146102e5578063b5359af6146102e0578063c456b88d146102db578063c8476bf7146102d6578063cacdd53b146102d1578063d2b0737b146102cc578063d369a034146102c7578063d49e77cd146102c2578063dac6e916146102bd578063e03e4e49146102b8578063e2bbb158146102b3578063f131d4e6146102ae578063f1b6ac47146102a9578063f2fde38b146102a4578063fa5408011461029f5763fadb43dc1461029a57600080fd5b612268565b61222b565b6121fe565b6121e0565b61218f565b611f7b565b611f5d565b611f34565b611f0b565b611e7c565b611db5565b611d97565b611d79565b611cdd565b611c50565b611bff565b611bc6565b611935565b6118e2565b611889565b6117ee565b611750565b611696565b611678565b61165a565b611628565b6115f2565b6115a1565b611585565b6114f3565b61138c565b6112f9565b611264565b6110f0565b611086565b611017565b610fc9565b610fa7565b610d38565b610cd5565b610bb8565b610b9a565b610b0c565b610ae3565b610aba565b610a57565b610a39565b610966565b610948565b6108a1565b61082a565b6107a2565b610748565b610716565b6106f8565b6106cf565b610582565b610480565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176103ed57604052565b6103bc565b90601f801991011681019081106001600160401b038211176103ed57604052565b60405190610423610100836103f2565b565b81601f8201121561047b578035906001600160401b0382116103ed5760405192610459601f8401601f1916602001856103f2565b8284526020838301011161047b57816000926020809301838601378301015290565b600080fd5b3461047b57608036600319011261047b576024356004356044356064356001600160401b03811161047b576104b9903690600401610425565b6104d06104cb600b5492838633612307565b6122a5565b600019811461056257600101600b556001546104fc906001600160a01b03165b6001600160a01b031690565b803b1561047b5760405163a4e1cdeb60e01b8152600481019390935233602484015260448301939093526064820152906000908290608490829084905af1801561055d5761054657005b80610555600061055b936103f2565b806106c4565b005b6122fb565b6122e5565b6044359061ffff8216820361047b57565b8015150361047b57565b3461047b5760c036600319011261047b576024356004356105a1610567565b91606435916105af83610578565b60843560a435946105be612941565b61271061ffff8216116106715760059461063061065992866106046105ff61066c996105fa60095460016105f18d610861565b500154906129b2565b6129be565b600955565b600161060f88610861565b500155600361061d87610861565b50019061ffff1661ffff19825416179055565b600361063b85610861565b50019063ff000000825491151560181b169063ff0000001916179055565b600461066483610861565b500155610861565b500155005b60405162461bcd60e51b815260206004820152602560248201527f7365743a20696e76616c6964206465706f7369742066656520626173697320706044820152646f696e747360d81b6064820152608490fd5b600091031261047b57565b3461047b57600036600319011261047b576001546040516001600160a01b039091168152602090f35b3461047b57600036600319011261047b576020600554604051908152f35b3461047b57602036600319011261047b57600435610732612941565b600355005b6001600160a01b0381160361047b57565b3461047b57608036600319011261047b5760043561076581610737565b60243590606435906044356001600160401b03831161047b57602093610792610798943690600401610425565b92612307565b6040519015158152f35b3461047b57602036600319011261047b57600060206004356107c381610737565b6107cb612941565b825460405163f2fde38b60e01b81526001600160a01b039283166004820152938492602492849291165af1801561055d5761080257005b61055b9060203d602011610823575b61081b81836103f2565b8101906123a5565b503d610811565b3461047b57602036600319011261047b57600435610846612941565b600c55005b634e487b7160e01b600052603260045260246000fd5b6005548110156108805760056000526006602060002091020190600090565b61084b565b8054821015610880576000526006602060002091020190600090565b3461047b57602036600319011261047b5760043560055481101561047b576108c890610861565b5080546001820154600283015460038401546004850154600590950154604080516001600160a01b03909616865260208601949094529284019190915261ffff8116606084015260ff601082901c81161515608085015260189190911c16151560a083015260c082019290925260e08101919091528061010081015b0390f35b3461047b57600036600319011261047b576020600954604051908152f35b3461047b5760c036600319011261047b5761055b60243560043561098982610737565b610991610567565b610a246064356109a081610578565b610a146084359360a435956109b3612941565b6109c561271061ffff841611156123ba565b600a54804311600014610a33575043905b6109e56105ff826009546129be565b6109ff6109f0610413565b6001600160a01b03909a168a52565b6020890152604088015261ffff166060870152565b60006080860152151560a0850152565b60c083015260e082015261242a565b906109d6565b3461047b57600036600319011261047b576020601054604051908152f35b3461047b57604036600319011261047b57600435610a7481610737565b60243590610a8182610737565b610a89612941565b600280546001600160a01b039283166001600160a01b03199182161790915560048054939092169216919091179055005b3461047b57600036600319011261047b576004546040516001600160a01b039091168152602090f35b3461047b57600036600319011261047b576000546040516001600160a01b039091168152602090f35b3461047b57604036600319011261047b57610b8a6020600435610b2e81610737565b60243590610b4760018060a01b0360025416331461250e565b6000546001600160a01b031660405163a9059cbb60e01b81526001600160a01b039092166004830152602482019290925292839190829060009082906044820190565b03925af1801561055d5761080257005b3461047b57600036600319011261047b576020600a54604051908152f35b3461047b57602036600319011261047b57600435610bd581610861565b506003810154610bea9060101c60ff16612546565b610c336104f0610c1a610c07856000526008602052604060002090565b3360009081526020919091526040902090565b926000600185549582815501555460018060a01b031690565b60405163a9059cbb60e01b81523360048201526024810183905290602090829060449082906000905af1801561055d57610c9e575b5060405190815233907fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae05959080602081015b0390a3005b610cb69060203d6020116108235761081b81836103f2565b610c68565b606090600319011261047b57600435906024359060443590565b3461047b5761066c6001610ce836610cbb565b939190610cf3612941565b610cfc82612249565b5055612249565b606060031982011261047b576004359160243591604435906001600160401b03821161047b57610d3591600401610425565b90565b3461047b57610d4636610d03565b9190816000526008602052610d836104cb6002610d7860406000203360018060a01b0316600052602052604060002090565b019485548433612307565b80610d8a57005b610d9d610d978293610861565b506127d9565b600054610db2906001600160a01b03166104f0565b9060405163313ce56760e01b8152602081600481865afa90811561055d57600091610f88575b508151600490602090610df3906001600160a01b03166104f0565b60405163313ce56760e01b815292839182905afa90811561055d5760ff918291600091610f69575b5016911603610e9a575b5050600154610e3d91506001600160a01b03166104f0565b803b1561047b57604051637ce2845760e11b81526004810192909252336024830152600160448301526000908290606490829084905af1801561055d57610e85575b50439055005b806105556000610e94936103f2565b38610e7f565b5160049350602090610eb4906001600160a01b03166104f0565b60405163313ce56760e01b815294859182905afa90811561055d57600493600092610f47575b506020906040519485809263313ce56760e01b82525afa801561055d5760ff8091610f1095600091610f18575b50169116612638565b388080610e25565b610f3a915060203d602011610f40575b610f3281836103f2565b810190612a17565b38610f07565b503d610f28565b6020919250610f6290823d8411610f4057610f3281836103f2565b9190610eda565b610f82915060203d602011610f4057610f3281836103f2565b38610e1b565b610fa1915060203d602011610f4057610f3281836103f2565b38610dd8565b3461047b57610fb536610cbb565b91610fbe612941565b600d55600e55600f55005b3461047b57604036600319011261047b57602435600435610fe8612941565b600754811015610880577fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155005b3461047b57602036600319011261047b57600435611033612941565b606481111561104157601055005b60405162461bcd60e51b815260206004820152601d60248201527f44697669736f722073686f756c642062652061626f75742031303020210000006044820152606490fd5b3461047b57600036600319011261047b5761109f612941565b600080516020612da983398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461047b576110fe36610d03565b61110783610861565b5061111f610c07856000526008602052604060002090565b906111346104cb600284019485548733612307565b600381015460181c60ff16611236575b81548480821015611154816125e9565b81611190575b604051828152889033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568908060208101610c99565b91816104f0936111a56111c39694338c612b06565b501561122d576111b4916129b2565b8455546001600160a01b031690565b60405163a9059cbb60e01b8152336004820152602481018590529290602090849060449082906000905af192831561055d57600193611210575b504260038301554390553880848161115a565b6112289060203d6020116108235761081b81836103f2565b6111fd565b505060006111b4565b600080516020612da98339815191525461125f9033906001600160a01b039081165b161461259e565b611144565b3461047b57602061127d61127736610cbb565b91612638565b604051908152f35b6001600160401b0381116103ed5760051b60200190565b9080601f8301121561047b5781356112b381611285565b926112c160405194856103f2565b81845260208085019260051b82010192831161047b57602001905b8282106112e95750505090565b81358152602091820191016112dc565b3461047b57602036600319011261047b576004356001600160401b03811161047b5761132990369060040161129c565b611331612941565b60005b815181101561055b576113478183612683565b5190600754600160401b8110156103ed5760019261136d82856113869401600755611be4565b90919082549060031b91821b91600019901b1916179055565b01611334565b3461047b57600036600319011261047b57600080516020612dc9833981519152546001600160401b036113ce60ff604084901c1615926001600160401b031690565b16801590816114eb575b60011490816114e1575b1590816114d8575b506114c7578061142260016001600160401b0319600080516020612dc9833981519152541617600080516020612dc983398151915255565b611490575b61142f612697565b61143557005b61146160ff60401b19600080516020612dc98339815191525416600080516020612dc983398151915255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6114c2600160401b60ff60401b19600080516020612dc9833981519152541617600080516020612dc983398151915255565b611427565b63f92ee8a960e01b60005260046000fd5b905015386113ea565b303b1591506113e2565b8291506113d8565b3461047b57602036600319011261047b5760043561151081610737565b600454906001600160a01b0382163303611540576001600160a01b03166001600160a01b03199190911617600455005b60405162461bcd60e51b815260206004820152601860248201527f736574466565416464726573733a20464f5242494444454e00000000000000006044820152606490fd5b3461047b57600036600319011261047b57602060405160018152f35b3461047b57602036600319011261047b576004356115be81610737565b600254906115d6336001600160a01b0384161461250e565b6001600160a01b03166001600160a01b03199190911617600255005b3461047b57600036600319011261047b57600080516020612da9833981519152546040516001600160a01b039091168152602090f35b3461047b57604036600319011261047b57602061127d61165560243560043561164f612977565b91612d40565b612bf2565b3461047b57600036600319011261047b576020600c54604051908152f35b3461047b57600036600319011261047b576020600f54604051908152f35b3461047b57604036600319011261047b5760806116df6024356004356116bb82610737565b600052600860205260406000209060018060a01b0316600052602052604060002090565b8054906001810154906003600282015491015491604051938452602084015260408301526060820152f35b602060408183019282815284518094520192019060005b81811061172e5750505090565b8251805185526020908101518186015260409094019390920191600101611721565b3461047b57600036600319011261047b5760065461176d81611285565b9061177b60405192836103f2565b8082526020820160066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6000915b8383106117c15760405180610944878261170a565b600260206001926040516117d4816103d2565b8554815284860154838201528152019201920191906117ac565b3461047b57604036600319011261047b576004356024356001600160401b03811161047b5760209161182761182d923690600401610425565b90612702565b6040516001600160a01b039091168152f35b90604060031983011261047b576004356001600160401b03811161047b578261186a9160040161129c565b91602435906001600160401b03821161047b57610d359160040161129c565b3461047b576118973661183f565b61189f612941565b60005b825181101561055b57806118b860019285612683565b516118c282612249565b50556118ce8184612683565b51826118d983612249565b500155016118a2565b3461047b57602036600319011261047b576004356001600160401b03811161047b5760ff61191e6119196060933690600401610425565b61273c565b906040939293519384526020840152166040820152f35b3461047b57606036600319011261047b5760043560243561195581610737565b6044359061196283610861565b50906119938161197c866000526008602052604060002090565b9060018060a01b0316600052602052604060002090565b91600381016119a7815460ff9060181c1690565b611b94575b846119df575b50506040519283526001600160a01b031691600080516020612d8983398151915291508060208101610c99565b81546119f3906001600160a01b03166104f0565b6040516323b872dd60e01b81523360048201523060248201526044810187905290602090829060649082906000905af1801561055d57611b77575b5060028401805415611b6e575b5061ffff611a4b825461ffff1690565b1615611b445760206104f09392611a9b611a89611a80611a7a611a73611adf975461ffff1690565b61ffff1690565b8a612c6b565b60105490612c90565b9154919586926001600160a01b031690565b6004546001600160a01b031660405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af193841561055d57611b1a610c9994600193600080516020612d8983398151915297611b27575b50611b158884546129be565b6129b2565b81555b93508192506119b2565b611b3f9060203d6020116108235761081b81836103f2565b611b09565b5050610c9990600183611b6786600080516020612d8983398151915296546129be565b8155611b1d565b43905538611a3b565b611b8f9060203d6020116108235761081b81836103f2565b611a2e565b600080516020612da983398151915254611bc1906001600160a01b03166001600160a01b0316331461259e565b6119ac565b3461047b57600036600319011261047b576020600b54604051908152f35b60075481101561088057600760005260206000200190600090565b3461047b57602036600319011261047b5760043560075481101561047b5760209060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880154604051908152f35b3461047b57611c5e3661183f565b90611c67612941565b60005b815181101561055b57611c7d8183612683565b5190611c898185612683565b519160405190611c98826103d2565b815260208101928352600654600160401b8110156103ed57806001611cc09201600655612249565b919091611cd857518155915160019283015501611c6a565b612414565b3461047b57608036600319011261047b57600435611cfa81610737565b60243590611d0782610737565b60443591611d1483610737565b60643591611d20612941565b60018060a01b03166001600160601b0360a01b601154161760115560018060a01b03166001600160601b0360a01b600154161760015560125560018060a01b03166001600160601b0360a01b6000541617600055600080f35b3461047b57600036600319011261047b576020601254604051908152f35b3461047b57600036600319011261047b576020600354604051908152f35b3461047b57606036600319011261047b57602061127d600435611dd781610737565b602435604435916127a0565b602060408183019282815284518094520192019060005b818110611e075750505090565b909192602061010060019260e08751858060a01b03815116835284810151858401526040810151604084015261ffff6060820151166060840152608081015115156080840152611e6060a082015160a085019015159052565b60c08181015190840152015160e0820152019401929101611dfa565b3461047b57600036600319011261047b57600554611e9981611285565b90611ea760405192836103f2565b8082526020820160056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db06000915b838310611eed57604051806109448782611de3565b60066020600192611efd856127d9565b815201920192019190611ed8565b3461047b57600036600319011261047b576002546040516001600160a01b039091168152602090f35b3461047b57600036600319011261047b576011546040516001600160a01b039091168152602090f35b3461047b57600036600319011261047b576020600d54604051908152f35b3461047b57604036600319011261047b57600435602435611f9b82610861565b50611fb3610c07846000526008602052604060002090565b60038201805460181c60ff16612164575b83611fef575b5050604051918252503390600080516020612d89833981519152908060208101610c99565b8254612003906001600160a01b03166104f0565b6040516323b872dd60e01b81523360048201523060248201526044810186905290602090829060649082906000905af1801561055d57612147575b506002820180541561213e575b5061ffff61205b825461ffff1690565b16156121275760206120de9361209a612088611a80612082611a736104f0975461ffff1690565b89612c6b565b9154919384926001600160a01b031690565b6004546001600160a01b031660405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529094859190829060009082906044820190565b03925af190811561055d576001936121019261210a575b50611b158584546129be565b81555b38611fca565b6121229060203d6020116108235761081b81836103f2565b6120f5565b50600191506121378382546129be565b8155612104565b4390553861204b565b61215f9060203d6020116108235761081b81836103f2565b61203e565b600080516020612da98339815191525461218a9033906001600160a01b03908116611258565b611fc4565b3461047b57604036600319011261047b5761055b60243560036121c46004356121b784610578565b6121bf612941565b610861565b50019062ff0000825491151560101b169062ff00001916179055565b3461047b57600036600319011261047b576020600e54604051908152f35b3461047b57602036600319011261047b5761055b60043561221e81610737565b612226612941565b61288c565b3461047b57602036600319011261047b57602061127d600435612902565b60065481101561088057600660005260206000209060011b0190600090565b3461047b57602036600319011261047b5760043560065481101561047b57612291604091612249565b506001815491015482519182526020820152f35b156122ac57565b60405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b612323939261231e92612319926127a0565b612902565b612702565b6001546040516332eb2f4360e11b815290602090829060049082906001600160a01b03165afa90811561055d5760009161236a575b506001600160a01b0391821691161490565b90506020813d60201161239d575b81612385602093836103f2565b8101031261047b575161239781610737565b38612358565b3d9150612378565b9081602091031261047b5751610d3581610578565b156123c157565b60405162461bcd60e51b815260206004820152602560248201527f6164643a20696e76616c6964206465706f7369742066656520626173697320706044820152646f696e747360d81b6064820152608490fd5b634e487b7160e01b600052600060045260246000fd5b600554600160401b8110156103ed5780600161244b92016005556005610885565b919091611cd857805182546001600160a01b0319166001600160a01b039190911617825560059060e09060208101516001850155604081015160028501556124fd600385016124b46124a2606085015161ffff1690565b825461ffff191661ffff909116178255565b6124dc6124c46080850151151590565b825462ff0000191690151560101b62ff000016178255565b60a08301511515815463ff000000191690151560181b63ff00000016179055565b60c081015160048501550151910155565b1561251557565b60405162461bcd60e51b81526020600482015260096024820152686465763a207775743f60b81b6044820152606490fd5b1561254d57565b60405162461bcd60e51b815260206004820152602360248201527f21656d657267656e637957697468647261776e61626c65206e6f7420616c6c6f6044820152621dd95960ea1b6064820152608490fd5b156125a557565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b156125f057565b60405162461bcd60e51b81526020600482015260126024820152711dda5d1a191c985dce881b9bdd0819dbdbd960721b6044820152606490fd5b604d811161056257600a0a90565b90918282111561266a5761265f610d35939261265661266493612bf2565b9361164f612977565b61262a565b90612c90565b61265f610d359361265661267d93612bf2565b90612c6b565b80518210156108805760209160051b010190565b61269f612d5a565b6126a7612d5a565b6126b03361288c565b60006009556000600b5562015180600c55610190600d5560c8600e556107d0600f55612710601055336001600160601b0360a01b6002541617600255336001600160601b0360a01b6004541617600455565b608060009160ff61271460209561273c565b6040805195865293168785015291830152606082015282805260015afa1561055d5760005190565b604181510361275b576020810151916060604083015192015160001a90565b60405162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606490fd5b916040519160208301936001600160601b03199060601b16845260348301526054820152605481526127d36074826103f2565b51902090565b9060405161010081018181106001600160401b038211176103ed5760405260e06005829461281d612810825460018060a01b031690565b6001600160a01b03168552565b600181015460208501526002810154604085015261287b612872600383015461285561284a8261ffff1690565b61ffff166060890152565b612869601082901c60ff1615156080890152565b60181c60ff1690565b151560a0860152565b600481015460c08501520154910152565b6001600160a01b031680156128ec57600080516020612da983398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b60405160208101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c81526127d3605c826103f2565b600080516020612da9833981519152546001600160a01b0316330361296257565b63118cdaa760e01b6000523360045260246000fd5b604051906129866040836103f2565b601e82527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006020830152565b610d359161164f612977565b908101908181116105625781106129d25790565b60405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606490fd5b9081602091031261047b575160ff8116810361047b5790565b919082604091031261047b576020825192015190565b15612a4d57565b60405162461bcd60e51b815260206004820152602b60248201527f57697468647261776c20436865636b65723a20496e76616c696420576974686460448201526a1c985dd85b08131a5b5a5d60aa1b6064820152608490fd5b15612aad57565b60405162461bcd60e51b815260206004820152602b60248201527f57697468647261776c20436865636b65723a2020496e76616c6964205769746860448201526a191c985dc8185b5bdd5b9d60aa1b6064820152608490fd5b6004929161197c612b21926000526008602052604060002090565b600154604090612b39906001600160a01b03166104f0565b815163ad5cb2e160e01b815294859182905afa801561055d57612b81612b8991612b9095600090600092612b95575b50612b79611a806003928754612c6b565b9401546129be565b421015612a46565b1015612aa6565b600190565b611a80925060039150612bc2612b799160403d604011612bcb575b612bba81836103f2565b810190612a30565b93509150612b68565b503d612bb0565b8115612bdc570490565b634e487b7160e01b600052601260045260246000fd5b8015612c6557808004600103610562576001612c0e8280612bd2565b03612c165790565b60405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608490fd5b50600090565b908115612c895780820291808304820361056257612c0e9083612bd2565b5050600090565b90610d3591612cd8604051612ca66040826103f2565b601a81527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006020820152831515612cdd565b612bd2565b15612ce55750565b6040519062461bcd60e51b8252602060048301528181519182602483015260005b838110612d285750508160006044809484010152601f80199101168101030190fd5b60208282018101516044878401015285935001612d06565b91612d4e9083831115612cdd565b81039081116105625790565b60ff600080516020612dc98339815191525460401c1615612d7757565b631afcd79f60e31b60005260046000fdfe90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212209232b4abf8fc1b97729ff630be2dec4e7142baa1b5617e0512cbd121cda1057064736f6c634300081e0033