0 txs
0 calls
constructor
constructor()
functions
accountCollateralTokens
viewfunction accountCollateralTokens(address) view returns (uint256)
accrualBlockNumber
viewfunction accrualBlockNumber() view returns (uint256)
admin
viewfunction admin() view returns (address)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
borrowBalanceStored
viewfunction borrowBalanceStored(address account) view returns (uint256)
borrowIndex
viewfunction borrowIndex() view returns (uint256)
borrowRatePerBlock
viewfunction borrowRatePerBlock() view returns (uint256)
collateralCap
viewfunction collateralCap() view returns (uint256)
comptroller
viewfunction comptroller() view returns (address)
creamMultisig
viewfunction creamMultisig() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
estimateBorrowRatePerBlockAfterChange
viewfunction estimateBorrowRatePerBlockAfterChange(uint256 change, bool repay) view returns (uint256)
estimateSupplyRatePerBlockAfterChange
viewfunction estimateSupplyRatePerBlockAfterChange(uint256 change, bool repay) view returns (uint256)
exchangeRateStored
viewfunction exchangeRateStored() view returns (uint256)
flashFee
viewfunction flashFee(uint256 amount) view returns (uint256)
flashFeeBips
viewfunction flashFeeBips() view returns (uint256)
getAccountSnapshot
viewfunction getAccountSnapshot(address account) view returns (uint256, uint256, uint256, uint256)
getCash
viewfunction getCash() view returns (uint256)
implementation
viewfunction implementation() view returns (address)
interestRateModel
viewfunction interestRateModel() view returns (address)
internalCash
viewfunction internalCash() view returns (uint256)
isCollateralTokenInit
viewfunction isCollateralTokenInit(address) view returns (bool)
isCToken
viewfunction isCToken() view returns (bool)
maxFlashLoan
viewfunction maxFlashLoan() view returns (uint256)
name
viewfunction name() view returns (string)
pendingAdmin
viewfunction pendingAdmin() view returns (address)
reserveFactorMantissa
viewfunction reserveFactorMantissa() view returns (uint256)
supplyRatePerBlock
viewfunction supplyRatePerBlock() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalBorrows
viewfunction totalBorrows() view returns (uint256)
totalCollateralTokens
viewfunction totalCollateralTokens() view returns (uint256)
totalReserves
viewfunction totalReserves() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
underlying
viewfunction underlying() view returns (address)
_acceptAdmin
nonpayablefunction _acceptAdmin() returns (uint256)
_addReserves
nonpayablefunction _addReserves(uint256 addAmount) returns (uint256)
_becomeImplementation
nonpayablefunction _becomeImplementation(bytes data)
_reduceReserves
nonpayablefunction _reduceReserves(uint256 reduceAmount) returns (uint256)
_resignImplementation
nonpayablefunction _resignImplementation()
_setCollateralCap
nonpayablefunction _setCollateralCap(uint256 newCollateralCap)
_setComptroller
nonpayablefunction _setComptroller(address newComptroller) returns (uint256)
_setInterestRateModel
nonpayablefunction _setInterestRateModel(address newInterestRateModel) returns (uint256)
_setPendingAdmin
nonpayablefunction _setPendingAdmin(address newPendingAdmin) returns (uint256)
_setReserveFactor
nonpayablefunction _setReserveFactor(uint256 newReserveFactorMantissa) returns (uint256)
accrueInterest
nonpayablefunction accrueInterest() returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
balanceOfUnderlying
nonpayablefunction balanceOfUnderlying(address owner) returns (uint256)
borrow
nonpayablefunction borrow(uint256 borrowAmount) returns (uint256)
borrowBalanceCurrent
nonpayablefunction borrowBalanceCurrent(address account) returns (uint256)
exchangeRateCurrent
nonpayablefunction exchangeRateCurrent() returns (uint256)
flashLoan
nonpayablefunction flashLoan(address receiver, address initiator, uint256 amount, bytes data) returns (bool)
gulp
nonpayablefunction gulp()
initialize
nonpayablefunction initialize(address comptroller_, address interestRateModel_, uint256 initialExchangeRateMantissa_, string name_, string symbol_, uint8 decimals_)
initialize
nonpayablefunction initialize(address underlying_, address comptroller_, address interestRateModel_, uint256 initialExchangeRateMantissa_, string name_, string symbol_, uint8 decimals_)
liquidateBorrow
nonpayablefunction liquidateBorrow(address borrower, uint256 repayAmount, address cTokenCollateral) returns (uint256)
mint
nonpayablefunction mint(uint256 mintAmount) returns (uint256)
redeem
nonpayablefunction redeem(uint256 redeemTokens) returns (uint256)
redeemUnderlying
nonpayablefunction redeemUnderlying(uint256 redeemAmount) returns (uint256)
registerCollateral
nonpayablefunction registerCollateral(address account) returns (uint256)
repayBorrow
nonpayablefunction repayBorrow(uint256 repayAmount) returns (uint256)
repayBorrowBehalf
nonpayablefunction repayBorrowBehalf(address borrower, uint256 repayAmount) returns (uint256)
seize
nonpayablefunction seize(address liquidator, address borrower, uint256 seizeTokens) returns (uint256)
totalBorrowsCurrent
nonpayablefunction totalBorrowsCurrent() returns (uint256)
transfer
nonpayablefunction transfer(address dst, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address src, address dst, uint256 amount) returns (bool)
unregisterCollateral
nonpayablefunction unregisterCollateral(address account)
events
AccrueInterest
event AccrueInterest(uint256 cashPrior, uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows)
Approval
event Approval(address indexed owner, address indexed spender, uint256 amount)
Borrow
event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows)
Failure
event Failure(uint256 error, uint256 info, uint256 detail)
Flashloan
event Flashloan(address indexed receiver, uint256 amount, uint256 totalFee, uint256 reservesFee)
LiquidateBorrow
event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address cTokenCollateral, uint256 seizeTokens)
Mint
event Mint(address minter, uint256 mintAmount, uint256 mintTokens)
NewAdmin
event NewAdmin(address oldAdmin, address newAdmin)
NewCollateralCap
event NewCollateralCap(address token, uint256 newCap)
NewComptroller
event NewComptroller(address oldComptroller, address newComptroller)
NewMarketInterestRateModel
event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel)
NewPendingAdmin
event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin)
NewReserveFactor
event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa)
Redeem
event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens)
RepayBorrow
event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows)
ReservesAdded
event ReservesAdded(address benefactor, uint256 addAmount, uint256 newTotalReserves)
ReservesReduced
event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
UserCollateralChanged
event UserCollateralChanged(address account, uint256 newCollateralTokens)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615ed880620000216000396000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c806381cf00eb11610215578063b71d1a0c11610125578063e9c714f2116100b8578063f5e3c46211610087578063f5e3c46214610dde578063f851a44014610e14578063f8f9da2814610e1c578063fca7820b14610e24578063fe9c44ae14610e41576103f1565b8063e9c714f214610da0578063ea11eea414610da8578063f2b3abbd14610db0578063f3fdb15a14610dd6576103f1565b8063d240d64a116100f4578063d240d64a14610d27578063d2bb18e914610d4d578063db006a7514610d55578063dd62ed3e14610d72576103f1565b8063b71d1a0c14610c90578063bd6d894d14610cb6578063c37f68e214610cbe578063c5ebeaec14610d0a576103f1565b806395dd9193116101a8578063a7af467a11610177578063a7af467a14610c01578063a9059cbb14610c1e578063aa5af0fd14610c4a578063ae9d70b014610c52578063b2a02ff114610c5a576103f1565b806395dd919314610a6857806399d8c1b414610a8e578063a0712d6814610bdc578063a6afed9514610bf9576103f1565b80638b35776b116101e45780638b35776b14610a2a5780638f840ddd14610a5057806394909e6214610a5857806395d89b4114610a60576103f1565b806381cf00eb146109a4578063852a12e3146109c157806385d8a2e6146109de5780638897bd8514610a04576103f1565b80632608f8181161031057806356e67728116102a3578063601a0bf111610272578063601a0bf1146109495780636c540baf146109665780636f307dc31461096e57806370a082311461097657806373acee981461099c576103f1565b806356e67728146108075780635c60da1b146108ab5780635cffe9de146108b35780635fe3b56714610941576103f1565b80633b1d21a2116102df5780633b1d21a2146107b45780633e941010146107bc5780634576b5db146107d957806347bd3718146107ff576103f1565b80632608f8181461073c5780632678224714610768578063313ce567146107705780633af9e6691461078e576103f1565b806317bfdfbc116103885780631a31d465116103575780631a31d465146105a057806322abdbf5146106f657806323b872dd146106fe578063242c127c14610734576103f1565b806317bfdfbc1461056257806318160ddd14610588578063182df0f51461059057806319a4dd3c14610598576103f1565b80630e752702116103c45780630e7527021461050e5780630f2268881461052b578063153ab50514610550578063173b99041461055a576103f1565b8063021bd7b2146103f657806305dd00b81461041a57806306fdde0314610451578063095ea7b3146104ce575b600080fd5b6103fe610e49565b604080516001600160a01b039092168252519081900360200190f35b61043f6004803603604081101561043057600080fd5b50803590602001351515610e61565b60408051918252519081900360200190f35b610459610f48565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049357818101518382015260200161047b565b50505050905090810190601f1680156104c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104fa600480360360408110156104e457600080fd5b506001600160a01b038135169060200135610fd5565b604080519115158252519081900360200190f35b61043f6004803603602081101561052457600080fd5b5035611040565b61043f6004803603604081101561054157600080fd5b50803590602001351515611058565b610558611107565b005b61043f611157565b61043f6004803603602081101561057857600080fd5b50356001600160a01b031661115d565b61043f61121d565b61043f611223565b61043f611233565b610558600480360360e08110156105b657600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b8111156105f857600080fd5b82018360208201111561060a57600080fd5b803590602001918460018302840111600160201b8311171561062b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561067d57600080fd5b82018360208201111561068f57600080fd5b803590602001918460018302840111600160201b831117156106b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff1691506112399050565b61043f6112d8565b6104fa6004803603606081101561071457600080fd5b506001600160a01b038135811691602081013590911690604001356112de565b61043f611350565b61043f6004803603604081101561075257600080fd5b506001600160a01b0381351690602001356113f5565b6103fe61140d565b61077861141c565b6040805160ff9092168252519081900360200190f35b61043f600480360360208110156107a457600080fd5b50356001600160a01b0316611425565b61043f611472565b61043f600480360360208110156107d257600080fd5b503561147c565b61043f600480360360208110156107ef57600080fd5b50356001600160a01b0316611489565b61043f6115db565b6105586004803603602081101561081d57600080fd5b810190602081018135600160201b81111561083757600080fd5b82018360208201111561084957600080fd5b803590602001918460018302840111600160201b8311171561086a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115e1945050505050565b6103fe611748565b6104fa600480360360808110156108c957600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561090357600080fd5b82018360208201111561091557600080fd5b803590602001918460018302840111600160201b8311171561093657600080fd5b509092509050611757565b6103fe611c9b565b61043f6004803603602081101561095f57600080fd5b5035611caa565b61043f611d45565b6103fe611d4b565b61043f6004803603602081101561098c57600080fd5b50356001600160a01b0316611d5a565b61043f611d75565b610558600480360360208110156109ba57600080fd5b5035611e2b565b61043f600480360360208110156109d757600080fd5b5035611ebc565b6104fa600480360360208110156109f457600080fd5b50356001600160a01b0316611ec9565b61043f60048036036020811015610a1a57600080fd5b50356001600160a01b0316611ede565b61055860048036036020811015610a4057600080fd5b50356001600160a01b0316611f6c565b61043f6120c6565b6105586120cc565b610459612161565b61043f60048036036020811015610a7e57600080fd5b50356001600160a01b03166121b9565b610558600480360360c0811015610aa457600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b811115610ade57600080fd5b820183602082011115610af057600080fd5b803590602001918460018302840111600160201b83111715610b1157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610b6357600080fd5b820183602082011115610b7557600080fd5b803590602001918460018302840111600160201b83111715610b9657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff1691506121c49050565b61043f60048036036020811015610bf257600080fd5b50356123ab565b61043f6123b9565b61043f60048036036020811015610c1757600080fd5b50356125c9565b6104fa60048036036040811015610c3457600080fd5b506001600160a01b0381351690602001356126bb565b61043f61272d565b61043f612733565b61043f60048036036060811015610c7057600080fd5b506001600160a01b038135811691602081013590911690604001356127d2565b61043f60048036036020811015610ca657600080fd5b50356001600160a01b0316612843565b61043f6128cf565b610ce460048036036020811015610cd457600080fd5b50356001600160a01b031661298b565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61043f60048036036020811015610d2057600080fd5b50356129c7565b61043f60048036036020811015610d3d57600080fd5b50356001600160a01b03166129d4565b61043f6129e6565b61043f60048036036020811015610d6b57600080fd5b50356129ec565b61043f60048036036040811015610d8857600080fd5b506001600160a01b03813581169160200135166129f9565b61043f612a24565b61043f612b27565b61043f60048036036020811015610dc657600080fd5b50356001600160a01b0316612b2c565b6103fe612b66565b61043f60048036036060811015610df457600080fd5b506001600160a01b03813581169160208101359160409091013516612b75565b6103fe612b8f565b61043f612ba3565b61043f60048036036020811015610e3a57600080fd5b5035612c07565b6104fa612c85565b736d5a7597896a703fe8c85775b23395a48f97130581565b60008060008315610e9257610e7d610e77612c8a565b86612c90565b9150610e8b600b5486612cc6565b9050610eb4565b610ea3610e9d612c8a565b86612cc6565b9150610eb1600b5486612c90565b90505b600654600c54604080516315f2405360e01b815260048101869052602481018590526044810192909252516001600160a01b03909216916315f2405391606480820192602092909190829003018186803b158015610f1157600080fd5b505afa158015610f25573d6000803e3d6000fd5b505050506040513d6020811015610f3b57600080fd5b5051925050505b92915050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b505050505081565b336000818152600f602090815260408083206001600160a01b03871680855290835281842086905581518681529151939493909284927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a35060019392505050565b60008061104e836000612d00565b509150505b919050565b600080600083156110835761106e610e77612c8a565b915061107c600b5486612cc6565b905061109f565b61108e610e9d612c8a565b915061109c600b5486612c90565b90505b600654600c5460085460408051635c0b440b60e11b8152600481018790526024810186905260448101939093526064830191909152516001600160a01b039092169163b816881691608480820192602092909190829003018186803b158015610f1157600080fd5b60035461010090046001600160a01b031633146111555760405162461bcd60e51b815260040180806020018281038252602d815260200180615cea602d913960400191505060405180910390fd5b565b60085481565b6000805460ff166111a2576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556111b46123b9565b146111ff576040805162461bcd60e51b81526020600482015260166024820152751858d8dc9d59481a5b9d195c995cdd0819985a5b195960521b604482015290519081900360640190fd5b611208826121b9565b90505b6000805460ff19166001179055919050565b600d5481565b600061122d612dac565b90505b90565b60145481565b6112478686868686866121c4565b601180546001600160a01b0319166001600160a01b038981169190911791829055604080516318160ddd60e01b8152905192909116916318160ddd91600480820192602092909190829003018186803b1580156112a357600080fd5b505afa1580156112b7573d6000803e3d6000fd5b505050506040513d60208110156112cd57600080fd5b505050505050505050565b60135481565b6000805460ff16611323576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff1916815561133933868686612e12565b1490506000805460ff191660011790559392505050565b600554604080516358d5bc7360e11b81523060048201526000602482018190526044820181905260806064830152608482018190529151919283926001600160a01b039091169163b1ab78e69160c4808301926020929190829003018186803b1580156113bc57600080fd5b505afa1580156113d0573d6000803e3d6000fd5b505050506040513d60208110156113e657600080fd5b50511561122d57610f42612c8a565b600080611404848460006131e0565b50949350505050565b6004546001600160a01b031681565b60035460ff1681565b600061142f615ad0565b60405180602001604052806114426128cf565b90526001600160a01b0384166000908152600e602052604090205490915061146b90829061328d565b9392505050565b600061122d612c8a565b6000610f428260006132ac565b60035460009061010090046001600160a01b031633146114b6576114af6001602961334a565b9050611053565b60055460408051623f1ee960e11b815290516001600160a01b0392831692851691627e3dd2916004808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051611578576040805162461bcd60e51b815260206004820152601c60248201527f6d61726b6572206d6574686f642072657475726e65642066616c736500000000604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b03858116918217909255604080519284168352602083019190915280517f7ac369dbd14fa5ea3f473ed67cc9d598964a77501540ba6751eb0b3decf5870d9281900390910190a1600061146b565b600b5481565b60035461010090046001600160a01b0316331461162f5760405162461bcd60e51b815260040180806020018281038252602d815260200180615e2b602d913960400191505060405180910390fd5b601154604080516370a0823160e01b815230600482015290516001600160a01b039092169160009183916370a0823191602480820192602092909190829003018186803b15801561167f57600080fd5b505afa158015611693573d6000803e3d6000fd5b505050506040513d60208110156116a957600080fd5b50516040805163a9059cbb60e01b8152736d5a7597896a703fe8c85775b23395a48f97130560048201526024810183905290519192506001600160a01b0384169163a9059cbb916044808201926020929091908290030181600087803b15801561171257600080fd5b505af1158015611726573d6000803e3d6000fd5b505050506040513d602081101561173c57600080fd5b50506000601355505050565b6012546001600160a01b031681565b6000805460ff1661179c576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19169055836117e25760405162461bcd60e51b815260040180806020018281038252602c815260200180615e78602c913960400191505060405180910390fd5b60006117ec6123b9565b14611837576040805162461bcd60e51b81526020600482015260166024820152751858d8dc9d59481a5b9d195c995cdd0819985a5b195960521b604482015290519081900360640190fd5b6005546040516358d5bc7360e11b815230600482018181526001600160a01b038a81166024850152604484018990526080606485019081526084850188905294169363b1ab78e6938b928a928a928a92919060a401848480828437600081840152601f19601f820116905080830192505050965050505050505060206040518083038186803b1580156118c957600080fd5b505afa1580156118dd573d6000803e3d6000fd5b505050506040513d60208110156118f357600080fd5b505161193c576040805162461bcd60e51b8152602060048201526013602482015272199b185cda1b1bd85b881a5cc81c185d5cd959606a1b604482015290519081900360640190fd5b60006119466133b0565b90506000611952612c8a565b9050858110156119a2576040805162461bcd60e51b8152602060048201526016602482015275494e53554646494349454e545f4c495155494449545960501b604482015290519081900360640190fd5b6000306001600160a01b031663a7af467a886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156119e857600080fd5b505afa1580156119fc573d6000803e3d6000fd5b505050506040513d6020811015611a1257600080fd5b50519050611a2289886000613430565b611a2e600b5488612c90565b600b55604051806029615d1782396040519081900360290181206011546323e30c8b60e01b83526001600160a01b038c81166004850190815291811660248501819052604485018d90526064850187905260a06084860190815260a486018c9052939550908e16936323e30c8b938e938e9289928f928f9290919060c401848480828437600081840152601f19601f820116905080830192505050975050505050505050602060405180830381600087803b158015611aec57600080fd5b505af1158015611b00573d6000803e3d6000fd5b505050506040513d6020811015611b1657600080fd5b505114611b6a576040805162461bcd60e51b815260206004820152601960248201527f49455243333135363a2043616c6c6261636b206661696c656400000000000000604482015290519081900360640190fd5b6000611b768883612c90565b9050611b848a826000613537565b506000611b8f6133b0565b9050611b9b8584612c90565b8114611be5576040805162461bcd60e51b8152602060048201526014602482015273109053105390d157d25390d3d394d254d511539560621b604482015290519081900360640190fd5b6000611c0160405180602001604052806008548152508561328d565b9050611c0f600c5482612c90565b600c55611c1c8585612c90565b601355600b54611c2c908b612cc6565b600b55604080518b81526020810186905280820183905290516001600160a01b038e16917f33c8e097c526683cbdb29adf782fac95e9d0fbe0ed635c13d8c75fdf726557d9919081900360600190a2600196505050505050506000805460ff1916600117905595945050505050565b6005546001600160a01b031681565b6000805460ff16611cef576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155611d016123b9565b90508015611d2757611d1f816010811115611d1857fe5b601d61334a565b91505061120b565b611d3083613748565b9150506000805460ff19166001179055919050565b60095481565b6011546001600160a01b031681565b6001600160a01b03166000908152600e602052604090205490565b6000805460ff16611dba576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155611dcc6123b9565b14611e17576040805162461bcd60e51b81526020600482015260166024820152751858d8dc9d59481a5b9d195c995cdd0819985a5b195960521b604482015290519081900360640190fd5b50600b546000805460ff1916600117905590565b60035461010090046001600160a01b03163314611e795760405162461bcd60e51b8152600401808060200182810382526021815260200180615ca76021913960400191505060405180910390fd5b6017819055604080513081526020810183905281517f01b7c780e0f385803fe80cbe0efc086d13b8eb443a2ce43e2061fd92bc0e34f1929181900390910190a150565b6000610f42826000613846565b60166020526000908152604090205460ff1681565b6000611ee9826138de565b6005546001600160a01b03163314611f325760405162461bcd60e51b8152600401808060200182810382526031815260200180615d936031913960400191505060405180910390fd5b6001600160a01b0382166000908152600e60209081526040808320546015909252822054611f609190612cc6565b905061146b8382613a20565b611f75816138de565b6005546001600160a01b03163314611fbe5760405162461bcd60e51b8152600401808060200182810382526033815260200180615dc46033913960400191505060405180910390fd5b6005546001600160a01b03828116600081815260156020908152604080832054815163eabe7d9160e01b81523060048201526024810195909552604485015251939094169363eabe7d9193606480850194929391928390030190829087803b15801561202957600080fd5b505af115801561203d573d6000803e3d6000fd5b505050506040513d602081101561205357600080fd5b50511561209f576040805162461bcd60e51b815260206004820152601560248201527431b7b6b83a3937b63632b9103932b532b1ba34b7b760591b604482015290519081900360640190fd5b6001600160a01b0381166000908152601560205260409020546120c3908290613b73565b50565b600c5481565b60005460ff16612110576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556121226133b0565b9050600061212e612c8a565b9050600061213c8383612cc6565b905061214a600c5482612c90565b600c5550506013556000805460ff19166001179055565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b6000610f4282613bf9565b60035461010090046001600160a01b031633146122125760405162461bcd60e51b8152600401808060200182810382526024815260200180615c306024913960400191505060405180910390fd5b6009541580156122225750600a54155b61225d5760405162461bcd60e51b8152600401808060200182810382526023815260200180615c546023913960400191505060405180910390fd5b60078490558361229e5760405162461bcd60e51b8152600401808060200182810382526030815260200180615c776030913960400191505060405180910390fd5b60006122a987611489565b905080156122fe576040805162461bcd60e51b815260206004820152601a60248201527f73657474696e6720636f6d7074726f6c6c6572206661696c6564000000000000604482015290519081900360640190fd5b612306613c4e565b600955670de0b6b3a7640000600a5561231e86613c52565b9050801561235d5760405162461bcd60e51b8152600401808060200182810382526022815260200180615cc86022913960400191505060405180910390fd5b8351612370906001906020870190615ae3565b508251612384906002906020860190615ae3565b50506003805460ff90921660ff199283161790556000805490911660011790555050505050565b60008061104e836000613dc7565b6000806123c4613c4e565b600954909150808214156123dd57600092505050611230565b60006123e7612c8a565b600b54600c54600a54600654604080516315f2405360e01b815260048101879052602481018690526044810185905290519596509394929391926000926001600160a01b03909216916315f24053916064808301926020929190829003018186803b15801561245557600080fd5b505afa158015612469573d6000803e3d6000fd5b505050506040513d602081101561247f57600080fd5b5051905065048c273950008111156124de576040805162461bcd60e51b815260206004820152601c60248201527f626f72726f772072617465206973206162737572646c79206869676800000000604482015290519081900360640190fd5b60006124ea8888612cc6565b90506124f4615ad0565b61250c60405180602001604052808581525083613e49565b9050600061251a828861328d565b905060006125288289612c90565b905060006125476040518060200160405280600854815250848a613e73565b9050600061255685898a613e73565b60098e9055600a819055600b849055600c839055604080518d8152602081018790528082018390526060810186905290519192507f4dec04e750ca11537cabcd8a9eab06494de08da3735bc8871cd41250e190bc04919081900360800190a160009d505050505050505050505050505090565b600554604080516358d5bc7360e11b8152306004820152600060248201819052604482018590526080606483015260848201819052915191926001600160a01b03169163b1ab78e69160c480820192602092909190829003018186803b15801561263257600080fd5b505afa158015612646573d6000803e3d6000fd5b505050506040513d602081101561265c57600080fd5b50516126a5576040805162461bcd60e51b8152602060048201526013602482015272199b185cda1b1bd85b881a5cc81c185d5cd959606a1b604482015290519081900360640190fd5b610f426126b3836003613e9b565b612710613edd565b6000805460ff16612700576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff1916815561271633338686612e12565b1490505b6000805460ff1916600117905592915050565b600a5481565b6006546000906001600160a01b031663b816881661274f612c8a565b600b54600c546008546040518563ffffffff1660e01b81526004018085815260200184815260200183815260200182815260200194505050505060206040518083038186803b1580156127a157600080fd5b505afa1580156127b5573d6000803e3d6000fd5b505050506040513d60208110156127cb57600080fd5b5051905090565b6000805460ff16612817576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff1916905561282d33858585613f10565b90506000805460ff191660011790559392505050565b60035460009061010090046001600160a01b03163314612869576114af6001602f61334a565b600480546001600160a01b038481166001600160a01b0319831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a1600061146b565b6000805460ff16612914576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556129266123b9565b14612971576040805162461bcd60e51b81526020600482015260166024820152751858d8dc9d59481a5b9d195c995cdd0819985a5b195960521b604482015290519081900360640190fd5b612979611223565b90506000805460ff1916600117905590565b600080600080600061299c86614220565b905060006129a987613bf9565b905060006129b5612dac565b90506000989297509095509350915050565b6000610f4282600061427f565b60156020526000908152604090205481565b60175481565b6000610f428260006142ff565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205490565b6004546000906001600160a01b031633141580612a3f575033155b15612a5757612a506001600061334a565b9050611230565b60038054600480546001600160a01b03818116610100818102610100600160a81b0319871617968790556001600160a01b031990931690935560408051948390048216808652929095041660208401528351909391927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a1600454604080516001600160a01b038085168252909216602083015280517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99281900390910190a160009250505090565b600381565b600080612b376123b9565b90508015612b5d57612b55816010811115612b4e57fe5b602a61334a565b915050611053565b61146b83613c52565b6006546001600160a01b031681565b600080612b85858585600061437a565b5095945050505050565b60035461010090046001600160a01b031681565b6006546000906001600160a01b03166315f24053612bbf612c8a565b600b54600c546040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156127a157600080fd5b6000805460ff16612c4c576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155612c5e6123b9565b90508015612c7c57611d1f816010811115612c7557fe5b603061334a565b611d30836144ae565b600181565b60135490565b600061146b8383604051806040016040528060118152602001706164646974696f6e206f766572666c6f7760781b815250614556565b600061146b8383604051806040016040528060158152602001747375627472616374696f6e20756e646572666c6f7760581b8152506145e8565b60008054819060ff16612d47576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155612d596123b9565b90508015612d8457612d77816010811115612d7057fe5b602361334a565b925060009150612d969050565b612d9033338787614642565b92509250505b6000805460ff1916600117905590939092509050565b600d5460009080612dc1575050600754611230565b6000612dcb612c8a565b90506000612de6612dde83600b54612c90565b600c54612cc6565b90506000612e028260405180602001604052808781525061497a565b94506112309350505050565b5090565b6000612e1d846138de565b612e26836138de565b6001600160a01b0384166000908152600e60209081526040808320546015909252822054612e549190612cc6565b9050600081841115612e6557508083035b600554604080516317b9b84b60e31b81523060048201526001600160a01b0389811660248301528881166044830152606482018590529151600093929092169163bdcdc2589160848082019260209290919082900301818787803b158015612ecc57600080fd5b505af1158015612ee0573d6000803e3d6000fd5b505050506040513d6020811015612ef657600080fd5b505190508015612f1757612f0d6003603483614998565b93505050506131d8565b856001600160a01b0316876001600160a01b03161415612f3d57612f0d6002603561334a565b60006001600160a01b038981169089161415612f5c5750600019612f84565b506001600160a01b038088166000908152600f60209081526040808320938c16835292905220545b6001600160a01b0388166000908152600e6020526040902054612fa79087612cc6565b6001600160a01b03808a166000908152600e60205260408082209390935590891681522054612fd69087612c90565b6001600160a01b0388166000908152600e602052604090205582156130da576001600160a01b0388166000908152601560205260409020546130189084612cc6565b6001600160a01b03808a1660009081526015602052604080822093909355908916815220546130479084612c90565b6001600160a01b03808916600090815260156020908152604080832094909455918b1680825290839020548351918252918101919091528151600080516020615e58833981519152929181900390910190a16001600160a01b038716600081815260156020908152604091829020548251938452908301528051600080516020615e588339815191529281900390910190a15b6000198114613114576130ed8187612cc6565b6001600160a01b03808a166000908152600f60209081526040808320938e16835292905220555b866001600160a01b0316886001600160a01b0316600080516020615d40833981519152886040518082815260200191505060405180910390a36005546040805163352b4a3f60e11b81523060048201526001600160a01b038b811660248301528a81166044830152606482018a905291519190921691636a56947e91608480830192600092919082900301818387803b1580156131b057600080fd5b505af11580156131c4573d6000803e3d6000fd5b50600092506131d1915050565b9450505050505b949350505050565b60008054819060ff16613227576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556132396123b9565b905080156132645761325781601081111561325057fe5b602261334a565b9250600091506132769050565b61327033878787614642565b92509250505b6000805460ff191660011790559094909350915050565b6000613297615ad0565b6132a18484613e49565b90506131d8816149fe565b6000805460ff166132f1576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556133036123b9565b905080156133295761332181601081111561331a57fe5b603661334a565b91505061271a565b6133338484614a0d565b509150506000805460ff1916600117905592915050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601081111561337957fe5b83603881111561338557fe5b604080519283526020830191909152600082820152519081900360600190a182601081111561146b57fe5b601154604080516370a0823160e01b815230600482015290516000926001600160a01b03169182916370a0823191602480820192602092909190829003018186803b1580156133fe57600080fd5b505afa158015613412573d6000803e3d6000fd5b505050506040513d602081101561342857600080fd5b505191505090565b6011546040805163a9059cbb60e01b81526001600160a01b0386811660048301526024820186905291519190921691829163a9059cbb9160448082019260009290919082900301818387803b15801561348857600080fd5b505af115801561349c573d6000803e3d6000fd5b5050505060003d600081146134b857602081146134c257600080fd5b60001991506134ce565b60206000803e60005191505b5080613521576040805162461bcd60e51b815260206004820152601960248201527f544f4b454e5f5452414e534645525f4f55545f4641494c454400000000000000604482015290519081900360640190fd5b61352d60135485612cc6565b6013555050505050565b601154604080516370a0823160e01b815230600482015290516000926001600160a01b031691839183916370a08231916024808301926020929190829003018186803b15801561358657600080fd5b505afa15801561359a573d6000803e3d6000fd5b505050506040513d60208110156135b057600080fd5b5051604080516323b872dd60e01b81526001600160a01b038981166004830152306024830152604482018990529151929350908416916323b872dd9160648082019260009290919082900301818387803b15801561360d57600080fd5b505af1158015613621573d6000803e3d6000fd5b5050505060003d6000811461363d576020811461364757600080fd5b6000199150613653565b60206000803e60005191505b50806136a6576040805162461bcd60e51b815260206004820152601860248201527f544f4b454e5f5452414e534645525f494e5f4641494c45440000000000000000604482015290519081900360640190fd5b601154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156136f157600080fd5b505afa158015613705573d6000803e3d6000fd5b505050506040513d602081101561371b57600080fd5b50519050600061372b8285612cc6565b905061373960135482612c90565b60135598975050505050505050565b600354600090819061010090046001600160a01b0316331461377057612b556001601e61334a565b613778613c4e565b6009541461378c57612b55600a602061334a565b82613795612c8a565b10156137a757612b55600e601f61334a565b600c548311156137bd57612b556002602161334a565b6137c9600c5484612cc6565b600c8190556003549091506137ee9061010090046001600160a01b0316846001613430565b600354604080516101009092046001600160a01b0316825260208201859052818101839052517f3bad0c59cf2f06e7314077049f48a93578cd16f5ef92329f1dab1420a99c177e916060908290030190a1600061146b565b6000805460ff1661388b576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff1916815561389d6123b9565b905080156138bb576133218160108111156138b457fe5b601961334a565b6138c83360008686614aab565b9150506000805460ff1916600117905592915050565b6001600160a01b03811660009081526016602052604090205460ff166120c3576005546040805163929fe9a160e01b81526001600160a01b0384811660048301523060248301529151919092169163929fe9a1916044808301926020929190829003018186803b15801561395157600080fd5b505afa158015613965573d6000803e3d6000fd5b505050506040513d602081101561397b57600080fd5b5051156139fa576001600160a01b0381166000908152600e60208181526040808420546015835293208390556014549190526139b691612c90565b6014556001600160a01b038116600081815260156020908152604091829020548251938452908301528051600080516020615e588339815191529281900390910190a15b6001600160a01b0381166000908152601660205260409020805460ff1916600117905550565b600080613a2f60145484612c90565b905060175460001480613a50575060175415801590613a5057506017548111155b15613acb5760148190556001600160a01b038416600090815260156020526040902054613a7d9084612c90565b6001600160a01b03851660008181526015602090815260409182902084905581519283528201929092528151600080516020615e58833981519152929181900390910190a182915050610f42565b6014546017541115613b69576000613ae7601754601454612cc6565b9050613af560145482612c90565b6014556001600160a01b038516600090815260156020526040902054613b1b9082612c90565b6001600160a01b03861660008181526015602090815260409182902084905581519283528201929092528151600080516020615e58833981519152929181900390910190a19150610f429050565b5060009392505050565b80613b7d57613bf5565b613b8960145482612cc6565b6014556001600160a01b038216600090815260156020526040902054613baf9082612cc6565b6001600160a01b03831660008181526015602090815260409182902084905581519283528201929092528151600080516020615e58833981519152929181900390910190a15b5050565b6001600160a01b03811660009081526010602052604081208054613c21576000915050611053565b6000613c338260000154600a54613e9b565b90506000613c45828460010154613edd565b95945050505050565b4390565b600354600090819061010090046001600160a01b03163314613c7a57612b556001602c61334a565b613c82613c4e565b60095414613c9657612b55600a602b61334a565b600660009054906101000a90046001600160a01b03169050826001600160a01b0316632191f92a6040518163ffffffff1660e01b815260040160206040518083038186803b158015613ce757600080fd5b505afa158015613cfb573d6000803e3d6000fd5b505050506040513d6020811015613d1157600080fd5b5051613d64576040805162461bcd60e51b815260206004820152601c60248201527f6d61726b6572206d6574686f642072657475726e65642066616c736500000000604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b03858116918217909255604080519284168352602083019190915280517fedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f9269281900390910190a1600061146b565b60008054819060ff16613e0e576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155613e206123b9565b90508015613e3e57612d77816010811115613e3757fe5b601461334a565b612d90338686614e5d565b613e51615ad0565b6040518060200160405280613e6a856000015185613e9b565b90529392505050565b6000613e7d615ad0565b613e878585613e49565b9050613c45613e95826149fe565b84612c90565b600061146b83836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250615190565b600061146b83836040518060400160405280600e81526020016d646976696465206279207a65726f60901b815250615206565b6000613f1b846138de565b613f24836138de565b6005546040805163d02f735160e01b81523060048201526001600160a01b03888116602483015287811660448301528681166064830152608482018690529151600093929092169163d02f73519160a48082019260209290919082900301818787803b158015613f9357600080fd5b505af1158015613fa7573d6000803e3d6000fd5b505050506040513d6020811015613fbd57600080fd5b505190508015613fdc57613fd46003601183614998565b9150506131d8565b82613fe8576000613fd4565b846001600160a01b0316846001600160a01b0316141561400e57613fd46006601261334a565b6001600160a01b0384166000908152600e60205260409020546140319084612cc6565b6001600160a01b038086166000908152600e602052604080822093909355908716815220546140609084612c90565b6001600160a01b038087166000908152600e60209081526040808320949094559187168152601590915220546140969084612cc6565b6001600160a01b0380861660009081526015602052604080822093909355908716815220546140c59084612c90565b6001600160a01b038087166000818152601560209081526040918290209490945580518781529051919392881692600080516020615d4083398151915292918290030190a36001600160a01b038416600081815260156020908152604091829020548251938452908301528051600080516020615e588339815191529281900390910190a16001600160a01b038516600081815260156020908152604091829020548251938452908301528051600080516020615e588339815191529281900390910190a160055460408051636d35bf9160e01b81523060048201526001600160a01b038981166024830152888116604483015287811660648301526084820187905291519190921691636d35bf919160a480830192600092919082900301818387803b1580156141f557600080fd5b505af1158015614209573d6000803e3d6000fd5b5060009250614216915050565b9695505050505050565b6001600160a01b03811660009081526016602052604081205460ff161561426057506001600160a01b038116600090815260156020526040902054611053565b506001600160a01b0381166000908152600e6020526040902054611053565b6000805460ff166142c4576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556142d66123b9565b905080156142f4576133218160108111156142ed57fe5b600261334a565b6138c8338585615268565b6000805460ff16614344576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556143566123b9565b9050801561436d576133218160108111156138b457fe5b6138c83385600086614aab565b60008054819060ff166143c1576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556143d36123b9565b905080156143fe576143f18160108111156143ea57fe5b600761334a565b9250600091506144969050565b846001600160a01b031663a6afed956040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561443957600080fd5b505af115801561444d573d6000803e3d6000fd5b505050506040513d602081101561446357600080fd5b505190508015614483576143f181601081111561447c57fe5b600861334a565b6144903388888888615498565b92509250505b6000805460ff19166001179055909590945092505050565b60035460009061010090046001600160a01b031633146144d4576114af6001603161334a565b6144dc613c4e565b600954146144f0576114af600a603261334a565b670de0b6b3a764000082111561450c576114af6002603361334a565b6008805490839055604080518281526020810185905281517faaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460929181900390910190a1600061146b565b600083830182858210156114045760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156145ad578181015183820152602001614595565b50505050905090810190601f1680156145da5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818484111561463a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156145ad578181015183820152602001614595565b505050900390565b60055460408051631200453160e11b81523060048201526001600160a01b0387811660248301528681166044830152606482018690529151600093849384939116916324008a629160848082019260209290919082900301818787803b1580156146ab57600080fd5b505af11580156146bf573d6000803e3d6000fd5b505050506040513d60208110156146d557600080fd5b5051905080156146f9576146ec6003602483614998565b9250600091506149719050565b8461472557600a546001600160a01b0387166000908152601060205260408120600101919091556146ec565b61472d613c4e565b60095414614741576146ec600a602561334a565b614749615b5d565b6001600160a01b038716600090815260106020526040902060010154606082015261477387613bf9565b60808201526000198614156147915760808101516040820152614799565b604081018690525b6147a888826040015187613537565b60e0820181905260808201516147bd91612cc6565b60a0820152600b5460e08201516147d49190612cc6565b8160c00181815250508060a0015160106000896001600160a01b03166001600160a01b0316815260200190815260200160002060000181905550600a5460106000896001600160a01b03166001600160a01b03168152602001908152602001600020600101819055508060c00151600b819055507f1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a188888360e001518460a001518560c0015160405180866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018381526020018281526020019550505050505060405180910390a160055460e0820151606083015160408051631ededc9160e01b81523060048201526001600160a01b038d811660248301528c8116604483015260648201949094526084810192909252519190921691631ededc919160a480830192600092919082900301818387803b15801561494457600080fd5b505af1158015614958573d6000803e3d6000fd5b5060009250614965915050565b8160e001519350935050505b94509492505050565b600061146b61499184670de0b6b3a7640000613e9b565b8351613edd565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa08460108111156149c757fe5b8460388111156149d357fe5b604080519283526020830191909152818101859052519081900360600190a18360108111156131d857fe5b51670de0b6b3a7640000900490565b600080600080614a1b613c4e565b60095414614a3a57614a2f600a603761334a565b93509150614aa49050565b614a45338787613537565b9050614a53600c5482612c90565b600c819055604080513381526020810184905280820183905290519193507fa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc5919081900360600190a1600093509150505b9250929050565b6000614ab6856138de565b831580614ac1575082155b614afc5760405162461bcd60e51b8152600401808060200182810382526034815260200180615df76034913960400191505060405180910390fd5b614b04615ba3565b614b0c612dac565b81528415614b3d57602080820186905260408051918201905281518152614b33908661328d565b6040820152614b66565b614b598460405180602001604052808460000151815250615a84565b6020820152604081018490525b6001600160a01b0386166000908152600e60209081526040808320546015909252822054614b949190612cc6565b905060008090508183602001511115614bb1578183602001510390505b8015614c89576005546040805163eabe7d9160e01b81523060048201526001600160a01b038b81166024830152604482018590529151919092169163eabe7d919160648083019260209291908290030181600087803b158015614c1357600080fd5b505af1158015614c27573d6000803e3d6000fd5b505050506040513d6020811015614c3d57600080fd5b505115614c89576040805162461bcd60e51b815260206004820152601560248201527431b7b6b83a3937b63632b9103932b532b1ba34b7b760591b604482015290519081900360640190fd5b614c91613c4e565b60095414614ca557612f0d600a601b61334a565b8260400151614cb2612c8a565b1015614cc457612f0d600e601c61334a565b614cd4600d548460200151612cc6565b600d556001600160a01b0388166000908152600e602090815260409091205490840151614d019190612cc6565b6001600160a01b0389166000908152600e6020526040902055614d248882613b73565b614d3388846040015187613430565b306001600160a01b0316886001600160a01b0316600080516020615d4083398151915285602001516040518082815260200191505060405180910390a360408084015160208086015183516001600160a01b038d168152918201929092528083019190915290517fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a9299181900360600190a1600554604080850151602086015182516351dff98960e01b81523060048201526001600160a01b038d811660248301526044820193909352606481019190915291519216916351dff9899160848082019260009290919082900301818387803b158015614e3057600080fd5b505af1158015614e44573d6000803e3d6000fd5b5060009250614e51915050565b98975050505050505050565b600080614e69856138de565b60055460408051634ef4c3e160e01b81523060048201526001600160a01b0388811660248301526044820188905291516000939290921691634ef4c3e19160648082019260209290919082900301818787803b158015614ec857600080fd5b505af1158015614edc573d6000803e3d6000fd5b505050506040513d6020811015614ef257600080fd5b505190508015614f1657614f096003601583614998565b9250600091506151889050565b84614f22576000614f09565b614f2a613c4e565b60095414614f3e57614f09600a601661334a565b614f46615ba3565b614f4e612dac565b8152614f5b878787613537565b604080830182905280516020810190915282518152614f7a9190615a84565b60208201819052600d54614f8d91612c90565b600d556001600160a01b0387166000908152600e602090815260409091205490820151614fba9190612c90565b6001600160a01b038089166000818152600e602090815260409182902094909455600554815163929fe9a160e01b81526004810193909352306024840152905192169263929fe9a192604480840193829003018186803b15801561501d57600080fd5b505afa158015615031573d6000803e3d6000fd5b505050506040513d602081101561504757600080fd5b50511561505e5761505c878260200151613a20565b505b60408082015160208084015183516001600160a01b038c168152918201929092528083019190915290517f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9181900360600190a1866001600160a01b0316306001600160a01b0316600080516020615d4083398151915283602001516040518082815260200191505060405180910390a3600554604080830151602084015182516341c728b960e01b81523060048201526001600160a01b038c811660248301526044820193909352606481019190915291519216916341c728b99160848082019260009290919082900301818387803b15801561515b57600080fd5b505af115801561516f573d6000803e3d6000fd5b506000925061517c915050565b81604001519350935050505b935093915050565b600083158061519d575082155b156151aa5750600061146b565b838302838582816151b757fe5b041483906114045760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156145ad578181015183820152602001614595565b600081836152555760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156145ad578181015183820152602001614595565b5082848161525f57fe5b04949350505050565b6005546040805163368f515360e21b81523060048201526001600160a01b0386811660248301526044820186905291516000938493169163da3d454c91606480830192602092919082900301818787803b1580156152c557600080fd5b505af11580156152d9573d6000803e3d6000fd5b505050506040513d60208110156152ef57600080fd5b50519050801561530e576153066003600683614998565b91505061146b565b8361533a57600a546001600160a01b038616600090815260106020526040812060010191909155615306565b615342613c4e565b6009541461535657615306600a600461334a565b8361535f612c8a565b101561537157615306600e600361334a565b615379615bc4565b61538286613bf9565b602082018190526153939086612c90565b6040820152600b546153a59086612c90565b606082019081526040808301516001600160a01b0389166000908152601060205291909120908155600a5460019091015551600b556153e5868686613430565b60408082015160608084015183516001600160a01b038b168152602081018a9052808501939093529082015290517f13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab809181900360800190a160055460408051635c77860560e01b81523060048201526001600160a01b0389811660248301526044820189905291519190921691635c77860591606480830192600092919082900301818387803b1580156141f557600080fd5b60055460408051632fe3f38f60e11b81523060048201526001600160a01b0385811660248301528881166044830152878116606483015260848201879052915160009384938493911691635fc7e71e9160a48082019260209290919082900301818787803b15801561550957600080fd5b505af115801561551d573d6000803e3d6000fd5b505050506040513d602081101561553357600080fd5b5051905080156155575761554a6003600a83614998565b925060009150615a7a9050565b61555f613c4e565b600954146155735761554a600a600e61334a565b61557b613c4e565b856001600160a01b0316636c540baf6040518163ffffffff1660e01b815260040160206040518083038186803b1580156155b457600080fd5b505afa1580156155c8573d6000803e3d6000fd5b505050506040513d60208110156155de57600080fd5b5051146155f15761554a600a600961334a565b876001600160a01b0316876001600160a01b031614156156175761554a6006600f61334a565b856156285761554a6007600d61334a565b60001986141561563e5761554a6007600c61334a565b615646615bed565b61565289898988614642565b60208301528082521561568557805161567790601081111561567057fe5b601061334a565b935060009250615a7a915050565b60055460208201516040805163c488847b60e01b81523060048201526001600160a01b038a8116602483015260448201939093528151929093169263c488847b9260648083019392829003018186803b1580156156e157600080fd5b505afa1580156156f5573d6000803e3d6000fd5b505050506040513d604081101561570b57600080fd5b5080516020909101516060830152604082018190521561575c5760405162461bcd60e51b8152600401808060200182810382526033815260200180615d606033913960400191505060405180910390fd5b8060600151866001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156157b757600080fd5b505afa1580156157cb573d6000803e3d6000fd5b505050506040513d60208110156157e157600080fd5b50511015615836576040805162461bcd60e51b815260206004820152601860248201527f4c49515549444154455f5345495a455f544f4f5f4d5543480000000000000000604482015290519081900360640190fd5b60006001600160a01b03871630141561586057615859308b8b8560600151613f10565b90506158f0565b60608201516040805163b2a02ff160e01b81526001600160a01b038d811660048301528c81166024830152604482019390935290519189169163b2a02ff1916064808201926020929091908290030181600087803b1580156158c157600080fd5b505af11580156158d5573d6000803e3d6000fd5b505050506040513d60208110156158eb57600080fd5b505190505b801561593a576040805162461bcd60e51b81526020600482015260146024820152731d1bdad95b881cd95a5e9d5c994819985a5b195960621b604482015290519081900360640190fd5b7f298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb528a8a84602001518a866060015160405180866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001848152602001836001600160a01b03166001600160a01b031681526020018281526020019550505050505060405180910390a160055460208301516060840151604080516347ef3b3b60e01b81523060048201526001600160a01b038c811660248301528f811660448301528e81166064830152608482019490945260a48101929092525191909216916347ef3b3b9160c480830192600092919082900301818387803b158015615a4c57600080fd5b505af1158015615a60573d6000803e3d6000fd5b5060009250615a6d915050565b8260200151945094505050505b9550959350505050565b6000615a8e615ad0565b6132a18484615a9b615ad0565b6000615aaf670de0b6b3a764000085613e9b565b90506040518060200160405280615ac6838661497a565b9052949350505050565b6040518060200160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615b2457805160ff1916838001178555615b51565b82800160010185558215615b51579182015b82811115615b51578251825591602001919060010190615b36565b50612e0e929150615c15565b6040805161010081019091528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b604080516080810190915280600081526020016000815260200160008152602001600081525090565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b61123091905b80821115612e0e5760008155600101615c1b56fe6f6e6c792061646d696e206d617920696e697469616c697a6520746865206d61726b65746d61726b6574206d6179206f6e6c7920626520696e697469616c697a6564206f6e6365696e697469616c2065786368616e67652072617465206d7573742062652067726561746572207468616e207a65726f2e6f6e6c792061646d696e2063616e2073657420636f6c6c61746572616c2063617073657474696e6720696e7465726573742072617465206d6f64656c206661696c65646f6e6c79207468652061646d696e206d61792063616c6c205f72657369676e496d706c656d656e746174696f6e45524333313536466c617368426f72726f776572496e746572666163652e6f6e466c6173684c6f616eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4c49515549444154455f434f4d5054524f4c4c45525f43414c43554c4154455f414d4f554e545f5345495a455f4641494c45446f6e6c7920636f6d7074726f6c6c6572206d617920726567697374657220636f6c6c61746572616c20666f7220757365726f6e6c7920636f6d7074726f6c6c6572206d617920756e726567697374657220636f6c6c61746572616c20666f7220757365726f6e65206f662072656465656d546f6b656e73496e206f722072656465656d416d6f756e74496e206d757374206265207a65726f6f6e6c79207468652061646d696e206d61792063616c6c205f6265636f6d65496d706c656d656e746174696f6e1d22042d9eb89f2620572acbf8d85b66fba5a2ca19d166d8659574440175c964666c6173684c6f616e20616d6f756e742073686f756c642062652067726561746572207468616e207a65726fa265627a7a723158204efa407f073039d6b52cd16d66bce032c116febe9abd2518c8cea87f68c71e2264736f6c63430005110032