ETH Price: $2,295.32 (-2.24%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x61010060187982742023-12-16 11:16:59855 days ago1702725419  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

CreditManagerV3

Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled
Yes with 1000 runs
Other Settings
london EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"_addressProvider","type":"address"},{"internalType":"address","name":"_pool","type":"address"},{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ActiveCreditAccountNotSetException","type":"error"},{"inputs":[],"name":"ActiveCreditAccountOverridenException","type":"error"},{"inputs":[],"name":"AllowanceFailedException","type":"error"},{"inputs":[],"name":"CallerNotAdapterException","type":"error"},{"inputs":[],"name":"CallerNotConfiguratorException","type":"error"},{"inputs":[],"name":"CallerNotCreditFacadeException","type":"error"},{"inputs":[],"name":"CloseAccountWithNonZeroDebtException","type":"error"},{"inputs":[],"name":"CreditAccountDoesNotExistException","type":"error"},{"inputs":[],"name":"DebtToZeroWithActiveQuotasException","type":"error"},{"inputs":[],"name":"DebtUpdatedTwiceInOneBlockException","type":"error"},{"inputs":[],"name":"IncorrectParameterException","type":"error"},{"inputs":[],"name":"InsufficientRemainingFundsException","type":"error"},{"inputs":[],"name":"NotEnoughCollateralException","type":"error"},{"inputs":[],"name":"SafeTransferFromFailed","type":"error"},{"inputs":[],"name":"TargetContractNotAllowedException","type":"error"},{"inputs":[],"name":"TokenAlreadyAddedException","type":"error"},{"inputs":[],"name":"TokenNotAllowedException","type":"error"},{"inputs":[],"name":"TooManyEnabledTokensException","type":"error"},{"inputs":[],"name":"TooManyTokensException","type":"error"},{"inputs":[],"name":"UpdateQuotaOnZeroDebtAccountException","type":"error"},{"inputs":[],"name":"ZeroAddressException","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newConfigurator","type":"address"}],"name":"SetCreditConfigurator","type":"event"},{"inputs":[],"name":"accountFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"adapterToContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addCollateral","outputs":[{"internalType":"uint256","name":"tokensToEnable","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"addToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addressProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approveCreditAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approveToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"enum CollateralCalcTask","name":"task","type":"uint8"}],"name":"calcDebtAndCollateral","outputs":[{"components":[{"internalType":"uint256","name":"debt","type":"uint256"},{"internalType":"uint256","name":"cumulativeIndexNow","type":"uint256"},{"internalType":"uint256","name":"cumulativeIndexLastUpdate","type":"uint256"},{"internalType":"uint128","name":"cumulativeQuotaInterest","type":"uint128"},{"internalType":"uint256","name":"accruedInterest","type":"uint256"},{"internalType":"uint256","name":"accruedFees","type":"uint256"},{"internalType":"uint256","name":"totalDebtUSD","type":"uint256"},{"internalType":"uint256","name":"totalValue","type":"uint256"},{"internalType":"uint256","name":"totalValueUSD","type":"uint256"},{"internalType":"uint256","name":"twvUSD","type":"uint256"},{"internalType":"uint256","name":"enabledTokensMask","type":"uint256"},{"internalType":"uint256","name":"quotedTokensMask","type":"uint256"},{"internalType":"address[]","name":"quotedTokens","type":"address[]"},{"internalType":"address","name":"_poolQuotaKeeper","type":"address"}],"internalType":"struct CollateralDebtData","name":"cdd","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"}],"name":"closeCreditAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenMask","type":"uint256"}],"name":"collateralTokenByMask","outputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint16","name":"liquidationThreshold","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collateralTokensCount","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contractToAdapter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"creditAccountInfo","outputs":[{"internalType":"uint256","name":"debt","type":"uint256"},{"internalType":"uint256","name":"cumulativeIndexLastUpdate","type":"uint256"},{"internalType":"uint128","name":"cumulativeQuotaInterest","type":"uint128"},{"internalType":"uint128","name":"quotaFees","type":"uint128"},{"internalType":"uint256","name":"enabledTokensMask","type":"uint256"},{"internalType":"uint16","name":"flags","type":"uint16"},{"internalType":"uint64","name":"lastDebtUpdate","type":"uint64"},{"internalType":"address","name":"borrower","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"creditAccounts","outputs":[{"internalType":"address[]","name":"result","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creditAccounts","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creditAccountsLen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creditConfigurator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creditFacade","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"}],"name":"enabledTokensMaskOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"name":"externalCall","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fees","outputs":[{"internalType":"uint16","name":"_feeInterest","type":"uint16"},{"internalType":"uint16","name":"_feeLiquidation","type":"uint16"},{"internalType":"uint16","name":"_liquidationDiscount","type":"uint16"},{"internalType":"uint16","name":"_feeLiquidationExpired","type":"uint16"},{"internalType":"uint16","name":"_liquidationDiscountExpired","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"}],"name":"flagsOf","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"uint256","name":"enabledTokensMask","type":"uint256"},{"internalType":"uint256[]","name":"collateralHints","type":"uint256[]"},{"internalType":"uint16","name":"minHealthFactor","type":"uint16"},{"internalType":"bool","name":"useSafePrices","type":"bool"}],"name":"fullCollateralCheck","outputs":[{"internalType":"uint256","name":"enabledTokensMaskAfter","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getActiveCreditAccountOrRevert","outputs":[{"internalType":"address","name":"creditAccount","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"}],"name":"getBorrowerOrRevert","outputs":[{"internalType":"address","name":"borrower","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenMask","type":"uint256"}],"name":"getTokenByMask","outputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getTokenMaskOrRevert","outputs":[{"internalType":"uint256","name":"tokenMask","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"uint16","name":"minHealthFactor","type":"uint16"}],"name":"isLiquidatable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"components":[{"internalType":"uint256","name":"debt","type":"uint256"},{"internalType":"uint256","name":"cumulativeIndexNow","type":"uint256"},{"internalType":"uint256","name":"cumulativeIndexLastUpdate","type":"uint256"},{"internalType":"uint128","name":"cumulativeQuotaInterest","type":"uint128"},{"internalType":"uint256","name":"accruedInterest","type":"uint256"},{"internalType":"uint256","name":"accruedFees","type":"uint256"},{"internalType":"uint256","name":"totalDebtUSD","type":"uint256"},{"internalType":"uint256","name":"totalValue","type":"uint256"},{"internalType":"uint256","name":"totalValueUSD","type":"uint256"},{"internalType":"uint256","name":"twvUSD","type":"uint256"},{"internalType":"uint256","name":"enabledTokensMask","type":"uint256"},{"internalType":"uint256","name":"quotedTokensMask","type":"uint256"},{"internalType":"address[]","name":"quotedTokens","type":"address[]"},{"internalType":"address","name":"_poolQuotaKeeper","type":"address"}],"internalType":"struct CollateralDebtData","name":"collateralDebtData","type":"tuple"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"isExpired","type":"bool"}],"name":"liquidateCreditAccount","outputs":[{"internalType":"uint256","name":"remainingFunds","type":"uint256"},{"internalType":"uint256","name":"loss","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"liquidationThresholds","outputs":[{"internalType":"uint16","name":"lt","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"ltParams","outputs":[{"internalType":"uint16","name":"ltInitial","type":"uint16"},{"internalType":"uint16","name":"ltFinal","type":"uint16"},{"internalType":"uint40","name":"timestampRampStart","type":"uint40"},{"internalType":"uint24","name":"rampDuration","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"enabledTokensMask","type":"uint256"},{"internalType":"enum ManageDebtAction","name":"action","type":"uint8"}],"name":"manageDebt","outputs":[{"internalType":"uint256","name":"newDebt","type":"uint256"},{"internalType":"uint256","name":"tokensToEnable","type":"uint256"},{"internalType":"uint256","name":"tokensToDisable","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxEnabledTokens","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"}],"name":"openCreditAccount","outputs":[{"internalType":"address","name":"creditAccount","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolQuotaKeeper","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quotedTokensMask","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"components":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"address","name":"token","type":"address"}],"internalType":"struct RevocationPair[]","name":"revocations","type":"tuple[]"}],"name":"revokeAdapterAllowances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"}],"name":"setActiveCreditAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint16","name":"ltInitial","type":"uint16"},{"internalType":"uint16","name":"ltFinal","type":"uint16"},{"internalType":"uint40","name":"timestampRampStart","type":"uint40"},{"internalType":"uint24","name":"rampDuration","type":"uint24"}],"name":"setCollateralTokenData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adapter","type":"address"},{"internalType":"address","name":"targetContract","type":"address"}],"name":"setContractAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_creditConfigurator","type":"address"}],"name":"setCreditConfigurator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_creditFacade","type":"address"}],"name":"setCreditFacade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_feeInterest","type":"uint16"},{"internalType":"uint16","name":"_feeLiquidation","type":"uint16"},{"internalType":"uint16","name":"_liquidationDiscount","type":"uint16"},{"internalType":"uint16","name":"_feeLiquidationExpired","type":"uint16"},{"internalType":"uint16","name":"_liquidationDiscountExpired","type":"uint16"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"uint16","name":"flag","type":"uint16"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFlagFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_maxEnabledTokens","type":"uint8"}],"name":"setMaxEnabledTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceOracle","type":"address"}],"name":"setPriceOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_quotedTokensMask","type":"uint256"}],"name":"setQuotedMask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"int96","name":"quotaChange","type":"int96"},{"internalType":"uint96","name":"minQuota","type":"uint96"},{"internalType":"uint96","name":"maxQuota","type":"uint96"}],"name":"updateQuota","outputs":[{"internalType":"uint256","name":"tokensToEnable","type":"uint256"},{"internalType":"uint256","name":"tokensToDisable","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creditAccount","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawCollateral","outputs":[{"internalType":"uint256","name":"tokensToDisable","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
6101006040526000805460ff1916600117905560028054600160a21b60ff60a01b199091161790556003805462010000600160b01b031916620100001790553480156200004b57600080fd5b5060405162005710380380620057108339810160408190526200006e9162000381565b6001600160a01b03808416608052821660e081905260408051632495a59960e01b81529051632495a599916004808201926020929091908290030181865afa158015620000bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e591906200047b565b6001600160a01b031660c0819052620000fe9062000255565b608051604051632bdad0e360e11b81526b50524943455f4f5241434c4560a01b600482015261012c60248201526001600160a01b03909116906357b5a1c690604401602060405180830381865afa1580156200015e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018491906200047b565b600280546001600160a01b0319166001600160a01b03928316179055608051604051632bdad0e360e11b81526e4143434f554e545f464143544f525960881b6004820152600060248201529116906357b5a1c690604401602060405180830381865afa158015620001f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021f91906200047b565b6001600160a01b031660a052600180546001600160a01b03191633179055600c6200024b82826200052f565b50505050620005fb565b6001600160a01b038116600090815260066020526040902054156200028d57604051632e5a5c7760e01b815260040160405180910390fd5b60025460ff600160a81b909104811610620002bb57604051633f02862960e11b815260040160405180910390fd5b600280546001600160a01b039092166000818152600660209081526040808320600160ff600160a81b98899004811682901b928390559185526005909352922080547fffffff0000000000ffffffff00000000000000000000000000000000000000001690931764ffffffffff60c01b17909255825484810482169092011690920260ff60a81b19909216919091179055565b80516001600160a01b03811681146200036657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156200039757600080fd5b620003a2846200034e565b92506020620003b38186016200034e565b60408601519093506001600160401b0380821115620003d157600080fd5b818701915087601f830112620003e657600080fd5b815181811115620003fb57620003fb6200036b565b604051601f8201601f19908116603f011681019083821181831017156200042657620004266200036b565b816040528281528a868487010111156200043f57600080fd5b600093505b8284101562000463578484018601518185018701529285019262000444565b60008684830101528096505050505050509250925092565b6000602082840312156200048e57600080fd5b62000499826200034e565b9392505050565b600181811c90821680620004b557607f821691505b602082108103620004d657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200052a57600081815260208120601f850160051c81016020861015620005055750805b601f850160051c820191505b81811015620005265782815560010162000511565b5050505b505050565b81516001600160401b038111156200054b576200054b6200036b565b62000563816200055c8454620004a0565b84620004dc565b602080601f8311600181146200059b5760008415620005825750858301515b600019600386901b1c1916600185901b17855562000526565b600085815260208120601f198616915b82811015620005cc57888601518255948401946001909101908401620005ab565b5085821015620005eb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051615048620006c8600039600081816103dd0152818161127601528181611c6b015281816120e00152818161264401528181612be90152612fb001526000818161074501528181610d67015281816112550152818161143f01528181611df8015281816120bf015281816121860152818161287401528181612914015281816129a5015281816130bc0152818161347001528181613531015261389e01526000818161071e0152818161153101526119af0152600061042f01526150486000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c8063741f3e3c116101d3578063d5c2f48611610104578063f206d32a116100a2578063f9f0ca661161007c578063f9f0ca661461099f578063fa30b30f146109cb578063fdd57645146109de578063ff68754314610a0757600080fd5b8063f206d32a14610966578063f30ba49914610979578063f9aa028a1461098c57600080fd5b8063e0f83824116100de578063e0f838241461092f578063e2f1490f14610938578063eb23d33e1461094b578063f13d0fc61461095e57600080fd5b8063d5c2f486146108f6578063dc2b21c114610909578063e09357a41461091c57600080fd5b806386dfa53611610171578063be8da14b1161014b578063be8da14b146108b5578063c53afb1e146108bd578063c544cf7d146108d0578063d48bfca7146108e357600080fd5b806386dfa536146108215780639af1d35a14610834578063acb0e845146108a257600080fd5b806380213c74116101ad57806380213c74146107a8578063830aa745146107bb5780638340e24d146107ce578063845104de146107f157600080fd5b8063741f3e3c146107675780637687f6701461076f578063783274381461078257600080fd5b806334878f54116102ad57806352c5fe111161024b5780635a6f45de116102255780635a6f45de146106de578063604ca15f146106f1578063687cd9c1146107195780636f307dc31461074057600080fd5b806352c5fe111461068d578063530e784f146106c257806354fd4d50146106d557600080fd5b8063432017e811610287578063432017e81461062557806343fe7bbe14610653578063458936f5146106665780634fc0e3a81461067a57600080fd5b806334878f541461051f5780633c5bc3b2146105275780633d7e5dc41461060457600080fd5b80632954018c1161031a5780632f232138116102f45780632f232138146104975780632f7a1881146104aa5780633031b01a146104c25780633201de4c146104d557600080fd5b80632954018c1461042a5780632c521c06146104515780632c9db6f11461047757600080fd5b806312ef080d1161034b57806312ef080d146103c357806316f0115b146103d85780632630c12f1461041757600080fd5b806306fdde031461037257806309c5eabe146103905780630d334ca6146103a3575b600080fd5b61037a610a30565b6040516103879190614163565b60405180910390f35b61037a61039e3660046141b8565b610abe565b6103b66103b136600461421a565b610b0e565b604051610387919061429b565b6103d66103d1366004614377565b610c46565b005b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610387565b6002546103ff906001600160a01b031681565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b60025461046590600160a01b900460ff1681565b60405160ff9091168152602001610387565b61048a6104853660046143c8565b610c82565b60405161038791906143ea565b6103d66104a536600461440f565b610d5d565b6000546103ff9061010090046001600160a01b031681565b6103d66104d036600461448e565b610e82565b6104e86104e3366004614516565b610f6b565b6040805161ffff958616815294909316602085015264ffffffffff9091169183019190915262ffffff166060820152608001610387565b6103ff610fff565b6105a6610535366004614516565b60096020526000908152604090208054600182015460028301546003840154600490940154929391926001600160801b0380831693600160801b90930416919061ffff81169062010000810467ffffffffffffffff16906a010000000000000000000090046001600160a01b031688565b6040805198895260208901979097526001600160801b0395861696880196909652939092166060860152608085015261ffff1660a084015267ffffffffffffffff1660c08301526001600160a01b031660e082015261010001610387565b61061761061236600461454c565b61104f565b604051908152602001610387565b6106386106333660046145fe565b611123565b60408051938452602084019290925290820152606001610387565b6103ff610661366004614516565b6114d2565b60025461046590600160a81b900460ff1681565b6103ff61068836600461464c565b6115f2565b6106a061069b36600461464c565b611606565b604080516001600160a01b03909316835261ffff909116602083015201610387565b6103d66106d0366004614516565b61161d565b61061761012c81565b6106176106ec366004614665565b611654565b6107046106ff3660046146c7565b6116c9565b60408051928352602083019190915201610387565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b61048a6118ee565b6103d661077d366004614516565b6118ff565b610795610790366004614516565b611a49565b60405161ffff9091168152602001610387565b6103d66107b6366004614731565b611a6a565b6106176107c9366004614377565b611b62565b6107e16107dc36600461475f565b611bb6565b6040519015158152602001610387565b6107956107ff366004614516565b6001600160a01b031660009081526009602052604090206004015461ffff1690565b6103d661082f36600461464c565b611c0f565b61086d60025460035461ffff600160c01b8304811693600160d01b8404821693600160e01b8104831693600160f01b9091048316921690565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a001610387565b6103d66108b0366004614516565b611c20565b6103ff611c67565b6103ff6108cb366004614516565b611ceb565b6103d66108de366004614794565b611d53565b6103d66108f1366004614516565b611de0565b610617610904366004614516565b611df4565b6103d66109173660046147dd565b611e72565b6103d661092a366004614516565b611eb5565b61061760045481565b610704610946366004614800565b611f82565b61037a610959366004614870565b61226a565b6106176122ac565b6103d66109743660046148d5565b6122b8565b6103d6610987366004614516565b612395565b6001546103ff906001600160a01b031681565b6106176109ad366004614516565b6001600160a01b031660009081526009602052604090206003015490565b6103d66109d936600461493a565b6123f4565b6103ff6109ec366004614516565b6008602052600090815260409020546001600160a01b031681565b6103ff610a15366004614516565b6007602052600090815260409020546001600160a01b031681565b600c8054610a3d90614966565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6990614966565b8015610ab65780601f10610a8b57610100808354040283529160200191610ab6565b820191906000526020600020905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b6060610ac861242b565b6000805460ff19166002178155610add6124a1565b90506000610ae9610fff565b9050610af7818387876124f1565b925050506000805460ff1916600117905592915050565b610b92604051806101c0016040528060008152602001600081526020016000815260200160006001600160801b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016060815260200160006001600160a01b031681525090565b6002826004811115610ba657610ba66149a0565b03610bdd576040517f47fbaa9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006004836004811115610bf357610bf36149a0565b03610c0057506003915060015b610c0984611ceb565b506060610c3d85610c32876001600160a01b031660009081526009602052604090206003015490565b83612710888761256b565b95945050505050565b610c4e61242b565b6000805460ff19166002179055610c636129de565b610c6f84848484612a27565b50506000805460ff191660011790555050565b60606000610c90600a612a4c565b9050600081610c9f85876149cc565b11610caa5783610cc3565b818511610cc057610cbb85836149df565b610cc3565b60005b90508067ffffffffffffffff811115610cde57610cde6149f2565b604051908082528060200260200182016040528015610d07578160200160208202803683370190505b50925060005b81811015610d5457610d22600a878301612a56565b848281518110610d3457610d34614a08565b6001600160a01b0390921660209283029190910190910152600101610d0d565b50505092915050565b610d65612a69565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603610dbd576002805461ffff60b01b1916600160b01b61ffff871602179055610e7b565b6000610dc886611df4565b600090815260056020526040902080547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b61ffff8881169190910261ffff60b01b191691909117600160b01b918716919091021777ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b64ffffffffff8616027cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1617600160e81b62ffffff851602179055505b5050505050565b610e8a61242b565b6000805460ff19166002179055610e9f6129de565b8060005b81811015610f57576000848483818110610ebf57610ebf614a08565b610ed59260206040909202019081019150614516565b90506000858584818110610eeb57610eeb614a08565b9050604002016020016020810190610f039190614516565b90506001600160a01b0382161580610f2257506001600160a01b038116155b15610f4057604051635919af9760e11b815260040160405180910390fd5b610f4d8782846000612a27565b5050600101610ea3565b50506000805460ff19166001179055505050565b6000806000806000610f7c86611df4565b600090815260056020908152604091829020825160a08101845290546001600160a01b0381168252600160a01b810461ffff908116938301849052600160b01b820416938201849052600160c01b810464ffffffffff1660608301819052600160e81b90910462ffffff1660809092018290529199929850909650945092505050565b6003546201000090046001600160a01b0316600019810161104c576040517f5cd6b24400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b90565b600061105961242b565b6000805460ff1916600217905561106e6129de565b60006110b488888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a92506002915089905061256b565b90508060c0015181610120015110156110f9576040517f532e7bb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806101400151915061110b8883612aad565b506000805460ff191660011790559695505050505050565b600080600061113061242b565b6000805460ff191660021790556111456129de565b6001600160a01b03871660009081526009602052604090206004810154436201000090910467ffffffffffffffff1603611192576040516345a1354d60e11b815260040160405180910390fd5b866000036111a957549250600091508190506114b8565b606060006111df8a8984612710858c60018111156111c9576111c96149a0565b146111d55760016111d8565b60005b600061256b565b90506000808860018111156111f6576111f66149a0565b0361122b576112138a836000015184602001518560400151612b1e565b90975090506112228a8c612baa565b60019550611483565b600061123961104c84612c49565b9050808b1061124657809a505b61129b6001600160a01b038d167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008e612c6c565b600080828d036112d0575050602083015160a08401516002870180546001600160801b0316905560009950909250889061133a565b61130f8d86516020880151604089015160608a015160028d8101549054600160801b9091046001600160801b031690600160c01b900461ffff16612cf5565b60028c0180546001600160801b03928316600160801b029216919091179055929c5090955090925090505b61018085015151156113eb5789600003611380576040517f51bb745d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846101a001516001600160a01b0316630db1b8ca8f8761018001516040518363ffffffff1660e01b81526004016113b8929190614a1e565b600060405180830381600087803b1580156113d257600080fd5b505af11580156113e6573d6000803e3d6000fd5b505050505b8451611404906113fc908c906149df565b826000612f73565b61140f826001614a40565b8760020160006101000a8154816001600160801b0302191690836001600160801b0316021790555060016114758f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661301990919063ffffffff16565b1161147f57600197505b5050505b86845560048401805469ffffffffffffffff00001916620100004367ffffffffffffffff160217905560019093019290925550505b6000805460ff191660011790559196909550909350915050565b6000816114de81613073565b6114e661242b565b6000805460ff191660021790556114fb6129de565b6040517f21d1845600000000000000000000000000000000000000000000000000000000815260006004820181905260248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906321d18456906044016020604051808303816000875af1158015611582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a69190614a60565b6001600160a01b0381166000908152600960205260409020605085901b6004820155600160028201559092506115dd600a8461309a565b50506000805460ff1916600117905550919050565b60006115ff8260006130af565b5092915050565b6000806116148360016130af565b91509150915091565b611625612a69565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600061165e61242b565b6000805460ff191660021790556116736129de565b600061167e85611df4565b90506116956001600160a01b038716868587612c6c565b60016116aa6001600160a01b03871688613019565b116116b3578091505b506000805460ff19166001179055949350505050565b6000806116d461242b565b6000805460ff191660021790556116e96129de565b6001600160a01b0387166000908152600960205260408120805490910361173c576040517f2032806600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008061174a611c67565b6040517f604ca15f0000000000000000000000000000000000000000000000000000000081526001600160a01b038e811660048301528d81166024830152600b8d900b60448301526bffffffffffffffffffffffff808d1660648401528b166084830152919091169063604ca15f9060a4016080604051808303816000875af11580156117db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ff9190614a92565b9350935093509350811561181d576118168b611df4565b965061182f565b801561182f5761182c8b611df4565b95505b60028501805485919060009061184f9084906001600160801b0316614a40565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550826001600160801b03166000146118cf57828560020160108282829054906101000a90046001600160801b03166118aa9190614a40565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b50506000805460ff191660011790555092989197509095505050505050565b60606118fa600a613177565b905090565b61190761242b565b6000805460ff1916600217905561191c6129de565b6001600160a01b038116600090815260096020526040902080541561196d576040517f3216f22100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600482810182905560038301919091556040517f89b77b3e0000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916389b77b3e916119f1918691016001600160a01b0391909116815260200190565b600060405180830381600087803b158015611a0b57600080fd5b505af1158015611a1f573d6000803e3d6000fd5b50505050611a3782600a61318490919063ffffffff16565b50506000805460ff1916600117905550565b600080611a5583611df4565b9050611a628160016130af565b949350505050565b611a72612a69565b6001600160a01b038116301480611a9157506001600160a01b03821630145b15611ac8576040517ffc1a554300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821615611b13576001600160a01b038281166000908152600760205260409020805473ffffffffffffffffffffffffffffffffffffffff19169183169190911790555b6001600160a01b03811615611b5e576001600160a01b038181166000908152600860205260409020805473ffffffffffffffffffffffffffffffffffffffff19169184169190911790555b5050565b6000611b6c61242b565b6000805460ff19166002179055611b816129de565b611b8a83611df4565b9050611ba16001600160a01b038416868685613199565b6000805460ff19166001179055949350505050565b6000611bc183611ceb565b5060606000611bf785611bec876001600160a01b031660009081526009602052604090206003015490565b84876002600061256b565b60c08101516101209091015110925050505b92915050565b611c17612a69565b60011916600455565b611c28612a69565b600080546001600160a01b03909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be8da14b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614a60565b6001600160a01b038082166000908152600960205260409020600401546a010000000000000000000090041680611d4e576040517f309d150100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b611d5b61242b565b6000805460ff19166002179055611d706129de565b8015611dac576001600160a01b0383166000908152600960205260409020600401805461ffff8481169082161761ffff19909116179055611a37565b6001600160a01b0383166000908152600960205260409020600401805461ffff841982161661ffff19909116179055611a37565b611de8612a69565b611df181613233565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611e3757506001919050565b506001600160a01b03811660009081526006602052604081205490819003611d4e5760405163700ca0af60e01b815260040160405180910390fd5b611e7a612a69565b6002805460ff909216600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b611ebd61242b565b6000805460ff19166002179055611ed26129de565b6003546201000090046001600160a01b0316600114801590611efe57506001600160a01b038116600114155b15611f35576040517f44a8a06500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001600160a01b0390921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790556000805460ff19166001179055565b600080611f8d61242b565b6000805460ff19166002179055611fa26129de565b600080600061200786611fc257600254600160d01b900461ffff16611fd1565b600254600160f01b900461ffff165b87611fe957600254600160e01b900461ffff16611ff1565b60035461ffff165b61104c80611ffe8d614bd5565b9392919061338c565b96509194509250905061201e610180890189614cb7565b1590506120aa576120376101c089016101a08a01614516565b6001600160a01b031663fcde5ddc8a6120546101808c018c614cb7565b600089116040518563ffffffff1660e01b81526004016120779493929190614d01565b600060405180830381600087803b15801561209157600080fd5b505af11580156120a5573d6000803e3d6000fd5b505050505b8215612105576121056001600160a01b038a167f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000086612c6c565b61211188358286612f73565b60006121228a8a6101400135613460565b909650905082861015612161576040517f67016e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061216f8488038361356c565b905080156121b2576121ac6001600160a01b038c167f00000000000000000000000000000000000000000000000000000000000000008b84612c6c565b80870396505b506001600160a01b038a1660009081526009602052604090206004810154436201000090910467ffffffffffffffff1603612200576040516345a1354d60e11b815260040160405180910390fd5b6000815560048101805469ffffffffffffffff00001916620100004367ffffffffffffffff160217905561223e6101408b01356101608c0135191690565b6003820155600160029091018190556000805460ff191690911790555093989297509195505050505050565b606061227461242b565b6000805460ff191660021790556122896129de565b612295858585856124f1565b90506000805460ff19166001179055949350505050565b60006118fa600a612a4c565b6122c0612a69565b600280547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b61ffff978816027fffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff1617600160d01b95871695909502949094177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b938616939093027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160f01b91851691909102179091556003805461ffff191691909216179055565b61239d612a69565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517fd87efcee33ed285df83ed2ffd66f67c15e0ecf17eb1f1705adae3ae2f1778da090600090a250565b6123fc61242b565b6000805460ff191660021781556124116124a1565b9050600061241d610fff565b9050610c6f81858486612a27565b60005460ff166001190161249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640160405180910390fd5b565b336000908152600760205260409020546001600160a01b03168061104c576040517f5535a8f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051631cff79cd60e01b81526060906001600160a01b03861690631cff79cd9061252490879087908790600401614d69565b6000604051808303816000875af1158015612543573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c3d9190810190614da8565b6125ef604051806101c0016040528060008152602001600081526020016000815260200160006001600160801b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016060815260200160006001600160a01b031681525090565b6001600160a01b038088166000908152600960209081526040918290208054855260018101548584015282517ffaaba9e2000000000000000000000000000000000000000000000000000000008152925190937f0000000000000000000000000000000000000000000000000000000000000000169263faaba9e29260048083019391928290030181865afa15801561268c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b09190614e3c565b602083015260008460048111156126c9576126c96149a0565b036126d457506129d4565b61014082018790526126e4611c67565b6001600160a01b03166101a08301819052606090612707908a908a908a90613582565b6101608701526001600160801b039182166060870152610180860192909252600284015491925061273b9160019116614e55565b8360600181815161274c9190614a40565b6001600160801b031690525082516040840151602085015161276f9291906137d9565b608084018190526002546127109161279291600160c01b900461ffff1690614e75565b61279c9190614ea2565b60028301546127bb9190600160801b90046001600160801b03166149cc565b60a084015260608301516080840180516001600160801b03909216916127e29083906149cc565b90525060025460608401516127109161280791600160c01b90910461ffff1690614eb6565b6128119190614ed9565b6001600160801b03168360a00181815161282b91906149cc565b9052506001856004811115612842576128426149a0565b0361284e5750506129d4565b6002546001600160a01b0316600061286585612c49565b905080156128a25761289882827f000000000000000000000000000000000000000000000000000000000000000061380b565b60c08601526128c4565b60028760048111156128b6576128b66149a0565b036128c457505050506129d4565b50600060028760048111156128db576128db6149a0565b146128e85760001961290a565b60c0850151612710906129009061ffff8b1690614e75565b61290a9190614ea2565b905060006129588c7f0000000000000000000000000000000000000000000000000000000000000000848d886130af8d6129465761380b61294a565b61389a5b8d969594939291908b61396f565b610120890191909152610100880191909152905080198b16610140870152600288600481111561298a5761298a6149a0565b036129995750505050506129d4565b6129c9838761010001517f0000000000000000000000000000000000000000000000000000000000000000613a37565b60e087015250505050505b9695505050505050565b60005461010090046001600160a01b0316331461249f576040517f0c1d6a3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a3083611df4565b50612a466001600160a01b038516848484613a89565b50505050565b6000611c09825490565b6000612a628383613ab9565b9392505050565b6001546001600160a01b0316331461249f576040517f61081c1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254600160a01b900460ff16612ac76001198316613ae3565b1115612aff576040517f30b5495c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03909116600090815260096020526040902060030155565b60008084600003612b33575084905082612ba1565b612b3d86866149cc565b9150612b4d86633b9aca00614e75565b8386612b5d87633b9aca00614e75565b612b679190614e75565b612b719190614ea2565b612b7b91906149cc565b633b9aca00612b8a8487614e75565b612b949190614e75565b612b9e9190614ea2565b90505b94509492505050565b6040517fbf28068b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0382811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063bf28068b90604401600060405180830381600087803b158015612c2d57600080fd5b505af1158015612c41573d6000803e3d6000fd5b505050505050565b60a08101516080820151825160009291612c62916149cc565b611c0991906149cc565b6040517fd1660f990000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283811660248301526044820183905285169063d1660f9990606401600060405180830381600087803b158015612cd757600080fd5b505af1158015612ceb573d6000803e3d6000fd5b5050505050505050565b6000808080808b6001600160801b03881615612d3d57876001600160801b0316811115612d34576001600160801b038816935060009150839003612d3d565b92505081860360005b6001600160801b03891615801590612d5457508015155b15612e31576000612710612d6c61ffff8a168c614eb6565b612d769190614ed9565b6001600160801b03169050808a6001600160801b0316612d9691906149cc565b8210612dd057612daf816001600160801b038c166149cc565b612db990836149df565b9150612dc581866149cc565b945060009350612e2b565b6000612dde89612710614eff565b61ffff16612dee61271085614e75565b612df89190614ea2565b9050612e0481846149df565b612e0e90876149cc565b955060009250612e27816001600160801b038d166149df565b9450505b50612e35565b8892505b8015612f53576000612e488d8c8e6137d9565b90506000612710612e5d61ffff8b1684614e75565b612e679190614ea2565b9050612e7381836149cc565b8310612ea357612e8381836149cc565b612e8d90846149df565b9250612e9981876149cc565b95508c9650612f4c565b6000612eb18a612710614eff565b61ffff16612ec161271086614e75565b612ecb9190614ea2565b9050612ed781856149df565b612ee190886149cc565b9650600093508e8d612ef783633b9aca00614e75565b612f019190614e75565b612f0b9190614ea2565b612f198f633b9aca00614e75565b612f2391906149df565b8d8f633b9aca00612f349190614e75565b612f3e9190614e75565b612f489190614ea2565b9750505b5050612f57565b8994505b612f61818d6149df565b95505097509750975097509792505050565b6040517fca9505e40000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ca9505e490606401600060405180830381600087803b158015612ffc57600080fd5b505af1158015613010573d6000803e3d6000fd5b50505050505050565b7f70a08231000000000000000000000000000000000000000000000000000000006000818152600483905290602082602481875afa600051925060203d108115171561306b576040513d6000823e3d81fd5b505092915050565b6001600160a01b038116611df157604051635919af9760e11b815260040160405180910390fd5b6000612a62836001600160a01b038416613afd565b600080600184036130f8577f0000000000000000000000000000000000000000000000000000000000000000915082156130f35750600254600160b01b900461ffff165b613170565b600084815260056020526040902080546001600160a01b0381169350836131325760405163700ca0af60e01b815260040160405180910390fd5b841561316d5761ffff60a082901c81169060b083901c1664ffffffffff60c084901c1660e884901c61316684848484613b4c565b9650505050505b50505b9250929050565b60606000612a6283613ba3565b6000612a62836001600160a01b038416613bff565b60006323b872dd60e01b905060006040518281528560048201528460248201528360448201526020600060648360008b5af191505080156131f7573d80156131ed57600160005114601f3d111691506131f5565b6000873b1191505b505b80612c41576040517ff405907100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b191690565b6001600160a01b03811660009081526006602052604090205415613283576040517f2e5a5c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025460ff600160a81b9091048116106132c9576040517f7e050c5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280546001600160a01b039092166000818152600660209081526040808320600160ff600160a81b98899004811682901b928390559185526005909352922080547fffffff0000000000ffffffff0000000000000000000000000000000000000000169093177cffffffffff0000000000000000000000000000000000000000000000001790925582548481048216909201169092027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff909216919091179055565b60008060008061339b89612c49565b9350600089608001518a600001516133b391906149cc565b60e08b015190915060006127106133ce61ffff8c1684614e75565b6133d89190614ea2565b90506127106133eb61ffff8d1684614e75565b6133f59190614ea2565b6133ff90886149cc565b96506000613410888b63ffffffff16565b905080821115613424578082039650613436565b50806134338163ffffffff8b16565b97505b83881061344757838803955061344d565b87840394505b8097505050505095509550955095915050565b6000806134966001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685613019565b9150819050600119831660008190036134af5750613170565b6002546001600160a01b031660005b82156135245760006134cf84614f1a565b841693841893905060006134e2826115f2565b905060006134f96001600160a01b0383168b613019565b9050600181111561351c5761350f85828461380b565b61351990856149cc565b93505b5050506134be565b80156135625761355582827f0000000000000000000000000000000000000000000000000000000000000000613a37565b61355f90866149cc565b94505b5050509250929050565b600081831061357b5781612a62565b5090919050565b60045460609060009082908681168084036135a15750600092506137ce565b6000806135ad83613ae3565b90508067ffffffffffffffff8111156135c8576135c86149f2565b6040519080825280602002602001820160405280156135f1578160200160208202803683370190505b5096508067ffffffffffffffff81111561360d5761360d6149f2565b604051908082528060200260200182016040528015613636578160200160208202803683370190505b5089519095506000908c5b85156137c757600082841015613687578c5160018501948e91811061366857613668614a08565b602002602001015190508087166000036136825750613641565b613690565b86600003871690505b60008061369e8360016130af565b915091506000808f6001600160a01b031663f3ef181387866040518363ffffffff1660e01b81526004016136e89291906001600160a01b0392831681529116602082015260400190565b6040805180830381865afa158015613704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137289190614f52565b91506bffffffffffffffffffffffff169150838f8b8151811061374d5761374d614a08565b6001600160a01b03909216602092830291909101909101526bffffffffffffffffffffffff8216606084901b6dffff00000000000000000000000016178d8b8151811061379c5761379c614a08565b60209081029190910101529c8d019c6001909901986137bb8b86191690565b9a505050505050613641565b5050505050505b945094509450949050565b6000836000036137eb57506000612a62565b83836137f78483614e75565b6138019190614ea2565b611a6291906149df565b6040517ff9a65030000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0382811660248301526000919085169063f9a65030906044015b602060405180830381865afa158015613876573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a629190614e3c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614613964576040517f553552fe000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03838116602483015285169063553552fe90604401602060405180830381865afa15801561393b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395f9190614e3c565b611a62565b611a6284848461380b565b60008060008b6101800151516000146139d257600061399f856b033b2e3c9fd0803ce80000008d8963ffffffff16565b90506139b58d6101800151898e848e8b8b613cf2565b90945092508983106139cb575060009050613a28565b828a039950505b60006139f18d61016001518e610140015161322e90919063ffffffff16565b9050600080613a058e8d8d8b8d888d613ddf565b95509092509050613a1682876149cc565b9550613a2281866149cc565b94505050505b99509950999650505050505050565b6040517f7afb0104000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03828116602483015260009190851690637afb010490604401613859565b613a97848484846000613ead565b612a4657613aaa84848460006001613ead565b50610e7b848484846001613ead565b6000826000018281548110613ad057613ad0614a08565b9060005260206000200154905092915050565b60005b8115611d4e57600019820190911690600101613ae6565b6000818152600183016020526040812054613b4457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611c09565b506000611c09565b600080613b5e62ffffff841685614f81565b90508364ffffffffff164211613b775785915050611a62565b8064ffffffffff16421015613b9a57613b9286868684613fff565b915050611a62565b84915050611a62565b606081600001805480602002602001604051908101604052809291908181526020018280548015613bf357602002820191906000526020600020905b815481526020019060010190808311613bdf575b50505050509050919050565b60008181526001830160205260408120548015613ce8576000613c236001836149df565b8554909150600090613c37906001906149df565b9050818114613c9c576000866000018281548110613c5757613c57614a08565b9060005260206000200154905080876000018481548110613c7a57613c7a614a08565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613cad57613cad614f9f565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611c09565b6000915050611c09565b86516000908190815b81811015613dd05760008b8281518110613d1757613d17614a08565b60200260200101519050600080613d5a8d8581518110613d3957613d39614a08565b60200260200101516bffffffffffffffffffffffff81169160609190911c90565b909250905060006b033b2e3c9fd0803ce8000000613d788d85614e75565b613d829190614ea2565b9050600080613d958f8d8d898888614066565b509092509050613da5828b6149cc565b9950613db1818a6149cc565b98505050505050878410613dc757505050613dd3565b50600101613cfb565b50505b97509795505050505050565b8451600090819081908a825b8715613e9d57600083821015613e32578b8281518110613e0d57613e0d614a08565b60200260200101519050816001019150808916600003613e2d5750613deb565b613e40565b613e3b89614f1a565b891690505b6000806000613e52868f8f878f6140d5565b94509092509050613e63828b6149cc565b9950613e6f818a6149cc565b985050508015613e8c578d8710613e87575050613e9d565b613e91565b948117945b50199790971696613deb565b5050509750975097945050505050565b604080516001600160a01b038581166024830152604480830186905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001790529151631cff79cd60e01b8152600092881691631cff79cd91613f48918991600401614fb5565b6000604051808303816000875af1925050508015613f8857506040513d6000823e601f3d908101601f19168201604052613f859190810190614da8565b60015b15613fbb5780511580613faa575080806020019051810190613faa9190614fd7565b15613fb9576001915050610c3d565b505b8115613ff3576040517f2f10a7f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600095945050505050565b600061400b8383614ff4565b64ffffffffff168364ffffffffff164261402591906149df565b6140339061ffff8716614e75565b6140444264ffffffffff86166149df565b6140529061ffff8916614e75565b61405c91906149cc565b610c3d9190614ea2565b600080808061407e6001600160a01b0388168b613019565b905060018111156140c85761409b8860018303898c63ffffffff16565b93506140c16127106140b161ffff891687614e75565b6140bb9190614ea2565b8661356c565b9250600191505b5096509650969350505050565b60008060008060006140ec8760018a63ffffffff16565b915091506141008a8a888585600019614066565b919c909b50909950975050505050505050565b60005b8381101561412e578181015183820152602001614116565b50506000910152565b6000815180845261414f816020860160208601614113565b601f01601f19169290920160200192915050565b602081526000612a626020830184614137565b60008083601f84011261418857600080fd5b50813567ffffffffffffffff8111156141a057600080fd5b60208301915083602082850101111561317057600080fd5b600080602083850312156141cb57600080fd5b823567ffffffffffffffff8111156141e257600080fd5b6141ee85828601614176565b90969095509350505050565b6001600160a01b0381168114611df157600080fd5b8035611d4e816141fa565b6000806040838503121561422d57600080fd5b8235614238816141fa565b915060208301356005811061424c57600080fd5b809150509250929050565b600081518084526020808501945080840160005b838110156142905781516001600160a01b03168752958201959082019060010161426b565b509495945050505050565b60208152815160208201526020820151604082015260408201516060820152600060608301516142d660808401826001600160801b03169052565b50608083015160a083015260a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506101208181850152808501519150506101408181850152808501519150506101608181850152808501519150506101808181850152808501519150506101c06101a0818186015261435e6101e0860184614257565b9501516001600160a01b03169301929092525090919050565b6000806000806080858703121561438d57600080fd5b8435614398816141fa565b935060208501356143a8816141fa565b925060408501356143b8816141fa565b9396929550929360600135925050565b600080604083850312156143db57600080fd5b50508035926020909101359150565b602081526000612a626020830184614257565b803561ffff81168114611d4e57600080fd5b600080600080600060a0868803121561442757600080fd5b8535614432816141fa565b9450614440602087016143fd565b935061444e604087016143fd565b9250606086013564ffffffffff8116811461446857600080fd5b9150608086013562ffffff8116811461448057600080fd5b809150509295509295909350565b6000806000604084860312156144a357600080fd5b83356144ae816141fa565b9250602084013567ffffffffffffffff808211156144cb57600080fd5b818601915086601f8301126144df57600080fd5b8135818111156144ee57600080fd5b8760208260061b850101111561450357600080fd5b6020830194508093505050509250925092565b60006020828403121561452857600080fd5b8135612a62816141fa565b8015158114611df157600080fd5b8035611d4e81614533565b60008060008060008060a0878903121561456557600080fd5b8635614570816141fa565b955060208701359450604087013567ffffffffffffffff8082111561459457600080fd5b818901915089601f8301126145a857600080fd5b8135818111156145b757600080fd5b8a60208260051b85010111156145cc57600080fd5b6020830196508095505050506145e4606088016143fd565b91506145f260808801614541565b90509295509295509295565b6000806000806080858703121561461457600080fd5b843561461f816141fa565b9350602085013592506040850135915060608501356002811061464157600080fd5b939692955090935050565b60006020828403121561465e57600080fd5b5035919050565b6000806000806080858703121561467b57600080fd5b8435614686816141fa565b93506020850135614696816141fa565b9250604085013591506060850135614641816141fa565b6bffffffffffffffffffffffff81168114611df157600080fd5b600080600080600060a086880312156146df57600080fd5b85356146ea816141fa565b945060208601356146fa816141fa565b93506040860135600b81900b811461471157600080fd5b92506060860135614721816146ad565b91506080860135614480816146ad565b6000806040838503121561474457600080fd5b823561474f816141fa565b9150602083013561424c816141fa565b6000806040838503121561477257600080fd5b823561477d816141fa565b915061478b602084016143fd565b90509250929050565b6000806000606084860312156147a957600080fd5b83356147b4816141fa565b92506147c2602085016143fd565b915060408401356147d281614533565b809150509250925092565b6000602082840312156147ef57600080fd5b813560ff81168114612a6257600080fd5b6000806000806080858703121561481657600080fd5b8435614821816141fa565b9350602085013567ffffffffffffffff81111561483d57600080fd5b85016101c0818803121561485057600080fd5b92506040850135614860816141fa565b9150606085013561464181614533565b6000806000806060858703121561488657600080fd5b8435614891816141fa565b935060208501356148a1816141fa565b9250604085013567ffffffffffffffff8111156148bd57600080fd5b6148c987828801614176565b95989497509550505050565b600080600080600060a086880312156148ed57600080fd5b6148f6866143fd565b9450614904602087016143fd565b9350614912604087016143fd565b9250614920606087016143fd565b915061492e608087016143fd565b90509295509295909350565b6000806040838503121561494d57600080fd5b8235614958816141fa565b946020939093013593505050565b600181811c9082168061497a57607f821691505b60208210810361499a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611c0957611c096149b6565b81810381811115611c0957611c096149b6565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0383168152604060208201526000611a626040830184614257565b6001600160801b038181168382160190808211156115ff576115ff6149b6565b600060208284031215614a7257600080fd5b8151612a62816141fa565b6001600160801b0381168114611df157600080fd5b60008060008060808587031215614aa857600080fd5b8451614ab381614a7d565b6020860151909450614ac481614a7d565b6040860151909350614ad581614533565b606086015190925061464181614533565b6040516101c0810167ffffffffffffffff81118282101715614b0a57614b0a6149f2565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614b3957614b396149f2565b604052919050565b8035611d4e81614a7d565b600082601f830112614b5d57600080fd5b8135602067ffffffffffffffff821115614b7957614b796149f2565b8160051b614b88828201614b10565b9283528481018201928281019087851115614ba257600080fd5b83870192505b84831015614bca578235614bbb816141fa565b82529183019190830190614ba8565b979650505050505050565b60006101c08236031215614be857600080fd5b614bf0614ae6565b823581526020830135602082015260408301356040820152614c1460608401614b41565b60608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152506101408084013581830152506101608084013581830152506101808084013567ffffffffffffffff811115614c8d57600080fd5b614c9936828701614b4c565b8284015250506101a0614cad81850161420f565b9082015292915050565b6000808335601e19843603018112614cce57600080fd5b83018035915067ffffffffffffffff821115614ce957600080fd5b6020019150600581901b360382131561317057600080fd5b6001600160a01b03858116825260606020808401829052908301859052600091869160808501845b88811015614d50578435614d3c816141fa565b841682529382019390820190600101614d29565b5080945050505050821515604083015295945050505050565b6001600160a01b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600060208284031215614dba57600080fd5b815167ffffffffffffffff80821115614dd257600080fd5b818401915084601f830112614de657600080fd5b815181811115614df857614df86149f2565b614e0b601f8201601f1916602001614b10565b9150808252856020828501011115614e2257600080fd5b614e33816020840160208601614113565b50949350505050565b600060208284031215614e4e57600080fd5b5051919050565b6001600160801b038281168282160390808211156115ff576115ff6149b6565b8082028115828204841417611c0957611c096149b6565b634e487b7160e01b600052601260045260246000fd5b600082614eb157614eb1614e8c565b500490565b6001600160801b0381811683821602808216919082811461306b5761306b6149b6565b60006001600160801b0380841680614ef357614ef3614e8c565b92169190910492915050565b61ffff8181168382160190808211156115ff576115ff6149b6565b60007f80000000000000000000000000000000000000000000000000000000000000008203614f4b57614f4b6149b6565b5060000390565b60008060408385031215614f6557600080fd5b8251614f70816146ad565b602084015190925061424c81614a7d565b64ffffffffff8181168382160190808211156115ff576115ff6149b6565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208201526000611a626040830184614137565b600060208284031215614fe957600080fd5b8151612a6281614533565b64ffffffffff8281168282160390808211156115ff576115ff6149b656fea2646970667358221220aab85ec9768c4da2f78e8df5edce9cb456dc369876398d8c7e4697f8544f9b9364736f6c634300081100330000000000000000000000009ea7b04da02a5373317d745c1571c84aad03321d000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000115472616465205553444320546965722031000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061036d5760003560e01c8063741f3e3c116101d3578063d5c2f48611610104578063f206d32a116100a2578063f9f0ca661161007c578063f9f0ca661461099f578063fa30b30f146109cb578063fdd57645146109de578063ff68754314610a0757600080fd5b8063f206d32a14610966578063f30ba49914610979578063f9aa028a1461098c57600080fd5b8063e0f83824116100de578063e0f838241461092f578063e2f1490f14610938578063eb23d33e1461094b578063f13d0fc61461095e57600080fd5b8063d5c2f486146108f6578063dc2b21c114610909578063e09357a41461091c57600080fd5b806386dfa53611610171578063be8da14b1161014b578063be8da14b146108b5578063c53afb1e146108bd578063c544cf7d146108d0578063d48bfca7146108e357600080fd5b806386dfa536146108215780639af1d35a14610834578063acb0e845146108a257600080fd5b806380213c74116101ad57806380213c74146107a8578063830aa745146107bb5780638340e24d146107ce578063845104de146107f157600080fd5b8063741f3e3c146107675780637687f6701461076f578063783274381461078257600080fd5b806334878f54116102ad57806352c5fe111161024b5780635a6f45de116102255780635a6f45de146106de578063604ca15f146106f1578063687cd9c1146107195780636f307dc31461074057600080fd5b806352c5fe111461068d578063530e784f146106c257806354fd4d50146106d557600080fd5b8063432017e811610287578063432017e81461062557806343fe7bbe14610653578063458936f5146106665780634fc0e3a81461067a57600080fd5b806334878f541461051f5780633c5bc3b2146105275780633d7e5dc41461060457600080fd5b80632954018c1161031a5780632f232138116102f45780632f232138146104975780632f7a1881146104aa5780633031b01a146104c25780633201de4c146104d557600080fd5b80632954018c1461042a5780632c521c06146104515780632c9db6f11461047757600080fd5b806312ef080d1161034b57806312ef080d146103c357806316f0115b146103d85780632630c12f1461041757600080fd5b806306fdde031461037257806309c5eabe146103905780630d334ca6146103a3575b600080fd5b61037a610a30565b6040516103879190614163565b60405180910390f35b61037a61039e3660046141b8565b610abe565b6103b66103b136600461421a565b610b0e565b604051610387919061429b565b6103d66103d1366004614377565b610c46565b005b6103ff7f000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e81565b6040516001600160a01b039091168152602001610387565b6002546103ff906001600160a01b031681565b6103ff7f0000000000000000000000009ea7b04da02a5373317d745c1571c84aad03321d81565b60025461046590600160a01b900460ff1681565b60405160ff9091168152602001610387565b61048a6104853660046143c8565b610c82565b60405161038791906143ea565b6103d66104a536600461440f565b610d5d565b6000546103ff9061010090046001600160a01b031681565b6103d66104d036600461448e565b610e82565b6104e86104e3366004614516565b610f6b565b6040805161ffff958616815294909316602085015264ffffffffff9091169183019190915262ffffff166060820152608001610387565b6103ff610fff565b6105a6610535366004614516565b60096020526000908152604090208054600182015460028301546003840154600490940154929391926001600160801b0380831693600160801b90930416919061ffff81169062010000810467ffffffffffffffff16906a010000000000000000000090046001600160a01b031688565b6040805198895260208901979097526001600160801b0395861696880196909652939092166060860152608085015261ffff1660a084015267ffffffffffffffff1660c08301526001600160a01b031660e082015261010001610387565b61061761061236600461454c565b61104f565b604051908152602001610387565b6106386106333660046145fe565b611123565b60408051938452602084019290925290820152606001610387565b6103ff610661366004614516565b6114d2565b60025461046590600160a81b900460ff1681565b6103ff61068836600461464c565b6115f2565b6106a061069b36600461464c565b611606565b604080516001600160a01b03909316835261ffff909116602083015201610387565b6103d66106d0366004614516565b61161d565b61061761012c81565b6106176106ec366004614665565b611654565b6107046106ff3660046146c7565b6116c9565b60408051928352602083019190915201610387565b6103ff7f000000000000000000000000444cd42baeddeb707eed823f7177b9abcc779c0481565b6103ff7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b61048a6118ee565b6103d661077d366004614516565b6118ff565b610795610790366004614516565b611a49565b60405161ffff9091168152602001610387565b6103d66107b6366004614731565b611a6a565b6106176107c9366004614377565b611b62565b6107e16107dc36600461475f565b611bb6565b6040519015158152602001610387565b6107956107ff366004614516565b6001600160a01b031660009081526009602052604090206004015461ffff1690565b6103d661082f36600461464c565b611c0f565b61086d60025460035461ffff600160c01b8304811693600160d01b8404821693600160e01b8104831693600160f01b9091048316921690565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a001610387565b6103d66108b0366004614516565b611c20565b6103ff611c67565b6103ff6108cb366004614516565b611ceb565b6103d66108de366004614794565b611d53565b6103d66108f1366004614516565b611de0565b610617610904366004614516565b611df4565b6103d66109173660046147dd565b611e72565b6103d661092a366004614516565b611eb5565b61061760045481565b610704610946366004614800565b611f82565b61037a610959366004614870565b61226a565b6106176122ac565b6103d66109743660046148d5565b6122b8565b6103d6610987366004614516565b612395565b6001546103ff906001600160a01b031681565b6106176109ad366004614516565b6001600160a01b031660009081526009602052604090206003015490565b6103d66109d936600461493a565b6123f4565b6103ff6109ec366004614516565b6008602052600090815260409020546001600160a01b031681565b6103ff610a15366004614516565b6007602052600090815260409020546001600160a01b031681565b600c8054610a3d90614966565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6990614966565b8015610ab65780601f10610a8b57610100808354040283529160200191610ab6565b820191906000526020600020905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b6060610ac861242b565b6000805460ff19166002178155610add6124a1565b90506000610ae9610fff565b9050610af7818387876124f1565b925050506000805460ff1916600117905592915050565b610b92604051806101c0016040528060008152602001600081526020016000815260200160006001600160801b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016060815260200160006001600160a01b031681525090565b6002826004811115610ba657610ba66149a0565b03610bdd576040517f47fbaa9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006004836004811115610bf357610bf36149a0565b03610c0057506003915060015b610c0984611ceb565b506060610c3d85610c32876001600160a01b031660009081526009602052604090206003015490565b83612710888761256b565b95945050505050565b610c4e61242b565b6000805460ff19166002179055610c636129de565b610c6f84848484612a27565b50506000805460ff191660011790555050565b60606000610c90600a612a4c565b9050600081610c9f85876149cc565b11610caa5783610cc3565b818511610cc057610cbb85836149df565b610cc3565b60005b90508067ffffffffffffffff811115610cde57610cde6149f2565b604051908082528060200260200182016040528015610d07578160200160208202803683370190505b50925060005b81811015610d5457610d22600a878301612a56565b848281518110610d3457610d34614a08565b6001600160a01b0390921660209283029190910190910152600101610d0d565b50505092915050565b610d65612a69565b7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b0316856001600160a01b031603610dbd576002805461ffff60b01b1916600160b01b61ffff871602179055610e7b565b6000610dc886611df4565b600090815260056020526040902080547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b61ffff8881169190910261ffff60b01b191691909117600160b01b918716919091021777ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b64ffffffffff8616027cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1617600160e81b62ffffff851602179055505b5050505050565b610e8a61242b565b6000805460ff19166002179055610e9f6129de565b8060005b81811015610f57576000848483818110610ebf57610ebf614a08565b610ed59260206040909202019081019150614516565b90506000858584818110610eeb57610eeb614a08565b9050604002016020016020810190610f039190614516565b90506001600160a01b0382161580610f2257506001600160a01b038116155b15610f4057604051635919af9760e11b815260040160405180910390fd5b610f4d8782846000612a27565b5050600101610ea3565b50506000805460ff19166001179055505050565b6000806000806000610f7c86611df4565b600090815260056020908152604091829020825160a08101845290546001600160a01b0381168252600160a01b810461ffff908116938301849052600160b01b820416938201849052600160c01b810464ffffffffff1660608301819052600160e81b90910462ffffff1660809092018290529199929850909650945092505050565b6003546201000090046001600160a01b0316600019810161104c576040517f5cd6b24400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b90565b600061105961242b565b6000805460ff1916600217905561106e6129de565b60006110b488888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a92506002915089905061256b565b90508060c0015181610120015110156110f9576040517f532e7bb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806101400151915061110b8883612aad565b506000805460ff191660011790559695505050505050565b600080600061113061242b565b6000805460ff191660021790556111456129de565b6001600160a01b03871660009081526009602052604090206004810154436201000090910467ffffffffffffffff1603611192576040516345a1354d60e11b815260040160405180910390fd5b866000036111a957549250600091508190506114b8565b606060006111df8a8984612710858c60018111156111c9576111c96149a0565b146111d55760016111d8565b60005b600061256b565b90506000808860018111156111f6576111f66149a0565b0361122b576112138a836000015184602001518560400151612b1e565b90975090506112228a8c612baa565b60019550611483565b600061123961104c84612c49565b9050808b1061124657809a505b61129b6001600160a01b038d167f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb487f000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e8e612c6c565b600080828d036112d0575050602083015160a08401516002870180546001600160801b0316905560009950909250889061133a565b61130f8d86516020880151604089015160608a015160028d8101549054600160801b9091046001600160801b031690600160c01b900461ffff16612cf5565b60028c0180546001600160801b03928316600160801b029216919091179055929c5090955090925090505b61018085015151156113eb5789600003611380576040517f51bb745d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846101a001516001600160a01b0316630db1b8ca8f8761018001516040518363ffffffff1660e01b81526004016113b8929190614a1e565b600060405180830381600087803b1580156113d257600080fd5b505af11580156113e6573d6000803e3d6000fd5b505050505b8451611404906113fc908c906149df565b826000612f73565b61140f826001614a40565b8760020160006101000a8154816001600160801b0302191690836001600160801b0316021790555060016114758f7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b031661301990919063ffffffff16565b1161147f57600197505b5050505b86845560048401805469ffffffffffffffff00001916620100004367ffffffffffffffff160217905560019093019290925550505b6000805460ff191660011790559196909550909350915050565b6000816114de81613073565b6114e661242b565b6000805460ff191660021790556114fb6129de565b6040517f21d1845600000000000000000000000000000000000000000000000000000000815260006004820181905260248201527f000000000000000000000000444cd42baeddeb707eed823f7177b9abcc779c046001600160a01b0316906321d18456906044016020604051808303816000875af1158015611582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a69190614a60565b6001600160a01b0381166000908152600960205260409020605085901b6004820155600160028201559092506115dd600a8461309a565b50506000805460ff1916600117905550919050565b60006115ff8260006130af565b5092915050565b6000806116148360016130af565b91509150915091565b611625612a69565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600061165e61242b565b6000805460ff191660021790556116736129de565b600061167e85611df4565b90506116956001600160a01b038716868587612c6c565b60016116aa6001600160a01b03871688613019565b116116b3578091505b506000805460ff19166001179055949350505050565b6000806116d461242b565b6000805460ff191660021790556116e96129de565b6001600160a01b0387166000908152600960205260408120805490910361173c576040517f2032806600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008061174a611c67565b6040517f604ca15f0000000000000000000000000000000000000000000000000000000081526001600160a01b038e811660048301528d81166024830152600b8d900b60448301526bffffffffffffffffffffffff808d1660648401528b166084830152919091169063604ca15f9060a4016080604051808303816000875af11580156117db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ff9190614a92565b9350935093509350811561181d576118168b611df4565b965061182f565b801561182f5761182c8b611df4565b95505b60028501805485919060009061184f9084906001600160801b0316614a40565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550826001600160801b03166000146118cf57828560020160108282829054906101000a90046001600160801b03166118aa9190614a40565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b50506000805460ff191660011790555092989197509095505050505050565b60606118fa600a613177565b905090565b61190761242b565b6000805460ff1916600217905561191c6129de565b6001600160a01b038116600090815260096020526040902080541561196d576040517f3216f22100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600482810182905560038301919091556040517f89b77b3e0000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000444cd42baeddeb707eed823f7177b9abcc779c0416916389b77b3e916119f1918691016001600160a01b0391909116815260200190565b600060405180830381600087803b158015611a0b57600080fd5b505af1158015611a1f573d6000803e3d6000fd5b50505050611a3782600a61318490919063ffffffff16565b50506000805460ff1916600117905550565b600080611a5583611df4565b9050611a628160016130af565b949350505050565b611a72612a69565b6001600160a01b038116301480611a9157506001600160a01b03821630145b15611ac8576040517ffc1a554300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821615611b13576001600160a01b038281166000908152600760205260409020805473ffffffffffffffffffffffffffffffffffffffff19169183169190911790555b6001600160a01b03811615611b5e576001600160a01b038181166000908152600860205260409020805473ffffffffffffffffffffffffffffffffffffffff19169184169190911790555b5050565b6000611b6c61242b565b6000805460ff19166002179055611b816129de565b611b8a83611df4565b9050611ba16001600160a01b038416868685613199565b6000805460ff19166001179055949350505050565b6000611bc183611ceb565b5060606000611bf785611bec876001600160a01b031660009081526009602052604090206003015490565b84876002600061256b565b60c08101516101209091015110925050505b92915050565b611c17612a69565b60011916600455565b611c28612a69565b600080546001600160a01b03909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b60007f000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e6001600160a01b031663be8da14b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614a60565b6001600160a01b038082166000908152600960205260409020600401546a010000000000000000000090041680611d4e576040517f309d150100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b611d5b61242b565b6000805460ff19166002179055611d706129de565b8015611dac576001600160a01b0383166000908152600960205260409020600401805461ffff8481169082161761ffff19909116179055611a37565b6001600160a01b0383166000908152600960205260409020600401805461ffff841982161661ffff19909116179055611a37565b611de8612a69565b611df181613233565b50565b60007f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b0316826001600160a01b031603611e3757506001919050565b506001600160a01b03811660009081526006602052604081205490819003611d4e5760405163700ca0af60e01b815260040160405180910390fd5b611e7a612a69565b6002805460ff909216600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b611ebd61242b565b6000805460ff19166002179055611ed26129de565b6003546201000090046001600160a01b0316600114801590611efe57506001600160a01b038116600114155b15611f35576040517f44a8a06500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001600160a01b0390921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790556000805460ff19166001179055565b600080611f8d61242b565b6000805460ff19166002179055611fa26129de565b600080600061200786611fc257600254600160d01b900461ffff16611fd1565b600254600160f01b900461ffff165b87611fe957600254600160e01b900461ffff16611ff1565b60035461ffff165b61104c80611ffe8d614bd5565b9392919061338c565b96509194509250905061201e610180890189614cb7565b1590506120aa576120376101c089016101a08a01614516565b6001600160a01b031663fcde5ddc8a6120546101808c018c614cb7565b600089116040518563ffffffff1660e01b81526004016120779493929190614d01565b600060405180830381600087803b15801561209157600080fd5b505af11580156120a5573d6000803e3d6000fd5b505050505b8215612105576121056001600160a01b038a167f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb487f000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e86612c6c565b61211188358286612f73565b60006121228a8a6101400135613460565b909650905082861015612161576040517f67016e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061216f8488038361356c565b905080156121b2576121ac6001600160a01b038c167f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488b84612c6c565b80870396505b506001600160a01b038a1660009081526009602052604090206004810154436201000090910467ffffffffffffffff1603612200576040516345a1354d60e11b815260040160405180910390fd5b6000815560048101805469ffffffffffffffff00001916620100004367ffffffffffffffff160217905561223e6101408b01356101608c0135191690565b6003820155600160029091018190556000805460ff191690911790555093989297509195505050505050565b606061227461242b565b6000805460ff191660021790556122896129de565b612295858585856124f1565b90506000805460ff19166001179055949350505050565b60006118fa600a612a4c565b6122c0612a69565b600280547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b61ffff978816027fffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff1617600160d01b95871695909502949094177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b938616939093027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160f01b91851691909102179091556003805461ffff191691909216179055565b61239d612a69565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517fd87efcee33ed285df83ed2ffd66f67c15e0ecf17eb1f1705adae3ae2f1778da090600090a250565b6123fc61242b565b6000805460ff191660021781556124116124a1565b9050600061241d610fff565b9050610c6f81858486612a27565b60005460ff166001190161249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640160405180910390fd5b565b336000908152600760205260409020546001600160a01b03168061104c576040517f5535a8f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051631cff79cd60e01b81526060906001600160a01b03861690631cff79cd9061252490879087908790600401614d69565b6000604051808303816000875af1158015612543573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c3d9190810190614da8565b6125ef604051806101c0016040528060008152602001600081526020016000815260200160006001600160801b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016060815260200160006001600160a01b031681525090565b6001600160a01b038088166000908152600960209081526040918290208054855260018101548584015282517ffaaba9e2000000000000000000000000000000000000000000000000000000008152925190937f000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e169263faaba9e29260048083019391928290030181865afa15801561268c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b09190614e3c565b602083015260008460048111156126c9576126c96149a0565b036126d457506129d4565b61014082018790526126e4611c67565b6001600160a01b03166101a08301819052606090612707908a908a908a90613582565b6101608701526001600160801b039182166060870152610180860192909252600284015491925061273b9160019116614e55565b8360600181815161274c9190614a40565b6001600160801b031690525082516040840151602085015161276f9291906137d9565b608084018190526002546127109161279291600160c01b900461ffff1690614e75565b61279c9190614ea2565b60028301546127bb9190600160801b90046001600160801b03166149cc565b60a084015260608301516080840180516001600160801b03909216916127e29083906149cc565b90525060025460608401516127109161280791600160c01b90910461ffff1690614eb6565b6128119190614ed9565b6001600160801b03168360a00181815161282b91906149cc565b9052506001856004811115612842576128426149a0565b0361284e5750506129d4565b6002546001600160a01b0316600061286585612c49565b905080156128a25761289882827f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4861380b565b60c08601526128c4565b60028760048111156128b6576128b66149a0565b036128c457505050506129d4565b50600060028760048111156128db576128db6149a0565b146128e85760001961290a565b60c0850151612710906129009061ffff8b1690614e75565b61290a9190614ea2565b905060006129588c7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48848d886130af8d6129465761380b61294a565b61389a5b8d969594939291908b61396f565b610120890191909152610100880191909152905080198b16610140870152600288600481111561298a5761298a6149a0565b036129995750505050506129d4565b6129c9838761010001517f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48613a37565b60e087015250505050505b9695505050505050565b60005461010090046001600160a01b0316331461249f576040517f0c1d6a3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a3083611df4565b50612a466001600160a01b038516848484613a89565b50505050565b6000611c09825490565b6000612a628383613ab9565b9392505050565b6001546001600160a01b0316331461249f576040517f61081c1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254600160a01b900460ff16612ac76001198316613ae3565b1115612aff576040517f30b5495c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03909116600090815260096020526040902060030155565b60008084600003612b33575084905082612ba1565b612b3d86866149cc565b9150612b4d86633b9aca00614e75565b8386612b5d87633b9aca00614e75565b612b679190614e75565b612b719190614ea2565b612b7b91906149cc565b633b9aca00612b8a8487614e75565b612b949190614e75565b612b9e9190614ea2565b90505b94509492505050565b6040517fbf28068b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0382811660248301527f000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e169063bf28068b90604401600060405180830381600087803b158015612c2d57600080fd5b505af1158015612c41573d6000803e3d6000fd5b505050505050565b60a08101516080820151825160009291612c62916149cc565b611c0991906149cc565b6040517fd1660f990000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283811660248301526044820183905285169063d1660f9990606401600060405180830381600087803b158015612cd757600080fd5b505af1158015612ceb573d6000803e3d6000fd5b5050505050505050565b6000808080808b6001600160801b03881615612d3d57876001600160801b0316811115612d34576001600160801b038816935060009150839003612d3d565b92505081860360005b6001600160801b03891615801590612d5457508015155b15612e31576000612710612d6c61ffff8a168c614eb6565b612d769190614ed9565b6001600160801b03169050808a6001600160801b0316612d9691906149cc565b8210612dd057612daf816001600160801b038c166149cc565b612db990836149df565b9150612dc581866149cc565b945060009350612e2b565b6000612dde89612710614eff565b61ffff16612dee61271085614e75565b612df89190614ea2565b9050612e0481846149df565b612e0e90876149cc565b955060009250612e27816001600160801b038d166149df565b9450505b50612e35565b8892505b8015612f53576000612e488d8c8e6137d9565b90506000612710612e5d61ffff8b1684614e75565b612e679190614ea2565b9050612e7381836149cc565b8310612ea357612e8381836149cc565b612e8d90846149df565b9250612e9981876149cc565b95508c9650612f4c565b6000612eb18a612710614eff565b61ffff16612ec161271086614e75565b612ecb9190614ea2565b9050612ed781856149df565b612ee190886149cc565b9650600093508e8d612ef783633b9aca00614e75565b612f019190614e75565b612f0b9190614ea2565b612f198f633b9aca00614e75565b612f2391906149df565b8d8f633b9aca00612f349190614e75565b612f3e9190614e75565b612f489190614ea2565b9750505b5050612f57565b8994505b612f61818d6149df565b95505097509750975097509792505050565b6040517fca9505e40000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604481018290527f000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e6001600160a01b03169063ca9505e490606401600060405180830381600087803b158015612ffc57600080fd5b505af1158015613010573d6000803e3d6000fd5b50505050505050565b7f70a08231000000000000000000000000000000000000000000000000000000006000818152600483905290602082602481875afa600051925060203d108115171561306b576040513d6000823e3d81fd5b505092915050565b6001600160a01b038116611df157604051635919af9760e11b815260040160405180910390fd5b6000612a62836001600160a01b038416613afd565b600080600184036130f8577f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48915082156130f35750600254600160b01b900461ffff165b613170565b600084815260056020526040902080546001600160a01b0381169350836131325760405163700ca0af60e01b815260040160405180910390fd5b841561316d5761ffff60a082901c81169060b083901c1664ffffffffff60c084901c1660e884901c61316684848484613b4c565b9650505050505b50505b9250929050565b60606000612a6283613ba3565b6000612a62836001600160a01b038416613bff565b60006323b872dd60e01b905060006040518281528560048201528460248201528360448201526020600060648360008b5af191505080156131f7573d80156131ed57600160005114601f3d111691506131f5565b6000873b1191505b505b80612c41576040517ff405907100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b191690565b6001600160a01b03811660009081526006602052604090205415613283576040517f2e5a5c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025460ff600160a81b9091048116106132c9576040517f7e050c5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280546001600160a01b039092166000818152600660209081526040808320600160ff600160a81b98899004811682901b928390559185526005909352922080547fffffff0000000000ffffffff0000000000000000000000000000000000000000169093177cffffffffff0000000000000000000000000000000000000000000000001790925582548481048216909201169092027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff909216919091179055565b60008060008061339b89612c49565b9350600089608001518a600001516133b391906149cc565b60e08b015190915060006127106133ce61ffff8c1684614e75565b6133d89190614ea2565b90506127106133eb61ffff8d1684614e75565b6133f59190614ea2565b6133ff90886149cc565b96506000613410888b63ffffffff16565b905080821115613424578082039650613436565b50806134338163ffffffff8b16565b97505b83881061344757838803955061344d565b87840394505b8097505050505095509550955095915050565b6000806134966001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481685613019565b9150819050600119831660008190036134af5750613170565b6002546001600160a01b031660005b82156135245760006134cf84614f1a565b841693841893905060006134e2826115f2565b905060006134f96001600160a01b0383168b613019565b9050600181111561351c5761350f85828461380b565b61351990856149cc565b93505b5050506134be565b80156135625761355582827f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48613a37565b61355f90866149cc565b94505b5050509250929050565b600081831061357b5781612a62565b5090919050565b60045460609060009082908681168084036135a15750600092506137ce565b6000806135ad83613ae3565b90508067ffffffffffffffff8111156135c8576135c86149f2565b6040519080825280602002602001820160405280156135f1578160200160208202803683370190505b5096508067ffffffffffffffff81111561360d5761360d6149f2565b604051908082528060200260200182016040528015613636578160200160208202803683370190505b5089519095506000908c5b85156137c757600082841015613687578c5160018501948e91811061366857613668614a08565b602002602001015190508087166000036136825750613641565b613690565b86600003871690505b60008061369e8360016130af565b915091506000808f6001600160a01b031663f3ef181387866040518363ffffffff1660e01b81526004016136e89291906001600160a01b0392831681529116602082015260400190565b6040805180830381865afa158015613704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137289190614f52565b91506bffffffffffffffffffffffff169150838f8b8151811061374d5761374d614a08565b6001600160a01b03909216602092830291909101909101526bffffffffffffffffffffffff8216606084901b6dffff00000000000000000000000016178d8b8151811061379c5761379c614a08565b60209081029190910101529c8d019c6001909901986137bb8b86191690565b9a505050505050613641565b5050505050505b945094509450949050565b6000836000036137eb57506000612a62565b83836137f78483614e75565b6138019190614ea2565b611a6291906149df565b6040517ff9a65030000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0382811660248301526000919085169063f9a65030906044015b602060405180830381865afa158015613876573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a629190614e3c565b60007f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b0316826001600160a01b031614613964576040517f553552fe000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03838116602483015285169063553552fe90604401602060405180830381865afa15801561393b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395f9190614e3c565b611a62565b611a6284848461380b565b60008060008b6101800151516000146139d257600061399f856b033b2e3c9fd0803ce80000008d8963ffffffff16565b90506139b58d6101800151898e848e8b8b613cf2565b90945092508983106139cb575060009050613a28565b828a039950505b60006139f18d61016001518e610140015161322e90919063ffffffff16565b9050600080613a058e8d8d8b8d888d613ddf565b95509092509050613a1682876149cc565b9550613a2281866149cc565b94505050505b99509950999650505050505050565b6040517f7afb0104000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03828116602483015260009190851690637afb010490604401613859565b613a97848484846000613ead565b612a4657613aaa84848460006001613ead565b50610e7b848484846001613ead565b6000826000018281548110613ad057613ad0614a08565b9060005260206000200154905092915050565b60005b8115611d4e57600019820190911690600101613ae6565b6000818152600183016020526040812054613b4457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611c09565b506000611c09565b600080613b5e62ffffff841685614f81565b90508364ffffffffff164211613b775785915050611a62565b8064ffffffffff16421015613b9a57613b9286868684613fff565b915050611a62565b84915050611a62565b606081600001805480602002602001604051908101604052809291908181526020018280548015613bf357602002820191906000526020600020905b815481526020019060010190808311613bdf575b50505050509050919050565b60008181526001830160205260408120548015613ce8576000613c236001836149df565b8554909150600090613c37906001906149df565b9050818114613c9c576000866000018281548110613c5757613c57614a08565b9060005260206000200154905080876000018481548110613c7a57613c7a614a08565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613cad57613cad614f9f565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611c09565b6000915050611c09565b86516000908190815b81811015613dd05760008b8281518110613d1757613d17614a08565b60200260200101519050600080613d5a8d8581518110613d3957613d39614a08565b60200260200101516bffffffffffffffffffffffff81169160609190911c90565b909250905060006b033b2e3c9fd0803ce8000000613d788d85614e75565b613d829190614ea2565b9050600080613d958f8d8d898888614066565b509092509050613da5828b6149cc565b9950613db1818a6149cc565b98505050505050878410613dc757505050613dd3565b50600101613cfb565b50505b97509795505050505050565b8451600090819081908a825b8715613e9d57600083821015613e32578b8281518110613e0d57613e0d614a08565b60200260200101519050816001019150808916600003613e2d5750613deb565b613e40565b613e3b89614f1a565b891690505b6000806000613e52868f8f878f6140d5565b94509092509050613e63828b6149cc565b9950613e6f818a6149cc565b985050508015613e8c578d8710613e87575050613e9d565b613e91565b948117945b50199790971696613deb565b5050509750975097945050505050565b604080516001600160a01b038581166024830152604480830186905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001790529151631cff79cd60e01b8152600092881691631cff79cd91613f48918991600401614fb5565b6000604051808303816000875af1925050508015613f8857506040513d6000823e601f3d908101601f19168201604052613f859190810190614da8565b60015b15613fbb5780511580613faa575080806020019051810190613faa9190614fd7565b15613fb9576001915050610c3d565b505b8115613ff3576040517f2f10a7f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600095945050505050565b600061400b8383614ff4565b64ffffffffff168364ffffffffff164261402591906149df565b6140339061ffff8716614e75565b6140444264ffffffffff86166149df565b6140529061ffff8916614e75565b61405c91906149cc565b610c3d9190614ea2565b600080808061407e6001600160a01b0388168b613019565b905060018111156140c85761409b8860018303898c63ffffffff16565b93506140c16127106140b161ffff891687614e75565b6140bb9190614ea2565b8661356c565b9250600191505b5096509650969350505050565b60008060008060006140ec8760018a63ffffffff16565b915091506141008a8a888585600019614066565b919c909b50909950975050505050505050565b60005b8381101561412e578181015183820152602001614116565b50506000910152565b6000815180845261414f816020860160208601614113565b601f01601f19169290920160200192915050565b602081526000612a626020830184614137565b60008083601f84011261418857600080fd5b50813567ffffffffffffffff8111156141a057600080fd5b60208301915083602082850101111561317057600080fd5b600080602083850312156141cb57600080fd5b823567ffffffffffffffff8111156141e257600080fd5b6141ee85828601614176565b90969095509350505050565b6001600160a01b0381168114611df157600080fd5b8035611d4e816141fa565b6000806040838503121561422d57600080fd5b8235614238816141fa565b915060208301356005811061424c57600080fd5b809150509250929050565b600081518084526020808501945080840160005b838110156142905781516001600160a01b03168752958201959082019060010161426b565b509495945050505050565b60208152815160208201526020820151604082015260408201516060820152600060608301516142d660808401826001600160801b03169052565b50608083015160a083015260a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506101208181850152808501519150506101408181850152808501519150506101608181850152808501519150506101808181850152808501519150506101c06101a0818186015261435e6101e0860184614257565b9501516001600160a01b03169301929092525090919050565b6000806000806080858703121561438d57600080fd5b8435614398816141fa565b935060208501356143a8816141fa565b925060408501356143b8816141fa565b9396929550929360600135925050565b600080604083850312156143db57600080fd5b50508035926020909101359150565b602081526000612a626020830184614257565b803561ffff81168114611d4e57600080fd5b600080600080600060a0868803121561442757600080fd5b8535614432816141fa565b9450614440602087016143fd565b935061444e604087016143fd565b9250606086013564ffffffffff8116811461446857600080fd5b9150608086013562ffffff8116811461448057600080fd5b809150509295509295909350565b6000806000604084860312156144a357600080fd5b83356144ae816141fa565b9250602084013567ffffffffffffffff808211156144cb57600080fd5b818601915086601f8301126144df57600080fd5b8135818111156144ee57600080fd5b8760208260061b850101111561450357600080fd5b6020830194508093505050509250925092565b60006020828403121561452857600080fd5b8135612a62816141fa565b8015158114611df157600080fd5b8035611d4e81614533565b60008060008060008060a0878903121561456557600080fd5b8635614570816141fa565b955060208701359450604087013567ffffffffffffffff8082111561459457600080fd5b818901915089601f8301126145a857600080fd5b8135818111156145b757600080fd5b8a60208260051b85010111156145cc57600080fd5b6020830196508095505050506145e4606088016143fd565b91506145f260808801614541565b90509295509295509295565b6000806000806080858703121561461457600080fd5b843561461f816141fa565b9350602085013592506040850135915060608501356002811061464157600080fd5b939692955090935050565b60006020828403121561465e57600080fd5b5035919050565b6000806000806080858703121561467b57600080fd5b8435614686816141fa565b93506020850135614696816141fa565b9250604085013591506060850135614641816141fa565b6bffffffffffffffffffffffff81168114611df157600080fd5b600080600080600060a086880312156146df57600080fd5b85356146ea816141fa565b945060208601356146fa816141fa565b93506040860135600b81900b811461471157600080fd5b92506060860135614721816146ad565b91506080860135614480816146ad565b6000806040838503121561474457600080fd5b823561474f816141fa565b9150602083013561424c816141fa565b6000806040838503121561477257600080fd5b823561477d816141fa565b915061478b602084016143fd565b90509250929050565b6000806000606084860312156147a957600080fd5b83356147b4816141fa565b92506147c2602085016143fd565b915060408401356147d281614533565b809150509250925092565b6000602082840312156147ef57600080fd5b813560ff81168114612a6257600080fd5b6000806000806080858703121561481657600080fd5b8435614821816141fa565b9350602085013567ffffffffffffffff81111561483d57600080fd5b85016101c0818803121561485057600080fd5b92506040850135614860816141fa565b9150606085013561464181614533565b6000806000806060858703121561488657600080fd5b8435614891816141fa565b935060208501356148a1816141fa565b9250604085013567ffffffffffffffff8111156148bd57600080fd5b6148c987828801614176565b95989497509550505050565b600080600080600060a086880312156148ed57600080fd5b6148f6866143fd565b9450614904602087016143fd565b9350614912604087016143fd565b9250614920606087016143fd565b915061492e608087016143fd565b90509295509295909350565b6000806040838503121561494d57600080fd5b8235614958816141fa565b946020939093013593505050565b600181811c9082168061497a57607f821691505b60208210810361499a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611c0957611c096149b6565b81810381811115611c0957611c096149b6565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0383168152604060208201526000611a626040830184614257565b6001600160801b038181168382160190808211156115ff576115ff6149b6565b600060208284031215614a7257600080fd5b8151612a62816141fa565b6001600160801b0381168114611df157600080fd5b60008060008060808587031215614aa857600080fd5b8451614ab381614a7d565b6020860151909450614ac481614a7d565b6040860151909350614ad581614533565b606086015190925061464181614533565b6040516101c0810167ffffffffffffffff81118282101715614b0a57614b0a6149f2565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614b3957614b396149f2565b604052919050565b8035611d4e81614a7d565b600082601f830112614b5d57600080fd5b8135602067ffffffffffffffff821115614b7957614b796149f2565b8160051b614b88828201614b10565b9283528481018201928281019087851115614ba257600080fd5b83870192505b84831015614bca578235614bbb816141fa565b82529183019190830190614ba8565b979650505050505050565b60006101c08236031215614be857600080fd5b614bf0614ae6565b823581526020830135602082015260408301356040820152614c1460608401614b41565b60608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152506101408084013581830152506101608084013581830152506101808084013567ffffffffffffffff811115614c8d57600080fd5b614c9936828701614b4c565b8284015250506101a0614cad81850161420f565b9082015292915050565b6000808335601e19843603018112614cce57600080fd5b83018035915067ffffffffffffffff821115614ce957600080fd5b6020019150600581901b360382131561317057600080fd5b6001600160a01b03858116825260606020808401829052908301859052600091869160808501845b88811015614d50578435614d3c816141fa565b841682529382019390820190600101614d29565b5080945050505050821515604083015295945050505050565b6001600160a01b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600060208284031215614dba57600080fd5b815167ffffffffffffffff80821115614dd257600080fd5b818401915084601f830112614de657600080fd5b815181811115614df857614df86149f2565b614e0b601f8201601f1916602001614b10565b9150808252856020828501011115614e2257600080fd5b614e33816020840160208601614113565b50949350505050565b600060208284031215614e4e57600080fd5b5051919050565b6001600160801b038281168282160390808211156115ff576115ff6149b6565b8082028115828204841417611c0957611c096149b6565b634e487b7160e01b600052601260045260246000fd5b600082614eb157614eb1614e8c565b500490565b6001600160801b0381811683821602808216919082811461306b5761306b6149b6565b60006001600160801b0380841680614ef357614ef3614e8c565b92169190910492915050565b61ffff8181168382160190808211156115ff576115ff6149b6565b60007f80000000000000000000000000000000000000000000000000000000000000008203614f4b57614f4b6149b6565b5060000390565b60008060408385031215614f6557600080fd5b8251614f70816146ad565b602084015190925061424c81614a7d565b64ffffffffff8181168382160190808211156115ff576115ff6149b6565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208201526000611a626040830184614137565b600060208284031215614fe957600080fd5b8151612a6281614533565b64ffffffffff8281168282160390808211156115ff576115ff6149b656fea2646970667358221220aab85ec9768c4da2f78e8df5edce9cb456dc369876398d8c7e4697f8544f9b9364736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009ea7b04da02a5373317d745c1571c84aad03321d000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000115472616465205553444320546965722031000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _addressProvider (address): 0x9ea7b04Da02a5373317D745c1571c84aaD03321D
Arg [1] : _pool (address): 0xda00000035fef4082F78dEF6A8903bee419FbF8E
Arg [2] : _name (string): Trade USDC Tier 1

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000009ea7b04da02a5373317d745c1571c84aad03321d
Arg [1] : 000000000000000000000000da00000035fef4082f78def6a8903bee419fbf8e
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000011
Arg [4] : 5472616465205553444320546965722031000000000000000000000000000000

🤖 Code Reader Beta

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.