42 txs
88 calls
constructor
constructor(uint256 startTime_, address[] payTokens_, uint256[] prices_, uint256[] buybackPrices_, uint256 marketTokenUsdPrice_, uint256 dailyBuyLimit_, address marketToken_)
functions
accountToBuyerInfo
viewfunction accountToBuyerInfo(address) view returns (uint8 buyStatus, uint8 refStatus, uint256 sellAmount, uint256 payAmountInUSD, address referrer)
buybackPrices
viewfunction buybackPrices(uint256) view returns (uint256)
buyStatusToRequirements
viewfunction buyStatusToRequirements(uint256) view returns (uint256)
dailyBuyCounter
viewfunction dailyBuyCounter() view returns (uint256)
dailyBuyLimit
viewfunction dailyBuyLimit() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultAdmin
viewfunction defaultAdmin() view returns (address)
defaultAdminDelay
viewfunction defaultAdminDelay() view returns (uint48)
defaultAdminDelayIncreaseWait
viewfunction defaultAdminDelayIncreaseWait() view returns (uint48)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
lastCounterResetTime
viewfunction lastCounterResetTime() view returns (uint256)
lastNonce
viewfunction lastNonce() view returns (uint256)
levelToStatusToRefBonusPercent
viewfunction levelToStatusToRefBonusPercent(uint256, uint256) view returns (uint256)
marketToken
viewfunction marketToken() view returns (address)
marketTokenUsdPrice
viewfunction marketTokenUsdPrice() view returns (uint256)
nonces
viewfunction nonces(uint256) view returns (bool)
ONE_DAY
viewfunction ONE_DAY() view returns (uint256)
OPERATOR_ROLE
viewfunction OPERATOR_ROLE() view returns (bytes32)
operator
viewfunction operator() view returns (address)
owner
viewfunction owner() view returns (address)
payTokens
viewfunction payTokens(uint256) view returns (address)
PCT_DIV
viewfunction PCT_DIV() view returns (uint256)
pendingDefaultAdmin
viewfunction pendingDefaultAdmin() view returns (address newAdmin, uint48 schedule)
pendingDefaultAdminDelay
viewfunction pendingDefaultAdminDelay() view returns (uint48 newDelay, uint48 schedule)
prices
viewfunction prices(uint256) view returns (uint256)
refStatusToRequirements
viewfunction refStatusToRequirements(uint256) view returns (uint256)
sellLimit
viewfunction sellLimit() view returns (uint256)
startTime
viewfunction startTime() view returns (uint256)
statusToBuyBonusPercent
viewfunction statusToBuyBonusPercent(uint256) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
VERIFY_PRICE_TYPEHASH
viewfunction VERIFY_PRICE_TYPEHASH() view returns (bytes32)
acceptDefaultAdminTransfer
nonpayablefunction acceptDefaultAdminTransfer()
beginDefaultAdminTransfer
nonpayablefunction beginDefaultAdminTransfer(address newAdmin)
buyExactMarketTokenForPayToken
payablefunction buyExactMarketTokenForPayToken(uint256 buyAmount, uint256 payTokenIndex, address referrer, uint256 usdPrice, uint256 deadline, uint256 nonce, bytes signature) payable
buyMarketTokenForExactPayToken
payablefunction buyMarketTokenForExactPayToken(uint256 payAmount, uint256 payTokenIndex, address referrer, uint256 usdPrice, uint256 deadline, uint256 nonce, bytes signature) payable
cancelDefaultAdminTransfer
nonpayablefunction cancelDefaultAdminTransfer()
changeDefaultAdminDelay
nonpayablefunction changeDefaultAdminDelay(uint48 newDelay)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
rollbackDefaultAdminDelay
nonpayablefunction rollbackDefaultAdminDelay()
sellExactMarketTokenForPayToken
nonpayablefunction sellExactMarketTokenForPayToken(uint256 sellAmount, uint256 payTokenIndex)
sellMarketTokenForExactPayToken
nonpayablefunction sellMarketTokenForExactPayToken(uint256 payAmount, uint256 payTokenIndex)
setBuyBonusPercents
nonpayablefunction setBuyBonusPercents(uint256[4] bonusPercents)
setBuyBonusRequirements
nonpayablefunction setBuyBonusRequirements(uint256[4] bonusRequirements)
setDailyBuyLimit
nonpayablefunction setDailyBuyLimit(uint256 buyLimit)
setOperator
nonpayablefunction setOperator(address operator_)
setPayTokens
nonpayablefunction setPayTokens(address[] payTokens_, uint256[] prices_, uint256[] buybackPrices_, uint256 marketTokenUsdPrice_)
setPrices
nonpayablefunction setPrices(uint256[] prices_, uint256[] buybackPrices_, uint256 marketTokenUsdPrice_)
setRefBonusPercents
nonpayablefunction setRefBonusPercents(uint256[4][3] bonusPercents)
setRefBonusRequirements
nonpayablefunction setRefBonusRequirements(uint256[4] bonusRequirements)
setSellLimit
nonpayablefunction setSellLimit(uint256 sellLimit_)
withdrawTokens
nonpayablefunction withdrawTokens(address token, address to, uint256 amount)
events
BuyBonusPercentsUpdated
event BuyBonusPercentsUpdated(uint256[4] bonusPercents)
BuyBonusRequirementsUpdated
event BuyBonusRequirementsUpdated(uint256[4] bonusRequirements)
DailyBuyLimitSetted
event DailyBuyLimitSetted(uint256 newLimit)
DefaultAdminDelayChangeCanceled
event DefaultAdminDelayChangeCanceled()
DefaultAdminDelayChangeScheduled
event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule)
DefaultAdminTransferCanceled
event DefaultAdminTransferCanceled()
DefaultAdminTransferScheduled
event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule)
EIP712DomainChanged
event EIP712DomainChanged()
OperatorSetted
event OperatorSetted(address operator)
PayTokensUpdated
event PayTokensUpdated(address[] payTokens)
PricesUpdated
event PricesUpdated(uint256[] newPrice, uint256[] newBuybackPrice, uint256 marketTokenUsdPrice)
RefBonusPercentsUpdated
event RefBonusPercentsUpdated(uint256[4][3] bonusPercents)
RefBonusRequirementsUpdated
event RefBonusRequirementsUpdated(uint256[4] bonusRequirements)
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)
SellLimitSetted
event SellLimitSetted(uint256 sellLimit)
TokenPurchased
event TokenPurchased(address indexed buyer, uint256 buyTokenAmount, uint256 buyBonus, uint256 payTokenAmount)
TokenSold
event TokenSold(address indexed seller, uint256 sellTokenAmount, uint256 payTokenAmount)
TokensWithdrawn
event TokensWithdrawn(address token, address to, uint256 amount)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlEnforcedDefaultAdminDelay
error AccessControlEnforcedDefaultAdminDelay(uint48 schedule)
AccessControlEnforcedDefaultAdminRules
error AccessControlEnforcedDefaultAdminRules()
AccessControlInvalidDefaultAdmin
error AccessControlInvalidDefaultAdmin(address defaultAdmin)
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
DailyBuyLimitExeeded
error DailyBuyLimitExeeded()
DeadlineExeeded
error DeadlineExeeded()
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
ETH_TRANSFER_FAILED
error ETH_TRANSFER_FAILED()
InvalidArrayLength
error InvalidArrayLength()
InvalidBuyAmount
error InvalidBuyAmount()
InvalidCoefficient
error InvalidCoefficient()
InvalidEtherAmount
error InvalidEtherAmount()
InvalidIndex
error InvalidIndex()
InvalidPayAmount
error InvalidPayAmount()
InvalidPercent
error InvalidPercent()
InvalidPrice
error InvalidPrice()
InvalidReferrer
error InvalidReferrer()
InvalidSellAmount
error InvalidSellAmount()
InvalidShortString
error InvalidShortString()
InvalidSignature
error InvalidSignature()
InvalidStartTime
error InvalidStartTime()
RequestAlreadyProcessed
error RequestAlreadyProcessed(uint256 nonce)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SaleNotStarted
error SaleNotStarted()
SellLimitExeeded
error SellLimitExeeded()
StringTooLong
error StringTooLong(string str)
ZeroAddress
error ZeroAddress()
creation bytecode
0x6101a060405234801561001157600080fd5b50604051614a72380380614a72833981016040819052610030916107e0565b604080518082018252601781527f436f6c6c656374697665204d696e642041492053616c65000000000000000000602080830191909152825180840190935260018352603160f81b9083015290600033806100a657604051636116401160e11b8152600060048201526024015b60405180910390fd5b600180546001600160d01b0316600160d01b65ffffffffffff8516021790556100d0600082610446565b506100e0915083905060036104b7565b610120526100ef8160046104b7565b61014052815160208084019190912060e052815190820120610100524660a05261017c60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052428710156101a657604051632ca4094f60e21b815260040160405180910390fd5b855115806101b657508451865114155b806101c357508351865114155b156101e157604051634ec4810560e11b815260040160405180910390fd5b60005b8651811015610267578581815181106101ff576101ff610906565b60200260200101516000036102265760405162bfc92160e01b815260040160405180910390fd5b84818151811061023857610238610906565b602002602001015160000361025f5760405162bfc92160e01b815260040160405180910390fd5b6001016101e4565b506001600160a01b03811661028f5760405163d92e233d60e01b815260040160405180910390fd5b610160879052602387905585516102ad9060079060208901906105d0565b5084516102c1906005906020880190610635565b5083516102d5906006906020870190610635565b50602083815560218390556001600160a01b03821661018052604080516080810182526000815261c35092810192909252620186a090820152620249f06060820152610325906008906004610670565b5060408051608081018252600081526201117060208201526201388091810191909152620186a0606082015261035f90600c906004610670565b5060408051608081018252600081526175306020820152619c409181019190915261c35060608201526103969060109060046106a5565b5060408051608081018252600081526127106020820152614e20918101919091526161a860608201526103cd9060149060046106a5565b5060408051608081018252600081526103e860208201526113889181019190915261271060608201526104049060189060046106a5565b50604080516080810182526000808252602082015261138891810191909152612710606082015261043990601c9060046106a5565b5050505050505050610ad5565b6000826104a45760006104616002546001600160a01b031690565b6001600160a01b03161461048857604051631fe1e13d60e11b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0384161790555b6104ae83836104e8565b90505b92915050565b60006020835110156104d3576104cc83610592565b90506104b1565b816104de84826109a5565b5060ff90506104b1565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1661058a576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556105423390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104b1565b5060006104b1565b600080829050601f815111156105bd578260405163305a27a960e01b815260040161009d9190610a63565b80516105c882610ab1565b179392505050565b828054828255906000526020600020908101928215610625579160200282015b8281111561062557825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906105f0565b506106319291506106d9565b5090565b828054828255906000526020600020908101928215610625579160200282015b82811115610625578251825591602001919060010190610655565b8260048101928215610625579160200282015b82811115610625578251829062ffffff16905591602001919060010190610683565b8260048101928215610625579160200282015b82811115610625578251829061ffff169055916020019190600101906106b8565b5b8082111561063157600081556001016106da565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561072c5761072c6106ee565b604052919050565b60006001600160401b0382111561074d5761074d6106ee565b5060051b60200190565b80516001600160a01b038116811461076e57600080fd5b919050565b600082601f83011261078457600080fd5b815161079761079282610734565b610704565b8082825260208201915060208360051b8601019250858311156107b957600080fd5b602085015b838110156107d65780518352602092830192016107be565b5095945050505050565b600080600080600080600060e0888a0312156107fb57600080fd5b875160208901519097506001600160401b0381111561081957600080fd5b8801601f81018a1361082a57600080fd5b805161083861079282610734565b8082825260208201915060208360051b85010192508c83111561085a57600080fd5b6020840193505b828410156108835761087284610757565b825260209384019390910190610861565b60408c0151909950925050506001600160401b038111156108a357600080fd5b6108af8a828b01610773565b60608a015190965090506001600160401b038111156108cd57600080fd5b6108d98a828b01610773565b60808a015160a08b0151919650945092506108f8905060c08901610757565b905092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061093057607f821691505b60208210810361095057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156109a057806000526020600020601f840160051c8101602085101561097d5750805b601f840160051c820191505b8181101561099d5760008155600101610989565b50505b505050565b81516001600160401b038111156109be576109be6106ee565b6109d2816109cc845461091c565b84610956565b6020601f821160018114610a0657600083156109ee5750848201515b600019600385901b1c1916600184901b17845561099d565b600084815260208120601f198516915b82811015610a365787850151825560209485019460019092019101610a16565b5084821015610a545786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b81811015610a915760208186018101516040868401015201610a74565b506000604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156109505760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516101605161018051613ec4610bae600039600081816108d701528181610c0101528181611004015281816110c00152818161141b015281816116c3015281816117a101528181611df4015281816120b001526128be0152600081816106d401528181610b0201528181610ee30152818161133d015281816115c30152818161247b01526124b30152600061207301526000612046015260006132640152600061323c01526000613197015260006131c1015260006131eb0152613ec46000f3fe6080604052600436106103505760003560e01c806384ef8ffc116101c6578063b3ab15fb116100f7578063d547741f11610095578063dc1730421161006f578063dc17304214610a29578063f5b541a614610a49578063f9d9e31b14610a6b578063fa5a89f114610a8b57600080fd5b8063d547741f146109d4578063d602b9fd146109f4578063da71c01714610a0957600080fd5b8063c26e2c03116100d1578063c26e2c031461094f578063cc8463c81461096f578063cefc142914610984578063cf6eefb71461099957600080fd5b8063b3ab15fb146108f9578063b566f1f314610919578063bc31c1c11461092f57600080fd5b80639d6e60e311610164578063a45d0cf81161013e578063a45d0cf814610865578063a50cbdda14610885578063a9bf2c09146108a5578063ad48d611146108c557600080fd5b80639d6e60e3146107e8578063a1eda53c1461081c578063a217fddf1461085057600080fd5b8063904a7ff2116101a0578063904a7ff21461076857806391d148541461078857806391edee6b146107a85780639d0c8cde146107c857600080fd5b806384ef8ffc1461071e578063863e76db1461073c5780638da5cb5b1461075357600080fd5b8063570ca735116102a0578063634e93da1161023e5780636a8953ed116102185780636a8953ed14610645578063754ddfc21461065b57806378e97925146106c257806384b0196e146106f657600080fd5b8063634e93da146105e5578063649a5ec71461060557806367727c9e1461062557600080fd5b80635b32085a1161027a5780635b32085a146105855780635d2fce6f1461059c5780635e35359e146105af57806362850d75146105cf57600080fd5b8063570ca7351461052f57806358dd16901461054f57806359bcd7721461056557600080fd5b8063141a468c1161030d57806330471ec0116102e757806330471ec0146104c357806336568abe146104e35780634f91e48c1461050357806352631ab41461051957600080fd5b8063141a468c14610435578063248a9ca3146104655780632f2ff15d146104a357600080fd5b806301ffc9a714610355578063022d63fb1461038a5780630535020d146103b357806306465894146103eb5780630aa6220b146104005780630f8caae014610415575b600080fd5b34801561036157600080fd5b506103756103703660046135fa565b610aab565b60405190151581526020015b60405180910390f35b34801561039657600080fd5b50620697805b60405165ffffffffffff9091168152602001610381565b3480156103bf57600080fd5b506103d36103ce366004613624565b610ad6565b6040516001600160a01b039091168152602001610381565b6103fe6103f9366004613668565b610b00565b005b34801561040c57600080fd5b506103fe610cbf565b34801561042157600080fd5b506103fe610430366004613624565b610cd5565b34801561044157600080fd5b50610375610450366004613624565b60286020526000908152604090205460ff1681565b34801561047157600080fd5b50610495610480366004613624565b60009081526020819052604090206001015490565b604051908152602001610381565b3480156104af57600080fd5b506103fe6104be366004613764565b610d1d565b3480156104cf57600080fd5b506104956104de366004613624565b610d49565b3480156104ef57600080fd5b506103fe6104fe366004613764565b610d60565b34801561050f57600080fd5b5061049560245481565b34801561052557600080fd5b5061049560255481565b34801561053b57600080fd5b506026546103d3906001600160a01b031681565b34801561055b57600080fd5b5061049560235481565b34801561057157600080fd5b506103fe610580366004613794565b610e0c565b34801561059157600080fd5b50610495620f424081565b6103fe6105aa366004613668565b610ee1565b3480156105bb57600080fd5b506103fe6105ca3660046137be565b611191565b3480156105db57600080fd5b5061049560215481565b3480156105f157600080fd5b506103fe6106003660046137ff565b611289565b34801561061157600080fd5b506103fe61062036600461381c565b61129d565b34801561063157600080fd5b50610495610640366004613844565b6112b1565b34801561065157600080fd5b5061049560205481565b34801561066757600080fd5b506106b16106763660046137ff565b602760205260009081526040902080546001820154600283015460039093015460ff808416946101009094041692906001600160a01b031685565b60405161038195949392919061389e565b3480156106ce57600080fd5b506104957f000000000000000000000000000000000000000000000000000000000000000081565b34801561070257600080fd5b5061070b6112dc565b6040516103819796959493929190613924565b34801561072a57600080fd5b506002546001600160a01b03166103d3565b34801561074857600080fd5b506104956201518081565b34801561075f57600080fd5b506103d3611322565b34801561077457600080fd5b506103fe610783366004613844565b61133b565b34801561079457600080fd5b506103756107a3366004613764565b6114cf565b3480156107b457600080fd5b506103fe6107c33660046139bc565b6114f8565b3480156107d457600080fd5b506103fe6107e3366004613a2a565b611540565b3480156107f457600080fd5b506104957f3ae15b903b0ac48ca42840358899ad2501724741924507a38b5e4f1c9ef1508c81565b34801561082857600080fd5b5061083161156d565b6040805165ffffffffffff938416815292909116602083015201610381565b34801561085c57600080fd5b50610495600081565b34801561087157600080fd5b506103fe610880366004613844565b6115c1565b34801561089157600080fd5b506103fe6108a0366004613aa3565b61184e565b3480156108b157600080fd5b506103fe6108c0366004613624565b6118ec565b3480156108d157600080fd5b506103d37f000000000000000000000000000000000000000000000000000000000000000081565b34801561090557600080fd5b506103fe6109143660046137ff565b61192c565b34801561092557600080fd5b5061049560225481565b34801561093b57600080fd5b5061049561094a366004613624565b6119fd565b34801561095b57600080fd5b5061049561096a366004613624565b611a1e565b34801561097b57600080fd5b5061039c611a2e565b34801561099057600080fd5b506103fe611a8d565b3480156109a557600080fd5b506109ae611acd565b604080516001600160a01b03909316835265ffffffffffff909116602083015201610381565b3480156109e057600080fd5b506103fe6109ef366004613764565b611aee565b348015610a0057600080fd5b506103fe611b16565b348015610a1557600080fd5b50610495610a24366004613624565b611b29565b348015610a3557600080fd5b50610495610a44366004613624565b611b39565b348015610a5557600080fd5b50610495600080516020613e6f83398151915281565b348015610a7757600080fd5b506103fe610a863660046139bc565b611b49565b348015610a9757600080fd5b506103fe610aa63660046139bc565b611be0565b60006001600160e01b031982166318a4c3c360e11b1480610ad05750610ad082611c28565b92915050565b60078181548110610ae657600080fd5b6000918252602090912001546001600160a01b0316905081565b7f0000000000000000000000000000000000000000000000000000000000000000421015610b41576040516316851a3760e11b815260040160405180910390fd5b82421115610b6257604051634171a5bf60e01b815260040160405180910390fd5b6007548610610b84576040516363df817160e01b815260040160405180910390fd5b600060058781548110610b9957610b99613b52565b9060005260206000200154905080881015610bc757604051633a4d1f3160e21b815260040160405180910390fd5b600060078881548110610bdc57610bdc613b52565b9060005260206000200160009054906101000a90046001600160a01b031690506000827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c819190613b68565b610c8c90600a613c88565b610c96908c613c97565b610ca09190613cae565b9050610cb33389838d868c8c8c8c611c5d565b50505050505050505050565b6000610cca81611e8a565b610cd2611e94565b50565b6000610ce081611e8a565b60218290556040518281527fc336f0dd868975e73375136265847e85dffa2cbbfc9823b81c55d603b368847a906020015b60405180910390a15050565b81610d3b57604051631fe1e13d60e11b815260040160405180910390fd5b610d458282611ea1565b5050565b601c8160048110610d5957600080fd5b0154905081565b81158015610d7b57506002546001600160a01b038281169116145b15610e0257600080610d8b611acd565b90925090506001600160a01b038216151580610dad575065ffffffffffff8116155b80610dc057504265ffffffffffff821610155b15610ded576040516319ca5ebb60e01b815265ffffffffffff821660048201526024015b60405180910390fd5b50506001805465ffffffffffff60a01b191690555b610d458282611ecc565b6000610e1781611e8a565b60005b6003811015610ea35760005b838260038110610e3857610e38613b52565b50506004811015610e9a57620f4240848360038110610e5957610e59613b52565b608002018260048110610e6e57610e6e613b52565b60200201351115610e9257604051635c974e3d60e11b815260040160405180910390fd5b600101610e26565b50600101610e1a565b50610eb1600c8360036134b2565b507fa4bbfe7be6fa22e38e905e9631ab066c34ba5e6ebbac33eef843aef33aa1d8a482604051610d119190613cd0565b7f0000000000000000000000000000000000000000000000000000000000000000421015610f22576040516316851a3760e11b815260040160405180910390fd5b82421115610f4357604051634171a5bf60e01b815260040160405180910390fd5b6007548610610f65576040516363df817160e01b815260040160405180910390fd5b600060078781548110610f7a57610f7a613b52565b6000918252602090912001546001600160a01b031690506012811561100157816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190613b68565b60ff1690505b807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611060573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110849190613b68565b60ff166110919190613d04565b61109c90600a613d17565b8910156110bc57604051631c26df2d60e11b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111409190613b68565b61114b90600a613c88565b8a60058b8154811061115f5761115f613b52565b90600052602060002001546111749190613c97565b61117e9190613cae565b9050610cb333898c84878c8c8c8c611c5d565b600061119c81611e8a565b6001600160a01b038416611224576000836001600160a01b03168360405160006040518083038185875af1925050503d80600081146111f7576040519150601f19603f3d011682016040523d82523d6000602084013e6111fc565b606091505b505090508061121e57604051634c67134d60e11b815260040160405180910390fd5b50611238565b6112386001600160a01b0385168484611f04565b604080516001600160a01b038087168252851660208201529081018390527f6337ed398c0e8467698c581374fdce4db14922df487b5a39483079f5f59b60a49060600160405180910390a150505050565b600061129481611e8a565b610d4582611f63565b60006112a881611e8a565b610d4582611fd6565b600c82600381106112c157600080fd5b6004020181600481106112d357600080fd5b01549150829050565b6000606080600080600060606112f061203f565b6112f861206c565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006113366002546001600160a01b031690565b905090565b7f000000000000000000000000000000000000000000000000000000000000000042101561137c576040516316851a3760e11b815260040160405180910390fd5b600754811061139e576040516363df817160e01b815260040160405180910390fd5b6000600682815481106113b3576113b3613b52565b90600052602060002001549050808310156113e157604051633a4d1f3160e21b815260040160405180910390fd5b6000600783815481106113f6576113f6613b52565b9060005260206000200160009054906101000a90046001600160a01b031690506000827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611477573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149b9190613b68565b6114a690600a613c88565b6114b09087613c97565b6114ba9190613cae565b90506114c833828785612099565b5050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600061150381611e8a565b61151060188360046134f6565b507fb709889bf6c2a7c2d0bfeed028e368519d927f34970354721d44924c1f2d719082604051610d119190613d23565b600080516020613e6f83398151915261155881611e8a565b61156586868686866121be565b505050505050565b600254600090600160d01b900465ffffffffffff16801515801561159957504265ffffffffffff821610155b6115a5576000806115b9565b600254600160a01b900465ffffffffffff16815b915091509091565b7f0000000000000000000000000000000000000000000000000000000000000000421015611602576040516316851a3760e11b815260040160405180910390fd5b6007548110611624576040516363df817160e01b815260040160405180910390fd5b60006007828154811061163957611639613b52565b6000918252602090912001546001600160a01b03169050601281156116c057816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190613b68565b60ff1690505b807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561171f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117439190613b68565b60ff166117509190613d04565b61175b90600a613d17565b84101561177b576040516337ecb2bb60e01b815260040160405180910390fd5b60006006848154811061179057611790613b52565b9060005260206000200154905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118219190613b68565b61182c90600a613c88565b6118368784613c97565b6118409190613cae565b905061156533878387612099565b600061185981611e8a565b8615806118665750868514155b806118715750868314155b1561188f57604051634ec4810560e11b815260040160405180910390fd5b61189b60078989613530565b506118a986868686866121be565b7f9e81c6516c0b37af4c6bcae34dab17ecd14e1f0754df5852763fefa1402927f788886040516118da929190613d32565b60405180910390a15050505050505050565b60006118f781611e8a565b60248290556040518281527fff9c68f0cb4c990dfe8433cb28eda336b0625662999cb9b6f50d348faea1257990602001610d11565b600061193781611e8a565b6001600160a01b03821661195e5760405163d92e233d60e01b815260040160405180910390fd5b6026546001600160a01b0316156119965760265461199490600080516020613e6f833981519152906001600160a01b0316612253565b505b6119ae600080516020613e6f83398151915283612297565b50602680546001600160a01b0319166001600160a01b0384169081179091556040519081527f25e685c2df1877d5fb41d4b737f7070c25654faadfdea2de79ab95d2b4100f1e90602001610d11565b60058181548110611a0d57600080fd5b600091825260209091200154905081565b60068181548110611a0d57600080fd5b600254600090600160d01b900465ffffffffffff168015158015611a5957504265ffffffffffff8216105b611a7457600154600160d01b900465ffffffffffff16611a87565b600254600160a01b900465ffffffffffff165b91505090565b6000611a97611acd565b509050336001600160a01b03821614611ac557604051636116401160e11b8152336004820152602401610de4565b610cd26122ff565b6001546001600160a01b03811691600160a01b90910465ffffffffffff1690565b81611b0c57604051631fe1e13d60e11b815260040160405180910390fd5b610d458282612398565b6000611b2181611e8a565b610cd26123bd565b60088160048110610d5957600080fd5b60188160048110610d5957600080fd5b6000611b5481611e8a565b60005b6004811015611ba257620f4240838260048110611b7657611b76613b52565b60200201351115611b9a57604051635c974e3d60e11b815260040160405180910390fd5b600101611b57565b50611bb060088360046134f6565b507f68f87e434983087aebcfc2f1224d675931bc31f0a9f3632fd22c69ad08aa2cbb82604051610d119190613d23565b6000611beb81611e8a565b611bf8601c8360046134f6565b507ff08e39565c9237a3c6ff674a763abe2c6a4be95d39ef8e22db5edbb9d6e1363282604051610d119190613d23565b60006001600160e01b03198216637965db0b60e01b1480610ad057506301ffc9a760e01b6001600160e01b0319831614610ad0565b604080517f3ae15b903b0ac48ca42840358899ad2501724741924507a38b5e4f1c9ef1508c6020808301919091526001600160a01b03808d1683850152881660608301526080820187905260a0820186905260c08083018690528351808403909101815260e09092019092528051910120611cd98184846123c8565b50611ce387612467565b6000611cef8a8961252f565b90506001600160a01b038616611da85786341015611d205760405163bb201b4960e01b815260040160405180910390fd5b86341115611da35760006001600160a01b038b16611d3e8934613d04565b604051600081818185875af1925050503d8060008114611d7a576040519150601f19603f3d011682016040523d82523d6000602084013e611d7f565b606091505b5050905080611da157604051634c67134d60e11b815260040160405180910390fd5b505b611ddc565b3415611dc75760405163bb201b4960e01b815260040160405180910390fd5b611ddc6001600160a01b0387168b308a612591565b611e1b8a611dea838b613d7f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611f04565b611e268a8a8a6125ca565b611e328a8888886128ef565b60408051898152602081018390529081018890526001600160a01b038b16907f2b0c4dfbf2e34a2292e9110d6ea90d7c78f54b3aebe3974d2db7197308f21ff89060600160405180910390a250505050505050505050565b610cd28133612b65565b611e9f600080612b9e565b565b600082815260208190526040902060010154611ebc81611e8a565b611ec68383612297565b50505050565b6001600160a01b0381163314611ef55760405163334bd91960e11b815260040160405180910390fd5b611eff8282612253565b505050565b6040516001600160a01b03838116602483015260448201839052611eff91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612c5e565b6000611f6d611a2e565b611f7642612ccf565b611f809190613d92565b9050611f8c8282612d06565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b6000611fe182612d85565b611fea42612ccf565b611ff49190613d92565b90506120008282612b9e565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b9101610d11565b60606113367f00000000000000000000000000000000000000000000000000000000000000006003612dcd565b60606113367f00000000000000000000000000000000000000000000000000000000000000006004612dcd565b6120a38484612e78565b6120d86001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016853086612591565b6001600160a01b038116612160576000846001600160a01b03168360405160006040518083038185875af1925050503d8060008114612133576040519150601f19603f3d011682016040523d82523d6000602084013e612138565b606091505b505090508061215a57604051634c67134d60e11b815260040160405180910390fd5b50612174565b6121746001600160a01b0382168584611f04565b60408051848152602081018490526001600160a01b038616917f35ea94addbc62df281ade49cc2ad9b3d9259166170cf702928b4ddc045f7256e910160405180910390a250505050565b600754841415806121cf5750838214155b156121ed57604051634ec4810560e11b815260040160405180910390fd5b6121f960058686613583565b5061220660068484613583565b5060208190556040517fe7665182a9b510cbd21318ff5dba2977e73bdf425912faf311ec7a261f838b89906122449087908790879087908790613de2565b60405180910390a15050505050565b60008215801561227057506002546001600160a01b038381169116145b1561228657600280546001600160a01b03191690555b6122908383612ef5565b9392505050565b6000826122f55760006122b26002546001600160a01b031690565b6001600160a01b0316146122d957604051631fe1e13d60e11b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0384161790555b6122908383612f68565b60008061230a611acd565b9150915061231f8165ffffffffffff16151590565b158061233357504265ffffffffffff821610155b1561235b576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610de4565b61237760006123726002546001600160a01b031690565b612253565b50612383600083612297565b5050600180546001600160d01b031916905550565b6000828152602081905260409020600101546123b381611e8a565b611ec68383612253565b611e9f600080612d06565b60008281526028602052604090205460ff16156123fb576040516301c4fa3d60e51b815260048101839052602401610de4565b600061240684612ff2565b90506000612414828461301f565b6026549091506001600160a01b0380831691161461244557604051638baa579f60e01b815260040160405180910390fd5b5050506000818152602860205260409020805460ff1916600117905560255550565b60225460235460009062015180906124a0907f000000000000000000000000000000000000000000000000000000000000000090613d04565b6124aa9190613cae565b620151806124d87f000000000000000000000000000000000000000000000000000000000000000042613d04565b6124e29190613cae565b6124ec9190613d04565b11156124fa57504260235560005b6125048282613d7f565b905060215481111561252957604051639f77df0760e01b815260040160405180910390fd5b60225550565b6001600160a01b03821660009081526027602052604081205460ff16620f4240600882600381111561256357612563613866565b6004811061257357612573613b52565b015461257f9085613c97565b6125899190613cae565b949350505050565b6040516001600160a01b038481166024830152838116604483015260648201839052611ec69186918216906323b872dd90608401611f31565b6001600160a01b038316600090815260276020526040808220815160a081019092528054829060ff16600381111561260457612604613866565b600381111561261557612615613866565b81528154602090910190610100900460ff16600381111561263857612638613866565b600381111561264957612649613866565b815260018201546020820152600282015460408201526003909101546001600160a01b031660609182015281015190915015801561268f57506001600160a01b03831615155b15612782576001600160a01b03831660009081526027602052604090819020815160a08101909252805461274c9286929091829060ff1660038111156126d7576126d7613866565b60038111156126e8576126e8613866565b81528154602090910190610100900460ff16600381111561270b5761270b613866565b600381111561271c5761271c613866565b815260018201546020820152600282015460408201526003909101546001600160a01b0316606090910152613049565b6001600160a01b03848116600090815260276020526040902060030180546001600160a01b031916918516918217905560808201525b60005b60038110156114c85760808201516001600160a01b0316156114c85760808201516001600160a01b03811660009081526027602052604090819020815160a081019092528054829060ff1660038111156127e1576127e1613866565b60038111156127f2576127f2613866565b81528154602090910190610100900460ff16600381111561281557612815613866565b600381111561282657612826613866565b815260018201546020820152600282015460408201526003918201546001600160a01b0316606090910152909350600090620f424090600c908590811061286f5761286f613b52565b600402018560200151600381111561288957612889613866565b6004811061289957612899613b52565b01546128a59087613c97565b6128af9190613cae565b90506128e56001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383611f04565b5050600101612785565b60126001600160a01b0383161561296857826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561293e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129629190613b68565b60ff1690505b600061297582600a613d17565b61297f8487613c97565b6129899190613cae565b6001600160a01b0387166000908152602760205260408120600201805492935083929091906129b9908490613d7f565b90915550506001600160a01b038616600090815260276020526040808220815160a081019092528054829060ff1660038111156129f8576129f8613866565b6003811115612a0957612a09613866565b81528154602090910190610100900460ff166003811115612a2c57612a2c613866565b6003811115612a3d57612a3d613866565b815260018201546020820152600282015460408201526003918201546001600160a01b031660609091015290915081516003811115612a7e57612a7e613866565b14612b5257601b54612a9490620f424090613c97565b816060015110612ace576001600160a01b038716600090815260276020526040902080546003919060ff19166001835b0217905550612b52565b601a54612adf90620f424090613c97565b816060015110612b13576001600160a01b038716600090815260276020526040902080546002919060ff1916600183612ac4565b601954612b2490620f424090613c97565b816060015110612b52576001600160a01b0387166000908152602760205260409020805460ff191660011790555b612b5c8782613049565b50505050505050565b612b6f82826114cf565b610d455760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610de4565b600254600160d01b900465ffffffffffff168015612c21574265ffffffffffff82161015612bf757600254600180546001600160d01b0316600160a01b90920465ffffffffffff16600160d01b02919091179055612c21565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec590600090a15b50600280546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b600080602060008451602086016000885af180612c81576040513d6000823e3d81fd5b50506000513d91508115612c99578060011415612ca6565b6001600160a01b0384163b155b15611ec657604051635274afe760e01b81526001600160a01b0385166004820152602401610de4565b600065ffffffffffff821115612d02576040516306dfcc6560e41b81526030600482015260248101839052604401610de4565b5090565b6000612d10611acd565b6001805465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b038816171790559150612d5290508165ffffffffffff16151590565b15611eff576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510990600090a1505050565b600080612d90611a2e565b90508065ffffffffffff168365ffffffffffff1611612db857612db38382613e1c565b612290565b61229065ffffffffffff84166206978061313b565b606060ff8314612de757612de08361314b565b9050610ad0565b818054612df390613e3a565b80601f0160208091040260200160405190810160405280929190818152602001828054612e1f90613e3a565b8015612e6c5780601f10612e4157610100808354040283529160200191612e6c565b820191906000526020600020905b815481529060010190602001808311612e4f57829003601f168201915b50505050509050610ad0565b6024546001600160a01b038316600090815260276020526040902060010154612ea2908390613d7f565b1115612ec15760405163d570fc1f60e01b815260040160405180910390fd5b6001600160a01b03821660009081526027602052604081206001018054839290612eec908490613d7f565b90915550505050565b6000612f0183836114cf565b15612f60576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610ad0565b506000610ad0565b6000612f7483836114cf565b612f60576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055612faa3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610ad0565b6000610ad0612fff61318a565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008061302f86866132b5565b92509250925061303f8282613302565b5090949350505050565b60038160200151600381111561306157613061613866565b14610d4557601f5461307790620f424090613c97565b8160600151106130b2576001600160a01b038216600090815260276020526040902080546003919061ff001916610100835b02179055505050565b601e546130c390620f424090613c97565b8160600151106130f9576001600160a01b038216600090815260276020526040902080546002919061ff001916610100836130a9565b601d5461310a90620f424090613c97565b816060015110610d4557506001600160a01b03166000908152602760205260409020805461ff001916610100179055565b6000828218828410028218612290565b60606000613158836133bb565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156131e357507f000000000000000000000000000000000000000000000000000000000000000046145b1561320d57507f000000000000000000000000000000000000000000000000000000000000000090565b611336604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600080600083516041036132ef5760208401516040850151606086015160001a6132e1888285856133e3565b9550955095505050506132fb565b50508151600091506002905b9250925092565b600082600381111561331657613316613866565b0361331f575050565b600182600381111561333357613333613866565b036133515760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561336557613365613866565b036133865760405163fce698f760e01b815260048101829052602401610de4565b600382600381111561339a5761339a613866565b03610d45576040516335e2f38360e21b815260048101829052602401610de4565b600060ff8216601f811115610ad057604051632cd44ac360e21b815260040160405180910390fd5b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561341e57506000915060039050826134a8565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613472573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661349e575060009250600191508290506134a8565b9250600091508190505b9450945094915050565b600c830191839082156134ea579160800282015b828111156134ea576134da828460046134f6565b50916080019190600401906134c6565b50612d029291506135bd565b8260048101928215613524579160200282015b82811115613524578235825591602001919060010190613509565b50612d029291506135e5565b828054828255906000526020600020908101928215613524579160200282015b828111156135245781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190613550565b8280548282559060005260206000209081019282156135245791602002820182811115613524578235825591602001919060010190613509565b80821115612d02576000808255600182018190556002820181905560038201556004016135bd565b5b80821115612d0257600081556001016135e6565b60006020828403121561360c57600080fd5b81356001600160e01b03198116811461229057600080fd5b60006020828403121561363657600080fd5b5035919050565b6001600160a01b0381168114610cd257600080fd5b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a03121561368357600080fd5b8735965060208801359550604088013561369c8161363d565b9450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff8111156136cd57600080fd5b8801601f81018a136136de57600080fd5b803567ffffffffffffffff8111156136f8576136f8613652565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561372757613727613652565b6040528181528282016020018c101561373f57600080fd5b8160208401602083013760006020838301015280935050505092959891949750929550565b6000806040838503121561377757600080fd5b8235915060208301356137898161363d565b809150509250929050565b600061018082840312156137a757600080fd5b82610180830111156137b857600080fd5b50919050565b6000806000606084860312156137d357600080fd5b83356137de8161363d565b925060208401356137ee8161363d565b929592945050506040919091013590565b60006020828403121561381157600080fd5b81356122908161363d565b60006020828403121561382e57600080fd5b813565ffffffffffff8116811461229057600080fd5b6000806040838503121561385757600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6004811061389a57634e487b7160e01b600052602160045260246000fd5b9052565b60a081016138ac828861387c565b6138b9602083018761387c565b604082019490945260608101929092526001600160a01b031660809091015292915050565b6000815180845260005b81811015613904576020818501810151868301820152016138e8565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e06020820152600061394360e08301896138de565b828103604084015261395581896138de565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156139ab57835183526020938401939092019160010161398d565b50909b9a5050505050505050505050565b6000608082840312156139ce57600080fd5b826080830111156137b857600080fd5b60008083601f8401126139f057600080fd5b50813567ffffffffffffffff811115613a0857600080fd5b6020830191508360208260051b8501011115613a2357600080fd5b9250929050565b600080600080600060608688031215613a4257600080fd5b853567ffffffffffffffff811115613a5957600080fd5b613a65888289016139de565b909650945050602086013567ffffffffffffffff811115613a8557600080fd5b613a91888289016139de565b96999598509660400135949350505050565b60008060008060008060006080888a031215613abe57600080fd5b873567ffffffffffffffff811115613ad557600080fd5b613ae18a828b016139de565b909850965050602088013567ffffffffffffffff811115613b0157600080fd5b613b0d8a828b016139de565b909650945050604088013567ffffffffffffffff811115613b2d57600080fd5b613b398a828b016139de565b989b979a50959894979596606090950135949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215613b7a57600080fd5b815160ff8116811461229057600080fd5b634e487b7160e01b600052601160045260246000fd5b6001815b6001841115613bdc57808504811115613bc057613bc0613b8b565b6001841615613bce57908102905b60019390931c928002613ba5565b935093915050565b600082613bf357506001610ad0565b81613c0057506000610ad0565b8160018114613c165760028114613c2057613c3c565b6001915050610ad0565b60ff841115613c3157613c31613b8b565b50506001821b610ad0565b5060208310610133831016604e8410600b8410161715613c5f575081810a610ad0565b613c6c6000198484613ba1565b8060001904821115613c8057613c80613b8b565b029392505050565b600061229060ff841683613be4565b8082028115828204841417610ad057610ad0613b8b565b600082613ccb57634e487b7160e01b600052601260045260246000fd5b500490565b6101808101818360005b6003811015613cfb5760808284376080928301929190910190600101613cda565b50505092915050565b81810381811115610ad057610ad0613b8b565b60006122908383613be4565b60808181019083833792915050565b6020808252810182905260008360408301825b85811015613d75578235613d588161363d565b6001600160a01b0316825260209283019290910190600101613d45565b5095945050505050565b80820180821115610ad057610ad0613b8b565b65ffffffffffff8181168382160190811115610ad057610ad0613b8b565b81835260006001600160fb1b03831115613dc957600080fd5b8260051b80836020870137939093016020019392505050565b606081526000613df6606083018789613db0565b8281036020840152613e09818688613db0565b9150508260408301529695505050505050565b65ffffffffffff8281168282160390811115610ad057610ad0613b8b565b600181811c90821680613e4e57607f821691505b6020821081036137b857634e487b7160e01b600052602260045260246000fdfe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a26469706673582212205e79d2fa04b5f006c8f231e0da4dec297139dc34bc096df27524160d54d488e164736f6c634300081c003300000000000000000000000000000000000000000000000000000000686ff19000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000024475619e5d37cf7b5b445e943dbeb7edd2f4080000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000173180000000000000000000000000000000000000000000000000000000000017318