aave-protocol-v2/types/LendingPoolFactory.ts
2020-07-03 23:20:02 +02:00

1364 lines
72 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("__\\$2ec35834968386f54fa313129cf94664e4\\$__", "g"),
linkLibraryAddresses["__$2ec35834968386f54fa313129cf94664e4$__"]
.replace(/^0x/, "")
.toLowerCase()
);
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: "_newStableRate",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_borrowBalanceIncrease",
type: "uint256"
},
{
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: "_newRateMode",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_newRate",
type: "uint256"
},
{
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: "_reserve",
type: "address"
}
],
name: "disableReserveAsCollateral",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_baseLTVasCollateral",
type: "uint256"
},
{
internalType: "uint256",
name: "_liquidationThreshold",
type: "uint256"
},
{
internalType: "uint256",
name: "_liquidationBonus",
type: "uint256"
}
],
name: "enableReserveAsCollateral",
outputs: [],
stateMutability: "nonpayable",
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: "getReserveConfigurationData",
outputs: [
{
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: "address",
name: "aTokenAddress",
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: [],
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: "totalFeesETH",
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: "currentStableBorrowBalance",
type: "uint256"
},
{
internalType: "uint256",
name: "currentVariableBorrowBalance",
type: "uint256"
},
{
internalType: "uint256",
name: "principalStableBorrowBalance",
type: "uint256"
},
{
internalType: "uint256",
name: "principalVariableBorrowBalance",
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: "uint256",
name: "_decimals",
type: "uint256"
},
{
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: "bool",
name: "_active",
type: "bool"
}
],
name: "setReserveActive",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_ltv",
type: "uint256"
}
],
name: "setReserveBaseLTVasCollateral",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "bool",
name: "_borrowingEnabled",
type: "bool"
},
{
internalType: "bool",
name: "_stableBorrowRateEnabled",
type: "bool"
}
],
name: "setReserveBorrowingEnabled",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_decimals",
type: "uint256"
}
],
name: "setReserveDecimals",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "bool",
name: "_isFreezed",
type: "bool"
}
],
name: "setReserveFreeze",
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: "uint256",
name: "_bonus",
type: "uint256"
}
],
name: "setReserveLiquidationBonus",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_threshold",
type: "uint256"
}
],
name: "setReserveLiquidationThreshold",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "bool",
name: "_enabled",
type: "bool"
}
],
name: "setReserveStableBorrowRateEnabled",
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"
}
],
name: "swapBorrowRateMode",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
stateMutability: "payable",
type: "receive"
}
];
const _bytecode =
"0x6080604052600060015534801561001557600080fd5b506001600055615a14806200002b6000396000f3fe6080604052600436106101fc5760003560e01c806373b2f2f21161010d578063c4d66de8116100a0578063d0fc81d21161006f578063d0fc81d214610b0d578063d15e005314610b22578063d2d0e06614610b55578063d466016f14610b8b578063e8ae2f5b14610bc457610242565b8063c4d66de814610a41578063c72c4d1014610a74578063c858f5f914610a89578063cd11238214610ad257610242565b80639895e3d8116100dc5780639895e3d81461090d578063a5bc826c14610956578063b736aaeb1461099b578063bf92857c146109d657610242565b806373b2f2f21461082b57806376e9d615146108665780638afaff02146108bd57806396e957c4146108d257610242565b80633e150141116101905780635a3b74b91161015f5780635a3b74b9146106685780635cffe9de146106a357806366bbd928146107765780636ee365f9146107af57806370fb84f4146107f257610242565b80633e1501411461052057806348ca1300146105b55780634fe7a6e5146105e8578063573ade811461062e57610242565b806328dd2d01116101cc57806328dd2d01146103845780633443a14b1461041857806335ea6a7514610451578063386497fd146104db57610242565b8062a718a9146102475780630902f1ac1461028b57806309eab60f146102f05780631d2118f91461034957610242565b366102425761020a33610bf7565b610240576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b610240600480360360a081101561025d57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610c33565b34801561029757600080fd5b506102a0610ffa565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102dc5781810151838201526020016102c4565b505050509050019250505060405180910390f35b3480156102fc57600080fd5b50610240600480360360c081101561031357600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160808201359160a001351661105c565b34801561035557600080fd5b506102406004803603604081101561036c57600080fd5b506001600160a01b03813581169160200135166111c3565b34801561039057600080fd5b506103bf600480360360408110156103a757600080fd5b506001600160a01b03813581169160200135166112a4565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015264ffffffffff16610100840152151561012083015251908190036101400190f35b34801561042457600080fd5b506102406004803603604081101561043b57600080fd5b506001600160a01b0381351690602001356115cb565b34801561045d57600080fd5b506104846004803603602081101561047457600080fd5b50356001600160a01b031661169a565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015264ffffffffff1661012083015251908190036101400190f35b3480156104e757600080fd5b5061050e600480360360208110156104fe57600080fd5b50356001600160a01b0316611986565b60408051918252519081900360200190f35b34801561052c57600080fd5b506105536004803603602081101561054357600080fd5b50356001600160a01b03166119ad565b604080519a8b5260208b0199909952898901979097526001600160a01b0395861660608a015293909416608088015290151560a0870152151560c086015290151560e08501521515610100840152151561012083015251908190036101400190f35b3480156105c157600080fd5b50610240600480360360208110156105d857600080fd5b50356001600160a01b0316611a23565b3480156105f457600080fd5b506106126004803603602081101561060b57600080fd5b5035611ad1565b604080516001600160a01b039092168252519081900360200190f35b6102406004803603608081101561064457600080fd5b506001600160a01b0381358116916020810135916040820135916060013516611af8565b34801561067457600080fd5b506102406004803603604081101561068b57600080fd5b506001600160a01b03813516906020013515156120ce565b3480156106af57600080fd5b50610240600480360360808110156106c657600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561070157600080fd5b82018360208201111561071357600080fd5b8035906020019184600183028401116401000000008311171561073557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612334945050505050565b34801561078257600080fd5b506102406004803603604081101561079957600080fd5b506001600160a01b0381351690602001356127dd565b3480156107bb57600080fd5b50610240600480360360608110156107d257600080fd5b506001600160a01b038135169060208101351515906040013515156128ac565b3480156107fe57600080fd5b506102406004803603604081101561081557600080fd5b506001600160a01b038135169060200135612a71565b34801561083757600080fd5b506102406004803603604081101561084e57600080fd5b506001600160a01b0381351690602001351515612b40565b34801561087257600080fd5b506108a96004803603606081101561088957600080fd5b506001600160a01b03813581169160208101359091169060400135612c28565b604080519115158252519081900360200190f35b3480156108c957600080fd5b5061050e612db8565b3480156108de57600080fd5b50610240600480360360408110156108f557600080fd5b506001600160a01b0381351690602001351515612dbd565b34801561091957600080fd5b506102406004803603608081101561093057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612ea5565b34801561096257600080fd5b506102406004803603608081101561097957600080fd5b506001600160a01b038135169060208101359060408101359060600135613041565b3480156109a757600080fd5b50610240600480360360408110156109be57600080fd5b506001600160a01b038135169060200135151561318a565b3480156109e257600080fd5b50610a09600480360360208110156109f957600080fd5b50356001600160a01b03166132d4565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b348015610a4d57600080fd5b5061024060048036036020811015610a6457600080fd5b50356001600160a01b0316613535565b348015610a8057600080fd5b5061061261367a565b348015610a9557600080fd5b5061024060048036036080811015610aac57600080fd5b5080356001600160a01b0316906020810135906040810135906060013561ffff16613689565b348015610ade57600080fd5b5061024060048036036040811015610af557600080fd5b506001600160a01b0381358116916020013516613d24565b348015610b1957600080fd5b5061050e613dda565b348015610b2e57600080fd5b5061050e60048036036020811015610b4557600080fd5b50356001600160a01b0316613de0565b61024060048036036060811015610b6b57600080fd5b5080356001600160a01b0316906020810135906040013561ffff16613e01565b348015610b9757600080fd5b5061024060048036036040811015610bae57600080fd5b506001600160a01b038135169060200135614070565b348015610bd057600080fd5b5061024060048036036020811015610be757600080fd5b50356001600160a01b031661413f565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610c2b57508115155b949350505050565b60026000541415610c79576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b6002600090815560355460408051632c1a75cd60e11b815290516001600160a01b0390921691635834eb9a91600480820192602092909190829003018186803b158015610cc557600080fd5b505afa158015610cd9573d6000803e3d6000fd5b505050506040513d6020811015610cef57600080fd5b5051604080516001600160a01b038981166024830152888116604483015287811660648301526084820187905285151560a4808401919091528351808403909101815260c490920183526020820180516001600160e01b031662a718a960e01b17815292518251949550600094606094928716939282918083835b60208310610d895780518252601f199092019160209182019101610d6a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610de9576040519150601f19603f3d011682016040523d82523d6000602084013e610dee565b606091505b509150915081610e2a576040805162461bcd60e51b81526020600482015260026024820152610c8d60f21b604482015290519081900360640190fd5b60006060828060200190516040811015610e4357600080fd5b815160208301805160405192949293830192919084640100000000821115610e6a57600080fd5b908301906020820185811115610e7f57600080fd5b8251640100000000811182820188101715610e9957600080fd5b82525081516020918201929091019080838360005b83811015610ec6578181015183820152602001610eae565b50505050905090810190601f168015610ef35780820380516001836020036101000a031916815260200191505b506040525050509150915081600014610fe957806040516020018082805190602001908083835b60208310610f395780518252601f199092019160209182019101610f1a565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f190183529384905262461bcd60e51b84526004840181815282516024860152825192965094508493604401925085019080838360005b83811015610fae578181015183820152602001610f96565b50505050905090810190601f168015610fdb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505060016000555050505050505050565b6060603980548060200260200160405190810160405280929190818152602001828054801561105257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611034575b5050505050905090565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156110a057600080fd5b505afa1580156110b4573d6000803e3d6000fd5b505050506040513d60208110156110ca57600080fd5b50516001600160a01b03161461110c576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038087166000908152603760205260408082208151630b25f31560e01b815260048101919091528884166024820152878416604482015286841660648201526084810186905292841660a48401525173__$2ec35834968386f54fa313129cf94664e4$__92630b25f3159260c4808301939192829003018186803b15801561119a57600080fd5b505af41580156111ae573d6000803e3d6000fd5b505050506111bb86614270565b505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d602081101561123157600080fd5b50516001600160a01b031614611273576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039182166000908152603760205260409020600c0180546001600160a01b03191691909216179055565b6001600160a01b038083166000908152603760209081526040808320600981015482516370a0823160e01b815287871660048201529251949586958695869586958695869586958695869593909216926370a08231926024808301939192829003018186803b15801561131657600080fd5b505afa15801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b50519a5061134e8c82614313565b909a50985061135d8c82614416565b80985081995050508060010154945080600a0160009054906101000a90046001600160a01b03166001600160a01b031663e78c9b3b8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156113d957600080fd5b505afa1580156113ed573d6000803e3d6000fd5b505050506040513d602081101561140357600080fd5b8101908080519060200190929190505050955080600a0160009054906101000a90046001600160a01b03166001600160a01b03166379ce6b8c8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561148357600080fd5b505afa158015611497573d6000803e3d6000fd5b505050506040513d60208110156114ad57600080fd5b81019080805190602001909291905050509250603860008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a900460ff16915080600b0160009054906101000a90046001600160a01b03166001600160a01b031663ee9907a48d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561158857600080fd5b505afa15801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b50519a9d999c50979a5095989497939650919491929050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561160f57600080fd5b505afa158015611623573d6000803e3d6000fd5b505050506040513d602081101561163957600080fd5b50516001600160a01b03161461167b576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060060155565b6000806000806000806000806000806116b16156f2565b506001600160a01b03808c16600081815260376020908152604091829020825161026081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201548416610120820152600a8201548416610140820152600b8201548416610160820152600c9091015492831661018082015264ffffffffff600160a01b8404166101a082015260ff600160c81b8404811615156101c0830152600160d01b8404811615156101e0830152600160d81b840481161515610200830152600160e01b840481161515610220830152600160e81b90930490921615156102408301526117e4903063ffffffff6144e216565b8161014001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561182257600080fd5b505afa158015611836573d6000803e3d6000fd5b505050506040513d602081101561184c57600080fd5b5051610160830151604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561189657600080fd5b505afa1580156118aa573d6000803e3d6000fd5b505050506040513d60208110156118c057600080fd5b50516020848101516040808701516060880151610140890151835163487b7e7960e11b815293519495929491936001600160a01b03909116926390f6fcf292600480840193829003018186803b15801561191957600080fd5b505afa15801561192d573d6000803e3d6000fd5b505050506040513d602081101561194357600080fd5b810190808051906020019092919050505087600001518860800151896101a001519a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6001600160a01b03811660009081526037602052604081206119a79061458c565b92915050565b6001600160a01b039081166000908152603760205260409020600581015460068201546007830154600c840154600990940154929591949093808216939091169160ff600160d01b8304811692600160c81b8104821692600160d81b8204831692600160e01b8304811692600160e81b90041690565b60026000541415611a69576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0382168082526037602090815260408084203380865260388452828620948652939092528320909290918190611aad9085614313565b9092509050611ac5848660008063ffffffff6145cd16565b50506001600055505050565b60398181548110611ade57fe5b6000918252602090912001546001600160a01b0316905081565b60026000541415611b3e576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b6002600055611b4b61578e565b6001600160a01b038086166000818152603760209081526040808320948716835260388252808320938352928152908290208251808401909352601383527223b2ba3a34b733903130b630b731b2b997171760691b9183019190915290611bb1906148d9565b611bbb8483614313565b602080860191825291855260408051808201909152601a81527f42616c616e6365732063616c63756c617465642c2025732025730000000000009281019290925284519051611c0b929190614a0f565b611c4260405180604001604052806015815260200174496e7465726573742072617465206d6f646520257360581b81525086614b60565b6000856002811115611c5057fe5b9050611c8960405180604001604052806015815260200174496e7465726573742072617465206d6f646520257360581b81525087614b60565b6001816002811115611c9757fe5b14611ca6578360200151611ca9565b83515b6060850190815260408051808201825260208082527f5061796261636b20616d6f756e7420257320737461626c652072617465202573818301529251600a870154835163e78c9b3b60e01b81526001600160a01b038b811660048301529451611d669694959394939092169263e78c9b3b92602480840193829003018186803b158015611d3557600080fd5b505afa158015611d49573d6000803e3d6000fd5b505050506040513d6020811015611d5f57600080fd5b5051614a0f565b6000198714158015611d7b5750836060015187105b15611d8857606084018790525b611dbc604051806040016040528060138152602001722b30b634b230ba34b733903932b830bc97171760691b8152506148d9565b73__$69254465eb8f179ea24caa73cf68b23524$__63d454c1cc848a8a858a8a600001518b602001518c60600151346040518a63ffffffff1660e01b8152600401808a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876002811115611e2e57fe5b60ff168152602001866001600160a01b03166001600160a01b03168152602001858152602001848152602001838152602001828152602001995050505050505050505060006040518083038186803b158015611e8957600080fd5b505af4158015611e9d573d6000803e3d6000fd5b50505050611eaa83614ca8565b611edc60405180604001604052806011815260200170213ab93734b733903a37b5b2b73997171760791b8152506148d9565b6001816002811115611eea57fe5b1415611f6a57600a830154606085015160408051632770a7eb60e21b81526001600160a01b038981166004830152602482019390935290519190921691639dc29fac91604480830192600092919082900301818387803b158015611f4d57600080fd5b505af1158015611f61573d6000803e3d6000fd5b50505050611fe0565b600b830154606085015160408051632770a7eb60e21b81526001600160a01b038981166004830152602482019390935290519190921691639dc29fac91604480830192600092919082900301818387803b158015611fc757600080fd5b505af1158015611fdb573d6000803e3d6000fd5b505050505b6060840151611ffa9084908a90600063ffffffff6145cd16565b606084015161201b906001600160a01b038a1690600063ffffffff614d6016565b61202d886001600160a01b0316614e85565b1561206f57600061204b856060015134614ebb90919063ffffffff16565b9050801561206d5761206d6001600160a01b038a16338363ffffffff614efd16565b505b606084015160408051918252426020830152805133926001600160a01b0389811693908d16927f81cfb79463601de705d4cf6b8d69112983d76a685120e5e4d3581f30871b87fc9281900390910190a450506001600055505050505050565b60026000541415612114576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038084168083526037602081815260408086203387526038808452828820958852948352958190206035548251631f94a27560e31b81529251919673__$69254465eb8f179ea24caa73cf68b23524$__9663d73dac72968a968d9691959294603994169263fca513a8926004808201939291829003018186803b1580156121a857600080fd5b505afa1580156121bc573d6000803e3d6000fd5b505050506040513d60208110156121d257600080fd5b50516040516001600160e01b031960e089901b168152600481018781526001600160a01b0380881660248401526044830187905260648301869052831660a483015260c060848301908152845460c484018190529192909160e4909101908590801561226757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612249575b505097505050505050505060006040518083038186803b15801561228a57600080fd5b505af415801561229e573d6000803e3d6000fd5b5050825460ff19168515801591909117845591506122f290505760405133906001600160a01b038616907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a3612329565b60405133906001600160a01b038616907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b505060016000555050565b6002600054141561237a576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b60026000556123876157cb565b6001600160a01b0384166000818152603760205260409020906123b0903063ffffffff6144e216565b82526123d56127106123c986600963ffffffff614f7f16565b9063ffffffff614fd816565b606083018190526123f690612710906123c990610bb863ffffffff614f7f16565b6080830152815184111561243b5760405162461bcd60e51b815260040180806020018281038252603181526020018061581b6031913960400191505060405180910390fd5b60008260600151118015612453575060008260800151115b61248e5760405162461bcd60e51b81526004018080602001828103825260328152602001806159836032913960400191505060405180910390fd5b85806124aa6001600160a01b038816828863ffffffff614efd16565b816001600160a01b031663ee87255888888760600151896040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612531578181015183820152602001612519565b50505050905090810190601f16801561255e5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561258057600080fd5b505af1158015612594573d6000803e3d6000fd5b50600092506125b59150506001600160a01b0389163063ffffffff6144e216565b606086015186519192506125cf919063ffffffff61501a16565b811461260c5760405162461bcd60e51b81526004018080602001828103825260328152602001806158b06032913960400191505060405180910390fd5b8373__$5e6137a1b5a0a366e2874209b5abf71c10$__63a023726490918a886000015161264a8a608001518b60600151614ebb90919063ffffffff16565b8a608001516040518663ffffffff1660e01b815260040180868152602001856001600160a01b03166001600160a01b031681526020018481526020018381526020018281526020019550505050505060006040518083038186803b1580156126b157600080fd5b505af41580156126c5573d6000803e3d6000fd5b50505050612762603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b15801561271a57600080fd5b505afa15801561272e573d6000803e3d6000fd5b505050506040513d602081101561274457600080fd5b505160808701516001600160a01b038b16919063ffffffff614efd16565b876001600160a01b0316896001600160a01b03167f5b8f46461c1dd69fb968f1a003acee221ea3e19540e350233b612ddb43433b558988606001518960800151426040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050600160005550505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561282157600080fd5b505afa158015612835573d6000803e3d6000fd5b505050506040513d602081101561284b57600080fd5b50516001600160a01b03161461288d576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060080155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156128f057600080fd5b505afa158015612904573d6000803e3d6000fd5b505050506040513d602081101561291a57600080fd5b50516001600160a01b03161461295c576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b81156129ed576001600160a01b0383166000908152603760205260408082208151637b1dd5df60e11b815260048101919091528315156024820152905173__$2ec35834968386f54fa313129cf94664e4$__9263f63babbe9260448082019391829003018186803b1580156129d057600080fd5b505af41580156129e4573d6000803e3d6000fd5b50505050612a6c565b6001600160a01b03831660009081526037602052604080822081516372efab5360e11b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__9263e5df56a69260248082019391829003018186803b158015612a5357600080fd5b505af4158015612a67573d6000803e3d6000fd5b505050505b505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612ab557600080fd5b505afa158015612ac9573d6000803e3d6000fd5b505050506040513d6020811015612adf57600080fd5b50516001600160a01b031614612b21576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060070155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612b8457600080fd5b505afa158015612b98573d6000803e3d6000fd5b505050506040513d6020811015612bae57600080fd5b50516001600160a01b031614612bf0576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160d81b0260ff60d81b19909216919091179055565b600073__$7347ff53b2b46c21e26a37164ae7f6739f$__634d9afd5e858585603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015612c9b57600080fd5b505afa158015612caf573d6000803e3d6000fd5b505050506040513d6020811015612cc557600080fd5b505160405160e089811b6001600160e01b03191682526001600160a01b0389811660048401908152898216602485015260448401899052606484018890526084840187905290841660c484015260a48301918252845460e484018190529092610104019085908015612d6057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612d42575b50509850505050505050505060206040518083038186803b158015612d8457600080fd5b505af4158015612d98573d6000803e3d6000fd5b505050506040513d6020811015612dae57600080fd5b5051949350505050565b600281565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612e0157600080fd5b505afa158015612e15573d6000803e3d6000fd5b505050506040513d6020811015612e2b57600080fd5b50516001600160a01b031614612e6d576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160e81b0260ff60e81b19909216919091179055565b60026000541415612eeb576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038086168083526037602090815260408085209388168552603882528085208386529091528084208151630d9e1f7160e11b81526004810185905260248101939093526044830187905290519293909273__$69254465eb8f179ea24caa73cf68b23524$__92631b3c3ee2926064808301939192829003018186803b158015612f8157600080fd5b505af4158015612f95573d6000803e3d6000fd5b505050508260001415612fab57805460ff191681555b612fb482614ca8565b612fc7828760008763ffffffff6145cd16565b612fe16001600160a01b038716868663ffffffff614efd16565b846001600160a01b0316866001600160a01b03167f9c4ed599cd8555b9c1e8cd7643240d7d71eb76b792948c49fcb4d411f7b6b3c68642604051808381526020018281526020019250505060405180910390a35050600160005550505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561308557600080fd5b505afa158015613099573d6000803e3d6000fd5b505050506040513d60208110156130af57600080fd5b50516001600160a01b0316146130f1576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038416600090815260376020526040808220815163126ee27360e11b81526004810191909152602481018690526044810185905260648101849052905173__$2ec35834968386f54fa313129cf94664e4$__926324ddc4e69260848082019391829003018186803b15801561316c57600080fd5b505af4158015613180573d6000803e3d6000fd5b5050505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156131ce57600080fd5b505afa1580156131e2573d6000803e3d6000fd5b505050506040513d60208110156131f857600080fd5b50516001600160a01b03161461323a576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03821660009081526037602052604090208161326b57600c8101805460ff60e01b19169055612a6c565b80541580159061327f575060008160040154115b6132ba5760405162461bcd60e51b81526004018080602001828103825260248152602001806158e26024913960400191505060405180910390fd5b600c8101805460ff60e01b1916600160e01b179055505050565b600080600080600080600073__$7347ff53b2b46c21e26a37164ae7f6739f$__63901d711489603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561334e57600080fd5b505afa158015613362573d6000803e3d6000fd5b505050506040513d602081101561337857600080fd5b50516040516001600160e01b031960e088901b1681526001600160a01b03808716600483019081526024830187905260448301869052908316608483015260a060648301908152845460a484018190529192909160c4909101908590801561340957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116133eb575b5050965050505050505060c06040518083038186803b15801561342b57600080fd5b505af415801561343f573d6000803e3d6000fd5b505050506040513d60c081101561345557600080fd5b5080516020808301516040808501516060860151608087015160a090970151603654845163ab8bb39360e01b8152600481018990526024810187905260448101859052606481018490526001600160a01b0390911660848201529351969e50939c50909a50949750939550935073__$7347ff53b2b46c21e26a37164ae7f6739f$__9263ab8bb3939260a48083019392829003018186803b1580156134f957600080fd5b505af415801561350d573d6000803e3d6000fd5b505050506040513d602081101561352357600080fd5b50519698959750939594919390925090565b600061353f615074565b60025490915060ff16806135565750613556615079565b80613562575060015481115b61359d5760405162461bcd60e51b815260040180806020018281038252602e815260200180615955602e913960400191505060405180910390fd5b60025460ff161580156135be576002805460ff191660019081179091558290555b603580546001600160a01b0319166001600160a01b03858116919091179182905560408051633efbbf0f60e21b81529051929091169163fbeefc3c91600480820192602092909190829003018186803b15801561361a57600080fd5b505afa15801561362e573d6000803e3d6000fd5b505050506040513d602081101561364457600080fd5b5051603680546001600160a01b0319166001600160a01b039092169190911790558015612a6c576002805460ff19169055505050565b6035546001600160a01b031681565b600260005414156136cf576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038086168083526037602090815260408085203386526038835281862093865292825280852060088401546035548351631f94a27560e31b8152935195979296929561380195600a9390930a946123c9948d9493169263fca513a892600480840193829003018186803b15801561375357600080fd5b505afa158015613767573d6000803e3d6000fd5b505050506040513d602081101561377d57600080fd5b50516040805163b3596f0760e01b81526001600160a01b038e811660048301529151919092169163b3596f07916024808301926020929190829003018186803b1580156137c957600080fd5b505afa1580156137dd573d6000803e3d6000fd5b505050506040513d60208110156137f357600080fd5b50519063ffffffff614f7f16565b905073__$69254465eb8f179ea24caa73cf68b23524$__6305011d4884848a8a868b6019603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561387957600080fd5b505afa15801561388d573d6000803e3d6000fd5b505050506040513d60208110156138a357600080fd5b50516040516001600160e01b031960e08e901b168152600481018c8152602482018c90526001600160a01b03808c166044840152606483018b9052608483018a905260a4830189905260c4830188905260e483018790526101048301869052831661014483015261016061012483019081528454610164840181905291929091610184909101908590801561396157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613943575b50509c5050505050505050505050505060006040518083038186803b15801561398957600080fd5b505af415801561399d573d6000803e3d6000fd5b505050506139aa83614ca8565b600c8301805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055600383015460018660028111156139df57fe5b60028111156139ea57fe5b1415613a6957600a84015460408051630ab714fb60e11b8152336004820152602481018a90526044810184905290516001600160a01b039092169163156e29f69160648082019260009290919082900301818387803b158015613a4c57600080fd5b505af1158015613a60573d6000803e3d6000fd5b50505050613ad7565b600b840154604080516340c10f1960e01b8152336004820152602481018a905290516001600160a01b03909216916340c10f199160448082019260009290919082900301818387803b158015613abe57600080fd5b505af1158015613ad2573d6000803e3d6000fd5b505050505b613aea848960008a63ffffffff6145cd16565b613b046001600160a01b038916338963ffffffff614efd16565b600080613b113387614313565b91509150613b4c60405180604001604052806014815260200173446562742062616c616e6365733a20257320257360601b8152508383614a0f565b613beb6040518060600160405280602e8152602001615927602e9139600b88015460408051633ba641e960e21b815233600482015290516001600160a01b039092169163ee9907a491602480820192602092909190829003018186803b158015613bb557600080fd5b505afa158015613bc9573d6000803e3d6000fd5b505050506040513d6020811015613bdf57600080fd5b50516004890154614a0f565b60408051808201825260138152725573657220737461626c65207261746520257360681b602080830191909152600a890154835163e78c9b3b60e01b81523360048201529351613c93946001600160a01b039092169263e78c9b3b9260248082019391829003018186803b158015613c6257600080fd5b505afa158015613c76573d6000803e3d6000fd5b505050506040513d6020811015613c8c57600080fd5b5051614b60565b61ffff8716336001600160a01b038c167fe002884724be85e729c98360169e709585b299ace6fbe12aa791d2fee6f652808c8c60018e6002811115613cd457fe5b6002811115613cdf57fe5b14613cee578b60020154613cf0565b885b60408051938452602084019290925282820152426060830152519081900360800190a4505060016000555050505050505050565b60026000541415613d6a576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0380841680835260376020908152604080852093861685526038825280852092855291815292819020905162461bcd60e51b815260048101938452602f6024820181905292939192829160440190615881823960400191505060405180910390fd5b60001981565b6001600160a01b03811660009081526037602052604081206119a79061507f565b60026000541415613e47576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0384168082526037602090815260408084203385526038835281852093855292909152808320815163664f158360e01b8152600481018490526024810187905291519293909273__$69254465eb8f179ea24caa73cf68b23524$__9263664f1583926044808301939192829003018186803b158015613ed357600080fd5b505af4158015613ee7573d6000803e3d6000fd5b5050506009830154604080516370a0823160e01b815233600482015290516001600160a01b03909216925060009183916370a08231916024808301926020929190829003018186803b158015613f3c57600080fd5b505afa158015613f50573d6000803e3d6000fd5b505050506040513d6020811015613f6657600080fd5b5051159050613f7484614ca8565b613f87848888600063ffffffff6145cd16565b8015613f9957825460ff191660011783555b604080516394362e8b60e01b81523360048201526024810188905290516001600160a01b038416916394362e8b91604480830192600092919082900301818387803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b50614015925050506001600160a01b038816876001614d60565b60408051878152426020820152815161ffff88169233926001600160a01b038c16927fc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c82929181900390910190a4505060016000555050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156140b457600080fd5b505afa1580156140c8573d6000803e3d6000fd5b505050506040513d60208110156140de57600080fd5b50516001600160a01b031614614120576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060050155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561418357600080fd5b505afa158015614197573d6000803e3d6000fd5b505050506040513d60208110156141ad57600080fd5b50516001600160a01b0316146141ef576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038116600090815260376020526040808220815163041e0b2d60e51b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__926383c165a09260248082019391829003018186803b15801561425557600080fd5b505af4158015614269573d6000803e3d6000fd5b5050505050565b6000805b6039548110156142bd57826001600160a01b03166039828154811061429557fe5b6000918252602090912001546001600160a01b031614156142b557600191505b600101614274565b508061430f57603980546001810182556000919091527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d30180546001600160a01b0319166001600160a01b0384161790555b5050565b600a810154604080516370a0823160e01b81526001600160a01b0385811660048301529151600093849316916370a08231916024808301926020929190829003018186803b15801561436457600080fd5b505afa158015614378573d6000803e3d6000fd5b505050506040513d602081101561438e57600080fd5b5051600b840154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156143df57600080fd5b505afa1580156143f3573d6000803e3d6000fd5b505050506040513d602081101561440957600080fd5b5051909590945092505050565b600a8101546040805163631a6fd560e11b81526001600160a01b03858116600483015291516000938493169163c634dfaa916024808301926020929190829003018186803b15801561446757600080fd5b505afa15801561447b573d6000803e3d6000fd5b505050506040513d602081101561449157600080fd5b5051600b8401546040805163631a6fd560e11b81526001600160a01b0388811660048301529151919092169163c634dfaa916024808301926020929190829003018186803b1580156143df57600080fd5b60006144ed83614e85565b1561450357506001600160a01b038116316119a7565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561455957600080fd5b505afa15801561456d573d6000803e3d6000fd5b505050506040513d602081101561458357600080fd5b50519392505050565b6000806145c683600401546145ba856002015486600c0160149054906101000a900464ffffffffff166150ad565b9063ffffffff61511216565b9392505050565b600a8401546040805163487b7e7960e11b815290516000926001600160a01b0316916390f6fcf2916004808301926020929190829003018186803b15801561461457600080fd5b505afa158015614628573d6000803e3d6000fd5b505050506040513d602081101561463e57600080fd5b50519050600061465d6001600160a01b0386163063ffffffff6144e216565b9050614671856001600160a01b0316614e85565b1561468957614686813463ffffffff614ebb16565b90505b600c860154600090819081906001600160a01b03166357e37af0896146c4896146b8898d63ffffffff61501a16565b9063ffffffff614ebb16565b8c600a0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561471457600080fd5b505afa158015614728573d6000803e3d6000fd5b505050506040513d602081101561473e57600080fd5b5051600b8e0154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561478757600080fd5b505afa15801561479b573d6000803e3d6000fd5b505050506040513d60208110156147b157600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b039095166004860152602485019390935260448401919091526064830152608482018990525160a4808301926060929190829003018186803b15801561481457600080fd5b505afa158015614828573d6000803e3d6000fd5b505050506040513d606081101561483e57600080fd5b50805160208083015160409384015160018e0184905560038e0182905560028e018190558d5460048f015486518681529485018490528487018c905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a2505050505050505050565b6040516020602482018181528351604484015283516000936a636f6e736f6c652e6c6f67938693928392606401918501908083838a5b8381101561492757818101518382015260200161490f565b50505050905090810190601f1680156149545780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663104c13eb60e21b178152905182519295509350839250908083835b602083106149af5780518252601f199092019160209182019101614990565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114614269576040519150601f19603f3d011682016040523d82523d6000602084013e614269565b60006a636f6e736f6c652e6c6f676001600160a01b03168484846040516024018080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015614a75578181015183820152602001614a5d565b50505050905090810190601f168015614aa25780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663969cdd0360e01b178152905182519297509550859450925090508083835b60208310614b005780518252601f199092019160209182019101614ae1565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114612a67576040519150601f19603f3d011682016040523d82523d6000602084013e612a67565b60006a636f6e736f6c652e6c6f676001600160a01b031683836040516024018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015614bbf578181015183820152602001614ba7565b50505050905090810190601f168015614bec5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166309710a9d60e41b17815290518251929650945084935091508083835b60208310614c485780518252601f199092019160209182019101614c29565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146111bb576040519150601f19603f3d011682016040523d82523d6000602084013e6111bb565b6000614cb38261514a565b90508015614d3c576001820154600c830154600091614cdf91600160a01b900464ffffffffff1661524a565b8354909150614cf590829063ffffffff61511216565b83556002830154600c840154600091614d1b91600160a01b900464ffffffffff166150ad565b9050614d3484600401548261511290919063ffffffff16565b600485015550505b50600c01805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055565b81614d6a57612a6c565b614d7383614e85565b15614e6a5781341015614db75760405162461bcd60e51b815260040180806020018281038252603581526020018061584c6035913960400191505060405180910390fd5b8015614e6557600033614dd0348563ffffffff614ebb16565b60405161c35091906000818181858888f193505050503d8060008114614e12576040519150601f19603f3d011682016040523d82523d6000602084013e614e17565b606091505b5050905080614e63576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b505b612a6c565b612a6c6001600160a01b03841633308563ffffffff6152b616565b60006001600160a01b03821615806119a75750506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b60006145c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615316565b80614f0757612a6c565b614f1083614e85565b15614f65576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114614e12576040519150601f19603f3d011682016040523d82523d6000602084013e614e17565b612a6c6001600160a01b038416838363ffffffff61537016565b600082614f8e575060006119a7565b82820282848281614f9b57fe5b04146145c65760405162461bcd60e51b81526004018080602001828103825260218152602001806159066021913960400191505060405180910390fd5b60006145c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506153c2565b6000828201838110156145c6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600290565b303b1590565b6000806145c683600001546145ba856001015486600c0160149054906101000a900464ffffffffff1661524a565b6000806150c74264ffffffffff851663ffffffff614ebb16565b905060006150df856301e1338063ffffffff614fd816565b9050615109826150fd6150f0615427565b849063ffffffff61501a16565b9063ffffffff61543716565b95945050505050565b60006145c66b033b2e3c9fd0803ce80000006123c9615137868663ffffffff614f7f16565b6b019d971e4fe8401e740000009061501a565b60006119a782600b0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561519f57600080fd5b505afa1580156151b3573d6000803e3d6000fd5b505050506040513d60208110156151c957600080fd5b5051600a840154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561521257600080fd5b505afa158015615226573d6000803e3d6000fd5b505050506040513d602081101561523c57600080fd5b50519063ffffffff61501a16565b6000806152644264ffffffffff851663ffffffff614ebb16565b9050600061528d6152786301e13380615491565b61528184615491565b9063ffffffff6154a716565b905061510961529a615427565b6152aa878463ffffffff61511216565b9063ffffffff61501a16565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526153109085906154ca565b50505050565b600081848411156153685760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610fae578181015183820152602001610f96565b505050900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612a6c9084906154ca565b600081836154115760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610fae578181015183820152602001610f96565b50600083858161541d57fe5b0495945050505050565b6b033b2e3c9fd0803ce800000090565b600060028206615453576b033b2e3c9fd0803ce8000000615455565b825b90506002820491505b81156119a75761546e8384615112565b92506002820615615486576154838184615112565b90505b60028204915061545e565b60006119a782633b9aca0063ffffffff614f7f16565b600060028204610c2b836123c96150f0876b033b2e3c9fd0803ce8000000614f7f565b606061551f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661557b9092919063ffffffff16565b805190915015612a6c5780806020019051602081101561553e57600080fd5b5051612a6c5760405162461bcd60e51b815260040180806020018281038252602a8152602001806159b5602a913960400191505060405180910390fd5b6060610c2b8484600085606061559085610bf7565b6155e1576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106156205780518252601f199092019160209182019101615601565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114615682576040519150601f19603f3d011682016040523d82523d6000602084013e615687565b606091505b5091509150811561569b579150610c2b9050565b8051156156ab5780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315610fae578181015183820152602001610f96565b6040805161026081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101829052610220810182905261024081019190915290565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005468657265206973206e6f7420656e6f756768206c697175696469747920617661696c61626c6520746f20626f72726f7754686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d61746368496e746572657374207261746520726562616c616e636520636f6e646974696f6e732077657265206e6f74206d65745468652061637475616c2062616c616e6365206f66207468652070726f746f636f6c20697320696e636f6e73697374656e745265736572766520686173206e6f74206265656e20696e697469616c697a656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7755736572207661726961626c6520626f72726f7720696e646578202573207265736572766520696e646578202573436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645468652072657175657374656420616d6f756e7420697320746f6f20736d616c6c20666f72206120466c6173684c6f616e2e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220a2d03ef5d202ffa661388bc7d0010bd20213170222ad0eb0dbd313a91226573d64736f6c63430006080033";
export interface LendingPoolLibraryAddresses {
["__$2ec35834968386f54fa313129cf94664e4$__"]: string;
["__$69254465eb8f179ea24caa73cf68b23524$__"]: string;
["__$5e6137a1b5a0a366e2874209b5abf71c10$__"]: string;
["__$7347ff53b2b46c21e26a37164ae7f6739f$__"]: string;
}