aave-protocol-v2/types/LendingPoolFactory.ts
2020-08-10 20:20:08 +02:00

1202 lines
69 KiB
TypeScript

/* Generated by ts-generator ver. 0.0.8 */
/* tslint:disable */
import {Contract, ContractFactory, Signer} from 'ethers';
import {Provider} from 'ethers/providers';
import {UnsignedTransaction} from 'ethers/utils/transaction';
import {TransactionOverrides} from '.';
import {LendingPool} from './LendingPool';
export class LendingPoolFactory extends ContractFactory {
constructor(linkLibraryAddresses: LendingPoolLibraryAddresses, signer?: Signer) {
super(_abi, LendingPoolFactory.linkBytecode(linkLibraryAddresses), signer);
}
static linkBytecode(linkLibraryAddresses: LendingPoolLibraryAddresses): string {
let linkedBytecode = _bytecode;
linkedBytecode = linkedBytecode.replace(
new RegExp('__\\$69254465eb8f179ea24caa73cf68b23524\\$__', 'g'),
linkLibraryAddresses['__$69254465eb8f179ea24caa73cf68b23524$__']
.replace(/^0x/, '')
.toLowerCase()
);
linkedBytecode = linkedBytecode.replace(
new RegExp('__\\$5e6137a1b5a0a366e2874209b5abf71c10\\$__', 'g'),
linkLibraryAddresses['__$5e6137a1b5a0a366e2874209b5abf71c10$__']
.replace(/^0x/, '')
.toLowerCase()
);
linkedBytecode = linkedBytecode.replace(
new RegExp('__\\$7347ff53b2b46c21e26a37164ae7f6739f\\$__', 'g'),
linkLibraryAddresses['__$7347ff53b2b46c21e26a37164ae7f6739f$__']
.replace(/^0x/, '')
.toLowerCase()
);
return linkedBytecode;
}
deploy(overrides?: TransactionOverrides): Promise<LendingPool> {
return super.deploy(overrides) as Promise<LendingPool>;
}
getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction {
return super.getDeployTransaction(overrides);
}
attach(address: string): LendingPool {
return super.attach(address) as LendingPool;
}
connect(signer: Signer): LendingPoolFactory {
return super.connect(signer) as LendingPoolFactory;
}
static connect(address: string, signerOrProvider: Signer | Provider): LendingPool {
return new Contract(address, _abi, signerOrProvider) as LendingPool;
}
}
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_borrowRateMode',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_borrowRate',
type: 'uint256',
},
{
indexed: true,
internalType: 'uint16',
name: '_referral',
type: 'uint16',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'Borrow',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: true,
internalType: 'uint16',
name: '_referral',
type: 'uint16',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'Deposit',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_target',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_totalFee',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_protocolFee',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'FlashLoan',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_collateral',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_purchaseAmount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_liquidatedCollateralAmount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_accruedBorrowInterest',
type: 'uint256',
},
{
indexed: false,
internalType: 'address',
name: '_liquidator',
type: 'address',
},
{
indexed: false,
internalType: 'bool',
name: '_receiveAToken',
type: 'bool',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'LiquidationCall',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_collateral',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_feeLiquidated',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_liquidatedCollateralForFee',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'OriginationFeeLiquidated',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'RebalanceStableBorrowRate',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'RedeemUnderlying',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_repayer',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'Repay',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'ReserveUsedAsCollateralDisabled',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'ReserveUsedAsCollateralEnabled',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'Swap',
type: 'event',
},
{
inputs: [],
name: 'LENDINGPOOL_REVISION',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'UINT_MAX_VALUE',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'addressesProvider',
outputs: [
{
internalType: 'contract LendingPoolAddressesProvider',
name: '',
type: 'address',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_user',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
],
name: 'balanceDecreaseAllowed',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'uint256',
name: '_interestRateMode',
type: 'uint256',
},
{
internalType: 'uint16',
name: '_referralCode',
type: 'uint16',
},
],
name: 'borrow',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'uint16',
name: '_referralCode',
type: 'uint16',
},
],
name: 'deposit',
outputs: [],
stateMutability: 'payable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_receiver',
type: 'address',
},
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'bytes',
name: '_params',
type: 'bytes',
},
],
name: 'flashLoan',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getConfiguration',
outputs: [
{
components: [
{
internalType: 'uint256',
name: 'data',
type: 'uint256',
},
],
internalType: 'struct ReserveConfiguration.Map',
name: '',
type: 'tuple',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveConfigurationData',
outputs: [
{
internalType: 'uint256',
name: 'decimals',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'ltv',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidationThreshold',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidationBonus',
type: 'uint256',
},
{
internalType: 'address',
name: 'interestRateStrategyAddress',
type: 'address',
},
{
internalType: 'bool',
name: 'usageAsCollateralEnabled',
type: 'bool',
},
{
internalType: 'bool',
name: 'borrowingEnabled',
type: 'bool',
},
{
internalType: 'bool',
name: 'stableBorrowRateEnabled',
type: 'bool',
},
{
internalType: 'bool',
name: 'isActive',
type: 'bool',
},
{
internalType: 'bool',
name: 'isFreezed',
type: 'bool',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveData',
outputs: [
{
internalType: 'uint256',
name: 'availableLiquidity',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'totalBorrowsStable',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'totalBorrowsVariable',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidityRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'variableBorrowRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'stableBorrowRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'averageStableBorrowRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidityIndex',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'variableBorrowIndex',
type: 'uint256',
},
{
internalType: 'uint40',
name: 'lastUpdateTimestamp',
type: 'uint40',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveNormalizedIncome',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveNormalizedVariableDebt',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveTokensAddresses',
outputs: [
{
internalType: 'address',
name: 'aTokenAddress',
type: 'address',
},
{
internalType: 'address',
name: 'stableDebtTokenAddress',
type: 'address',
},
{
internalType: 'address',
name: 'variableDebtTokenAddress',
type: 'address',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'getReserves',
outputs: [
{
internalType: 'address[]',
name: '',
type: 'address[]',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'getUserAccountData',
outputs: [
{
internalType: 'uint256',
name: 'totalCollateralETH',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'totalBorrowsETH',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'availableBorrowsETH',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'currentLiquidationThreshold',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'ltv',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'healthFactor',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'getUserReserveData',
outputs: [
{
internalType: 'uint256',
name: 'currentATokenBalance',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'currentStableDebt',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'currentVariableDebt',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'principalStableDebt',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'principalVariableDebt',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'stableBorrowRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidityRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'variableBorrowIndex',
type: 'uint256',
},
{
internalType: 'uint40',
name: 'stableRateLastUpdated',
type: 'uint40',
},
{
internalType: 'bool',
name: 'usageAsCollateralEnabled',
type: 'bool',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_aTokenAddress',
type: 'address',
},
{
internalType: 'address',
name: '_stableDebtAddress',
type: 'address',
},
{
internalType: 'address',
name: '_variableDebtAddress',
type: 'address',
},
{
internalType: 'address',
name: '_interestRateStrategyAddress',
type: 'address',
},
],
name: 'initReserve',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'contract LendingPoolAddressesProvider',
name: '_addressesProvider',
type: 'address',
},
],
name: 'initialize',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_collateral',
type: 'address',
},
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_user',
type: 'address',
},
{
internalType: 'uint256',
name: '_purchaseAmount',
type: 'uint256',
},
{
internalType: 'bool',
name: '_receiveAToken',
type: 'bool',
},
],
name: 'liquidationCall',
outputs: [],
stateMutability: 'payable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'rebalanceStableBorrowRate',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address payable',
name: '_user',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'uint256',
name: '_aTokenBalanceAfterRedeem',
type: 'uint256',
},
],
name: 'redeemUnderlying',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'uint256',
name: '_rateMode',
type: 'uint256',
},
{
internalType: 'address payable',
name: '_onBehalfOf',
type: 'address',
},
],
name: 'repay',
outputs: [],
stateMutability: 'payable',
type: 'function',
},
{
inputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
name: 'reservesList',
outputs: [
{
internalType: 'address',
name: '',
type: 'address',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_configuration',
type: 'uint256',
},
],
name: 'setConfiguration',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_rateStrategyAddress',
type: 'address',
},
],
name: 'setReserveInterestRateStrategyAddress',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'bool',
name: '_useAsCollateral',
type: 'bool',
},
],
name: 'setUserUseReserveAsCollateral',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_rateMode',
type: 'uint256',
},
],
name: 'swapBorrowRateMode',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
stateMutability: 'payable',
type: 'receive',
},
];
const _bytecode =
'0x6080604052600060015534801561001557600080fd5b5060016000556159c0806200002b6000396000f3fe60806040526004361061019f5760003560e01c80638afaff02116100ec578063c72c4d101161008a578063d0fc81d211610064578063d0fc81d21461051c578063d15e005314610531578063d2493b6c14610551578063d2d0e06614610580576101d4565b8063c72c4d10146104c7578063c858f5f9146104dc578063cd112382146104fc576101d4565b8063b8d29276116100c6578063b8d2927614610428578063bf92857c14610448578063c44b11f71461047a578063c4d66de8146104a7576101d4565b80638afaff02146103d357806394ba89a2146103e85780639895e3d814610408576101d4565b80633e150141116101595780635a3b74b9116101335780635a3b74b9146103465780635cffe9de1461036657806376e9d615146103865780637a708e92146103b3576101d4565b80633e150141146102d05780634fe7a6e514610306578063573ade8114610333576101d4565b8062a718a9146101d95780630902f1ac146101ec5780631d2118f91461021757806328dd2d011461023757806335ea6a751461026d578063386497fd146102a3576101d4565b366101d4576101ad33610593565b6101d25760405162461bcd60e51b81526004016101c9906154c6565b60405180910390fd5b005b600080fd5b6101d26101e7366004614b48565b6105d1565b3480156101f857600080fd5b506102016107a3565b60405161020e91906150f9565b60405180910390f35b34801561022357600080fd5b506101d2610232366004614a5b565b610805565b34801561024357600080fd5b50610257610252366004614a5b565b6108d8565b60405161020e9a99989796959493929190615895565b34801561027957600080fd5b5061028d610288366004614a23565b610b83565b60405161020e9a99989796959493929190615849565b3480156102af57600080fd5b506102c36102be366004614a23565b610e22565b60405161020e919061578f565b3480156102dc57600080fd5b506102f06102eb366004614a23565b610e49565b60405161020e9a999897969594939291906157c9565b34801561031257600080fd5b50610326610321366004614dd4565b610f1f565b60405161020e9190614f69565b6101d2610341366004614d2b565b610f46565b34801561035257600080fd5b506101d2610361366004614c8c565b6112d8565b34801561037257600080fd5b506101d2610381366004614be1565b6114b4565b34801561039257600080fd5b506103a66103a1366004614ba1565b611918565b60405161020e9190615146565b3480156103bf57600080fd5b506101d26103ce366004614ad8565b611a62565b3480156103df57600080fd5b506102c3611b9b565b3480156103f457600080fd5b506101d2610403366004614cb9565b611ba0565b34801561041457600080fd5b506101d2610423366004614a93565b611ea9565b34801561043457600080fd5b506101d2610443366004614cb9565b612081565b34801561045457600080fd5b50610468610463366004614a23565b612142565b60405161020e96959493929190615821565b34801561048657600080fd5b5061049a610495366004614a23565b6122f3565b60405161020e91906155b5565b3480156104b357600080fd5b506101d26104c2366004614a23565b61232a565b3480156104d357600080fd5b506103266124ea565b3480156104e857600080fd5b506101d26104f7366004614d74565b6124f9565b34801561050857600080fd5b506101d2610517366004614a5b565b612a7e565b34801561052857600080fd5b506102c3612d84565b34801561053d57600080fd5b506102c361054c366004614a23565b612d8a565b34801561055d57600080fd5b5061057161056c366004614a23565b612dab565b60405161020e93929190614ffc565b6101d261058e366004614ce4565b612de0565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906105c757508115155b925050505b919050565b600260005414156105f45760405162461bcd60e51b81526004016101c99061557e565b6002600090815560355460408051632c1a75cd60e11b815290516001600160a01b0390921691635834eb9a91600480820192602092909190829003018186803b15801561064057600080fd5b505afa158015610654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106789190614a3f565b905060006060826001600160a01b031688888888886040516024016106a195949392919061501f565b60408051601f198184030181529181526020820180516001600160e01b031662a718a960e01b179052516106d59190614f4a565b600060405180830381855af49150503d8060008114610710576040519150601f19603f3d011682016040523d82523d6000602084013e610715565b606091505b5091509150816107375760405162461bcd60e51b81526004016101c9906153c5565b600060608280602001905181019061074f9190614e04565b9150915081600014610792578060405160200161076c9190614f4a565b60408051601f198184030181529082905262461bcd60e51b82526101c991600401615151565b505060016000555050505050505050565b606060398054806020026020016040519081016040528092919081815260200182805480156107fb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107dd575b5050505050905090565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561084957600080fd5b505afa15801561085d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108819190614a3f565b6001600160a01b0316146108a75760405162461bcd60e51b81526004016101c9906153fc565b6001600160a01b03918216600090815260376020526040902060090180546001600160a01b03191691909216179055565b6001600160a01b03808316600090815260376020526040808220600681015491516370a0823160e01b81529293849384938493849384938493849384938493919216906370a082319061092f908f90600401614f69565b60206040518083038186803b15801561094757600080fd5b505afa15801561095b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097f9190614dec565b9a5061098b8c82613035565b909a50985061099a8c82613149565b6001830154600784015460405163e78c9b3b60e01b8152939b5091995096506001600160a01b03169063e78c9b3b906109d7908f90600401614f69565b60206040518083038186803b1580156109ef57600080fd5b505afa158015610a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a279190614dec565b6007820154604051631e739ae360e21b81529197506001600160a01b0316906379ce6b8c90610a5a908f90600401614f69565b60206040518083038186803b158015610a7257600080fd5b505afa158015610a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa9190614eb3565b60098201546001600160a01b038e16600090815260386020908152604091829020825191820190925290548152919450610aee9190600160d01b900460ff16613202565b6008820154604051633ba641e960e21b81529193506001600160a01b03169063ee9907a490610b21908f90600401614f69565b60206040518083038186803b158015610b3957600080fd5b505afa158015610b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b719190614dec565b9350509295989b9194979a5092959850565b600080600080600080600080600080610b9a614893565b506001600160a01b03808c1660008181526037602090815260409182902082516101a08101845281548152600182015481840152600282015481850152600382015460608201526004820154608082015283519283019093526005810154825260a08301919091526006810154841660c083018190526007820154851660e08401526008820154851661010084015260099091015493841661012083015264ffffffffff600160a01b85041661014083015260ff600160c81b850481161515610160840152600160d01b90940490931661018082015291610c81919063ffffffff61321916565b8160e001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cbe57600080fd5b505afa158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf69190614dec565b8261010001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3457600080fd5b505afa158015610d48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6c9190614dec565b8360200151846040015185606001518660e001516001600160a01b03166390f6fcf26040518163ffffffff1660e01b815260040160206040518083038186803b158015610db857600080fd5b505afa158015610dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df09190614dec565b876000015188608001518961014001519a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6001600160a01b0381166000908152603760205260408120610e43906132bd565b92915050565b6000806000806000806000806000806000603760008d6001600160a01b03166001600160a01b031681526020019081526020016000209050610e8d8160050161330f565b610e9982600501613320565b610ea58360050161332f565b610eb184600501613344565b60098501546001600160a01b0316610ecb60058701613320565b1515610ed960058801613357565b610ee588600501613369565b610ef189600501613372565b610efd8a600501613384565b9a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b60398181548110610f2c57fe5b6000918252602090912001546001600160a01b0316905081565b60026000541415610f695760405162461bcd60e51b81526004016101c99061557e565b6002600055610f76614901565b6001600160a01b0385166000908152603760205260409020610f988382613035565b60208401819052818452610fb2919063ffffffff61339616565b60808301526000846002811115610fc557fe5b90506001816002811115610fd557fe5b14610fe4578260200151610fe7565b82515b604084015260001986148015906110015750826040015186105b1561100e57604083018690525b82516020840151604080860151905163152be4bd60e31b815273__$69254465eb8f179ea24caa73cf68b23524$__9363a95f25e89361105b9388938e938e938a938e933490600401615656565b60006040518083038186803b15801561107357600080fd5b505af4158015611087573d6000803e3d6000fd5b50505050611094826133bb565b60018160028111156110a257fe5b14156111175760078201546040808501519051632770a7eb60e21b81526001600160a01b0390921691639dc29fac916110e091889190600401614f7d565b600060405180830381600087803b1580156110fa57600080fd5b505af115801561110e573d6000803e3d6000fd5b50505050611182565b60088201546040808501519051632770a7eb60e21b81526001600160a01b0390921691639dc29fac9161114f91889190600401614f7d565b600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b505050505b604083015161119c9083908990600063ffffffff61347316565b604083015160808401516111b59163ffffffff61375416565b6111ed5760098201546001600160a01b03851660009081526038602052604081206111ed929091600160d01b90910460ff1690613796565b6006820154604084015161121b916001600160a01b038a81169233929190911690600063ffffffff6137cb16565b61122d876001600160a01b0316613959565b1561126f57600061124b84604001513461375490919063ffffffff16565b9050801561126d5761126d6001600160a01b038916338363ffffffff61397e16565b505b336001600160a01b0316846001600160a01b0316886001600160a01b03167f81cfb79463601de705d4cf6b8d69112983d76a685120e5e4d3581f30871b87fc8660400151426040516112c2929190615781565b60405180910390a4505060016000555050505050565b600260005414156112fb5760405162461bcd60e51b81526004016101c99061557e565b600260009081556001600160a01b03808416825260376020818152604080852033865260388352948190206035548251631f94a27560e31b8152925173__$69254465eb8f179ea24caa73cf68b23524$__9663a6b84c0b9689968c9691959460399493169263fca513a8926004808201939291829003018186803b15801561138257600080fd5b505afa158015611396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ba9190614a3f565b6040518763ffffffff1660e01b81526004016113db969594939291906155ed565b60006040518083038186803b1580156113f357600080fd5b505af4158015611407573d6000803e3d6000fd5b50505050600981015433600090815260386020526040902061143391600160d01b900460ff1684613a37565b81156114735760405133906001600160a01b038516907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a36114aa565b60405133906001600160a01b038516907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b5050600160005550565b600260005414156114d75760405162461bcd60e51b81526004016101c99061557e565b60026000556114e4614930565b6001600160a01b038085166000818152603760205260409020600681015490921660a0840181905261151c919063ffffffff61321916565b825261154161271061153586600963ffffffff613a7216565b9063ffffffff613aac16565b60608301819052611562906127109061153590610bb863ffffffff613a7216565b608083015281518411156115885760405162461bcd60e51b81526004016101c9906151b0565b600082606001511180156115a0575060008260800151115b6115bc5760405162461bcd60e51b81526004016101c9906154e2565b60a0820151604051634efecaa560e01b8152879182916001600160a01b0390911690634efecaa5906115f49084908a90600401614f7d565b602060405180830381600087803b15801561160e57600080fd5b505af1158015611622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116469190614dec565b5060a0840151606085015160405163405b019d60e01b81526001600160a01b0385169263405b019d92611682928c92918c918c90600401614fb7565b600060405180830381600087803b15801561169c57600080fd5b505af11580156116b0573d6000803e3d6000fd5b5050505060006116d68560a00151896001600160a01b031661321990919063ffffffff16565b606086015186519192506116f0919063ffffffff61339616565b811461170e5760405162461bcd60e51b81526004016101c990615287565b8373__$5e6137a1b5a0a366e2874209b5abf71c10$__638acb830b90918a886000015161174c8a608001518b6060015161375490919063ffffffff16565b8a608001516040518663ffffffff1660e01b81526004016117719594939291906156b5565b60006040518083038186803b15801561178957600080fd5b505af415801561179d573d6000803e3d6000fd5b505050508460a001516001600160a01b0316634efecaa5603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b15801561180257600080fd5b505afa158015611816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183a9190614a3f565b87608001516040518363ffffffff1660e01b815260040161185c929190614f7d565b602060405180830381600087803b15801561187657600080fd5b505af115801561188a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ae9190614dec565b50876001600160a01b0316896001600160a01b03167f5b8f46461c1dd69fb968f1a003acee221ea3e19540e350233b612ddb43433b5589886060015189608001514260405161190094939291906157ae565b60405180910390a35050600160005550505050505050565b600073__$7347ff53b2b46c21e26a37164ae7f6739f$__63865cb0ce8585856037603860008a6001600160a01b03166001600160a01b031681526020019081526020016000206039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ae57600080fd5b505afa1580156119c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e69190614a3f565b6040518863ffffffff1660e01b8152600401611a089796959493929190615077565b60206040518083038186803b158015611a2057600080fd5b505af4158015611a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a589190614db8565b90505b9392505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611aa657600080fd5b505afa158015611aba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ade9190614a3f565b6001600160a01b031614611b045760405162461bcd60e51b81526004016101c9906153fc565b6001600160a01b038516600090815260376020526040908190209051632d621e9960e21b815273__$5e6137a1b5a0a366e2874209b5abf71c10$__9163b5887a6491611b5b919088908890889088906004016155bf565b60006040518083038186803b158015611b7357600080fd5b505af4158015611b87573d6000803e3d6000fd5b50505050611b9485613aee565b5050505050565b600281565b60026000541415611bc35760405162461bcd60e51b81526004016101c99061557e565b600260009081556001600160a01b03831681526037602052604081209080611beb3384613035565b915091506000846002811115611bfd57fe5b336000908152603860205260409081902090516306c4439560e31b815291925073__$69254465eb8f179ea24caa73cf68b23524$__916336221ca891611c4e9188919088908890889060040161574b565b60006040518083038186803b158015611c6657600080fd5b505af4158015611c7a573d6000803e3d6000fd5b50505050611c87846133bb565b6001816002811115611c9557fe5b1415611d6c576007840154604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90611ccf9033908790600401614f7d565b600060405180830381600087803b158015611ce957600080fd5b505af1158015611cfd573d6000803e3d6000fd5b50505060088501546040516340c10f1960e01b81526001600160a01b0390911691506340c10f1990611d359033908790600401614f7d565b600060405180830381600087803b158015611d4f57600080fd5b505af1158015611d63573d6000803e3d6000fd5b50505050611e3e565b6008840154604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90611da09033908690600401614f7d565b600060405180830381600087803b158015611dba57600080fd5b505af1158015611dce573d6000803e3d6000fd5b5050505060078401546003850154604051630ab714fb60e11b81526001600160a01b039092169163156e29f691611e0b9133918791600401614f96565b600060405180830381600087803b158015611e2557600080fd5b505af1158015611e39573d6000803e3d6000fd5b505050505b611e51848760008063ffffffff61347316565b336001600160a01b0316866001600160a01b03167fea368a40e9570069bb8e6511d668293ad2e1f03b0d982431fd223de9f3b70ca642604051611e94919061578f565b60405180910390a35050600160005550505050565b60026000541415611ecc5760405162461bcd60e51b81526004016101c99061557e565b600260009081556001600160a01b03808616825260376020526040918290206006810154925163cf478a7960e01b815290929091169073__$69254465eb8f179ea24caa73cf68b23524$__9063cf478a7990611f309085908a908990600401615637565b60006040518083038186803b158015611f4857600080fd5b505af4158015611f5c573d6000803e3d6000fd5b50505050611f69826133bb565b611f7c828760008763ffffffff61347316565b82611fb55760098201546001600160a01b0386166000908152603860205260408120611fb5929091600160d01b90910460ff1690613a37565b6006820154604051634efecaa560e01b81526001600160a01b0390911690634efecaa590611fe99088908890600401614f7d565b602060405180830381600087803b15801561200357600080fd5b505af1158015612017573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203b9190614dec565b50846001600160a01b0316866001600160a01b03167f9c4ed599cd8555b9c1e8cd7643240d7d71eb76b792948c49fcb4d411f7b6b3c68642604051611e94929190615781565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156120c557600080fd5b505afa1580156120d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fd9190614a3f565b6001600160a01b0316146121235760405162461bcd60e51b81526004016101c9906153fc565b6001600160a01b03909116600090815260376020526040902060050155565b6001600160a01b038116600090815260386020908152604080832081518084018352905481526039805483518186028101860190945280845285948594859485948594612251948c9460379493909290918301828280156121cc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121ae575b505060355460408051631f94a27560e31b815290516001600160a01b03909216945063fca513a893506004808201935060209291829003018186803b15801561221457600080fd5b505afa158015612228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224c9190614a3f565b613bc3565b60405163d609bd1b60e01b8152949a5092985095509350915073__$7347ff53b2b46c21e26a37164ae7f6739f$__9063d609bd1b9061229890899089908790600401615798565b60206040518083038186803b1580156122b057600080fd5b505af41580156122c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e89190614dec565b935091939550919395565b6122fb61496f565b506001600160a01b03166000908152603760209081526040918290208251918201909252600590910154815290565b61235d6040518060400160405280601281526020017124b739b4b2329034b734ba34b0b634bd32b960711b8152506140c3565b600061236761415b565b90506123996040518060400160405280600e81526020016d5265766973696f6e20697320257360901b81525082614160565b6123c360405180604001604052806008815260200167546869733a20257360c01b81525030614207565b60025460ff16806123d757506123d7614266565b806123e3575060015481115b6123ff5760405162461bcd60e51b81526004016101c990615377565b60025460ff16158015612420576002805460ff191660019081179091558290555b603580546001600160a01b0319166001600160a01b03858116919091179182905560408051633efbbf0f60e21b81529051929091169163fbeefc3c91600480820192602092909190829003018186803b15801561247c57600080fd5b505afa158015612490573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b49190614a3f565b603680546001600160a01b0319166001600160a01b039290921691909117905580156124e5576002805460ff191690555b505050565b6035546001600160a01b031681565b6002600054141561251c5760405162461bcd60e51b81526004016101c99061557e565b600260009081556001600160a01b038516815260376020908152604080832033845260389092528220909161266a6125566005850161330f565b600a0a61153588603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156125ab57600080fd5b505afa1580156125bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e39190614a3f565b6001600160a01b031663b3596f078c6040518263ffffffff1660e01b815260040161260e9190614f69565b60206040518083038186803b15801561262657600080fd5b505afa15801561263a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265e9190614dec565b9063ffffffff613a7216565b905073__$69254465eb8f179ea24caa73cf68b23524$__63dfb6b2d7848989858a6019603760386000336001600160a01b03166001600160a01b031681526020019081526020016000206039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561270457600080fd5b505afa158015612718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273c9190614a3f565b6040518b63ffffffff1660e01b81526004016127619a999897969594939291906156e1565b60006040518083038186803b15801561277957600080fd5b505af415801561278d573d6000803e3d6000fd5b50505050600383015461279f846133bb565b60018660028111156127ad57fe5b60028111156127b857fe5b14156128b1576007840154604051630ab714fb60e11b81526001600160a01b039091169063156e29f6906127f49033908b908690600401614f96565b600060405180830381600087803b15801561280e57600080fd5b505af1158015612822573d6000803e3d6000fd5b505050506007840154604051631e739ae360e21b81526000916001600160a01b0316906379ce6b8c90612859903390600401614f69565b60206040518083038186803b15801561287157600080fd5b505afa158015612885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a99190614eb3565b905050612918565b60088401546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906128e59033908b90600401614f7d565b600060405180830381600087803b1580156128ff57600080fd5b505af1158015612913573d6000803e3d6000fd5b505050505b61292b848960008a63ffffffff61347316565b600984015460408051602081019091528454815261295291600160d01b900460ff1661426c565b612972576009840154612972908490600160d01b900460ff166001613796565b6006840154604051634efecaa560e01b81526001600160a01b0390911690634efecaa5906129a69033908b90600401614f7d565b602060405180830381600087803b1580156129c057600080fd5b505af11580156129d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f89190614dec565b5061ffff8516336001600160a01b038a167fe002884724be85e729c98360169e709585b299ace6fbe12aa791d2fee6f652808a8a60018c6002811115612a3a57fe5b6002811115612a4557fe5b14612a54578960020154612a56565b865b42604051612a6794939291906157ae565b60405180910390a450506001600055505050505050565b60026000541415612aa15760405162461bcd60e51b81526004016101c99061557e565b600260009081556001600160a01b03808416825260376020526040808320600781015491516370a0823160e01b81529093919092169182906370a0823190612aed908790600401614f69565b60206040518083038186803b158015612b0557600080fd5b505afa158015612b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3d9190614dec565b905060008111612b5f5760405162461bcd60e51b81526004016101c99061531a565b6000612b98612b876aa56fa5b99019a5c8000000612b7b61427c565b9063ffffffff61339616565b60038601549063ffffffff61428c16565b90506000836001600160a01b031663e78c9b3b876040518263ffffffff1660e01b8152600401612bc89190614f69565b60206040518083038186803b158015612be057600080fd5b505afa158015612bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c189190614dec565b90508460010154811080612c2b57508181115b612c475760405162461bcd60e51b81526004016101c990615238565b612c50856133bb565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac90612c7e9089908790600401614f7d565b600060405180830381600087803b158015612c9857600080fd5b505af1158015612cac573d6000803e3d6000fd5b5050506003860154604051630ab714fb60e11b81526001600160a01b038716925063156e29f691612ce3918a918891600401614f96565b600060405180830381600087803b158015612cfd57600080fd5b505af1158015612d11573d6000803e3d6000fd5b50612d2b925087915089905060008063ffffffff61347316565b856001600160a01b0316876001600160a01b03167f443060d15ff6dac05881a7c07a46ef8085d8af4399e436be6c25250df40c5f1842604051612d6e919061578f565b60405180910390a3505050505050506001600055565b60001981565b6001600160a01b0381166000908152603760205260408120610e43906142ce565b6001600160a01b0390811660009081526037602052604090206006810154600782015460089092015490831693918316921690565b60026000541415612e035760405162461bcd60e51b81526004016101c99061557e565b600260009081556001600160a01b03841681526037602052604090819020905163b25dc48d60e01b815273__$69254465eb8f179ea24caa73cf68b23524$__9063b25dc48d90612e599084908790600401615781565b60006040518083038186803b158015612e7157600080fd5b505af4158015612e85573d6000803e3d6000fd5b50505060068201546040516370a0823160e01b81526001600160a01b03909116915060009082906370a0823190612ec0903390600401614f69565b60206040518083038186803b158015612ed857600080fd5b505afa158015612eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f109190614dec565b159050612f1c836133bb565b612f2f838787600063ffffffff61347316565b8015612f5e576009830154336000908152603860205260409020612f5e91600160d01b900460ff166001613a37565b6040516394362e8b60e01b81526001600160a01b038316906394362e8b90612f8c9033908990600401614f7d565b600060405180830381600087803b158015612fa657600080fd5b505af1158015612fba573d6000803e3d6000fd5b50612fd6925050506001600160a01b03871633848860016137cb565b8361ffff16336001600160a01b0316876001600160a01b03167fc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c828842604051613020929190615781565b60405180910390a45050600160005550505050565b60078101546040516370a0823160e01b815260009182916001600160a01b03909116906370a082319061306c908790600401614f69565b60206040518083038186803b15801561308457600080fd5b505afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190614dec565b60088401546040516370a0823160e01b81526001600160a01b03909116906370a08231906130ee908890600401614f69565b60206040518083038186803b15801561310657600080fd5b505afa15801561311a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313e9190614dec565b915091509250929050565b600781015460405163631a6fd560e11b815260009182916001600160a01b039091169063c634dfaa90613180908790600401614f69565b60206040518083038186803b15801561319857600080fd5b505afa1580156131ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d09190614dec565b600884015460405163631a6fd560e11b81526001600160a01b039091169063c634dfaa906130ee908890600401614f69565b815160016002830281019190911c16151592915050565b600061322483613959565b1561323a57506001600160a01b03811631610e43565b6040516370a0823160e01b81526001600160a01b038416906370a0823190613266908590600401614f69565b60206040518083038186803b15801561327e57600080fd5b505afa158015613292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b69190614dec565b9050610e43565b600981015460009064ffffffffff600160a01b90910481169042168114156132eb57505060048101546105cc565b60006105c78460040154613303866002015485614311565b9063ffffffff61428c16565b5460301c610f01600160d01b031690565b54670fffffffffff0000191690565b5460101c650fffffff0001600160f01b031690565b5460201c630fff0001600160e01b031690565b54603a1c6003600160c61b0316151590565b54603b1c151590565b5460381c600f600160c81b0316151590565b5460391c6007600160c71b0316151590565b600082820183811015611a5b5760405162461bcd60e51b81526004016101c990615201565b60006133c682614376565b9050801561344f57600182015460098301546000916133f291600160a01b900464ffffffffff1661448b565b835490915061340890829063ffffffff61428c16565b83556002830154600984015460009161342e91600160a01b900464ffffffffff16614311565b905061344784600401548261428c90919063ffffffff16565b600485015550505b50600901805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055565b60078401546040805163487b7e7960e11b815290516000926001600160a01b0316916390f6fcf2916004808301926020929190829003018186803b1580156134ba57600080fd5b505afa1580156134ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134f29190614dec565b6006860154909150600090613519906001600160a01b03878116911663ffffffff61321916565b6009870154909150600090819081906001600160a01b03166357e37af0896135578961354b898d63ffffffff61339616565b9063ffffffff61375416565b8c60070160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156135a757600080fd5b505afa1580156135bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135df9190614dec565b8d60080160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561362f57600080fd5b505afa158015613643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136679190614dec565b8a6040518663ffffffff1660e01b81526004016136889594939291906150cb565b60606040518083038186803b1580156136a057600080fd5b505afa1580156136b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d89190614e86565b60018c0183905560038c0182905560028c018190558b5460048d01546040519497509295509093506001600160a01b038b16927f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a49261374192889288928c928992909190615821565b60405180910390a2505050505050505050565b6000611a5b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506144eb565b81600202816137a65760006137a9565b60015b60ff16901b826002026001901b19846000015416178360000181905550505050565b816137d557611b94565b6137de85613959565b1561393e57813410156138035760405162461bcd60e51b81526004016101c99061544f565b6001600160a01b0383163014613896576000836001600160a01b03168361c3509060405161383090614f66565b600060405180830381858888f193505050503d806000811461386e576040519150601f19603f3d011682016040523d82523d6000602084013e613873565b606091505b50509050806138945760405162461bcd60e51b81526004016101c990615499565b505b8080156138a257508134115b156139395760006001600160a01b0385166138c3348563ffffffff61375416565b61c350906040516138d390614f66565b600060405180830381858888f193505050503d8060008114613911576040519150601f19603f3d011682016040523d82523d6000602084013e613916565b606091505b50509050806139375760405162461bcd60e51b81526004016101c990615499565b505b611b94565b611b946001600160a01b03861685858563ffffffff61451716565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14919050565b80613988576124e5565b61399183613959565b15613a1d576000826001600160a01b03168261c350906040516139b390614f66565b600060405180830381858888f193505050503d80600081146139f1576040519150601f19603f3d011682016040523d82523d6000602084013e6139f6565b606091505b5050905080613a175760405162461bcd60e51b81526004016101c990615499565b506124e5565b6124e56001600160a01b038416838363ffffffff61457516565b8160020260010181613a4a576000613a4d565b60015b60ff16901b826002026001016001901b19846000015416178360000181905550505050565b600082613a8157506000610e43565b82820282848281613a8e57fe5b0414611a5b5760405162461bcd60e51b81526004016101c9906152d9565b6000611a5b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614594565b6000805b603954811015613b3b57826001600160a01b031660398281548110613b1357fe5b6000918252602090912001546001600160a01b03161415613b3357600191505b600101613af2565b5080613bbf57603980546001600160a01b0384166000818152603760205260408120600901805460ff909416600160d01b0260ff60d01b19909416939093179092558254600181018455929091527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d390910180546001600160a01b03191690911790555b5050565b6000806000806000613bd3614982565b613bdc896145cb565b15613bf957506000945084935083925082915060001990506140b6565b600060e08201525b87518160e0015110156140095760e0810151613c24908a9063ffffffff6145d016565b613c2d57613ff9565b878160e0015181518110613c3d57fe5b6020908102919091018101516001600160a01b031661020083018190526000908152908b905260409020613c73600582016145e0565b6080860181905260c08601929092525060a0840191909152600a0a602083015261020082015160405163b3596f0760e01b81526001600160a01b038a169163b3596f0791613cc49190600401614f69565b60206040518083038186803b158015613cdc57600080fd5b505afa158015613cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d149190614dec565b825260a082015115801590613d3a575060e0820151613d3a908b9063ffffffff61320216565b15613e6b5760068101546040516370a0823160e01b81526001600160a01b03909116906370a0823190613d71908f90600401614f69565b60206040518083038186803b158015613d8957600080fd5b505afa158015613d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dc19190614dec565b6040830181905260208301518351600092613de692916115359163ffffffff613a7216565b610120840151909150613dff908263ffffffff61339616565b61012084015260a0830151613e3190613e1f90839063ffffffff613a7216565b6101808501519063ffffffff61339616565b61018084015260c0830151613e6390613e5190839063ffffffff613a7216565b6101a08501519063ffffffff61339616565b6101a0840152505b60e0820151613e81908b9063ffffffff61426c16565b15613ff75760078101546040516370a0823160e01b81526001600160a01b03909116906370a0823190613eb8908f90600401614f69565b60206040518083038186803b158015613ed057600080fd5b505afa158015613ee4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f089190614dec565b826060018181525050613fb88160080160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b8152600401613f579190614f69565b60206040518083038186803b158015613f6f57600080fd5b505afa158015613f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fa79190614dec565b60608401519063ffffffff61339616565b6060830181905260208301518351613ff092613fde92916115359163ffffffff613a7216565b6101408401519063ffffffff61339616565b6101408301525b505b60e0810180516001019052613c01565b60008161012001511161401d576000614038565b6101208101516101808201516140389163ffffffff613aac16565b61018082015261012081015161404f57600061406a565b6101208101516101a082015161406a9163ffffffff613aac16565b6101a0820181905261012082015161014083015161408792614627565b61010082018190526101208201516101408301516101808401516101a090940151919850965091945090925090505b9550955095509550959050565b60006a636f6e736f6c652e6c6f676001600160a01b0316826040516024016140eb9190615151565b60408051601f198184030181529181526020820180516001600160e01b031663104c13eb60e21b179052516141209190614f4a565b600060405180830381855afa9150503d8060008114611b94576040519150601f19603f3d011682016040523d82523d6000602084013e611b94565b600290565b60006a636f6e736f6c652e6c6f676001600160a01b0316838360405160240161418a92919061518e565b60408051601f198184030181529181526020820180516001600160e01b03166309710a9d60e41b179052516141bf9190614f4a565b600060405180830381855afa9150503d80600081146141fa576040519150601f19603f3d011682016040523d82523d6000602084013e6141ff565b606091505b505050505050565b60006a636f6e736f6c652e6c6f676001600160a01b03168383604051602401614231929190615164565b60408051601f198184030181529181526020820180516001600160e01b031663319af33360e01b179052516141bf9190614f4a565b303b1590565b9051600160029092021c16151590565b6b033b2e3c9fd0803ce800000090565b6000611a5b6b033b2e3c9fd0803ce80000006115356142b1868663ffffffff613a7216565b60026b033b2e3c9fd0803ce80000005b049063ffffffff61339616565b600981015460009064ffffffffff600160a01b90910481169042168114156142f957505080546105cc565b60006105c7846000015461330386600101548561448b565b60008061432b4264ffffffffff851663ffffffff61375416565b90506000614343856301e1338063ffffffff613aac16565b905061436d8261436161435461427c565b849063ffffffff61339616565b9063ffffffff61465716565b95945050505050565b6000610e438260080160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156143cb57600080fd5b505afa1580156143df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144039190614dec565b8360070160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445357600080fd5b505afa158015614467573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7b9190614dec565b6000806144a54264ffffffffff851663ffffffff61375416565b905060006144ce6144b96301e133806146b1565b6144c2846146b1565b9063ffffffff6146c716565b905061436d6144db61427c565b612b7b878463ffffffff61428c16565b6000818484111561450f5760405162461bcd60e51b81526004016101c99190615151565b505050900390565b61456f846323b872dd60e01b85858560405160240161453893929190615053565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526146f2565b50505050565b6124e58363a9059cbb60e01b8484604051602401614538929190614f7d565b600081836145b55760405162461bcd60e51b81526004016101c99190615151565b5060008385816145c157fe5b0495945050505050565b511590565b9051600360029092021c16151590565b54670fffffffffff000019811691601082901c650fffffff0001600160f01b031691602081901c630fff0001600160e01b03169160309190911c610f01600160d01b031690565b6000826146375750600019611a5b565b611a588361464b868563ffffffff61478116565b9063ffffffff6147a616565b600060028206614673576b033b2e3c9fd0803ce8000000614675565b825b90506002820491505b8115610e435761468e838461428c565b925060028206156146a6576146a3818461428c565b90505b60028204915061467e565b6000610e4382633b9aca0063ffffffff613a7216565b6000600282046146ea83611535614354876b033b2e3c9fd0803ce8000000613a72565b949350505050565b6060614747826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166147c59092919063ffffffff16565b8051909150156124e557808060200190518101906147659190614db8565b6124e55760405162461bcd60e51b81526004016101c990615534565b6000611a5b61271061153561479c868663ffffffff613a7216565b60026127106142c1565b6000600282046146ea8361153561435487670de0b6b3a7640000613a72565b6060611a58848460008560606147da85610593565b6147f65760405162461bcd60e51b81526004016101c990615418565b60006060866001600160a01b031685876040516148139190614f4a565b60006040518083038185875af1925050503d8060008114614850576040519150601f19603f3d011682016040523d82523d6000602084013e614855565b606091505b509150915081156148695791506146ea9050565b8051156148795780518082602001fd5b8360405162461bcd60e51b81526004016101c99190615151565b604051806101a0016040528060008152602001600081526020016000815260200160008152602001600081526020016148ca61496f565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e09091015290565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060c00160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681525090565b6040518060200160405280600081525090565b60405180610260016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b031681526020016000151581526020016000151581525090565b600060208284031215614a34578081fd5b8135611a5b81615967565b600060208284031215614a50578081fd5b8151611a5b81615967565b60008060408385031215614a6d578081fd5b8235614a7881615967565b91506020830135614a8881615967565b809150509250929050565b60008060008060808587031215614aa8578182fd5b8435614ab381615967565b93506020850135614ac381615967565b93969395505050506040820135916060013590565b600080600080600060a08688031215614aef578081fd5b8535614afa81615967565b94506020860135614b0a81615967565b93506040860135614b1a81615967565b92506060860135614b2a81615967565b91506080860135614b3a81615967565b809150509295509295909350565b600080600080600060a08688031215614b5f578081fd5b8535614b6a81615967565b94506020860135614b7a81615967565b93506040860135614b8a81615967565b9250606086013591506080860135614b3a8161597c565b600080600060608486031215614bb5578283fd5b8335614bc081615967565b92506020840135614bd081615967565b929592945050506040919091013590565b60008060008060808587031215614bf6578384fd5b8435614c0181615967565b93506020850135614c1181615967565b925060408501359150606085013567ffffffffffffffff811115614c33578182fd5b80860187601f820112614c44578283fd5b80359150614c59614c548361590a565b6158e3565b828152886020848401011115614c6d578384fd5b8260208301602083013791820160200192909252939692955090935050565b60008060408385031215614c9e578182fd5b8235614ca981615967565b91506020830135614a888161597c565b60008060408385031215614ccb578182fd5b8235614cd681615967565b946020939093013593505050565b600080600060608486031215614cf8578081fd5b8335614d0381615967565b925060208401359150604084013561ffff81168114614d20578182fd5b809150509250925092565b60008060008060808587031215614d40578182fd5b8435614d4b81615967565b935060208501359250604085013591506060850135614d6981615967565b939692955090935050565b60008060008060808587031215614d89578182fd5b8435614d9481615967565b93506020850135925060408501359150606085013561ffff81168114614d69578182fd5b600060208284031215614dc9578081fd5b8151611a5b8161597c565b600060208284031215614de5578081fd5b5035919050565b600060208284031215614dfd578081fd5b5051919050565b60008060408385031215614e16578182fd5b82519150602083015167ffffffffffffffff811115614e33578182fd5b80840185601f820112614e44578283fd5b80519150614e54614c548361590a565b828152866020848401011115614e68578384fd5b614e7983602083016020850161592e565b8093505050509250929050565b600080600060608486031215614e9a578081fd5b8351925060208401519150604084015190509250925092565b600060208284031215614ec4578081fd5b815164ffffffffff81168114611a5b578182fd5b6000815480845260208085019450838352808320835b83811015614f135781546001600160a01b031687529582019560019182019101614eee565b509495945050505050565b60008151808452614f3681602086016020860161592e565b601f01601f19169290920160200192915050565b60008251614f5c81846020870161592e565b9190910192915050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614ff190830184614f1e565b979650505050505050565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252901515608082015260a00190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060018060a01b03808a16835280891660208401528760408401528660608401528554608084015260e060a08401526150b460e0840186614ed8565b915080841660c08401525098975050505050505050565b6001600160a01b03959095168552602085019390935260408401919091526060830152608082015260a00190565b6020808252825182820181905260009190848201906040850190845b8181101561513a5783516001600160a01b031683529284019291840191600101615115565b50909695505050505050565b901515815260200190565b600060208252611a5b6020830184614f1e565b6000604082526151776040830185614f1e565b905060018060a01b03831660208301529392505050565b6000604082526151a16040830185614f1e565b90508260208301529392505050565b60208082526031908201527f5468657265206973206e6f7420656e6f756768206c697175696469747920617660408201527061696c61626c6520746f20626f72726f7760781b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252602f908201527f496e746572657374207261746520726562616c616e636520636f6e646974696f60408201526e1b9cc81dd95c99481b9bdd081b595d608a1b606082015260800190565b60208082526032908201527f5468652061637475616c2062616c616e6365206f66207468652070726f746f636040820152711bdb081a5cc81a5b98dbdb9cda5cdd195b9d60721b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526038908201527f5573657220646f6573206e6f74206861766520616e7920737461626c6520726160408201527f7465206c6f616e20666f72207468697320726573657276650000000000000000606082015260800190565b6020808252602e908201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560408201526d195b881a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526017908201527f4c69717569646174696f6e2063616c6c206661696c6564000000000000000000604082015260600190565b602080825260029082015261033360f41b604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f57726f6e67207573616765206f66204554482e756e6976657273616c5472616e6040820152697366657246726f6d282960b01b606082015260800190565b60208082526013908201527211551217d514905394d1915497d19052531151606a1b604082015260600190565b602080825260029082015261191960f11b604082015260600190565b60208082526032908201527f5468652072657175657374656420616d6f756e7420697320746f6f20736d616c60408201527136103337b9103090233630b9b42637b0b71760711b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b9051815260200190565b9485526001600160a01b03938416602086015291831660408501528216606084015216608082015260a00190565b600087825260018060a01b03808816602084015286604084015285606084015260c0608084015261562160c0840186614ed8565b915080841660a084015250979650505050505050565b9283526001600160a01b03919091166020830152604082015260600190565b8981526001600160a01b0389811660208301526040820189905261012082019061567f8961595a565b8860608401528088166080840152508560a08301528460c08301528360e0830152826101008301529a9950505050505050505050565b9485526001600160a01b0393909316602085015260408401919091526060830152608082015260a00190565b60006101408c835260018060a01b03808d1660208501528b60408501528a60608501528960808501528860a08501528760c08501528660e08501528161010085015261572f82850187614ed8565b925080851661012085015250509b9a5050505050505050505050565b600060a0820190508682528560208301528460408301528360608301526157718361595a565b8260808301529695505050505050565b918252602082015260400190565b90815260200190565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b998a5260208a0198909852604089019690965260608801949094526001600160a01b03929092166080870152151560a0860152151560c0850152151560e0840152151561010083015215156101208201526101400190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b998a5260208a019890985260408901969096526060880194909452608087019290925260a086015260c085015260e084015261010083015264ffffffffff166101208201526101400190565b998a5260208a019890985260408901969096526060880194909452608087019290925260a086015260c085015260e084015264ffffffffff1661010083015215156101208201526101400190565b60405181810167ffffffffffffffff8111828210171561590257600080fd5b604052919050565b600067ffffffffffffffff821115615920578081fd5b50601f01601f191660200190565b60005b83811015615949578181015183820152602001615931565b8381111561456f5750506000910152565b6003811061596457fe5b50565b6001600160a01b038116811461596457600080fd5b801515811461596457600080fdfea2646970667358221220bb9bb3dd58358e9abf3b491d2fe2141273075b21f4978f4315cd99234a188f4b64736f6c63430006080033';
export interface LendingPoolLibraryAddresses {
['__$69254465eb8f179ea24caa73cf68b23524$__']: string;
['__$5e6137a1b5a0a366e2874209b5abf71c10$__']: string;
['__$7347ff53b2b46c21e26a37164ae7f6739f$__']: string;
}