2 txs
3 calls
constructor
constructor(address _token, address _refundToken, address _refundReserve, address _feeReserve, uint256 _tge, uint256 _cliff, uint256 _durationInSec, uint256 _periodInSeconds, uint256 _refundPeriod)
functions
airdropAllowed
viewfunction airdropAllowed() view returns (bool)
airdropFee
viewfunction airdropFee() view returns (uint256)
AIRDROPPER
viewfunction AIRDROPPER() view returns (bytes32)
canRequestAirdrop
viewfunction canRequestAirdrop() view returns (bool)
canRequestAirdropOf
viewfunction canRequestAirdropOf(address _user) view returns (bool)
canRequestRefund
viewfunction canRequestRefund() view returns (bool)
canRequestRefundOf
viewfunction canRequestRefundOf(address _account) view returns (bool)
checkUpkeep
viewfunction checkUpkeep(bytes) view returns (bool upkeepNeeded, bytes performData)
claimableOf
viewfunction claimableOf(address _account) view returns (uint256)
claimedOf
viewfunction claimedOf(address _account) view returns (uint256)
claimFee
viewfunction claimFee() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
feeReserve
viewfunction feeReserve() view returns (address)
getAutoAirdropNumber
viewfunction getAutoAirdropNumber() view returns (uint256)
getAutoAirdrops
viewfunction getAutoAirdrops(uint256 _start, uint256 _end) view returns (address[])
getRefundeeNumber
viewfunction getRefundeeNumber() view returns (uint256)
getRefundees
viewfunction getRefundees(uint256 _start, uint256 _end) view returns (address[])
getReleaser
viewfunction getReleaser() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTokenAddress
viewfunction getTokenAddress() view returns (address)
getTotalShares
viewfunction getTotalShares() view returns (uint256)
hasRequestedRefund
viewfunction hasRequestedRefund(address _account) view returns (bool)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
paused
viewfunction paused() view returns (bool)
refundPeriod
viewfunction refundPeriod() view returns (uint256)
refundReserve
viewfunction refundReserve() view returns (address)
refundToken
viewfunction refundToken() view returns (address)
shares
viewfunction shares(address account) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tge
viewfunction tge() view returns (uint256)
totalClaimableOf
viewfunction totalClaimableOf(address _account) view returns (uint256)
addAirdrop
nonpayablefunction addAirdrop(address _account)
addShares
nonpayablefunction addShares(address _account, uint256 _amount)
addVestingInstances
nonpayablefunction addVestingInstances(uint256[] unlockTimes, uint256[] percents)
airdrop
nonpayablefunction airdrop(address[] _accounts)
autoAirdrop
nonpayablefunction autoAirdrop()
batchAddAirdrops
nonpayablefunction batchAddAirdrops(address[] _accounts)
batchAddShares
nonpayablefunction batchAddShares(address[] _accounts, uint256[] _shares_)
batchRemoveAirdrops
nonpayablefunction batchRemoveAirdrops(address[] _accounts)
batchRemoveShares
nonpayablefunction batchRemoveShares(address[] _accounts)
batchSetShares
nonpayablefunction batchSetShares(address[] _accounts, uint256[] _shares_)
claim
payablefunction claim() payable
claimTo
payablefunction claimTo(address _receiver) payable
deployReleaser
nonpayablefunction deployReleaser(uint256 _cliff, uint256 _durationInSec, uint256 _periodInSeconds) returns (address newReleaserAddress)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(uint256 _amount, bool _fromReleaser)
getRefund
nonpayablefunction getRefund()
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pause
nonpayablefunction pause()
performUpkeep
nonpayablefunction performUpkeep(bytes)
refundUsers
nonpayablefunction refundUsers(address[] _accounts)
removeAirdrop
nonpayablefunction removeAirdrop(address _account)
removeShares
nonpayablefunction removeShares(address _account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
replaceWallet
nonpayablefunction replaceWallet(address _oldWallet, address _newWallet)
requestAirdrop
nonpayablefunction requestAirdrop()
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAirdropFee
nonpayablefunction setAirdropFee(uint256 _fee)
setAirdropStatus
nonpayablefunction setAirdropStatus(bool _allowed)
setClaimFee
nonpayablefunction setClaimFee(uint256 _fee)
setFeeReserve
nonpayablefunction setFeeReserve(address _feeReserve)
setRefundPeriod
nonpayablefunction setRefundPeriod(uint256 _refundPeriod)
setRefundReserve
nonpayablefunction setRefundReserve(address _refundReserve)
setShares
nonpayablefunction setShares(address _account, uint256 shares_)
unpause
nonpayablefunction unpause()
updateIterationNumber
nonpayablefunction updateIterationNumber(uint256 iteration)
updateReleaser
nonpayablefunction updateReleaser(address _releaser)
updateTimes
nonpayablefunction updateTimes(uint256 _tge, uint256 _cliff, uint256 _durationInSec, uint256 _periodInSeconds)
withdrawAccidentalTokens
nonpayablefunction withdrawAccidentalTokens(address _token, address _to, uint256 _amount)
events
Airdropped
event Airdropped(address to, uint256 amount)
Claimed
event Claimed(address account, uint256 amount)
Paused
event Paused(address account)
PaymentReleased
event PaymentReleased(address to, uint256 amount)
Refunded
event Refunded(address account, uint256 amount)
RefundRequested
event RefundRequested(address account)
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)
SharesAdded
event SharesAdded(address account, uint256 amount)
SharesUpdated
event SharesUpdated(address account, uint256 newShares)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60a060405260326015553480156200001657600080fd5b50604051620074e9380380620074e98339810160408190526200003991620006b5565b6000805460ff1916905560016002558888888888888888886001600160a01b038916620000ad5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e20616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b6001600160a01b038716620001175760405162461bcd60e51b815260206004820152602960248201527f526566756e6420726573657276652063616e6e6f7420626520746865207a65726044820152686f206164647265737360b81b6064820152608401620000a4565b6001600160a01b0386166200017e5760405162461bcd60e51b815260206004820152602660248201527f46656520726573657276652063616e6e6f7420626520746865207a65726f206160448201526564647265737360d01b6064820152608401620000a4565b6200018b60003362000309565b620001b77f78f12a009c29082657d0c0b71e1da642df0932969e5ac25f5190d1e8802d5ff53362000309565b600680546001600160a01b0319166001600160a01b038b16179055620001df84848462000378565b600580546001600160a01b03199081166001600160a01b03938416179091558982166080819052600f805483168b8516179055600e8054909216928916929092179055600386905560048281556040805163313ce56760e01b8152905163313ce567928281019260209291908290030181865afa15801562000265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028b919062000743565b6200029890600a6200077e565b60ff166012555050508815159550620002fa9450505050505760405162461bcd60e51b815260206004820152601460248201527f4475726174696f6e2063616e6e6f7420626520300000000000000000000000006044820152606401620000a4565b505050505050505050620008fc565b62000315828262000403565b620003745760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45b5050565b600080620003868162000430565b600030600660009054906101000a90046001600160a01b0316878787604051620003b0906200068a565b6001600160a01b03958616815294909316602085015260408401919091526060830152608082015260a001604051809103906000f080158015620003f8573d6000803e3d6000fd5b509695505050505050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b6200043c81336200043f565b50565b6200044b828262000403565b62000374576200046681620004b760201b62002e881760201c565b6200047c83602062002e9b620004ca821b17811c565b6040516020016200048f929190620007d0565b60408051601f198184030181529082905262461bcd60e51b8252620000a49160040162000849565b60606200042a6001600160a01b03831660145b60606000620004db8360026200087e565b620004e8906002620008a0565b6001600160401b03811115620005025762000502620008b6565b6040519080825280601f01601f1916602001820160405280156200052d576020820181803683370190505b509050600360fc1b816000815181106200054b576200054b620008cc565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200057d576200057d620008cc565b60200101906001600160f81b031916908160001a9053506000620005a38460026200087e565b620005b0906001620008a0565b90505b600181111562000632576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620005e857620005e8620008cc565b1a60f81b828281518110620006015762000601620008cc565b60200101906001600160f81b031916908160001a90535060049490941c936200062a81620008e2565b9050620005b3565b508315620006835760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620000a4565b9392505050565b611151806200639883390190565b80516001600160a01b0381168114620006b057600080fd5b919050565b60008060008060008060008060006101208a8c031215620006d557600080fd5b620006e08a62000698565b9850620006f060208b0162000698565b97506200070060408b0162000698565b96506200071060608b0162000698565b955060808a0151945060a08a0151935060c08a0151925060e08a015191506101008a015190509295985092959850929598565b6000602082840312156200075657600080fd5b815160ff811681146200068357600080fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168160ff0481118215151615620007a257620007a262000768565b029392505050565b60005b83811015620007c7578181015183820152602001620007ad565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200080a816017850160208801620007aa565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516200083d816028840160208801620007aa565b01602801949350505050565b60208152600082518060208401526200086a816040850160208701620007aa565b601f01601f19169190910160400192915050565b60008160001904831182151516156200089b576200089b62000768565b500290565b808201808211156200042a576200042a62000768565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081620008f457620008f462000768565b506000190190565b608051615a6b6200092d600039600081816108b4015281816111b601528181611d470152613a2c0152615a6b6000f3fe608060405260043610620004435760003560e01c8063725b2c541162000233578063a6a3b5b4116200012f578063c012a68f11620000b9578063d547741f1162000084578063d547741f1462000d23578063d6d5e1011462000d48578063e3e1fb0f1462000d6d578063e50b2bc21462000d8f578063fa54cebd1462000db457600080fd5b8063c012a68f1462000c88578063c69b7e691462000cad578063ce7c2ac21462000cd2578063d5002f2e1462000d0c57600080fd5b8063b6168acf11620000fa578063b6168acf1462000bec578063baa3f7ee1462000c11578063bb5b3edc1462000c4b578063bfac9e721462000c7057600080fd5b8063a6a3b5b41462000b7f578063a7497fa51462000b97578063ab57c2351462000baf578063b2d5ae441462000bd457600080fd5b80638dba908c11620001bd578063986244551162000188578063986244551462000afc57806399d32fc41462000b145780639af41a221462000b2c578063a217fddf1462000b51578063a262f5f81462000b6857600080fd5b80638dba908c1462000a755780638e7e54151462000a9a57806391d148541462000ab2578063922555b41462000ad757600080fd5b8063851c17a711620001fe578063851c17a714620009e65780638903ab9d1462000a0657806389a873c81462000a2b5780638bccbf621462000a5057600080fd5b8063725b2c54146200096f578063729ad39e1462000987578063789ff0e114620009ac5780638456cb5914620009ce57600080fd5b806336568abe11620003435780634a5dc02811620002cd5780635c975abb11620002985780635c975abb14620008865780635cb732be14620008a05780635ccd447b14620008d657806366093ce314620008fb5780636e04ff0d146200092057600080fd5b80634a5dc02814620007fe5780634e71d92d146200082357806351d8804f146200082d578063596298b5146200086157600080fd5b80633f4ba83a116200030e5780633f4ba83a14620007775780634585e33b146200078f5780634792ad3514620007b45780634a426ea414620007d957600080fd5b806336568abe14620006df578063368a5e3414620007045780633cc02171146200073a5780633eef2ec1146200075257600080fd5b806310fe9ae811620003d157806329a06ff5116200039c57806329a06ff514620006335780632e75ab5014620006585780632f2ff15d146200067d57806331f94a2814620006a257806333cd801a14620006c757600080fd5b806310fe9ae81462000571578063217059a314620005a5578063248a9ca314620005ca57806324e5473b146200060e57600080fd5b80630ac26fa011620004125780630ac26fa014620004ea5780630cde3e0b146200050f5780630db1945714620005345780630e81073c146200054c57600080fd5b806301ffc9a7146200044857806303460f6c146200048257806308ed0236146200049e5780630a21b1ac14620004c5575b600080fd5b3480156200045557600080fd5b506200046d6200046736600462003f3c565b62000dd9565b60405190151581526020015b60405180910390f35b3480156200048f57600080fd5b506013546200046d9060ff1681565b348015620004ab57600080fd5b50620004c3620004bd36600462003f77565b62000e11565b005b348015620004d257600080fd5b50620004c3620004e436600462003f97565b62000e32565b348015620004f757600080fd5b506200046d6200050936600462003fce565b62000e45565b3480156200051c57600080fd5b50620004c36200052e366004620040c5565b62000e54565b3480156200054157600080fd5b506200046d62000ece565b3480156200055957600080fd5b50620004c36200056b36600462004130565b62000f45565b3480156200057e57600080fd5b506006546001600160a01b03165b6040516001600160a01b03909116815260200162000479565b348015620005b257600080fd5b50620004c3620005c4366004620041c8565b62001059565b348015620005d757600080fd5b50620005ff620005e936600462003f97565b6000908152600160208190526040909120015490565b60405190815260200162000479565b3480156200061b57600080fd5b50620004c36200062d36600462004201565b620010b4565b3480156200064057600080fd5b50620004c36200065236600462003f97565b620011a7565b3480156200066557600080fd5b50620004c36200067736600462003f97565b6200129f565b3480156200068a57600080fd5b50620004c36200069c36600462004242565b6200130b565b348015620006af57600080fd5b50620004c3620006c136600462003fce565b62001335565b348015620006d457600080fd5b50620005ff620013d8565b348015620006ec57600080fd5b50620004c3620006fe36600462004242565b620013e6565b3480156200071157600080fd5b50620005ff7f78f12a009c29082657d0c0b71e1da642df0932969e5ac25f5190d1e8802d5ff581565b3480156200074757600080fd5b50620005ff62001468565b3480156200075f57600080fd5b50620005ff6200077136600462003fce565b62001476565b3480156200078457600080fd5b50620004c36200158e565b3480156200079c57600080fd5b50620004c3620007ae36600462004271565b620015a8565b348015620007c157600080fd5b50620004c3620007d3366004620042e8565b620015c3565b348015620007e657600080fd5b50620004c3620007f8366004620042e8565b6200167c565b3480156200080b57600080fd5b50620004c36200081d36600462003f97565b62001735565b620004c362001748565b3480156200083a57600080fd5b50620008526200084c36600462004323565b620019f6565b60405162000479919062004346565b3480156200086e57600080fd5b50620004c362000880366004620041c8565b62001b42565b3480156200089357600080fd5b5060005460ff166200046d565b348015620008ad57600080fd5b506200058c7f000000000000000000000000000000000000000000000000000000000000000081565b348015620008e357600080fd5b50620004c3620008f5366004620041c8565b62001b8b565b3480156200090857600080fd5b506200046d6200091a36600462003fce565b62001be1565b3480156200092d57600080fd5b506200095f6200093f36600462004271565b505060135460408051602081019091526000815261010090910460ff1691565b60405162000479929190620043e9565b3480156200097c57600080fd5b50620004c362001c6a565b3480156200099457600080fd5b50620004c3620009a6366004620041c8565b62001d81565b348015620009b957600080fd5b50600e546200058c906001600160a01b031681565b348015620009db57600080fd5b50620004c362001f08565b348015620009f357600080fd5b506005546001600160a01b03166200058c565b34801562000a1357600080fd5b50620005ff62000a2536600462003fce565b62001f1f565b34801562000a3857600080fd5b506200058c62000a4a36600462004406565b62001f2c565b34801562000a5d57600080fd5b50620004c362000a6f36600462004130565b62001fb7565b34801562000a8257600080fd5b506200085262000a9436600462004323565b620020a7565b34801562000aa757600080fd5b50620004c3620021e9565b34801562000abf57600080fd5b506200046d62000ad136600462004242565b62002310565b34801562000ae457600080fd5b50620004c362000af636600462003fce565b6200233b565b34801562000b0957600080fd5b50620005ff60125481565b34801562000b2157600080fd5b50620005ff600d5481565b34801562000b3957600080fd5b506200046d62000b4b36600462003fce565b62002353565b34801562000b5e57600080fd5b50620005ff600081565b620004c362000b7936600462003fce565b620023a4565b34801562000b8c57600080fd5b50620005ff60045481565b34801562000ba457600080fd5b50620005ff60035481565b34801562000bbc57600080fd5b50620004c362000bce36600462003fce565b62002650565b34801562000be157600080fd5b50620004c3620026cf565b34801562000bf957600080fd5b50620004c362000c0b36600462003fce565b6200285d565b34801562000c1e57600080fd5b50620005ff62000c3036600462003fce565b6001600160a01b03166000908152600a602052604090205490565b34801562000c5857600080fd5b50620004c362000c6a36600462004433565b620028fd565b34801562000c7d57600080fd5b506200046d6200295e565b34801562000c9557600080fd5b50620004c362000ca736600462003fce565b620029a6565b34801562000cba57600080fd5b50620004c362000ccc366004620041c8565b620029ec565b34801562000cdf57600080fd5b50620005ff62000cf136600462003fce565b6001600160a01b031660009081526009602052604090205490565b34801562000d1957600080fd5b50600754620005ff565b34801562000d3057600080fd5b50620004c362000d4236600462004242565b62002a79565b34801562000d5557600080fd5b50620004c362000d6736600462003fce565b62002aa3565b34801562000d7a57600080fd5b50600f546200058c906001600160a01b031681565b34801562000d9c57600080fd5b50620004c362000dae36600462004466565b62002b40565b34801562000dc157600080fd5b50620004c362000dd336600462004495565b62002d2f565b60006001600160e01b03198216637965db0b60e01b148062000e0b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600062000e1e8162003055565b506013805460ff1916911515919091179055565b600062000e3f8162003055565b50600455565b600062000e0b600b8362003061565b600062000e618162003055565b600554604051630cde3e0b60e01b81526001600160a01b0390911690630cde3e0b9062000e95908690869060040162004505565b600060405180830381600087803b15801562000eb057600080fd5b505af115801562000ec5573d6000803e3d6000fd5b50505050505050565b600060035460045462000ee291906200454d565b4210801562000ef357506003544210155b801562000f0e57503360009081526009602052604090205415155b801562000f25575062000f23600b3362003061565b155b801562000f405750336000908152600a60205260409020545b155b905090565b600062000f528162003055565b6001600160a01b03831662000f845760405162461bcd60e51b815260040162000f7b9062004563565b60405180910390fd5b6000821162000fce5760405162461bcd60e51b8152602060048201526015602482015274056657374696e673a2073686172657320617265203605c1b604482015260640162000f7b565b6001600160a01b0383166000908152600960205260408120805484929062000ff89084906200454d565b9250508190555081600760008282546200101391906200454d565b90915550506040517fcede7a9903c07d938c75644b6e38f7950ae1d362fca0fc61c99f2496ec9e9921906200104c9085908590620045a7565b60405180910390a1505050565b6000620010668162003055565b60005b8251811015620010af576200109a8382815181106200108c576200108c620045c0565b602002602001015162002650565b80620010a681620045d6565b91505062001069565b505050565b6000620010c18162003055565b6001600160a01b038416620011245760405162461bcd60e51b815260206004820152602260248201527f56657374696e673a20746f6b656e20697320746865207a65726f206164647265604482015261737360f01b606482015260840162000f7b565b6001600160a01b0383166200118b5760405162461bcd60e51b815260206004820152602660248201527f56657374696e673a20726563697069656e7420697320746865207a65726f206160448201526564647265737360d01b606482015260840162000f7b565b620011a16001600160a01b038516848462003084565b50505050565b6000620011b48162003055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001213573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012399190620045f2565b6200124690606462004617565b60ff168210620012995760405162461bcd60e51b815260206004820181905260248201527f56657374696e673a2061697264726f702066656520697320746f6f2068696768604482015260640162000f7b565b50601255565b6000620012ac8162003055565b670de0b6b3a76400008210620013055760405162461bcd60e51b815260206004820152601e60248201527f56657374696e673a20636c61696d2066656520697320746f6f20686967680000604482015260640162000f7b565b50600d55565b60008281526001602081905260409091200154620013298162003055565b620010af8383620030de565b6000620013428162003055565b6001600160a01b038216620013b55760405162461bcd60e51b815260206004820152603260248201527f56657374696e673a20726566756e6420726573657276652063616e6e6f7420626044820152716520746865207a65726f206164647265737360701b606482015260840162000f7b565b50600f80546001600160a01b0319166001600160a01b0392909216919091179055565b600062000f40600b6200314c565b6001600160a01b0381163314620014585760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840162000f7b565b62001464828262003157565b5050565b600062000f4060106200314c565b6008546006546005546040516370a0823160e01b81526001600160a01b0391821660048201526000938493909216906370a0823190602401602060405180830381865afa158015620014cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014f2919062004643565b6006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156200153b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001561919062004643565b6200156d91906200454d565b6200157991906200454d565b9050620015878382620031c1565b9392505050565b60006200159b8162003055565b620015a5620031f8565b50565b601354610100900460ff1615620014645762001464620021e9565b8051825114620016165760405162461bcd60e51b815260206004820152601f60248201527f56657374696e673a20617272617973206c656e677468206d69736d6174636800604482015260640162000f7b565b60005b8251811015620010af57620016678382815181106200163c576200163c620045c0565b6020026020010151838381518110620016595762001659620045c0565b602002602001015162001fb7565b806200167381620045d6565b91505062001619565b8051825114620016cf5760405162461bcd60e51b815260206004820152601f60248201527f56657374696e673a20617272617973206c656e677468206d69736d6174636800604482015260640162000f7b565b60005b8251811015620010af5762001720838281518110620016f557620016f5620045c0565b6020026020010151838381518110620017125762001712620045c0565b602002602001015162000f45565b806200172c81620045d6565b915050620016d2565b6000620017428162003055565b50601555565b620017526200324c565b6200175c620032a5565b600354421015620017815760405162461bcd60e51b815260040162000f7b906200465d565b600d54341015620017d55760405162461bcd60e51b815260206004820181905260248201527f56657374696e673a20636c61696d20666565206973206e6f7420656e6f756768604482015260640162000f7b565b600560009054906101000a90046001600160a01b03166001600160a01b03166386d1a69f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200182657600080fd5b505af11580156200183b573d6000803e3d6000fd5b5050505060006200184c33620032ed565b90506200185a33336200341f565b600d54156200190357600e54600d546040516000926001600160a01b031691908381818185875af1925050503d8060008114620018b4576040519150601f19603f3d011682016040523d82523d6000602084013e620018b9565b606091505b5050905080620019015760405162461bcd60e51b81526020600482015260126024820152714661696c656420746f2073656e642066656560701b604482015260640162000f7b565b505b6000600d54346200191591906200469e565b90508015620019ac57604051600090339083908381818185875af1925050503d806000811462001962576040519150601f19603f3d011682016040523d82523d6000602084013e62001967565b606091505b5050905080620019aa5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640162000f7b565b505b7fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a3383604051620019df929190620045a7565b60405180910390a15050620019f46001600255565b565b6060600062001a06600b6200314c565b905080841062001a715760405162461bcd60e51b815260206004820152602f60248201527f56657374696e673a2073746172742069732067726561746572207468616e207260448201526e0cacceadcc8cacae640d8cadccee8d608b1b606482015260840162000f7b565b8083111562001a7e578092505b600062001a8c85856200469e565b67ffffffffffffffff81111562001aa75762001aa762003fec565b60405190808252806020026020018201604052801562001ad1578160200160208202803683370190505b509050845b8481101562001b395762001aec600b826200355a565b8262001af988846200469e565b8151811062001b0c5762001b0c620045c0565b6001600160a01b03909216602092830291909101909101528062001b3081620045d6565b91505062001ad6565b50949350505050565b60005b8151811015620014645762001b7682828151811062001b685762001b68620045c0565b60200260200101516200233b565b8062001b8281620045d6565b91505062001b45565b600062001b988162003055565b60005b8251811015620010af5762001bcc83828151811062001bbe5762001bbe620045c0565b6020026020010151620029a6565b8062001bd881620045d6565b91505062001b9b565b600060035460045462001bf591906200454d565b4210801562001c0657506003544210155b801562001c2a57506001600160a01b03821660009081526009602052604090205415155b801562001c41575062001c3f600b8362003061565b155b801562000e0b57506001600160a01b0382166000908152600a60205260409020545b1592915050565b62001c746200324c565b60135460ff1662001cc85760405162461bcd60e51b815260206004820152601f60248201527f56657374696e673a2061697264726f70206973206e6f7420616c6c6f77656400604482015260640162000f7b565b62001cd560103362003061565b1562001cf55760405162461bcd60e51b815260040162000f7b90620046b4565b3360009081526009602052604090205462001d245760405162461bcd60e51b815260040162000f7b9062004702565b62001d3160103362003568565b50600e5460125462001d76916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692339291909116906200357f565b620019f46001600255565b7f78f12a009c29082657d0c0b71e1da642df0932969e5ac25f5190d1e8802d5ff562001dad8162003055565b600560009054906101000a90046001600160a01b03166001600160a01b03166386d1a69f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001dfe57600080fd5b505af115801562001e13573d6000803e3d6000fd5b5050505060005b8251811015620010af57600062001e4d84838151811062001e3f5762001e3f620045c0565b6020026020010151620032ed565b9050801562001ef25762001e9a84838151811062001e6f5762001e6f620045c0565b602002602001015185848151811062001e8c5762001e8c620045c0565b60200260200101516200341f565b7fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a84838151811062001ed05762001ed0620045c0565b60200260200101518260405162001ee9929190620045a7565b60405180910390a15b508062001eff81620045d6565b91505062001e1a565b600062001f158162003055565b620015a5620035b9565b600062000e0b82620032ed565b60008062001f3a8162003055565b600030600660009054906101000a90046001600160a01b031687878760405162001f649062003f2e565b6001600160a01b03958616815294909316602085015260408401919091526060830152608082015260a001604051809103906000f08015801562001fac573d6000803e3d6000fd5b509695505050505050565b600062001fc48162003055565b6001600160a01b03831662001fed5760405162461bcd60e51b815260040162000f7b9062004563565b60008211620020375760405162461bcd60e51b8152602060048201526015602482015274056657374696e673a2073686172657320617265203605c1b604482015260640162000f7b565b6001600160a01b03831660009081526009602052604090208054908390556007548190620020679085906200454d565b6200207391906200469e565b60075560405160008051602062005a1683398151915290620020999086908690620045a7565b60405180910390a150505050565b60606000620020b760106200314c565b9050808410620021215760405162461bcd60e51b815260206004820152602e60248201527f56657374696e673a2073746172742069732067726561746572207468616e206160448201526d0d2e4c8e4dee0e640d8cadccee8d60931b606482015260840162000f7b565b808311156200212e578092505b60006200213c85856200469e565b67ffffffffffffffff81111562002157576200215762003fec565b60405190808252806020026020018201604052801562002181578160200160208202803683370190505b509050845b8481101562001b39576200219c6010826200355a565b82620021a988846200469e565b81518110620021bc57620021bc620045c0565b6001600160a01b039092166020928302919091019091015280620021e081620045d6565b91505062002186565b6000601454620021fa60106200314c565b6200220691906200469e565b90506000601454905060006015548311156200224a576013805461ff0019166101001790556015546014546200223d91906200454d565b601455506015546200225d565b506013805461ff00191690556000601455815b600560009054906101000a90046001600160a01b03166001600160a01b03166386d1a69f6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620022ae57600080fd5b505af1158015620022c3573d6000803e3d6000fd5b5084925050505b620022d682846200454d565b811015620011a1576000620022ed6010836200355a565b9050620022fa81620035f9565b50806200230781620045d6565b915050620022ca565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000620023488162003055565b6200146482620036be565b60135460009060ff1680156200236b57506003544210155b80156200238f57506001600160a01b03821660009081526009602052604090205415155b801562000e0b575062001c6360108362003061565b620023ae6200324c565b620023b8620032a5565b600354421015620023dd5760405162461bcd60e51b815260040162000f7b906200465d565b600d54341015620024315760405162461bcd60e51b815260206004820181905260248201527f56657374696e673a20636c61696d20666565206973206e6f7420656e6f756768604482015260640162000f7b565b600560009054906101000a90046001600160a01b03166001600160a01b03166386d1a69f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200248257600080fd5b505af115801562002497573d6000803e3d6000fd5b505050506000620024a833620032ed565b9050620024b633836200341f565b600d54156200255f57600e54600d546040516000926001600160a01b031691908381818185875af1925050503d806000811462002510576040519150601f19603f3d011682016040523d82523d6000602084013e62002515565b606091505b50509050806200255d5760405162461bcd60e51b81526020600482015260126024820152714661696c656420746f2073656e642066656560701b604482015260640162000f7b565b505b6000600d54346200257191906200469e565b905080156200260857604051600090339083908381818185875af1925050503d8060008114620025be576040519150601f19603f3d011682016040523d82523d6000602084013e620025c3565b606091505b5050905080620026065760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640162000f7b565b505b7fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a33836040516200263b929190620045a7565b60405180910390a15050620015a56001600255565b60006200265d8162003055565b6200266a60108362003061565b156200268a5760405162461bcd60e51b815260040162000f7b90620046b4565b6001600160a01b038216600090815260096020526040902054620026c25760405162461bcd60e51b815260040162000f7b9062004702565b620010af60108362003568565b620026d96200324c565b620026e3620032a5565b600354600454620026f591906200454d565b421080156200270657506003544210155b620027495760405162461bcd60e51b81526020600482015260126024820152712932b33ab7321034b9903737ba1037b832b760711b604482015260640162000f7b565b336000908152600a602052604090205415620027b45760405162461bcd60e51b8152602060048201526024808201527f56657374696e673a206163636f756e742068617320616c726561647920636c616044820152631a5b595960e21b606482015260840162000f7b565b620027c1600b3362003061565b15620028235760405162461bcd60e51b815260206004820152602a60248201527f56657374696e673a206163636f756e742068617320616c7265616479206265656044820152691b881c99599d5b99195960b21b606482015260840162000f7b565b33600090815260096020526040902054620028525760405162461bcd60e51b815260040162000f7b9062004702565b62001d76336200388b565b60006200286a8162003055565b6001600160a01b038216620028da5760405162461bcd60e51b815260206004820152602f60248201527f56657374696e673a2066656520726573657276652063616e6e6f74206265207460448201526e6865207a65726f206164647265737360881b606482015260840162000f7b565b50600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60006200290a8162003055565b811562002945576005546040516395ccea6760e01b81526001600160a01b03909116906395ccea679062000e959033908790600401620045a7565b600654620010af906001600160a01b0316338562003084565b60135460009060ff1680156200297657506003544210155b80156200299157503360009081526009602052604090205415155b801562000f40575062000f3e60103362003061565b6000620029b38162003055565b620029c060108362003061565b620029df5760405162461bcd60e51b815260040162000f7b9062004739565b620010af60108362003a8a565b6000620029f98162003055565b60005b8251811015620010af5762002a3883828151811062002a1f5762002a1f620045c0565b6020026020010151600b6200306190919063ffffffff16565b62002a645762002a6483828151811062002a565762002a56620045c0565b60200260200101516200388b565b8062002a7081620045d6565b915050620029fc565b6000828152600160208190526040909120015462002a978162003055565b620010af838362003157565b600062002ab08162003055565b6001600160a01b03821662002b1d5760405162461bcd60e51b815260206004820152602c60248201527f56657374696e673a2072656c65617365722063616e6e6f74206265207468652060448201526b7a65726f206164647265737360a01b606482015260840162000f7b565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b600062002b4d8162003055565b6001600160a01b03831662002bb55760405162461bcd60e51b815260206004820152602760248201527f56657374696e673a206f6c642077616c6c657420697320746865207a65726f206044820152666164647265737360c81b606482015260840162000f7b565b6001600160a01b03821662002c1d5760405162461bcd60e51b815260206004820152602760248201527f56657374696e673a206e65772077616c6c657420697320746865207a65726f206044820152666164647265737360c81b606482015260840162000f7b565b6001600160a01b03831660009081526009602052604090205462002c8e5760405162461bcd60e51b815260206004820152602160248201527f56657374696e673a206f6c642077616c6c657420686173206e6f2073686172656044820152607360f81b606482015260840162000f7b565b6001600160a01b038084166000818152600960209081526040808320805490849055948716808452818420869055938352600a9091528082208054908390559282528082208390555160008051602062005a168339815191529162002cf691889190620045a7565b60405180910390a160008051602062005a16833981519152848360405162002d20929190620045a7565b60405180910390a15050505050565b600062002d3c8162003055565b841562002d495760038590555b831562002db1576005546040516306bcf02f60e01b8152600481018690526001600160a01b03909116906306bcf02f90602401600060405180830381600087803b15801562002d9757600080fd5b505af115801562002dac573d6000803e3d6000fd5b505050505b821562002e1957600554604051631b50ad0960e01b8152600481018590526001600160a01b0390911690631b50ad0990602401600060405180830381600087803b15801562002dff57600080fd5b505af115801562002e14573d6000803e3d6000fd5b505050505b811562002e815760055460405163bc78f6a960e01b8152600481018490526001600160a01b039091169063bc78f6a990602401600060405180830381600087803b15801562002e6757600080fd5b505af115801562002e7c573d6000803e3d6000fd5b505050505b5050505050565b606062000e0b6001600160a01b03831660145b6060600062002eac83600262004783565b62002eb99060026200454d565b67ffffffffffffffff81111562002ed45762002ed462003fec565b6040519080825280601f01601f19166020018201604052801562002eff576020820181803683370190505b509050600360fc1b8160008151811062002f1d5762002f1d620045c0565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062002f4f5762002f4f620045c0565b60200101906001600160f81b031916908160001a905350600062002f7584600262004783565b62002f829060016200454d565b90505b600181111562003004576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062002fba5762002fba620045c0565b1a60f81b82828151811062002fd35762002fd3620045c0565b60200101906001600160f81b031916908160001a90535060049490941c9362002ffc81620047a5565b905062002f85565b508315620015875760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000f7b565b620015a5813362003aa1565b6001600160a01b0381166000908152600183016020526040812054151562001587565b620010af8363a9059cbb60e01b8484604051602401620030a6929190620045a7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262003b05565b620030ea828262002310565b620014645760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600062000e0b825490565b62003163828262002310565b15620014645760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6007546001600160a01b038316600090815260096020526040812054909190620031ec908462004783565b620015879190620047bf565b6200320262003be1565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60028054036200329f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640162000f7b565b60028055565b60005460ff1615620019f45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640162000f7b565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663fbccedae6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200336a919062004643565b6008546006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015620033b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033dc919062004643565b620033e891906200454d565b620033f491906200454d565b6001600160a01b0384166000908152600a602052604090205490915062001587908490839062003c2c565b6001600160a01b038216600090815260096020526040902054620034575760405162461bcd60e51b815260040162000f7b9062004702565b60006200346483620032ed565b905080600003620034c45760405162461bcd60e51b815260206004820152602360248201527f56657374696e673a206163636f756e74206973206e6f7420647565207061796d604482015262195b9d60ea1b606482015260840162000f7b565b6001600160a01b0383166000908152600a602052604081208054839290620034ee9084906200454d565b9250508190555080600860008282546200350991906200454d565b909155505060065462003527906001600160a01b0316838362003084565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b05682826040516200104c929190620045a7565b600062001587838362003c78565b600062001587836001600160a01b03841662003ca5565b6040516001600160a01b0380851660248301528316604482015260648101829052620011a19085906323b872dd60e01b90608401620030a6565b620035c3620032a5565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586200322f3390565b6200360660108262003061565b620036255760405162461bcd60e51b815260040162000f7b9062004739565b6001600160a01b0381166000908152600960205260409020546200365d5760405162461bcd60e51b815260040162000f7b9062004702565b60006200366a82620032ed565b9050801562001464576200367f82836200341f565b7f7bd6d4be1decdc27a9ed9c7ccdf5bb7cc38e31b3647b958c6b37162a2296c0fa8282604051620036b2929190620045a7565b60405180910390a15050565b6001600160a01b038116620036e75760405162461bcd60e51b815260040162000f7b9062004563565b6007546001600160a01b038083166000908152600960209081526040808320546005548251639613252160e01b815292519496959194911692639613252192600480820193918290030181865afa15801562003747573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200376d919062004643565b62003779919062004783565b620037859190620047bf565b6001600160a01b0383166000908152600960205260408120805490829055600780549394509092839290620037bc9084906200469e565b90915550506001600160a01b0383166000908152600a60205260408120546008805491929091620037ef9084906200469e565b90915550506001600160a01b038381166000908152600a6020526040808220919091556005549051634920ab4560e11b815260048101859052911690639241568a90602401600060405180830381600087803b1580156200384f57600080fd5b505af115801562003864573d6000803e3d6000fd5b5050505060008051602062005a168339815191528360006040516200104c929190620045a7565b6001600160a01b0381166000908152600a602052604090205415620038ad5750565b620038ba600b8262003568565b506008546006546040516370a0823160e01b8152306004820152600092916001600160a01b0316906370a0823190602401602060405180830381865afa15801562003909573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200392f919062004643565b6200393b91906200454d565b905060006200394d8383600062003c2c565b905060006200395c8462001476565b6001600160a01b0385166000908152600960205260409020549091506200398385620036be565b600554600f546001600160a01b03918216916395ccea679116620039a886866200469e565b6040518363ffffffff1660e01b8152600401620039c7929190620045a7565b600060405180830381600087803b158015620039e257600080fd5b505af1158015620039f7573d6000803e3d6000fd5b5050600f5460065462003a1a93506001600160a01b039081169250168562003084565b600f5462003a57906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911687846200357f565b7fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651858360405162002d20929190620045a7565b600062001587836001600160a01b03841662003cf7565b62003aad828262002310565b620014645762003abd8162002e88565b62003aca83602062002e9b565b60405160200162003add929190620047e2565b60408051601f198184030181529082905262461bcd60e51b825262000f7b916004016200485b565b600062003b5c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662003dfb9092919063ffffffff16565b905080516000148062003b8057508080602001905181019062003b80919062004870565b620010af5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000f7b565b60005460ff16620019f45760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640162000f7b565b6007546001600160a01b0384166000908152600960205260408120549091839162003c58908662004783565b62003c649190620047bf565b62003c7091906200469e565b949350505050565b600082600001828154811062003c925762003c92620045c0565b9060005260206000200154905092915050565b600081815260018301602052604081205462003cee5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000e0b565b50600062000e0b565b6000818152600183016020526040812054801562003df057600062003d1e6001836200469e565b855490915060009062003d34906001906200469e565b905081811462003da057600086600001828154811062003d585762003d58620045c0565b906000526020600020015490508087600001848154811062003d7e5762003d7e620045c0565b6000918252602080832090910192909255918252600188019052604090208390555b855486908062003db45762003db462004890565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062000e0b565b600091505062000e0b565b606062003c70848460008585600080866001600160a01b0316858760405162003e259190620048a6565b60006040518083038185875af1925050503d806000811462003e64576040519150601f19603f3d011682016040523d82523d6000602084013e62003e69565b606091505b509150915062003e7c8783838762003e87565b979650505050505050565b6060831562003efb57825160000362003ef3576001600160a01b0385163b62003ef35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000f7b565b508162003c70565b62003c70838381511562003f125781518083602001fd5b8060405162461bcd60e51b815260040162000f7b91906200485b565b61115180620048c583390190565b60006020828403121562003f4f57600080fd5b81356001600160e01b0319811681146200158757600080fd5b8015158114620015a557600080fd5b60006020828403121562003f8a57600080fd5b8135620015878162003f68565b60006020828403121562003faa57600080fd5b5035919050565b80356001600160a01b038116811462003fc957600080fd5b919050565b60006020828403121562003fe157600080fd5b620015878262003fb1565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156200402e576200402e62003fec565b604052919050565b600067ffffffffffffffff82111562004053576200405362003fec565b5060051b60200190565b600082601f8301126200406f57600080fd5b8135602062004088620040828362004036565b62004002565b82815260059290921b84018101918181019086841115620040a857600080fd5b8286015b8481101562001fac5780358352918301918301620040ac565b60008060408385031215620040d957600080fd5b823567ffffffffffffffff80821115620040f257600080fd5b62004100868387016200405d565b935060208501359150808211156200411757600080fd5b5062004126858286016200405d565b9150509250929050565b600080604083850312156200414457600080fd5b6200414f8362003fb1565b946020939093013593505050565b600082601f8301126200416f57600080fd5b8135602062004182620040828362004036565b82815260059290921b84018101918181019086841115620041a257600080fd5b8286015b8481101562001fac57620041ba8162003fb1565b8352918301918301620041a6565b600060208284031215620041db57600080fd5b813567ffffffffffffffff811115620041f357600080fd5b62003c70848285016200415d565b6000806000606084860312156200421757600080fd5b620042228462003fb1565b9250620042326020850162003fb1565b9150604084013590509250925092565b600080604083850312156200425657600080fd5b82359150620042686020840162003fb1565b90509250929050565b600080602083850312156200428557600080fd5b823567ffffffffffffffff808211156200429e57600080fd5b818501915085601f830112620042b357600080fd5b813581811115620042c357600080fd5b866020828501011115620042d657600080fd5b60209290920196919550909350505050565b60008060408385031215620042fc57600080fd5b823567ffffffffffffffff808211156200431557600080fd5b62004100868387016200415d565b600080604083850312156200433757600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015620043895783516001600160a01b03168352928401929184019160010162004362565b50909695505050505050565b60005b83811015620043b257818101518382015260200162004398565b50506000910152565b60008151808452620043d581602086016020860162004395565b601f01601f19169290920160200192915050565b821515815260406020820152600062003c706040830184620043bb565b6000806000606084860312156200441c57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156200444757600080fd5b8235915060208301356200445b8162003f68565b809150509250929050565b600080604083850312156200447a57600080fd5b620044858362003fb1565b9150620042686020840162003fb1565b60008060008060808587031215620044ac57600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b83811015620044fa57815187529582019590820190600101620044dc565b509495945050505050565b6040815260006200451a6040830185620044c8565b82810360208401526200452e8185620044c8565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000e0b5762000e0b62004537565b60208082526024908201527f56657374696e673a206163636f756e7420697320746865207a65726f206164646040820152637265737360e01b606082015260800190565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052603260045260246000fd5b600060018201620045eb57620045eb62004537565b5060010190565b6000602082840312156200460557600080fd5b815160ff811681146200158757600080fd5b600060ff821660ff84168160ff04811182151516156200463b576200463b62004537565b029392505050565b6000602082840312156200465657600080fd5b5051919050565b60208082526021908201527f56657374696e673a2054474520686173206e6f742068617070656e65642079656040820152601d60fa1b606082015260800190565b8181038181111562000e0b5762000e0b62004537565b6020808252602e908201527f56657374696e673a206163636f756e742068617320616c72656164792072657160408201526d07565737465642061697264726f760941b606082015260800190565b6020808252601e908201527f56657374696e673a206163636f756e7420686173206e6f207368617265730000604082015260600190565b6020808252602a908201527f56657374696e673a206163636f756e7420686173206e6f742072657175657374604082015269065642061697264726f760b41b606082015260800190565b6000816000190483118215151615620047a057620047a062004537565b500290565b600081620047b757620047b762004537565b506000190190565b600082620047dd57634e487b7160e01b600052601260045260246000fd5b500490565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200481c81601785016020880162004395565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516200484f81602884016020880162004395565b01602801949350505050565b602081526000620015876020830184620043bb565b6000602082840312156200488357600080fd5b8151620015878162003f68565b634e487b7160e01b600052603160045260246000fd5b60008251620048ba81846020870162004395565b919091019291505056fe60c06040523480156200001157600080fd5b5060405162001151380380620011518339810160408190526200003491620002b7565b848462000041336200024a565b6001600160a01b038116620000b05760405162461bcd60e51b815260206004820152602a60248201527f52656c65617365723a20746f6b656e2063616e6e6f7420626520746865207a65604482015269726f206164647265737360b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001165760405162461bcd60e51b815260206004820152602560248201527f52656c65617365723a2062656e6566696369617279206973207a65726f206164604482015264647265737360d81b6064820152608401620000a7565b6001600160a01b039081166080521660a05281620001795760405162461bcd60e51b815260206004820152602a6024820152600080516020620011318339815191526044820152690676572207468616e20360b41b6064820152608401620000a7565b60008111620001dc5760405162461bcd60e51b815260206004820152602860248201527f52656c65617365723a20706572696f642073686f756c64206265206c61726765604482015267072207468616e20360c41b6064820152608401620000a7565b80821015620002355760405162461bcd60e51b815260206004820152602f60248201526000805160206200113183398151915260448201526e19d95c881d1a185b881c195c9a5bd9608a1b6064820152608401620000a7565b600292909255600355600455506200030a9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620002b257600080fd5b919050565b600080600080600060a08688031215620002d057600080fd5b620002db866200029a565b9450620002eb602087016200029a565b6040870151606088015160809098015196999198509695945092505050565b60805160a051610dd76200035a6000396000818161018201528181610567015261059a0152600081816101dd015281816103f3015281816104f20152818161053d01526106500152610dd76000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063920616f5116100a2578063a4caeb4211610071578063a4caeb421461022f578063bc78f6a914610237578063be9a65551461024a578063f2fde38b14610252578063fbccedae1461026557600080fd5b8063920616f5146101db5780639241568a1461020157806395ccea6714610214578063961325211461022757600080fd5b80631bfce853116100e95780631bfce8531461016d57806338af3eed14610180578063715018a6146101ba57806386d1a69f146101c25780638da5cb5b146101ca57600080fd5b806306bcf02f1461011b5780630cde3e0b146101305780630fb5a6b4146101435780631b50ad091461015a575b600080fd5b61012e610129366004610aa1565b61026d565b005b61012e61013e366004610b60565b61027a565b6003545b6040519081526020015b60405180910390f35b61012e610168366004610aa1565b6102e3565b61014761017b366004610aa1565b610375565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610151565b61012e610483565b61012e610497565b6000546001600160a01b03166101a2565b7f00000000000000000000000000000000000000000000000000000000000000006101a2565b61012e61020f366004610aa1565b61058f565b61012e610222366004610bdb565b61063b565b600154610147565b600454610147565b61012e610245366004610aa1565b61067b565b600254610147565b61012e610260366004610c05565b6106aa565b610147610720565b610275610743565b600255565b60405162461bcd60e51b815260206004820152603360248201527f56657374696e6720696e7374616e6365206e6f7420637573746f6d697a61626c6044820152721948199bdc881d1a1a5cc818dbdb9d1c9858dd606a1b60648201526084015b60405180910390fd5b6102eb610743565b6000811161034e5760405162461bcd60e51b815260206004820152602a60248201527f52656c65617365723a206475726174696f6e2073686f756c64206265206c61726044820152690676572207468616e20360b41b60648201526084016102da565b6004548110156103705760405162461bcd60e51b81526004016102da90610c27565b600355565b600061038060025490565b82101561038f57506000919050565b600060045461039d60025490565b6103a79085610c8c565b6103b19190610c9f565b90506000600454826103c39190610cc1565b6002546103d09190610ce0565b90506104766103de60015490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610442573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104669190610cf3565b6104709190610ce0565b8261079d565b949350505050565b919050565b61048b610743565b6104956000610802565b565b60006104a260015490565b6104ab42610375565b6104b59190610c8c565b905080600160008282546104c99190610ce0565b909155507fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b90507f0000000000000000000000000000000000000000000000000000000000000000604080516001600160a01b039092168252602082018490520160405180910390a1801561058c5761058c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000083610852565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106215760405162461bcd60e51b815260206004820152603160248201527f52656c65617365723a206f6e6c792062656e65666963696172792063616e206360448201527030b636103a3434b990333ab731ba34b7b760791b60648201526084016102da565b80600160008282546106339190610c8c565b909155505050565b610643610743565b6106776001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383610852565b5050565b610683610743565b8060035410156106a55760405162461bcd60e51b81526004016102da90610c27565b600455565b6106b2610743565b6001600160a01b0381166107175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102da565b61058c81610802565b600061072b60015490565b61073442610375565b61073e9190610c8c565b905090565b6000546001600160a01b031633146104955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102da565b60006107a860025490565b8210156107b7575060006107fc565b6003546002546107c79190610ce0565b8211156107d55750816107fc565b6003546002546107e59084610c8c565b6107ef9085610cc1565b6107f99190610c9f565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526108a49084906108a9565b505050565b60006108fe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661097e9092919063ffffffff16565b905080516000148061091f57508080602001905181019061091f9190610d0c565b6108a45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102da565b6060610476848460008585600080866001600160a01b031685876040516109a59190610d52565b60006040518083038185875af1925050503d80600081146109e2576040519150601f19603f3d011682016040523d82523d6000602084013e6109e7565b606091505b50915091506109f887838387610a03565b979650505050505050565b60608315610a72578251600003610a6b576001600160a01b0385163b610a6b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102da565b5081610476565b6104768383815115610a875781518083602001fd5b8060405162461bcd60e51b81526004016102da9190610d6e565b600060208284031215610ab357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610ae157600080fd5b8135602067ffffffffffffffff80831115610afe57610afe610aba565b8260051b604051601f19603f83011681018181108482111715610b2357610b23610aba565b604052938452858101830193838101925087851115610b4157600080fd5b83870191505b848210156109f857813583529183019190830190610b47565b60008060408385031215610b7357600080fd5b823567ffffffffffffffff80821115610b8b57600080fd5b610b9786838701610ad0565b93506020850135915080821115610bad57600080fd5b50610bba85828601610ad0565b9150509250929050565b80356001600160a01b038116811461047e57600080fd5b60008060408385031215610bee57600080fd5b610bf783610bc4565b946020939093013593505050565b600060208284031215610c1757600080fd5b610c2082610bc4565b9392505050565b6020808252602f908201527f52656c65617365723a206475726174696f6e2073686f756c64206265206c617260408201526e19d95c881d1a185b881c195c9a5bd9608a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107fc576107fc610c76565b600082610cbc57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610cdb57610cdb610c76565b500290565b808201808211156107fc576107fc610c76565b600060208284031215610d0557600080fd5b5051919050565b600060208284031215610d1e57600080fd5b81518015158114610c2057600080fd5b60005b83811015610d49578181015183820152602001610d31565b50506000910152565b60008251610d64818460208701610d2e565b9190910192915050565b6020815260008251806020840152610d8d816040850160208701610d2e565b601f01601f1916919091016040019291505056fea26469706673582212207a7680cec90f0d84c6c0248c8351b5e535528db022c0db46303ead7581526e6b64736f6c6343000810003352656c65617365723a206475726174696f6e2073686f756c64206265206c6172e6382c9ed5c0c33bb05042f73cf6cbe9cb25639f9a711e094ee563bc9cb80e2ca264697066735822122081fb24568194dcec69c12457078b3c3985dce246f48daecfd79b57571d04582164736f6c6343000810003360c06040523480156200001157600080fd5b5060405162001151380380620011518339810160408190526200003491620002b7565b848462000041336200024a565b6001600160a01b038116620000b05760405162461bcd60e51b815260206004820152602a60248201527f52656c65617365723a20746f6b656e2063616e6e6f7420626520746865207a65604482015269726f206164647265737360b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001165760405162461bcd60e51b815260206004820152602560248201527f52656c65617365723a2062656e6566696369617279206973207a65726f206164604482015264647265737360d81b6064820152608401620000a7565b6001600160a01b039081166080521660a05281620001795760405162461bcd60e51b815260206004820152602a6024820152600080516020620011318339815191526044820152690676572207468616e20360b41b6064820152608401620000a7565b60008111620001dc5760405162461bcd60e51b815260206004820152602860248201527f52656c65617365723a20706572696f642073686f756c64206265206c61726765604482015267072207468616e20360c41b6064820152608401620000a7565b80821015620002355760405162461bcd60e51b815260206004820152602f60248201526000805160206200113183398151915260448201526e19d95c881d1a185b881c195c9a5bd9608a1b6064820152608401620000a7565b600292909255600355600455506200030a9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620002b257600080fd5b919050565b600080600080600060a08688031215620002d057600080fd5b620002db866200029a565b9450620002eb602087016200029a565b6040870151606088015160809098015196999198509695945092505050565b60805160a051610dd76200035a6000396000818161018201528181610567015261059a0152600081816101dd015281816103f3015281816104f20152818161053d01526106500152610dd76000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063920616f5116100a2578063a4caeb4211610071578063a4caeb421461022f578063bc78f6a914610237578063be9a65551461024a578063f2fde38b14610252578063fbccedae1461026557600080fd5b8063920616f5146101db5780639241568a1461020157806395ccea6714610214578063961325211461022757600080fd5b80631bfce853116100e95780631bfce8531461016d57806338af3eed14610180578063715018a6146101ba57806386d1a69f146101c25780638da5cb5b146101ca57600080fd5b806306bcf02f1461011b5780630cde3e0b146101305780630fb5a6b4146101435780631b50ad091461015a575b600080fd5b61012e610129366004610aa1565b61026d565b005b61012e61013e366004610b60565b61027a565b6003545b6040519081526020015b60405180910390f35b61012e610168366004610aa1565b6102e3565b61014761017b366004610aa1565b610375565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610151565b61012e610483565b61012e610497565b6000546001600160a01b03166101a2565b7f00000000000000000000000000000000000000000000000000000000000000006101a2565b61012e61020f366004610aa1565b61058f565b61012e610222366004610bdb565b61063b565b600154610147565b600454610147565b61012e610245366004610aa1565b61067b565b600254610147565b61012e610260366004610c05565b6106aa565b610147610720565b610275610743565b600255565b60405162461bcd60e51b815260206004820152603360248201527f56657374696e6720696e7374616e6365206e6f7420637573746f6d697a61626c6044820152721948199bdc881d1a1a5cc818dbdb9d1c9858dd606a1b60648201526084015b60405180910390fd5b6102eb610743565b6000811161034e5760405162461bcd60e51b815260206004820152602a60248201527f52656c65617365723a206475726174696f6e2073686f756c64206265206c61726044820152690676572207468616e20360b41b60648201526084016102da565b6004548110156103705760405162461bcd60e51b81526004016102da90610c27565b600355565b600061038060025490565b82101561038f57506000919050565b600060045461039d60025490565b6103a79085610c8c565b6103b19190610c9f565b90506000600454826103c39190610cc1565b6002546103d09190610ce0565b90506104766103de60015490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610442573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104669190610cf3565b6104709190610ce0565b8261079d565b949350505050565b919050565b61048b610743565b6104956000610802565b565b60006104a260015490565b6104ab42610375565b6104b59190610c8c565b905080600160008282546104c99190610ce0565b909155507fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b90507f0000000000000000000000000000000000000000000000000000000000000000604080516001600160a01b039092168252602082018490520160405180910390a1801561058c5761058c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000083610852565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106215760405162461bcd60e51b815260206004820152603160248201527f52656c65617365723a206f6e6c792062656e65666963696172792063616e206360448201527030b636103a3434b990333ab731ba34b7b760791b60648201526084016102da565b80600160008282546106339190610c8c565b909155505050565b610643610743565b6106776001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383610852565b5050565b610683610743565b8060035410156106a55760405162461bcd60e51b81526004016102da90610c27565b600455565b6106b2610743565b6001600160a01b0381166107175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102da565b61058c81610802565b600061072b60015490565b61073442610375565b61073e9190610c8c565b905090565b6000546001600160a01b031633146104955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102da565b60006107a860025490565b8210156107b7575060006107fc565b6003546002546107c79190610ce0565b8211156107d55750816107fc565b6003546002546107e59084610c8c565b6107ef9085610cc1565b6107f99190610c9f565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526108a49084906108a9565b505050565b60006108fe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661097e9092919063ffffffff16565b905080516000148061091f57508080602001905181019061091f9190610d0c565b6108a45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102da565b6060610476848460008585600080866001600160a01b031685876040516109a59190610d52565b60006040518083038185875af1925050503d80600081146109e2576040519150601f19603f3d011682016040523d82523d6000602084013e6109e7565b606091505b50915091506109f887838387610a03565b979650505050505050565b60608315610a72578251600003610a6b576001600160a01b0385163b610a6b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102da565b5081610476565b6104768383815115610a875781518083602001fd5b8060405162461bcd60e51b81526004016102da9190610d6e565b600060208284031215610ab357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610ae157600080fd5b8135602067ffffffffffffffff80831115610afe57610afe610aba565b8260051b604051601f19603f83011681018181108482111715610b2357610b23610aba565b604052938452858101830193838101925087851115610b4157600080fd5b83870191505b848210156109f857813583529183019190830190610b47565b60008060408385031215610b7357600080fd5b823567ffffffffffffffff80821115610b8b57600080fd5b610b9786838701610ad0565b93506020850135915080821115610bad57600080fd5b50610bba85828601610ad0565b9150509250929050565b80356001600160a01b038116811461047e57600080fd5b60008060408385031215610bee57600080fd5b610bf783610bc4565b946020939093013593505050565b600060208284031215610c1757600080fd5b610c2082610bc4565b9392505050565b6020808252602f908201527f52656c65617365723a206475726174696f6e2073686f756c64206265206c617260408201526e19d95c881d1a185b881c195c9a5bd9608a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107fc576107fc610c76565b600082610cbc57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610cdb57610cdb610c76565b500290565b808201808211156107fc576107fc610c76565b600060208284031215610d0557600080fd5b5051919050565b600060208284031215610d1e57600080fd5b81518015158114610c2057600080fd5b60005b83811015610d49578181015183820152602001610d31565b50506000910152565b60008251610d64818460208701610d2e565b9190910192915050565b6020815260008251806020840152610d8d816040850160208701610d2e565b601f01601f1916919091016040019291505056fea26469706673582212207a7680cec90f0d84c6c0248c8351b5e535528db022c0db46303ead7581526e6b64736f6c6343000810003352656c65617365723a206475726174696f6e2073686f756c64206265206c617200000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000005402e8523a99c97275a96a11d8d69b824ea9c89d0000000000000000000000005402e8523a99c97275a96a11d8d69b824ea9c89d00000000000000000000000000000000000000000000000000000000684445e000000000000000000000000000000000000000000000000000000000684445e0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001