0 txs
0 calls
constructor
No constructor.
functions
balancerWhitelist
viewfunction balancerWhitelist(uint256) view returns (address)
bonusRate
viewfunction bonusRate() view returns (uint256)
buybackFee
viewfunction buybackFee() view returns (uint256)
buyBackPaused
viewfunction buyBackPaused() view returns (bool)
collateralAddress
viewfunction collateralAddress(address) view returns (bool)
collateralAddressArray
viewfunction collateralAddressArray(uint256) view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
enabledPool
viewfunction enabledPool(address) view returns (bool)
excessCollateralBalance
viewfunction excessCollateralBalance(address _collateralToken) view returns (uint256 _totalExcess)
feeCollector
viewfunction feeCollector() view returns (address)
getCollateralTokenValue
viewfunction getCollateralTokenValue(address _collateralToken) view returns (uint256)
getECR
viewfunction getECR() view returns (uint256)
getMaxBuybackShare
viewfunction getMaxBuybackShare(address _collateralToken) view returns (uint256 _maxShare)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
getSharePrice
viewfunction getSharePrice() view returns (uint256)
globalCollateralRatio
viewfunction globalCollateralRatio() view returns (uint256)
globalCollateralValue
viewfunction globalCollateralValue() view returns (uint256 _tcv)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
investCollateralRatio
viewfunction investCollateralRatio() view returns (uint256)
isBalancerWhitelist
viewfunction isBalancerWhitelist(address) view returns (bool)
lastCallTime
viewfunction lastCallTime() view returns (uint256)
MAX_FEE
viewfunction MAX_FEE() view returns (uint256)
oracleArray
viewfunction oracleArray(uint256) view returns (address)
oracleExist
viewfunction oracleExist(address) view returns (bool)
oracleOf
viewfunction oracleOf(address) view returns (address)
pidController
viewfunction pidController() view returns (address)
poolArrays
viewfunction poolArrays(uint256) view returns (address)
PRICE_PRECISION
viewfunction PRICE_PRECISION() view returns (uint256)
RATIO_LOWER_BOUND
viewfunction RATIO_LOWER_BOUND() view returns (uint256)
RATIO_PRECISION
viewfunction RATIO_PRECISION() view returns (uint256)
RATIO_UPPER_BOUND
viewfunction RATIO_UPPER_BOUND() view returns (uint256)
ratioDelta
viewfunction ratioDelta() view returns (uint256)
recollateralizeAmount
viewfunction recollateralizeAmount(address _collateralToken) view returns (uint256 _collateralNeeded)
recollateralizePaused
viewfunction recollateralizePaused() view returns (bool)
recollatFee
viewfunction recollatFee() view returns (uint256)
refreshCooldown
viewfunction refreshCooldown() view returns (uint256)
share
viewfunction share() view returns (address)
shareTWAP
viewfunction shareTWAP() view returns (address)
synthArray
viewfunction synthArray(uint256) view returns (address)
synthExists
viewfunction synthExists(address) view returns (bool)
synthOffset
viewfunction synthOffset(address) view returns (uint256)
synthPoolArray
viewfunction synthPoolArray(uint256) view returns (address)
synthPoolExist
viewfunction synthPoolExist(address) view returns (bool)
totalGlobalSynthValue
viewfunction totalGlobalSynthValue() view returns (uint256 _tgsv)
vaults
viewfunction vaults(uint256) view returns (address)
addBalancerWhitelist
nonpayablefunction addBalancerWhitelist(address _addr)
addCollateralAddress
nonpayablefunction addCollateralAddress(address _collateralTokenAddress, address _oracle)
addOracle
nonpayablefunction addOracle(address _oracle)
addPool
nonpayablefunction addPool(address poolAddress)
addSynth
nonpayablefunction addSynth(address _synthAddress)
addVault
nonpayablefunction addVault(address _vault)
buyBackShare
nonpayablefunction buyBackShare(uint256 _shareAmount, uint256 _collateralOutMin, address _collateralToken)
enterVault
nonpayablefunction enterVault(uint256 index)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _owner, address _pidController, address _share, address _shareTWAP, address _feeCollector)
rebalanceVault
nonpayablefunction rebalanceVault(uint256 index)
recallFromVault
nonpayablefunction recallFromVault(uint256 index)
recollateralizeShare
nonpayablefunction recollateralizeShare(address _collateralToken, uint256 _collateralAmount, uint256 _shareOutMin)
removeBalancerWhitelist
nonpayablefunction removeBalancerWhitelist(address _addr)
removeCollateral
nonpayablefunction removeCollateral(address _collateralAddress)
removeOracle
nonpayablefunction removeOracle(address oracleAddress)
removePool
nonpayablefunction removePool(address poolAddress)
removeSynth
nonpayablefunction removeSynth(address synthAddress)
removeVault
nonpayablefunction removeVault(address _vault)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
requestTransfer
nonpayablefunction requestTransfer(address _receiver, address _token, uint256 _amount)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setBonusRate
nonpayablefunction setBonusRate(uint256 _newBonusRate)
setBuybackFee
nonpayablefunction setBuybackFee(uint256 _newBuybackFee)
setFeeCollector
nonpayablefunction setFeeCollector(address _newFeeCollector)
setGlobalCollateralRatio
nonpayablefunction setGlobalCollateralRatio(uint256 newRatio)
setInvestCollateralRatio
nonpayablefunction setInvestCollateralRatio(uint256 _investCollateralRatio)
setOracleOf
nonpayablefunction setOracleOf(address _token, address _oracle)
setPIDController
nonpayablefunction setPIDController(address _pidController)
setRatioDelta
nonpayablefunction setRatioDelta(uint256 _delta)
setRecollatFee
nonpayablefunction setRecollatFee(uint256 _newRecollatFee)
setRefreshCooldown
nonpayablefunction setRefreshCooldown(uint256 newCooldown)
setShareTWAP
nonpayablefunction setShareTWAP(address _new)
setSynthOffset
nonpayablefunction setSynthOffset(address _synth, uint256 _offset)
stepDownTCR
nonpayablefunction stepDownTCR()
stepUpTCR
nonpayablefunction stepUpTCR()
toggleBuyBack
nonpayablefunction toggleBuyBack()
toggleEnablePool
nonpayablefunction toggleEnablePool(address _pool)
toggleRecollateralize
nonpayablefunction toggleRecollateralize()
events
AddCollateralToken
event AddCollateralToken(address newCollateral)
AddOracle
event AddOracle(address newOracle)
AddSynthToken
event AddSynthToken(address newSynth)
BuybackToggled
event BuybackToggled(bool toggled)
CollateralTokenRemoved
event CollateralTokenRemoved(address collateral)
OracleRemoved
event OracleRemoved(address oracle)
PoolAdded
event PoolAdded(address newPool)
PoolRemoved
event PoolRemoved(address newPool)
RecollateralizeToggled
event RecollateralizeToggled(bool toggled)
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)
SetBuybackFee
event SetBuybackFee(uint256 newFee)
SetGlobalCollateralRatio
event SetGlobalCollateralRatio(uint256 newRatio)
SetInvestCollateralRatio
event SetInvestCollateralRatio(uint256 newInvestCollateralRatio)
SetRecollatFee
event SetRecollatFee(uint256 newFee)
SetSynthOffset
event SetSynthOffset(address synth, uint256 amount)
SynthTokenRemoved
event SynthTokenRemoved(address synth)
VaultAdded
event VaultAdded(address newVault)
VaultRemoved
event VaultRemoved(address newVault)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b5061574980620000216000396000f3fe608060405234801561001057600080fd5b50600436106104c25760003560e01c806395082d2511610278578063c9cf50e71161015c578063e8c0a9af116100ce578063fa2caf3111610092578063fa2caf3114610d9a578063fb54fbb314610da2578063fc3181d414610dbf578063fdc85fc414610dc7578063fedad42014610ded578063ff57d82a14610e13576104c2565b8063e8c0a9af14610d10578063ea5a506814610d3e578063ea5f7abe14610d64578063ece667c714610d6c578063f890e28614610d74576104c2565b8063d32867d011610120578063d32867d0146109e8578063d53c33be14610c73578063d547741f14610c7b578063d914cd4b14610ca7578063df5dd1a514610ccd578063e4fcf32914610cf3576104c2565b8063c9cf50e714610be5578063ca15c87314610c02578063ceb68c2314610c1f578063d2517c2a14610c45578063d2d97b0614610c6b576104c2565b8063b05241a2116101f5578063bd4c605a116101b9578063bd4c605a14610b28578063bd7a626f14610b4e578063bf2b681914610b74578063c415b95c14610b9a578063c5ced5bb14610ba2578063c99d3a0614610bbf576104c2565b8063b05241a214610ae2578063b456b61b14610aea578063b831a63d14610b10578063bb7831fc14610b18578063bc063e1a14610b20576104c2565b8063a217fddf1161023c578063a217fddf14610a76578063a2749c4c14610a76578063a4293ead14610a7e578063a42dce8014610ab4578063a8d5fd6514610ada576104c2565b806395082d25146109e857806398017e2c146109e857806398710495146109f05780639be8ec9b14610a1e5780639d3688f814610a50576104c2565b80633fdb2a2c116103aa5780636c55ec021161031c578063849cf588116102e0578063849cf588146109285780638c64ea4a1461094e5780638e7d71d81461096b5780639010d07c1461097357806391d1485414610996578063946e1b3e146109c2576104c2565b80636c55ec02146108b25780636d2c5615146108de5780637d35cc0b146108e65780637d731057146109035780637f877f8514610920576104c2565b806350c9ecd91161036e57806350c9ecd9146108315780635af123f4146108395780635b1dac601461084157806360f93ce81461084957806369c8905d1461086f5780636b83969d14610895576104c2565b80633fdb2a2c1461078f57806342d15aec146107ac5780634567bfba146107b457806346d87e45146107d1578063503dd1f6146107f7576104c2565b8063228a71d5116104435780632f2ff15d116104075780632f2ff15d146106b157806335a7ede6146106dd57806336568abe146107035780633a56fdd31461072f5780633b2d081c146107615780633b7d094614610769576104c2565b8063228a71d51461062c578063248a9ca314610649578063256b5a0214610666578063264ea1a81461068c57806329a29083146106a9576104c2565b806316b641351161048a57806316b64135146105a7578063197dccd3146105c45780631c5df1e5146105ea5780632123300b14610607578063217bb9a014610624576104c2565b806305def8f4146104c75780630c88a6aa146104e15780630cbb6c9a1461051a5780631065ce00146105425780631459457a1461055f575b600080fd5b6104cf610e39565b60408051918252519081900360200190f35b6104fe600480360360208110156104f757600080fd5b5035610e3f565b604080516001600160a01b039092168252519081900360200190f35b6105406004803603602081101561053057600080fd5b50356001600160a01b0316610e66565b005b6105406004803603602081101561055857600080fd5b5035610ee6565b610540600480360360a081101561057557600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160809091013516610f13565b6104fe600480360360208110156105bd57600080fd5b5035611083565b610540600480360360208110156105da57600080fd5b50356001600160a01b0316611090565b6105406004803603602081101561060057600080fd5b50356110d3565b6105406004803603602081101561061d57600080fd5b503561112f565b6104cf6111e0565b6104fe6004803603602081101561064257600080fd5b50356113ab565b6104cf6004803603602081101561065f57600080fd5b50356113b8565b6105406004803603602081101561067c57600080fd5b50356001600160a01b03166113d0565b610540600480360360208110156106a257600080fd5b50356114f7565b6104cf611562565b610540600480360360408110156106c757600080fd5b50803590602001356001600160a01b0316611568565b610540600480360360208110156106f357600080fd5b50356001600160a01b03166115d4565b6105406004803603604081101561071957600080fd5b50803590602001356001600160a01b03166117c3565b6105406004803603606081101561074557600080fd5b50803590602081013590604001356001600160a01b0316611824565b6104cf611dd0565b6105406004803603602081101561077f57600080fd5b50356001600160a01b0316611dd6565b610540600480360360208110156107a557600080fd5b5035611fef565b6105406120e5565b610540600480360360208110156107ca57600080fd5b5035612165565b6104cf600480360360208110156107e757600080fd5b50356001600160a01b0316612216565b61081d6004803603602081101561080d57600080fd5b50356001600160a01b031661234d565b604080519115158252519081900360200190f35b610540612362565b6104cf6123f0565b6104cf6123f6565b61081d6004803603602081101561085f57600080fd5b50356001600160a01b0316612489565b61081d6004803603602081101561088557600080fd5b50356001600160a01b031661249e565b610540600480360360208110156108ab57600080fd5b50356124b3565b610540600480360360408110156108c857600080fd5b506001600160a01b038135169060200135612545565b61081d6125f5565b6104fe600480360360208110156108fc57600080fd5b50356125fe565b6105406004803603602081101561091957600080fd5b503561260b565b61081d612635565b6105406004803603602081101561093e57600080fd5b50356001600160a01b0316612643565b6104fe6004803603602081101561096457600080fd5b50356127e7565b6105406127f4565b6104fe6004803603604081101561098957600080fd5b50803590602001356128f0565b61081d600480360360408110156109ac57600080fd5b50803590602001356001600160a01b0316612911565b61081d600480360360208110156109d857600080fd5b50356001600160a01b0316612929565b6104cf61293e565b61054060048036036040811015610a0657600080fd5b506001600160a01b038135811691602001351661294a565b61054060048036036060811015610a3457600080fd5b506001600160a01b038135169060208101359060400135612a18565b61054060048036036020811015610a6657600080fd5b50356001600160a01b0316612e64565b6104cf612ebf565b61054060048036036060811015610a9457600080fd5b506001600160a01b03813581169160208101359091169060400135612ec4565b61054060048036036020811015610aca57600080fd5b50356001600160a01b0316612fbe565b6104fe613001565b6104cf613010565b6104cf60048036036020811015610b0057600080fd5b50356001600160a01b0316613046565b6104fe613058565b6104cf613067565b6104cf61306d565b6104cf60048036036020811015610b3e57600080fd5b50356001600160a01b0316613078565b61081d60048036036020811015610b6457600080fd5b50356001600160a01b03166130f9565b61054060048036036020811015610b8a57600080fd5b50356001600160a01b031661310e565b6104fe6132bd565b61054060048036036020811015610bb857600080fd5b50356132cc565b61054060048036036020811015610bd557600080fd5b50356001600160a01b03166132f6565b6104fe60048036036020811015610bfb57600080fd5b5035613529565b6104cf60048036036020811015610c1857600080fd5b5035613536565b61054060048036036020811015610c3557600080fd5b50356001600160a01b031661354d565b6104cf60048036036020811015610c5b57600080fd5b50356001600160a01b03166136b9565b6104cf6137c3565b6104fe613ba3565b61054060048036036040811015610c9157600080fd5b50803590602001356001600160a01b0316613bb2565b61054060048036036020811015610cbd57600080fd5b50356001600160a01b0316613c0b565b61054060048036036020811015610ce357600080fd5b50356001600160a01b0316613de0565b61054060048036036020811015610d0957600080fd5b5035613f84565b61054060048036036040811015610d2657600080fd5b506001600160a01b0381358116916020013516613faa565b61054060048036036020811015610d5457600080fd5b50356001600160a01b03166141cb565b6104cf614338565b6104cf61433e565b6104fe60048036036020811015610d8a57600080fd5b50356001600160a01b0316614344565b6104cf61435f565b6104fe60048036036020811015610db857600080fd5b5035614365565b610540614372565b61054060048036036020811015610ddd57600080fd5b50356001600160a01b031661448a565b6104cf60048036036020811015610e0357600080fd5b50356001600160a01b0316614679565b61081d60048036036020811015610e2957600080fd5b50356001600160a01b0316614760565b60785481565b606b8181548110610e4c57fe5b6000918252602090912001546001600160a01b0316905081565b610e7e60008051602061557383398151915233612911565b610ebd576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152606f60205260409020805460ff19811660ff90911615179055565b610efe60008051602061557383398151915233612911565b610f0757600080fd5b610f1081614775565b50565b600054610100900460ff1680610f2c5750610f2c6149ed565b80610f3a575060005460ff16155b610f755760405162461bcd60e51b815260040180806020018281038252602e815260200180615593602e913960400191505060405180910390fd5b600054610100900460ff16158015610fa0576000805460ff1961ff0019909116610100171660011790555b6608e1bc9bf04000607655661aa535d3d0c0006075556000607355670de0b6b3a7640000607055607180546001600160a01b038088166001600160a01b03199283161790925560658054858416908316179055607c8054878416908316179055607d8054928616929091169190911790556110196149fe565b6110246000876115c6565b61103c60008051602061557383398151915287611568565b61104585612e64565b6079805461ff001960ff19909116600117166101001790556709b6e64a8ec60000607b55801561107b576000805461ff00191690555b505050505050565b60668181548110610e4c57fe5b6110a860008051602061557383398151915233612911565b6110b157600080fd5b607d80546001600160a01b0319166001600160a01b0392909216919091179055565b6110eb60008051602061557383398151915233612911565b61112a576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b607355565b61114760008051602061557383398151915233612911565b61115057600080fd5b66b1a2bc2ec500008111156111a5576040805162461bcd60e51b81526020600482015260166024820152750a8d0ca40dccaee40cccaca40d2e640e8de40d0d2ced60531b604482015290519081900360640190fd5b60788190556040805182815290517f8cbc7c6f7b10dc13c2790804de2cdbc5c25e3ef2f466571f28eee944ca3a9c959181900360200190a150565b6000805b606d548110156113a75760006001600160a01b0316606d828154811061120657fe5b6000918252602090912001546001600160a01b03161461139f57600060b16000606d848154811061123357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812054606d80549193506112eb918491908690811061127057fe5b60009182526020918290200154604080516318160ddd60e01b815290516001600160a01b03909216926318160ddd92600480840193829003018186803b1580156112b957600080fd5b505afa1580156112cd573d6000803e3d6000fd5b505050506040513d60208110156112e357600080fd5b505190614aaf565b90506000606d84815481106112fc57fe5b600091825260209182902001546040805163c6320ab960e01b815290516001600160a01b039092169263c6320ab992600480840193829003018186803b15801561134557600080fd5b505afa158015611359573d6000803e3d6000fd5b505050506040513d602081101561136f57600080fd5b50519050611399611392670de0b6b3a764000061138c8585614af1565b90614b4a565b8690614b8c565b94505050505b6001016111e4565b5090565b60728181548110610e4c57fe5b6000818152603360205260409020600201545b919050565b6113e860008051602061557383398151915233612911565b611427576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b038116611473576040805162461bcd60e51b815260206004820152600e60248201526d696e76616c69644164647265737360901b604482015290519081900360640190fd5b607a80546001810182556000919091527ff0440771a29e57e18c66727944770b82cc77924aef333c927ce6bdd2cdb3ae030180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f7b7ef7a864d96a85497a1ed846adb39940dd6ccef678ff6ac8d55505e09b8cc49181900360200190a150565b61150f60008051602061560483398151915233612911565b61151857600080fd5b6073546074544203101561155d5760405162461bcd60e51b81526004018080602001828103825260358152602001806156246035913960400191505060405180910390fd5b607655565b60765481565b60008281526033602052604090206002015461158b90611586614be6565b612911565b6115c65760405162461bcd60e51b815260040180806020018281038252602f8152602001806154b3602f913960400191505060405180910390fd5b6115d08282614bea565b5050565b6115ec60008051602061557383398151915233612911565b61162b576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b038116611674576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152606e602052604090205460ff1615156001146116dc576040805162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81b9bdb995e1a5cdd185b9d606a1b604482015290519081900360640190fd5b6001600160a01b0381166000908152606e60205260408120805460ff191690555b606d5481101561178357816001600160a01b0316606d828154811061171e57fe5b6000918252602090912001546001600160a01b0316141561177b576000606d828154811061174857fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611783565b6001016116fd565b50604080516001600160a01b038316815290517f08c08480d46a32cbd7bdc1936838868e6cb805a31255caebdef25196624fc2909181900360200190a150565b6117cb614be6565b6001600160a01b0316816001600160a01b03161461181a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806156e5602f913960400191505060405180910390fd5b6115d08282614c53565b607954610100900460ff1615611875576040805162461bcd60e51b8152602060048201526011602482015270109d5e589858dac81a5cc81c185d5cd959607a1b604482015290519081900360640190fd5b607c54604080516370a0823160e01b8152336004820152905185926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156118bf57600080fd5b505afa1580156118d3573d6000803e3d6000fd5b505050506040513d60208110156118e957600080fd5b50511015611930576040805162461bcd60e51b815260206004820152600f60248201526e4e6f20656e6f75676820536861726560881b604482015290519081900360640190fd5b33600090815260b0602052604090205460ff16611986576040805162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b604482015290519081900360640190fd5b6000611991826136b9565b9050600081116119d25760405162461bcd60e51b81526004018080602001828103825260218152602001806155226021913960400191505060405180910390fd5b60006119dc6123f6565b905060006119f6670de0b6b3a764000061138c8885614af1565b6001600160a01b038086166000818152606a60209081526040808320548151633ddac95360e01b81526004810195909552670de0b6b3a76400006024860152905195965091949190931692633ddac9539260448082019391829003018186803b158015611a6257600080fd5b505afa158015611a76573d6000803e3d6000fd5b505050506040513d6020811015611a8c57600080fd5b505190506000611aa08261138c8a87614af1565b90506000611aba670de0b6b3a764000061138c8886614af1565b905080841115611b11576040805162461bcd60e51b815260206004820152601b60248201527f4275796261636b206f766572206578636573732062616c616e63650000000000604482015290519081900360640190fd5b6000611b46670de0b6b3a764000061138c611b3f607754670de0b6b3a7640000614aaf90919063ffffffff16565b8690614af1565b905080886001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611b9657600080fd5b505afa158015611baa573d6000803e3d6000fd5b505050506040513d6020811015611bc057600080fd5b50511015611bff5760405162461bcd60e51b815260040180806020018281038252602c815260200180615683602c913960400191505060405180910390fd5b6000611c0b8483614aaf565b9050818a1115611c5b576040805162461bcd60e51b815260206004820152601660248201527514db1a5c1c1859d9481b1a5b5a5d081c995858da195960521b604482015290519081900360640190fd5b607c546040805163079cc67960e41b8152336004820152602481018e905290516001600160a01b03909216916379cc67909160448082019260009290919082900301818387803b158015611cae57600080fd5b505af1158015611cc2573d6000803e3d6000fd5b50506040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b038d16935063a9059cbb925060448083019260209291908290030181600087803b158015611d1557600080fd5b505af1158015611d29573d6000803e3d6000fd5b505050506040513d6020811015611d3f57600080fd5b50506065546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018490529051918b169163a9059cbb916044808201926020929091908290030181600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506040513d6020811015611dc157600080fd5b50505050505050505050505050565b60775481565b611dee60008051602061557383398151915233612911565b611e2d576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b038116611e76576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152606c602052604090205460ff161515600114611ede576040805162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81b9bdb995e1a5cdd185b9d606a1b604482015290519081900360640190fd5b6001600160a01b0381166000908152606c60205260408120805460ff191690555b606b54811015611f8557816001600160a01b0316606b8281548110611f2057fe5b6000918252602090912001546001600160a01b03161415611f7d576000606b8281548110611f4a57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f85565b600101611eff565b50611fb07f5d5c2d2522b7f6ec8d1c86f44956b9ecd4376b1842cd263d54a5368aa149486d82613bb2565b604080516001600160a01b038316815290517f4106dfdaa577573db51c0ca93f766dbedfa0758faa2e7f5bcdb7c142be803c3f9181900360200190a150565b61200760008051602061557383398151915233612911565b612046576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b670de0b6b3a7640000811115801561205c575060015b6120a6576040805162461bcd60e51b815260206004820152601660248201527513995dc81c985d1a5bc8195e18d9595908189bdd5b9960521b604482015290519081900360640190fd5b6070819055426074556040805182815290517f292124be0e48e446d004ae31c44e8584ef92dcc1b9597f0372e55a7f924f5eb29181900360200190a150565b61210f7f539440820030c4994db4e31b6b800deafd503688728f932addfe7a410515c14c33612911565b61211857600080fd5b6079805460ff19811660ff918216151791829055604080519290911615158252517f2fda313d9b5bb0b73bd003153f2fccbc0dca49791fdd1184dfad82b44f54bd2e9181900360200190a1565b61217d60008051602061557383398151915233612911565b61218657600080fd5b66b1a2bc2ec500008111156121db576040805162461bcd60e51b81526020600482015260166024820152750a8d0ca40dccaee40cccaca40d2e640e8de40d0d2ced60531b604482015290519081900360640190fd5b60778190556040805182815290517f4cd2b21cece0ef43244e898a57d2e14513855f27c04788268f51e5268df1447b9181900360200190a150565b600080612222836136b9565b6001600160a01b038085166000818152606a60209081526040808320548151633ddac95360e01b81526004810195909552670de0b6b3a76400006024860152905195965091949190931692633ddac9539260448082019391829003018186803b15801561228e57600080fd5b505afa1580156122a2573d6000803e3d6000fd5b505050506040513d60208110156122b857600080fd5b5051905060006122d4670de0b6b3a764000061138c8585614af1565b9050600061230b670de0b6b3a764000061138c612304607754670de0b6b3a7640000614aaf90919063ffffffff16565b8590614af1565b905060006123258261138c85670de0b6b3a7640000614af1565b905060006123316123f6565b90506123418161138c8685614af1565b98975050505050505050565b606c6020526000908152604090205460ff1681565b61238c7f539440820030c4994db4e31b6b800deafd503688728f932addfe7a410515c14c33612911565b61239557600080fd5b6079805460ff610100808304821615810261ff001990931692909217928390556040805192909304161515815290517f4f40fd1c59f78d7a2220da638cd9400daba01e57c7965702f390bf13133cc31f9181900360200190a1565b60755481565b607d54607c5460408051633ddac95360e01b81526001600160a01b039283166004820152670de0b6b3a7640000602482015290516000939290921691633ddac95391604480820192602092909190829003018186803b15801561245857600080fd5b505afa15801561246c573d6000803e3d6000fd5b505050506040513d602081101561248257600080fd5b5051905090565b60676020526000908152604090205460ff1681565b60696020526000908152604090205460ff1681565b6124cb60008051602061557383398151915233612911565b61250a576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b607b8190556040805182815290517fffbd753665d4205577f800e4281bd4f0a1240bacfb118f2a6c4ae6d6e69f84939181900360200190a150565b61255d60008051602061557383398151915233612911565b61259c576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b038216600081815260b160209081526040918290208490558151928352820183905280517f53ec62f09bf2e36f4ef46ca7640fb3b305e8e63355a78332d33a54be918fe7139281900390910190a15050565b60795460ff1681565b60af8181548110610e4c57fe5b61262360008051602061557383398151915233612911565b61262c57600080fd5b610f1081614cbc565b607954610100900460ff1681565b61265b60008051602061557383398151915233612911565b61269a576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b0381166126e3576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152606e602052604090205460ff161561274a576040805162461bcd60e51b81526020600482015260166024820152754164647265737320616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152606e60209081526040808320805460ff19166001908117909155606d805491820181559093527f5006b838207c6a9ae9b84d68f467dd4bb5c305fbfb6b04eab8faaabeec1e18d890920180546001600160a01b03191684179055815192835290517f01aa82cfa990398c4ccf47aa760974ee7396ce3d02ad3e6d10efa898332736679281900390910190a150565b607a8181548110610e4c57fe5b61280c60008051602061560483398151915233612911565b61285d576040805162461bcd60e51b815260206004820152601c60248201527f53656e646572206973206e6f74206120726174696f2073657474657200000000604482015290519081900360640190fd5b607354607454420310156128a25760405162461bcd60e51b81526004018080602001828103825260358152602001806156246035913960400191505060405180910390fd5b6076546070546128b191614aaf565b6070555b4260745560705460408051918252517f292124be0e48e446d004ae31c44e8584ef92dcc1b9597f0372e55a7f924f5eb29181900360200190a1565b60008281526033602052604081206129089083614d9c565b90505b92915050565b60008281526033602052604081206129089083614da8565b606f6020526000908152604090205460ff1681565b670de0b6b3a764000081565b61296260008051602061557383398151915233612911565b6129a1576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b0381166129ea576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b039182166000908152606a6020526040902080546001600160a01b03191691909216179055565b60795460ff1615612a70576040805162461bcd60e51b815260206004820152601960248201527f5265636f6c6c61746572616c697a652069732070617573656400000000000000604482015290519081900360640190fd5b33600090815260b0602052604090205460ff16612ac6576040805162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b604482015290519081900360640190fd5b6001600160a01b038084166000818152606a60209081526040808320548151633ddac95360e01b81526004810195909552670de0b6b3a76400006024860152905192941692633ddac9539260448083019392829003018186803b158015612b2c57600080fd5b505afa158015612b40573d6000803e3d6000fd5b505050506040513d6020811015612b5657600080fd5b505190506000612b7b670de0b6b3a764000061138c84612b7589614679565b90614af1565b905060008111612bd2576040805162461bcd60e51b815260206004820152601760248201527f696e73756666696369656e7420636f6c6c61746572616c000000000000000000604482015290519081900360640190fd5b6001600160a01b038086166000818152606a60209081526040808320548151633ddac95360e01b81526004810195909552670de0b6b3a76400006024860181905291519395612c7c95929461138c948c949390921692633ddac953926044808301939192829003018186803b158015612c4a57600080fd5b505afa158015612c5e573d6000803e3d6000fd5b505050506040513d6020811015612c7457600080fd5b505190614af1565b905081811115612cbd5760405162461bcd60e51b81526004018080602001828103825260228152602001806155e26022913960400191505060405180910390fd5b6000612cea612cca6123f6565b61138c612304607554670de0b6b3a7640000614b8c90919063ffffffff16565b90506000612d1a670de0b6b3a764000061138c612304607854670de0b6b3a7640000614aaf90919063ffffffff16565b905080861115612d6a576040805162461bcd60e51b815260206004820152601660248201527514db1a5c1c1859d9481b1a5b5a5d081c995858da195960521b604482015290519081900360640190fd5b6000612d768383614aaf565b9050612d8d6001600160a01b038a1633308b614dbd565b607c54604080516340c10f1960e01b81523360048201526024810185905290516001600160a01b03909216916340c10f199160448082019260009290919082900301818387803b158015612de057600080fd5b505af1158015612df4573d6000803e3d6000fd5b5050607c54606554604080516340c10f1960e01b81526001600160a01b0392831660048201526024810187905290519190921693506340c10f199250604480830192600092919082900301818387803b158015612e5057600080fd5b505af1158015611dc1573d6000803e3d6000fd5b612e7c60008051602061557383398151915233612911565b612e8557600080fd5b612e9d60008051602061560483398151915282611568565b607180546001600160a01b0319166001600160a01b0392909216919091179055565b600081565b612eee7f5d5c2d2522b7f6ec8d1c86f44956b9ecd4376b1842cd263d54a5368aa149486d33612911565b612f36576040805162461bcd60e51b815260206004820152601460248201527314d95b99195c881a5cc81b9bdd0818481c1bdbdb60621b604482015290519081900360640190fd5b816001600160a01b031663a9059cbb84836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f8d57600080fd5b505af1158015612fa1573d6000803e3d6000fd5b505050506040513d6020811015612fb757600080fd5b5050505050565b612fd660008051602061557383398151915233612911565b612fdf57600080fd5b606580546001600160a01b0319166001600160a01b0392909216919091179055565b607c546001600160a01b031681565b60008061301b6137c3565b905060006130276111e0565b905061303f8161138c84670de0b6b3a7640000614af1565b9250505090565b60b16020526000908152604090205481565b607d546001600160a01b031681565b60745481565b66b1a2bc2ec5000081565b6000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156130c757600080fd5b505afa1580156130db573d6000803e3d6000fd5b505050506040513d60208110156130f157600080fd5b505192915050565b606e6020526000908152604090205460ff1681565b61312660008051602061557383398151915233612911565b613165576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b0381166131ae576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b038116600090815260b0602052604090205460ff161515600114613216576040805162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81b9bdb995e1a5cdd185b9d606a1b604482015290519081900360640190fd5b6001600160a01b038116600090815260b060205260408120805460ff191690555b60af548110156115d057816001600160a01b031660af828154811061325857fe5b6000918252602090912001546001600160a01b031614156132b557600060af828154811061328257fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506115d0565b600101613237565b6065546001600160a01b031681565b6132e460008051602061557383398151915233612911565b6132ed57600080fd5b610f0781614cbc565b61330e60008051602061557383398151915233612911565b61334d576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b038116613396576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526067602052604090205460ff1615156001146133fe576040805162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81b9bdb995e1a5cdd185b9d606a1b604482015290519081900360640190fd5b6001600160a01b0381166000908152606760205260408120805460ff191690555b6066548110156134a557816001600160a01b03166066828154811061344057fe5b6000918252602090912001546001600160a01b0316141561349d5760006066828154811061346a57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506134a5565b60010161341f565b506001600160a01b038181166000908152606a602052604090205416156134ea576001600160a01b038082166000908152606a60205260409020546134ea911661448a565b604080516001600160a01b038316815290517f066186f1dd144b0baa72e90264076813d8f2dfce7c39704ea68d159cee4305b79181900360200190a150565b60688181548110610e4c57fe5b600081815260336020526040812061290b90614e1d565b61356560008051602061557383398151915233612911565b6135a4576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b0381166135f0576040805162461bcd60e51b815260206004820152600e60248201526d696e76616c69644164647265737360901b604482015290519081900360640190fd5b60005b607a5481101561367957816001600160a01b0316607a828154811061361457fe5b6000918252602090912001546001600160a01b03161415613671576000607a828154811061363e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613679565b6001016135f3565b50604080516001600160a01b038316815290517fe71f3a50e5ad81964f352c411f1d45e35438ecd1acecef59ac81d9fbbf6cbc0a9181900360200190a150565b607054600090816136c8613010565b90508181116136dc576000925050506113cb565b6001600160a01b038085166000818152606a60209081526040808320548151633ddac95360e01b81526004810195909552670de0b6b3a76400006024860152905192941692633ddac9539260448083019392829003018186803b15801561374257600080fd5b505afa158015613756573d6000803e3d6000fd5b505050506040513d602081101561376c57600080fd5b50519050600061378a670de0b6b3a764000061138c86612b756111e0565b905060006137a08261379a6137c3565b90614aaf565b90506137b88361138c83670de0b6b3a7640000614af1565b979650505050505050565b6000805b6066548110156139a05760006001600160a01b0316606682815481106137e957fe5b6000918252602090912001546001600160a01b0316146139985760006066828154811061381257fe5b60009182526020918290200154604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b15801561386157600080fd5b505afa158015613875573d6000803e3d6000fd5b505050506040513d602081101561388b57600080fd5b505160668054919250600091606a918391869081106138a657fe5b60009182526020808320909101546001600160a01b039081168452908301939093526040909101902054606680549190921691633ddac95391869081106138e957fe5b60009182526020918290200154604080516001600160e01b031960e086901b1681526001600160a01b039092166004830152670de0b6b3a764000060248301525160448083019392829003018186803b15801561394557600080fd5b505afa158015613959573d6000803e3d6000fd5b505050506040513d602081101561396f57600080fd5b5051905061399361398c670de0b6b3a764000061138c8585614af1565b8590614b8c565b935050505b6001016137c7565b5060005b607a548110156113a75760006001600160a01b0316607a82815481106139c657fe5b6000918252602090912001546001600160a01b031614613b9b576000607a82815481106139ef57fe5b60009182526020808320909101546040805163017ed98160e31b815290516001600160a01b0390921694508492630bf6cc0892600480840193829003018186803b158015613a3c57600080fd5b505afa158015613a50573d6000803e3d6000fd5b505050506040513d6020811015613a6657600080fd5b5051604080516338d52e0f60e01b815290519192506000916001600160a01b038516916338d52e0f916004808301926020929190829003018186803b158015613aae57600080fd5b505afa158015613ac2573d6000803e3d6000fd5b505050506040513d6020811015613ad857600080fd5b50516001600160a01b038082166000818152606a60209081526040808320548151633ddac95360e01b81526004810195909552670de0b6b3a76400006024860152905195965091949190931692633ddac9539260448082019391829003018186803b158015613b4657600080fd5b505afa158015613b5a573d6000803e3d6000fd5b505050506040513d6020811015613b7057600080fd5b50519050613b94613b8d670de0b6b3a764000061138c8685614af1565b8790614b8c565b9550505050505b6001016139a4565b6071546001600160a01b031681565b600082815260336020526040902060020154613bd090611586614be6565b61181a5760405162461bcd60e51b81526004018080602001828103825260308152602001806155436030913960400191505060405180910390fd5b613c2360008051602061557383398151915233612911565b613c62576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b038116613cab576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152606c602052604090205460ff1615613d12576040805162461bcd60e51b81526020600482015260166024820152754164647265737320616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152606c60205260408120805460ff19166001908117909155606b805491820181559091527fbd43cb8ece8cd1863bcd6082d65c5b0d25665b1ce17980f0da43c0ed545f98b40180546001600160a01b0319169091179055613da17f5d5c2d2522b7f6ec8d1c86f44956b9ecd4376b1842cd263d54a5368aa149486d82611568565b604080516001600160a01b038316815290517f73cca62ab1b520c9715bf4e6c71e3e518c754e7148f65102f43289a7df0efea69181900360200190a150565b613df860008051602061557383398151915233612911565b613e37576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b038116613e80576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526069602052604090205460ff1615613ee7576040805162461bcd60e51b81526020600482015260166024820152754164647265737320616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152606960209081526040808320805460ff191660019081179091556068805491820181559093527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c2209775390920180546001600160a01b03191684179055815192835290517f9772798610937341d23a69ec5e3f97727ff869179644b17db536f12ef374bfc49281900390910190a150565b613f9c60008051602061557383398151915233612911565b613fa557600080fd5b607555565b613fc260008051602061557383398151915233612911565b614001576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b03821661404a576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526067602052604090205460ff16156140b1576040805162461bcd60e51b81526020600482015260166024820152754164647265737320616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b03811660009081526069602052604090205460ff16614115576040805162461bcd60e51b81526020600482015260146024820152734f7261636c65206973206e6f742065786973747360601b604482015290519081900360640190fd5b6001600160a01b0382811660008181526067602090815260408083208054600160ff1990911681179091556066805491820190557f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540180546001600160a01b03199081168617909155606a835292819020805490931694861694909417909155825191825291517f7c3f95f8569977586927f95930461a261e2121e326fcb513242f9e5c8b8ea6dc929181900390910190a15050565b6141e360008051602061557383398151915233612911565b614222576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b03811661426b576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b038116600090815260b0602052604090205460ff16156142d2576040805162461bcd60e51b81526020600482015260166024820152754164647265737320616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0316600081815260b060205260408120805460ff1916600190811790915560af805491820181559091527fdef993a65205231625280c5e3c23e44b263d0aa948fbc330055626b8ab25a5a10180546001600160a01b0319169091179055565b60735481565b60705481565b606a602052600090815260409020546001600160a01b031681565b607b5481565b606d8181548110610e4c57fe5b61438a60008051602061560483398151915233612911565b6143db576040805162461bcd60e51b815260206004820152601c60248201527f53656e646572206973206e6f74206120726174696f2073657474657200000000604482015290519081900360640190fd5b607354607454420310156144205760405162461bcd60e51b81526004018080602001828103825260358152602001806156246035913960400191505060405180910390fd5b60765460705461442f91614b8c565b6070819055670de0b6b3a764000010156128b557670de0b6b3a76400006070554260745560705460408051918252517f292124be0e48e446d004ae31c44e8584ef92dcc1b9597f0372e55a7f924f5eb29181900360200190a1565b6144a260008051602061557383398151915233612911565b6144e1576040805162461bcd60e51b815260206004820152601a60248201526000805160206154e2833981519152604482015290519081900360640190fd5b6001600160a01b03811661452a576040805162461bcd60e51b81526020600482015260156024820152600080516020615502833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526069602052604090205460ff161515600114614592576040805162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81b9bdb995e1a5cdd185b9d606a1b604482015290519081900360640190fd5b6001600160a01b0381166000908152606960205260408120805460ff191690555b60685481101561463957816001600160a01b0316606882815481106145d457fe5b6000918252602090912001546001600160a01b03161415614631576000606882815481106145fe57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614639565b6001016145b3565b50604080516001600160a01b038316815290517f9c8e7d83025bef8a04c664b2f753f64b8814bdb7e27291d7e50935f18cc3c7129181900360200190a150565b600080614684613010565b60705490915081811161469c576000925050506113cb565b6001600160a01b038085166000818152606a60209081526040808320548151633ddac95360e01b81526004810195909552670de0b6b3a76400006024860152905192941692633ddac9539260448083019392829003018186803b15801561470257600080fd5b505afa158015614716573d6000803e3d6000fd5b505050506040513d602081101561472c57600080fd5b50519050600061474a670de0b6b3a764000061138c85612b756111e0565b905060006137a06147596137c3565b8390614aaf565b60b06020526000908152604090205460ff1681565b60006001600160a01b0316607a828154811061478d57fe5b6000918252602090912001546001600160a01b031614156147e0576040805162461bcd60e51b8152602060048201526008602482015267139bc81d985d5b1d60c21b604482015290519081900360640190fd5b6000607a82815481106147ef57fe5b6000918252602080832090910154604080516338d52e0f60e01b815290516001600160a01b03909216945084926338d52e0f92600480840193829003018186803b15801561483c57600080fd5b505afa158015614850573d6000803e3d6000fd5b505050506040513d602081101561486657600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156148b457600080fd5b505afa1580156148c8573d6000803e3d6000fd5b505050506040513d60208110156148de57600080fd5b5051905080614934576040805162461bcd60e51b815260206004820152601a60248201527f436f6c6c61746572616c2042616c616e6365206973207a65726f000000000000604482015290519081900360640190fd5b6000614957670de0b6b3a764000061138c84607b54614af190919063ffffffff16565b90508015612fb7576149746001600160a01b038416856000614e28565b6149886001600160a01b0384168583614e28565b836001600160a01b031663b6b55f25826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156149ce57600080fd5b505af11580156149e2573d6000803e3d6000fd5b505050505050505050565b60006149f830614f40565b15905090565b600054610100900460ff1680614a175750614a176149ed565b80614a25575060005460ff16155b614a605760405162461bcd60e51b815260040180806020018281038252602e815260200180615593602e913960400191505060405180910390fd5b600054610100900460ff16158015614a8b576000805460ff1961ff0019909116610100171660011790555b614a93614f46565b614a9b614f46565b8015610f10576000805461ff001916905550565b600061290883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614fe6565b600082614b005750600061290b565b82820282848281614b0d57fe5b04146129085760405162461bcd60e51b81526004018080602001828103825260218152602001806155c16021913960400191505060405180910390fd5b600061290883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061507d565b600082820183811015612908576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b6000828152603360205260409020614c0290826150e2565b156115d057614c0f614be6565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020614c6b90826150f7565b156115d057614c78614be6565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60006001600160a01b0316607a8281548110614cd457fe5b6000918252602090912001546001600160a01b03161415614d33576040805162461bcd60e51b815260206004820152601460248201527315985d5b1d08191bd95cc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b607a8181548110614d4057fe5b600091825260208220015460408051633ccfd60b60e01b815290516001600160a01b0390921692633ccfd60b9260048084019382900301818387803b158015614d8857600080fd5b505af1158015612fb7573d6000803e3d6000fd5b6000612908838361510c565b6000612908836001600160a01b038416615170565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052614e17908590615188565b50505050565b600061290b82615340565b801580614eae575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015614e8057600080fd5b505afa158015614e94573d6000803e3d6000fd5b505050506040513d6020811015614eaa57600080fd5b5051155b614ee95760405162461bcd60e51b81526004018080602001828103825260368152602001806156af6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052614f3b908490615188565b505050565b3b151590565b600054610100900460ff1680614f5f5750614f5f6149ed565b80614f6d575060005460ff16155b614fa85760405162461bcd60e51b815260040180806020018281038252602e815260200180615593602e913960400191505060405180910390fd5b600054610100900460ff16158015614a9b576000805460ff1961ff0019909116610100171660011790558015610f10576000805461ff001916905550565b600081848411156150755760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561503a578181015183820152602001615022565b50505050905090810190601f1680156150675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836150cc5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561503a578181015183820152602001615022565b5060008385816150d857fe5b0495945050505050565b6000612908836001600160a01b038416615344565b6000612908836001600160a01b03841661538e565b8154600090821061514e5760405162461bcd60e51b81526004018080602001828103825260228152602001806154916022913960400191505060405180910390fd5b82600001828154811061515d57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b61519a826001600160a01b0316615454565b6151eb576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106152295780518252601f19909201916020918201910161520a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461528b576040519150601f19603f3d011682016040523d82523d6000602084013e615290565b606091505b5091509150816152e7576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115614e175780806020019051602081101561530357600080fd5b5051614e175760405162461bcd60e51b815260040180806020018281038252602a815260200180615659602a913960400191505060405180910390fd5b5490565b60006153508383615170565b6153865750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561290b565b50600061290b565b6000818152600183016020526040812054801561544a57835460001980830191908101906000908790839081106153c157fe5b90600052602060002001549050808760000184815481106153de57fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061540e57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061290b565b600091505061290b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061548857508115155b94935050505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7453656e646572206973206e6f742061206d61696e7461696e65720000000000005a65726f206164647265737320646574656374656400000000000000000000004e6f2065786365737320636f6c6c61746572616c20746f20627579206261636b21416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65d88b35d7427a01a8e16d8a129535b4cf3150edf8d92c0a44dc1eba73bdaf18cb496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7752657175657374207265636f6c6c61746572616c697a65206f766572206c696d6974149427e3d6a7724e94394e9368a9531f3278faec21b78b535463c08a124f585f4d757374207761697420666f7220746865207265667265736820636f6f6c646f776e2073696e6365206c61737420726566726573685361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565644e6f7420656e6f75676820617661696c61626c652065786365737320636f6c6c61746572616c20746f6b656e5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220e18777a6956e8dd3dad67982062d9c29f556c539f63480623000e42840f06b8c64736f6c634300060c0033