/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { ComptrollerG7 } from "../ComptrollerG7"; export class ComptrollerG7__factory extends ContractFactory { constructor(signer?: Signer) { super(_abi, _bytecode, signer); } deploy( overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy(overrides || {}) as Promise; } getDeployTransaction( overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction(overrides || {}); } attach(address: string): ComptrollerG7 { return super.attach(address) as ComptrollerG7; } connect(signer: Signer): ComptrollerG7__factory { return super.connect(signer) as ComptrollerG7__factory; } static connect( address: string, signerOrProvider: Signer | Provider ): ComptrollerG7 { return new Contract(address, _abi, signerOrProvider) as ComptrollerG7; } } const _abi = [ { inputs: [], stateMutability: "nonpayable", type: "constructor", }, { anonymous: false, inputs: [ { indexed: false, internalType: "string", name: "action", type: "string", }, { indexed: false, internalType: "bool", name: "pauseState", type: "bool", }, ], name: "ActionPaused", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "string", name: "action", type: "string", }, { indexed: false, internalType: "bool", name: "pauseState", type: "bool", }, ], name: "ActionPaused", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "recipient", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "CompGranted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "uint256", name: "newSpeed", type: "uint256", }, ], name: "CompSpeedUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "contributor", type: "address", }, { indexed: false, internalType: "uint256", name: "newSpeed", type: "uint256", }, ], name: "ContributorCompSpeedUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: true, internalType: "address", name: "borrower", type: "address", }, { indexed: false, internalType: "uint256", name: "compDelta", type: "uint256", }, { indexed: false, internalType: "uint256", name: "compBorrowIndex", type: "uint256", }, ], name: "DistributedBorrowerComp", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: true, internalType: "address", name: "supplier", type: "address", }, { indexed: false, internalType: "uint256", name: "compDelta", type: "uint256", }, { indexed: false, internalType: "uint256", name: "compSupplyIndex", type: "uint256", }, ], name: "DistributedSupplierComp", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "error", type: "uint256", }, { indexed: false, internalType: "uint256", name: "info", type: "uint256", }, { indexed: false, internalType: "uint256", name: "detail", type: "uint256", }, ], name: "Failure", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "MarketEntered", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "MarketExited", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, ], name: "MarketListed", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "uint256", name: "newBorrowCap", type: "uint256", }, ], name: "NewBorrowCap", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldBorrowCapGuardian", type: "address", }, { indexed: false, internalType: "address", name: "newBorrowCapGuardian", type: "address", }, ], name: "NewBorrowCapGuardian", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "oldCloseFactorMantissa", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newCloseFactorMantissa", type: "uint256", }, ], name: "NewCloseFactor", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "uint256", name: "oldCollateralFactorMantissa", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newCollateralFactorMantissa", type: "uint256", }, ], name: "NewCollateralFactor", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "oldLiquidationIncentiveMantissa", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newLiquidationIncentiveMantissa", type: "uint256", }, ], name: "NewLiquidationIncentive", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldPauseGuardian", type: "address", }, { indexed: false, internalType: "address", name: "newPauseGuardian", type: "address", }, ], name: "NewPauseGuardian", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract PriceOracle", name: "oldPriceOracle", type: "address", }, { indexed: false, internalType: "contract PriceOracle", name: "newPriceOracle", type: "address", }, ], name: "NewPriceOracle", type: "event", }, { inputs: [ { internalType: "contract Unitroller", name: "unitroller", type: "address", }, ], name: "_become", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "_borrowGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "recipient", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "_grantComp", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "_mintGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "newBorrowCapGuardian", type: "address", }, ], name: "_setBorrowCapGuardian", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, { internalType: "bool", name: "state", type: "bool", }, ], name: "_setBorrowPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "newCloseFactorMantissa", type: "uint256", }, ], name: "_setCloseFactor", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, { internalType: "uint256", name: "newCollateralFactorMantissa", type: "uint256", }, ], name: "_setCollateralFactor", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, { internalType: "uint256", name: "compSpeed", type: "uint256", }, ], name: "_setCompSpeed", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "contributor", type: "address", }, { internalType: "uint256", name: "compSpeed", type: "uint256", }, ], name: "_setContributorCompSpeed", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "newLiquidationIncentiveMantissa", type: "uint256", }, ], name: "_setLiquidationIncentive", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken[]", name: "cTokens", type: "address[]", }, { internalType: "uint256[]", name: "newBorrowCaps", type: "uint256[]", }, ], name: "_setMarketBorrowCaps", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, { internalType: "bool", name: "state", type: "bool", }, ], name: "_setMintPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newPauseGuardian", type: "address", }, ], name: "_setPauseGuardian", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract PriceOracle", name: "newOracle", type: "address", }, ], name: "_setPriceOracle", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bool", name: "state", type: "bool", }, ], name: "_setSeizePaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bool", name: "state", type: "bool", }, ], name: "_setTransferPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, ], name: "_supportMarket", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "uint256", name: "", type: "uint256", }, ], name: "accountAssets", outputs: [ { internalType: "contract CToken", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "admin", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], name: "allMarkets", outputs: [ { internalType: "contract CToken", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "borrowAmount", type: "uint256", }, ], name: "borrowAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "borrowCapGuardian", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "borrowCaps", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "borrowGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "borrowAmount", type: "uint256", }, ], name: "borrowVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, { internalType: "contract CToken", name: "cToken", type: "address", }, ], name: "checkMembership", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "holder", type: "address", }, { internalType: "contract CToken[]", name: "cTokens", type: "address[]", }, ], name: "claimComp", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address[]", name: "holders", type: "address[]", }, { internalType: "contract CToken[]", name: "cTokens", type: "address[]", }, { internalType: "bool", name: "borrowers", type: "bool", }, { internalType: "bool", name: "suppliers", type: "bool", }, ], name: "claimComp", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "holder", type: "address", }, ], name: "claimComp", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "closeFactorMantissa", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compAccrued", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compBorrowState", outputs: [ { internalType: "uint224", name: "index", type: "uint224", }, { internalType: "uint32", name: "block", type: "uint32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, ], name: "compBorrowerIndex", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compContributorSpeeds", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "compInitialIndex", outputs: [ { internalType: "uint224", name: "", type: "uint224", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "compRate", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compSpeeds", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, ], name: "compSupplierIndex", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compSupplyState", outputs: [ { internalType: "uint224", name: "index", type: "uint224", }, { internalType: "uint32", name: "block", type: "uint32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "comptrollerImplementation", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address[]", name: "cTokens", type: "address[]", }, ], name: "enterMarkets", outputs: [ { internalType: "uint256[]", name: "", type: "uint256[]", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenAddress", type: "address", }, ], name: "exitMarket", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, ], name: "getAccountLiquidity", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getAllMarkets", outputs: [ { internalType: "contract CToken[]", name: "", type: "address[]", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, ], name: "getAssetsIn", outputs: [ { internalType: "contract CToken[]", name: "", type: "address[]", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getBlockNumber", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getCompAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, { internalType: "address", name: "cTokenModify", type: "address", }, { internalType: "uint256", name: "redeemTokens", type: "uint256", }, { internalType: "uint256", name: "borrowAmount", type: "uint256", }, ], name: "getHypotheticalAccountLiquidity", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "isComptroller", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "lastContributorBlock", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "address", name: "liquidator", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "repayAmount", type: "uint256", }, ], name: "liquidateBorrowAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "address", name: "liquidator", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "actualRepayAmount", type: "uint256", }, { internalType: "uint256", name: "seizeTokens", type: "uint256", }, ], name: "liquidateBorrowVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "uint256", name: "actualRepayAmount", type: "uint256", }, ], name: "liquidateCalculateSeizeTokens", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "liquidationIncentiveMantissa", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "markets", outputs: [ { internalType: "bool", name: "isListed", type: "bool", }, { internalType: "uint256", name: "collateralFactorMantissa", type: "uint256", }, { internalType: "bool", name: "isComped", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "maxAssets", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "minter", type: "address", }, { internalType: "uint256", name: "mintAmount", type: "uint256", }, ], name: "mintAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "mintGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "minter", type: "address", }, { internalType: "uint256", name: "actualMintAmount", type: "uint256", }, { internalType: "uint256", name: "mintTokens", type: "uint256", }, ], name: "mintVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "oracle", outputs: [ { internalType: "contract PriceOracle", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pauseGuardian", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pendingAdmin", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pendingComptrollerImplementation", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "redeemer", type: "address", }, { internalType: "uint256", name: "redeemTokens", type: "uint256", }, ], name: "redeemAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "redeemer", type: "address", }, { internalType: "uint256", name: "redeemAmount", type: "uint256", }, { internalType: "uint256", name: "redeemTokens", type: "uint256", }, ], name: "redeemVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "payer", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "repayAmount", type: "uint256", }, ], name: "repayBorrowAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "payer", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "actualRepayAmount", type: "uint256", }, { internalType: "uint256", name: "borrowerIndex", type: "uint256", }, ], name: "repayBorrowVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "liquidator", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "seizeTokens", type: "uint256", }, ], name: "seizeAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "seizeGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "liquidator", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "seizeTokens", type: "uint256", }, ], name: "seizeVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "src", type: "address", }, { internalType: "address", name: "dst", type: "address", }, { internalType: "uint256", name: "transferTokens", type: "uint256", }, ], name: "transferAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "transferGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "src", type: "address", }, { internalType: "address", name: "dst", type: "address", }, { internalType: "uint256", name: "transferTokens", type: "uint256", }, ], name: "transferVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "contributor", type: "address", }, ], name: "updateContributorRewards", outputs: [], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561504b806100326000396000f3fe608060405234801561001057600080fd5b50600436106104485760003560e01c80636d154ea511610241578063b21be7fd1161013b578063da3d454c116100c3578063e875544611610087578063e875544614610b54578063e9af029214610b5d578063eabe7d9114610b70578063ede4edd014610b83578063f851a44014610b9657600080fd5b8063da3d454c14610af4578063dce1544914610b07578063dcfbc0c714610b1a578063e4028eee14610b2d578063e6653f3d14610b4057600080fd5b8063c29982381161010a578063c299823814610a4e578063c488847b14610a6e578063ca0af04314610a96578063cc7ebdc414610ac1578063d02f735114610ae157600080fd5b8063b21be7fd146109dd578063bb82aa5e14610a08578063bdcdc25814610a1b578063bea6b8b814610a2e57600080fd5b8063929fe9a1116101c9578063a7f0e2311161018d578063a7f0e2311461096a578063aa90075414610998578063abfceffc146109a1578063ac0b0bb7146109c1578063b0772d0b146109d557600080fd5b8063929fe9a1146108d357806394b2294b14610914578063986ab8381461091d5780639d1b5a0a1461093d578063a76b3fda1461095757600080fd5b80637dc0d1d0116102105780637dc0d1d01461080e57806387f76303146108215780638c57804e146108355780638e8f294b1461086d5780638ebf6364146108c057600080fd5b80636d154ea5146107a75780636d35bf91146107ca578063731f0c2b146107d8578063741b2525146107fb57600080fd5b8063434caf251161035257806355ee1fe1116102da5780635fc7e71e1161029e5780635fc7e71e14610704578063607ef6c1146107175780636810dfa61461072a5780636a56947e1461073d5780636b79c38d1461074b57600080fd5b806355ee1fe1146106a5578063598ee1cb146106b85780635c778605146106cb5780635ec88c79146106de5780635f5af1aa146106f157600080fd5b80634e79238f116103215780634e79238f1461062b5780634ef4c3e1146106595780634fd42e171461066c57806351dff9891461067f57806352d84d1e1461069257600080fd5b8063434caf25146105d957806347ef3b3b146105ec5780634a584432146106025780634ada90af1461062257600080fd5b806326782247116103d5578063391957d7116103a4578063391957d7146105855780633bcf7ec1146105985780633c94786f146105ab57806341c728b9146105bf57806342cbb15c146105d357600080fd5b8063267822471461053957806327efe3cb1461054c5780632d70db781461055f578063317b0b771461057257600080fd5b80631d7b33d71161041c5780631d7b33d7146104a55780631ededc91146104d357806321af4569146104e857806324008a621461051357806324a3d6221461052657600080fd5b80627e3dd21461044d57806318c882a51461046a5780631c3db2e01461047d5780631d504dc614610492575b600080fd5b610455600181565b60405190151581526020015b60405180910390f35b6104556104783660046146e6565b610ba9565b61049061048b3660046147fe565b610ceb565b005b6104906104a036600461484e565b610d4e565b6104c56104b336600461484e565b600f6020526000908152604090205481565b604051908152602001610461565b6104906104e136600461486b565b5050505050565b6015546104fb906001600160a01b031681565b6040516001600160a01b039091168152602001610461565b6104c56105213660046148c6565b610ecc565b600a546104fb906001600160a01b031681565b6001546104fb906001600160a01b031681565b61049061055a366004614917565b610f8a565b61045561056d366004614943565b611081565b6104c5610580366004614960565b611171565b61049061059336600461484e565b611218565b6104556105a63660046146e6565b6112e2565b600a5461045590600160a01b900460ff1681565b6104906105cd366004614979565b50505050565b436104c5565b6104906105e7366004614917565b61140c565b6104906105fa3660046149bf565b505050505050565b6104c561061036600461484e565b60166020526000908152604090205481565b6104c560065481565b61063e610639366004614979565b61146e565b60408051938452602084019290925290820152606001610461565b6104c5610667366004614a2d565b6114ae565b6104c561067a366004614960565b61154f565b61049061068d366004614979565b6115ac565b6104fb6106a0366004614960565b6115fb565b6104c56106b336600461484e565b611625565b6104906106c6366004614917565b61169e565b6104906106d9366004614a2d565b505050565b61063e6106ec36600461484e565b611792565b6104c56106ff36600461484e565b6117cd565b6104c5610712366004614a6e565b611846565b610490610725366004614b1e565b61199f565b610490610738366004614bee565b611b7d565b6104906105cd3660046148c6565b61078361075936600461484e565b6010602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff909116602083015201610461565b6104556107b536600461484e565b600c6020526000908152604090205460ff1681565b6104906104e1366004614a6e565b6104556107e636600461484e565b600b6020526000908152604090205460ff1681565b61049061080936600461484e565b611e5e565b6004546104fb906001600160a01b031681565b600a5461045590600160b01b900460ff1681565b61078361084336600461484e565b6011602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b6108a161087b36600461484e565b60096020526000908152604090208054600182015460039092015460ff91821692911683565b6040805193151584526020840192909252151590820152606001610461565b6104556108ce366004614943565b611f0a565b6104556108e1366004614c77565b6001600160a01b038082166000908152600960209081526040808320938616835260029093019052205460ff1692915050565b6104c560075481565b6104c561092b36600461484e565b60176020526000908152604090205481565b73c00e94cb662c3520282e6f5717214004a7f268886104fb565b6104c561096536600461484e565b611ff1565b6109806ec097ce7bc90715b34b9f100000000081565b6040516001600160e01b039091168152602001610461565b6104c5600e5481565b6109b46109af36600461484e565b61211a565b6040516104619190614ca5565b600a5461045590600160b81b900460ff1681565b6109b4612190565b6104c56109eb366004614c77565b601260209081526000928352604080842090915290825290205481565b6002546104fb906001600160a01b031681565b6104c5610a293660046148c6565b6121f2565b6104c5610a3c36600461484e565b60186020526000908152604090205481565b610a61610a5c366004614cf2565b61227d565b6040516104619190614d27565b610a81610a7c366004614a2d565b612345565b60408051928352602083019190915201610461565b6104c5610aa4366004614c77565b601360209081526000928352604080842090915290825290205481565b6104c5610acf36600461484e565b60146020526000908152604090205481565b6104c5610aef366004614a6e565b612563565b6104c5610b02366004614a2d565b61270a565b6104fb610b15366004614917565b612ada565b6003546104fb906001600160a01b031681565b6104c5610b3b366004614917565b612b12565b600a5461045590600160a81b900460ff1681565b6104c560055481565b610490610b6b36600461484e565b612ca4565b6104c5610b7e366004614a2d565b612d08565b6104c5610b9136600461484e565b612d43565b6000546104fb906001600160a01b031681565b6001600160a01b03821660009081526009602052604081205460ff16610bea5760405162461bcd60e51b8152600401610be190614d5f565b60405180910390fd5b600a546001600160a01b0316331480610c0d57506000546001600160a01b031633145b610c295760405162461bcd60e51b8152600401610be190614da7565b6000546001600160a01b0316331480610c4457506001821515145b610c605760405162461bcd60e51b8152600401610be190614dee565b6001600160a01b0383166000818152600c6020908152604091829020805460ff19168615159081179091558251938452606091840182905260069184019190915265426f72726f7760d01b6080840152908201527f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b09060a0015b60405180910390a150805b92915050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610d2157610d21614e1e565b60200260200101906001600160a01b031690816001600160a01b0316815250506106d98183600180611b7d565b806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db09190614e34565b6001600160a01b0316336001600160a01b031614610e205760405162461bcd60e51b815260206004820152602760248201527f6f6e6c7920756e6974726f6c6c65722061646d696e2063616e206368616e676560448201526620627261696e7360c81b6064820152608401610be1565b806001600160a01b031663c1e803346040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e849190614e51565b15610ec95760405162461bcd60e51b815260206004820152601560248201527418da185b99d9481b9bdd08185d5d1a1bdc9a5e9959605a1b6044820152606401610be1565b50565b6001600160a01b03841660009081526009602052604081205460ff16610ef457506009610f82565b60006040518060200160405280876001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f639190614e51565b90529050610f7186826130a9565b610f7c868583613309565b60009150505b949350505050565b610f9261346f565b610fde5760405162461bcd60e51b815260206004820152601960248201527f6f6e6c792061646d696e2063616e206772616e7420636f6d70000000000000006044820152606401610be1565b6000610fea8383613498565b9050801561103a5760405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420636f6d7020666f72206772616e7400000000006044820152606401610be1565b604080516001600160a01b0385168152602081018490527f98b2f82a3a07f223a0be64b3d0f47711c64dccd1feafb94aa28156b38cd9695c910160405180910390a1505050565b600a546000906001600160a01b03163314806110a757506000546001600160a01b031633145b6110c35760405162461bcd60e51b8152600401610be190614da7565b6000546001600160a01b03163314806110de57506001821515145b6110fa5760405162461bcd60e51b8152600401610be190614dee565b600a8054831515600160b81b0260ff60b81b199091161790556040517fef159d9a32b2472e32b098f954f3ce62d232939f1c207070b584df1814de2de0906111659084906040808252600590820152645365697a6560d81b6060820152901515602082015260800190565b60405180910390a15090565b600080546001600160a01b031633146111cc5760405162461bcd60e51b815260206004820152601f60248201527f6f6e6c792061646d696e2063616e2073657420636c6f736520666163746f72006044820152606401610be1565b600580549083905560408051828152602081018590527f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd991015b60405180910390a160005b9392505050565b6000546001600160a01b031633146112815760405162461bcd60e51b815260206004820152602660248201527f6f6e6c792061646d696e2063616e2073657420626f72726f772063617020677560448201526530b93234b0b760d11b6064820152608401610be1565b601580546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527feda98690e518e9a05f8ec6837663e188211b2da8f4906648b323f2c1d4434e29910160405180910390a15050565b6001600160a01b03821660009081526009602052604081205460ff1661131a5760405162461bcd60e51b8152600401610be190614d5f565b600a546001600160a01b031633148061133d57506000546001600160a01b031633145b6113595760405162461bcd60e51b8152600401610be190614da7565b6000546001600160a01b031633148061137457506001821515145b6113905760405162461bcd60e51b8152600401610be190614dee565b6001600160a01b0383166000818152600b6020908152604091829020805460ff19168615159081179091558251938452606091840182905260049184019190915263135a5b9d60e21b6080840152908201527f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b09060a001610cda565b61141461346f565b6114605760405162461bcd60e51b815260206004820152601d60248201527f6f6e6c792061646d696e2063616e2073657420636f6d702073706565640000006044820152606401610be1565b61146a82826135bd565b5050565b6000806000806000806114838a8a8a8a6138f4565b92509250925082601181111561149b5761149b614e6a565b95509093509150505b9450945094915050565b6001600160a01b0383166000908152600b602052604081205460ff16156115085760405162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d081a5cc81c185d5cd95960921b6044820152606401610be1565b6001600160a01b03841660009081526009602052604090205460ff166115325760095b9050611211565b61153b84613c22565b6115458484613e78565b6000949350505050565b600080546001600160a01b0316331461156e57610ce56001600b61401c565b600680549083905560408051828152602081018590527faeba5a6c40a8ac138134bff1aaa65debf25971188a58804bad717f82f0ec13169101611206565b801580156115ba5750600082115b156105cd5760405162461bcd60e51b815260206004820152601160248201527072656465656d546f6b656e73207a65726f60781b6044820152606401610be1565b600d818154811061160b57600080fd5b6000918252602090912001546001600160a01b0316905081565b600080546001600160a01b0316331461164457610ce56001601061401c565b600480546001600160a01b038481166001600160a01b031983168117909355604080519190921680825260208201939093527fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e229101611206565b6116a661346f565b6116f25760405162461bcd60e51b815260206004820152601d60248201527f6f6e6c792061646d696e2063616e2073657420636f6d702073706565640000006044820152606401610be1565b6116fb82611e5e565b8061171e576001600160a01b038216600090815260186020526040812055611739565b436001600160a01b0383166000908152601860205260409020555b6001600160a01b03821660008181526017602052604090819020839055517f386537fa92edc3319af95f1f904dcf1900021e4f3f4e08169a577a09076e66b3906117869084815260200190565b60405180910390a25050565b6000806000806000806117a98760008060006138f4565b9250925092508260118111156117c1576117c1614e6a565b97919650945092505050565b600080546001600160a01b031633146117ec57610ce56001601361401c565b600a80546001600160a01b038481166001600160a01b031983168117909355604080519190921680825260208201939093527f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e9101611206565b6001600160a01b03851660009081526009602052604081205460ff16158061188757506001600160a01b03851660009081526009602052604090205460ff16155b156118965760095b9050611996565b6000806118a285614095565b919350909150600090508260118111156118be576118be614e6a565b146118de578160118111156118d5576118d5614e6a565b92505050611996565b806118ea5760036118d5565b6040516395dd919360e01b81526001600160a01b038681166004830152600091908a16906395dd919390602401602060405180830381865afa158015611934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119589190614e51565b905060006119766040518060200160405280600554815250836140b5565b90508086111561198d576011945050505050611996565b60009450505050505b95945050505050565b6000546001600160a01b03163314806119c257506015546001600160a01b031633145b611a2c5760405162461bcd60e51b815260206004820152603560248201527f6f6e6c792061646d696e206f7220626f72726f772063617020677561726469616044820152746e2063616e2073657420626f72726f77206361707360581b6064820152608401610be1565b82818115801590611a3c57508082145b611a785760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610be1565b60005b82811015611b7457848482818110611a9557611a95614e1e565b9050602002013560166000898985818110611ab257611ab2614e1e565b9050602002016020810190611ac7919061484e565b6001600160a01b03168152602081019190915260400160002055868682818110611af357611af3614e1e565b9050602002016020810190611b08919061484e565b6001600160a01b03167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6868684818110611b4457611b44614e1e565b90506020020135604051611b5a91815260200190565b60405180910390a280611b6c81614e96565b915050611a7b565b50505050505050565b60005b83518110156104e1576000848281518110611b9d57611b9d614e1e565b6020908102919091018101516001600160a01b0381166000908152600990925260409091205490915060ff16611c0d5760405162461bcd60e51b81526020600482015260156024820152741b585c9ad95d081b5d5cdd081899481b1a5cdd1959605a1b6044820152606401610be1565b60018415151415611d7e5760006040518060200160405280836001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c879190614e51565b90529050611c9582826130a9565b60005b8751811015611d7b57611cc583898381518110611cb757611cb7614e1e565b602002602001015184613309565b611d26888281518110611cda57611cda614e1e565b6020026020010151601460008b8581518110611cf857611cf8614e1e565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613498565b601460008a8481518110611d3c57611d3c614e1e565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508080611d7390614e96565b915050611c98565b50505b60018315151415611e4b57611d9281613c22565b60005b8651811015611e4957611dc182888381518110611db457611db4614e1e565b6020026020010151613e78565b611df4878281518110611dd657611dd6614e1e565b6020026020010151601460008a8581518110611cf857611cf8614e1e565b60146000898481518110611e0a57611e0a614e1e565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508080611e4190614e96565b915050611d95565b505b5080611e5681614e96565b915050611b80565b6001600160a01b038116600090815260176020908152604080832054601890925282205490914391611e919083906140cd565b9050600081118015611ea35750600083115b156105cd576000611eb482856140d9565b6001600160a01b03861660009081526014602052604081205491925090611edb90836140e5565b6001600160a01b0387166000908152601460209081526040808320939093556018905220849055505050505050565b600a546000906001600160a01b0316331480611f3057506000546001600160a01b031633145b611f4c5760405162461bcd60e51b8152600401610be190614da7565b6000546001600160a01b0316331480611f6757506001821515145b611f835760405162461bcd60e51b8152600401610be190614dee565b600a8054831515600160b01b0260ff60b01b199091161790556040517fef159d9a32b2472e32b098f954f3ce62d232939f1c207070b584df1814de2de0906111659084906040808252600890820152672a3930b739b332b960c11b6060820152901515602082015260800190565b600080546001600160a01b0316331461201057610ce56001601261401c565b6001600160a01b03821660009081526009602052604090205460ff161561203d57610ce5600a601161401c565b816001600160a01b031663fe9c44ae6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561207b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209f9190614eb1565b506001600160a01b03821660009081526009602052604081208054600160ff19918216811783556003830180549092169091558101919091556120e1836140f1565b6040516001600160a01b03841681527fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f90602001611206565b6001600160a01b038116600090815260086020908152604080832080548251818502810185019093528083526060949383018282801561218357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612165575b5093979650505050505050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156121e857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121ca575b5050505050905090565b600a54600090600160b01b900460ff16156122445760405162461bcd60e51b81526020600482015260126024820152711d1c985b9cd9995c881a5cc81c185d5cd95960721b6044820152606401610be1565b60006122518686856141da565b90508015612260579050610f82565b61226986613c22565b6122738686613e78565b610f7c8685613e78565b805160609060008167ffffffffffffffff81111561229d5761229d61471f565b6040519080825280602002602001820160405280156122c6578160200160208202803683370190505b50905060005b8281101561233d5760008582815181106122e8576122e8614e1e565b602002602001015190506122fc8133614292565b601181111561230d5761230d614e6a565b83838151811061231f5761231f614e1e565b6020908102919091010152508061233581614e96565b9150506122cc565b509392505050565b6004805460405163fc57d4df60e01b81526001600160a01b03868116938201939093526000928392839291169063fc57d4df90602401602060405180830381865afa158015612398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bc9190614e51565b6004805460405163fc57d4df60e01b81526001600160a01b038981169382019390935292935060009291169063fc57d4df90602401602060405180830381865afa15801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190614e51565b905081158061243f575080155b1561245357600d600093509350505061255b565b6000866001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b79190614e51565b905060006124d16040518060200160405280600081525090565b60408051602080820183526000808352835180830185529081528351808301855260065481528451928301909452888252919261250d91614387565b9250612535604051806020016040528088815250604051806020016040528088815250614387565b915061254183836143cf565b905061254d818b6140b5565b600099509750505050505050505b935093915050565b600a54600090600160b81b900460ff16156125b25760405162461bcd60e51b815260206004820152600f60248201526e1cd95a5e99481a5cc81c185d5cd959608a1b6044820152606401610be1565b6001600160a01b03861660009081526009602052604090205460ff1615806125f357506001600160a01b03851660009081526009602052604090205460ff16155b156125ff57600961188f565b846001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126619190614e34565b6001600160a01b0316866001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cc9190614e34565b6001600160a01b0316146126e157600261188f565b6126ea86613c22565b6126f48684613e78565b6126fe8685613e78565b60009695505050505050565b6001600160a01b0383166000908152600c602052604081205460ff16156127665760405162461bcd60e51b815260206004820152601060248201526f189bdc9c9bddc81a5cc81c185d5cd95960821b6044820152606401610be1565b6001600160a01b03841660009081526009602052604090205460ff1661278d57600961152b565b6001600160a01b038085166000908152600960209081526040808320938716835260029093019052205460ff1661288a57336001600160a01b0385161461280e5760405162461bcd60e51b815260206004820152601560248201527439b2b73232b91036bab9ba1031329031aa37b5b2b760591b6044820152606401610be1565b600061281a3385614292565b9050600081601181111561283057612830614e6a565b1461284f5780601181111561284757612847614e6a565b915050611211565b6001600160a01b038086166000908152600960209081526040808320938816835260029093019052205460ff1661288857612888614ece565b505b6004805460405163fc57d4df60e01b81526001600160a01b038781169382019390935291169063fc57d4df90602401602060405180830381865afa1580156128d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fa9190614e51565b61290557600d61152b565b6001600160a01b03841660009081526016602052604090205480156129ea576000856001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015612964573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129889190614e51565b9050600061299682866140e5565b90508281106129e75760405162461bcd60e51b815260206004820152601960248201527f6d61726b657420626f72726f77206361702072656163686564000000000000006044820152606401610be1565b50505b6000806129fa86886000886138f4565b91935090915060009050826011811115612a1657612a16614e6a565b14612a3757816011811115612a2d57612a2d614e6a565b9350505050611211565b8015612a44576004612a2d565b60006040518060200160405280896001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab39190614e51565b90529050612ac188826130a9565b612acc888883613309565b600098975050505050505050565b60086020528160005260406000208181548110612af657600080fd5b6000918252602090912001546001600160a01b03169150829050565b600080546001600160a01b03163314612b3857612b316001600661401c565b9050610ce5565b6001600160a01b0383166000908152600960205260409020805460ff16612b6d57612b656009600761401c565b915050610ce5565b60408051602080820183528582528251908101909252670c7d713b49da0000825290612b9b81835190511090565b15612bb657612bac6006600861401c565b9350505050610ce5565b8415801590612c3257506004805460405163fc57d4df60e01b81526001600160a01b038981169382019390935291169063fc57d4df90602401602060405180830381865afa158015612c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c309190614e51565b155b15612c4357612bac600d600961401c565b60018301805490869055604080516001600160a01b0389168152602081018390529081018790527f70483e6592cd5182d45ac970e05bc62cdcc90e9d8ef2c2dbe686cf383bcd7fc59060600160405180910390a16000979650505050505050565b610ec981600d805480602002602001604051908101604052809291908181526020018280548015612cfe57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612ce0575b5050505050610ceb565b600080612d168585856141da565b90508015612d25579050611211565b612d2e85613c22565b612d388585613e78565b600095945050505050565b6040516361bfb47160e11b815233600482015260009082908290819081906001600160a01b0385169063c37f68e290602401608060405180830381865afa158015612d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db69190614ee4565b5092509250925082600014612e1b5760405162461bcd60e51b815260206004820152602560248201527f657869744d61726b65743a206765744163636f756e74536e617073686f742066604482015264185a5b195960da1b6064820152608401610be1565b8015612e3757612e2d600c600261401c565b9695505050505050565b6000612e448733856141da565b90508015612e6457612e59600e600383614409565b979650505050505050565b6001600160a01b0385166000908152600960209081526040808320338452600281019092529091205460ff16612ea257600098975050505050505050565b3360009081526002820160209081526040808320805460ff191690556008825280832080548251818502810185019093528083529192909190830182828015612f1457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612ef6575b5050835193945083925060009150505b82811015612f7957896001600160a01b0316848281518110612f4857612f48614e1e565b60200260200101516001600160a01b03161415612f6757809150612f79565b80612f7181614e96565b915050612f24565b50818110612f8957612f89614ece565b33600090815260086020526040902080548190612fa890600190614f1a565b81548110612fb857612fb8614e1e565b9060005260206000200160009054906101000a90046001600160a01b0316818381548110612fe857612fe8614e1e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508080548061302657613026614f31565b600082815260209020810160001990810180546001600160a01b03191690550190556040517fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d9061308f908c9033906001600160a01b0392831681529116602082015260400190565b60405180910390a160009c9b505050505050505050505050565b6001600160a01b0382166000908152601160209081526040808320600f90925282205490914383549091506000906130ef908390600160e01b900463ffffffff166140cd565b90506000811180156131015750600083115b156132af576000613173876001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015613149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316d9190614e51565b87614481565b9050600061318183866140d9565b905060008083116131a157604051806020016040528060008152506131ab565b6131ab828461449f565b604080516020810190915288546001600160e01b031681529091506000906131d390836144db565b9050604051806040016040528061322383600001516040518060400160405280601a81526020017f6e657720696e6465782065786365656473203232342062697473000000000000815250614507565b6001600160e01b0316815260200161325e886040518060400160405280601c8152602001600080516020614ff6833981519152815250614536565b63ffffffff9081169091526001600160a01b038c16600090815260116020908152604090912083519390910151909116600160e01b026001600160e01b03909216919091179055506105fa92505050565b80156105fa576132e2826040518060400160405280601c8152602001600080516020614ff6833981519152815250614536565b845463ffffffff91909116600160e01b026001600160e01b03909116178455505050505050565b6001600160a01b0380841660008181526011602090815260408083208151808401835281546001600160e01b0316815282518085018452958552601384528285209689168086528785529285208054875281519390955295909252909155815190929190156105fa57600061337e838361455e565b6040516395dd919360e01b81526001600160a01b0388811660048301529192506000916133cf91908a16906395dd919390602401602060405180830381865afa158015613149573d6000803e3d6000fd5b905060006133dd828461458a565b6001600160a01b0389166000908152601460205260408120549192509061340490836140e5565b6001600160a01b038a81166000818152601460209081526040918290208590558a518251888152918201529394509092918d16917f1fc3ecc087d8d2d15e23d0032af5a47059c3892d003d8e139fdcb6bb327c99a6910160405180910390a350505050505050505050565b600080546001600160a01b031633148061349357506002546001600160a01b031633145b905090565b60008073c00e94cb662c3520282e6f5717214004a7f268886040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156134fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061351e9190614e51565b90506000841180156135305750808411155b156135b45760405163a9059cbb60e01b81526001600160a01b0386811660048301526024820186905283169063a9059cbb906044016020604051808303816000875af1158015613584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135a89190614eb1565b50600092505050610ce5565b50919392505050565b6001600160a01b0382166000908152600f602052604090205480156136685760006040518060200160405280856001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061364b9190614e51565b9052905061365884613c22565b61366284826130a9565b50613893565b8115613893576001600160a01b0383166000908152600960205260409020805460ff1615156001146136dc5760405162461bcd60e51b815260206004820152601960248201527f636f6d70206d61726b6574206973206e6f74206c6973746564000000000000006044820152606401610be1565b6001600160a01b0384166000908152601060205260409020546001600160e01b031615801561372e57506001600160a01b038416600090815260106020526040902054600160e01b900463ffffffff16155b156137c957604080518082019091526ec097ce7bc90715b34b9f1000000000815260208101613781435b6040518060400160405280601c8152602001600080516020614ff6833981519152815250614536565b63ffffffff9081169091526001600160a01b038616600090815260106020908152604090912083519390910151909116600160e01b026001600160e01b039092169190911790555b6001600160a01b0384166000908152601160205260409020546001600160e01b031615801561381b57506001600160a01b038416600090815260116020526040902054600160e01b900463ffffffff16155b1561389157604080518082019091526ec097ce7bc90715b34b9f100000000081526020810161384943613758565b63ffffffff9081169091526001600160a01b038616600090815260116020908152604090912083519390910151909116600160e01b026001600160e01b039092169190911790555b505b8181146106d9576001600160a01b0383166000818152600f602052604090819020849055517f2ab93f65628379309f36cb125e90d7c902454a545c4f8b8cb0794af75c24b807906138e79085815260200190565b60405180910390a2505050565b6000806000613901614621565b6001600160a01b03881660009081526008602090815260408083208054825181850281018501909352808352849383018282801561396857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161394a575b5050505050905060005b8151811015613bcc57600082828151811061398f5761398f614e1e565b60209081029190910101516040516361bfb47160e11b81526001600160a01b038e811660048301529192509082169063c37f68e290602401608060405180830381865afa1580156139e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a089190614ee4565b60808901526060880152604087015293508315613a3457600f60008097509750975050505050506114a4565b60408051602080820183526001600160a01b0384811660008181526009845285902060010154845260c08a01939093528351808301855260808a0151815260e08a015260048054855163fc57d4df60e01b815291820194909452935192169263fc57d4df92602480830193928290030181865afa158015613ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613add9190614e51565b60a08601819052613afd57600d60008097509750975050505050506114a4565b604080516020810190915260a0860151815261010086015260c085015160e0860151613b3791613b2c91614387565b866101000151614387565b610120860181905260408601518651613b519291906145b4565b855261010085015160608601516020870151613b6e9291906145b4565b60208601526001600160a01b03818116908c161415613bb957613b9b8561012001518b87602001516145b4565b60208601819052610100860151613bb3918b906145b4565b60208601525b5080613bc481614e96565b915050613972565b50602083015183511115613bfd5760208301518351600091613bed91614f1a565b60009550955095505050506114a4565b60008084600001518560200151613c149190614f1a565b9550955095505050506114a4565b6001600160a01b0381166000908152601060209081526040808320600f9092528220549091438354909150600090613c68908390600160e01b900463ffffffff166140cd565b9050600081118015613c7a5750600083115b15613e1f576000856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ce39190614e51565b90506000613cf183866140d9565b90506000808311613d115760405180602001604052806000815250613d1b565b613d1b828461449f565b604080516020810190915288546001600160e01b03168152909150600090613d4390836144db565b90506040518060400160405280613d9383600001516040518060400160405280601a81526020017f6e657720696e6465782065786365656473203232342062697473000000000000815250614507565b6001600160e01b03168152602001613dce886040518060400160405280601c8152602001600080516020614ff6833981519152815250614536565b63ffffffff9081169091526001600160a01b038b16600090815260106020908152604090912083519390910151909116600160e01b026001600160e01b03909216919091179055506104e192505050565b80156104e157613e52826040518060400160405280601c8152602001600080516020614ff6833981519152815250614536565b845463ffffffff91909116600160e01b026001600160e01b039091161784555050505050565b6001600160a01b0380831660008181526010602090815260408083208151808401835281546001600160e01b0316815282518085018452958552601284528285209688168086528785529285208054875281519390955295909252909155815190929190158015613ee95750815115155b15613f01576ec097ce7bc90715b34b9f100000000081525b6000613f0d838361455e565b6040516370a0823160e01b81526001600160a01b0387811660048301529192506000918816906370a0823190602401602060405180830381865afa158015613f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f7d9190614e51565b90506000613f8b828461458a565b6001600160a01b03881660009081526014602052604081205491925090613fb290836140e5565b6001600160a01b038981166000818152601460209081526040918290208590558a518251888152918201529394509092918c16917f2caecd17d02f56fa897705dcc740da2d237c373f70686f4e0d9bd3bf0400ea7a910160405180910390a3505050505050505050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601181111561405157614051614e6a565b83601381111561406357614063614e6a565b60408051928352602083019190915260009082015260600160405180910390a182601181111561121157611211614e6a565b60008060006140a88460008060006138f4565b9250925092509193909250565b6000806140c284846145d5565b9050610f82816145fd565b60006112118284614f1a565b60006112118284614f47565b60006112118284614f66565b60005b600d5481101561418757816001600160a01b0316600d828154811061411b5761411b614e1e565b6000918252602090912001546001600160a01b031614156141755760405162461bcd60e51b81526020600482015260146024820152731b585c9ad95d08185b1c9958591e48185919195960621b6044820152606401610be1565b8061417f81614e96565b9150506140f4565b50600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831660009081526009602052604081205460ff1661420157600961152b565b6001600160a01b038085166000908152600960209081526040808320938716835260029093019052205460ff1661423957600061152b565b60008061424985878660006138f4565b9193509091506000905082601181111561426557614265614e6a565b146142855781601181111561427c5761427c614e6a565b92505050611211565b80156126fe57600461427c565b6001600160a01b0382166000908152600960205260408120805460ff166142bd576009915050610ce5565b6001600160a01b038316600090815260028201602052604090205460ff161515600114156142ef576000915050610ce5565b6001600160a01b03838116600081815260028401602090815260408083208054600160ff199091168117909155600883528184208054918201815584529282902090920180546001600160a01b031916948916948517905581519384528301919091527f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a5910160405180910390a15060009392505050565b6040805160208101909152600081526040518060200160405280670de0b6b3a76400006143bc866000015186600001516140d9565b6143c69190614f7e565b90529392505050565b60408051602081019091526000815260405180602001604052806143c66144028660000151670de0b6b3a76400006140d9565b8551614615565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa084601181111561443e5761443e614e6a565b84601381111561445057614450614e6a565b604080519283526020830191909152810184905260600160405180910390a1836011811115610f8257610f82614e6a565b600061121161449884670de0b6b3a76400006140d9565b8351614615565b60408051602081019091526000815260405180602001604052806143c66144d5866ec097ce7bc90715b34b9f10000000006140d9565b85614615565b60408051602081019091526000815260405180602001604052806143c6856000015185600001516140e5565b600081600160e01b841061452e5760405162461bcd60e51b8152600401610be19190614fa0565b509192915050565b600081640100000000841061452e5760405162461bcd60e51b8152600401610be19190614fa0565b60408051602081019091526000815260405180602001604052806143c6856000015185600001516140cd565b60006ec097ce7bc90715b34b9f10000000006145aa8484600001516140d9565b6112119190614f7e565b6000806145c185856145d5565b90506119966145cf826145fd565b846140e5565b60408051602081019091526000815260405180602001604052806143c68560000151856140d9565b8051600090610ce590670de0b6b3a764000090614f7e565b60006112118284614f7e565b60405180610140016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200161466d6040518060200160405280600081525090565b81526020016146886040518060200160405280600081525090565b81526020016146a36040518060200160405280600081525090565b81526020016146be6040518060200160405280600081525090565b905290565b6001600160a01b0381168114610ec957600080fd5b8015158114610ec957600080fd5b600080604083850312156146f957600080fd5b8235614704816146c3565b91506020830135614714816146d8565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561475e5761475e61471f565b604052919050565b600067ffffffffffffffff8211156147805761478061471f565b5060051b60200190565b600082601f83011261479b57600080fd5b813560206147b06147ab83614766565b614735565b82815260059290921b840181019181810190868411156147cf57600080fd5b8286015b848110156147f35780356147e6816146c3565b83529183019183016147d3565b509695505050505050565b6000806040838503121561481157600080fd5b823561481c816146c3565b9150602083013567ffffffffffffffff81111561483857600080fd5b6148448582860161478a565b9150509250929050565b60006020828403121561486057600080fd5b8135611211816146c3565b600080600080600060a0868803121561488357600080fd5b853561488e816146c3565b9450602086013561489e816146c3565b935060408601356148ae816146c3565b94979396509394606081013594506080013592915050565b600080600080608085870312156148dc57600080fd5b84356148e7816146c3565b935060208501356148f7816146c3565b92506040850135614907816146c3565b9396929550929360600135925050565b6000806040838503121561492a57600080fd5b8235614935816146c3565b946020939093013593505050565b60006020828403121561495557600080fd5b8135611211816146d8565b60006020828403121561497257600080fd5b5035919050565b6000806000806080858703121561498f57600080fd5b843561499a816146c3565b935060208501356149aa816146c3565b93969395505050506040820135916060013590565b60008060008060008060c087890312156149d857600080fd5b86356149e3816146c3565b955060208701356149f3816146c3565b94506040870135614a03816146c3565b93506060870135614a13816146c3565b9598949750929560808101359460a0909101359350915050565b600080600060608486031215614a4257600080fd5b8335614a4d816146c3565b92506020840135614a5d816146c3565b929592945050506040919091013590565b600080600080600060a08688031215614a8657600080fd5b8535614a91816146c3565b94506020860135614aa1816146c3565b93506040860135614ab1816146c3565b92506060860135614ac1816146c3565b949793965091946080013592915050565b60008083601f840112614ae457600080fd5b50813567ffffffffffffffff811115614afc57600080fd5b6020830191508360208260051b8501011115614b1757600080fd5b9250929050565b60008060008060408587031215614b3457600080fd5b843567ffffffffffffffff80821115614b4c57600080fd5b614b5888838901614ad2565b90965094506020870135915080821115614b7157600080fd5b50614b7e87828801614ad2565b95989497509550505050565b600082601f830112614b9b57600080fd5b81356020614bab6147ab83614766565b82815260059290921b84018101918181019086841115614bca57600080fd5b8286015b848110156147f3578035614be1816146c3565b8352918301918301614bce565b60008060008060808587031215614c0457600080fd5b843567ffffffffffffffff80821115614c1c57600080fd5b614c2888838901614b8a565b95506020870135915080821115614c3e57600080fd5b50614c4b8782880161478a565b9350506040850135614c5c816146d8565b91506060850135614c6c816146d8565b939692955090935050565b60008060408385031215614c8a57600080fd5b8235614c95816146c3565b91506020830135614714816146c3565b6020808252825182820181905260009190848201906040850190845b81811015614ce65783516001600160a01b031683529284019291840191600101614cc1565b50909695505050505050565b600060208284031215614d0457600080fd5b813567ffffffffffffffff811115614d1b57600080fd5b610f8284828501614b8a565b6020808252825182820181905260009190848201906040850190845b81811015614ce657835183529284019291840191600101614d43565b60208082526028908201527f63616e6e6f742070617573652061206d61726b65742074686174206973206e6f6040820152671d081b1a5cdd195960c21b606082015260800190565b60208082526027908201527f6f6e6c7920706175736520677561726469616e20616e642061646d696e2063616040820152666e20706175736560c81b606082015260800190565b6020808252601690820152756f6e6c792061646d696e2063616e20756e706175736560501b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614e4657600080fd5b8151611211816146c3565b600060208284031215614e6357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415614eaa57614eaa614e80565b5060010190565b600060208284031215614ec357600080fd5b8151611211816146d8565b634e487b7160e01b600052600160045260246000fd5b60008060008060808587031215614efa57600080fd5b505082516020840151604085015160609095015191969095509092509050565b600082821015614f2c57614f2c614e80565b500390565b634e487b7160e01b600052603160045260246000fd5b6000816000190483118215151615614f6157614f61614e80565b500290565b60008219821115614f7957614f79614e80565b500190565b600082614f9b57634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015614fcd57858101830151858201604001528201614fb1565b81811115614fdf576000604083870101525b50601f01601f191692909201604001939250505056fe626c6f636b206e756d6265722065786365656473203332206269747300000000a26469706673582212205f978b36940a859a3e6686b02bb5acd754f45b10af5b1e245593ab3d14230c9164736f6c634300080a0033";