0 txs
0 calls
constructor
constructor(address owner_, address REFERRAL_, address _free, address marketingAddress_, address _signerAddress, address _fcc, address _fundAddress)
functions
balanceOf
viewfunction balanceOf(address account) view returns (uint256 balance)
balances
viewfunction balances(address) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
FCC
viewfunction FCC() view returns (address)
feePercentage
viewfunction feePercentage(uint8) view returns (uint256)
FREE
viewfunction FREE() view returns (address)
fundAddress
viewfunction fundAddress() view returns (address)
getTeamKpi
viewfunction getTeamKpi(address _user) view returns (uint256)
isPreacher
viewfunction isPreacher(address user) view returns (bool)
maxStakeAmount
viewfunction maxStakeAmount() view returns (uint256)
name
viewfunction name() view returns (string)
network1In
viewfunction network1In() view returns (uint256 value)
owner
viewfunction owner() view returns (address)
REFERRAL
viewfunction REFERRAL() view returns (address)
rewardOfSlot
viewfunction rewardOfSlot(address user, uint8 index) view returns (uint256 reward)
signerAddress
viewfunction signerAddress() view returns (address)
stakeCount
viewfunction stakeCount(address user) view returns (uint256 count)
symbol
viewfunction symbol() view returns (string)
t_supply
viewfunction t_supply(uint256) view returns (uint40 stakeTime, uint160 tamount)
teamTotalInvestValue
viewfunction teamTotalInvestValue(address) view returns (uint256)
teamVirtuallyInvestValue
viewfunction teamVirtuallyInvestValue(address) view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
usedSignatures
viewfunction usedSignatures(bytes32) view returns (bool)
userIndex
viewfunction userIndex(address) view returns (uint256)
userStakeRecord
viewfunction userStakeRecord(address, uint256) view returns (uint40 stakeTime, uint160 amount, bool status, uint8 stakeIndex)
setFCC
nonpayablefunction setFCC(address _fcc)
setFeePercentage
nonpayablefunction setFeePercentage(uint8 _stakeIndex, uint256 _feePercentage)
setFREE
nonpayablefunction setFREE(address _free)
setFundAddress
nonpayablefunction setFundAddress(address _fundAddress)
setMarketingAddress
nonpayablefunction setMarketingAddress(address _account)
setReferral
nonpayablefunction setReferral(address _referral)
setSignerAddress
nonpayablefunction setSignerAddress(address _signer)
setTeamVirtuallyInvestValue
nonpayablefunction setTeamVirtuallyInvestValue(address _user, uint256 _value)
stake
nonpayablefunction stake(uint160 _amount, uint256 amountOutMin, uint8 _stakeIndex, bytes message, bytes signature)
stakeWithInviter
nonpayablefunction stakeWithInviter(uint160 _amount, uint256 amountOutMin, uint8 _stakeIndex, address[] parents, bytes message, bytes signature)
sync
nonpayablefunction sync()
syncData
nonpayablefunction syncData(tuple[] dataList)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferTokens
nonpayablefunction transferTokens(address _token, address _to, uint256 _amount)
unstake
nonpayablefunction unstake(uint256 index) returns (uint256)
events
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
RewardPaid
event RewardPaid(address indexed user, uint256 reward, uint40 timestamp, uint256 index)
Staked
event Staked(address indexed user, uint256 amount, uint256 timestamp, uint256 index, uint256 stakeTime)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
errors
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
PRBMath_MulDiv18_Overflow
error PRBMath_MulDiv18_Overflow(uint256 x, uint256 y)
creation bytecode
0x610100604052670de0b6bbbcfeb9c060a0908152670de0b6c3c63b40a060c052670de0b6d3cc89fcc060e05261003990600190600361035b565b506040805160608101825262093a8081526213c680602082015262278d009181019190915261006c9060049060036103a4565b50601e60805234801561007d575f5ffd5b50604051614a60380380614a6083398101604081905261009c91610408565b5f80546001600160a01b0319166001600160a01b03891690811782556040518992907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b038881166001600160a01b031992831617909255600d80549287169290911691909117905560405163095ea7b360e01b81527310ed43c718714eb63d5aa57b78b54704e256024e60048201525f1960248201527355d398326f99059ff775485246999027b31979559063095ea7b3906044016020604051808303815f875af115801561017d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a19190610489565b50600a80546001600160a01b0319166001600160a01b03871690811790915560405163095ea7b360e01b81527310ed43c718714eb63d5aa57b78b54704e256024e60048201525f19602482015263095ea7b3906044016020604051808303815f875af1158015610213573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610489565b50600c80546001600160a01b038085166001600160a01b031992831617909255600e80548484169216919091179055600760205260c87f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5561012c7fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b8285560025f526101f47fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d55831661032f5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964207369676e6572206164647265737300000000000000000000604482015260640160405180910390fd5b5050600880546001600160a01b0319166001600160a01b0392909216919091179055506104af92505050565b8260038101928215610394579160200282015b8281111561039457825182906001600160401b031690559160200191906001019061036e565b506103a09291506103d9565b5090565b8260038101928215610394579160200282015b82811115610394578251829062ffffff169055916020019190600101906103b7565b5b808211156103a0575f81556001016103da565b80516001600160a01b0381168114610403575f5ffd5b919050565b5f5f5f5f5f5f5f60e0888a03121561041e575f5ffd5b610427886103ed565b9650610435602089016103ed565b9550610443604089016103ed565b9450610451606089016103ed565b935061045f608089016103ed565b925061046d60a089016103ed565b915061047b60c089016103ed565b905092959891949750929550565b5f60208284031215610499575f5ffd5b815180151581146104a8575f5ffd5b9392505050565b6080516145926104ce5f395f8181610b07015261357e01526145925ff3fe608060405234801561000f575f5ffd5b506004361061023f575f3560e01c8063839dba7c11610135578063c3896b89116100b4578063f293ed8811610079578063f293ed88146105bf578063f2fde38b146105d2578063f4fdf732146105e5578063f978fd61146105f8578063fff6cae91461061a575f5ffd5b8063c3896b8914610554578063c63568c714610567578063c96679fe1461057a578063d5b7670514610599578063e82bef29146105ac575f5ffd5b8063916dc266116100fa578063916dc266146104fc57806395d89b411461027e5780639e5914da1461050f578063a64b6e5f14610522578063b108b4cb14610535575f5ffd5b8063839dba7c1461049e57806385dc3004146104b15780638cd14fab146104c45780638da5cb5b146104d7578063906e9dd0146104e9575f5ffd5b806333060d90116101c15780635d80ca32116101865780635d80ca32146104305780635e61da081461043857806368fe33961461047057806370a082311461048357806372fbab3b14610496575f5ffd5b806333060d901461038857806347998157146103b05780634b413c2a146103db57806359f0c0e7146103fa5780635b7633d01461041d575f5ffd5b8063119b99f211610207578063119b99f21461032057806318160ddd1461033357806327e235e31461033c5780632e17de781461035b578063313ce5671461036e575f5ffd5b8063046dc16614610243578063069a8f2d1461025857806306fdde031461027e578063077a5a22146102b557806308adb4be146102d4575b5f5ffd5b610256610251366004613c62565b610622565b005b61026b610266366004613c8d565b6106c5565b6040519081526020015b60405180910390f35b6102a86040518060400160405280600b81526020016a436f6d707574696c69747960a81b81525081565b6040516102759190613cc0565b61026b6102c3366004613cf5565b60076020525f908152604090205481565b6102e76102e2366004613d0e565b610711565b6040805164ffffffffff90951685526001600160a01b0390931660208501529015159183019190915260ff166060820152608001610275565b61025661032e366004613d0e565b610768565b61026b600f5481565b61026b61034a366004613c62565b60106020525f908152604090205481565b61026b610369366004613d38565b6107ac565b610376601281565b60405160ff9091168152602001610275565b61026b610396366004613c62565b6001600160a01b03165f9081526012602052604090205490565b600a546103c3906001600160a01b031681565b6040516001600160a01b039091168152602001610275565b61026b6103e9366004613c62565b60146020525f908152604090205481565b61040d610408366004613c62565b610f77565b6040519015158152602001610275565b6008546103c3906001600160a01b031681565b61026b610f9d565b61044b610446366004613d38565b61106c565b6040805164ffffffffff90931683526001600160a01b03909116602083015201610275565b61025661047e366004613d93565b6110a3565b61026b610491366004613c62565b611175565b61026b611217565b6102566104ac366004613e2c565b6112c6565b6102566104bf366004613c62565b6115f4565b6102566104d2366004613f26565b61168c565b5f546103c3906001600160a01b031681565b6102566104f7366004613c62565b611996565b600c546103c3906001600160a01b031681565b61025661051d366004613c62565b6119e1565b610256610530366004613f95565b611a82565b61026b610543366004613c62565b60136020525f908152604090205481565b610256610562366004613c62565b611b56565b600b546103c3906001600160a01b031681565b61026b610588366004613c62565b60116020525f908152604090205481565b6102566105a7366004613fd3565b611c19565b600e546103c3906001600160a01b031681565b6102566105cd366004613c62565b611ce1565b6102566105e0366004613c62565b611d78565b61026b6105f3366004613c62565b611deb565b61040d610606366004613d38565b60096020525f908152604090205460ff1681565b610256611e18565b5f546001600160a01b031633146106545760405162461bcd60e51b815260040161064b90613fed565b60405180910390fd5b6001600160a01b0381166106a35760405162461bcd60e51b8152602060048201526016602482015275496e76616c6964207369676e6572206164647265737360501b604482015260640161064b565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382165f908152601260205260408120805482919060ff85169081106106f4576106f4614013565b905f5260205f2001905061070781611fc3565b9150505b92915050565b6012602052815f5260405f20818154811061072a575f80fd5b5f9182526020909120015464ffffffffff811692506001600160a01b03600160281b820416915060ff600160c81b8204811691600160d01b90041684565b5f546001600160a01b031633146107915760405162461bcd60e51b815260040161064b90613fed565b6001600160a01b039091165f90815260146020526040902055565b5f3233146107cc5760405162461bcd60e51b815260040161064b90614027565b5f5f6107d784612062565b600a546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610825573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108499190614044565b6040516370a0823160e01b81523060048201529091505f905f51602061453d5f395f51905f52906370a0823190602401602060405180830381865afa158015610894573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b89190614044565b6040805160028082526060820183529293505f9290916020830190803683375050600a5482519293506001600160a01b0316918391505f906108fc576108fc614013565b60200260200101906001600160a01b031690816001600160a01b0316815250505f51602061453d5f395f51905f528160018151811061093d5761093d614013565b6001600160a01b0390921660209283029190910190910152604051634401edf760e11b81527310ed43c718714eb63d5aa57b78b54704e256024e90638803dbee9061099490889087908690309042906004016140b2565b5f604051808303815f875af11580156109af573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109d6919081019061413f565b50600a546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a1d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a419190614044565b6040516370a0823160e01b81523060048201529091505f905f51602061453d5f395f51905f52906370a0823190602401602060405180830381865afa158015610a8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab09190614044565b90505f610abd83876141e8565b90505f610aca86846141e8565b90505f88821115610ae257610adf89836141e8565b90505b5f610aed338361229b565b600b5460405163195006c760e11b815233600482015260ff7f00000000000000000000000000000000000000000000000000000000000000001660248201529192505f916001600160a01b03909116906332a00d8e906044015f60405180830381865afa158015610b60573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b8791908101906141fb565b90505f5b81518160ff161015610c8d578b60135f848460ff1681518110610bb057610bb0614013565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205410610c36578b60135f848460ff1681518110610bf657610bf6614013565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254610c2b91906141e8565b90915550610c7b9050565b5f60135f848460ff1681518110610c4f57610c4f614013565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055505b80610c858161428a565b915050610b8b565b505f610c998285612445565b90505f6064610ca98660096142a8565b610cb391906142d3565b90505f6064610cc38760036142a8565b610ccd91906142d3565b90508115610de4576040805160028082526060820183525f926020830190803683370190505090505f51602061453d5f395f51905f52815f81518110610d1557610d15614013565b6001600160a01b039283166020918202929092010152600c54825191169082906001908110610d4657610d46614013565b6001600160a01b03909216602092830291909101909101526040516338ed173960e01b81527310ed43c718714eb63d5aa57b78b54704e256024e906338ed173990610d9f9086905f90869061dead9042906004016140b2565b5f604051808303815f875af1158015610dba573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610de1919081019061413f565b50505b8015610e6957600e5460405163a9059cbb60e01b81525f51602061453d5f395f51905f529163a9059cbb91610e27916001600160a01b03169085906004016142e6565b6020604051808303815f875af1158015610e43573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6791906142ff565b505b5f51602061453d5f395f51905f5263a9059cbb33838587610e8a8b8e6141e8565b610e9491906141e8565b610e9e91906141e8565b610ea891906141e8565b6040518363ffffffff1660e01b8152600401610ec59291906142e6565b6020604051808303815f875af1158015610ee1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0591906142ff565b50600a546040516337470d6f60e21b8152600481018a90526001600160a01b039091169063dd1c35bc906024015f604051808303815f87803b158015610f49575f5ffd5b505af1158015610f5b573d5f5f3e3d5ffd5b505050508e9f505050505050505050505050505050505b919050565b6001600160a01b03165f90815260106020526040902054680ad78ebc5ac6200000111590565b5f5f610fa7611217565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b0316631a7abd976040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101e919061431e565b90505f61102c606483614344565b6001600160701b0316905080831115611048575f935050505090565b61106461105584836141e8565b683635c9adc5dea00000612a63565b935050505090565b6015818154811061107b575f80fd5b5f9182526020909120015464ffffffffff81169150600160281b90046001600160a01b031682565b3233146110c25760405162461bcd60e51b815260040161064b90614027565b6110ca610f9d565b876001600160a01b031611156110f25760405162461bcd60e51b815260040161064b90614371565b60028560ff1611156111165760405162461bcd60e51b815260040161064b90614390565b61112284848484612a7a565b15611136576111318786612be8565b611157565b60ff85165f9081526007602052604090205415611157576111578786612db3565b6111618787612ff9565b61116c33888761333c565b50505050505050565b6001600160a01b0381165f9081526012602052604081208054156112115780545f906111a3906001906141e8565b90505b5f8282815481106111b9576111b9614013565b5f91825260208220018054909250600160c81b900460ff16151590036111ef576111e281611fc3565b6111ec90856143ad565b93505b815f036111fc575061120f565b5080611207816143c0565b9150506111a6565b505b50919050565b6015545f9080820361122a575f91505090565b5f611236603c426141e8565b600f549091505f6112486001856141e8565b90505b5f6015828154811061125f5761125f614013565b5f918252602090912001805490915064ffffffffff1684111561128257506112b7565b80546001600160a01b03600160281b909104169250815f036112a457506112b7565b50806112af816143c0565b91505061124b565b5080600f5461106491906141e8565b3233146112e55760405162461bcd60e51b815260040161064b90614027565b6112ed610f9d565b896001600160a01b031611156113155760405162461bcd60e51b815260040161064b90614371565b670de0b6b3a7640000896001600160a01b0316101561135c5760405162461bcd60e51b81526020600482015260036024820152623e3d3160e81b604482015260640161064b565b60028760ff1611156113805760405162461bcd60e51b815260040161064b90614390565b61138c84848484612a7a565b156113a05761139b8988612be8565b6113c1565b60ff87165f90815260076020526040902054156113c1576113c18988612db3565b6113cb8989612ff9565b600b54604051633bb1db8160e21b81523360048201819052916001600160a01b03169063eec76e0490602401602060405180830381865afa158015611412573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143691906142ff565b6115dd575f805b8781101561158d57600b546001600160a01b031663eec76e048a8a8481811061146857611468614013565b905060200201602081019061147d9190613c62565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156114bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e391906142ff565b1561158557600b546001600160a01b0316637a9a433c8a8a8481811061150b5761150b614013565b90506020020160208101906115209190613c62565b6040516001600160e01b031960e084901b1681526001600160a01b03918216600482015290861660248201526044015f604051808303815f87803b158015611566575f5ffd5b505af1158015611578573d5f5f3e3d5ffd5b505050506001915061158d565b60010161143d565b50806115db5760405162461bcd60e51b815260206004820152601760248201527f4e6f2076616c696420726566657272616c20666f756e64000000000000000000604482015260640161064b565b505b6115e8818b8a61333c565b50505050505050505050565b5f546001600160a01b0316331461161d5760405162461bcd60e51b815260040161064b90613fed565b6001600160a01b03811661166a5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642066756e64206164647265737360601b604482015260640161064b565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146116b55760405162461bcd60e51b815260040161064b90613fed565b5f5b8181101561199157368383838181106116d2576116d2614013565b905060c0020190506116e2610f9d565b6116f26040830160208401613c62565b6001600160a01b031611156117195760405162461bcd60e51b815260040161064b90614371565b600261172b6080830160608401613cf5565b60ff16111561174c5760405162461bcd60e51b815260040161064b90614390565b5f61175d60c0830160a084016143d5565b64ffffffffff16116117a15760405162461bcd60e51b815260206004820152600d60248201526c07374616b6554696d65203e203609c1b604482015260640161064b565b600b546001600160a01b031663eec76e046117bf6020840184613c62565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611801573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182591906142ff565b1580156118b45750600b546001600160a01b031663eec76e0461184e60a0840160808501613c62565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611890573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118b491906142ff565b1561194357600b546001600160a01b0316637a9a433c6118da60a0840160808501613c62565b6118e76020850185613c62565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044015f604051808303815f87803b15801561192c575f5ffd5b505af115801561193e573d5f5f3e3d5ffd5b505050505b6119886119536020830183613c62565b6119636040840160208501613c62565b6119736080850160608601613cf5565b61198360c0860160a087016143d5565b613344565b506001016116b7565b505050565b5f546001600160a01b031633146119bf5760405162461bcd60e51b815260040161064b90613fed565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314611a0a5760405162461bcd60e51b815260040161064b90613fed565b6001600160a01b038116611a605760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420726566657272616c20616464726573730000000000000000604482015260640161064b565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314611aab5760405162461bcd60e51b815260040161064b90613fed565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90611ad990859085906004016142e6565b6020604051808303815f875af1158015611af5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1991906142ff565b6119915760405162461bcd60e51b815260206004820152600e60248201526d3a3930b739b332b91032b93937b960911b604482015260640161064b565b5f546001600160a01b03163314611b7f5760405162461bcd60e51b815260040161064b90613fed565b600a80546001600160a01b0319166001600160a01b03831690811790915560405163095ea7b360e01b815263095ea7b390611bd5907310ed43c718714eb63d5aa57b78b54704e256024e905f19906004016142e6565b6020604051808303815f875af1158015611bf1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c1591906142ff565b5050565b5f546001600160a01b03163314611c425760405162461bcd60e51b815260040161064b90613fed565b60028260ff161115611c8b5760405162461bcd60e51b8152602060048201526012602482015271092dcecc2d8d2c840e6e8c2d6ca92dcc8caf60731b604482015260640161064b565b6103e8811115611ccc5760405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b604482015260640161064b565b60ff9091165f90815260076020526040902055565b5f546001600160a01b03163314611d0a5760405162461bcd60e51b815260040161064b90613fed565b6001600160a01b038116611d565760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420464343206164647265737360681b604482015260640161064b565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314611da15760405162461bcd60e51b815260040161064b90613fed565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b0381165f90815260146020908152604080832054601390925282205461070b91906143ad565b6040516370a0823160e01b81523060048201525f905f51602061453d5f395f51905f52906370a0823190602401602060405180830381865afa158015611e60573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e849190614044565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b031663c816841b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ed7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efb91906143f9565b60405163a9059cbb60e01b81529091505f51602061453d5f395f51905f529063a9059cbb90611f3090849086906004016142e6565b6020604051808303815f875af1158015611f4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7091906142ff565b50806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611fa9575f5ffd5b505af1158015611fbb573d5f5f3e3d5ffd5b505050505050565b80545f906001600160a01b03600160281b8204169064ffffffffff1682611fea8242614414565b9050611ff98162278d0061373b565b90508064ffffffffff165f036120115782935061205a565b8454612057906120509064ffffffffff84169061204a90600190600160d01b900460ff166003811061204557612045614013565b015490565b90613757565b84906137bb565b93505b505050919050565b335f818152601260205260408120805491928392909190839082908790811061208d5761208d614013565b5f918252602090912001805490915064ffffffffff811690600490600160d01b900460ff16600381106120c2576120c2614013565b01546120ce82426141e8565b10156121145760405162461bcd60e51b8152602060048201526015602482015274151a19481d1a5b59481a5cc81b9bdd081c9a59da1d605a1b604482015260640161064b565b8154600160c81b900460ff16156121535760405162461bcd60e51b8152602060048201526003602482015262616c7760e81b604482015260640161064b565b8154600f8054600160281b9092046001600160a01b0316965086915f9061217b9084906141e8565b90915550506001600160a01b0384165f90815260106020526040812080548792906121a79084906141e8565b90915550506040518581525f906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36121f582611fc3565b825460ff60c81b1916600160c81b1783556001600160a01b0385165f9081526011602052604090205490965061222c9060016143ad565b6001600160a01b0385165f8181526011602090815260409182902093909355805189815264ffffffffff4216938101939093528201899052907f48711929c842404f1d698f9525c36a831e8224d0bac22977e91904b3fe9f65649060600160405180910390a250505050915091565b5f60646122a98360056142a8565b6122b391906142d3565b600b54604051633b0f0f2f60e01b81526001600160a01b0386811660048301529293505f9290911690633b0f0f2f90602401602060405180830381865afa158015612300573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061232491906143f9565b90506001600160a01b03811615801590612342575061234281610f77565b156123bf5760405163a9059cbb60e01b81525f51602061453d5f395f51905f529063a9059cbb9061237990849086906004016142e6565b6020604051808303815f875af1158015612395573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123b991906142ff565b5061243e565b600d5460405163a9059cbb60e01b81525f51602061453d5f395f51905f529163a9059cbb916123fc916001600160a01b03169086906004016142e6565b6020604051808303815f875af1158015612418573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243c91906142ff565b505b5092915050565b5f8080601881606461245783886142a8565b61246191906142d3565b94505f5b87518110156129b05787818151811061248057612480614013565b6020026020010151945061249385611deb565b93506a0422ca8b0a00a42500000084101580156124af57508183115b80156124bf57506124bf85610f77565b1561255b575f51602061453d5f395f51905f5263a9059cbb8660646124e486886141e8565b6124ee908c6142a8565b6124f891906142d3565b6040518363ffffffff1660e01b81526004016125159291906142e6565b6020604051808303815f875af1158015612531573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061255591906142ff565b50601891505b69d3c21bcecceda1000000841015801561257f57506a0422ca8b0a00a42500000084105b801561258b5750601482105b801561259b575061259b85610f77565b15612638575f51602061453d5f395f51905f5263a9059cbb8660646125c18660146141e8565b6125cb908c6142a8565b6125d591906142d3565b6040518363ffffffff1660e01b81526004016125f29291906142e6565b6020604051808303815f875af115801561260e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061263291906142ff565b50601491505b6969e10de76676d0800000841015801561265b575069d3c21bcecceda100000084105b80156126675750601082105b8015612677575061267785610f77565b15612714575f51602061453d5f395f51905f5263a9059cbb86606461269d8660106141e8565b6126a7908c6142a8565b6126b191906142d3565b6040518363ffffffff1660e01b81526004016126ce9291906142e6565b6020604051808303815f875af11580156126ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270e91906142ff565b50601091505b69152d02c7e14af6800000841015801561273757506969e10de76676d080000084105b80156127435750600c82105b8015612753575061275385610f77565b156127f0575f51602061453d5f395f51905f5263a9059cbb86606461277986600c6141e8565b612783908c6142a8565b61278d91906142d3565b6040518363ffffffff1660e01b81526004016127aa9291906142e6565b6020604051808303815f875af11580156127c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127ea91906142ff565b50600c91505b690a968163f0a57b4000008410158015612813575069152d02c7e14af680000084105b801561281f5750600882105b801561282f575061282f85610f77565b156128cc575f51602061453d5f395f51905f5263a9059cbb8660646128558660086141e8565b61285f908c6142a8565b61286991906142d3565b6040518363ffffffff1660e01b81526004016128869291906142e6565b6020604051808303815f875af11580156128a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128c691906142ff565b50600891505b69021e19e0c9bab240000084101580156128ef5750690a968163f0a57b40000084105b80156128fb5750600482105b801561290b575061290b85610f77565b156129a8575f51602061453d5f395f51905f5263a9059cbb8660646129318660046141e8565b61293b908c6142a8565b61294591906142d3565b6040518363ffffffff1660e01b81526004016129629291906142e6565b6020604051808303815f875af115801561297e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129a291906142ff565b50600491505b600101612465565b5080821115612a5957600d545f51602061453d5f395f51905f529063a9059cbb906001600160a01b031660646129e6858b6142a8565b6129f091906142d3565b6129fa90896141e8565b6040518363ffffffff1660e01b8152600401612a179291906142e6565b6020604051808303815f875af1158015612a33573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a5791906142ff565b505b5050505092915050565b5f818310612a715781612a73565b825b9392505050565b5f811580612a86575083155b15612a9257505f612be0565b612a9c85856137cc565b612aa757505f612be0565b5f612ae686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061380892505050565b90505f612b288286868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061384292505050565b6008549091506001600160a01b03808316911614612b4a575f92505050612be0565b5f8585604051612b5b929190614431565b60408051918290039091205f8181526009602052919091205490915060ff1615612bc05760405162461bcd60e51b815260206004820152601660248201527514da59db985d1d5c9948185b1c9958591e481d5cd95960521b604482015260640161064b565b5f908152600960205260409020805460ff19166001908117909155925050505b949350505050565b6040805160028082526060820183525f926020830190803683370190505090505f51602061453d5f395f51905f52815f81518110612c2857612c28614013565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110612c5957612c59614013565b6001600160a01b0392831660209182029290920181019190915260ff84165f90815260079091526040812054909161271091612c969187166142a8565b612ca091906142d3565b60405163d06ca61f60e01b81529091505f907310ed43c718714eb63d5aa57b78b54704e256024e9063d06ca61f90612cde9085908790600401614440565b5f60405180830381865afa158015612cf8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d1f919081019061413f565b600a5481519192506001600160a01b03169063a9059cbb9061dead9084906001908110612d4e57612d4e614013565b60200260200101516040518363ffffffff1660e01b8152600401612d739291906142e6565b6020604051808303815f875af1158015612d8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbb91906142ff565b6040805160028082526060820183525f926020830190803683370190505090505f51602061453d5f395f51905f52815f81518110612df357612df3614013565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110612e2457612e24614013565b6001600160a01b0392831660209182029290920181019190915260ff84165f90815260079091526040812054909161271091612e619187166142a8565b612e6b91906142d3565b60405163d06ca61f60e01b81529091505f907310ed43c718714eb63d5aa57b78b54704e256024e9063d06ca61f90612ea99085908790600401614440565b5f60405180830381865afa158015612ec3573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612eea919081019061413f565b90505f81600181518110612f0057612f00614013565b6020908102919091010151600a546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b0316906323b872dd906064016020604051808303815f875af1158015612f60573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f8491906142ff565b50600a5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90612fb99061dead9085906004016142e6565b6020604051808303815f875af1158015612fd5573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116c91906142ff565b6040516323b872dd60e01b81523360048201523060248201526001600160a01b03831660448201525f51602061453d5f395f51905f52906323b872dd906064016020604051808303815f875af1158015613055573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061307991906142ff565b506040805160028082526060820183525f926020830190803683370190505090505f51602061453d5f395f51905f52815f815181106130ba576130ba614013565b6001600160a01b039283166020918202929092010152600a548251911690829060019081106130eb576130eb614013565b6001600160a01b039283166020918202929092010152600a546040516370a0823160e01b81523060048201525f9291909116906370a0823190602401602060405180830381865afa158015613142573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131669190614044565b90507310ed43c718714eb63d5aa57b78b54704e256024e635c11d79561318d600287614458565b858530426040518663ffffffff1660e01b81526004016131b1959493929190614486565b5f604051808303815f87803b1580156131c8575f5ffd5b505af11580156131da573d5f5f3e3d5ffd5b5050600a546040516370a0823160e01b81523060048201525f93506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015613226573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061324a9190614044565b600a549091507310ed43c718714eb63d5aa57b78b54704e256024e9063e8e33700905f51602061453d5f395f51905f52906001600160a01b031661328f60028a614458565b61329987876141e8565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401529216604482015260648101919091525f6084820181905260a4820181905260c48201524260e4820152610104016060604051808303815f875af115801561330e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061333291906144ac565b5050505050505050565b611991838383425b600b54604051633bb1db8160e21b81526001600160a01b0386811660048301529091169063eec76e0490602401602060405180830381865afa15801561338c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133b091906142ff565b6133e55760405162461bcd60e51b81526020600482015260066024820152650848589a5b9960d21b604482015260640161064b565b60408051808201825264ffffffffff838116808352600f80546001600160a01b039081166020808701918252601580546001810182555f91825288517f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475909101805494518616600160281b026001600160c81b03199095169190981617929092179095558651608081018852968701819052928652881692850183905260ff87166060860152805493949390919061349e9084906143ad565b90915550506001600160a01b038681165f9081526010602052604081208054928816929091906134cf9084906143ad565b90915550506001600160a01b038681165f818152601260209081526040808320805460018101825581855283852088519082018054958a01518a86015160608c015164ffffffffff9094166001600160c81b031990981697909717600160281b918b16919091021761ffff60c81b1916600160c81b9615159690960260ff60d01b191695909517600160d01b60ff9283160217909455600b54925163195006c760e11b815260048101969096527f000000000000000000000000000000000000000000000000000000000000000090931660248601529491939116906332a00d8e906044015f60405180830381865afa1580156135ce573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526135f591908101906141fb565b90505f5b81518160ff16101561367457886001600160a01b031660135f848460ff168151811061362757613627614013565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461365c91906143ad565b9091555081905061366c8161428a565b9150506135f9565b506040516001600160a01b0389811682528a16905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3886001600160a01b03167f9cfd25589d1eb8ad71e342a86a8524e83522e3936c0803048c08f6d9ad974f4089888560048c60ff16600381106136fb576136fb614013565b0154604080516001600160a01b03909516855264ffffffffff909316602085015291830152606082015260800160405180910390a2505050505050505050565b5f8164ffffffffff168364ffffffffff1610612a715781612a73565b5f82816001841661377057670de0b6b3a7640000613772565b815b9050600184901c93505b83156137b05761378c828361386a565b915060018416156137a4576137a1818361386a565b90505b600184901c935061377c565b805b95945050505050565b5f612a736137c9848461386a565b90565b5f603982146137dc57505f61070b565b603583013560e01c804281118015906137b2575061012c6137fd82426141e8565b111595945050505050565b5f613813825161391c565b826040516020016138259291906144ee565b604051602081830303815290604052805190602001209050919050565b5f5f5f5f61385086866139ab565b92509250925061386082826139f4565b5090949350505050565b5f80805f19848609848602925082811083820303915050805f0361389b5750670de0b6b3a76400009004905061070b565b670de0b6b3a764000081106138cd57604051635173648d60e01b8152600481018690526024810185905260440161064b565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b60605f61392883613aac565b60010190505f816001600160401b038111156139465761394661405b565b6040519080825280601f01601f191660200182016040528015613970576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461397a57509392505050565b5f5f5f83516041036139e2576020840151604085015160608601515f1a6139d488828585613b83565b9550955095505050506139ed565b505081515f91506002905b9250925092565b5f826003811115613a0757613a07614528565b03613a10575050565b6001826003811115613a2457613a24614528565b03613a425760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115613a5657613a56614528565b03613a775760405163fce698f760e01b81526004810182905260240161064b565b6003826003811115613a8b57613a8b614528565b03611c15576040516335e2f38360e21b81526004810182905260240161064b565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613aea5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613b16576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310613b3457662386f26fc10000830492506010015b6305f5e1008310613b4c576305f5e100830492506008015b6127108310613b6057612710830492506004015b60648310613b72576064830492506002015b600a831061070b5760010192915050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613bbc57505f91506003905082613c41565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613c0d573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613c3857505f925060019150829050613c41565b92505f91508190505b9450945094915050565b6001600160a01b0381168114613c5f575f5ffd5b50565b5f60208284031215613c72575f5ffd5b8135612a7381613c4b565b803560ff81168114610f72575f5ffd5b5f5f60408385031215613c9e575f5ffd5b8235613ca981613c4b565b9150613cb760208401613c7d565b90509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215613d05575f5ffd5b612a7382613c7d565b5f5f60408385031215613d1f575f5ffd5b8235613d2a81613c4b565b946020939093013593505050565b5f60208284031215613d48575f5ffd5b5035919050565b5f5f83601f840112613d5f575f5ffd5b5081356001600160401b03811115613d75575f5ffd5b602083019150836020828501011115613d8c575f5ffd5b9250929050565b5f5f5f5f5f5f5f60a0888a031215613da9575f5ffd5b8735613db481613c4b565b965060208801359550613dc960408901613c7d565b945060608801356001600160401b03811115613de3575f5ffd5b613def8a828b01613d4f565b90955093505060808801356001600160401b03811115613e0d575f5ffd5b613e198a828b01613d4f565b989b979a50959850939692959293505050565b5f5f5f5f5f5f5f5f5f60c08a8c031215613e44575f5ffd5b8935613e4f81613c4b565b985060208a01359750613e6460408b01613c7d565b965060608a01356001600160401b03811115613e7e575f5ffd5b8a01601f81018c13613e8e575f5ffd5b80356001600160401b03811115613ea3575f5ffd5b8c60208260051b8401011115613eb7575f5ffd5b6020919091019650945060808a01356001600160401b03811115613ed9575f5ffd5b613ee58c828d01613d4f565b90955093505060a08a01356001600160401b03811115613f03575f5ffd5b613f0f8c828d01613d4f565b915080935050809150509295985092959850929598565b5f5f60208385031215613f37575f5ffd5b82356001600160401b03811115613f4c575f5ffd5b8301601f81018513613f5c575f5ffd5b80356001600160401b03811115613f71575f5ffd5b85602060c083028401011115613f85575f5ffd5b6020919091019590945092505050565b5f5f5f60608486031215613fa7575f5ffd5b8335613fb281613c4b565b92506020840135613fc281613c4b565b929592945050506040919091013590565b5f5f60408385031215613fe4575f5ffd5b613d2a83613c7d565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260039082015262454f4160e81b604082015260600190565b5f60208284031215614054575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b5f8151808452602084019350602083015f5b828110156140a85781516001600160a01b0316865260209586019590910190600101614081565b5093949350505050565b85815284602082015260a060408201525f6140d060a083018661406f565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f191681016001600160401b03811182821017156141155761411561405b565b604052919050565b5f6001600160401b038211156141355761413561405b565b5060051b60200190565b5f6020828403121561414f575f5ffd5b81516001600160401b03811115614164575f5ffd5b8201601f81018413614174575f5ffd5b80516141876141828261411d565b6140ed565b8082825260208201915060208360051b8501019250868311156141a8575f5ffd5b6020840193505b828410156141ca5783518252602093840193909101906141af565b9695505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561070b5761070b6141d4565b5f6020828403121561420b575f5ffd5b81516001600160401b03811115614220575f5ffd5b8201601f81018413614230575f5ffd5b805161423e6141828261411d565b8082825260208201915060208360051b85010192508683111561425f575f5ffd5b6020840193505b828410156141ca57835161427981613c4b565b825260209384019390910190614266565b5f60ff821660ff810361429f5761429f6141d4565b60010192915050565b808202811582820484141761070b5761070b6141d4565b634e487b7160e01b5f52601260045260245ffd5b5f826142e1576142e16142bf565b500490565b6001600160a01b03929092168252602082015260400190565b5f6020828403121561430f575f5ffd5b81518015158114612a73575f5ffd5b5f6020828403121561432e575f5ffd5b81516001600160701b0381168114612a73575f5ffd5b5f6001600160701b0383168061435c5761435c6142bf565b806001600160701b0384160491505092915050565b60208082526005908201526403c313030360dc1b604082015260600190565b6020808252600390820152621e1e9960e91b604082015260600190565b8082018082111561070b5761070b6141d4565b5f816143ce576143ce6141d4565b505f190190565b5f602082840312156143e5575f5ffd5b813564ffffffffff81168114612a73575f5ffd5b5f60208284031215614409575f5ffd5b8151612a7381613c4b565b64ffffffffff828116828216039081111561070b5761070b6141d4565b818382375f9101908152919050565b828152604060208201525f612be0604083018461406f565b5f6001600160a01b03831680614470576144706142bf565b6001600160a01b03929092169190910492915050565b60018060a01b038616815284602082015260a060408201525f6140d060a083018661406f565b5f5f5f606084860312156144be575f5ffd5b5050815160208301516040909301519094929350919050565b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f612be0614522601a8401866144d7565b846144d7565b634e487b7160e01b5f52602160045260245ffdfe00000000000000000000000055d398326f99059ff775485246999027b3197955a2646970667358221220d173e69cd6320e5d36276d22a92714df31bd8a80dfaa4cdc46317dda0b6f28b964736f6c634300081e0033000000000000000000000000f6c86bd93a870053fdef2bd4ddf0b7c074f276870000000000000000000000003391c0185157567750a8e2d327163359f1fc2fd000000000000000000000000010c107612196c26e69baf322ae766776dd888888000000000000000000000000fd0c01b851e0d7b7f4215fad3f9f34294f9cc6d0000000000000000000000000869cc0f1cb6b77f6939fa8165ebdea850757bdb7000000000000000000000000e843863ea1a69a4a061ad50268c2965f83666666000000000000000000000000d5e613bf5403a0d5196626d708ad176e4a1c7994