0 txs
0 calls
constructor
constructor(address _cToken)
functions
airdropContract
viewfunction airdropContract() view returns (address)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
cToken
viewfunction cToken() view returns (address)
delegations
viewfunction delegations(uint256) view returns (uint256)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getDelegationAmount
viewfunction getDelegationAmount(address delegator) view returns (uint256 total)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
minOperatorStake
viewfunction minOperatorStake() view returns (uint256)
name
viewfunction name() view returns (string)
operatorStakes
viewfunction operatorStakes(address) view returns (uint256)
operatorWhitelist
viewfunction operatorWhitelist(address) view returns (bool)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
paused
viewfunction paused() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
undelegateRequests
viewfunction undelegateRequests(uint256) view returns (uint256 amount, uint256 unlockTime)
UNLOCK_PERIOD
viewfunction UNLOCK_PERIOD() view returns (uint256)
unstakeRequests
viewfunction unstakeRequests(address) view returns (uint256 amount, uint256 unlockTime)
addWhitelist
nonpayablefunction addWhitelist(address[] operators)
approve
nonpayablefunction approve(address to, uint256 tokenId)
cancelUndelegate
nonpayablefunction cancelUndelegate(uint256 tokenId)
delegate
nonpayablefunction delegate(uint256 amount)
delegateFromAirdrop
nonpayablefunction delegateFromAirdrop(address delegator, uint256 amount)
increaseDelegation
nonpayablefunction increaseDelegation(uint256 tokenId, uint256 amount)
initialize
nonpayablefunction initialize(address _airdropContract)
pause
nonpayablefunction pause()
removeWhitelist
nonpayablefunction removeWhitelist(address[] operators)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setAirdropContract
nonpayablefunction setAirdropContract(address _airdropContract)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setMinOperatorStake
nonpayablefunction setMinOperatorStake(uint256 _minOperatorStake)
stake
nonpayablefunction stake(uint256 amount)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
undelegate
nonpayablefunction undelegate(uint256 tokenId)
unpause
nonpayablefunction unpause()
unstake
nonpayablefunction unstake()
withdrawDelegation
nonpayablefunction withdrawDelegation(uint256 tokenId)
withdrawStake
nonpayablefunction withdrawStake()
events
AirdropContractUpdated
event AirdropContractUpdated(address indexed oldAirdropContract, address indexed newAirdropContract)
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
DelegationDeposited
event DelegationDeposited(uint256 indexed tokenId, address indexed delegator, uint256 amount)
DelegationIncreased
event DelegationIncreased(uint256 indexed tokenId, address indexed delegator, uint256 oldAmount, uint256 newAmount)
DelegationWithdrawn
event DelegationWithdrawn(uint256 indexed tokenId, address indexed delegator, uint256 amount)
Initialized
event Initialized(uint8 version)
MinOperatorStakeUpdated
event MinOperatorStakeUpdated(uint256 oldAmount, uint256 newAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
StakeDeposited
event StakeDeposited(address indexed operator, uint256 amount)
StakeWithdrawn
event StakeWithdrawn(address indexed operator, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
UndelegateCanceled
event UndelegateCanceled(uint256 indexed tokenId, address indexed delegator)
UndelegateRequested
event UndelegateRequested(uint256 indexed tokenId, address indexed delegator, uint256 amount, uint256 unlockTime)
Unpaused
event Unpaused(address account)
UnstakeRequested
event UnstakeRequested(address indexed operator, uint256 amount, uint256 unlockTime)
WhitelistAdded
event WhitelistAdded(address indexed operator)
WhitelistRemoved
event WhitelistRemoved(address indexed operator)
errors
No errors.
creation bytecode
0x60a060405234801562000010575f80fd5b506040516200390638038062003906833981016040819052620000339162000168565b6001600160a01b0381166200008f5760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e673a20496e76616c69642063546f6b656e20616464726573730060448201526064015b60405180910390fd5b6001600160a01b038116608052620000a6620000ad565b5062000197565b5f54610100900460ff1615620001165760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000086565b5f5460ff9081161462000166575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000179575f80fd5b81516001600160a01b038116811462000190575f80fd5b9392505050565b608051613733620001d35f395f818161042101528181610e6f0152818161128f015281816113c2015281816115d8015261197701526137335ff3fe608060405234801561000f575f80fd5b5060043610610281575f3560e01c806370a0823111610156578063c4336c1c116100ca578063e0eb4d2e11610084578063e0eb4d2e14610593578063e985e9c5146105cf578063ead979d51461060b578063edac985b1461061e578063f2fde38b14610631578063fbcd3d7114610644575f80fd5b8063c4336c1c1461050d578063c4d66de81461052d578063c87b56dd14610540578063d775cb6114610553578063df0e307a1461055d578063e03c863214610570575f80fd5b80639fa6dd351161011b5780639fa6dd35146104a5578063a22cb465146104b8578063a694fc3a146104cb578063ab2be726146104de578063b88d4fde146104f2578063bed9d86114610505575f80fd5b806370a0823114610469578063715018a61461047c5780638456cb59146104845780638da5cb5b1461048c57806395d89b411461049d575f80fd5b80632def6620116101f857806353cedca2116101b257806353cedca2146103eb5780635c975abb146103fe5780636352211e1461040957806369e527da1461041c5780636c68c0e1146104435780636f01153814610456575f80fd5b80632def66201461038f5780632f745c59146103975780633f4ba83a146103aa57806342842e0e146103b25780634d88331d146103c55780634f6ccce7146103d8575f80fd5b806315c4642e1161024957806315c4642e1461031557806318160ddd146103365780631c9856ae1461033f578063232452161461035f57806323b872dd14610372578063259a28cf14610385575f80fd5b806301ffc9a71461028557806303002902146102ad57806306fdde03146102c2578063081812fc146102d7578063095ea7b314610302575b5f80fd5b610298610293366004612f15565b61066b565b60405190151581526020015b60405180910390f35b6102c06102bb366004612f30565b610695565b005b6102ca61075e565b6040516102a49190612f94565b6102ea6102e5366004612f30565b6107ee565b6040516001600160a01b0390911681526020016102a4565b6102c0610310366004612fc1565b610813565b610328610323366004612fe9565b610927565b6040519081526020016102a4565b61012f54610328565b61032861034d366004612fe9565b6101636020525f908152604090205481565b6102c061036d366004613002565b610977565b6102c0610380366004613071565b610a05565b61032862093a8081565b6102c0610a36565b6103286103a5366004612fc1565b610bed565b6102c0610c82565b6102c06103c0366004613071565b610c92565b6102c06103d3366004612f30565b610cac565b6103286103e6366004612f30565b610d70565b6102c06103f93660046130aa565b610e02565b60655460ff16610298565b6102ea610417366004612f30565b610f1e565b6102ea7f000000000000000000000000000000000000000000000000000000000000000081565b6102c0610451366004612f30565b610f7d565b6102c0610464366004612fe9565b611120565b610328610477366004612fe9565b6111a0565b6102c0611224565b6102c0611235565b6033546001600160a01b03166102ea565b6102ca611245565b6102c06104b3366004612f30565b611254565b6102c06104c63660046130d7565b6112cc565b6102c06104d9366004612f30565b6112d7565b610160546102ea906001600160a01b031681565b6102c0610500366004613120565b611460565b6102c0611498565b61032861051b366004612f30565b6101656020525f908152604090205481565b6102c061053b366004612fe9565b61163a565b6102ca61054e366004612f30565b6117ec565b6103286101615481565b6102c061056b366004612f30565b61185c565b61029861057e366004612fe9565b6101626020525f908152604090205460ff1681565b6105ba6105a1366004612fe9565b6101646020525f90815260409020805460019091015482565b604080519283526020830191909152016102a4565b6102986105dd3660046131f5565b6001600160a01b039182165f9081526101006020908152604080832093909416825291909152205460ff1690565b6102c0610619366004612fc1565b6119da565b6102c061062c366004613002565b611ad9565b6102c061063f366004612fe9565b611bc7565b6105ba610652366004612f30565b6101666020525f90815260409020805460019091015482565b5f6001600160e01b0319821663780e9d6360e01b148061068f575061068f82611c3d565b92915050565b61069d611c8c565b5f81116107175760405162461bcd60e51b815260206004820152603d60248201527f5374616b696e673a206d696e696d756d206f70657261746f72207374616b652060448201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060648201526084015b60405180910390fd5b61016180549082905560408051828152602081018490527ff6eefd49a83d72df0cc9ddb5557cfa6a047393b8d4a85163a8cefe7aa490a30f91015b60405180910390a15050565b606060fb805461076d90613226565b80601f016020809104026020016040519081016040528092919081815260200182805461079990613226565b80156107e45780601f106107bb576101008083540402835291602001916107e4565b820191905f5260205f20905b8154815290600101906020018083116107c757829003601f168201915b5050505050905090565b5f6107f882611ce6565b505f90815260ff60205260409020546001600160a01b031690565b5f61081d82610f1e565b9050806001600160a01b0316836001600160a01b03160361088a5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161070e565b336001600160a01b03821614806108a657506108a681336105dd565b6109185760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161070e565b6109228383611d44565b505050565b5f80610932836111a0565b90505f5b81811015610970575f6109498583610bed565b5f81815261016560205260409020549091506109659085613272565b935050600101610936565b5050919050565b61097f611c8c565b5f5b81811015610922575f83838381811061099c5761099c613285565b90506020020160208101906109b19190612fe9565b6001600160a01b0381165f8181526101626020526040808220805460ff191690555192935090917fde8cf212af7ce38b2840785a2768d97ff2dbf3c21b516961cec0061e134c2a1e9190a250600101610981565b610a0f3382611db1565b610a2b5760405162461bcd60e51b815260040161070e90613299565b610922838383611e2f565b335f908152610162602052604090205460ff16610a655760405162461bcd60e51b815260040161070e906132e6565b610a6d611f9e565b610a75611fe4565b335f818152610163602052604090205480610ad25760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a204e6f207374616b696e6720746f20756e7374616b650000604482015260640161070e565b6001600160a01b0382165f908152610164602052604090205415610b425760405162461bcd60e51b815260206004820152602160248201527f5374616b696e673a204578697374696e6720756e7374616b65207265717565736044820152601d60fa1b606482015260840161070e565b6001600160a01b0382165f90815261016360205260408120819055610b6a62093a8042613272565b60408051808201825284815260208082018481526001600160a01b0388165f81815261016484528590209351845590516001909301929092558251868152908101849052929350917f57e41df54512c76148b5ba9b643d149752b0d35e493b969bd017d0a3fe5228cf91015b60405180910390a2505050610beb6001609755565b565b5f610bf7836111a0565b8210610c595760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161070e565b506001600160a01b03919091165f90815261012d60209081526040808320938352929052205490565b610c8a611c8c565b610beb612044565b61092283838360405180602001604052805f815250611460565b610cb4611f9e565b610cbc611fe4565b3380610cc783610f1e565b6001600160a01b031614610ced5760405162461bcd60e51b815260040161070e90613329565b5f8281526101666020526040902054610d185760405162461bcd60e51b815260040161070e90613360565b5f8281526101666020526040808220828155600101829055516001600160a01b0383169184917fb30bcdf56d7df4bc372a6d33a8b6e3fa262cb7e745afd9a2c58662614c2764439190a350610d6d6001609755565b50565b5f610d7b61012f5490565b8210610dde5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161070e565b61012f8281548110610df257610df2613285565b905f5260205f2001549050919050565b610e0a611f9e565b610e12611fe4565b3380610e1d84610f1e565b6001600160a01b031614610e435760405162461bcd60e51b815260040161070e90613329565b5f8211610e625760405162461bcd60e51b815260040161070e906133a6565b610e976001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016823085612096565b5f83815261016560205260408120805491849190610eb58385613272565b90915550505f8481526101656020908152604091829020548251848152918201526001600160a01b0384169186917fcf388045a55dac1bba6381196c70af3f43764f75dc922de752400eca9c3e99d2910160405180910390a35050610f1a6001609755565b5050565b5f81815260fd60205260408120546001600160a01b03168061068f5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161070e565b610f85611f9e565b610f8d611fe4565b3380610f9883610f1e565b6001600160a01b031614610fbe5760405162461bcd60e51b815260040161070e90613329565b5f8281526101666020526040902054156110265760405162461bcd60e51b8152602060048201526024808201527f5374616b696e673a204578697374696e6720756e64656c6567617465207265716044820152631d595cdd60e21b606482015260840161070e565b5f8281526101656020526040902054806110905760405162461bcd60e51b815260206004820152602560248201527f5374616b696e673a204e6f2064656c65676174696f6e20666f722074686973206044820152643a37b5b2b760d91b606482015260840161070e565b5f61109e62093a8042613272565b60408051808201825284815260208082018481525f8981526101668352849020925183555160019092019190915581518581529081018390529192506001600160a01b0385169186917f3bbf6f2afae0144b87aa744e76ba6bdb3b7e9fadc233cfbfa83abdbc7621608c91015b60405180910390a3505050610d6d6001609755565b611128611c8c565b6001600160a01b03811661114e5760405162461bcd60e51b815260040161070e906133ec565b61016080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f3e548786479ceaa7bb00ffee3bc1e9992158f72287ae6ddde158deb72b2890b0905f90a35050565b5f6001600160a01b0382166112095760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161070e565b506001600160a01b03165f90815260fe602052604090205490565b61122c611c8c565b610beb5f612101565b61123d611c8c565b610beb612152565b606060fc805461076d90613226565b61125c611f9e565b611264611fe4565b33816112825760405162461bcd60e51b815260040161070e906133a6565b6112b76001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016823085612096565b6112c1818361218f565b50610d6d6001609755565b610f1a338383612212565b335f908152610162602052604090205460ff166113065760405162461bcd60e51b815260040161070e906132e6565b61130e611f9e565b611316611fe4565b33816113345760405162461bcd60e51b815260040161070e906133a6565b610161546001600160a01b0382165f908152610163602052604090205461135c908490613272565b10156113b55760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a20496e73756666696369656e74207374616b6520616d6f756044820152611b9d60f21b606482015260840161070e565b6113ea6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016823085612096565b6001600160a01b0381165f908152610163602052604081208054849290611412908490613272565b90915550506040518281526001600160a01b038216907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a250610d6d6001609755565b61146a3383611db1565b6114865760405162461bcd60e51b815260040161070e90613299565b611492848484846122d8565b50505050565b335f908152610162602052604090205460ff166114c75760405162461bcd60e51b815260040161070e906132e6565b6114cf611f9e565b6114d7611fe4565b335f8181526101646020908152604091829020825180840190935280548084526001909101549183019190915261155c5760405162461bcd60e51b815260206004820152602360248201527f5374616b696e673a204e6f2070656e64696e6720756e7374616b652072657175604482015262195cdd60ea1b606482015260840161070e565b80602001514210156115b05760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a20546f6b656e73207374696c6c206c6f636b656400000000604482015260640161070e565b80516001600160a01b038084165f90815261016460205260408120818155600101556115ff907f000000000000000000000000000000000000000000000000000000000000000016848361230b565b826001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc82604051610bd691815260200190565b5f54610100900460ff161580801561165857505f54600160ff909116105b806116715750303b15801561167157505f5460ff166001145b6116d45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161070e565b5f805460ff1916600117905580156116f5575f805461ff0019166101001790555b6001600160a01b03821661171b5760405162461bcd60e51b815260040161070e906133ec565b61172361233b565b61172b612369565b611733612397565b61178060405180604001604052806011815260200170436861696e62617365205374616b696e6760781b81525060405180604001604052806002815260200161435360f01b8152506123c5565b61016080546001600160a01b0319166001600160a01b0384161790556969e10de76676d0800000610161558015610f1a575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610752565b60606117f782611ce6565b5f61180c60408051602081019091525f815290565b90505f81511161182a5760405180602001604052805f815250611855565b80611834846123f5565b604051602001611845929190613435565b6040516020818303038152906040525b9392505050565b611864611f9e565b61186c611fe4565b5f81815261016660209081526040918290208251808401909352805480845260019091015491830191909152339190826118a585610f1e565b6001600160a01b0316146118cb5760405162461bcd60e51b815260040161070e90613329565b5f81116118ea5760405162461bcd60e51b815260040161070e90613360565b816020015142101561193e5760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a20546f6b656e73207374696c6c206c6f636b656400000000604482015260640161070e565b5f8481526101656020908152604080832083905561016690915281208181556001015561196a84612485565b61199e6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016848361230b565b826001600160a01b0316847fc13fd2d5ae273733b35d59e87dc36ce5b7ea78d57c29b6bec0e373b145e6683c8360405161110b91815260200190565b6119e2611f9e565b6119ea611fe4565b610160546001600160a01b03163314611a455760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a204f6e6c792061697264726f7020636f6e74726163740000604482015260640161070e565b6001600160a01b038216611aa65760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a20496e76616c69642064656c656761746f72206164647265604482015261737360f01b606482015260840161070e565b5f8111611ac55760405162461bcd60e51b815260040161070e906133a6565b611acf828261218f565b610f1a6001609755565b611ae1611c8c565b5f5b81811015610922575f838383818110611afe57611afe613285565b9050602002016020810190611b139190612fe9565b90506001600160a01b038116611b755760405162461bcd60e51b815260206004820152602160248201527f5374616b696e673a20496e76616c6964206f70657261746f72206164647265736044820152607360f81b606482015260840161070e565b6001600160a01b0381165f8181526101626020526040808220805460ff19166001179055517f4790a4adb426ca2345bb5108f6e454eae852a7bf687544cd66a7270dff3a41d69190a250600101611ae3565b611bcf611c8c565b6001600160a01b038116611c345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070e565b610d6d81612101565b5f6001600160e01b031982166380ac58cd60e01b1480611c6d57506001600160e01b03198216635b5e139f60e01b145b8061068f57506301ffc9a760e01b6001600160e01b031983161461068f565b6033546001600160a01b03163314610beb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161070e565b5f81815260fd60205260409020546001600160a01b0316610d6d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161070e565b5f81815260ff6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611d7882610f1e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f80611dbc83610f1e565b9050806001600160a01b0316846001600160a01b03161480611e0357506001600160a01b038082165f908152610100602090815260408083209388168352929052205460ff165b80611e275750836001600160a01b0316611e1c846107ee565b6001600160a01b0316145b949350505050565b826001600160a01b0316611e4282610f1e565b6001600160a01b031614611e685760405162461bcd60e51b815260040161070e90613463565b6001600160a01b038216611eca5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161070e565b611ed78383836001612524565b826001600160a01b0316611eea82610f1e565b6001600160a01b031614611f105760405162461bcd60e51b815260040161070e90613463565b5f81815260ff6020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260fe855283862080545f190190559087168086528386208054600101905586865260fd90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60655460ff1615610beb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161070e565b6002609754036120365760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161070e565b6002609755565b6001609755565b61204c612659565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6040516001600160a01b03808516602483015283166044820152606481018290526114929085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526126a2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b61215a611f9e565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120793390565b61219e61015f80546001019055565b5f6121a961015f5490565b90506121b58382612775565b5f818152610165602052604090819020839055516001600160a01b0384169082907f7dc91511fe4e141ddca2afa8aa39a9d61bad16c687401234581d01db4ab71da6906122059086815260200190565b60405180910390a3505050565b816001600160a01b0316836001600160a01b0316036122735760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161070e565b6001600160a01b038381165f8181526101006020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101612205565b6122e3848484611e2f565b6122ef8484848461278e565b6114925760405162461bcd60e51b815260040161070e906134a8565b6040516001600160a01b03831660248201526044810182905261092290849063a9059cbb60e01b906064016120ca565b5f54610100900460ff166123615760405162461bcd60e51b815260040161070e906134fa565b610beb61288b565b5f54610100900460ff1661238f5760405162461bcd60e51b815260040161070e906134fa565b610beb6128ba565b5f54610100900460ff166123bd5760405162461bcd60e51b815260040161070e906134fa565b610beb6128ec565b5f54610100900460ff166123eb5760405162461bcd60e51b815260040161070e906134fa565b610f1a8282612912565b60605f61240183612951565b60010190505f8167ffffffffffffffff8111156124205761242061310c565b6040519080825280601f01601f19166020018201604052801561244a576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461245457509392505050565b5f61248f82610f1e565b905061249e815f846001612524565b6124a782610f1e565b5f83815260ff6020908152604080832080546001600160a01b03199081169091556001600160a01b03851680855260fe845282852080545f1901905587855260fd909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60018111156125935760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b606482015260840161070e565b816001600160a01b0385166125f0576125eb8161012f80545f83815261013060205260408120829055600182018355919091527f232da9e50dad2971456a78fb5cd6ff6b75019984d6e918139ce990999420f9790155565b612613565b836001600160a01b0316856001600160a01b031614612613576126138582612a28565b6001600160a01b03841661262f5761262a81612ac6565b612652565b846001600160a01b0316846001600160a01b031614612652576126528482612b73565b5050505050565b60655460ff16610beb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161070e565b5f6126f6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612bb79092919063ffffffff16565b905080515f14806127165750808060200190518101906127169190613545565b6109225760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161070e565b610f1a828260405180602001604052805f815250612bc5565b5f6001600160a01b0384163b1561288057604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906127d1903390899088908890600401613560565b6020604051808303815f875af192505050801561280b575060408051601f3d908101601f191682019092526128089181019061359c565b60015b612866573d808015612838576040519150601f19603f3d011682016040523d82523d5f602084013e61283d565b606091505b5080515f0361285e5760405162461bcd60e51b815260040161070e906134a8565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611e27565b506001949350505050565b5f54610100900460ff166128b15760405162461bcd60e51b815260040161070e906134fa565b610beb33612101565b5f54610100900460ff166128e05760405162461bcd60e51b815260040161070e906134fa565b6065805460ff19169055565b5f54610100900460ff1661203d5760405162461bcd60e51b815260040161070e906134fa565b5f54610100900460ff166129385760405162461bcd60e51b815260040161070e906134fa565b60fb61294483826135fb565b5060fc61092282826135fb565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061298f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106129bb576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106129d957662386f26fc10000830492506010015b6305f5e10083106129f1576305f5e100830492506008015b6127108310612a0557612710830492506004015b60648310612a17576064830492506002015b600a831061068f5760010192915050565b5f6001612a34846111a0565b612a3e91906136bb565b5f83815261012e6020526040902054909150808214612a92576001600160a01b0384165f90815261012d60209081526040808320858452825280832054848452818420819055835261012e90915290208190555b505f91825261012e602090815260408084208490556001600160a01b03909416835261012d81528383209183525290812055565b61012f545f90612ad8906001906136bb565b5f838152610130602052604081205461012f8054939450909284908110612b0157612b01613285565b905f5260205f20015490508061012f8381548110612b2157612b21613285565b5f918252602080832090910192909255828152610130909152604080822084905585825281205561012f805480612b5a57612b5a6136ce565b600190038181905f5260205f20015f9055905550505050565b5f612b7d836111a0565b6001600160a01b039093165f90815261012d60209081526040808320868452825280832085905593825261012e9052919091209190915550565b6060611e2784845f85612bf7565b612bcf8383612cce565b612bdb5f84848461278e565b6109225760405162461bcd60e51b815260040161070e906134a8565b606082471015612c585760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161070e565b5f80866001600160a01b03168587604051612c7391906136e2565b5f6040518083038185875af1925050503d805f8114612cad576040519150601f19603f3d011682016040523d82523d5f602084013e612cb2565b606091505b5091509150612cc387838387612e63565b979650505050505050565b6001600160a01b038216612d245760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161070e565b5f81815260fd60205260409020546001600160a01b031615612d885760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161070e565b612d955f83836001612524565b5f81815260fd60205260409020546001600160a01b031615612df95760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161070e565b6001600160a01b0382165f81815260fe602090815260408083208054600101905584835260fd90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60608315612ed15782515f03612eca576001600160a01b0385163b612eca5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161070e565b5081611e27565b611e278383815115612ee65781518083602001fd5b8060405162461bcd60e51b815260040161070e9190612f94565b6001600160e01b031981168114610d6d575f80fd5b5f60208284031215612f25575f80fd5b813561185581612f00565b5f60208284031215612f40575f80fd5b5035919050565b5f5b83811015612f61578181015183820152602001612f49565b50505f910152565b5f8151808452612f80816020860160208601612f47565b601f01601f19169290920160200192915050565b602081525f6118556020830184612f69565b80356001600160a01b0381168114612fbc575f80fd5b919050565b5f8060408385031215612fd2575f80fd5b612fdb83612fa6565b946020939093013593505050565b5f60208284031215612ff9575f80fd5b61185582612fa6565b5f8060208385031215613013575f80fd5b823567ffffffffffffffff8082111561302a575f80fd5b818501915085601f83011261303d575f80fd5b81358181111561304b575f80fd5b8660208260051b850101111561305f575f80fd5b60209290920196919550909350505050565b5f805f60608486031215613083575f80fd5b61308c84612fa6565b925061309a60208501612fa6565b9150604084013590509250925092565b5f80604083850312156130bb575f80fd5b50508035926020909101359150565b8015158114610d6d575f80fd5b5f80604083850312156130e8575f80fd5b6130f183612fa6565b91506020830135613101816130ca565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215613133575f80fd5b61313c85612fa6565b935061314a60208601612fa6565b925060408501359150606085013567ffffffffffffffff8082111561316d575f80fd5b818701915087601f830112613180575f80fd5b8135818111156131925761319261310c565b604051601f8201601f19908116603f011681019083821181831017156131ba576131ba61310c565b816040528281528a60208487010111156131d2575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f8060408385031215613206575f80fd5b61320f83612fa6565b915061321d60208401612fa6565b90509250929050565b600181811c9082168061323a57607f821691505b60208210810361325857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561068f5761068f61325e565b634e487b7160e01b5f52603260045260245ffd5b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526023908201527f5374616b696e673a204e6f7420612077686974656c6973746564206f706572616040820152623a37b960e91b606082015260800190565b60208082526018908201527f5374616b696e673a204e6f7420746f6b656e206f776e65720000000000000000604082015260600190565b60208082526026908201527f5374616b696e673a204e6f2070656e64696e6720756e64656c65676174652072604082015265195c5d595cdd60d21b606082015260800190565b60208082526026908201527f5374616b696e673a20416d6f756e74206d75737420626520677265617465722060408201526507468616e20360d41b606082015260800190565b60208082526029908201527f5374616b696e673a20496e76616c69642061697264726f7020636f6e7472616360408201526874206164647265737360b81b606082015260800190565b5f8351613446818460208801612f47565b83519083019061345a818360208801612f47565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215613555575f80fd5b8151611855816130ca565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061359290830184612f69565b9695505050505050565b5f602082840312156135ac575f80fd5b815161185581612f00565b601f82111561092257805f5260205f20601f840160051c810160208510156135dc5750805b601f840160051c820191505b81811015612652575f81556001016135e8565b815167ffffffffffffffff8111156136155761361561310c565b613629816136238454613226565b846135b7565b602080601f83116001811461365c575f84156136455750858301515b5f19600386901b1c1916600185901b1785556136b3565b5f85815260208120601f198616915b8281101561368a5788860151825594840194600190910190840161366b565b50858210156136a757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b8181038181111561068f5761068f61325e565b634e487b7160e01b5f52603160045260245ffd5b5f82516136f3818460208701612f47565b919091019291505056fea264697066735822122078ec5964a419880604fe7e990f984bd05da07546867eef3f52307cbe3b4df25a64736f6c63430008160033000000000000000000000000ba12bc7b210e61e5d3110b997a63ea216e0e18f7