{
  "_format": "hh-sol-artifact-1",
  "contractName": "VaultReader",
  "sourceName": "contracts/peripherals/VaultReader.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IVault",
          "name": "_vault",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "allWhitelistedTokens",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "allWhitelistedTokensLength",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_router",
          "type": "address"
        }
      ],
      "name": "approvedRouters",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "bufferAmounts",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "cumulativeFundingRates",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "feeReserves",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "fundingInterval",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "fundingRateFactor",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_usdgDelta",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_feeBasisPoints",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_taxBasisPoints",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_increment",
          "type": "bool"
        }
      ],
      "name": "getFeeBasisPoints",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "getMaxPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "getMinPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "globalShortAveragePrices",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "globalShortSizes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "gov",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "guaranteedUsd",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "hasDynamicFees",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "inManagerMode",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "inPrivateLiquidationMode",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isInitialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isLeverageEnabled",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "isLiquidator",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "isManager",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isSwapEnabled",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "lastFundingTimes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "liquidationFeeUsd",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "marginFeeBasisPoints",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxGasPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxLeverage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "maxUsdgAmounts",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "minProfitBasisPoints",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "minProfitTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "mintBurnFeeBasisPoints",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "poolAmounts",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "priceFeed",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "reservedAmounts",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "router",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "shortableTokens",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stableFundingRateFactor",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stableSwapFeeBasisPoints",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stableTaxBasisPoints",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "stableTokens",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "swapFeeBasisPoints",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "taxBasisPoints",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "tokenBalances",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "tokenDecimals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "tokenWeights",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalTokenWeights",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "usdg",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "usdgAmounts",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "vault",
      "outputs": [
        {
          "internalType": "contract IVault",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "whitelistedTokenCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "whitelistedTokens",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516118883803806118888339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055611823806100656000396000f3fe608060405234801561001057600080fd5b506004361061025c5760003560e01c80630842b0761461026157806310eb56c21461027b57806312d43a5114610283578063134ca63b146102a7578063174d2694146102af578063181e210e146102b75780631aa4ace5146102d35780631ce9cb8f146102f9578063318bc6891461031f578063351a964d14610327578063392e53cd1461032f5780633de39c11146103375780633e72a2621461033f57806342b60b03146103475780634a993ee91461036d5780634d47b30414610393578063523fba7f1461039b578063529a356f146103c157806352f55eed146103e7578063609221991461040d57806362287a321461043b5780636274980314610443578063741bef1a146104695780637a210a2b1461047157806381a612d61461047957806388b1fbdf1461049f5780638a78daa8146104c55780638ee573ac146104eb5780639060b1ca146105115780639849e412146105195780639f392eb314610521578063a22f239214610529578063ab2f3ad414610531578063ad1e4f8d14610557578063ae3302c21461057d578063c3c7b9e914610585578063c4f718bf146105ab578063c65bc7b1146105b3578063c7e074c3146105d9578063d8f897c314610619578063d9ac42251461063f578063daf9c21014610647578063db3555fb1461066d578063dc8f5fac14610693578063df73a2671461069b578063e124e6d2146106a3578063e468baf0146106c9578063f07456ce146106e6578063f3ae24151461070c578063f5b91b7b14610732578063f887ea401461073a578063fbfa77cf14610742575b600080fd5b61026961074a565b60408051918252519081900360200190f35b6102696107ca565b61028b610819565b604080516001600160a01b039092168252519081900360200190f35b610269610868565b6102696108b7565b6102bf610906565b604080519115158252519081900360200190f35b610269600480360360208110156102e957600080fd5b50356001600160a01b0316610955565b6102696004803603602081101561030f57600080fd5b50356001600160a01b03166109d5565b610269610a23565b6102bf610a72565b6102bf610ac1565b610269610b10565b6102bf610b5f565b6102bf6004803603602081101561035d57600080fd5b50356001600160a01b0316610bae565b6102696004803603602081101561038357600080fd5b50356001600160a01b0316610bfc565b610269610c4a565b610269600480360360208110156103b157600080fd5b50356001600160a01b0316610c99565b6102bf600480360360208110156103d757600080fd5b50356001600160a01b0316610ce7565b610269600480360360208110156103fd57600080fd5b50356001600160a01b0316610d35565b6102bf6004803603604081101561042357600080fd5b506001600160a01b0381358116916020013516610d83565b610269610e0c565b6102696004803603602081101561045957600080fd5b50356001600160a01b0316610e5b565b61028b610ea9565b610269610ef8565b6102696004803603602081101561048f57600080fd5b50356001600160a01b0316610f47565b610269600480360360208110156104b557600080fd5b50356001600160a01b0316610f95565b610269600480360360208110156104db57600080fd5b50356001600160a01b0316610fe3565b6102696004803603602081101561050157600080fd5b50356001600160a01b0316611031565b6102bf61107f565b6102696110ce565b6102bf61111d565b61026961116c565b6102696004803603602081101561054757600080fd5b50356001600160a01b03166111bb565b6102696004803603602081101561056d57600080fd5b50356001600160a01b0316611209565b610269611257565b6102696004803603602081101561059b57600080fd5b50356001600160a01b03166112a6565b6102696112f4565b610269600480360360208110156105c957600080fd5b50356001600160a01b0316611343565b610269600480360360a08110156105ef57600080fd5b506001600160a01b0381351690602081013590604081013590606081013590608001351515611391565b6102696004803603602081101561062f57600080fd5b50356001600160a01b0316611432565b610269611480565b6102bf6004803603602081101561065d57600080fd5b50356001600160a01b03166114cf565b6102bf6004803603602081101561068357600080fd5b50356001600160a01b031661151d565b61026961156b565b6102696115ba565b610269600480360360208110156106b957600080fd5b50356001600160a01b0316611609565b61028b600480360360208110156106df57600080fd5b5035611657565b610269600480360360208110156106fc57600080fd5b50356001600160a01b03166116a4565b6102bf6004803603602081101561072257600080fd5b50356001600160a01b03166116f2565b61028b611740565b61028b61178f565b61028b6117de565b60008060009054906101000a90046001600160a01b03166001600160a01b0316630842b0766040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b505afa1580156107ad573d6000803e3d6000fd5b505050506040513d60208110156107c357600080fd5b5051905090565b60008060009054906101000a90046001600160a01b03166001600160a01b03166310eb56c26040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663134ca63b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663174d26946040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663181e210e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051631aa4ace560e01b81526001600160a01b03858116600483015291519190921691631aa4ace5916024808301926020929190829003018186803b1580156109a357600080fd5b505afa1580156109b7573d6000803e3d6000fd5b505050506040513d60208110156109cd57600080fd5b505192915050565b6000805460408051631ce9cb8f60e01b81526001600160a01b03858116600483015291519190921691631ce9cb8f916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663318bc6896040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663351a964d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663392e53cd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316633de39c116040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316633e72a2626040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008054604080516342b60b0360e01b81526001600160a01b038581166004830152915191909216916342b60b03916024808301926020929190829003018186803b1580156109a357600080fd5b6000805460408051634a993ee960e01b81526001600160a01b03858116600483015291519190921691634a993ee9916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316634d47b3046040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b600080546040805163523fba7f60e01b81526001600160a01b0385811660048301529151919092169163523fba7f916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163529a356f60e01b81526001600160a01b0385811660048301529151919092169163529a356f916024808301926020929190829003018186803b1580156109a357600080fd5b60008054604080516352f55eed60e01b81526001600160a01b038581166004830152915191909216916352f55eed916024808301926020929190829003018186803b1580156109a357600080fd5b6000805460408051636092219960e01b81526001600160a01b0386811660048301528581166024830152915191909216916360922199916044808301926020929190829003018186803b158015610dd957600080fd5b505afa158015610ded573d6000803e3d6000fd5b505050506040513d6020811015610e0357600080fd5b50519392505050565b60008060009054906101000a90046001600160a01b03166001600160a01b03166362287a326040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051636274980360e01b81526001600160a01b038581166004830152915191909216916362749803916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637a210a2b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008054604080516340d3096b60e11b81526001600160a01b038581166004830152915191909216916381a612d6916024808301926020929190829003018186803b1580156109a357600080fd5b60008054604080516388b1fbdf60e01b81526001600160a01b038581166004830152915191909216916388b1fbdf916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163114f1b5560e31b81526001600160a01b03858116600483015291519190921691638a78daa8916024808301926020929190829003018186803b1580156109a357600080fd5b60008054604080516323b95ceb60e21b81526001600160a01b03858116600483015291519190921691638ee573ac916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316639060b1ca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316639849e4126040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316639f392eb36040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663a22f23926040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051632acbceb560e21b81526001600160a01b0385811660048301529151919092169163ab2f3ad4916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163ad1e4f8d60e01b81526001600160a01b0385811660048301529151919092169163ad1e4f8d916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663ae3302c26040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b600080546040805163c3c7b9e960e01b81526001600160a01b0385811660048301529151919092169163c3c7b9e9916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663c4f718bf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b600080546040805163c65bc7b160e01b81526001600160a01b0385811660048301529151919092169163c65bc7b1916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163c7e074c360e01b81526001600160a01b03898116600483015260248201899052604482018890526064820187905285151560848301529151919092169163c7e074c39160a4808301926020929190829003018186803b1580156113fc57600080fd5b505afa158015611410573d6000803e3d6000fd5b505050506040513d602081101561142657600080fd5b50519695505050505050565b600080546040805163d8f897c360e01b81526001600160a01b0385811660048301529151919092169163d8f897c3916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663d9ac42256040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051630daf9c2160e41b81526001600160a01b0385811660048301529151919092169163daf9c210916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163db3555fb60e01b81526001600160a01b0385811660048301529151919092169163db3555fb916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663dc8f5fac6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663df73a2676040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051637092736960e11b81526001600160a01b0385811660048301529151919092169163e124e6d2916024808301926020929190829003018186803b1580156109a357600080fd5b6000805460408051630e468baf60e41b81526004810185905290516001600160a01b039092169163e468baf091602480820192602092909190829003018186803b1580156109a357600080fd5b600080546040805163783a2b6760e11b81526001600160a01b0385811660048301529151919092169163f07456ce916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163f3ae241560e01b81526001600160a01b0385811660048301529151919092169163f3ae2415916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663f5b91b7b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663f887ea406040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000546001600160a01b03168156fea26469706673582212202bb9791f2fa6e3f15765c3577d387da44797dc3b8a745f07abba49983824a11464736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061025c5760003560e01c80630842b0761461026157806310eb56c21461027b57806312d43a5114610283578063134ca63b146102a7578063174d2694146102af578063181e210e146102b75780631aa4ace5146102d35780631ce9cb8f146102f9578063318bc6891461031f578063351a964d14610327578063392e53cd1461032f5780633de39c11146103375780633e72a2621461033f57806342b60b03146103475780634a993ee91461036d5780634d47b30414610393578063523fba7f1461039b578063529a356f146103c157806352f55eed146103e7578063609221991461040d57806362287a321461043b5780636274980314610443578063741bef1a146104695780637a210a2b1461047157806381a612d61461047957806388b1fbdf1461049f5780638a78daa8146104c55780638ee573ac146104eb5780639060b1ca146105115780639849e412146105195780639f392eb314610521578063a22f239214610529578063ab2f3ad414610531578063ad1e4f8d14610557578063ae3302c21461057d578063c3c7b9e914610585578063c4f718bf146105ab578063c65bc7b1146105b3578063c7e074c3146105d9578063d8f897c314610619578063d9ac42251461063f578063daf9c21014610647578063db3555fb1461066d578063dc8f5fac14610693578063df73a2671461069b578063e124e6d2146106a3578063e468baf0146106c9578063f07456ce146106e6578063f3ae24151461070c578063f5b91b7b14610732578063f887ea401461073a578063fbfa77cf14610742575b600080fd5b61026961074a565b60408051918252519081900360200190f35b6102696107ca565b61028b610819565b604080516001600160a01b039092168252519081900360200190f35b610269610868565b6102696108b7565b6102bf610906565b604080519115158252519081900360200190f35b610269600480360360208110156102e957600080fd5b50356001600160a01b0316610955565b6102696004803603602081101561030f57600080fd5b50356001600160a01b03166109d5565b610269610a23565b6102bf610a72565b6102bf610ac1565b610269610b10565b6102bf610b5f565b6102bf6004803603602081101561035d57600080fd5b50356001600160a01b0316610bae565b6102696004803603602081101561038357600080fd5b50356001600160a01b0316610bfc565b610269610c4a565b610269600480360360208110156103b157600080fd5b50356001600160a01b0316610c99565b6102bf600480360360208110156103d757600080fd5b50356001600160a01b0316610ce7565b610269600480360360208110156103fd57600080fd5b50356001600160a01b0316610d35565b6102bf6004803603604081101561042357600080fd5b506001600160a01b0381358116916020013516610d83565b610269610e0c565b6102696004803603602081101561045957600080fd5b50356001600160a01b0316610e5b565b61028b610ea9565b610269610ef8565b6102696004803603602081101561048f57600080fd5b50356001600160a01b0316610f47565b610269600480360360208110156104b557600080fd5b50356001600160a01b0316610f95565b610269600480360360208110156104db57600080fd5b50356001600160a01b0316610fe3565b6102696004803603602081101561050157600080fd5b50356001600160a01b0316611031565b6102bf61107f565b6102696110ce565b6102bf61111d565b61026961116c565b6102696004803603602081101561054757600080fd5b50356001600160a01b03166111bb565b6102696004803603602081101561056d57600080fd5b50356001600160a01b0316611209565b610269611257565b6102696004803603602081101561059b57600080fd5b50356001600160a01b03166112a6565b6102696112f4565b610269600480360360208110156105c957600080fd5b50356001600160a01b0316611343565b610269600480360360a08110156105ef57600080fd5b506001600160a01b0381351690602081013590604081013590606081013590608001351515611391565b6102696004803603602081101561062f57600080fd5b50356001600160a01b0316611432565b610269611480565b6102bf6004803603602081101561065d57600080fd5b50356001600160a01b03166114cf565b6102bf6004803603602081101561068357600080fd5b50356001600160a01b031661151d565b61026961156b565b6102696115ba565b610269600480360360208110156106b957600080fd5b50356001600160a01b0316611609565b61028b600480360360208110156106df57600080fd5b5035611657565b610269600480360360208110156106fc57600080fd5b50356001600160a01b03166116a4565b6102bf6004803603602081101561072257600080fd5b50356001600160a01b03166116f2565b61028b611740565b61028b61178f565b61028b6117de565b60008060009054906101000a90046001600160a01b03166001600160a01b0316630842b0766040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b505afa1580156107ad573d6000803e3d6000fd5b505050506040513d60208110156107c357600080fd5b5051905090565b60008060009054906101000a90046001600160a01b03166001600160a01b03166310eb56c26040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663134ca63b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663174d26946040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663181e210e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051631aa4ace560e01b81526001600160a01b03858116600483015291519190921691631aa4ace5916024808301926020929190829003018186803b1580156109a357600080fd5b505afa1580156109b7573d6000803e3d6000fd5b505050506040513d60208110156109cd57600080fd5b505192915050565b6000805460408051631ce9cb8f60e01b81526001600160a01b03858116600483015291519190921691631ce9cb8f916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663318bc6896040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663351a964d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663392e53cd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316633de39c116040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316633e72a2626040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008054604080516342b60b0360e01b81526001600160a01b038581166004830152915191909216916342b60b03916024808301926020929190829003018186803b1580156109a357600080fd5b6000805460408051634a993ee960e01b81526001600160a01b03858116600483015291519190921691634a993ee9916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316634d47b3046040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b600080546040805163523fba7f60e01b81526001600160a01b0385811660048301529151919092169163523fba7f916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163529a356f60e01b81526001600160a01b0385811660048301529151919092169163529a356f916024808301926020929190829003018186803b1580156109a357600080fd5b60008054604080516352f55eed60e01b81526001600160a01b038581166004830152915191909216916352f55eed916024808301926020929190829003018186803b1580156109a357600080fd5b6000805460408051636092219960e01b81526001600160a01b0386811660048301528581166024830152915191909216916360922199916044808301926020929190829003018186803b158015610dd957600080fd5b505afa158015610ded573d6000803e3d6000fd5b505050506040513d6020811015610e0357600080fd5b50519392505050565b60008060009054906101000a90046001600160a01b03166001600160a01b03166362287a326040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051636274980360e01b81526001600160a01b038581166004830152915191909216916362749803916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637a210a2b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008054604080516340d3096b60e11b81526001600160a01b038581166004830152915191909216916381a612d6916024808301926020929190829003018186803b1580156109a357600080fd5b60008054604080516388b1fbdf60e01b81526001600160a01b038581166004830152915191909216916388b1fbdf916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163114f1b5560e31b81526001600160a01b03858116600483015291519190921691638a78daa8916024808301926020929190829003018186803b1580156109a357600080fd5b60008054604080516323b95ceb60e21b81526001600160a01b03858116600483015291519190921691638ee573ac916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316639060b1ca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316639849e4126040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316639f392eb36040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663a22f23926040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051632acbceb560e21b81526001600160a01b0385811660048301529151919092169163ab2f3ad4916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163ad1e4f8d60e01b81526001600160a01b0385811660048301529151919092169163ad1e4f8d916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663ae3302c26040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b600080546040805163c3c7b9e960e01b81526001600160a01b0385811660048301529151919092169163c3c7b9e9916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663c4f718bf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b600080546040805163c65bc7b160e01b81526001600160a01b0385811660048301529151919092169163c65bc7b1916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163c7e074c360e01b81526001600160a01b03898116600483015260248201899052604482018890526064820187905285151560848301529151919092169163c7e074c39160a4808301926020929190829003018186803b1580156113fc57600080fd5b505afa158015611410573d6000803e3d6000fd5b505050506040513d602081101561142657600080fd5b50519695505050505050565b600080546040805163d8f897c360e01b81526001600160a01b0385811660048301529151919092169163d8f897c3916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663d9ac42256040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051630daf9c2160e41b81526001600160a01b0385811660048301529151919092169163daf9c210916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163db3555fb60e01b81526001600160a01b0385811660048301529151919092169163db3555fb916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663dc8f5fac6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663df73a2676040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000805460408051637092736960e11b81526001600160a01b0385811660048301529151919092169163e124e6d2916024808301926020929190829003018186803b1580156109a357600080fd5b6000805460408051630e468baf60e41b81526004810185905290516001600160a01b039092169163e468baf091602480820192602092909190829003018186803b1580156109a357600080fd5b600080546040805163783a2b6760e11b81526001600160a01b0385811660048301529151919092169163f07456ce916024808301926020929190829003018186803b1580156109a357600080fd5b600080546040805163f3ae241560e01b81526001600160a01b0385811660048301529151919092169163f3ae2415916024808301926020929190829003018186803b1580156109a357600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663f5b91b7b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663f887ea406040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b6000546001600160a01b03168156fea26469706673582212202bb9791f2fa6e3f15765c3577d387da44797dc3b8a745f07abba49983824a11464736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
