0 txs
2.4k calls
constructor
constructor()
functions
CONFIG_MANAGER
viewfunction CONFIG_MANAGER() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getLockRewardFactor
viewfunction getLockRewardFactor(uint256 _days) view returns (uint256)
getRewardReserveStatus
viewfunction getRewardReserveStatus() view returns (uint256 totalReserved, uint256 availableBalance, uint256 requiredBalance)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getUserPoolStake
viewfunction getUserPoolStake(address user) view returns (tuple)
getUserStakeOverview
viewfunction getUserStakeOverview(address user) view returns (tuple)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
lockDays
viewfunction lockDays(uint256) view returns (uint256)
lockRewardFactors
viewfunction lockRewardFactors(uint256) view returns (uint256)
maxLockRewardFactor
viewfunction maxLockRewardFactor() view returns (uint256)
moreToken
viewfunction moreToken() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingReward
viewfunction pendingReward(address _user) view returns (uint256 totalPending, uint256 claimablePending)
pool
viewfunction pool() view returns (uint256 totalStaked, uint256 rewardPerBlock, uint256 accumulatedRewardPerShare, uint256 lastRewardBlock, uint256 startBlock, uint256 endBlock, bool stakingActive, uint256 reservedRewards)
predictWithdrawalReward
viewfunction predictWithdrawalReward(address _user, uint256 _withdrawAmount) view returns (uint256)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
REWARD_PRECISION
viewfunction REWARD_PRECISION() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
UPGRADE_MANAGER
viewfunction UPGRADE_MANAGER() view returns (bytes32)
userPoolStakes
viewfunction userPoolStakes(address) view returns (uint256 totalWithdrawn, uint256 totalClaimedRewards, uint256 pendingRewards, uint256 currentStaked)
emergencyRefund
nonpayablefunction emergencyRefund()
emergencyWithdrawReserves
nonpayablefunction emergencyWithdrawReserves(address _to)
endStaking
nonpayablefunction endStaking()
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _owner, address _moreToken)
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setLockRewardFactors
nonpayablefunction setLockRewardFactors(uint256[] _days, uint256[] _factors)
setRewardPerBlock
nonpayablefunction setRewardPerBlock(uint256 _rewardPerBlock)
stake
nonpayablefunction stake(uint256 _amount, uint256 _lockDays)
startStaking
nonpayablefunction startStaking()
unpause
nonpayablefunction unpause()
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw(uint256 _withdrawAmount)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
EmergencyRefunded
event EmergencyRefunded(address indexed user, uint256 amount)
EmergencyWithdrawReserves
event EmergencyWithdrawReserves(address indexed user, uint256 amount)
Initialized
event Initialized(uint8 version)
LockRewardFactorUpdated
event LockRewardFactorUpdated(uint256 lockDays, uint256 factor)
Paused
event Paused(address account)
RewardPerBlockUpdated
event RewardPerBlockUpdated(uint256 newRewardPerBlock)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Staked
event Staked(address indexed user, uint256 amount, uint256 lockDays, uint256 rewardFactor, uint256 unlockTime)
StakingEnded
event StakingEnded(uint256 endBlock)
StakingStarted
event StakingStarted(uint256 startBlock)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
Withdrawn
event Withdrawn(address indexed user, uint256 principal, uint256 reward)
errors
No errors.
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051613bae6200011f600039600081816112f501528181611335015281816118f70152818161193701526119c60152613bae6000f3fe60806040526004361061021a5760003560e01c80635c975abb11610123578063a1daa58d116100ab578063d547741f1161006f578063d547741f146106b8578063e54f4858146106d8578063ea4b11dc146106f8578063ec8a0ef91461072c578063f40f0f521461075c57600080fd5b8063a1daa58d146105c7578063a217fddf14610600578063a84cd7c314610615578063bb872b4a14610678578063bb9fb5d01461069857600080fd5b806378606ddd116100f257806378606ddd1461053b5780637b0472f0146105525780638456cb591461057257806384ed90b61461058757806391d14854146105a757600080fd5b80635c975abb146104cc5780636d64c83f146104e457806371b0cbfa14610506578063741a3f711461051b57600080fd5b806336568abe116101a6578063443bb9dd11610175578063443bb9dd14610437578063485cc955146104575780634e774803146104775780634f1ef286146104a457806352d1902d146104b757600080fd5b806336568abe146103c65780633659cfe6146103e65780633d6aa5e1146104065780633f4ba83a1461042257600080fd5b80632507190a116101ed5780632507190a146103245780632be91670146103395780632d2491f3146103665780632e1a7d4d146103865780632f2ff15d146103a657600080fd5b806301ffc9a71461021f57806316bfe25c1461025457806316f0115b1461026b578063248a9ca3146102e6575b600080fd5b34801561022b57600080fd5b5061023f61023a36600461340f565b610791565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b506102696107c8565b005b34801561027757600080fd5b5061016054610161546101625461016354610164546101655461016654610167546102a99796959493929160ff169088565b604080519889526020890197909752958701949094526060860192909252608085015260a0840152151560c083015260e08201526101000161024b565b3480156102f257600080fd5b50610316610301366004613439565b60009081526065602052604090206001015490565b60405190815260200161024b565b34801561033057600080fd5b506102696108c7565b34801561034557600080fd5b5061035961035436600461346e565b610978565b60405161024b9190613519565b34801561037257600080fd5b5061026961038136600461346e565b610b64565b34801561039257600080fd5b506102696103a1366004613439565b610d0d565b3480156103b257600080fd5b506102696103c136600461357e565b611243565b3480156103d257600080fd5b506102696103e136600461357e565b61126d565b3480156103f257600080fd5b5061026961040136600461346e565b6112eb565b34801561041257600080fd5b50610316670de0b6b3a764000081565b34801561042e57600080fd5b506102696113c7565b34801561044357600080fd5b506102696104523660046135f6565b6113da565b34801561046357600080fd5b50610269610472366004613662565b6115d6565b34801561048357600080fd5b5061049761049236600461346e565b6117a7565b60405161024b919061368c565b6102696104b23660046136e5565b6118ed565b3480156104c357600080fd5b506103166119b9565b3480156104d857600080fd5b5060975460ff1661023f565b3480156104f057600080fd5b50610316600080516020613b1283398151915281565b34801561051257600080fd5b50610269611a6c565b34801561052757600080fd5b50610316610536366004613439565b611bee565b34801561054757600080fd5b5061031661016b5481565b34801561055e57600080fd5b5061026961056d3660046137a7565b611c5a565b34801561057e57600080fd5b50610269612068565b34801561059357600080fd5b506103166105a2366004613439565b61207b565b3480156105b357600080fd5b5061023f6105c236600461357e565b61209d565b3480156105d357600080fd5b5061015f546105e8906001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b34801561060c57600080fd5b50610316600081565b34801561062157600080fd5b5061065861063036600461346e565b6101686020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161024b565b34801561068457600080fd5b50610269610693366004613439565b6120c8565b3480156106a457600080fd5b506103166106b33660046137c9565b612145565b3480156106c457600080fd5b506102696106d336600461357e565b612355565b3480156106e457600080fd5b506103166106f3366004613439565b61237a565b34801561070457600080fd5b506103167f2529ee4dfbfaf403780dc8818428ad2ffd2d9e20e3305c49da1eab965811505b81565b34801561073857600080fd5b5061074161238b565b6040805193845260208401929092529082015260600161024b565b34801561076857600080fd5b5061077c61077736600461346e565b612420565b6040805192835260208301919091520161024b565b60006001600160e01b03198216637965db0b60e01b14806107c257506301ffc9a760e01b6001600160e01b03198316145b92915050565b6107d06125e0565b3360009081526101686020526040902060038101546108275760405162461bcd60e51b815260206004820152600e60248201526d139bc81cdd185ad948199bdd5b9960921b60448201526064015b60405180910390fd5b600381018054600091829055825490918291849190610847908490613809565b9091555050610160805482919060009061086290849061381c565b90915550610876905060048301600061336b565b61015f5461088e906001600160a01b0316338361262b565b60405181815233907fc2830ad16fe77a9abd8e3bb5b4a4832e60bb4a54db7d12be4f2aba2db21e56e39060200160405180910390a25050565b600080516020613b128339815191526108df8161268e565b6101665460ff166109275760405162461bcd60e51b81526020600482015260126024820152715374616b696e67206e6f742061637469766560701b604482015260640161081e565b61092f612698565b610166805460ff19169055436101658190556040519081527f64df97153858c5a01414274c9ff28ead09206213e06b2620350668b42fe6773a906020015b60405180910390a150565b6109c060405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b6001600160a01b03821660009081526101686020526040812090805b6004830154811015610a415760008360040182815481106109ff576109ff61382f565b9060005260206000209060090201905042816008015411610a385760058101548154610a2b919061381c565b610a359084613809565b92505b506001016109dc565b50600080610a4e86612420565b91509150604051806101000160405280856000015481526020018560010154815260200185600301548152602001848660030154610a8c919061381c565b815260200184815260200183815260200182815260200185600401805480602002602001604051908101604052809291908181526020016000905b82821015610b54578382906000526020600020906009020160405180610120016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505081526020019060010190610ac7565b5050509152509695505050505050565b6000610b6f8161268e565b610b776125e0565b6101605461015f546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610bc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be89190613845565b11610c2d5760405162461bcd60e51b8152602060048201526015602482015274496e73756666696369656e7420726573657276657360581b604482015260640161081e565b6101605461015f546040516370a0823160e01b8152306004820152600092916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca09190613845565b610caa919061381c565b61015f54909150610cc5906001600160a01b0316848361262b565b826001600160a01b03167f360cc51c7273ce6c0fe7765dd973a5fc276ea42ae008ac440cbddfeea00e6fe882604051610d0091815260200190565b60405180910390a2505050565b610d156127a3565b610d1d6127fc565b60008111610d6d5760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604482015260640161081e565b336000908152610168602052604090206003810154610dbf5760405162461bcd60e51b815260206004820152600e60248201526d139bc81cdd185ad948199bdd5b9960921b604482015260640161081e565b8181600301541015610e135760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74207374616b656420616d6f756e74000000000000604482015260640161081e565b610e1b612698565b816000805b600484015481108015610e335750600083115b15610ffd576000846004018281548110610e4f57610e4f61382f565b906000526020600020906009020190508060000154816005015410610e745750610feb565b8060080154421015610e865750610feb565b60058101548154600091610e999161381c565b90506000818611610eaa5785610eac565b815b9050610eb8818761381c565b95508260010154610160600201541115610f6c57600183015461016254600091610ee19161381c565b90506000670de0b6b3a7640000610ef8838561385e565b610f029190613875565b9050670de0b6b3a7640000856007015482610f1d919061385e565b610f279190613875565b9050610f338188613809565b965080856003016000828254610f499190613809565b9250508190555080896001016000828254610f649190613809565b909155505050505b80836005016000828254610f809190613809565b9091555050865481908890600090610f99908490613809565b9250508190555080876003016000828254610fb4919061381c565b90915550506101608054829190600090610fcf90849061381c565b90915550506005830154835403610fe7574260048401555b5050505b80610ff581613897565b915050610e20565b50811561104c5760405162461bcd60e51b815260206004820152601e60248201527f5769746864726177616c2063616e6e6f742062652070726f6365737365640000604482015260640161081e565b6000805b60048501548110156111335760008560040182815481106110735761107361382f565b9060005260206000209060090201905080600001548160050154101561112a5781831461111c57808660040184815481106110b0576110b061382f565b90600052602060002090600902016000820154816000015560018201548160010155600282015481600201556003820154816003015560048201548160040155600582015481600501556006820154816006015560078201548160070155600882015481600801559050505b8261112681613897565b9350505b50600101611050565b506004840154815b818110156111b15785600401805480611156576111566138b0565b600082815260208120600960001990930192830201818155600181810183905560028201839055600382018390556004820183905560058201839055600682018390556007820183905560089091019190915591550161113b565b506111d4336111c08589613809565b61015f546001600160a01b0316919061262b565b604080518781526020810185905233917f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc6910160405180910390a282156112315782610160600701600082825461122b919061381c565b90915550505b5050505050611240600160c955565b50565b60008281526065602052604090206001015461125e8161268e565b6112688383612849565b505050565b6001600160a01b03811633146112dd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161081e565b6112e782826128cf565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113335760405162461bcd60e51b815260040161081e906138c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661137c600080516020613b32833981519152546001600160a01b031690565b6001600160a01b0316146113a25760405162461bcd60e51b815260040161081e90613912565b6113ab81612936565b6040805160008082526020820190925261124091839190612960565b60006113d28161268e565b611240612acb565b600080516020613b128339815191526113f28161268e565b83821461145b5760405162461bcd60e51b815260206004820152603160248201527f4461797320616e6420666163746f727320617272617973206d757374206861766044820152700ca40e8d0ca40e6c2daca40d8cadccee8d607b1b606482015260840161081e565b611468610169600061338c565b61147561016a600061338c565b600061016b8190555b848110156115ce5761016986868381811061149b5761149b61382f565b8354600181018555600094855260209485902091909402929092013591909201555061016a8484838181106114d2576114d261382f565b83546001810185556000948552602080862092029390930135920191909155508484838181106115045761150461382f565b9050602002013511156115545761016b548484838181106115275761152761382f565b905060200201351115611554578383828181106115465761154661382f565b602002919091013561016b55505b7fbc7db35520549da61fdc35389795d2f3c4ea5fcd0bae0f8383f4ee675f594c648686838181106115875761158761382f565b905060200201358585848181106115a0576115a061382f565b905060200201356040516115be929190918252602082015260400190565b60405180910390a160010161147e565b505050505050565b600054610100900460ff16158080156115f65750600054600160ff909116105b806116105750303b158015611610575060005460ff166001145b6116735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161081e565b6000805460ff191660011790558015611696576000805461ff0019166101001790555b6001600160a01b0382166116ec5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c6964206d6f726520746f6b656e2061646472657373000000000000604482015260640161081e565b6116f4612b1d565b6116fc612b44565b611704612b73565b61170c612b1d565b61015f80546001600160a01b0319166001600160a01b038416179055611733600084612849565b61175d7f2529ee4dfbfaf403780dc8818428ad2ffd2d9e20e3305c49da1eab965811505b84612849565b8015611268576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6117d96040518060a0016040528060008152602001600081526020016000815260200160008152602001606081525090565b6001600160a01b038216600090815261016860205260408120906117fc84612420565b5090506040518060a0016040528083600001548152602001836001015481526020018281526020018360030154815260200183600401805480602002602001604051908101604052809291908181526020016000905b828210156118df578382906000526020600020906009020160405180610120016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505081526020019060010190611852565b505050915250949350505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119355760405162461bcd60e51b815260040161081e906138c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661197e600080516020613b32833981519152546001600160a01b031690565b6001600160a01b0316146119a45760405162461bcd60e51b815260040161081e90613912565b6119ad82612936565b6112e782826001612960565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a595760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161081e565b50600080516020613b3283398151915290565b600080516020613b12833981519152611a848161268e565b6101665460ff1615611ad15760405162461bcd60e51b81526020600482015260166024820152755374616b696e6720616c72656164792061637469766560501b604482015260640161081e565b61016154611af15760405162461bcd60e51b815260040161081e9061395e565b61015f546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f9190613845565b11611ba15760405162461bcd60e51b81526020600482015260126024820152714e6f2072657761726420726573657276657360701b604482015260640161081e565b610166805460ff19166001179055436101648190556101638190556040517fb86012c44e844c72c9cdc4b00c639e78d7a96cd093eb33d662cb480122ea69d19161096d9190815260200190565b6000805b61016954811015611c5157826101698281548110611c1257611c1261382f565b906000526020600020015403611c495761016a8181548110611c3657611c3661382f565b9060005260206000200154915050919050565b600101611bf2565b50600092915050565b611c626127a3565b611c6a6127fc565b6101665460ff16611cb25760405162461bcd60e51b81526020600482015260126024820152715374616b696e67206e6f742061637469766560701b604482015260640161081e565b60008211611d025760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604482015260640161081e565b61015f546040516370a0823160e01b815233600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015611d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6f9190613845565b1015611db45760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015260640161081e565b61015f54604051636eb1769f60e11b815233600482015230602482015283916001600160a01b03169063dd62ed3e90604401602060405180830381865afa158015611e03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e279190613845565b1015611e6e5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015260640161081e565b6000611e7982611bee565b905060008111611ebf5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206c6f636b206461797360781b604482015260640161081e565b611ec7612698565b61015f54611ee0906001600160a01b0316333086612ba2565b33600090815261016860205260408120610162549091611f03856201518061385e565b611f0d9042613809565b905082600401604051806101200160405280888152602001848152602001428152602001600081526020016000815260200160008152602001878152602001868152602001838152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155505085836003016000828254611ff09190613809565b9091555050610160805487919060009061200b908490613809565b909155505060408051878152602081018790529081018590526060810182905233907f9cfd25589d1eb8ad71e342a86a8524e83522e3936c0803048c08f6d9ad974f409060800160405180910390a2505050506112e7600160c955565b60006120738161268e565b611240612be0565b61016a818154811061208c57600080fd5b600091825260209091200154905081565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613b128339815191526120e08161268e565b600082116121005760405162461bcd60e51b815260040161081e9061395e565b612108612698565b6101618290556040518281527f5ed0ffa545a9eae0edd36b74378d16454cf385281383c7632ad5b2ebf3ab2b929060200160405180910390a15050565b600081600003612157575060006107c2565b6001600160a01b038316600090815261016860205260409020600381015415806121845750828160030154105b156121935760009150506107c2565b610165546000906121a457436121a9565b610165545b610162546101635491925090821180156121c557506101605415155b1561222157610163546000906121db908461381c565b610161549091506000906121ef908361385e565b61016054909150612208670de0b6b3a76400008361385e565b6122129190613875565b61221c9084613809565b925050505b846000805b6004860154811080156122395750600083115b156123495760008660040182815481106122555761225561382f565b90600052602060002090600902019050806000015481600501541061227a5750612337565b806008015442101561228c5750612337565b6005810154815460009161229f9161381c565b905060008186116122b057856122b2565b815b90506122be818761381c565b955082600101548711156123335760008360010154886122de919061381c565b90506000670de0b6b3a76400006122f5838561385e565b6122ff9190613875565b9050670de0b6b3a764000085600701548261231a919061385e565b6123249190613875565b61232e9088613809565b965050505b5050505b8061234181613897565b915050612226565b50979650505050505050565b6000828152606560205260409020600101546123708161268e565b61126883836128cf565b610169818154811061208c57600080fd5b6101675461015f546040516370a0823160e01b8152306004820152600092839283926001600160a01b03909116906370a0823190602401602060405180830381865afa1580156123df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124039190613845565b61016754610160546124159190613809565b925092509250909192565b6000806101606004015460000361243c57506000928392509050565b6101655460009061244d5743612452565b610165545b6001600160a01b03851660009081526101686020526040902061016254610163549293506004909101918311801561248c57506101605415155b156124e857610163546000906124a2908561381c565b610161549091506000906124b6908361385e565b610160549091506124cf670de0b6b3a76400008361385e565b6124d99190613875565b6124e39084613809565b925050505b60005b82548110156125d75760008382815481106125085761250861382f565b9060005260206000209060090201905060008160050154826000015461252e919061381c565b90508060000361253f5750506125cf565b81600101548411156125cc57600082600101548561255d919061381c565b90506000670de0b6b3a7640000612574838561385e565b61257e9190613875565b9050670de0b6b3a7640000846007015482612599919061385e565b6125a39190613875565b90506125af818b613809565b9950428460080154116125c9576125c6818a613809565b98505b50505b50505b6001016124eb565b50505050915091565b60975460ff166126295760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161081e565b565b6040516001600160a01b03831660248201526044810182905261126890849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612c1d565b6112408133612cf2565b6101665460ff1615806126ae5750610163544311155b156126b557565b610160546000036126c7574361016355565b610165546000906126d857436126dd565b610165545b90508061016060030154106126ef5750565b61016354600090612700908361381c565b61016154909150600090612714908361385e565b90506000670de0b6b3a764000061016b5483612730919061385e565b61273a9190613875565b905061274581612d4b565b80610160600701600082825461275b9190613809565b909155505061016054612776670de0b6b3a76400008461385e565b6127809190613875565b6101628054600090612793908490613809565b9091555050436101635550505050565b600260c954036127f55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161081e565b600260c955565b60975460ff16156126295760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161081e565b600160c955565b612853828261209d565b6112e75760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561288b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6128d9828261209d565b156112e75760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f2529ee4dfbfaf403780dc8818428ad2ffd2d9e20e3305c49da1eab965811505b6112e78161268e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156129935761126883612e2e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156129ed575060408051601f3d908101601f191682019092526129ea91810190613845565b60015b612a505760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161081e565b600080516020613b328339815191528114612abf5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161081e565b50611268838383612eca565b612ad36125e0565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166126295760405162461bcd60e51b815260040161081e906139a5565b600054610100900460ff16612b6b5760405162461bcd60e51b815260040161081e906139a5565b612629612eef565b600054610100900460ff16612b9a5760405162461bcd60e51b815260040161081e906139a5565b612629612f22565b6040516001600160a01b0380851660248301528316604482015260648101829052612bda9085906323b872dd60e01b90608401612657565b50505050565b612be86127fc565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612b003390565b6000612c72826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612f499092919063ffffffff16565b9050805160001480612c93575080806020019051810190612c9391906139f0565b6112685760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161081e565b612cfc828261209d565b6112e757612d0981612f60565b612d14836020612f72565b604051602001612d25929190613a36565b60408051601f198184030181529082905262461bcd60e51b825261081e91600401613aab565b61015f546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612d95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db99190613845565b61016754610160549192506000918491612dd291613809565b612ddc9190613809565b9050808210156112685760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742072657761726420726573657276657300000000604482015260640161081e565b6001600160a01b0381163b612e9b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161081e565b600080516020613b3283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612ed383613115565b600082511180612ee05750805b1561126857612bda8383613155565b600054610100900460ff16612f165760405162461bcd60e51b815260040161081e906139a5565b6097805460ff19169055565b600054610100900460ff166128425760405162461bcd60e51b815260040161081e906139a5565b6060612f58848460008561317a565b949350505050565b60606107c26001600160a01b03831660145b60606000612f8183600261385e565b612f8c906002613809565b67ffffffffffffffff811115612fa457612fa46136cf565b6040519080825280601f01601f191660200182016040528015612fce576020820181803683370190505b509050600360fc1b81600081518110612fe957612fe961382f565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106130185761301861382f565b60200101906001600160f81b031916908160001a905350600061303c84600261385e565b613047906001613809565b90505b60018111156130bf576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061307b5761307b61382f565b1a60f81b8282815181106130915761309161382f565b60200101906001600160f81b031916908160001a90535060049490941c936130b881613ade565b905061304a565b50831561310e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161081e565b9392505050565b61311e81612e2e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061310e8383604051806060016040528060278152602001613b5260279139613255565b6060824710156131db5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161081e565b600080866001600160a01b031685876040516131f79190613af5565b60006040518083038185875af1925050503d8060008114613234576040519150601f19603f3d011682016040523d82523d6000602084013e613239565b606091505b509150915061324a878383876132cd565b979650505050505050565b6060600080856001600160a01b0316856040516132729190613af5565b600060405180830381855af49150503d80600081146132ad576040519150601f19603f3d011682016040523d82523d6000602084013e6132b2565b606091505b50915091506132c3868383876132cd565b9695505050505050565b6060831561333c578251600003613335576001600160a01b0385163b6133355760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161081e565b5081612f58565b612f5883838151156133515781518083602001fd5b8060405162461bcd60e51b815260040161081e9190613aab565b508054600082556009029060005260206000209081019061124091906133aa565b508054600082559060005260206000209081019061124091906133fa565b5b808211156133f65760008082556001820181905560028201819055600382018190556004820181905560058201819055600682018190556007820181905560088201556009016133ab565b5090565b5b808211156133f657600081556001016133fb565b60006020828403121561342157600080fd5b81356001600160e01b03198116811461310e57600080fd5b60006020828403121561344b57600080fd5b5035919050565b80356001600160a01b038116811461346957600080fd5b919050565b60006020828403121561348057600080fd5b61310e82613452565b60008151808452602080850194506020840160005b8381101561350e57815180518852838101518489015260408082015190890152606080820151908901526080808201519089015260a0808201519089015260c0808201519089015260e080820151908901526101009081015190880152610120909601959082019060010161349e565b509495945050505050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260c082015160e0820152600060e0830151610100808185015250612f58610120840182613489565b6000806040838503121561359157600080fd5b823591506135a160208401613452565b90509250929050565b60008083601f8401126135bc57600080fd5b50813567ffffffffffffffff8111156135d457600080fd5b6020830191508360208260051b85010111156135ef57600080fd5b9250929050565b6000806000806040858703121561360c57600080fd5b843567ffffffffffffffff8082111561362457600080fd5b613630888389016135aa565b9096509450602087013591508082111561364957600080fd5b50613656878288016135aa565b95989497509550505050565b6000806040838503121561367557600080fd5b61367e83613452565b91506135a160208401613452565b60208152815160208201526020820151604082015260408201516060820152606082015160808201526000608083015160a080840152612f5860c0840182613489565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156136f857600080fd5b61370183613452565b9150602083013567ffffffffffffffff8082111561371e57600080fd5b818501915085601f83011261373257600080fd5b813581811115613744576137446136cf565b604051601f8201601f19908116603f0116810190838211818310171561376c5761376c6136cf565b8160405282815288602084870101111561378557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080604083850312156137ba57600080fd5b50508035926020909101359150565b600080604083850312156137dc57600080fd5b6137e583613452565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107c2576107c26137f3565b818103818111156107c2576107c26137f3565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561385757600080fd5b5051919050565b80820281158282048414176107c2576107c26137f3565b60008261389257634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016138a9576138a96137f3565b5060010190565b634e487b7160e01b600052603160045260246000fd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526027908201527f5265776172642070657220626c6f636b206d75737420626520677265617465726040820152660207468616e20360cc1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215613a0257600080fd5b8151801515811461310e57600080fd5b60005b83811015613a2d578181015183820152602001613a15565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613a6e816017850160208801613a12565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613a9f816028840160208801613a12565b01602801949350505050565b6020815260008251806020840152613aca816040850160208701613a12565b601f01601f19169190910160400192915050565b600081613aed57613aed6137f3565b506000190190565b60008251613b07818460208701613a12565b919091019291505056fed354ecc0f0fb6dfdd92b26b442c487000ab265e49cad04b6c89fccb75db3a175360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202c528d7b6227861299e19ffc6c18a8caafc7c9665a07eee63c3461ea9a9f1eee64736f6c63430008160033