0 txs
12 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address _user) view returns (uint256)
coolDownInSecs
viewfunction coolDownInSecs() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DENOMINATOR
viewfunction DENOMINATOR() view returns (uint256)
expectedPenaltyAmount
viewfunction expectedPenaltyAmount(uint256 _slotIndex) view returns (uint256 penaltyAmount, uint256 amountToUser)
expectedPenaltyAmountByAccount
viewfunction expectedPenaltyAmountByAccount(address account, uint256 _slotIndex) view returns (uint256 penaltyAmount, uint256 amountToUser)
getFullyUnlock
viewfunction getFullyUnlock(address _user) view returns (uint256 unlockedAmount)
getNextAvailableUnlockSlot
viewfunction getNextAvailableUnlockSlot(address _user) view returns (uint256)
getRewardablePercentWAD
viewfunction getRewardablePercentWAD(address _user) view returns (uint256 percent)
getUserAmountInCoolDown
viewfunction getUserAmountInCoolDown(address _user) view returns (uint256)
getUserNthUnlockSlot
viewfunction getUserNthUnlockSlot(address _user, uint256 n) view returns (uint256 startTime, uint256 endTime, uint256 amountInCoolDown)
getUserTotalLocked
viewfunction getUserTotalLocked(address _user) view returns (uint256 _lockAmount)
getUserUnlockingSchedule
viewfunction getUserUnlockingSchedule(address _user) view returns (tuple[] slots)
getUserUnlockSlotLength
viewfunction getUserUnlockSlotLength(address _user) view returns (uint256)
masterPenpie
viewfunction masterPenpie() view returns (address)
maxSlot
viewfunction maxSlot() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
penaltyDestination
viewfunction penaltyDestination() view returns (address)
pendleVoteManager
viewfunction pendleVoteManager() view returns (address)
penpie
viewfunction penpie() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalAmountInCoolDown
viewfunction totalAmountInCoolDown() view returns (uint256)
totalLocked
viewfunction totalLocked() view returns (uint256)
totalPenalty
viewfunction totalPenalty() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
userUnlockings
viewfunction userUnlockings(address, uint256) view returns (uint256 startTime, uint256 endTime, uint256 amountInCoolDown)
__vlPenpie_init_
nonpayablefunction __vlPenpie_init_(address _masterPenpie, uint256 _maxSlots, address _penpie, uint256 _coolDownInSecs)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
cancelUnlock
nonpayablefunction cancelUnlock(uint256 _slotIndex)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
forceUnLock
nonpayablefunction forceUnLock(uint256 _slotIndex)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
lock
nonpayablefunction lock(uint256 _amount)
lockFor
nonpayablefunction lockFor(uint256 _amount, address _for)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setCoolDownInSecs
nonpayablefunction setCoolDownInSecs(uint256 _coolDownSecs)
setMasterChief
nonpayablefunction setMasterChief(address _masterPenpie)
setMaxSlots
nonpayablefunction setMaxSlots(uint256 _maxSlots)
setPenaltyDestination
nonpayablefunction setPenaltyDestination(address _penaltyDestination)
setPendleVoteManager
nonpayablefunction setPendleVoteManager(address _pendleVoteManager)
startUnlock
nonpayablefunction startUnlock(uint256 _amountToCoolDown)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferPenalty
nonpayablefunction transferPenalty()
unlock
nonpayablefunction unlock(uint256 _slotIndex)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CoolDownInSecsUpdated
event CoolDownInSecsUpdated(uint256 _coolDownSecs)
ForceUnLock
event ForceUnLock(address indexed user, uint256 slotIdx, uint256 penpieamount, uint256 penaltyAmount)
Initialized
event Initialized(uint8 version)
MaxSlotUpdated
event MaxSlotUpdated(uint256 _maxSlot)
NewLock
event NewLock(address indexed user, uint256 indexed timestamp, uint256 amount)
NewMasterChiefUpdated
event NewMasterChiefUpdated(address _oldMaster, address _newMaster)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PenaltyDestinationUpdated
event PenaltyDestinationUpdated(address penaltyDestination)
PenaltySentTo
event PenaltySentTo(address penaltyDestination, uint256 amount)
PendleVoteManagerSet
event PendleVoteManagerSet(address _pendleVoteManager)
ReLock
event ReLock(address indexed user, uint256 slotIdx, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unlock
event Unlock(address indexed user, uint256 indexed timestamp, uint256 amount)
UnlockStarts
event UnlockStarts(address indexed _user, uint256 indexed _timestamp, uint256 _amount)
Unpaused
event Unpaused(address account)
errors
AllUnlockSlotOccupied
error AllUnlockSlotOccupied()
BeyondUnlockLength
error BeyondUnlockLength()
BeyondUnlockSlotLimit
error BeyondUnlockSlotLimit()
InvalidAddress
error InvalidAddress()
InvalidCoolDownPeriod
error InvalidCoolDownPeriod()
InvalidRewardablePercent
error InvalidRewardablePercent()
MaxSlotCantLowered
error MaxSlotCantLowered()
MaxSlotShouldNotZero
error MaxSlotShouldNotZero()
NotEnoughLockedPenpie
error NotEnoughLockedPenpie()
NotInCoolDown
error NotInCoolDown()
OnlyAvailableOnArbitrum
error OnlyAvailableOnArbitrum()
PenaltyToNotSet
error PenaltyToNotSet()
StillInCoolDown
error StillInCoolDown()
TransferNotAllowed
error TransferNotAllowed()
UnlockedAlready
error UnlockedAlready()
UnlockSlotOccupied
error UnlockSlotOccupied()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612ab580620000f46000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c8063819bfd9e1161019d578063a9059cbb116100e9578063dd467064116100a2578063e3ad65341161007c578063e3ad653414610649578063e6af61c81461065c578063f2fde38b14610666578063f9fa1b391461067957600080fd5b8063dd467064146103a5578063dd62ed3e14610623578063de617b111461063657600080fd5b8063a9059cbb146105ba578063beea574e146105cd578063c8691afe146105e0578063ce002775146105e9578063d037443e146105fc578063d53b77ab1461060f57600080fd5b80638da5cb5b116101565780639f9996da116101305780639f9996da14610578578063a457c2d71461058b578063a506dc381461059e578063a80b54ad146105a757600080fd5b80638da5cb5b14610556578063918f86741461056757806395d89b411461057057600080fd5b8063819bfd9e146103a557806381cee15f146104e65780638456cb59146104fa578063873123091461050257806387994e28146105305780638c9d7b681461054357600080fd5b80633f4ba83a1161025c578063568914121161021557806370a08231116101ef57806370a08231146104a5578063715018a6146104b857806374841a7b146104c057806379c94062146104d357600080fd5b8063568914121461047f5780635c975abb146104875780636198e3391461049257600080fd5b80633f4ba83a1461042d5780633f4fb28114610435578063468fa7ee146104485780634778553d1461045b5780634a435f491461046e578063564a5e751461047657600080fd5b806323b872dd116102ae57806323b872dd1461039257806325f62b2a146103a5578063313ce567146103b8578063376cfef5146103c757806339509351146103ef5780633c41d5ab1461040257600080fd5b806306fdde03146102f6578063095ea7b31461031457806309ed69f21461033757806318160ddd1461034c57806322221a4d1461035f57806322607c611461037f575b600080fd5b6102fe610687565b60405161030b91906123ff565b60405180910390f35b61032761032236600461244e565b610719565b604051901515815260200161030b565b61034a610345366004612478565b610733565b005b610104545b60405190815260200161030b565b61037261036d366004612478565b610791565b60405161030b9190612493565b61035161038d366004612478565b6108b5565b6103276103a03660046124ec565b610949565b61034a6103b3366004612528565b61096d565b6040516012815260200161030b565b6103da6103d5366004612528565b6109bf565b6040805192835260208301919091520161030b565b6103276103fd36600461244e565b6109d5565b60fb54610415906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b61034a6109f7565b610351610443366004612478565b610a09565b610351610456366004612478565b610b09565b6103da61046936600461244e565b610d5f565b61034a610e70565b61035160fe5481565b610351610f0e565b60975460ff16610327565b61034a6104a0366004612528565b610f2c565b6103516104b3366004612478565b611057565b61034a611075565b61034a6104ce366004612478565b611087565b61034a6104e1366004612528565b6110de565b61010154610415906001600160a01b031681565b61034a61113d565b61051561051036600461244e565b61114d565b6040805193845260208401929092529082015260600161030b565b61034a61053e366004612528565b611190565b610351610551366004612478565b6111ee565b6065546001600160a01b0316610415565b61035161271081565b6102fe61120a565b61051561058636600461244e565b611219565b61032761059936600461244e565b611278565b61035160ff5481565b6103516105b5366004612478565b6112f3565b6103276105c836600461244e565b611393565b61034a6105db366004612478565b6113a1565b61035160fc5481565b6103516105f7366004612478565b611431565b61034a61060a366004612528565b6114af565b61010354610415906001600160a01b031681565b610351610631366004612541565b611602565b61034a610644366004612574565b61162d565b60fd54610415906001600160a01b031681565b6103516101025481565b61034a610674366004612478565b61180c565b61034a6103b33660046125b8565b606060368054610696906125db565b80601f01602080910402602001604051908101604052809291908181526020018280546106c2906125db565b801561070f5780601f106106e45761010080835404028352916020019161070f565b820191906000526020600020905b8154815290600101906020018083116106f257829003601f168201915b5050505050905090565b600033610727818585611885565b60019150505b92915050565b61073b6119a9565b61010380546001600160a01b0319166001600160a01b0383169081179091556040519081527fcf93abb4d9b63666c35aaf3998153bd97efc6218b2dce327b54fef5cf1d06080906020015b60405180910390a150565b6060600061079e836111ee565b90508067ffffffffffffffff8111156107b9576107b9612615565b60405190808252806020026020018201604052801561080e57816020015b6107fb60405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816107d75790505b50915060005b818110156108ae576001600160a01b0384166000908152610100602052604090208054829081106108475761084761262b565b906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820154815250508382815181106108905761089061262b565b602002602001018190525080806108a690612657565b915050610814565b5050919050565b60fb54604051635750ec5360e01b81523060048201526001600160a01b0383811660248301526000928392911690635750ec53906044016040805180830381865afa158015610908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092c9190612670565b50905061093883611431565b6109429082612694565b9392505050565b600033610957858285611a03565b610962858585611a7d565b506001949350505050565b610975611c56565b600260c954036109a05760405162461bcd60e51b8152600401610997906126a7565b60405180910390fd5b600260c95560408051630bcdfd5f60e21b815290519081900360040190fd5b6000806109cc3384610d5f565b91509150915091565b6000336107278185856109e88383611602565b6109f291906126de565b611885565b6109ff6119a9565b610a07611c9c565b565b600080610a15836111ee565b905060005b818110156108ae576001600160a01b038416600090815261010060205260408120805483908110610a4d57610a4d61262b565b906000526020600020906003020160020154118015610aa757506001600160a01b038416600090815261010060205260409020805482908110610a9257610a9261262b565b90600052602060002090600302016001015442115b15610af7576001600160a01b038416600090815261010060205260409020805482908110610ad757610ad761262b565b90600052602060002090600302016002015483610af491906126de565b92505b80610b0181612657565b915050610a1a565b600080610b15836108b5565b90506000610b2284611431565b90506000610b3082846126de565b905080600003610b4557506000949350505050565b80610b5884670de0b6b3a76400006126f1565b610b629190612708565b6001600160a01b0386166000908152610100602052604081209195504291905b8154811015610d2b576000828281548110610b9f57610b9f61262b565b9060005260206000209060030201600201541115610d1957818181548110610bc957610bc961262b565b906000526020600020906003020160010154421115610cca57818181548110610bf457610bf461262b565b90600052602060002090600302016000015483610c119190612694565b84838381548110610c2457610c2461262b565b906000526020600020906003020160000154848481548110610c4857610c4861262b565b906000526020600020906003020160010154610c649190612694565b848481548110610c7657610c7661262b565b906000526020600020906003020160020154670de0b6b3a7640000610c9b91906126f1565b610ca591906126f1565b610caf9190612708565b610cb99190612708565b610cc390886126de565b9650610d19565b83828281548110610cdd57610cdd61262b565b906000526020600020906003020160020154670de0b6b3a7640000610d0291906126f1565b610d0c9190612708565b610d1690886126de565b96505b80610d2381612657565b915050610b82565b50670de0b6b3a7640000861115610d5557604051634821f15760e11b815260040160405180910390fd5b5050505050919050565b6001600160a01b03821660009081526101006020526040812080548291829185908110610d8e57610d8e61262b565b60009182526020822060026003909202019081015490925090610db2600583612708565b90506000610dc08284612694565b600185015490915064e8d4a51000904211610e2d5764e8d4a51000600286600001548760010154610df19190612694565b8754610dfd9042612694565b610e0c9064e8d4a510006126f1565b610e169190612708565b610e20919061280e565b610e2a9190612708565b90505b600064e8d4a51000610e3f83856126f1565b610e499190612708565b9050610e5581856126de565b9650610e618786612694565b97505050505050509250929050565b610e786119a9565b610101546001600160a01b0316610ea257604051634cb89f3d60e11b815260040160405180910390fd5b610102805460009091556101015460fd54610eca916001600160a01b03918216911683611cee565b61010154604080516001600160a01b039092168252602082018390527ff62882a4c50156e52922bf390691acb0cef0424976e1ce6fb8755fa2c34eab939101610786565b600060ff54610f1d6101045490565b610f279190612694565b905090565b610f34611c56565b600260c95403610f565760405162461bcd60e51b8152600401610997906126a7565b600260c955610f653382611d45565b33600090815261010060205260408120805483908110610f8757610f8761262b565b906000526020600020906003020190504281600101541115610fbc5760405163ba28856560e01b815260040160405180910390fd5b8060020154600003610fe157604051634204906960e11b815260040160405180910390fd5b610fea33611d93565b6002810154610ff881611e70565b6000600283015560fd54611016906001600160a01b03163383611cee565b604051818152429033907ff7870c5b224cbc19873599e46ccfc7103934650509b1af0c3ce90138377c20049060200160405180910390a35050600160c95550565b600061106282611431565b61106b836108b5565b61072d91906126de565b61107d6119a9565b610a076000611f08565b61108f6119a9565b61010180546001600160a01b0319166001600160a01b0383169081179091556040519081527f9db59ef0c27af01d2c275b336b0e8f95fa3b1def6693975bb9e009b44a889db790602001610786565b6110e66119a9565b60fc5481116111085760405163877fccab60e01b815260040160405180910390fd5b60fc8190556040518181527fd47c02f96c4a46c9f2a757a1a8ae44a229f63b9c50b540380d92dea51bb81eaa90602001610786565b6111456119a9565b610a07611f5a565b610100602052816000526040600020818154811061116a57600080fd5b600091825260209091206003909102018054600182015460029092015490935090915083565b6111986119a9565b600081116111b95760405163844e73fb60e01b815260040160405180910390fd5b60fe8190556040518181527f383fa804824389da2cf426b0412ba9268441cff39e81a861284fe8acd2ee204890602001610786565b6001600160a01b03166000908152610100602052604090205490565b606060378054610696906125db565b6001600160a01b0382166000908152610100602052604081208054829182918291908690811061124b5761124b61262b565b90600052602060002090600302019050806000015493508060010154925080600201549150509250925092565b600033816112868286611602565b9050838110156112e65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610997565b6109628286868403611885565b6000806112ff836111ee565b905060fc548110156113115792915050565b60005b81811015611379576001600160a01b0384166000908152610100602052604090208054829081106113475761134761262b565b906000526020600020906003020160020154600003611367579392505050565b8061137181612657565b915050611314565b50604051630435bc5b60e41b815260040160405180910390fd5b600033610727818585611a7d565b6113a96119a9565b6001600160a01b0381166113d05760405163e6c4247b60e01b815260040160405180910390fd5b60fb80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f480a08fa963e4b26d1261a3558ae7ecf5304e3fe04a8718c993682b7a0bcf209910160405180910390a15050565b60008061143d836111ee565b90506000805b828110156114a7576001600160a01b0385166000908152610100602052604090208054829081106114765761147661262b565b9060005260206000209060030201600201548261149391906126de565b91508061149f81612657565b915050611443565b509392505050565b6114b7611c56565b600260c954036114d95760405162461bcd60e51b8152600401610997906126a7565b600260c9556114e83382611d45565b3360009081526101006020526040812080548390811061150a5761150a61262b565b90600052602060002090600302019050806002015460000361153f57604051634204906960e11b815260040160405180910390fd5b600281015460009061155033611d93565b826001015442101561156b57611565846109bf565b90925090505b6115788360020154611e70565b60fd5461158f906001600160a01b03163383611cee565b8161010260008282546115a291906126de565b909155505060006002840155426001840155604080518581526020810183905290810183905233907f79877461713348f098b74e44ee7f5085e25a32a5971d785177812b1b31fd8ad69060600160405180910390a25050600160c9555050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b600054610100900460ff161580801561164d5750600054600160ff909116105b806116675750303b158015611667575060005460ff166001145b6116ca5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610997565b6000805460ff1916600117905580156116ed576000805461ff0019166101001790555b6116f5611f97565b6116fd611fc6565b611705611ff5565b6117646040518060400160405280601981526020017f566f7465204c6f636b65642050656e646c652050656e7069650000000000000081525060405180604001604052806008815260200167766c50656e70696560c01b815250612024565b8360000361178557604051633585356d60e01b815260040160405180910390fd5b60fc84905560fb80546001600160a01b038088166001600160a01b03199283161790925560fd80549286169290911691909117905560fe8290558015611805576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6118146119a9565b6001600160a01b0381166118795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610997565b61188281611f08565b50565b6001600160a01b0383166118e75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610997565b6001600160a01b0382166119485760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610997565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6065546001600160a01b03163314610a075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610997565b6000611a0f8484611602565b90506000198114611a775781811015611a6a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610997565b611a778484848403611885565b50505050565b6001600160a01b038316611ae15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610997565b6001600160a01b038216611b435760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610997565b611b4e838383612055565b6001600160a01b03831660009081526033602052604090205481811015611bc65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610997565b6001600160a01b03808516600090815260336020526040808220858503905591851681529081208054849290611bfd9084906126de565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c4991815260200190565b60405180910390a3611a77565b60975460ff1615610a075760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610997565b611ca461206e565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611d409084906120b7565b505050565b60fc548110611d6757604051632116012b60e11b815260040160405180910390fd5b611d70826111ee565b8110611d8f576040516317aefd4360e31b815260040160405180910390fd5b5050565b6040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602082015b6060815260200190600190039081611dcd5790505090503082600081518110611df857611df861262b565b6001600160a01b03928316602091820292909201015260fb546040516338508cc760e11b81529116906370a1198e90611e3990859085908890600401612861565b600060405180830381600087803b158015611e5357600080fd5b505af1158015611e67573d6000803e3d6000fd5b50505050505050565b60fb546040516306669a9360e41b8152600481018390523360248201526001600160a01b0390911690636669a93090604401600060405180830381600087803b158015611ebc57600080fd5b505af1158015611ed0573d6000803e3d6000fd5b505050508060ff6000828254611ee69190612694565b92505081905550806101046000828254611f009190612694565b909155505050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611f62611c56565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611cd13390565b600054610100900460ff16611fbe5760405162461bcd60e51b8152600401610997906128e8565b610a07612189565b600054610100900460ff16611fed5760405162461bcd60e51b8152600401610997906128e8565b610a076121b9565b600054610100900460ff1661201c5760405162461bcd60e51b8152600401610997906128e8565b610a076121ec565b600054610100900460ff1661204b5760405162461bcd60e51b8152600401610997906128e8565b611d8f828261221a565b604051638cd22d1960e01b815260040160405180910390fd5b60975460ff16610a075760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610997565b600061210c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661225a9092919063ffffffff16565b805190915015611d40578080602001905181019061212a9190612933565b611d405760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610997565b600054610100900460ff166121b05760405162461bcd60e51b8152600401610997906128e8565b610a0733611f08565b600054610100900460ff166121e05760405162461bcd60e51b8152600401610997906128e8565b6097805460ff19169055565b600054610100900460ff166122135760405162461bcd60e51b8152600401610997906128e8565b600160c955565b600054610100900460ff166122415760405162461bcd60e51b8152600401610997906128e8565b603661224d83826129a3565b506037611d4082826129a3565b60606122698484600085612271565b949350505050565b6060824710156122d25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610997565b6001600160a01b0385163b6123295760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610997565b600080866001600160a01b031685876040516123459190612a63565b60006040518083038185875af1925050503d8060008114612382576040519150601f19603f3d011682016040523d82523d6000602084013e612387565b606091505b50915091506123978282866123a2565b979650505050505050565b606083156123b1575081610942565b8251156123c15782518084602001fd5b8160405162461bcd60e51b815260040161099791906123ff565b60005b838110156123f65781810151838201526020016123de565b50506000910152565b602081526000825180602084015261241e8160408501602087016123db565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461244957600080fd5b919050565b6000806040838503121561246157600080fd5b61246a83612432565b946020939093013593505050565b60006020828403121561248a57600080fd5b61094282612432565b602080825282518282018190526000919060409081850190868401855b828110156124df57815180518552868101518786015285015185850152606090930192908501906001016124b0565b5091979650505050505050565b60008060006060848603121561250157600080fd5b61250a84612432565b925061251860208501612432565b9150604084013590509250925092565b60006020828403121561253a57600080fd5b5035919050565b6000806040838503121561255457600080fd5b61255d83612432565b915061256b60208401612432565b90509250929050565b6000806000806080858703121561258a57600080fd5b61259385612432565b9350602085013592506125a860408601612432565b9396929550929360600135925050565b600080604083850312156125cb57600080fd5b8235915061256b60208401612432565b600181811c908216806125ef57607f821691505b60208210810361260f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161266957612669612641565b5060010190565b6000806040838503121561268357600080fd5b505080516020909101519092909150565b8181038181111561072d5761072d612641565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b8082018082111561072d5761072d612641565b808202811582820484141761072d5761072d612641565b60008261272557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561276557816000190482111561274b5761274b612641565b8085161561275857918102915b93841c939080029061272f565b509250929050565b60008261277c5750600161072d565b816127895750600061072d565b816001811461279f57600281146127a9576127c5565b600191505061072d565b60ff8411156127ba576127ba612641565b50506001821b61072d565b5060208310610133831016604e8410600b84101617156127e8575081810a61072d565b6127f2838361272a565b806000190482111561280657612806612641565b029392505050565b600061094260ff84168361276d565b600081518084526020808501945080840160005b838110156128565781516001600160a01b031687529582019590820190600101612831565b509495945050505050565b606081526000612874606083018661281d565b6020838203818501528186518084528284019150828160051b85010183890160005b838110156128c457601f198784030185526128b283835161281d565b94860194925090850190600101612896565b50506001600160a01b03979097166040969096019590955250939695505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561294557600080fd5b8151801515811461094257600080fd5b601f821115611d4057600081815260208120601f850160051c8101602086101561297c5750805b601f850160051c820191505b8181101561299b57828155600101612988565b505050505050565b815167ffffffffffffffff8111156129bd576129bd612615565b6129d1816129cb84546125db565b84612955565b602080601f831160018114612a0657600084156129ee5750858301515b600019600386901b1c1916600185901b17855561299b565b600085815260208120601f198616915b82811015612a3557888601518255948401946001909101908401612a16565b5085821015612a535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612a758184602087016123db565b919091019291505056fea264697066735822122070684cfef68b63511fae4c9b155223d0602be968f23ab63dc3161094751dee0464736f6c63430008130033