15k txs
17.5k calls
constructor
constructor()
functions
_binder
viewfunction _binder(uint256, address, uint256) view returns (address)
_bindTime
viewfunction _bindTime(address) view returns (uint256)
_claimRecords
viewfunction _claimRecords(address, uint256) view returns (uint256 amount, uint256 tokenAmount, uint256 time)
_claimTokenFee
viewfunction _claimTokenFee() view returns (uint256)
_inviteAmount
viewfunction _inviteAmount(address) view returns (uint256)
_invitor
viewfunction _invitor(address) view returns (address)
_joinRecords
viewfunction _joinRecords(address, uint256) view returns (uint256 amount, uint256 tokenAmount, uint256 time)
_teamAmount
viewfunction _teamAmount(address) view returns (uint256)
_teamCondition
viewfunction _teamCondition(uint256) view returns (uint256)
_teamFee
viewfunction _teamFee(uint256) view returns (uint256)
_tokenOneTimes
viewfunction _tokenOneTimes() view returns (bool)
_userInfo
viewfunction _userInfo(address) view returns (uint256 releasePerDay, uint256 lastReleaseTime, uint256 calReward, uint256 claimedReward, uint256 accReward, uint256 teamReward, uint256 accAmount, uint256 accUsdt, uint256 accToken)
_userList
viewfunction _userList(uint256) view returns (address)
_validBinders
viewfunction _validBinders(address, uint256) view returns (address)
buyDay
viewfunction buyDay(uint256) view returns (bool)
buyRate
viewfunction buyRate() view returns (uint256)
feeAddress
viewfunction feeAddress() view returns (address)
fundAddress
viewfunction fundAddress() view returns (address)
getBaseInfo
viewfunction getBaseInfo() view returns (address usdt, uint256 usdtDecimals, string usdtSymbol, address token, uint256 tokenDecimals, string tokenSymbol, address ticket, uint256 ticketDecimals, string ticketSymbol, uint256 tokenPerUsdt, uint256 tokenPrice)
getBinderLength
viewfunction getBinderLength(uint256 i, address account) view returns (uint256)
getBinderList
viewfunction getBinderList(uint256 lvl, address account, uint256 start, uint256 length) view returns (address[] binders, uint256[] bindTimes, uint256[] accUsdts, uint256[] accTokens)
getBuyTokenAmount
viewfunction getBuyTokenAmount(uint256 usdtAmount) view returns (uint256 tokenAmount)
getClaimRecordLen
viewfunction getClaimRecordLen(address account) view returns (uint256)
getClaimRecords
viewfunction getClaimRecords(address account, uint256 start, uint256 length) view returns (tuple[] records)
getDay
viewfunction getDay() view returns (uint256)
getEthAmount
viewfunction getEthAmount(uint256 usdtAmount) view returns (uint256 ethAmount)
getJoinRecordLen
viewfunction getJoinRecordLen(address account) view returns (uint256)
getJoinRecords
viewfunction getJoinRecords(address account, uint256 start, uint256 length) view returns (tuple[] records)
getLPTokenAmount
viewfunction getLPTokenAmount(uint256 usdtAmount) view returns (uint256 tokenAmount)
getLPUsdtAmount
viewfunction getLPUsdtAmount(uint256 tokenAmount) view returns (uint256 usdtAmount)
getPendingReward
viewfunction getPendingReward(address account) view returns (uint256 reward)
getPoolInfo
viewfunction getPoolInfo() view returns (bool pause, bool pauseToken, bool pauseClaim, uint256 min, uint256 max, uint256 minToken, uint256 maxToken, uint256 claimFee, uint256 ticketAmount, uint256 rewardRate, uint256 tokenRewardRate, bool oneTimes)
getReleaseReward
viewfunction getReleaseReward(address account) view returns (uint256)
getTime
viewfunction getTime() view returns (uint256)
getUserInfo
viewfunction getUserInfo(address account) view returns (bool active, uint256 balance, uint256 usdtBalance, uint256 usdtAllowance, uint256 tokenBalance, uint256 tokenAllowance, uint256 ticketBalance, uint256 ticketAllowance, uint256 pendingReward, uint256 pendingToken)
getUserListLength
viewfunction getUserListLength() view returns (uint256)
getUserTeamInfo
viewfunction getUserTeamInfo(address account) view returns (address invitor, uint256 binderLen, uint256 validBinderLen, uint256 teamNum, uint256 inviteAmount, uint256 teamAmount)
getValidBinderLength
viewfunction getValidBinderLength(address account) view returns (uint256)
getValidBinders
viewfunction getValidBinders(address account) view returns (address[])
inviteBuyNum
viewfunction inviteBuyNum(address) view returns (uint256)
inviteRewardCondition
viewfunction inviteRewardCondition() view returns (uint256)
owner
viewfunction owner() view returns (address)
releaseRate
viewfunction releaseRate() view returns (uint256)
startReleaseTime
viewfunction startReleaseTime() view returns (uint256)
addAmounts
nonpayablefunction addAmounts(address[] accounts)
bind
nonpayablefunction bind(address invitor)
buy
nonpayablefunction buy(uint256 amount)
buyToken
nonpayablefunction buyToken()
buyWith
nonpayablefunction buyWith(uint256 tokenAmount)
claimBalance
nonpayablefunction claimBalance(uint256 amount, address to)
claimReward
payablefunction claimReward() payable
claimToken
nonpayablefunction claimToken(address token, uint256 amount, address to)
renounceOwnership
nonpayablefunction renounceOwnership()
setBuyRate
nonpayablefunction setBuyRate(uint256 rate)
setClaimFee
nonpayablefunction setClaimFee(uint256 fee)
setClaimTokenFee
nonpayablefunction setClaimTokenFee(uint256 fee)
setFeeAddress
nonpayablefunction setFeeAddress(address adr)
setFundAddress
nonpayablefunction setFundAddress(address adr)
setInviteRewardCondition
nonpayablefunction setInviteRewardCondition(uint256 con)
setMax
nonpayablefunction setMax(uint256 max)
setMaxToken
nonpayablefunction setMaxToken(uint256 max)
setMin
nonpayablefunction setMin(uint256 min)
setMinToken
nonpayablefunction setMinToken(uint256 min)
setOneTimes
nonpayablefunction setOneTimes(bool en)
setPause
nonpayablefunction setPause(bool pause)
setPauseClaim
nonpayablefunction setPauseClaim(bool pause)
setPauseToken
nonpayablefunction setPauseToken(bool pause)
setReleaseRate
nonpayablefunction setReleaseRate(uint256 rate)
setRewardRate
nonpayablefunction setRewardRate(uint256 rate)
setTicketAmount
nonpayablefunction setTicketAmount(uint256 amount)
setTokenOneTimes
nonpayablefunction setTokenOneTimes(bool en)
setTokenRewardRate
nonpayablefunction setTokenRewardRate(uint256 rate)
startRelease
nonpayablefunction startRelease()
testAddDays
nonpayablefunction testAddDays(uint256 ds)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x6101606040526005805461ff00191661010017905560006008556101f4600c819055600f8190556010819055614e206011556161a8601255611f406013556018805460ff199081166001908117909255601a92909255600a601e55602480549092161790553480156200007157600080fd5b50600080546001600160a01b0319163390811782556040517310ed43c718714eb63d5aa57b78b54704e256024e927355d398326f99059ff775485246999027b319795592736688f41cc1942e03493b53b883dcdd586484178892738e71a91e8e2361a12cbe77d92372e25cc38b9ec59273add1d928a93d8ae8727edeca1db7e2e0c4e9fc77928392909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b0380861660c05284811660e052861660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200017a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a0919062000736565b6001600160a01b0390811660a081905260c05160e05160405163e6a4390560e01b8152918416600483015290921660248301529063e6a4390590604401602060405180830381865afa158015620001fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000221919062000736565b6001600160a01b0316610100819052600003620002785760405162461bcd60e51b815260206004820152601060248201526f06e6f20746f6b656e2075736474206c760841b60448201526064015b60405180910390fd5b60c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002df919062000768565b620002ec90600a620008a2565b620002f9906064620008b3565b60148190555060c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000366919062000768565b6200037390600a620008a2565b62000380906064620008b3565b60158190555060e0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ed919062000768565b620003fa90600a620008a2565b62000407906064620008b3565b60168190555060e0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200044e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000474919062000768565b6200048190600a620008a2565b6200048f906103e8620008b3565b601755600d80546001600160a01b0319166001600160a01b03841617905560005b6005811015620004f957620004c7816001620008cd565b60008281526006602090815260408083209390935560079052206103e89055620004f181620008e3565b9050620004b0565b60008052600760209081526107d07f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df55600e80546001600160a01b0319166001600160a01b038581169190911790915560188054610100600160a81b031916610100888416810291909117918290556040805163313ce56760e01b81529051919092049092169263313ce567926004808401938290030181865afa158015620005a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005cc919062000768565b620005d990600a620008a2565b620005e6906001620008b3565b6019819055506080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200062d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000653919062000736565b6001600160a01b0390811661012081905260a05160c05160405163e6a4390560e01b8152908416600482015260248101929092529091169063e6a4390590604401602060405180830381865afa158015620006b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006d8919062000736565b6001600160a01b0316610140819052600003620007295760405162461bcd60e51b815260206004820152600e60248201526d06e6f206574682075736474206c760941b60448201526064016200026f565b50505050505050620008ff565b6000602082840312156200074957600080fd5b81516001600160a01b03811681146200076157600080fd5b9392505050565b6000602082840312156200077b57600080fd5b815160ff811681146200076157600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007e4578160001904821115620007c857620007c86200078d565b80851615620007d657918102915b93841c9390800290620007a8565b509250929050565b600082620007fd575060016200089c565b816200080c575060006200089c565b8160018114620008255760028114620008305762000850565b60019150506200089c565b60ff8411156200084457620008446200078d565b50506001821b6200089c565b5060208310610133831016604e8410600b841016171562000875575081810a6200089c565b620008818383620007a3565b80600019048211156200089857620008986200078d565b0290505b92915050565b60006200076160ff841683620007ec565b80820281158282048414176200089c576200089c6200078d565b808201808211156200089c576200089c6200078d565b600060018201620008f857620008f86200078d565b5060010190565b60805160a05160c05160e0516101005161012051610140516154a562000ab56000396000614539015260006145d20152600081816126ef0152818161277601528181612b2d01528181612d0401528181612db201528181612dd301528181612e0d01528181613e2d01528181614720015281816147a70152818161487b015281816148c6015261490001526000818161180e015281816118a301528181611c6301528181611cae01528181611cf3015281816121fb0152818161221e015281816122a5015281816124ba0152818161271801528181612be901528181612e9a0152818161304b0152818161307f01528181613cff01528181613ec6015281816147490152818161485a01528181614ac70152614b100152600081816116ea0152818161177f015281816120c9015281816120ec01528181612173015281816124280152818161262a015281816126ce0152818161274201528181612c7701528181612f390152818161364d015281816136c60152818161372601528181613cab01528181613ef0015281816145fc015281816146ff0152818161477301526148a50152600050506000613d5601526154a56000f3fe6080604052600436106104405760003560e01c806385dc300411610234578063bedb86fb1161012e578063de5c0fdc116100b6578063f6dd521a1161007a578063f6dd521a14610f4d578063fbc6e9c114610f6d578063fc37987b14610f8d578063fcdfce8f14610fa3578063fd1075d014610fd357600080fd5b8063de5c0fdc14610eb7578063e25fffbe14610ed7578063e82bef2914610ef7578063ef393a7714610f17578063f2fde38b14610f2d57600080fd5b8063cc9ee792116100fd578063cc9ee79214610e17578063cce9667314610e37578063d15d069614610e57578063d48236b114610e77578063d96a094a14610e9757600080fd5b8063bedb86fb14610d60578063bfac5ee014610d80578063c09d0e0f14610da0578063c592a1da14610df757600080fd5b80639e447fc6116101bc578063a55489ed11610180578063a55489ed14610cbb578063a703299814610ce8578063ac86af9414610cfe578063b88a802f14610d2b578063be8ee03714610d3357600080fd5b80639e447fc614610c26578063a081bb9014610c46578063a084745914610c66578063a482171914610c86578063a522f7d014610c9b57600080fd5b80638da5cb5b116102035780638da5cb5b14610b7c5780638e122dac14610b9a5780638fc7a25d14610bba57806392b9ae7c14610bda5780639551ae4414610bfa57600080fd5b806385dc300414610aef57806385e436bf14610b0f5780638705fcd414610b2f57806388f550a714610b4f57600080fd5b80635558e1c31161034557806369da1326116102cd578063712dcc9611610291578063712dcc9614610a57578063715018a614610a77578063758ee0dc14610a8c57806381bac14f14610aa2578063834f8f5514610ac257600080fd5b806369da1326146109135780636c56a3f1146109495780636d13aa6b1461095e5780636f17d611146109945780636fcf06f114610a4157600080fd5b80635b957841116103145780635b9578411461079b57806360246c88146107bb5780636386c1c71461086757806364bb6dd5146108d357806366fe6c45146108f357600080fd5b80635558e1c3146107105780635579a40214610730578063557ed1ba1461075057806357af9e411461076557600080fd5b8063307cf1d9116103c857806341a9b7b31161039757806341a9b7b314610656578063455fdd781461067657806345dc3dd8146106a35780634df9d6ba146106c357806354edb957146106e357600080fd5b8063307cf1d9146105b157806332b2cb51146105d15780633adc66f9146105f1578063412753581461061e57600080fd5b806310c4a0591161040f57806310c4a059146104f757806314ba5c09146105275780631cf64e1c1461053c5780631fe9eabc146105715780632e75ab501461059157600080fd5b80630537484a1461044c57806305fe2fc11461047b57806309acc2cb1461049a57806310c42db9146104bc57600080fd5b3661044757005b600080fd5b34801561045857600080fd5b506024546104669060ff1681565b60405190151581526020015b60405180910390f35b34801561048757600080fd5b50600a545b604051908152602001610472565b3480156104a657600080fd5b506104ba6104b5366004614b60565b610ff3565b005b3480156104c857600080fd5b506104dc6104d7366004614b95565b61102b565b60408051938452602084019290925290820152606001610472565b34801561050357600080fd5b50610517610512366004614bbf565b61106c565b6040516104729493929190614c6e565b34801561053357600080fd5b5061048c61135f565b34801561054857600080fd5b5061048c610557366004614cbb565b6001600160a01b0316600090815260208052604090205490565b34801561057d57600080fd5b506104ba61058c366004614b60565b61137c565b34801561059d57600080fd5b506104ba6105ac366004614b60565b6113ab565b3480156105bd57600080fd5b5061048c6105cc366004614cdd565b6113da565b3480156105dd57600080fd5b506104ba6105ec366004614d17565b611404565b3480156105fd57600080fd5b5061048c61060c366004614b60565b60066020526000908152604090205481565b34801561062a57600080fd5b50600e5461063e906001600160a01b031681565b6040516001600160a01b039091168152602001610472565b34801561066257600080fd5b5061048c610671366004614cbb565b611441565b34801561068257600080fd5b5061048c610691366004614b60565b60076020526000908152604090205481565b3480156106af57600080fd5b506104ba6106be366004614b60565b6114d1565b3480156106cf57600080fd5b5061048c6106de366004614cbb565b611500565b3480156106ef57600080fd5b506107036106fe366004614cbb565b61157b565b6040516104729190614d34565b34801561071c57600080fd5b506104ba61072b366004614b60565b6115f1565b34801561073c57600080fd5b5061048c61074b366004614b60565b611620565b34801561075c57600080fd5b5061048c61164f565b34801561077157600080fd5b5061048c610780366004614cbb565b6001600160a01b03166000908152601f602052604090205490565b3480156107a757600080fd5b506104ba6107b6366004614d17565b61165f565b3480156107c757600080fd5b50610804600554600b54601454601554601654601754600f5460195460115460125460185460ff808c169c610100909c0481169b9a81169a911690565b604080519c15158d529a151560208d0152981515998b019990995260608a0196909652608089019490945260a088019290925260c087015260e0860152610100850152610120840152610140830191909152151561016082015261018001610472565b34801561087357600080fd5b50610887610882366004614cbb565b6116a3565b604080519a15158b5260208b0199909952978901969096526060880194909452608087019290925260a086015260c085015260e084015261010083015261012082015261014001610472565b3480156108df57600080fd5b506104ba6108ee366004614b60565b611a29565b3480156108ff57600080fd5b5061063e61090e366004614b95565b611a90565b34801561091f57600080fd5b5061063e61092e366004614cbb565b6002602052600090815260409020546001600160a01b031681565b34801561095557600080fd5b506104ba611ac8565b34801561096a57600080fd5b5061048c610979366004614cbb565b6001600160a01b031660009081526021602052604090205490565b3480156109a057600080fd5b506109fd6109af366004614cbb565b60016020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154908060070154908060080154905089565b60408051998a5260208a0198909852968801959095526060870193909352608086019190915260a085015260c084015260e083015261010082015261012001610472565b348015610a4d57600080fd5b5061048c601c5481565b348015610a6357600080fd5b506104ba610a72366004614b60565b611aff565b348015610a8357600080fd5b506104ba611eec565b348015610a9857600080fd5b5061048c601e5481565b348015610aae57600080fd5b506104ba610abd366004614cbb565b611f60565b348015610ace57600080fd5b5061048c610add366004614cbb565b60226020526000908152604090205481565b348015610afb57600080fd5b506104ba610b0a366004614cbb565b611f6a565b348015610b1b57600080fd5b506104ba610b2a366004614b60565b611fb6565b348015610b3b57600080fd5b506104ba610b4a366004614cbb565b611fe5565b348015610b5b57600080fd5b5061048c610b6a366004614cbb565b601d6020526000908152604090205481565b348015610b8857600080fd5b506000546001600160a01b031661063e565b348015610ba657600080fd5b5061063e610bb5366004614b60565b612031565b348015610bc657600080fd5b5061048c610bd5366004614b60565b61205b565b348015610be657600080fd5b506104ba610bf5366004614d17565b612078565b348015610c0657600080fd5b50610c0f6120b5565b6040516104729b9a99989796959493929190614d97565b348015610c3257600080fd5b506104ba610c41366004614b60565b612554565b348015610c5257600080fd5b506104ba610c61366004614b60565b612583565b348015610c7257600080fd5b506104dc610c81366004614b95565b6125b2565b348015610c9257600080fd5b506104ba6125ce565b348015610ca757600080fd5b5061048c610cb6366004614b60565b61282e565b348015610cc757600080fd5b50610cdb610cd6366004614e27565b61283b565b6040516104729190614e5a565b348015610cf457600080fd5b5061048c600c5481565b348015610d0a57600080fd5b5061048c610d19366004614cbb565b60236020526000908152604090205481565b6104ba6129a4565b348015610d3f57600080fd5b5061048c610d4e366004614cbb565b60046020526000908152604090205481565b348015610d6c57600080fd5b506104ba610d7b366004614d17565b61314b565b348015610d8c57600080fd5b506104ba610d9b366004614eb3565b613188565b348015610dac57600080fd5b50610dc0610dbb366004614cbb565b6131bd565b604080516001600160a01b0390971687526020870195909552938501929092526060840152608083015260a082015260c001610472565b348015610e0357600080fd5b506104ba610e12366004614b60565b613270565b348015610e2357600080fd5b5061063e610e32366004614eef565b61329f565b348015610e4357600080fd5b506104ba610e52366004614f24565b6132e4565b348015610e6357600080fd5b506104ba610e72366004614cdd565b613440565b348015610e8357600080fd5b506104ba610e92366004614d17565b6134a0565b348015610ea357600080fd5b506104ba610eb2366004614b60565b6134dd565b348015610ec357600080fd5b50610cdb610ed2366004614e27565b6139e1565b348015610ee357600080fd5b506104ba610ef2366004614b60565b613b3f565b348015610f0357600080fd5b50600d5461063e906001600160a01b031681565b348015610f2357600080fd5b5061048c60105481565b348015610f3957600080fd5b506104ba610f48366004614cbb565b613b95565b348015610f5957600080fd5b506104ba610f68366004614b60565b613c55565b348015610f7957600080fd5b5061048c610f88366004614b60565b613c84565b348015610f9957600080fd5b5061048c601a5481565b348015610faf57600080fd5b50610466610fbe366004614b60565b601b6020526000908152604090205460ff1681565b348015610fdf57600080fd5b506104ba610fee366004614b60565b613df6565b6000546001600160a01b031633146110265760405162461bcd60e51b815260040161101d90614f99565b60405180910390fd5b601755565b60208052816000526040600020818154811061104657600080fd5b600091825260209091206003909102018054600182015460029092015490935090915083565b606080606080600061107e89896113da565b90508087111561108c578096505b8515806110a1575061109e8782614fcb565b86115b156110b3576110b08782614fcb565b95505b8567ffffffffffffffff8111156110cc576110cc614fde565b6040519080825280602002602001820160405280156110f5578160200160208202803683370190505b5094508567ffffffffffffffff81111561111157611111614fde565b60405190808252806020026020018201604052801561113a578160200160208202803683370190505b5093508567ffffffffffffffff81111561115657611156614fde565b60405190808252806020026020018201604052801561117f578160200160208202803683370190505b5092508567ffffffffffffffff81111561119b5761119b614fde565b6040519080825280602002602001820160405280156111c4578160200160208202803683370190505b5091506000875b6111d5888a614ff4565b8110156113515760008b81526003602090815260408083206001600160a01b038e168452909152812080548390811061121057611210615007565b9060005260206000200160009054906101000a90046001600160a01b031690508088848151811061124357611243615007565b60200260200101906001600160a01b031690816001600160a01b03168152505060046000826001600160a01b03166001600160a01b031681526020019081526020016000205487848151811061129b5761129b615007565b60200260200101818152505060016000826001600160a01b03166001600160a01b03168152602001908152602001600020600701548684815181106112e2576112e2615007565b60200260200101818152505060016000826001600160a01b03166001600160a01b031681526020019081526020016000206008015485848151811061132957611329615007565b602090810291909101015261133d8361501d565b9250508061134a9061501d565b90506111cb565b505050945094509450949050565b60006201518061136d61164f565b6113779190615036565b905090565b6000546001600160a01b031633146113a65760405162461bcd60e51b815260040161101d90614f99565b601555565b6000546001600160a01b031633146113d55760405162461bcd60e51b815260040161101d90614f99565b600f55565b60008281526003602090815260408083206001600160a01b03851684529091529020545b92915050565b6000546001600160a01b0316331461142e5760405162461bcd60e51b815260040161101d90614f99565b6024805460ff1916911515919091179055565b601c546000908082036114575750600092915050565b6001600160a01b038316600090815260016020819052604090912090810154828110156114815750815b600061148b61164f565b90508181116114a05750600095945050505050565b6000620151806114b08484614fcb565b85546114bc9190615058565b6114c69190615036565b979650505050505050565b6000546001600160a01b031633146114fb5760405162461bcd60e51b815260040161101d90614f99565b601455565b6001600160a01b03811660009081526001602052604081208161152284611441565b6002830154909150811561153d5761153a8282614ff4565b90505b600083600301548460040154111561156657836003015484600401546115639190614fcb565b90505b80821115611572578091505b50949350505050565b6001600160a01b0381166000908152601f60209081526040918290208054835181840281018401909452808452606093928301828280156115e557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115c7575b50505050509050919050565b6000546001600160a01b0316331461161b5760405162461bcd60e51b815260040161101d90614f99565b601655565b600080600061162d613e25565b90925090508061163d8584615058565b6116479190615036565b949350505050565b6000600854426113779190614ff4565b6000546001600160a01b031633146116895760405162461bcd60e51b815260040161101d90614f99565b600580549115156101000261ff0019909216919091179055565b6001600160a01b038181166000818152600960205260408082205490516370a0823160e01b81526004810184905260ff9091169392319282918291829182918291829182917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015611733573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611757919061506f565b604051636eb1769f60e11b81526001600160a01b038d811660048301523060248301529199507f00000000000000000000000000000000000000000000000000000000000000009091169063dd62ed3e90604401602060405180830381865afa1580156117c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ec919061506f565b6040516370a0823160e01b81526001600160a01b038d811660048301529198507f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b919061506f565b604051636eb1769f60e11b81526001600160a01b038d811660048301523060248301529197507f00000000000000000000000000000000000000000000000000000000000000009091169063dd62ed3e90604401602060405180830381865afa1580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611910919061506f565b6018546040516370a0823160e01b81526001600160a01b038e81166004830152929750610100909104909116906370a0823190602401602060405180830381865afa158015611963573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611987919061506f565b601854604051636eb1769f60e11b81526001600160a01b038e811660048301523060248301529296506101009091049091169063dd62ed3e90604401602060405180830381865afa1580156119e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a04919061506f565b9250611a0f8b611500565b9150611a1a8261282e565b90509193959799509193959799565b6000546001600160a01b03163314611a535760405162461bcd60e51b815260040161101d90614f99565b600c81905580611a8d5760405162461bcd60e51b815260206004820152600560248201526406e6f7420360dc1b604482015260640161101d565b50565b601f6020528160005260406000208181548110611aac57600080fd5b6000918252602090912001546001600160a01b03169150829050565b6000546001600160a01b03163314611af25760405162461bcd60e51b815260040161101d90614f99565b611afa61164f565b601c55565b600554610100900460ff1615611b445760405162461bcd60e51b815260206004820152600a6024820152692830bab9b2aa37b5b2b760b11b604482015260640161101d565b601654811015611b815760405162461bcd60e51b815260206004820152600860248201526736b4b72a37b5b2b760c11b604482015260640161101d565b601754811115611bbe5760405162461bcd60e51b815260206004820152600860248201526736b0bc2a37b5b2b760c11b604482015260640161101d565b33328114611bde5760405162461bcd60e51b815260040161101d90615088565b611be781613f36565b611bf08161400e565b6001600160a01b038116600090815260016020526040902060245460ff1615611c5157600881015415611c515760405162461bcd60e51b81526020600482015260096024820152686f6e652074696d657360b81b604482015260640161101d565b6000611c5c84611620565b9050611c8a7f0000000000000000000000000000000000000000000000000000000000000000843087614048565b600061271060135486611c9d9190615058565b611ca79190615036565b9050611cd67f000000000000000000000000000000000000000000000000000000000000000061dead83614152565b6000611ce28287614fcb565b90508015611d2257600d54611d22907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683614152565b600061271060125485611d359190615058565b611d3f9190615036565b90506000600c546012546064611d559190615058565b611d5f9190615036565b905087866008016000828254611d759190614ff4565b90915550506001600160a01b0387166000908152602080805260409182902082516060810184528881529182018b9052918101611db061164f565b905281546001818101845560009384526020808520845160039094020192835583015190820155604090910151600290910155600687018054879290611df7908490614ff4565b90915550611e08905086838361429b565b6001600160a01b0380881660009081526002602052604081205490911690819003611e3857505050505050505050565b6001600160a01b03811660009081526023602052604081208054889290611e60908490614ff4565b9091555088905060005b6005811015611ed7576001600160a01b038083166000908152600260205260409020541692508215611ed7576001600160a01b038316600090815260226020526040812080548594508a9290611ec1908490614ff4565b90915550611ed090508161501d565b9050611e6a565b50611ee06125ce565b50505050505050505050565b6000546001600160a01b03163314611f165760405162461bcd60e51b815260040161101d90614f99565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611a8d338261430a565b6000546001600160a01b03163314611f945760405162461bcd60e51b815260040161101d90614f99565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611fe05760405162461bcd60e51b815260040161101d90614f99565b601a55565b6000546001600160a01b0316331461200f5760405162461bcd60e51b815260040161101d90614f99565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600a818154811061204157600080fd5b6000918252602090912001546001600160a01b0316905081565b6000806000612068614531565b90925090508161163d8583615058565b6000546001600160a01b031633146120a25760405162461bcd60e51b815260040161101d90614f99565b6018805460ff1916911515919091179055565b6000806060600080606060008060606000807f00000000000000000000000000000000000000000000000000000000000000009a507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216c91906150a8565b60ff1699507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156121cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121f791908101906150fc565b98507f000000000000000000000000000000000000000000000000000000000000000097507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561227a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229e91906150a8565b60ff1696507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015612301573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261232991908101906150fc565b6018546040805163313ce56760e01b815290519298506101009091046001600160a01b03169650869163313ce567916004808201926020929091908290030181865afa15801561237d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a191906150a8565b60ff169350601860019054906101000a90046001600160a01b03166001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156123f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261242191908101906150fc565b92506124b37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612484573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a891906150a8565b610cb690600a61526b565b91506125457f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253a91906150a8565b61074b90600a61526b565b9050909192939495969798999a565b6000546001600160a01b0316331461257e5760405162461bcd60e51b815260040161101d90614f99565b601155565b6000546001600160a01b031633146125ad5760405162461bcd60e51b815260040161101d90614f99565b601e55565b6021602052816000526040600020818154811061104657600080fd5b60006125d861135f565b6000818152601b602052604090205490915060ff16156125f55750565b6000818152601b6020526040808220805460ff19166001179055516370a0823160e01b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612671573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612695919061506f565b90506000612710601a54836126aa9190615058565b6126b49190615036565b905080156128295760006126c782613c84565b90506127147f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084614152565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161115612774575060015b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663022c0d9f826127af5760006127b1565b835b836127bc57846127bf565b60005b604080516000815260208101918290526001600160e01b031960e086901b169091526127f492919061dead906024810161527a565b600060405180830381600087803b15801561280e57600080fd5b505af1158015612822573d6000803e3d6000fd5b5050505050505b505050565b6000806000612068613e25565b6001600160a01b038316600090815260216020526040902080546060919084111561286557805493505b82158061287d5750805461287a908590614fcb565b83115b1561289257805461288f908590614fcb565b92505b8267ffffffffffffffff8111156128ab576128ab614fde565b60405190808252806020026020018201604052801561290057816020015b6128ed60405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816128c95790505b5091506000845b6129118587614ff4565b81101561299a5782818154811061292a5761292a615007565b9060005260206000209060030201604051806060016040529081600082015481526020016001820154815260200160028201548152505084838151811061297357612973615007565b6020026020010181905250816129889061501d565b91506129938161501d565b9050612907565b5050509392505050565b600b5460ff16156129e45760405162461bcd60e51b815260206004820152600a6024820152697061757365436c61696d60b01b604482015260640161101d565b33328114612a045760405162461bcd60e51b815260040161101d90615088565b612a0d8161400e565b6001600160a01b0381166000908152600160205260408120600281018054908390556003820154600483015492939192612a479190614fcb565b905080821115612a55578091505b81600003612a635750505050565b81836003016000828254612a779190614ff4565b925050819055506000612710600f54612a8f8561205b565b612a999190615058565b612aa39190615036565b905080341015612adf5760405162461bcd60e51b81526020600482015260076024820152666572722066656560c81b604482015260640161101d565b600e54612af5906001600160a01b031647614635565b6000612710612b0661177086615058565b612b109190615036565b612b1a9085614ff4565b90506000612b26613e25565b50905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bad919061506f565b9050600082612bbc8584615058565b612bc69190615036565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c54919061506f565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce2919061506f565b6040516370a0823160e01b815230600482015290915083906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6f919061506f565b1015612dad5760405162461bcd60e51b815260206004820152600d60248201526c06e6f7420656e6f756768206c7609c1b604482015260640161101d565b612df87f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085614152565b60405163226bf2d160e21b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906389afcb449060240160408051808303816000875af1158015612e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8191906152b1565b50506040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0d919061506f565b612f179190614fcb565b6040516370a0823160e01b815230600482015290925081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa4919061506f565b612fae9190614fcb565b9050612fb9816146d8565b6000612fc48761282e565b9050828111156130095760405162461bcd60e51b815260206004820152601060248201526f3737ba1032b737bab3b4103a37b5b2b760811b604482015260640161101d565b600087613016838d615058565b6130209190615036565b90506000612710601054836130359190615058565b61303f9190615036565b600d5490915061307a907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683614152565b6130ae7f00000000000000000000000000000000000000000000000000000000000000008f6130a98486614fcb565b614152565b6130b98e838e614975565b602160008f6001600160a01b03166001600160a01b0316815260200190815260200160002060405180606001604052808e81526020018481526020016130fd61164f565b90528154600181810184556000938452602093849020835160039093020191825592820151928101929092556040015160029091015561313b6125ce565b5050505050505050505050505050565b6000546001600160a01b031633146131755760405162461bcd60e51b815260040161101d90614f99565b6005805460ff1916911515919091179055565b6000546001600160a01b031633146131b25760405162461bcd60e51b815260040161101d90614f99565b612829838284614152565b6001600160a01b0380821660009081526002602052604081205490911690808080806131e981886113da565b945061320a876001600160a01b03166000908152601f602052604090205490565b6001600160a01b038816600090815260236020908152604080832054602290925282205492965093509091505b60058110156132665761324a81896113da565b6132549085614ff4565b935061325f8161501d565b9050613237565b5091939550919395565b6000546001600160a01b0316331461329a5760405162461bcd60e51b815260040161101d90614f99565b601955565b600360205282600052604060002060205281600052604060002081815481106132c757600080fd5b6000918252602090912001546001600160a01b0316925083915050565b6000546001600160a01b0316331461330e5760405162461bcd60e51b815260040161101d90614f99565b601454601154829190600090612710906133289084615058565b6133329190615036565b90506000600c5460115460646133489190615058565b6133529190615036565b905060005b8481101561343757600087878381811061337357613373615007565b90506020020160208101906133889190614cbb565b905084156134265761339981613f36565b6133a28161400e565b6001600160a01b03811660009081526001602052604090206133c581868661429b565b506001600160a01b0381166000908152602080805260408083208151606081018352898152808401858152610e1093820193845282546001818101855593875294909520905160039094020192835592519282019290925590516002909101555b506134308161501d565b9050613357565b50505050505050565b6000546001600160a01b0316331461346a5760405162461bcd60e51b815260040161101d90614f99565b6040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015612829573d6000803e3d6000fd5b6000546001600160a01b031633146134ca5760405162461bcd60e51b815260040161101d90614f99565b600b805460ff1916911515919091179055565b60055460ff16156135185760405162461bcd60e51b8152602060048201526005602482015264506175736560d81b604482015260640161101d565b6014548110156135505760405162461bcd60e51b815260206004820152600360248201526236b4b760e91b604482015260640161101d565b6015548111156135885760405162461bcd60e51b81526020600482015260036024820152620dac2f60eb1b604482015260640161101d565b333281146135a85760405162461bcd60e51b815260040161101d90615088565b6135b181613f36565b6135ba8161400e565b6001600160a01b038116600090815260016020526040902060185460ff161561361b5760078101541561361b5760405162461bcd60e51b81526020600482015260096024820152686f6e652074696d657360b81b604482015260640161101d565b601954801561364857601854600d54613648916001600160a01b0361010090910481169186911684614048565b6136747f0000000000000000000000000000000000000000000000000000000000000000843087614048565b6000612710601154866136879190615058565b6136919190615036565b90506000600c5460115460646136a79190615058565b6136b19190615036565b9050601c546000036136fa57600d546136f5907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031688614152565b613760565b600061271061370b6103e889615058565b6137159190615036565b9050801561375557600d54613755907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683614152565b61375e87614b3f565b505b858460070160008282546137749190614ff4565b90915550506001600160a01b03851660009081526020808052604080832081516060810183528a81529283019390935281016137ae61164f565b9052815460018181018455600093845260208085208451600390940201928355830151908201556040909101516002909101556006850180548892906137f5908490614ff4565b90915550613806905084838361429b565b6001600160a01b03808616600090815260026020526040812054601c549216919003613915576001600160a01b03811615613915576001600160a01b0381166000908152601d60205260408120805460019290613864908490614ff4565b9091555050601e546001600160a01b0382166000908152601d602052604090205410613915576001600160a01b0381166000908152601d60209081526040808320839055600190915290206138ba81858561429b565b506001600160a01b03811660009081526020808052604080832081516060810183528b815280840185815292810185815282546001818101855593875294909520905160039094020192835590519082015590516002909101555b6001600160a01b03811660000361392f5750505050505050565b6001600160a01b03811660009081526023602052604081208054899290613957908490614ff4565b9091555086905060005b60058110156139ce576001600160a01b0380831660009081526002602052604090205416925082156139ce576001600160a01b038316600090815260226020526040812080548594508b92906139b8908490614ff4565b909155506139c790508161501d565b9050613961565b506139d76125ce565b5050505050505050565b6001600160a01b03831660009081526020805260409020805460609190841115613a0a57805493505b821580613a2257508054613a1f908590614fcb565b83115b15613a37578054613a34908590614fcb565b92505b8267ffffffffffffffff811115613a5057613a50614fde565b604051908082528060200260200182016040528015613aa557816020015b613a9260405180606001604052806000815260200160008152602001600081525090565b815260200190600190039081613a6e5790505b5091506000845b613ab68587614ff4565b81101561299a57828181548110613acf57613acf615007565b90600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050848381518110613b1857613b18615007565b602002602001018190525081613b2d9061501d565b9150613b388161501d565b9050613aac565b6000546001600160a01b03163314613b695760405162461bcd60e51b815260040161101d90614f99565b6000613b788262015180615058565b90508060086000828254613b8c9190614ff4565b90915550505050565b6000546001600160a01b03163314613bbf5760405162461bcd60e51b815260040161101d90614f99565b6001600160a01b038116613bfa5760405162461bcd60e51b815260206004820152600260248201526106e360f41b604482015260640161101d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314613c7f5760405162461bcd60e51b815260040161101d90614f99565b601055565b604080516002808252606082018352600092839291906020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110613cdd57613cdd615007565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110613d3157613d31615007565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063d06ca61f90613d8f90869085906004016152d5565b600060405180830381865afa158015613dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613dd491908101906152ee565b600181518110613de657613de6615007565b6020026020010151915050919050565b6000546001600160a01b03163314613e205760405162461bcd60e51b815260040161101d90614f99565b601255565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ead91906153ab565b506001600160701b031691506001600160701b031691507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015613f2957819350809250613f30565b8093508192505b50509091565b6001600160a01b03811660009081526009602052604090205460ff16611a8d576001600160a01b038082166000818152600960209081526040808320805460ff19166001908117909155600a805491820190557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319168517905592825260029052205416801561400a576001600160a01b038181166000908152601f602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b5050565b600061401982611500565b6001600160a01b038316600090815260016020526040902090915061403c61164f565b60018201556002015550565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916140ac91906153fb565b6000604051808303816000865af19150503d80600081146140e9576040519150601f19603f3d011682016040523d82523d6000602084013e6140ee565b606091505b50915091508180156141185750805115806141185750808060200190518101906141189190615417565b61414a5760405162461bcd60e51b81526020600482015260036024820152622a232360e91b604482015260640161101d565b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928616916141aa916153fb565b6000604051808303816000865af19150503d80600081146141e7576040519150601f19603f3d011682016040523d82523d6000602084013e6141ec565b606091505b5050905080846001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561422f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261425791908101906150fc565b6040516020016142679190615434565b604051602081830303815290604052906142945760405162461bcd60e51b815260040161101d919061545c565b5050505050565b6142a361164f565b8360010181905550818360040160008282546142bf9190614ff4565b9091555050600283015460038401546004850154600092916142e091614fcb565b6142ea9190614fcb565b9050816142f8826064615058565b6143029190615036565b909355505050565b6001600160a01b03811660009081526009602052604090205460ff166143675760405162461bcd60e51b8152602060048201526012602482015271696e7669746f72206e6f742061637469766560701b604482015260640161101d565b6001600160a01b0380831660009081526002602052604090205416156143c55760405162461bcd60e51b81526020600482015260136024820152721a5b9d9a5d1bdc88185b1c9958591e481cd95d606a1b604482015260640161101d565b6001600160a01b03821660009081526009602052604090205460ff16156144175760405162461bcd60e51b815260206004820152600660248201526561637469766560d01b604482015260640161101d565b806001600160a01b0316826001600160a01b0316148061443e57506001600160a01b038216155b8061445057506001600160a01b038116155b15614459575050565b6001600160a01b03828116600090815260026020526040902080546001600160a01b03191691831691909117905561448f61164f565b6001600160a01b03831660009081526004602052604081209190915560059083905b82811015614294576001600160a01b0380831660009081526002602052604090205416935083156142945760008181526003602090815260408083206001600160a01b0388811685529083529083208054600180820183559185529290932090910180546001600160a01b031916918816919091179055849250016144b1565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015614595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145b991906153ab565b506001600160701b031691506001600160701b031691507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015613f2957819350809250613f30565b604080516000808252602082019092526001600160a01b03841690839060405161465f91906153fb565b60006040518083038185875af1925050503d806000811461469c576040519150601f19603f3d011682016040523d82523d6000602084013e6146a1565b606091505b50509050806128295760405162461bcd60e51b815260206004820152600360248201526222aa2360e91b604482015260640161101d565b60006146e5600283615036565b9050801561400a5760006146f882613c84565b90506147457f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084614152565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031611156147a5575060015b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663022c0d9f826147e05760006147e2565b835b836147ed57846147f0565b60005b604080516000815260208101918290526001600160e01b031960e086901b1690915261482392919030906024810161527a565b600060405180830381600087803b15801561483d57600080fd5b505af1158015614851573d6000803e3d6000fd5b505050506148a07f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084614152565b6148eb7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085614152565b6040516335313c2160e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636a627842906024016020604051808303816000875af1158015614951573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614294919061506f565b600083815b6005811015614afc57600081815260076020526040812054612710906149a09088615058565b6149aa9190615036565b90506149b68185614ff4565b6001600160a01b03808516600090815260026020526040902054919550168015801590614a0f5750600083815260066020526040902054614a0c826001600160a01b03166000908152601f602052604090205490565b10155b15614af1576001600160a01b038116600090815260016020526040812060038101546004820154919291614a439190614fcb565b9050600089614a528a87615058565b614a5c9190615036565b905080821015614a815780614a718387615058565b614a7b9190615036565b94508190505b614a8b8589614fcb565b975080836005016000828254614aa19190614ff4565b9250508190555080836003016000828254614abc9190614ff4565b90915550614aed90507f00000000000000000000000000000000000000000000000000000000000000008587614152565b5050505b92505060010161497a565b506103e882111561429457600d54614294907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031684614152565b611a8d612710614b5161177084615058565b614b5b9190615036565b6146d8565b600060208284031215614b7257600080fd5b5035919050565b80356001600160a01b0381168114614b9057600080fd5b919050565b60008060408385031215614ba857600080fd5b614bb183614b79565b946020939093013593505050565b60008060008060808587031215614bd557600080fd5b84359350614be560208601614b79565b93969395505050506040820135916060013590565b600081518084526020808501945080840160005b83811015614c335781516001600160a01b031687529582019590820190600101614c0e565b509495945050505050565b600081518084526020808501945080840160005b83811015614c3357815187529582019590820190600101614c52565b608081526000614c816080830187614bfa565b8281036020840152614c938187614c3e565b90508281036040840152614ca78186614c3e565b905082810360608401526114c68185614c3e565b600060208284031215614ccd57600080fd5b614cd682614b79565b9392505050565b60008060408385031215614cf057600080fd5b82359150614d0060208401614b79565b90509250929050565b8015158114611a8d57600080fd5b600060208284031215614d2957600080fd5b8135614cd681614d09565b602081526000614cd66020830184614bfa565b60005b83811015614d62578181015183820152602001614d4a565b50506000910152565b60008151808452614d83816020860160208601614d47565b601f01601f19169290920160200192915050565b6001600160a01b038c81168252602082018c905261016060408301819052600091614dc48483018e614d6b565b9150808c1660608501528a608085015283820360a0850152614de6828b614d6b565b915080891660c0850152508660e0840152828103610100840152614e0a8187614d6b565b610120840195909552505061014001529998505050505050505050565b600080600060608486031215614e3c57600080fd5b614e4584614b79565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b82811015614ea65781518051855286810151878601528501518585015260609093019290850190600101614e77565b5091979650505050505050565b600080600060608486031215614ec857600080fd5b614ed184614b79565b925060208401359150614ee660408501614b79565b90509250925092565b600080600060608486031215614f0457600080fd5b83359250614f1460208501614b79565b9150604084013590509250925092565b60008060208385031215614f3757600080fd5b823567ffffffffffffffff80821115614f4f57600080fd5b818501915085601f830112614f6357600080fd5b813581811115614f7257600080fd5b8660208260051b8501011115614f8757600080fd5b60209290920196919550909350505050565b602080825260029082015261216f60f01b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156113fe576113fe614fb5565b634e487b7160e01b600052604160045260246000fd5b808201808211156113fe576113fe614fb5565b634e487b7160e01b600052603260045260246000fd5b60006001820161502f5761502f614fb5565b5060010190565b60008261505357634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176113fe576113fe614fb5565b60006020828403121561508157600080fd5b5051919050565b6020808252600690820152657271206f726960d01b604082015260600190565b6000602082840312156150ba57600080fd5b815160ff81168114614cd657600080fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156150f4576150f4614fde565b604052919050565b60006020828403121561510e57600080fd5b815167ffffffffffffffff8082111561512657600080fd5b818401915084601f83011261513a57600080fd5b81518181111561514c5761514c614fde565b61515f601f8201601f19166020016150cb565b915080825285602082850101111561517657600080fd5b611572816020840160208601614d47565b600181815b808511156151c25781600019048211156151a8576151a8614fb5565b808516156151b557918102915b93841c939080029061518c565b509250929050565b6000826151d9575060016113fe565b816151e6575060006113fe565b81600181146151fc576002811461520657615222565b60019150506113fe565b60ff84111561521757615217614fb5565b50506001821b6113fe565b5060208310610133831016604e8410600b8410161715615245575081810a6113fe565b61524f8383615187565b806000190482111561526357615263614fb5565b029392505050565b6000614cd660ff8416836151ca565b84815283602082015260018060a01b03831660408201526080606082015260006152a76080830184614d6b565b9695505050505050565b600080604083850312156152c457600080fd5b505080516020909101519092909150565b8281526040602082015260006116476040830184614bfa565b6000602080838503121561530157600080fd5b825167ffffffffffffffff8082111561531957600080fd5b818501915085601f83011261532d57600080fd5b81518181111561533f5761533f614fde565b8060051b91506153508483016150cb565b818152918301840191848101908884111561536a57600080fd5b938501935b838510156153885784518252938501939085019061536f565b98975050505050505050565b80516001600160701b0381168114614b9057600080fd5b6000806000606084860312156153c057600080fd5b6153c984615394565b92506153d760208501615394565b9150604084015163ffffffff811681146153f057600080fd5b809150509250925092565b6000825161540d818460208701614d47565b9190910192915050565b60006020828403121561542957600080fd5b8151614cd681614d09565b60008251615446818460208701614d47565b63102a2a2360e11b920191825250600401919050565b602081526000614cd66020830184614d6b56fea26469706673582212202d38095f84729ea7006f0f88cc7e14ef6f18409d451fb193b80098f6fd89a0ca64736f6c63430008130033